# blurt

Adopt this skill: https://proskills.md/skills/other/agihunt-blurt-skills-blurt

Page: https://proskills.md/skills/other/agihunt-blurt-skills-blurt
This document is the public skill bundle for that page. It contains SKILL.md and every helper file the catalog carries. No login is required.

## File: skills/blurt/SKILL.md
size: 26886
sha: dc16e9ebe14a262052780ca03bc79277c620ed2c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/SKILL.md

```text
---
name: blurt
description: >-
  Screen + voice → structured work. The user records their screen while talking (demoing their product, browsing,
  exploring an idea); turn the recording into items — bug/polish issues with repro steps, frames and suspected code,
  ideas with the inspiration behind them, notes, tasks — let them review on a local page, then export (Markdown/CSV,
  a hand-off bundle (.zip), or any tracker or chat through the tools you already have) or start fixing. Use when the user
  wants to record feedback / QA / ideas by talking while using their screen, hands over such a video, wants to
  process recordings from the Blurt app, or wants their Blurt items packed up and sent somewhere.
  Triggers: "blurt", "/blurt", "start blurt", "开始口喷", "口喷鸡", "开始录", "录屏提 bug", "录一下我的想法", "record feedback",
  "turn this recording into issues", "处理我录的视频", "process my recordings", "把这些问题打包发给…",
  "bundle these items for…", "set up Blurt's models", "帮我设置口喷鸡的模型", "配置听写模型 / API Key".
---

# blurt — show it, say it, get structured work back

People think best out loud with their eyes on the screen. They jump between topics, correct themselves, point at
things. Your job: capture that with no friction, then do the tedious part (splitting, writing up, picking and
marking screenshots, finding the code, filing) with care. Optimise for the user's flow: never interrupt a
recording, ask few questions, make review fast.

Scripts live in `scripts/` next to this file; run them with `uv run <skill-dir>/scripts/<name>.py ...` (each
declares its deps; `uv` installs them on first use). Every script has `--help`. Always reply in the user's
language; write items in the language the user spoke.

## 0. Setup (first run, or when something fails)

- `doctor.py` → OS, RAM/GPU, ffmpeg, configured ASR, recommendations, `todo` list.
- Missing ffmpeg/uv: offer the install command; run it only after the user agrees.
- ASR: if none configured, pick from `asr_recommendations` + the language the user speaks, tell the user in one
  line what and why (size, local vs cloud, cost), run its `setup`. Details: `reference/asr.md`. Cloud keys are set
  by the user in their env — never ask them to paste keys in chat.
- `record.py build` — macOS: compiles the native recorder (Xcode Command Line Tools; else a Tk fallback) and
  installs the **Blurt** menu-bar app into ~/Applications. Windows: the Start-menu shortcut appears on first
  recording. Mention it in one line: "Blurt is also in your Applications — ⌥R records from anywhere".
- `record.py test` → look at the returned `frame` yourself. Wallpaper-only/black or `ok: false` ⇒ Screen Recording
  permission missing; `mic_silent: true` ⇒ Microphone permission / wrong mic. On macOS the permission belongs to the
  app hosting you (Terminal, iTerm, VS Code, Claude, Codex…) and that app must be restarted after granting.
  macOS 15+ may show an "allow … to bypass the window picker" prompt — the user clicks Allow themselves.
- Optional project config `.blurt/config.json`: export target, owners/module map, column mapping, custom lenses in
  `.blurt/lenses/`. `.blurt/` is never committed: items.py / projects.py add it to `.git/info/exclude` (not
  `.gitignore`) the first time they write there.

## 1. Record (or pick up a recording)

**Just "/blurt" or "blurt", nothing else:** don't start a recording. Say where things stand in one or two lines —
the current project (`projects.py current`), new items (`items.py list --state new`), recordings not organized yet
(`record.py inbox`) — and offer three choices: record now, organize the new recordings, work on the items (fix or
export). Start a recording right away only when the user asked for one ("开始录", "录屏提 bug", "record feedback",
"start blurt").

**With the Blurt app installed** (`/Applications/Blurt.app` or `~/Applications/Blurt.app`, macOS): start the
recording in the app, so it records with the app's own Screen Recording permission — `record.py start` runs the
recorder under the app hosting you (Terminal, iTerm, Codex…), which then needs that permission too and a restart.
`pgrep -xq blurt-recorder || { open -a Blurt; sleep 3; }` then `open blurt://record`: the notch asks once (one click),
the user picks the area and talks, ⌥R or *Finish* stops, and the app organizes the recording into items in its
project (Settings → Agents picks the agent). Tell the user that in two lines; afterwards `index.py search` / the MCP
tools find the items. Use `record.py start` (below) when there is no app, on Windows/Linux, or when the user wants
the recording processed here in this chat.

**From the chat:** if the thing to look at is a local dev server/app in this repo, check it is running. Start
`record.py start` **in the background** (`--last-region` to reuse the last area) and tell the user in a few lines
what happens:
- a dimmed overlay: drag to draw the area (or click a window, F = full screen) → **开始录制** / Enter. Only that area
  is recorded — tabs, bookmarks and other windows stay private;
- 3-2-1 countdown (click to skip), then a small floating bar: timer · mic level · ⏸ pause · ↺ restart/discard ·
  **完成**. ⌥P pause/resume, ⌥S finish (Windows: Alt+Shift; these are the defaults — the user may have changed
  them in the app's Settings → Shortcuts / config `record.hotkeys`, and the countdown shows the real ones). The bar is
  never in the recording;
- talk naturally, point with the mouse; **hold ⌃ and drag to circle / underline what you mean** (macOS; ⌃⇧ box,
  ⌃⌥ ellipse, the keys in any order — resting the pointer straightens a rough shape — a snap's markup uses the same strokes; the ink fades after 3 s; the pen button on the bar or ⌥D keeps the pen on, Esc / ⌥D turns it off); click **完成** — no need
  to send another chat message.
- **⌥A snaps** (Windows/Linux Alt+Shift+A — the marker key Alt+Shift+M too — or the camera button on the bar): a full-resolution still of
  the area right now, no pause → `shots/`. Best evidence there is — mention it in one line. In the macOS app ⌥A runs
  the normal snap flow while recording (any area, its own note typed or said, a card) and the recording goes on: the
  shot lands in this session's `shots/` with its note. Blurt's own windows, cards and notch are in the video like any
  app's (users record Blurt to report Blurt's problems).
The task ends with `DONE video=…` → continue with §2 right away (`CANCELLED`, exit 2 → acknowledge and stop). From
the chat you can also `record.py stop | pause | resume | restart | snap`.

**Snap mode** (macOS app, not recording): ⌥A → drag an area, let go = shot, with a spoken (or typed) note; ⌃-drag on
it circles things. With a current project the shot goes straight to it; without one it waits as a card until the
user files it (or has the cards organized into Unassigned). The batch is `<ts>-shots/` (`meta.json` `"mode": "shots"`, no video; a line of
`shots.jsonl` may carry the `project` the user filed it into). Suggest it for "one screen + one sentence"
feedback (a wrong label, a layout glitch): faster to give and to process. Video is for flows, animations, timing and
long rambles — anything where what happened *between* screens matters.

**Waiting on a background step** (here and in §5): if your harness wakes you when a background task finishes (Claude
Code), end your turn — you'll be notified. If it doesn't (Codex), a finished turn can't be resumed by the child
process: keep the turn open and wait on that same tool session with long polls (no busy loop); don't send a final
response while it runs.

**Existing video** (QuickTime, OBS, Loom, phone, a teammate's Blurt recording…): create
`.blurt/sessions/<timestamp>/`, copy it in as `recording.<ext>` (with `events.jsonl` / `meta.json` if it came from
Blurt), continue with §2.

**Projects and the inbox.** A project is a folder the user opened in Blurt (`projects.py list`: id, key such as `BA`,
name, description, modules). Each has a store `<folder>/.blurt/`: items in `items/<KEY-n>-<slug>.md`, screenshots in
`assets/<uid>/`, raw captures in `sessions/<ts>/`. Captures that belong to no project yet live in the inbox store
`~/Blurt/inbox/` (shown as "Unassigned"). The user picks a current project, or none (`projects.py current`:
`current` null) — then captures go to Unassigned. Only the user moves items between projects: never guess a project
from the app in front, and never `items.py move` an item yourself unless the user asked for that one.

**Blurt app recordings:** the menu-bar app records into the current project's store, or the inbox when there is none.
`record.py inbox` lists them all with `processed` / `reviewed` flags (v0.6 recordings in `~/Blurt/recordings/` too).
"Process my recordings" → do §2–§4 for each unprocessed one (fan out to subagents if available), then one review per
session (or merge into one session dir if the user wants a single list). `meta.json` has `author` — keep it on items
when several people's recordings are combined.

## 2. Transcribe

`transcribe.py run <session>/recording.mp4` → `transcript.json` + `transcript.txt` (`[mm:ss.s-mm:ss.s] text`).
Recordings made with Blurt are usually transcribed *while* they record (`live/`): then it returns at once with
`"live": true` — same text as a whole-file run; `--force` redoes it (e.g. with a `--prompt` glossary). A shots
session (`meta.json` `"mode": "shots"`): `transcribe.py run <session>` turns each voice note into `"said"` in
`shots.jsonl`. `live/drafts.jsonl` (if present; later lines per `id` win, `drop` removes) is a small model's rough
outline made during the recording: a starting point for §3, not authoritative — check every item against the
transcript.
Recorded with system audio (`record.py start --system-audio`, or the app's Settings → General toggle — calls, product demos),
the other side's lines are marked `(system)` / `speaker: "system"`; unmarked lines are the user. Speaker bleed can
repeat a system line on the mic.
For Whisper/API backends pass `--prompt` with a short glossary (product, page/module names, people) from the repo.
Also run `frames.py scan <video>` (visual-activity index for candidates/sheets) and `frames.py marks <video>`: what
the user drew with the pen — when, where (box), what was being said — plus markers (Windows/Linux Alt+Shift+M; macOS
recordings made before 1.0.7, with ⌥M).
A `warning` in the output, or a transcript that reads as nonsense (SenseVoice turns unsupported languages such as
French into fake English), means the language needs another backend: set it up (`reference/asr.md`) and re-run.

## 3. Understand → items (text first), open the review page

The user is waiting: write the items as text, open the page, add frames while they read (§4). Read the whole
transcript. `live/drafts.jsonl` (items drafted during the recording; last line per `id` wins, `op: drop`
= gone) is your outline if it exists: check each draft against the transcript, merge / split / drop freely. Look at
frames now only when the words alone can't tell what an item is about. Decide **per item** what it is — the
recording decides, not a mode switch:

| kind | when | lens |
|---|---|---|
| `issue` | something in the product to fix or polish | `reference/lenses/issue.md` |
| `idea` | something to build / change / borrow ("这个网站的这里好") | `reference/lenses/idea.md` |
| `note` | an observation / finding / fact worth keeping | `reference/lenses/note.md` |
| `task` | an action item that isn't a product issue | `reference/lenses/task.md` |
| custom | a lens in `.blurt/lenses/` or `~/.blurt/lenses/` fits, or the user asked for it | that file |

Principles — judgement, not rules:
- A pen mark or a snap (screenshot in `shots.jsonl`) is the user saying "this, exactly": it anchors an item's time
  and subject. What they marked outranks your reading of a vague sentence — but a mark is not an item by itself,
  and items without marks are normal. A snap's image is its item's first frame: put it in `frames` right away.
  A snap with a `kind` in `shots.jsonl` (issue / idea / note / task) is one the user typed in its note: its item is
  that kind (ingest keeps it so); without one, decide as usual.
- One item = one thing. People jump around, revisit, correct themselves ("不对，是…"), or say two things in one
  sentence: merge revisits, drop retracted remarks, split compounds. Pure narration is not an item.
- Fix ASR errors from context (repo vocabulary, what's on screen). Keep `quote` close to what was said.
- Don't invent. When unsure, write your best guess, set `confidence: "low"`, add a short `questions` entry.
- Give the session a `title`. For idea-heavy or exploratory recordings a `digest` (markdown: themes, the strongest
  ideas, how they connect, suggested next step) becomes the page's Overview — it can follow in §4.

**Which project** (only when the session is in the inbox — no current project — and there are projects): the
app's prompt lists them; in a chat run `projects.py candidates` (each project's id, key, name, description, folder and
its newest item titles). Where an item clearly belongs to one, add `"project": "<id or key>"` to that item and a few
words in `"project_reason"`; unsure → leave it out (a `project` at the top of items.json counts only as a suggestion
for every item, never as where they go). It is only a suggestion: the item stays in Unassigned and the user moves
it with one click ("Looks like X · Move"). Don't spend tokens on it — what the capture already told you is enough; a
quick look in a project's folder only if that settles it. With a current project, write no `project`: the items go
there.

Write `<session>/items.json` (schema: `reference/schema.md`) with `"processing": true` and every item's text, no
picked frames yet — but a snap's shot goes in its item's `frames` now (nothing to pick). Then `items.py ingest
<session>` turns it into one Markdown item per entry (any later `items.py` command on the session does it too).
**Right away** start `review.py <session>` **in the background** (on macOS it opens in the Blurt app's main window when
the app is installed, else the browser; exits when the user confirms — in either — or after 30 minutes nobody used
the page, `"reviewed": false` then; prints `REVIEW <url>`, a private local address with a token in it — give the user
that URL if no browser can open where you run: SSH, container) and tell the user in one short message:
- ≤ 5 items: the numbered list (kind · title · owner/module, plus `questions`); more: counts by kind, the headline
  items, open questions; screenshots are still filling in;
- two lines on the page: one item at a time — **A** keep · **X** discard · **J/K** next/prev · **Z** undo · **?** keys;
  fields editable in place; **G** list view; **V** overview; "完成审核" hands it back.

From here on the user edits the same items: change them **only** with `items.py` (`patch`, `set-frames`, `add`,
`done`; `--help`). Address an item as `<session> I-003` (your draft id), by its id (`BA-12`) or by its uid. It keeps
fields the user edited, and items they dropped or merged stay gone — never write items.json again, nor the `.md`
files.

## 4. Evidence: frames & clips (while the user reviews)

Pick 1–3 frames per item that show *the point* (the bug itself, the part of the page that inspired the idea). Work
top-down — the user reviews from the top — and write each item as soon as its frames are good:
`items.py set-frames <session> <id> frames/<id>-1.jpg@T#caption …`.
- `frames.py sheet <video> --from S --to E -o <session>/sheets/<id>.jpg` → ~6 diverse settled candidates with
  timestamps in one image; `--at t1 t2 …` for specific moments ("这里 / this / look"). Speech often trails the action.
- The user drew on it (`marks`)? Their ink is in the video: `frames.py grab --at <frame_t>` and the frame is already
  annotated — add no box. `--crop stroke` for a zoomed second frame; `--box stroke` on a frame where the ink is gone.
- Otherwise, marking the spot — never estimate coordinates from a thumbnail or contact sheet:
  1. `frames.py grid <video> --at T -o <session>/sheets/<id>-grid.jpg` → labelled 0–1 grid plus the recorded cursor
     and nearby clicks (events.jsonl — exact). Read box edges off the grid (`--crop` zooms, labels stay full-frame).
  2. `frames.py grab <video> --at T -o <session>/frames/<id>-1.jpg --box x,y,w,h`; `--ring cursor|click` when the user
     pointed at / clicked it. Tiny detail → second frame with `--crop`.
  3. **Look at every annotated frame before using it.** Box not on the point → fix and re-grab.
- **Shots** (`shots.jsonl`; later lines per `n` win; skip `"deleted": true`): the shot *is* the frame — use
  `shots/NNN.marked.png` when it exists (the user's ink is already on it, add no box), else `NNN.png`; no picking.
  Its note is `text` / `said` (voice) — plus, for a snap while recording, what was said around its `t` (a snap
  taken with a note while recording: that note is what the item is about; its `project`, when set, is where the
  user wants it). `frames.py
  grab|grid shots/NNN.png` work on stills (`--crop stroke` = around their ink; `--ring cursor` for snaps while
  recording); `frames.py marks <video or session>` lists every snap.
- Animations / flows / timing: `frames.py clip --from --to -o <session>/clips/<id>.mp4` (< 20 MB) → `patch --set clip=…`.
- Same pass, via `items.py patch`: `source` (URL / product read off the frame), `code_refs` (issues, inside a repo:
  grep the visible text / route / component → likely `path:line`s), the `digest`, a better `confidence`.
- **Fan out** if your harness has subagents: split the items into 3–4 contiguous batches and run them all at once.
  Each gets the session dir, the video, its items (id, kind, title, time, quote, the marks / snaps that anchor them),
  this section, and the rule: write only your items, only with `items.py`. They report nothing back.
- Then `items.py done <session>` (it lists items still without frames — fine where none would help).
  `set-frames` copies the files into the store (`assets/<uid>/`): keep giving paths relative to the session.

## 5. Review with the user

The page has been open since §3. Wait as in §1 until the review summary prints. The user may finish before the
frames are in (`"processing": true` in the summary): complete §4 anyway, then `done`. Read the result with
`items.py list <session>` (each item has one `state`: `todo` = they kept it, `wontfix`, …; `--state discarded` for
what they threw away; answers are in `answer`; merged items are gone
on purpose — see the target's `merged_from`; `_user` lists fields the user edited; the user may have moved items to
another project: ids follow the project, uids never change) and continue with §6. If they reply in chat instead,
apply it with `items.py … --force` and close the page (`pkill -f "review.py <session>"`).

**Unattended runs** (started by the Blurt app via the first usable agent CLI — `claude -p`, `codex exec`,
`kimi -p`, `opencode run`, `gemini -p` (scripts/agents.json) — env `BLURT_APP=1` — or any other
non-interactive mode): don't ask anything; do §2–§4 the same way (text first with `processing`, frames via
`items.py`, `done`), then finish with a 2–3 sentence summary. The app's runs are sandboxed: the cwd is the session
folder, the project's code (named in the prompt) is for reading, and the only commands allowed are the scripts as
`uv run <skill-dir>/scripts/<name>.py …` with the path the prompt gives. With `BLURT_APP=1` don't start the review page — the
app opens it; otherwise start it detached right after §3 (`nohup uv run …/review.py <session> >/dev/null 2>&1 &`).
Never export to external systems unattended.

## 6. Export / act

Ask once where things go (remember in `.blurt/config.json` → `export`). Typical: issues → the team's tracker or
chat; ideas → an ideas board / doc; notes → Markdown; tasks → the user's todo tool. Blurt writes files only; every
other destination goes through the tools you already have.
- Markdown + CSV → `export_local.py <session>` or `export_local.py --project <key>` (all kinds: one document and a
  CSV per kind; the items themselves are Markdown files already).
- Any other destination — Feishu/Lark, Notion, Google Docs, Linear, Jira, GitHub, Slack, email… → use the CLI, MCP
  server or skill this session already has for it (`reference/export-other.md`); map fields by meaning. No tool for
  it → say so and offer the bundle or Markdown instead; don't install one unasked.
- **Hand-off bundle**: the portable form for a person or a place that takes files —
  `export_local.py bundle --items <uid|id> … [-o DIR|FILE.zip] [--title "…"]`, or `--project <key> [--state todo …]
  [--kind issue …]` (MCP: `bundle_items`). One `.zip` named `<project>-<date>-<n items>.zip`: `summary.md` (counts by
  kind and state; per item its state, quote, steps, suspected code, screenshots inline), `items/*.md` (every field),
  `frames/`, `clips/` — relative paths only, so it opens on a teammate's machine (paths in the text are made
  relative or cut to the file name; a frame no longer on disk is named as not included). It prints the zip's absolute
  `path` and `summary`, one paragraph
  to post with the file. Grouping is your judgement, not a rule: "Bundle the checkout issues and post them to #web
  in Slack" or "把 A 模块的问题打包发给飞书群里的张三" → find those issues (`search_items` / `index.py search`, read
  their `module`, `owner`, titles), one bundle per group with a `--title` that says who it is for, then send it with
  the user's own tool for that chat. Bundling changes no state.
- A document rather than a list ("整理成需求文档和设计文档", a brief, a comparison — typically after walking through
  reference sites or a competitor, often across several recordings) → `reference/docs.md`.
Confirm destination and count before creating or sending anything remotely; report links afterwards. Then offer the
natural next step — for issues "want me to start fixing these?" (you have `code_refs`), for ideas "want a quick
prototype / spec of the top one?".

## 7. Work on items (and say so)

When the user asks you to handle items — "fix these", a Blurt session that started you, a hand-off note
(`~/.blurt/handoff/H-….md`, see `reference/sessions.md`) — for each item:
1. Read it in full: MCP `get_item(uid)` (shows the screenshots), or `items.py get <uid|id>` and open the frame files
   (absolute paths). Look at the frames; they are the evidence.
2. `items.py state <uid> --state in_progress` (MCP: `mark_fixed(uid, state="fixing")`) before you start — the app
   shows it in progress.
3. Do it, smallest change that does it. Commit only when the hand-off note says so (a worktree session); never push.
4. `items.py state <uid> --state to_verify --claim fixed --note "<one line: what changed, which files>"`
   (`--commit SHA` / `--pr URL` if there is one; MCP: `mark_fixed(uid, state="fixed", note=…)`); can't or shouldn't →
   `--claim wontfix --note "<why>"`. That is your claim: the item waits in the user's inbox as *to verify* — only
   they mark it done, send it back or decide they won't do it.
Every item has one `state` (`reference/schema.md`): new → todo → handed_off → in_progress → to_verify → done, plus
wontfix and discarded. You only ever move items to `in_progress` / `to_verify` (or back to `todo` to take your own
claim back). `--agent` / `--job` default to `$BLURT_AGENT` / `$BLURT_JOB` (set by the app). The older forms
`items.py work …` and `items.py fix <session> <id> --state fixing|fixed|wontfix` still work. Never set `state` or
`work` with `patch`, and never edit item files yourself.
A hand-off prompt's first line is just its title ("AW-12 · … (Blurt hand-off)"); the instructions follow it. Started
from Claude desktop with the items in the prompt itself, your reports (steps 2 and 4) are the only progress the user
sees — make both. Don't run `sessions.py continue-desktop` unless the user asked; without the blurt MCP installed for
Claude it refuses (`desktop_no_mcp`), and `--without-mcp` is only for when the user agreed to mark the items by hand.

## 8. Across recordings: index and MCP

Every item on this machine (every project's store, the inbox, v0.6 sessions not migrated yet) is indexed in
`~/.blurt/index.db` (`index.py`; items.py keeps it fresh). To find things across projects:
`index.py search "<words>" [--kind issue] [--state todo] [--project <key|folder|inbox>]` → items with uid, id,
project, path, title, state (Chinese works; 1–2 character words too). `index.py backlog <repo>` writes
`.blurt/BACKLOG.md` with the open items. `items.py migrate --all` moves v0.6 sessions into the stores (the app does
it on start).

The same data as MCP tools — server `blurt` (`uv run --script scripts/mcp_server.py`, stdio): `list_projects`,
`list_sessions`, `search_items`, `get_item` (returns the screenshots as images), `get_transcript`, `update_item`
(= `items.py patch`, keeps the user's edits), `mark_fixed` (fixing → in progress; fixed / wontfix → to verify),
`bundle_items` (= `export_local.py bundle`: the hand-off .zip and a paragraph to post with it, §6). The
plugin registers it for Claude Code; for Codex / Kimi / OpenCode: `agents.py install <id> --mcp` (`--dry-run` first
shows what changes). Prefer the tools when they are there; they write through items.py like everything else.

Agent sessions inside Blurt (tmux) or in Claude desktop, worktrees, hand-off notes and the jobs the app shows:
`reference/sessions.md`.

## 9. Set up models

When the user asks you to set up Blurt's speech and AI models (or Blurt started you with a "Set Up Models" prompt),
follow `reference/setup-models.md`: `setup.py status` → ask at most three questions (may the voice leave the Mac, may
the text go to a cloud model, main languages) → `setup.py recommend …` and say the plan → for each key, ask the user
whether they have one and where, or want to create one (the provider's key page); the user signs in, verifies and
pays — you never do those → the key goes to `setup.py connect <preset>` on stdin only (never in the chat, on a
command line or in a log; a file with secrets is read only with the user's OK) → `download`, `use`, `verify` → a
short summary. Blurt must be running; it tests and stores each key itself and asks the user before the first change
unless it started you. The same operations are MCP tools (`setup_*`).
```

## File: skills/blurt/models/README.md
size: 323
sha: 6746c21829b8dc44f4076de833dd18f0224c88b6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/models/README.md

```text
silero_vad.onnx: Silero VAD (MIT, github.com/snakers4/silero-vad), as k2-fsa/sherpa-onnx publishes it
(github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/silero_vad.onnx, sha256 9e2449e1…1fd6). Shipped so a
fresh install needs no download before its first dictation; transcribe.py copies it into ~/.blurt/models.
```

## File: skills/blurt/scripts/_common.py
size: 42328
sha: ed81e5f4d894b1a06f51df92b840ea6c1b034d10
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/_common.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/_common.py

## File: skills/blurt/scripts/agents.json
size: 25507
sha: 6285c85694468c506eb6e24d2c7047e5d5b6c1ed
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/agents.json

```text
{
  "_doc": "Coding-agent CLIs the Blurt app can hand a recording to, headless. Read by agents.py and by the macOS app (BlurtRecorder: Agents.swift; a copy is bundled into Blurt.app/Contents/Resources). Order of `agents` = default fallback order; the user's order is config record.agents. A custom agent can be added in config record.agent_defs with the same fields. status: how to tell whether it is logged in without spending tokens — `args` run with a 15 s timeout, then: json_key (a bool in the first JSON object of the output) > creds_json ({path, keys}: the file exists and every key is empty → logged out) > logged_out (substrings) > ok_if (substrings, exit 0) > configured_if (regex: has credentials, can't verify them) > env_any / files_any (credentials in env / on disk) > otherwise ('logged_out' | 'unknown'). run: the headless command, {prompt} = the task text — only ever unattended (organising a recording or a batch of cards, AI fill-in, drafts) on text taken from the user's screen and voice, so it gets the least privilege that still lets it file items. Its cwd is the session folder (AI fill-in: a scratch folder), never the project; it reads the project's code but writes nothing there. No full-access / yolo modes. claude / gemini: file edits only inside cwd (acceptEdits / auto_edit) and shell commands only the skill scripts an organizing run uses, each pinned to its absolute path ({scripts} = the skill's scripts folder; the prompt names the same path) — no other command, no other script. codex: its workspace-write sandbox, writable = cwd + {writable} (one `--add-dir` each: the inbox store, every project's .blurt store, and a uv cache of its own — env UV_CACHE_DIR, BLURT_NO_INDEX; agents.py sandbox_env); never $BLURT_HOME (config.json, the jobs and their hook settings, index.db) nor the shared uv cache, so nothing it writes runs outside the sandbox later; network stays on because uv resolves the scripts' dependencies. grok: --permission-mode dontAsk (a call no rule allows is refused, never asked: nobody is there to answer), file edits only inside cwd (Edit(./**)) and the same skill scripts, each pinned to its absolute path; --disable-web-search because grok runs web search and fetch without asking in every mode, dontAsk included (a prompt injected through the screen could otherwise send what it reads out in a query), and --no-auto-update; its status is `grok models` (prints \"You are logged in…\", no tokens spent; it needs the network, so when it fails without saying either way, auth.json on disk counts as configured). A project's .blurt/config.json can't define agents (agents.py config). kimi / opencode: their own -p / run defaults (flags not verified). Hand-offs the user starts are interactive.session and keep their own modes. verified: 'run' = a real headless run was checked, 'cli' = flags checked with --help only, 'docs' = from the CLI's documentation. WP2 fields (agents.py detect / command / install): version = args printing the version; events = args appended to run for machine-readable progress + its format; headless: false = never run unattended (skip it in the auto chain); interactive = {url (placeholders {repo_q} {prompt_q}, max_prompt), | terminal (args after the bin, run in the user's terminal; paste_prompt: put the prompt on the clipboard), | copy_prompt}; app = {macos: path} for app-only agents; skill_dir = where the blurt skill is linked; mcp = {args (+check: args that exit 0 when already added) | json: {path, key, value} merged into a config file}, {mcp_server} = absolute path of mcp_server.py, {uv} = uv's absolute path (desktop apps — Cursor, WorkBuddy — start MCP servers without the login shell's PATH). codebuddy / workbuddy / cursor: connect only (skill + MCP; headless: false), paths from their documentation (WorkBuddy: the paths its app reads, ~/.workbuddy/skills and ~/.workbuddy/mcp.json); cursor links into ~/.agents/skills, which Cursor reads like ~/.claude/skills. Paths take ~ and ${VAR:-default}. headless_mcp = args `agents.py command … headless` adds so the run can use the blurt MCP server with no prompts (codex: the whole server via -c, since -c on an unregistered server breaks codex, plus approve mode and the BLURT_* env it forwards); {mcp_server_json} = that path as a JSON/TOML string. interactive.session (K5, sessions.py dispatch: an interactive agent in a tmux window or the app's pty) = {argv: args after the bin ({prompt} = the short hand-off prompt), prompt: 'arg' (default) | 'paste' (pasted into the window once it is up), hooks: 'claude' (--settings <job>.claude-settings.json with per-session hooks) | 'codex' (-c notify + -c hooks.*) | absent (status from the terminal only), mcp: args added when the user hasn't installed the blurt MCP server ({mcp_config_json} = a --mcp-config JSON) or 'headless_mcp' (reuse those args)}. interactive.session.sandboxed: true = the agent's sandbox can't write the repository's .git from a linked worktree (codex workspace-write), so its hand-off says to leave changes uncommitted and sessions.py finish commits them (the sandbox is never widened to .git). The codex session turns off its startup update check (-c check_for_update_on_startup=false): an update prompt at startup is input it must drain while the embedded terminal attaches. interactive.session.thread_name (codex) = how a session's thread gets the hand-off's title once its id is known (the hooks' session id): argv starts the CLI's JSON-RPC app server on stdio (same CODEX_HOME), then initialize → `method` {threadId, name}; best effort (sessions.py name-thread). interactive.desktop (claude) = the agent's desktop app (name: what the app calls it — Go to Claude) as a hand-off target (sessions.py dispatch --runner desktop): url ({folder_q} = the worktree / project folder, {prompt_q} = the hand-off prompt with the note inline, or the short prompt pointing at the note when the url would pass max_url), app = the app's bundle id per platform, open = what Go to Claude opens; continue = moving a running terminal session there (sessions.py continue-desktop): argv after the bin ({session} = the agent's session id), only from min_version and with the auth probe (the status args) saying logged in with a subscription (a non-empty subscription key, or one of auth_methods); the desktop app doesn't get a terminal session's --mcp-config, so without the blurt MCP installed (mcp.check) it is refused unless the user agreed to mark the items by hand (--without-mcp). interactive.waiting_patterns = regexes (or {pattern, hint}: hint 'trust' = the agent's folder-trust question, asked once per folder; 'hooks' = Codex's hook review, asked once — the app explains each in one line, and a session that quits at a trust question never started) on the last 15 lines of the window meaning 'waiting for you' — only used while an agent's hooks aren't reporting (no hooks, hooks not yet live — claude's workspace-trust dialog fires none — or the user didn't trust them) — and for codex always, since its hooks don't cover a tool's questions. interactive.error_patterns = the same, meaning 'it can't work at all and stays open' (claude: not logged in): the session becomes an error with that line as its reason, until the agent's hooks report. Processing (v0.7): models = where the agent's models are listed ({list: [{id, name, cheap}]} | {cache: the CLI's own model cache, format ('codex': a list of {slug, priority, visibility}; 'grok': a map of id → {info: {name, description, hidden}}, never a cheap one — its fast model costs more), config: its config file for the current default, config_key: that setting's TOML key (default `model`; dotted = in a table, grok's models.default)}); model_args = how a model / an effort level is passed ({model}, {effort}); processing = the defaults for unattended organising runs, per kind: recording (organizing a recording: the CLI's own model at low effort) and cards (snap / voice-note batches, AI fill-in, small runs: the cheapest model) — each {model: id | 'cheapest' (the cache's or list's cheap model) | 'default' (the CLI's own setting), effort: level | 'default'}; the v0.8 shape {model, effort} still means both. Overridden per agent and kind by config record.agent_processing.<id>.<kind> (Settings → Agents); usage = how a run reports the tokens it used (args added to the processing run + format | pattern with the number in group 1).",
  "agents": [
    {
      "id": "claude", "name": "Claude Code", "bins": ["claude"], "verified": "run",
      "status": {"args": ["auth", "status", "--json"], "json_key": "loggedIn", "logged_out": ["not logged in", "please run /login"]},
      "run": ["-p", "{prompt}", "--permission-mode", "acceptEdits", "--allowedTools",
              "Bash(uv run {scripts}/transcribe.py:*)", "Bash(uv run {scripts}/frames.py:*)", "Bash(uv run {scripts}/items.py:*)",
              "Bash(uv run {scripts}/projects.py list:*)", "Bash(uv run {scripts}/index.py search:*)", "Read", "Glob", "Grep", "mcp__blurt"],
      "fix": {"zh": "在终端运行 claude，然后输入 /login", "en": "run `claude` in a terminal and /login"},
      "install": {"zh": "curl -fsSL https://claude.ai/install.sh | bash", "en": "curl -fsSL https://claude.ai/install.sh | bash"},
      "version": ["--version"], "events": {"args": ["--output-format", "stream-json", "--verbose"], "format": "claude-stream-json"},
      "interactive": {"url": "claude-cli://open?cwd={repo_q}&q={prompt_q}", "max_prompt": 5000,
                      "session": {"argv": ["--", "{prompt}"], "hooks": "claude", "mcp": ["--mcp-config", "{mcp_config_json}"], "verified": "run"},
                      "waiting_patterns": [{"pattern": "Do you trust the files in this folder", "hint": "trust"},
                                           {"pattern": "Yes, (proceed|I trust this folder)", "hint": "trust"}, "Enter to confirm · Esc to (exit|cancel)",
                                           "Select login method"],
                      "error_patterns": ["Not logged in · Please run /login", "Invalid API key · Please run /login", "OAuth token (has expired|revoked)"],
                      "desktop": {"name": "Claude", "url": "claude://code/new?folder={folder_q}&q={prompt_q}", "max_url": 14000,
                                  "app": {"macos": "com.anthropic.claudefordesktop"}, "open": "claude://",
                                  "continue": {"argv": ["--desktop", "--resume", "{session}"], "min_version": "2.1.285",
                                               "auth": {"json_key": "loggedIn", "subscription_keys": ["subscriptionType"],
                                                        "auth_methods": ["claude.ai", "claudeai", "oauth", "subscription"]}},
                                  "verified": "docs"}},
      "skill_dir": "~/.claude/skills",
      "mcp": {"args": ["mcp", "add", "--scope", "user", "blurt", "--", "uv", "run", "--script", "{mcp_server}"],
              "check": ["mcp", "get", "blurt"], "verified": "cli"},
      "drafts": true,
      "models": {"list": [{"id": "haiku", "name": "Haiku", "cheap": true}, {"id": "sonnet", "name": "Sonnet"}, {"id": "opus", "name": "Opus"},
                          {"id": "fable", "name": "Fable"}], "verified": "cli"},
      "model_args": {"model": ["--model", "{model}"], "effort": ["--effort", "{effort}"]},
      "processing": {"recording": {"model": "default", "effort": "low"}, "cards": {"model": "cheapest", "effort": "low"}},
      "usage": {"args": ["--output-format", "json"], "format": "claude-json"}
    },
    {
      "id": "codex", "name": "Codex", "bins": ["codex"], "verified": "run",
      "status": {"args": ["login", "status"], "logged_out": ["not logged in"], "ok_if": ["logged in"], "env_any": ["OPENAI_API_KEY"]},
      "run": ["exec", "--skip-git-repo-check", "--sandbox", "workspace-write", "-c", "sandbox_workspace_write.network_access=true", "{writable}", "{prompt}"],
      "fix": {"zh": "在终端运行 codex login", "en": "run `codex login` in a terminal"},
      "install": {"zh": "npm i -g @openai/codex", "en": "npm i -g @openai/codex"},
      "version": ["--version"], "events": {"args": ["--json"], "format": "codex-jsonl"},
      "interactive": {"terminal": ["{prompt}"],
                      "session": {"argv": ["-c", "check_for_update_on_startup=false", "{prompt}"], "hooks": "codex", "mcp": "headless_mcp",
                                  "sandboxed": true, "verified": "run", "min_version": "0.164.0",
                                  "thread_name": {"argv": ["app-server"], "method": "thread/name/set", "verified": "run"}},
                      "waiting_patterns": ["Would you like to (run|make|apply|allow|grant)\\b", "Press enter to confirm or esc to cancel", "enter (confirm|continue) · esc (skip|quit|cancel)",
                                           {"pattern": "Hooks need review", "hint": "hooks"}, {"pattern": "Trust this folder\\?", "hint": "trust"},
                                           "Allow .{1,80}\\? *\\(y\\)",
                                           "enter to submit \\| esc to cancel"]},
      "skill_dir": "~/.agents/skills",
      "mcp": {"args": ["mcp", "add", "blurt", "--", "uv", "run", "--script", "{mcp_server}"], "check": ["mcp", "get", "blurt"],
              "verified": "run"},
      "headless_mcp": {"args": ["-c", "mcp_servers.blurt.command=\"uv\"",
                                "-c", "mcp_servers.blurt.args=[\"run\", \"-q\", \"--script\", {mcp_server_json}]",
                                "-c", "mcp_servers.blurt.env_vars=[\"BLURT_HOME\", \"BLURT_WORKSPACE\", \"BLURT_AGENT\", \"BLURT_RUN_ID\", \"BLURT_JOB\", \"BLURT_PROJECT\"]",
                                "-c", "mcp_servers.blurt.default_tools_approval_mode=\"approve\""], "verified": "run"},
      "drafts": true,
      "models": {"cache": "${CODEX_HOME:-~/.codex}/models_cache.json", "format": "codex", "config": "${CODEX_HOME:-~/.codex}/config.toml",
                 "verified": "run"},
      "model_args": {"model": ["-m", "{model}"], "effort": ["-c", "model_reasoning_effort=\"{effort}\""]},
      "processing": {"recording": {"model": "default", "effort": "low"}, "cards": {"model": "cheapest", "effort": "low"}},
      "usage": {"pattern": "(?im)^tokens used\\s*:?\\s*([0-9][0-9,.  ]*)$"}
    },
    {
      "id": "kimi", "name": "Kimi Code", "bins": ["kimi"], "verified": "cli",
      "status": {"args": ["provider", "list"], "creds_json": {"path": "~/.kimi-code/credentials/kimi-code.json", "keys": ["access_token", "refresh_token"]},
                 "configured_if": "models=[1-9]", "otherwise": "logged_out"},
      "run": ["-p", "{prompt}"],
      "fix": {"zh": "在终端运行 kimi login", "en": "run `kimi login` in a terminal"},
      "install": {"zh": "见 moonshotai.github.io/kimi-code", "en": "see moonshotai.github.io/kimi-code"},
      "version": ["--version"], "events": {"args": ["--output-format", "stream-json"], "format": "kimi-stream-json"},
      "interactive": {"terminal": [], "paste_prompt": true, "session": {"argv": [], "prompt": "paste", "verified": "docs"},
                      "waiting_patterns": ["\\b(Approve|Allow)\\b.{0,80}\\?", "\\[y/n\\]|\\(y/n\\)|\\[Y/n\\]"]},
      "skill_dir": "~/.agents/skills",
      "mcp": {"json": {"path": "${KIMI_CODE_HOME:-~/.kimi-code}/mcp.json", "key": ["mcpServers", "blurt"],
                       "value": {"command": "uv", "args": ["run", "--script", "{mcp_server}"]}}, "verified": "docs"}
    },
    {
      "id": "opencode", "name": "OpenCode", "bins": ["opencode"], "verified": "cli",
      "status": {"args": ["auth", "list"], "configured_if": "\\b[1-9]\\d* credentials?\\b",
                 "env_any": ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GEMINI_API_KEY", "OPENROUTER_API_KEY", "ZHIPU_API_KEY"],
                 "otherwise": "logged_out"},
      "run": ["run", "{prompt}"],
      "fix": {"zh": "在终端运行 opencode auth login", "en": "run `opencode auth login` in a terminal"},
      "install": {"zh": "curl -fsSL https://opencode.ai/install | bash", "en": "curl -fsSL https://opencode.ai/install | bash"},
      "version": ["--version"], "events": {"args": ["--format", "json"], "format": "opencode-json"},
      "interactive": {"terminal": ["--prompt", "{prompt}"], "session": {"argv": ["--prompt", "{prompt}"], "verified": "docs"},
                      "waiting_patterns": ["Permission required", "\\bAllow (once|always)\\b", "\\[y/n\\]|\\(y/n\\)"]},
      "skill_dir": "~/.config/opencode/skills",
      "mcp": {"json": {"path": "~/.config/opencode/opencode.json", "key": ["mcp", "blurt"],
                       "value": {"type": "local", "command": ["uv", "run", "--script", "{mcp_server}"], "enabled": true}},
              "verified": "docs"},
      "model_args": {"model": ["--model", "{model}"]}
    },
    {
      "id": "gemini", "name": "Gemini CLI", "bins": ["gemini"], "verified": "docs",
      "status": {"env_any": ["GEMINI_API_KEY", "GOOGLE_API_KEY", "GOOGLE_GENAI_USE_VERTEXAI"], "files_any": ["~/.gemini/oauth_creds.json"],
                 "otherwise": "logged_out"},
      "run": ["-p", "{prompt}", "--approval-mode", "auto_edit", "--allowed-tools",
              "run_shell_command(uv run {scripts}/transcribe.py)", "run_shell_command(uv run {scripts}/frames.py)",
              "run_shell_command(uv run {scripts}/items.py)", "run_shell_command(uv run {scripts}/projects.py list)",
              "run_shell_command(uv run {scripts}/index.py search)"],
      "fix": {"zh": "在终端运行 gemini 登录一次（或设置 GEMINI_API_KEY）", "en": "run `gemini` once in a terminal to sign in (or set GEMINI_API_KEY)"},
      "install": {"zh": "npm i -g @google/gemini-cli", "en": "npm i -g @google/gemini-cli"},
      "version": ["--version"], "events": {"args": ["--output-format", "stream-json"], "format": "gemini-stream-json"},
      "interactive": {"terminal": ["-i", "{prompt}"], "session": {"argv": ["-i", "{prompt}"], "verified": "docs"},
                      "waiting_patterns": ["Allow execution", "Apply this change\\?", "Waiting for user confirmation"]},
      "skill_dir": "~/.agents/skills",
      "mcp": {"args": ["mcp", "add", "--scope", "user", "blurt", "uv", "run", "--script", "{mcp_server}"], "verified": "docs"},
      "model_args": {"model": ["--model", "{model}"]}
    },
    {
      "id": "grok", "name": "Grok", "bins": ["grok"], "verified": "cli",
      "status": {"args": ["models"], "ok_if": ["you are logged in"],
                 "logged_out": ["not logged in", "not signed in", "please log in", "please sign in", "login required"],
                 "env_any": ["XAI_API_KEY"], "files_any": ["${GROK_HOME:-~/.grok}/auth.json"], "otherwise": "logged_out"},
      "run": ["-p", "{prompt}", "--permission-mode", "dontAsk", "--disable-web-search", "--no-auto-update", "--allow", "Edit(./**)",
              "--allow", "Bash(uv run {scripts}/transcribe.py:*)", "--allow", "Bash(uv run {scripts}/frames.py:*)",
              "--allow", "Bash(uv run {scripts}/items.py:*)", "--allow", "Bash(uv run {scripts}/projects.py list:*)",
              "--allow", "Bash(uv run {scripts}/index.py search:*)", "--allow", "MCPTool(blurt__*)"],
      "fix": {"zh": "在终端运行 grok login", "en": "run `grok login` in a terminal"},
      "install": {"zh": "curl -fsSL https://x.ai/cli/install.sh | bash", "en": "curl -fsSL https://x.ai/cli/install.sh | bash"},
      "version": ["--version"], "events": {"args": ["--output-format", "streaming-json"], "format": "grok-streaming-json"},
      "interactive": {"terminal": ["{prompt}"], "session": {"argv": ["{prompt}"], "verified": "cli"},
                      "waiting_patterns": ["\\bAllow once\\b", "\\bReject once\\b"]},
      "skill_dir": "~/.agents/skills",
      "mcp": {"args": ["mcp", "add", "blurt", "--", "uv", "run", "--script", "{mcp_server}"], "verified": "cli"},
      "models": {"cache": "${GROK_HOME:-~/.grok}/models_cache.json", "format": "grok", "config": "${GROK_HOME:-~/.grok}/config.toml",
                 "config_key": "models.default", "verified": "cli"},
      "model_args": {"model": ["-m", "{model}"], "effort": ["--effort", "{effort}"]},
      "processing": {"recording": {"model": "default", "effort": "low"}, "cards": {"model": "cheapest", "effort": "low"}}
    },
    {
      "id": "codebuddy", "name": "CodeBuddy Code", "bins": ["codebuddy"], "verified": "docs",
      "headless": false, "interactive": {"terminal": [], "paste_prompt": true},
      "version": ["--version"],
      "install": {"zh": "npm install -g @tencent-ai/codebuddy-code", "en": "npm install -g @tencent-ai/codebuddy-code"},
      "skill_dir": "~/.codebuddy/skills",
      "mcp": {"json": {"path": "~/.codebuddy/mcp.json", "key": ["mcpServers", "blurt"],
                       "value": {"command": "uv", "args": ["run", "--script", "{mcp_server}"]}}, "verified": "docs"}
    },
    {
      "id": "workbuddy", "name": "WorkBuddy", "bins": [], "app": {"macos": "/Applications/WorkBuddy.app"}, "verified": "docs",
      "headless": false, "interactive": {"copy_prompt": true},
      "install": {"zh": "见 workbuddy.ai", "en": "see workbuddy.ai"},
      "skill_dir": "~/.workbuddy/skills",
      "mcp": {"json": {"path": "~/.workbuddy/mcp.json", "key": ["mcpServers", "blurt"],
                       "value": {"command": "{uv}", "args": ["run", "--script", "{mcp_server}"]}}, "verified": "docs"}
    },
    {
      "id": "cursor", "name": "Cursor", "bins": [], "app": {"macos": "/Applications/Cursor.app"}, "verified": "docs",
      "headless": false, "interactive": {"copy_prompt": true},
      "install": {"zh": "见 cursor.com", "en": "see cursor.com"},
      "skill_dir": "~/.agents/skills",
      "mcp": {"json": {"path": "~/.cursor/mcp.json", "key": ["mcpServers", "blurt"],
                       "value": {"command": "{uv}", "args": ["run", "--script", "{mcp_server}"]}}, "verified": "docs"}
    },
    {
      "id": "zcode", "name": "ZCode", "bins": [], "app": {"macos": "/Applications/ZCode.app"}, "verified": "docs",
      "headless": false, "interactive": {"copy_prompt": true},
      "fix": {"zh": "在 ZCode 设置 → Skills / MCP 里手动导入 blurt", "en": "in ZCode Settings → Skills / MCP, import blurt by hand"},
      "install": {"zh": "见 zcode.z.ai", "en": "see zcode.z.ai"}
    }
  ],
  "failures": [
    {"id": "skill", "short": {"zh": "找不到 skill", "en": "skill not found"},
     "reason": {"zh": "{name} 找不到 blurt skill：在终端运行 record.py build 重新登记一次", "en": "{name} couldn't find the blurt skill: run record.py build once to register it"},
     "patterns": ["unknown skill", "skill[^\\n]{0,40}(not found|not available|not installed|doesn't exist|does not exist)", "no such skill",
                  "SKILL\\.md[^\\n]{0,60}(no such file|not found|does not exist)", "找不到[^\\n]{0,12}skill"]},
    {"id": "model", "short": {"zh": "模型不可用", "en": "model unavailable"},
     "reason": {"zh": "{name} 设置的模型不存在或没有权限：检查它的模型设置", "en": "{name}'s model doesn't exist or isn't allowed: check its model setting"},
     "patterns": ["model[^\\n]{0,60}(not found|does not exist|not available|is not supported|unsupported|not exist)", "(unknown|invalid|unsupported) model",
                  "model_not_found", "no such model", "^\\s*error: not found\\s*$"]},
    {"id": "auth", "short": {"zh": "登录失效", "en": "login expired"},
     "reason": {"zh": "{name} 登录失效了：{fix}", "en": "{name}'s login has expired: {fix}"},
     "patterns": ["not logged in", "please run /login", "(invalid|expired|revoked)[^\\n]{0,30}(api[ _-]?key|token|grant|credential|session)",
                  "authorization grant is invalid", "no credential configured", "authentication (failed|error|required)", "unauthori[sz]ed", "\\b401\\b",
                  "token (has )?expired", "login (required|expired)", "re-?authenticate", "invalid x-api-key"]},
    {"id": "quota", "short": {"zh": "额度 / 限流", "en": "quota / rate limit"},
     "reason": {"zh": "{name} 额度用完了或被限流，过一会儿再整理", "en": "{name} hit a rate limit or ran out of quota — try again later"},
     "patterns": ["rate[ _-]?limit", "\\b429\\b", "quota", "usage limit", "credit balance is too low", "insufficient[_ ]quota",
                  "too many requests", "out of credits", "limit reached", "overloaded", "\\b529\\b"]},
    {"id": "network", "short": {"zh": "网络", "en": "network"},
     "reason": {"zh": "连不上 {name} 的服务：检查网络 / 代理后再整理", "en": "couldn't reach {name}'s servers: check the network / proxy and try again"},
     "patterns": ["enotfound", "econnrefused", "econnreset", "etimedout", "getaddrinfo", "network (error|is unreachable)",
                  "connection (error|refused|reset|timed out|closed)", "could not resolve host", "fetch failed", "unable to connect",
                  "stream disconnected", "certificate verify failed", "(ssl|tls) (error|handshake)",
                  "dns error", "failed to lookup address", "error sending request", "nodename nor servname", "os error 5[01]\\b"]},
    {"id": "outdated", "short": {"zh": "版本太旧", "en": "outdated"},
     "reason": {"zh": "{name} 的版本太旧，没能启动。在终端里更新它，再检查一次：{fix}", "en": "{name} is too old to start here. Update it in a terminal, then check again: {fix}"},
     "patterns": ["timed out discarding buffered terminal input"]}
  ]
}
```

## File: skills/blurt/scripts/agents.py
size: 66824
sha: 5bdda7978185a5a03fcecbed5311e96b35bbbb4e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/agents.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/agents.py

## File: skills/blurt/scripts/asr_models.json
size: 14474
sha: 08c1707d1e9fa5e79a7588931c884ebe7fe50fda
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/asr_models.json

```text
{
  "schema": 1,
  "reference": "rtf_ref / ram_mb / error_ref: Apple M5 Max (128 GB, 40-core GPU), 3 threads, utility priority, say-generated speech in 7 languages; docs/design/asr-benchmark.md",
  "models": [
    {"id": "sensevoice-small", "name": "SenseVoice Small", "backend": "sensevoice", "model": "sense-voice-small-int8", "languages": ["zh", "en", "ja", "ko", "yue"], "size_mb": 228, "rtf_ref": 0.0265, "ram_mb": 540, "error_ref": {"zh": 0.033, "en": 0.024, "ja": 0.017, "ko": 0.105}, "platforms": ["darwin-arm64", "darwin-x86_64", "linux-x86_64", "linux-arm64", "windows-x86_64", "windows-arm64"], "requires": [], "streaming": false, "tiers": ["pro", "standard", "light", "minimal"], "verified": "run", "default": true, "install": {"files": {"sensevoice/model.int8.onnx": ["https://huggingface.co/csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/resolve/main/model.int8.onnx", "https://hf-mirror.com/csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/resolve/main/model.int8.onnx"], "sensevoice/tokens.txt": ["https://huggingface.co/csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/resolve/main/tokens.txt", "https://hf-mirror.com/csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/resolve/main/tokens.txt"]}}, "quality_note_key": "speech.note.sensevoice", "vocab": "none"},
    {"id": "whisper-large-v3-turbo-mlx", "name": "Whisper large-v3-turbo", "backend": "mlx-whisper", "model": "mlx-community/whisper-large-v3-turbo", "languages": "multi", "size_mb": 1540, "rtf_ref": 0.0225, "ram_mb": 3670, "error_ref": {"zh": 0.016, "en": 0.019, "ja": 0.008, "ko": 0.005, "es": 0.005, "fr": 0.013, "de": 0.005}, "platforms": ["darwin-arm64"], "requires": ["mlx"], "package": "mlx-whisper", "streaming": false, "tiers": ["pro", "standard"], "verified": "run", "install": {"hf": "mlx-community/whisper-large-v3-turbo"}, "quality_note_key": "speech.note.whisper_turbo", "vocab": "prompt"},
    {"id": "whisper-large-v3-turbo-q4-mlx", "name": "Whisper large-v3-turbo (4-bit)", "backend": "mlx-whisper", "model": "mlx-community/whisper-large-v3-turbo-q4", "languages": "multi", "size_mb": 442, "rtf_ref": 0.0255, "ram_mb": 2570, "error_ref": {"zh": 0.033, "en": 0.019, "ja": 0.015, "ko": 0.008, "es": 0.0, "fr": 0.017, "de": 0.011}, "platforms": ["darwin-arm64"], "requires": ["mlx"], "package": "mlx-whisper", "streaming": false, "tiers": ["standard", "light"], "verified": "run", "install": {"hf": "mlx-community/whisper-large-v3-turbo-q4"}, "quality_note_key": "speech.note.whisper_turbo_q4", "vocab": "prompt"},
    {"id": "qwen3-asr-1.7b-mlx", "name": "Qwen3-ASR 1.7B", "backend": "qwen3-asr-mlx", "model": "mlx-community/Qwen3-ASR-1.7B-8bit", "languages": ["zh", "en", "yue", "ja", "ko", "es", "fr", "de", "it", "pt", "ru", "ar", "hi", "th", "vi", "id", "ms", "tr", "nl", "sv", "da", "fi", "pl", "cs", "el", "hu", "ro", "fa", "fil", "mk"], "size_mb": 2468, "rtf_ref": 0.033, "error_ref": {"zh": 0.007, "en": 0.019, "ja": 0.013, "ko": 0.0, "es": 0.0, "fr": 0.008, "de": 0.011, "yue": 0.364}, "ram_mb": 3100, "platforms": ["darwin-arm64"], "requires": ["mlx"], "package": "mlx-qwen3-asr", "streaming": false, "tiers": ["pro"], "verified": "run", "vocab": "context", "install": {"hf": "mlx-community/Qwen3-ASR-1.7B-8bit"}, "quality_note_key": "speech.note.qwen3_mlx_17", "rehear_window_s": 30, "field_context_chars": 300},
    {"id": "qwen3-asr-0.6b-mlx", "name": "Qwen3-ASR 0.6B", "backend": "qwen3-asr-mlx", "model": "mlx-community/Qwen3-ASR-0.6B-8bit", "languages": ["zh", "en", "yue", "ja", "ko", "es", "fr", "de", "it", "pt", "ru", "ar", "hi", "th", "vi", "id", "ms", "tr", "nl", "sv", "da", "fi", "pl", "cs", "el", "hu", "ro", "fa", "fil", "mk"], "size_mb": 1010, "rtf_ref": 0.029, "error_ref": {"zh": 0.0, "en": 0.019, "ja": 0.017, "ko": 0.005, "es": 0.0, "fr": 0.042, "de": 0.021, "yue": 0.39}, "ram_mb": 2100, "platforms": ["darwin-arm64"], "requires": ["mlx"], "package": "mlx-qwen3-asr", "streaming": false, "tiers": ["pro", "standard"], "verified": "run", "vocab": "context", "install": {"hf": "mlx-community/Qwen3-ASR-0.6B-8bit"}, "quality_note_key": "speech.note.qwen3_mlx", "rehear_window_s": 20},
    {"id": "fun-asr-nano-mlx", "name": "Fun-ASR-Nano", "backend": "fun-asr-mlx", "model": "mlx-community/Fun-ASR-Nano-2512", "languages": ["zh", "en", "ja"], "size_mb": 1598, "rtf_ref": 0.027, "error_ref": {"zh": 0.0, "en": 0.019, "ja": 0.0}, "ram_mb": 2550, "platforms": ["darwin-arm64"], "requires": ["mlx"], "package": "mlx-audio", "streaming": false, "tiers": ["standard", "light"], "verified": "run", "vocab": "hotwords", "install": {"hf": "mlx-community/Fun-ASR-Nano-2512"}, "quality_note_key": "speech.note.fun_asr", "rehear_window_s": 30},
    {"id": "whisper-large-v3-turbo-ct2", "name": "Whisper large-v3-turbo (CUDA)", "backend": "faster-whisper", "model": "mobiuslabsgmbh/faster-whisper-large-v3-turbo", "languages": "multi", "size_mb": 1547, "rtf_ref": null, "ram_mb": 1670, "error_ref": {"zh": 0.023, "en": 0.019, "ja": 0.011, "ko": 0.005, "es": 0.0, "fr": 0.013, "de": 0.005}, "platforms": ["linux-x86_64", "linux-arm64", "windows-x86_64"], "requires": [], "package": "faster-whisper", "streaming": false, "tiers": ["pro", "standard"], "verified": "run", "install": {"hf": "mobiuslabsgmbh/faster-whisper-large-v3-turbo"}, "quality_note_key": "speech.note.whisper_turbo_cpu", "vocab": "prompt"},
    {"id": "qwen3-asr-0.6b-onnx", "name": "Qwen3-ASR 0.6B (CPU)", "backend": "qwen3-asr-onnx", "model": "qwen3-asr-0.6b-int8", "languages": ["zh", "en", "yue", "ja", "ko", "es", "fr", "de", "it", "pt", "ru", "ar", "hi", "th", "vi", "id", "ms", "tr", "nl", "sv", "da", "fi", "pl", "cs", "el", "hu", "ro", "fa", "fil", "mk"], "size_mb": 940, "rtf_ref": 0.2543, "ram_mb": 2570, "error_ref": {"zh": 0.043, "en": 0.01, "ja": 0.053, "ko": 0.133, "es": 0.068, "fr": 0.15, "de": 0.074}, "platforms": ["darwin-arm64", "darwin-x86_64", "linux-x86_64", "linux-arm64", "windows-x86_64", "windows-arm64"], "requires": [], "streaming": false, "tiers": ["pro", "standard", "light"], "verified": "run", "install": {"archive": "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-qwen3-asr-0.6B-int8-2026-03-25.tar.bz2", "dir": "qwen3-asr-0.6b-int8", "keep": ["conv_frontend.onnx", "encoder.int8.onnx", "decoder.int8.onnx", "tokenizer/"]}, "quality_note_key": "speech.note.qwen3_cpu", "vocab": "hotwords"},
    {"id": "apple-speech", "name": "macOS Speech", "backend": "apple", "model": "SpeechTranscriber", "languages": ["zh", "en", "yue", "ja", "ko", "fr", "de", "es", "it", "pt"], "size_mb": 0, "rtf_ref": 0.014, "ram_mb": 0, "platforms": ["darwin-arm64", "darwin-x86_64"], "requires": ["macos26"], "builtin": true, "streaming": false, "tiers": [], "verified": "run", "quality_note_key": "speech.note.apple", "vocab": "context"},
    {"id": "openai-compatible", "name": "OpenAI-compatible API", "backend": "openai", "model": null, "local": false, "languages": "multi", "size_mb": 0, "ram_mb": 0, "platforms": ["*"], "requires": ["key"], "streaming": false, "tiers": [], "verified": "run", "keys": ["BLURT_ASR_API_KEY", "OPENAI_API_KEY", "GROQ_API_KEY"], "quality_note_key": "speech.note.cloud"},
    {"id": "qwen3-asr-flash", "name": "Qwen3-ASR Flash", "backend": "dashscope", "model": "qwen3-asr-flash", "local": false, "languages": "multi", "size_mb": 0, "ram_mb": 0, "platforms": ["*"], "requires": ["key"], "streaming": false, "tiers": [], "verified": "docs", "keys": ["DASHSCOPE_API_KEY"], "quality_note_key": "speech.note.cloud", "field_context_chars": 300},
    {"id": "volcengine-seedasr", "name": "Doubao Seed-ASR 2.0", "backend": "volcengine", "model": "bigmodel_nostream", "local": false, "languages": "multi", "size_mb": 0, "ram_mb": 0, "platforms": ["*"], "requires": ["key"], "streaming": true, "tiers": [], "verified": "run", "keys": ["VOLC_APP_ID", "VOLC_ACCESS_TOKEN"], "keys_all": true, "vocab": "hotwords", "quality_note_key": "speech.note.cloud", "field_context_chars": 300}
  ],
  "bench": {
    "note": "Spoken with macOS `say` (the first listed voice that exists, else any voice of the locale); error = CER for zh / yue / ja / ko, WER otherwise.",
    "samples": {
      "zh": {
        "voices": [
          "Tingting"
        ],
        "locale": "zh_CN",
        "text": [
          "我先打开登录页面，输入邮箱和密码，然后点击登录按钮。",
          "按钮点了之后没有任何反应，控制台里也没有报错。",
          "设置页里的保存按钮颜色太浅了，看不出来可以点击。",
          "搜索框输入中文的时候，候选词会把下面的结果挡住。",
          "上传头像以后要刷新一下页面才能看到新的图片。",
          "有一个想法，可以加一个导出表格的功能，方便发给运营的同事。",
          "另外记一下，下周三之前要把发布说明写好。"
        ]
      },
      "en": {
        "voices": [
          "Samantha"
        ],
        "locale": "en_US",
        "text": [
          "First I open the sign in page, type my email and password, and press the sign in button.",
          "Nothing happens after the click, and there is no error in the console either.",
          "The save button on the settings page is so pale that it does not look clickable.",
          "When I search for a project, the dropdown covers the first result.",
          "After uploading a new avatar I have to reload the page before it shows up.",
          "One idea: we could add an export to spreadsheet option for the support team.",
          "Also a note to self, the release notes need to be ready before Wednesday."
        ]
      },
      "ja": {
        "voices": [
          "Kyoko"
        ],
        "locale": "ja_JP",
        "text": [
          "まずログイン画面を開いて、メールアドレスとパスワードを入力し、ログインボタンを押します。",
          "ボタンを押しても何も起きず、コンソールにもエラーは出ていません。",
          "設定画面の保存ボタンは色が薄すぎて、押せるように見えません。",
          "プロジェクトを検索すると、候補のリストが最初の結果を隠してしまいます。",
          "新しいアイコンをアップロードした後、ページを再読み込みしないと表示されません。",
          "アイデアとして、サポートチーム向けに表計算ソフトへの書き出し機能があると便利です。",
          "それから、水曜日までにリリースノートを用意する必要があります。"
        ]
      },
      "ko": {
        "voices": [
          "Yuna"
        ],
        "locale": "ko_KR",
        "text": [
          "먼저 로그인 페이지를 열고 이메일과 비밀번호를 입력한 다음 로그인 버튼을 누릅니다.",
          "버튼을 눌러도 아무 반응이 없고 콘솔에도 오류가 없습니다.",
          "설정 페이지의 저장 버튼은 색이 너무 연해서 누를 수 있는 것처럼 보이지 않습니다.",
          "프로젝트를 검색하면 목록이 첫 번째 결과를 가립니다.",
          "새 프로필 사진을 올린 뒤에는 페이지를 새로 고쳐야 보입니다.",
          "아이디어 하나는 지원팀을 위해 스프레드시트로 내보내는 기능을 추가하는 것입니다.",
          "그리고 수요일 전까지 릴리스 노트를 준비해야 합니다."
        ]
      },
      "es": {
        "voices": [
          "Mónica"
        ],
        "locale": "es_ES",
        "text": [
          "Primero abro la página de inicio de sesión, escribo mi correo y mi contraseña y pulso el botón de entrar.",
          "Después del clic no pasa nada y tampoco aparece ningún error en la consola.",
          "El botón de guardar en la página de ajustes es tan claro que no parece que se pueda pulsar.",
          "Cuando busco un proyecto, la lista desplegable tapa el primer resultado.",
          "Después de subir una foto de perfil nueva tengo que recargar la página para verla.",
          "Una idea: podríamos añadir una opción para exportar a una hoja de cálculo para el equipo de soporte.",
          "También tengo que tener listas las notas de la versión antes del miércoles."
        ]
      },
      "fr": {
        "voices": [
          "Thomas"
        ],
        "locale": "fr_FR",
        "text": [
          "D'abord j'ouvre la page de connexion, je saisis mon adresse e-mail et mon mot de passe, puis je clique sur le bouton de connexion.",
          "Il ne se passe rien après le clic et il n'y a aucune erreur dans la console.",
          "Le bouton enregistrer de la page des réglages est si pâle qu'on ne voit pas qu'il est cliquable.",
          "Quand je cherche un projet, la liste déroulante cache le premier résultat.",
          "Après avoir envoyé une nouvelle photo de profil, je dois recharger la page pour la voir.",
          "Une idée : on pourrait ajouter un export vers un tableur pour l'équipe du support.",
          "Et il faut que les notes de version soient prêtes avant mercredi."
        ]
      },
      "de": {
        "voices": [
          "Anna"
        ],
        "locale": "de_DE",
        "text": [
          "Zuerst öffne ich die Anmeldeseite, gebe meine E-Mail-Adresse und mein Passwort ein und klicke auf Anmelden.",
          "Nach dem Klick passiert nichts, und in der Konsole steht auch kein Fehler.",
          "Der Speichern-Knopf auf der Einstellungsseite ist so blass, dass er nicht anklickbar aussieht.",
          "Wenn ich nach einem Projekt suche, verdeckt die Liste das erste Ergebnis.",
          "Nach dem Hochladen eines neuen Profilbilds muss ich die Seite neu laden, bevor es erscheint.",
          "Eine Idee: Wir könnten für das Support-Team einen Export in eine Tabelle anbieten.",
          "Außerdem müssen die Versionshinweise bis Mittwoch fertig sein."
        ]
      },
      "yue": {
        "voices": [
          "Sinji"
        ],
        "locale": "zh_HK",
        "text": [
          "我打開登入頁面，輸入電郵同密碼，然後撳登入掣。",
          "撳完之後乜嘢反應都冇，主控台都冇錯誤。",
          "設定頁嘅儲存掣顏色太淺，睇唔出可以撳。",
          "有個諗法，可以加一個匯出試算表嘅功能，方便支援團隊。"
        ]
      }
    }
  }
}
```

## File: skills/blurt/scripts/captures.py
size: 8080
sha: c7462723077ff1d78791daa122d5948480c2bdf1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/captures.py

```text
# /// script
# requires-python = ">=3.10"
# ///
"""Captures → items without an agent (v0.7: no tokens). A capture is a line of a shots batch
(<store>/sessions/<ts>-shots/shots.jsonl, K7): a still with its typed or spoken note, or a voice input.

  captures.py file SESSION --captures N … [--project ID|inbox] [--lang en|zh]
      → {"ok", "items": [{"n","uid","id","title","kind","project","path"}], "skipped": [{"n","reason"}]}

Note = the typed text, then the words said (both when there are both). Title = the note's first sentence; quote = the
whole note; kind = the type the user gave the snap in its note bubble (shots.jsonl "kind"; kept as theirs, `_user`),
else a small keyword guess (issue / task / idea, else note); frames = the shot (the inked copy first). Without a
note the title says what it is ("Screenshot 14:32").
Every item gets `enrich: pending`: the app's "AI fill-in" later adds code refs, a better kind (never over the one the
user chose), steps — one agent run for a whole batch (the app's App.enrich). A capture filed before (batch.json
local id C-NNN) is skipped, so a second call is harmless; so is a deleted one, and one dragged out into another app (`"taken": <wall>` — the app's
Recently Taken, kept 7 days; put back on its thread it is `"taken": null` and files as usual). Items are written with items.py (the one writer); the project is --project, else the
capture's own (shots.jsonl), else the batch's store.
"""
from __future__ import annotations

import argparse
import json
import re
import sys
import time
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent))
import items  # noqa: E402

TITLE_MAX = 80
_SENTENCE_END = re.compile(r"[.!?](?=\s|$)|[。！？；;]")
_TRIM = ".。;；,，:：、 "

# Small, deliberately conservative keyword lists: a wrong guess costs the user a click (or AI fill-in fixes it), so
# anything unclear stays a note. English, Chinese, Japanese, Spanish, French, German.
_KINDS = [
    ("issue", re.compile(
        r"\b(bugs?|broken|crash\w*|errors?|fail\w*|wrong|glitch\w*|typo|misaligned|overlap\w*|freez\w*|stuck|"
        r"doesn'?t work|does not work|not working|won'?t (load|open|work)|can'?t (click|open|see|load|save)|"
        r"cannot (click|open|see|load|save)|blank page|404|500|fehler|kaputt|erreur|cass[ée]|no funciona|falla)\b"
        r"|报错|错误|崩溃|闪退|卡住|卡死|没反应|不对|失败|错位|重叠|白屏|乱码|不显示|点不了|打不开|加载不出|有问题|バグ|エラー|動かない|落ちる",
        re.I)),
    ("task", re.compile(
        r"\b(todo|to-do|remember to|don'?t forget|need to|needs to|follow up|ask \w+ (about|to)|check with|"
        r"schedule|send \w+ the|à faire|pendiente|erledigen)\b"
        r"|待办|记得|别忘|跟进|要做|回头|问一下|找\S{0,4}确认|安排|やること|忘れずに",
        re.I)),
    ("idea", re.compile(
        r"\b(idea|what if|how about|could we|we could|maybe we|would be (nice|great|cool)|wish|inspiration|"
        r"love (this|how)|like (this|how)|borrow|steal this|idée|idea|ideen?)\b"
        r"|想法|点子|灵感|要是|如果能|不如|可以做|可以加|借鉴|参考一下|这个好|挺好|做得好|アイデア|いいね",
        re.I)),
]

def guess_kind(text: str | None) -> str:
    t = text or ""
    for kind, pat in _KINDS:
        if pat.search(t):
            return kind
    return "note"

def first_sentence(text: str, limit: int = TITLE_MAX) -> str:
    """The note's first sentence (or line), at most `limit` characters, cut at a word where there are words."""
    line = next((ln.strip() for ln in text.strip().splitlines() if ln.strip()), "")
    m = _SENTENCE_END.search(line)
    if m and m.start() >= 3:
        line = line[:m.end()]
    line = line.strip().rstrip(_TRIM).strip() or line.strip()
    if len(line) <= limit:
        return line
    cut = line[:limit - 1]
    sp = cut.rfind(" ")
    if sp > limit * 0.6:
        cut = cut[:sp]
    return cut.rstrip(_TRIM) + "…"

LABELS = {"en": {"shot": "Screenshot", "voice": "Voice note"}, "zh": {"shot": "截图", "voice": "语音"}}

def _lang(lang: str | None) -> str:
    try:
        import handoff  # noqa: PLC0415
        return handoff.ui_lang(lang)
    except Exception:  # noqa: BLE001 — the title still needs a language
        return "zh" if (lang or "").lower().startswith("zh") else "en"

def note_of(line: dict) -> str:
    """A capture's note: what was typed first, then what was said (each once) — as the app's card shows it."""
    typed, said = (s.strip() if isinstance(s, str) else "" for s in (line.get("text"), line.get("said")))
    if typed and said:
        if said in typed:
            return typed
        if typed in said:
            return said
        return f"{typed}\n{said}"
    return typed or said

def fields_for(n: int, line: dict, lang: str) -> dict:
    """The items.py `add` fields for one capture."""
    voice = line.get("type") == "voice"
    note = note_of(line)
    if note:
        title = first_sentence(note)
    else:
        wall = line.get("wall") if isinstance(line.get("wall"), (int, float)) else time.time()
        title = f"{LABELS[lang]['voice' if voice else 'shot']} {time.strftime('%H:%M', time.localtime(wall))}"
    # the type the user gave the snap in its note bubble wins; undecided, the keyword guess (AI fill-in can do better)
    f: dict = {"id": f"C-{n:03d}", "kind": items.chosen_kind(line) or guess_kind(note), "title": title,
               "source": {"type": "voice" if voice else "snap", "shot": n}, "enrich": "pending"}
    if note:
        f["quote"] = note
    frames = [{"path": p} for p in (line.get("marked"), line.get("file")) if isinstance(p, str) and p]
    if frames:
        f["frames"] = frames
    return f

def file_captures(session: Path, ns: list[int], project: str | None = None, lang: str | None = None) -> dict:
    session = items.real(session)
    shots = items.read_shots(session)
    lang = _lang(lang)
    made, skipped = [], []
    items.TOUCHED.clear()
    try:
        for n in ns:
            line = shots.get(n)
            if not line:
                skipped.append({"n": n, "reason": "missing"})
                continue
            if line.get("deleted"):
                skipped.append({"n": n, "reason": "deleted"})
                continue
            if line.get("taken"):  # dragged out into another app (Recently Taken): put back on its thread first
                skipped.append({"n": n, "reason": "taken"})
                continue
            b = items.load_batch(session) or {}
            if f"C-{n:03d}" in (b.get("local") or {}):
                skipped.append({"n": n, "reason": "filed"})
                continue
            pid = project or (line.get("project") if isinstance(line.get("project"), str) else None)
            f = fields_for(n, line, lang)
            r = items.add(session, pid, f, None)
            made.append({"n": n, "uid": r["uid"], "id": r["id"], "title": f["title"], "kind": f["kind"],
                         "project": pid, "path": r["path"]})
    finally:
        items.reindex_touched()
    return {"ok": True, "items": made, "skipped": skipped}

def main(argv: list[str] | None = None) -> None:
    p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
    sub = p.add_subparsers(dest="cmd", required=True)
    s = sub.add_parser("file")
    s.add_argument("session")
    s.add_argument("--captures", nargs="+", type=int, required=True, metavar="N")
    s.add_argument("--project")
    s.add_argument("--lang", choices=["en", "zh", "zh-Hans"])
    a = p.parse_args(argv)
    try:
        out = file_captures(Path(a.session), a.captures, a.project, a.lang)
    except items.ItemsError as e:
        print(json.dumps({"ok": False, "error": str(e), "code": e.code}, ensure_ascii=False), flush=True)
        print(f"ERROR: {e}", file=sys.stderr)
        sys.exit(e.exit_code)
    print(json.dumps(out, ensure_ascii=False), flush=True)

if __name__ == "__main__":
    main()
```

## File: skills/blurt/scripts/curated_models.json
size: 1854
sha: 47c6d93ec2eb545eb5c77f8efc619a2f3c5f69c2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/curated_models.json

```text
{
  "schema": 1,
  "updated": "2026-10-31",
  "about": "Blurt's measured cloud models for each job, best first (This Mac is always offered too). Settings shows these and nothing else; any other model is a Custom Model. Sources: docs/design/dictation-eval-2026-10-31.md §2.1, §2.3, §6.3; docs/design/first-minute-speech.md §2.5. Served at https://blurt.work/models/curated.json; keep site/models/curated.json the same file.",
  "jobs": {
    "polish": [
      {"service": "dashscope", "model": "deepseek-v4.1-flash", "name": "DeepSeek V4.1 Flash", "regions": ["china", "global"], "note": "polish.ds41", "measured": "2026-10-31"},
      {"service": "deepseek", "model": "deepseek-flash", "name": "DeepSeek V4.1 Flash", "note": "polish.deepseek_flash", "measured": "2026-10-31"}
    ],
    "translate": [
      {"service": "dashscope", "model": "deepseek-v4.1-flash", "name": "DeepSeek V4.1 Flash", "regions": ["china", "global"], "note": "translate.ds41", "measured": "2026-10-29"},
      {"service": "deepseek", "model": "deepseek-flash", "name": "DeepSeek V4.1 Flash", "note": "translate.deepseek_flash", "measured": "2026-10-29"}
    ],
    "vision": [
      {"service": "dashscope", "model": "qwen3.6-flash", "name": "Qwen3.6 Flash", "regions": ["china", "global"], "note": "vision.qwen36", "measured": "2026-10-29"},
      {"service": "deepseek", "model": "deepseek-flash", "name": "DeepSeek V4.1 Flash", "note": "vision.deepseek_flash", "measured": "2026-10-29"}
    ],
    "speech": [
      {"service": "dashscope", "model": "qwen3-asr-flash", "name": "Qwen3-ASR Flash", "regions": ["china", "global"], "note": "speech.qwen3_asr", "measured": "2026-10-31"},
      {"service": "volcengine-speech", "model": "volcengine-seedasr", "name": "Doubao Seed-ASR 2.0", "regions": ["china"], "note": "speech.seedasr", "measured": "2026-10-31"}
    ]
  }
}
```

## File: skills/blurt/scripts/dictation.py
size: 9902
sha: 808e7f935f6cc37acd88645bd23a0db4ee670ee7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation.py

```text
# /// script
# requires-python = ">=3.10"
# ///
"""Dictation history ($BLURT_HOME/dictation/history.jsonl, written by the macOS app; docs/design/dictation.md).

  dictation.py list [--query TEXT] [--days N] [--limit N]   → {"ok", "entries": [...]} newest first, edits applied
  dictation.py item ID [--project ID|inbox] [--lang en|zh]   turn one dictation into an item (items.py add, no agent)
                                                            → {"ok", "item": {"id","uid","title","kind","project","path"}}
  dictation.py prune [--days N]                             drop entries older than N days (record.dictation.retention_days,
                                                            30), and their audio, and any recording in audio/ no entry
                                                            keeps that is over an hour old → {"ok", "removed"}

The file is append-only: an entry per dictation, then edit lines applied in order —
{"op":"delete","ids":[…]}, {"op":"item","id","item","uid"}, {"op":"clear"}, {"op":"correct","id","text"} (→ "corrected"). `prune` rewrites it compacted.
"""
from __future__ import annotations

import argparse
import fcntl
import json
import os
import re
import sys
import time
from contextlib import contextmanager
from datetime import datetime, timedelta, timezone
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent))
from _common import BLURT_HOME, global_config  # noqa: E402

DIR = BLURT_HOME / "dictation"
HISTORY = DIR / "history.jsonl"

class Fail(Exception):
    def __init__(self, message: str, code: str = "error"):
        super().__init__(message)
        self.code = code

def _time(e: dict) -> datetime:
    try:
        t = datetime.fromisoformat(str(e.get("t")).replace("Z", "+00:00"))
        return t if t.tzinfo else t.replace(tzinfo=timezone.utc)
    except ValueError:
        return datetime.fromtimestamp(0, timezone.utc)

def load(path: Path = HISTORY) -> list[dict]:
    """Entries, newest first, with the edit lines applied."""
    order: list[str] = []
    by_id: dict[str, dict] = {}
    try:
        lines = path.read_text(encoding="utf-8").splitlines()
    except OSError:
        return []
    for ln in lines:
        try:
            o = json.loads(ln)
        except ValueError:
            continue
        if not isinstance(o, dict):
            continue
        op = o.get("op")
        if op == "delete":
            for i in o.get("ids") or []:
                by_id.pop(i, None)
        elif op == "clear":
            by_id, order = {}, []
        elif op == "item":
            if o.get("id") in by_id:
                by_id[o["id"]].update({"item": o.get("item"), "item_uid": o.get("uid")})
        elif op == "correct":       # the user's corrected text (the Dictation page): kept as "corrected" on the entry
            if o.get("id") in by_id and isinstance(o.get("text"), str):
                by_id[o["id"]]["corrected"] = o["text"]
        elif isinstance(o.get("id"), str) and isinstance(o.get("raw"), str):
            if o["id"] not in by_id:
                order.append(o["id"])
            by_id[o["id"]] = o
    return sorted((by_id[i] for i in order if i in by_id), key=_time, reverse=True)

@contextmanager
def exclusive(path: Path = HISTORY):
    """One writer of history.jsonl at a time, with the app (DictationHistory.exclusive): an advisory flock on
    .history.lock beside it, so an append never lands between a prune's read and its rewrite."""
    path.parent.mkdir(parents=True, exist_ok=True)
    fd = os.open(path.parent / ".history.lock", os.O_RDWR | os.O_CREAT, 0o644)
    try:
        fcntl.flock(fd, fcntl.LOCK_EX)
        yield
    finally:
        fcntl.flock(fd, fcntl.LOCK_UN)
        os.close(fd)

def append(o: dict, path: Path = HISTORY) -> None:
    with exclusive(path):
        fd = os.open(path, os.O_WRONLY | os.O_APPEND | os.O_CREAT, 0o644)
        try:
            os.write(fd, (json.dumps(o, ensure_ascii=False, sort_keys=True) + "\n").encode())
        finally:
            os.close(fd)

def retention_days() -> int:
    d = ((global_config().get("record") or {}).get("dictation") or {}).get("retention_days")
    return int(d) if isinstance(d, (int, float)) and d >= 0 else 30

TAKE_WAV = re.compile(r"d-\d{8}-\d{6}-[0-9a-f]{4}\.wav")

def prune_orphan_audio(entries: list[dict], path: Path = HISTORY, min_age: float = 3600,
                       now: float | None = None, days: int | None = None) -> list[str]:
    """Recordings in audio/ (a take's <id>.wav, its streamed pieces <id>-pN.wav) that no entry keeps: a take dropped,
    cancelled, or cut short by a quit or a crash. Only those older than `min_age` (a take still running is never that
    old); the Lab's own recordings (dictation/lab/) are not here. A take's own recording younger than `days` stays:
    the app turns it into an "interrupted" entry with Retry (DictationHistory.recoverInterrupted). The same rule as
    DictationHistory.pruneOrphanAudio."""
    audio = path.parent / "audio"
    if not audio.is_dir():
        return []
    kept = {(path.parent / e["audio"]).resolve() for e in entries if isinstance(e.get("audio"), str)}
    now = now or time.time()
    gone = []
    for f in sorted(audio.glob("*.wav")):
        age = now - f.stat().st_mtime
        if f.resolve() in kept or age < min_age:
            continue
        if days is not None and TAKE_WAV.fullmatch(f.name) and age < days * 86400:
            continue
        f.unlink(missing_ok=True)
        gone.append(f.name)
    return gone

def prune(days: int, path: Path = HISTORY, now: datetime | None = None) -> int:
    with exclusive(path):
        return _prune(days, path, now)

def _prune(days: int, path: Path, now: datetime | None) -> int:
    entries = load(path)
    prune_orphan_audio(entries, path, days=days)
    if not path.exists():
        return 0
    cutoff = (now or datetime.now(timezone.utc)) - timedelta(days=days)
    keep = [e for e in entries if _time(e) >= cutoff]
    drop = [e for e in entries if _time(e) < cutoff]
    for e in drop:
        if isinstance(e.get("audio"), str):
            (path.parent / e["audio"]).unlink(missing_ok=True)
    out = []
    for e in reversed(keep):
        extra = {k: e.pop(k) for k in ("item", "item_uid") if k in e}
        out.append(json.dumps(e, ensure_ascii=False, sort_keys=True))
        if extra.get("item"):
            out.append(json.dumps({"op": "item", "id": e["id"], "item": extra["item"], "uid": extra.get("item_uid")},
                                  ensure_ascii=False, sort_keys=True))
    tmp = path.with_suffix(".tmp")
    tmp.write_text("".join(x + "\n" for x in out), encoding="utf-8")
    os.replace(tmp, path)
    return len(drop)

def make_item(entry_id: str, project: str | None, lang: str | None) -> dict:
    """A dictation → an item, the way a captured note becomes one (captures.py): title = its first sentence,
    quote = the whole text, kind = the keyword guess, enrich: pending (AI fill-in can add the rest)."""
    import captures  # noqa: PLC0415
    import items  # noqa: PLC0415
    e = next((x for x in load() if x["id"] == entry_id), None)
    if not e:
        raise Fail(f"no dictation {entry_id}", "not_found")
    if e.get("item"):
        return {"id": e["item"], "uid": e.get("item_uid"), "already": True}
    text = (e.get("corrected") or e.get("text") or e.get("raw") or "").strip()
    if not text:
        raise Fail("this dictation has no text", "empty")
    fields = {"kind": captures.guess_kind(text), "title": captures.first_sentence(text), "quote": text,
              "source": {"type": "dictation", "app": e.get("app"), "dictation": e["id"]}, "enrich": "pending"}
    if e.get("language"):
        fields["language"] = e["language"]
    pid = items.resolve_project(project or "inbox")
    r = items.add(None, pid, fields, None)
    items.reindex_touched()
    append({"op": "item", "id": e["id"], "item": r["id"], "uid": r["uid"],
            "t": datetime.now().astimezone().isoformat(timespec="seconds")})
    return {"id": r["id"], "uid": r["uid"], "title": fields["title"], "kind": fields["kind"], "project": pid, "path": r["path"]}

def main(argv: list[str] | None = None) -> None:
    p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
    sub = p.add_subparsers(dest="cmd", required=True)
    s = sub.add_parser("list")
    s.add_argument("--query")
    s.add_argument("--days", type=float)
    s.add_argument("--limit", type=int, default=0)
    s = sub.add_parser("item")
    s.add_argument("id")
    s.add_argument("--project")
    s.add_argument("--lang", choices=["en", "zh", "zh-Hans"])
    s = sub.add_parser("prune")
    s.add_argument("--days", type=int)
    a = p.parse_args(argv)
    try:
        if a.cmd == "list":
            es = load()
            if a.days is not None:
                cut = datetime.now(timezone.utc) - timedelta(days=a.days)
                es = [e for e in es if _time(e) >= cut]
            if a.query:
                q = a.query.lower()
                es = [e for e in es if any(q in str(e.get(k) or "").lower() for k in ("text", "raw", "polished", "app"))]
            out = {"ok": True, "entries": es[:a.limit] if a.limit else es}
        elif a.cmd == "item":
            out = {"ok": True, "item": make_item(a.id, a.project, a.lang)}
        else:
            out = {"ok": True, "removed": prune(a.days if a.days is not None else retention_days())}
    except Fail as e:
        out = {"ok": False, "error": str(e), "code": e.code}
    except Exception as e:  # noqa: BLE001 — items.py's own errors carry a code
        out = {"ok": False, "error": str(e), "code": getattr(e, "code", "error")}
    print(json.dumps(out, ensure_ascii=False), flush=True)
    if not out.get("ok"):
        sys.exit(1)

if __name__ == "__main__":
    main()
```

## File: skills/blurt/scripts/dictation_lab.py
size: 92422
sha: ca0dfc4868b00516a5996ba2f1898b61f9bfc59a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_lab.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_lab.py

## File: skills/blurt/scripts/dictation_stitch.py
size: 13836
sha: 1c4ca9908650bc29bb512aa75824820404e5824c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_stitch.py

```text
"""BlurtCore's DictationStitch and DictationStream's polish windows, ported (docs/design/dictation.md §Streaming), so
the Dictation Lab can replay a take the way the app polishes it while the user talks (`mode=windows`): each piece
polished in a window with the clause carried from the window before, what polish wrote up to its last comma or
sentence end committed, the dictation's text so far sent along as context, and the joined result checked once more
against the joined transcript — and, for Structured, the one structuring pass at key-up. The same rules as the Swift
code (DictationStitchTests; tests/test_dictation_stitch.py holds the shared cases): keep the two in step.

Mechanical only (§Rules vs model): pauses, punctuation marks, scripts and units. Whether a sentence is complete,
whether a word is a name, whether a piece corrects the one before — that is the polish model's call, made over a
window that spans the seam.
"""
from __future__ import annotations

import re

LONG_PAUSE = 1.2
_TRAILING = set("。.!?！？，,、；;…")
_TERMINATORS = set("。.!?！？")
_CLOSERS = set("”’\"'」』）)")
_CLAUSE = set("，；、：,;:")

def _is_cjk(c: str) -> bool:
    o = ord(c)
    return 0x3400 <= o <= 0x4DBF or 0x4E00 <= o <= 0x9FFF or 0xF900 <= o <= 0xFAFF or 0x3040 <= o <= 0x30FF \
        or 0xAC00 <= o <= 0xD7AF

def _word_char(c: str) -> bool:
    return not _is_cjk(c) and (c.isalpha() or c.isdigit()) and not c.isspace()

def units(text: str) -> list[str]:
    """Each CJK character, each Latin word (lower case, an apostrophe inside), each digit."""
    out, i, t = [], 0, text or ""
    while i < len(t):
        c = t[i]
        if _is_cjk(c) or c.isdigit():
            out.append(c.lower())
            i += 1
        elif c.isalpha():
            j = i + 1
            while j < len(t) and t[j].isalpha() and not _is_cjk(t[j]):
                j += 1
            if j < len(t) - 1 and t[j] in "'’" and t[j + 1].isalpha() and not _is_cjk(t[j + 1]):
                j += 1
                while j < len(t) and t[j].isalpha() and not _is_cjk(t[j]):
                    j += 1
            out.append(t[i:j].lower())
            i = j
        else:
            i += 1
    return out

def join(a: str, b: str) -> str:
    """A space only where two Latin words (or numbers) meet."""
    a, b = (a or "").strip(), (b or "").strip()
    if not a:
        return b
    if not b:
        return a
    latin_end = _word_char(a[-1]) or a[-1] in ".,;:!?)”\""
    return a + (" " if latin_end and _word_char(b[0]) else "") + b

def join_all(parts: list[str]) -> str:
    out = ""
    for p in parts:
        out = join(out, p)
    return out

def split_trailing(text: str) -> tuple[str, str]:
    core, end = (text or "").strip(), ""
    while core and (core[-1] in _TRAILING or core[-1].isspace()):
        if not core[-1].isspace():
            end = core[-1] + end
        core = core[:-1]
    return core, end

def ends_cjk(text: str) -> bool:
    for c in reversed(text or ""):
        if c.isalpha() or c.isdigit():
            return _is_cjk(c)
    return False

def terminator(end: str, after: str) -> str:
    c = next((x for x in end if x in _TERMINATORS), ".")
    cjk = ends_cjk(after)
    if c in "!！":
        return "！" if cjk else "!"
    if c in "?？":
        return "？" if cjk else "?"
    return "。" if cjk else "."

def mark(end: str, after: str) -> str:
    """The one mark a pause leaves: the sentence end in `end` (in the text's script), else its comma / semicolon."""
    if any(c in _TERMINATORS for c in end):
        return terminator(end, after)
    if not end:
        return ""
    if any(c in "；;" for c in end):
        return "；" if ends_cjk(after) else ";"
    return "，" if ends_cjk(after) else ","

def seam(previous: str, nxt: str, pause: float | None) -> tuple[str, str]:
    """A pause between two pieces: after a long one (≥ LONG_PAUSE) the speech model's own mark stays; after a breath
    (or one not known) it goes — a cut is not a sentence end. Case and words are left as they are."""
    core, end = split_trailing(previous)
    if not core:
        return previous, nxt
    if pause is not None and pause >= LONG_PAUSE and end:
        return core + mark(end, core), nxt
    return core, nxt

def fallback_seam(previous: str, nxt: str, pause: float | None, heard_end: str) -> str:
    """Where a polish window fell back to the transcript: the seam still gets its punctuation — a long pause the seam
    rule's, and a short one a comma where the speech model heard a boundary (it ended the piece with a mark). Without
    it the take read 「…跑完第二，…」."""
    core, end = split_trailing(previous)
    if not core:
        return join(previous, nxt)
    if pause is not None and pause >= LONG_PAUSE:
        a, b = seam(core + (end or heard_end), nxt, pause)
        return join(a, b)
    if end or heard_end:
        return core + ("，" if ends_cjk(core) else ", ") + (nxt or "").lstrip()
    return join(core, nxt)

def join_pieces(texts: list[str], pauses: list[float | None], fallback: bool = False) -> str:
    """The pieces' texts with the seam rule; `fallback`: with fallback_seam (a comma where a boundary was heard)."""
    acc, after, after_end = "", None, ""
    for i, t in enumerate(texts):
        pause = pauses[i] if i < len(pauses) else None
        t = (t or "").strip()
        if not t:
            if after is not None and pause is not None:
                after += pause
            continue
        if not acc:
            acc = t
        elif fallback:
            acc = fallback_seam(acc, t, after, after_end)
        else:
            a, b = seam(acc, t, after)
            acc = join(a, b)
        after, after_end = pause, split_trailing(t)[1]
    return acc

def commit_split(text: str, at_clauses: bool = True) -> tuple[str, str, str]:
    core, end = split_trailing(text)
    clause = _CLAUSE if at_clauses else set()
    cut, i = None, 0
    while i < len(core):
        c = core[i]
        j = i + 1
        if c in _TERMINATORS or c in clause:
            while j < len(core) and core[j] in _CLOSERS:
                j += 1
            latin = c.isascii()
            if not latin or j == len(core) or core[j].isspace() or _is_cjk(core[j]):
                cut = j
        i = j
    ce = cut if cut is not None else 0
    return core[:ce].strip(), core[ce:].strip(), end

def window_input(carry: str, piece: str) -> str:
    """DictationStitch.windowInput: a polish window's input — the clause carried from the window before + the new
    piece, with no mark between them whatever the pause. After a long pause the carried clause used to go in with the
    mark the window before ended it with (polish's own, written without seeing what came next: nearly always 。), and
    the model kept a mark there — 5 of 15 mid-clause thinking pauses ≥ 1.2 s at a cut on real spontaneous speech,
    none without it. Whether the clause ended is the model's call from the words (docs/design/dictation.md §Thinking
    pauses on real speech)."""
    return join(carry, piece)

def keep_case(inp: str, out: str) -> str:
    """The output with the case its first word had in the input (polish capitalises a window that continues a
    sentence: "update the docs" → "Update the docs")."""
    i, o = (inp or "").strip(), (out or "").strip()
    if not i or not o or not i[0].islower() or not o[0].isupper() or not _word_char(o[0]):
        return out
    wi = re.match(r"[^\W\d_'’]+(?:['’][^\W\d_]+)*", i)
    wo = re.match(r"[^\W\d_'’]+(?:['’][^\W\d_]+)*", o)
    if not wi or not wo or len(wi.group()) != len(wo.group()) or wi.group()[1:] != wo.group()[1:] \
            or wi.group().lower() != wo.group().lower():
        return out
    return wi.group() + o[len(wo.group()):]

def mid_sentence(text: str) -> bool:
    t = (text or "").rstrip()
    return bool(t) and t[-1] not in _TERMINATORS and t[-1] not in "\n"

# ------------------------------------------------------------------ hearing again (DictationStitch.rehearGroups)
REHEAR_WINDOW = 10.0     # s (the Lab on the user's 22 takes: 10 s kept the gain of 15 s at a third of the wait at key-up)

def rehear_window(model_id: str | None, configured=None) -> float:
    """The window a model hears again in (ModelCatalog.rehearWindow): record.dictation.rehear_window_s when it is set,
    else the model's `rehear_window_s` in asr_models.json (Qwen3-ASR 1.7B 30 s, 0.6B 20 s: measured on 43 of the
    founder's takes, docs/design/dictation.md §Hearing again), else REHEAR_WINDOW. Never under 4 s, as the app."""
    try:
        if configured is not None and float(configured) > 0:
            return max(4.0, float(configured))
    except (TypeError, ValueError):
        pass
    import json  # noqa: PLC0415
    from pathlib import Path  # noqa: PLC0415
    try:
        models = json.loads((Path(__file__).resolve().parent / "asr_models.json").read_text(encoding="utf-8"))["models"]
    except (OSError, ValueError, KeyError):
        return REHEAR_WINDOW
    m = next((m for m in models if m.get("id") == model_id), None) or {}
    w = m.get("rehear_window_s")
    return max(4.0, float(w)) if isinstance(w, (int, float)) and w > 0 else REHEAR_WINDOW

def rehear_groups(pieces: list[dict], window: float = REHEAR_WINDOW) -> list[list[int]]:
    """The windows a take is heard again in (docs/design/dictation.md §Hearing again): piece indices, a window closing
    after a piece once it spans `window` seconds and the next piece didn't begin at a hard cut. pieces: [{"start",
    "end", "hard"}] (seconds; `hard`: the piece began at a hard cut)."""
    out, first = [], 0
    for i in range(len(pieces) - 1):
        if not pieces[i + 1].get("hard") and pieces[i]["end"] - pieces[first]["start"] >= window:
            out.append(list(range(first, i + 1)))
            first = i + 1
    if first < len(pieces):
        out.append(list(range(first, len(pieces))))
    return out

# ------------------------------------------------------------------ DictationStream's polish windows
def stream(pieces: list[dict], pauses: list[float | None], polish, guard=None, context: dict | None = None,
           structure=None) -> dict:
    """Replay the app's windows. pieces: [{"raw"}] (the transcript of each piece, in order; the last one is where the
    dictation ended); polish(text, context) → polish.py's answer; guard(raw, output, fallback) → the stitch guard's.
    `structure(text)` (Structured): at key-up, Light's stitched text goes through the structuring pass once; a refusal
    types Light's text. → {"text", "raw", "light", "pieces": [{"polish_in", "text", "fell_back", "reason", "ms",
    "echo"}], "fell_back", "reason", "stitch", "structured": None | {…, "input"}}."""
    carry = carry_end = ""
    out_pieces: list[dict] = []
    n = len(pieces)
    for idx, p in enumerate(pieces):
        raw = (p.get("raw") or "").strip()
        rec = {"index": idx, "raw": raw, "text": "", "polish_in": "", "fell_back": False, "reason": None, "ms": 0}
        out_pieces.append(rec)
        if not raw:
            continue
        last = idx == n - 1
        core = raw if last else split_trailing(raw)[0]
        g_prev = pauses[idx - 1] if idx > 0 and idx - 1 < len(pauses) else None
        # the carried clause goes into this window with no mark, however long the pause (window_input)
        carry_in = carry
        carry = carry_end = ""
        inp = window_input(carry_in, core)
        so = join_all([q["text"] for q in out_pieces[:idx]])
        ctx = dict(context or {})
        if so:
            ctx["dictated"] = so
        rec["polish_in"] = inp
        r = polish(inp, ctx or None) or {}
        rec.update(fell_back=bool(r.get("fell_back")), reason=r.get("reason") if r.get("fell_back") else None,
                   ms=int(r.get("ms") or 0), echo=r.get("echo"), polished=r.get("polished"))
        out = (r.get("text") or "").strip() or inp
        if rec["fell_back"] and carry_in and out.startswith(carry_in):
            # the window fell back: its seam (the pause before this piece) still gets its punctuation
            heard = split_trailing(pieces[idx - 1].get("raw") or "")[1] if idx > 0 else ""
            out = fallback_seam(carry_in, out[len(carry_in):], g_prev, heard)
        if mid_sentence(so) and not rec["fell_back"]:
            out = keep_case(inp, out)          # the model capitalised a window that continues a sentence
        if last:
            rec["text"] = out
        else:
            commit, carry, carry_end = commit_split(out)
            rec["text"] = commit
    raw_all = join_pieces([p.get("raw") or "" for p in pieces], pauses)
    text = join_all([q["text"] for q in out_pieces] + [carry + carry_end])
    fell = [q for q in out_pieces if q["fell_back"]]
    res = {"text": text or raw_all, "raw": raw_all, "pieces": out_pieces, "fell_back": bool(fell),
           "reason": fell[0]["reason"] if fell else None, "stitch": None, "structured": None}
    if guard is not None and len(pieces) > 1 and any(q["polish_in"] for q in out_pieces) and text != raw_all:
        fb = join_pieces([p.get("raw") or "" for p in pieces], pauses, fallback=True)
        g = guard(raw_all, text, fb) or {}
        if g.get("pass") is False:
            res.update(text=g.get("fallback_text") or fb or raw_all, fell_back=True,
                       reason="stitch_" + str(g.get("reason") or "guard"), stitch=g.get("reason") or "guard")
    res["light"] = res["text"]
    if structure is not None and res["text"].strip():
        s = structure(res["text"]) or {}
        res["structured"] = {**s, "input": res["text"]}
        if not s.get("fell_back") and (s.get("text") or "").strip():
            res["text"] = s["text"].strip()
    return res
```

## File: skills/blurt/scripts/dictation_styles.py
size: 7673
sha: f63e9f211126bcfa7c2fd3fa6a622ad621c208bb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_styles.py

```text
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# ///
"""Dictation styles for tools outside the app (docs/design/dictation-styles.md §3): which text a style types, the
category variants of light and the app → category table — the same rules as BlurtCore's DictationStyle.swift. Whether
and how a take is structured is the polish model's call (polish.py `structure`); this only picks the text and applies
the variant. The Dictation Lab (dictation_lab.py) re-runs a case per style with these.

  dictation_styles.py style --text "…" --style structured [--category chat] [--structured "…"]
"""
from __future__ import annotations

import argparse
import json
import re
import sys
import unicodedata

STYLES = ("verbatim", "light", "structured", "auto")
CATEGORIES = ("chat", "code", "mail", "notes", "other")
_LIST_LINE = re.compile(r"^[ \t]*(?:[0-9]{1,2}(?:[.)）](?![0-9])|、)|[-•*](?=[ \t]))[ \t]*\S", re.M)

def _cjk(c: str) -> bool:
    o = ord(c)
    return 0x3400 <= o <= 0x4DBF or 0x4E00 <= o <= 0x9FFF or 0xF900 <= o <= 0xFAFF or 0x3040 <= o <= 0x30FF or 0xAC00 <= o <= 0xD7AF

def list_lines(text: str) -> int:
    """The numbered or bulleted lines in a text ("1. …", "- …" at a line start): what Light must never produce, and
    what tells a structured text that is a list from one that stayed a paragraph."""
    return len(_LIST_LINE.findall(text or ""))

# ------------------------------------------------------------------ the category variants (DictationStyleVariant)
def drop_final_stop(text: str) -> str | None:
    t = (text or "").strip()
    if not t or t[-1] not in "。." or t.endswith("...") or t.endswith("。。"):
        return None
    body = t[:-1]
    for i, c in enumerate(body):
        if c in "。！？!?\n":
            return None
        if c == "." and i + 1 < len(body) and body[i + 1] == " ":
            return None
    return body

def one_line(text: str) -> str:
    out = ""
    for part in [p.strip() for p in (text or "").split("\n") if p.strip()]:
        if out:
            a, b = out[-1], part[0]
            out += "" if _cjk(a) or _cjk(b) or a in "，。！？：；、" else " "
        out += part
    return out

def variant(text: str, category: str, structured: bool) -> tuple[str, list[str]]:
    t, changes = text or "", []
    if category == "chat":
        s = re.sub(r"\n[ \t]*\n[\n \t]*", "\n", t)
        if s != t:
            t = s
            changes.append("blank_lines")
        if not structured and (d := drop_final_stop(t)) is not None:
            t = d
            changes.append("final_stop")
    elif category == "code" and not structured and "\n" in t:
        t = one_line(t)
        changes.append("one_line")
    return t, changes

def apply_style(text: str, style: str, category: str = "other", structured: str | None = None) -> dict:
    """The text in `style` for an app of `category`. `structured`: the structuring pass's text for this take (the
    polish model's: polish.py `structure`) — Structured types it; Auto only when it is a list (≥ 2 list lines), else
    Light's text. Then the category's variant. → {"text", "rendered" (a list was typed), "variant"}."""
    if style not in STYLES:
        raise ValueError(f"unknown style {style!r}")
    out, rendered = text or "", False
    if style in ("structured", "auto") and structured is not None and structured.strip():
        if style == "structured" or list_lines(structured) >= 2:
            out = structured.strip()
            rendered = list_lines(out) >= 2
    out, changes = variant(out, category, rendered)
    return {"text": out, "rendered": rendered, "variant": changes}

# ------------------------------------------------------------------ app → category (DictationAppCategory)
_EXACT = {
    **dict.fromkeys(["com.tencent.xinwechat", "com.tencent.qq", "com.tinyspeck.slackmacgap", "ru.keepcoder.telegram",
                     "com.apple.mobilesms", "com.hnc.discord", "net.whatsapp.whatsapp", "com.alibaba.dingtalkmac",
                     "com.microsoft.teams2", "com.microsoft.teams", "org.whispersystems.signal-desktop", "com.facebook.archon",
                     "com.electron.lark", "com.bytedance.lark", "com.tencent.wework"], "chat"),
    **dict.fromkeys(["com.apple.terminal", "com.googlecode.iterm2", "dev.warp.warp-stable", "com.microsoft.vscode",
                     "com.microsoft.vscodeinsiders", "com.todesktop.230313mzl4w4u92", "com.apple.dt.xcode",
                     "com.mitchellh.ghostty", "net.kovidgoyal.kitty", "org.alacritty", "io.alacritty", "co.zeit.hyper",
                     "dev.zed.zed", "com.exafunction.windsurf", "com.sublimetext.4", "com.github.wez.wezterm",
                     "com.panic.nova", "com.barebones.bbedit"], "code"),
    **dict.fromkeys(["com.apple.mail", "com.microsoft.outlook", "com.readdle.smartemail-mac", "com.superhuman.electron",
                     "it.bloop.airmail2", "com.mimestream.mimestream", "com.netease.mailmaster"], "mail"),
    **dict.fromkeys(["com.apple.notes", "md.obsidian", "notion.id", "net.shinyfrog.bear", "com.apple.iwork.pages",
                     "com.microsoft.word", "com.lukilabs.lukiapp", "com.logseq.logseq", "abnerworks.typora",
                     "com.ulyssesapp.mac", "com.apple.textedit", "com.evernote.evernote", "com.youdao.note.youdaonotemac"], "notes"),
}
_PARTS = [
    ("chat", {"wechat", "xinwechat", "feishu", "lark", "dingtalk", "slack", "telegram", "discord", "whatsapp", "signal",
              "teams", "wework", "messenger"}),
    ("code", {"terminal", "iterm2", "warp", "vscode", "jetbrains", "xcode", "ghostty", "kitty", "alacritty", "zed",
              "windsurf", "sublimetext", "wezterm"}),
    ("mail", {"mail", "outlook", "mailmaster", "airmail", "spark", "superhuman"}),
    ("notes", {"notes", "obsidian", "notion", "bear", "logseq", "typora", "ulysses", "evernote", "craft"}),
]

_TERMINALS = {"com.apple.terminal", "com.googlecode.iterm2", "dev.warp.warp-stable", "com.mitchellh.ghostty",
              "net.kovidgoyal.kitty", "org.alacritty", "io.alacritty", "co.zeit.hyper", "com.github.wez.wezterm"}
_TERMINAL_PARTS = {"terminal", "iterm2", "warp", "ghostty", "kitty", "alacritty", "wezterm"}

def is_terminal(bundle: str | None) -> bool:
    """A terminal (DictationAppCategory.isTerminal): polish's "terminal" variant — a command said there stays a command."""
    b = (bundle or "").lower()
    return bool(b) and (b in _TERMINALS or bool(set(re.split(r"[.\-_]", b)) & _TERMINAL_PARTS))

def category(bundle: str | None) -> str:
    b = (bundle or "").lower()
    if not b:
        return "other"
    if b in _EXACT:
        return _EXACT[b]
    parts = set(re.split(r"[.\-_]", b))
    for c, names in _PARTS:
        if parts & names:
            return c
    return "other"

def main() -> None:
    ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
    sub = ap.add_subparsers(dest="cmd", required=True)
    s = sub.add_parser("style")
    s.add_argument("--text", required=True)
    s.add_argument("--style", choices=STYLES, required=True)
    s.add_argument("--category", choices=CATEGORIES, default="other")
    s.add_argument("--structured", help="the structuring pass's text (polish.py run --style structured)")
    a = ap.parse_args()
    text = unicodedata.normalize("NFC", a.text)
    print(json.dumps({"ok": True, **apply_style(text, a.style, a.category, a.structured)}, ensure_ascii=False))

if __name__ == "__main__":
    try:
        main()
    except ValueError as e:
        print(json.dumps({"ok": False, "error": str(e)}), file=sys.stderr)
        sys.exit(2)
```

## File: skills/blurt/scripts/dictation_vocab.py
size: 30471
sha: 3e9a094f7c53e54a4f375e9a671012f4ada88649
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_vocab.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/dictation_vocab.py

## File: skills/blurt/scripts/doctor.py
size: 10093
sha: e967fecf4aea4df313ba070e6e6487a04a969b57
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/doctor.py

```text
# /// script
# requires-python = ">=3.10"
# ///
"""Environment check + ASR recommendation. Prints JSON; the agent explains it to the user.

  doctor.py            full report
"""
from __future__ import annotations

import json
import os
import shutil
import subprocess
import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent))
from _common import BLURT_HOME, CONTRACT, IS_LINUX, IS_MAC, IS_WIN, MODELS_DIR, global_config, run, system_info  # noqa: E402
import sessions  # noqa: E402

def recommend(info: dict) -> list[dict]:
    """Ordered ASR options for this machine. SenseVoice covers zh/en/ja/ko/yue on any CPU; Whisper for other languages."""
    ram = info.get("ram_gb") or 8
    recs = [{"backend": "sensevoice", "why": "Local, ~240MB, very fast on CPU, great for Chinese/English/Japanese/Korean/"
             "Cantonese incl. code-switching. Default choice.", "setup": "transcribe.py setup --backend sensevoice"}]
    if info["apple_silicon"] and ram >= 16:
        recs.append({"backend": "mlx-whisper", "model": "mlx-community/whisper-large-v3-turbo",
                     "why": "Local on Apple GPU, 99 languages, ~1.6GB. Pick when speech is not zh/en/ja/ko/yue.",
                     "setup": "uv run --with mlx-whisper transcribe.py setup --backend mlx-whisper"})
    elif info.get("nvidia_gpu"):
        recs.append({"backend": "faster-whisper", "model": "large-v3-turbo",
                     "why": "Local on NVIDIA GPU, 99 languages. Needs CUDA 12 + cuDNN 9 runtime.",
                     "setup": "uv run --with faster-whisper transcribe.py setup --backend faster-whisper"})
    elif ram >= 8:
        recs.append({"backend": "faster-whisper", "model": "small",
                     "why": "Local CPU fallback for other languages (slower, ~0.5GB).",
                     "setup": "uv run --with faster-whisper transcribe.py setup --backend faster-whisper --model small"})
    recs.append({"backend": "openai", "why": "Cloud, user's own key. Groq whisper-large-v3-turbo ≈ $0.04/audio-hour; "
                 "OpenAI whisper-1 ≈ $0.36/h; gpt-4o-mini-transcribe ≈ $0.18/h. Only speech (after VAD) is billed.",
                 "setup": "export GROQ_API_KEY=... (or BLURT_ASR_API_KEY + BLURT_ASR_BASE_URL + BLURT_ASR_MODEL)"})
    recs.append({"backend": "dashscope", "why": "Cloud, Alibaba Qwen3-ASR-Flash, strong Chinese; roughly ¥1/audio-hour "
                 "(check console pricing).", "setup": "export DASHSCOPE_API_KEY=..."})
    return recs

# Variables an agent session (Claude Code, the Claude / Codex desktop apps, codex) exports to its children; the Blurt
# app drops them before launching the agent (BlurtRecorder.swift: isAgentSessionVar) — e.g. CLAUDE_CODE_SIMPLE=1 makes
# `claude` skip the keychain login. Check login state the way the app will run the agent, not the way this session does.
_SESSION_PREFIXES = ("CLAUDE", "ANTHROPIC_", "CODEX_", "MCP_", "OTEL_")
_SESSION_NAMES = {"AI_AGENT", "BAGGAGE", "USE_LOCAL_OAUTH", "USE_STAGING_OAUTH", "API_TIMEOUT_MS", "DISABLE_AUTOUPDATER",
                  "DISABLE_MICROCOMPACT", "BLURT_APP"}

_USER_CONFIG_VARS = {"CODEX_HOME", "CLAUDE_CONFIG_DIR", "KIMI_CODE_HOME"}  # the user's own config locations: keep

def _is_session_var(k: str) -> bool:
    return k not in _USER_CONFIG_VARS and (k.startswith(_SESSION_PREFIXES) or k in _SESSION_NAMES)

def agent_env() -> dict:
    """Like the app's agentEnvironment(): this env minus agent-session vars, plus what the user's login shell sets."""
    env = {k: v for k, v in os.environ.items() if not _is_session_var(k)}
    sh = os.environ.get("SHELL")
    if not IS_WIN and sh and os.path.isabs(sh) and os.access(sh, os.X_OK):
        try:
            out = run([sh, "-ilc", "printf '\\n__BLURT_ENV__\\n'; env -0"], check=False, env=env, timeout=8,
                      stdin=subprocess.DEVNULL).stdout
            _, sep, rest = out.partition("\n__BLURT_ENV__\n")
            for entry in rest.split("\0") if sep else []:
                k, eq, v = entry.partition("=")
                if eq and k and k not in ("SHLVL", "_", "PWD", "OLDPWD"):
                    env[k] = v
        except (OSError, subprocess.SubprocessError):
            pass
    return env

def agent_clis() -> dict:
    """The agent CLIs the Blurt app can hand recordings to: path, version, logged in (None = couldn't tell)."""
    env = agent_env()
    path = env.get("PATH")
    report = {}
    for name, login_args in (("claude", ["auth", "status", "--json"]), ("codex", ["login", "status"])):
        exe = shutil.which(name, path=path) or shutil.which(name)
        info: dict = {"path": exe, "version": None, "logged_in": None}
        if exe:
            try:
                v = run([exe, "--version"], check=False, env=env, timeout=15, stdin=subprocess.DEVNULL)
                info["version"] = (v.stdout or v.stderr).strip().splitlines()[0] if (v.stdout or v.stderr).strip() else None
                r = run([exe, *login_args], check=False, env=env, timeout=20, stdin=subprocess.DEVNULL)
                text = (r.stdout or "") + (r.stderr or "")
                info["logged_in"] = parse_login(name, r.returncode, text)
            except (OSError, subprocess.SubprocessError):
                pass
        report[name] = info
    return report

def parse_login(name: str, code: int, text: str) -> bool | None:
    if name == "claude" and "{" in text:
        try:
            v = json.loads(text[text.index("{"):]).get("loggedIn")
            if isinstance(v, bool):
                return v
        except ValueError:
            pass
    low = text.lower()
    if "not logged in" in low or "please run /login" in low:
        return False
    if name == "codex" and code == 0 and "logged in" in low:
        return True
    return None

def tracked_stores() -> list[dict]:
    """Registered projects whose .blurt/ already has files committed to git (K1: never committed). Reported only:
    untracking is the user's call."""
    out = []
    try:
        reg = json.loads((BLURT_HOME / "projects.json").read_text(encoding="utf-8"))
    except (OSError, ValueError):
        return out
    for p in reg.get("projects") or []:
        path = p.get("path") if isinstance(p, dict) else None
        if not path or not Path(path, ".blurt").is_dir() or not shutil.which("git"):
            continue
        r = run(["git", "-C", path, "ls-files", "--", ".blurt"], check=False, timeout=10, stdin=subprocess.DEVNULL)
        files = [f for f in r.stdout.splitlines() if f.strip()] if r.returncode == 0 else []
        if files:
            out.append({"project": path, "files": len(files), "fix": f"git -C '{path}' rm -r --cached .blurt"})
    return out

def main():
    info = system_info()
    ff = shutil.which("ffmpeg")
    report = {
        "contract": CONTRACT,  # the skill's side of the app ↔ scripts handshake (_common.CONTRACT)
        "system": info,
        "ffmpeg": run([ff, "-version"]).stdout.splitlines()[0] if ff else None,
        "uv": shutil.which("uv"),
        "gh": shutil.which("gh"),
        "disk_free_gb": round(shutil.disk_usage(Path.cwd()).free / 2**30, 1),
        "asr_configured": global_config().get("asr"),
        "sensevoice_downloaded": (MODELS_DIR / "sensevoice" / "model.int8.onnx").exists(),
        "api_keys": {k: bool(os.environ.get(k)) for k in
                     ("BLURT_ASR_API_KEY", "OPENAI_API_KEY", "GROQ_API_KEY", "DASHSCOPE_API_KEY")},
        "asr_recommendations": recommend(info),
        "agent_cli": agent_clis(),
        "tmux": sessions.tmux_info(),
        "tracked_stores": tracked_stores(),
        "todo": [],
    }
    for name, a in report["agent_cli"].items():
        if a["path"] and a["logged_in"] is False:
            fix = "run `claude` in a terminal and /login" if name == "claude" else "run `codex login` in a terminal"
            report["todo"].append(f"The `{name}` CLI ({a['path']}) is not logged in, so the Blurt app can't hand recordings "
                                  f"to it for background processing: {fix}")
    if not report["tmux"] and not IS_WIN:
        report["todo"].append("Agent sessions in Blurt run in tmux (3.2 or newer); without it they end when Blurt quits: "
                              + ("brew install tmux" if IS_MAC else "sudo apt install tmux"))
    for t in report["tracked_stores"]:
        report["todo"].append(f"{t['project']}/.blurt has {t['files']} file(s) committed to git; Blurt keeps it out of "
                              f"git (.git/info/exclude). To stop tracking them: {t['fix']}")
    if not ff:
        report["todo"].append("Install ffmpeg: " + ("brew install ffmpeg" if IS_MAC else "winget install Gyan.FFmpeg" if IS_WIN
                                                     else "sudo apt install ffmpeg"))
    if not report["asr_configured"]:
        report["todo"].append("Choose an ASR backend (see asr_recommendations) and run its setup command")
    if IS_MAC:
        report["todo"].append("Run `record.py test` once: macOS needs Screen Recording + Microphone permission for the "
                              "app hosting this agent (Terminal/iTerm/VS Code/Claude/Codex), then a restart of that app")
    if IS_WIN and ff and "ddagrab" not in run([ff, "-hide_banner", "-filters"], check=False).stdout:
        report["todo"].append("ffmpeg lacks ddagrab (needs ffmpeg ≥ 6); gdigrab will be used (fine, a bit heavier)")
    if IS_LINUX:
        import ctypes.util
        if not ctypes.util.find_library("portaudio"):
            report["todo"].append("Recording the mic needs PortAudio: sudo apt install libportaudio2")
        if os.environ.get("XDG_SESSION_TYPE") == "wayland":
            report["todo"].append("Screen recording uses X11 (x11grab): log in with an Xorg session, or record with "
                                  "another tool and hand the video over")
    if report["disk_free_gb"] < 5:
        report["todo"].append("Low disk space: recordings use ~1–2 GB per hour")
    print(json.dumps(report, ensure_ascii=False, indent=2))

if __name__ == "__main__":
    main()
```

## File: skills/blurt/scripts/export_local.py
size: 31065
sha: 6edcfa256e51dcbce7951515e741af2fd1b8d739
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/export_local.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/export_local.py

## File: skills/blurt/scripts/feedback.py
size: 18845
sha: 65c016e546323212dfdd1c31a75ffb9d3dc75442
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/feedback.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/feedback.py

## File: skills/blurt/scripts/frames.py
size: 30267
sha: 24f9e95b7794dd34c867c8f9c885d85ff7f9993e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/frames.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/frames.py

## File: skills/blurt/scripts/handoff.py
size: 20390
sha: b703465216f54c8731e2431af4cf2d69e5669d65
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/handoff.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/handoff.py

## File: skills/blurt/scripts/index.py
size: 47668
sha: 3fcb7dcca19eb00b89750b3907ae53023b7ba99d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/index.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/index.py

## File: skills/blurt/scripts/items.py
size: 85715
sha: b971576655930ff084edaa2a3ca8d4e32f196cce
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/items.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/items.py

## File: skills/blurt/scripts/jobs.py
size: 22380
sha: 7466f09f03a0f892920780a295802887442d4334
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/jobs.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/jobs.py

## File: skills/blurt/scripts/lab_packs/builtin.json
size: 8652
sha: ef732c02a515ec41916a967b598ef3a559a37c8a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/lab_packs/builtin.json

```text
{
  "schema": 1,
  "id": "builtin-basics",
  "name": "Basics: a bit of everything",
  "name_zh": "入门：各种情况都来一点",
  "description": "Synthetic sentences across lengths, scenarios, languages, names, numbers, self-corrections, fillers, enumerations, questions and run-ons.",
  "source": "builtin",
  "created": "2026-10-24T00:00:00+08:00",
  "prompts": [
    {"id": "b001", "read": "好的，收到。", "tags": {"length": "short", "scenario": "chat", "languages": "zh", "features": []}},
    {"id": "b002", "read": "今晚七点老地方见？", "tags": {"length": "short", "scenario": "chat", "languages": "zh", "features": ["question"]}},
    {"id": "b003", "read": "Sounds good, see you tomorrow.", "tags": {"length": "short", "scenario": "chat", "languages": "en", "features": []}},
    {"id": "b004", "read": "帮我把这个 PR 合进 main 分支", "tags": {"length": "short", "scenario": "coding", "languages": "zh-terms", "features": ["names"]}},
    {"id": "b005", "read": "嗯，那个，我们下周二下午三点开会吧。", "expected": "我们下周二下午三点开会吧。", "tags": {"length": "medium", "scenario": "chat", "languages": "zh", "features": ["fillers", "numbers"]}},
    {"id": "b006", "read": "把这个文件，不对，这两个文件都拷到桌面上。", "expected": "把这两个文件都拷到桌面上。", "tags": {"length": "medium", "scenario": "notes", "languages": "zh", "features": ["correction"]}},
    {"id": "b007", "read": "预算是一万两千五百块，三月十五号之前要付清。", "tags": {"length": "medium", "scenario": "email", "languages": "zh", "features": ["numbers"]}},
    {"id": "b008", "read": "用 Claude Code 跑一下测试，再让 Codex 看看有没有别的问题。", "tags": {"length": "medium", "scenario": "coding", "languages": "zh-terms", "features": ["names"]}},
    {"id": "b009", "read": "这件事有三点：第一是时间来不及，第二是人手不够，第三是预算超了。", "tags": {"length": "medium", "scenario": "meeting", "languages": "zh", "features": ["enumeration", "numbers"]}},
    {"id": "b010", "read": "首先把数据清洗一下，其次重新训练模型，最后再对比一下效果。", "tags": {"length": "medium", "scenario": "coding", "languages": "zh", "features": ["enumeration"]}},
    {"id": "b011", "read": "你觉得 Gemini 和 ChatGPT 哪个写代码更好一点？", "tags": {"length": "medium", "scenario": "chat", "languages": "zh-terms", "features": ["names", "question"]}},
    {"id": "b012", "read": "Could you send me the slides before Friday? I want to check the numbers for Q3.", "tags": {"length": "medium", "scenario": "email", "languages": "en", "features": ["numbers", "question"]}},
    {"id": "b013", "read": "Let's meet at 2:30, no wait, make it 3:30, in the small room.", "expected": "Let's meet at 3:30 in the small room.", "tags": {"length": "medium", "scenario": "chat", "languages": "en", "features": ["correction", "numbers"]}},
    {"id": "b014", "read": "Um, so, I think the build is broken because of the new dependency.", "expected": "I think the build is broken because of the new dependency.", "tags": {"length": "medium", "scenario": "coding", "languages": "en", "features": ["fillers"]}},
    {"id": "b015", "read": "版本号改成 2.3.1，然后在 GitHub 上打一个 tag。", "tags": {"length": "medium", "scenario": "coding", "languages": "zh-terms", "features": ["names", "numbers"]}},
    {"id": "b016", "read": "王老师，周四的课挪到周五上午十点，地点不变，麻烦您跟同学们说一声。", "tags": {"length": "medium", "scenario": "email", "languages": "zh", "features": ["names", "numbers"]}},
    {"id": "b017", "read": "如果明天下雨的话，我们就改成线上开会，不下雨就还是去公司。", "tags": {"length": "medium", "scenario": "chat", "languages": "zh", "features": []}},
    {"id": "b018", "read": "会议纪要：这周上线推迟到二十号，前端先把登录页改完，后端负责把接口文档补齐，测试那边下周一开始回归。", "tags": {"length": "long", "scenario": "meeting", "languages": "zh", "features": ["numbers"]}},
    {"id": "b019", "read": "我刚看了一下日志，在 tmux 里面跑的那个 worktree 好像卡住了，内存涨到了十六个 G，你先把进程停掉，再看看是不是 MLX 的缓存没释放。", "tags": {"length": "long", "scenario": "coding", "languages": "zh-terms", "features": ["names", "numbers"]}},
    {"id": "b020", "read": "Hi Sarah, thanks for the quick reply. The contract looks fine, but could we move the start date to May 6th and split the payment into two parts, forty percent up front and the rest on delivery?", "tags": {"length": "long", "scenario": "email", "languages": "en", "features": ["names", "numbers", "question"]}},
    {"id": "b021", "read": "这个问题我想了一下，呃，有两种做法，一种是改数据库的表结构，另一种是在服务层做一次转换，我倾向于第二种，因为改动小，风险也低。", "expected": "这个问题我想了一下，有两种做法，一种是改数据库的表结构，另一种是在服务层做一次转换，我倾向于第二种，因为改动小，风险也低。", "tags": {"length": "long", "scenario": "meeting", "languages": "zh", "features": ["fillers", "enumeration"]}},
    {"id": "b022", "read": "颜色改成蓝色，算了，还是改成绿色吧，字体再大一号。", "expected": "颜色改成绿色吧，字体再大一号。", "tags": {"length": "medium", "scenario": "notes", "languages": "zh", "features": ["correction"]}},
    {"id": "b023", "read": "为什么这个接口在本地是好的，一部署到线上就返回五百？是不是环境变量没配？", "tags": {"length": "medium", "scenario": "coding", "languages": "zh", "features": ["question", "numbers"]}},
    {"id": "b024", "read": "提醒我明天早上九点半给张经理打电话，问一下报价单的事，还有顺便确认一下发票抬头。", "tags": {"length": "medium", "scenario": "notes", "languages": "zh", "features": ["names", "numbers"]}},
    {"id": "b025", "read": "我们今天主要聊了三件事，一是新版本的发布时间，大家觉得月底比较稳妥；二是用户反馈里提到的卡顿问题，初步判断是图片加载太慢；三是下季度的招聘，设计和后端各招一个人。然后下次会议定在下周三下午，地点还是三楼的会议室，有问题大家随时在群里说。", "tags": {"length": "xlong", "scenario": "meeting", "languages": "zh", "features": ["enumeration", "numbers", "run_on"]}},
    {"id": "b026", "read": "So the plan for this week is pretty simple, we finish the onboarding flow, we fix the two crashes that came in over the weekend, and then if there is time left we start on the settings page, but honestly I would rather ship something small and solid than something big and half done, so let's keep the scope tight and check in again on Thursday.", "tags": {"length": "xlong", "scenario": "meeting", "languages": "en", "features": ["run_on", "enumeration"]}},
    {"id": "b027", "read": "我用 Cursor 写了个小工具，可以把录音转成文字，然后用 Qwen 做总结，最后再发到飞书群里，整个流程大概三十秒就能跑完，你有空可以试一下，有问题告诉我。", "tags": {"length": "long", "scenario": "chat", "languages": "zh-terms", "features": ["names", "numbers"]}},
    {"id": "b028", "read": "这周的花费一共是三千四百二十元，其中打车八百，吃饭一千二，剩下的是买书和办公用品。", "tags": {"length": "medium", "scenario": "notes", "languages": "zh", "features": ["numbers"]}},
    {"id": "b029", "read": "Can you check whether the API key expired?", "tags": {"length": "short", "scenario": "coding", "languages": "en", "features": ["question"]}},
    {"id": "b030", "read": "明天的会我去不了，那个，你帮我跟大家说一下，就说我在外地出差，资料我晚上发群里，不对，下午就发。", "expected": "明天的会我去不了，你帮我跟大家说一下，就说我在外地出差，资料我下午就发群里。", "tags": {"length": "long", "scenario": "chat", "languages": "zh", "features": ["fillers", "correction"]}},
    {"id": "b031", "read": "这个 feature 下周上线。", "tags": {"length": "short", "scenario": "chat", "languages": "zh-terms", "features": []}, "note": "v0.9 regression: with the default Words on, the app typed this as an English translation (the speech model's language tag). Keep the Words on when you read it."}
  ]
}
```

## File: skills/blurt/scripts/live.py
size: 38542
sha: 0458871c7f5d9d1a8e49d3b3ba90f9e86e352549
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/live.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/live.py

## File: skills/blurt/scripts/mcp_server.py
size: 20838
sha: f17750a7d415ac08c58ab7a99d448a02a61c4546
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/mcp_server.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/mcp_server.py

## File: skills/blurt/scripts/polish.py
size: 130124
sha: 0b67a1751b18a590b082738fe236f81a20c722a8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/polish.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/polish.py

## File: skills/blurt/scripts/polish_cloud.py
size: 21854
sha: 852b855f4d83873ab2ef9ac36d0846c60bb8279f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/polish_cloud.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/polish_cloud.py

## File: skills/blurt/scripts/polish_models.json
size: 3317
sha: 039397f5a8961109e6f0966ec5405d05a26dc1b8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/polish_models.json

```text
{
  "schema": 1,
  "reference": "ram_mb / warm_ms / cold_ms: Apple M5 Max (128 GB), mlx-lm 0.32.2, 3 threads, 25 % memory cap, the 41-sentence set in tests/fixtures/polish_eval.jsonl (Gemma 4 E2B / E4B, Qwen3.5 4B: re-measured with the v0.8 speed prompt and repair; the over-deletion set is tests/fixtures/polish_overdelete.jsonl); docs/design/dictation.md; v1.0.2: Gemma 4 E2B's ram_mb is its peak with the per-layer embeddings read from the file and a 64 MB MLX cache (2.2 GB; was 3.9 GB), and the light tier takes Gemma 3 1B (17 % fall-back and 1.3 GB in the v1.0.2 sweep, Qwen3 1.7B 24 % and 2.1 GB); 2026-10-31: no local polish model by default on light / minimal Macs (8 GB: the speech model takes the room, and on the founder's takes local polish was neutral on words — dictation-eval-2026-10-31.md §6.2)",
  "models": [
    {"id": "qwen3.5-0.8b", "name": "Qwen3.5 0.8B", "family": "qwen", "repo": "mlx-community/Qwen3.5-0.8B-MLX-4bit", "params_b": 0.8, "size_mb": 620, "tiers": ["light", "minimal"], "ram_mb": 1558, "warm_ms": 78, "cold_ms": 1868, "fallback": 0.39},
    {"id": "qwen3.5-2b", "name": "Qwen3.5 2B", "family": "qwen", "repo": "mlx-community/Qwen3.5-2B-MLX-4bit", "params_b": 2.0, "size_mb": 1670, "tiers": ["standard", "pro"], "ram_mb": 2334, "warm_ms": 85, "cold_ms": 2090, "fallback": 0.195},
    {"id": "qwen3.5-4b", "name": "Qwen3.5 4B", "family": "qwen", "repo": "mlx-community/Qwen3.5-4B-MLX-4bit", "params_b": 4.0, "size_mb": 2920, "tiers": ["pro"], "ram_mb": 4010, "warm_ms": 137, "cold_ms": 2582, "fallback": 0.024},
    {"id": "qwen3-0.6b", "name": "Qwen3 0.6B", "family": "qwen", "repo": "mlx-community/Qwen3-0.6B-4bit", "params_b": 0.6, "size_mb": 335, "tiers": ["minimal"], "ram_mb": 1295, "warm_ms": 66, "cold_ms": 1475, "fallback": 0.463},
    {"id": "qwen3-1.7b", "name": "Qwen3 1.7B", "family": "qwen", "repo": "mlx-community/Qwen3-1.7B-4bit", "params_b": 1.7, "size_mb": 935, "tiers": ["light"], "ram_mb": 2137, "warm_ms": 84, "cold_ms": 1582, "fallback": 0.244},
    {"id": "qwen3-4b-2507", "name": "Qwen3 4B Instruct 2507", "family": "qwen", "repo": "mlx-community/Qwen3-4B-Instruct-2507-4bit", "params_b": 4.0, "size_mb": 2175, "tiers": ["pro"], "ram_mb": 3380, "warm_ms": 126, "cold_ms": 1714, "fallback": 0.073},
    {"id": "gemma3-1b", "name": "Gemma 3 1B", "family": "gemma", "repo": "mlx-community/gemma-3-1b-it-qat-4bit", "params_b": 1.0, "size_mb": 735, "tiers": ["light", "minimal"], "ram_mb": 1703, "warm_ms": 110, "cold_ms": 2363, "fallback": 0.098},
    {"id": "gemma3-4b", "name": "Gemma 3 4B", "family": "gemma", "repo": "mlx-community/gemma-3-4b-it-qat-4bit", "params_b": 4.0, "size_mb": 2890, "tiers": ["pro"], "ram_mb": 3766, "warm_ms": 149, "cold_ms": 2893, "fallback": 0.122},
    {"id": "gemma4-e2b", "name": "Gemma 4 E2B", "family": "gemma", "repo": "mlx-community/gemma-4-e2b-it-4bit", "params_b": 2.0, "size_mb": 3415, "tiers": ["pro", "standard"], "ram_mb": 2300, "warm_ms": 111, "cold_ms": 2570, "fallback": 0.024},
    {"id": "gemma4-e4b", "name": "Gemma 4 E4B", "family": "gemma", "repo": "mlx-community/gemma-4-e4b-it-4bit", "params_b": 4.0, "size_mb": 4940, "tiers": ["pro"], "ram_mb": 5420, "warm_ms": 166, "cold_ms": 3618, "fallback": 0.0}
  ],
  "defaults": {"pro": "gemma4-e2b", "standard": "gemma4-e2b", "light": null, "minimal": null}
}
```

## File: skills/blurt/scripts/projects.py
size: 28611
sha: f195c0e614ce231ccf86bdc5a484e988f108707c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/projects.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/projects.py

## File: skills/blurt/scripts/record.py
size: 69345
sha: 7a86b3e3975c383e453f7effc6a8362a7296d697
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/record.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/record.py

## File: skills/blurt/scripts/review.html
size: 409922
sha: f7fc92aa2955c3b1e82d41fbb99532cc7871ad7a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/review.html

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/review.html

## File: skills/blurt/scripts/review.py
size: 23488
sha: 69e759849adde7384dc0fe8591c134d0568f17b5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/review.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/review.py

## File: skills/blurt/scripts/screen_text.py
size: 25980
sha: 61e0bf1cea726ba22748bde3ebf34b1155360907
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/screen_text.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/screen_text.py

## File: skills/blurt/scripts/sessions.py
size: 107293
sha: 887a5ce9210f65ba4b0394c9deb6b7faa93a05ab
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/sessions.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/sessions.py

## File: skills/blurt/scripts/setup.py
size: 26353
sha: 8416c1903829ed271a4e96355e2b04f3ca3a91b9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/setup.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/setup.py

## File: skills/blurt/scripts/store.py
size: 25465
sha: de28765dcc68c1bed81ea1b1845f079125c5300a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/store.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/store.py

## File: skills/blurt/scripts/tk_recorder.py
size: 42028
sha: 2e82f5f0ca7c3a36707966160879234eebe482d2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/tk_recorder.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/tk_recorder.py

## File: skills/blurt/scripts/transcribe.py
size: 239280
sha: 6f933be7d0f97f528dfd37573873c0a82d9a4c54
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/transcribe.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/scripts/transcribe.py

## File: skills/blurt/assets/AppIcon.icns
size: 616075
sha: 56d66e714b10d42c6f9eafac70a557e70ce27638
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/AppIcon.icns

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/AppIcon.icns

## File: skills/blurt/assets/favicon.png
size: 2071
sha: 946c7624cf2772629cc4babb646695c5e63a826a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/favicon.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/favicon.png

## File: skills/blurt/assets/icon-16.png
size: 742
sha: 834a4bb75f198ae53e9500f285d561b246ba5497
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon-16.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon-16.png

## File: skills/blurt/assets/icon-32.png
size: 2043
sha: 0e1f29b59df143a9a141934a7a372e523267326d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon-32.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon-32.png

## File: skills/blurt/assets/icon.png
size: 224623
sha: cad99c3309526a6fe291e0c9ff7f0920e373805b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icon.png

## File: skills/blurt/assets/icons/accessibility.png
size: 530
sha: a7c43580954bbc93d2e356b870321b83f11e8bc0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility.png

## File: skills/blurt/assets/icons/accessibility@1.5x.png
size: 836
sha: 8a3b6c781d7ef0e4f9da53164749f35e6e455d1c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility%401.5x.png

## File: skills/blurt/assets/icons/accessibility@2x.png
size: 1156
sha: 79158303b178b84cdb848e604b529fb54f593653
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/accessibility%402x.png

## File: skills/blurt/assets/icons/agent-run.png
size: 419
sha: 47fac829a22b232bc7a6bbcd4be641948e2ae019
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run.png

## File: skills/blurt/assets/icons/agent-run@1.5x.png
size: 578
sha: 67406f94ee0467e30cd6083b94281335222397ca
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run%401.5x.png

## File: skills/blurt/assets/icons/agent-run@2x.png
size: 766
sha: 25407034ef7c029d34c62df2d59a51d6cfcf78da
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent-run%402x.png

## File: skills/blurt/assets/icons/agent.png
size: 407
sha: 681a0bd16a68fc334e8886129ec5c512529ca974
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent.png

## File: skills/blurt/assets/icons/agent@1.5x.png
size: 614
sha: 8a13ddc9eb5e5d2947f69e9360e268c01bdf28af
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent%401.5x.png

## File: skills/blurt/assets/icons/agent@2x.png
size: 809
sha: 463c62db0018c0e43f98cfbe08447cac09064828
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/agent%402x.png

## File: skills/blurt/assets/icons/arrow-left.png
size: 212
sha: e3bc7ed248bfc156e4c223913775a69c9f81459b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left.png

## File: skills/blurt/assets/icons/arrow-left@1.5x.png
size: 225
sha: adb4735bfb792807528e0ca9a572502fe65b113b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left%401.5x.png

## File: skills/blurt/assets/icons/arrow-left@2x.png
size: 263
sha: f03f8ef6ebfa1239f53d9bf1a539e18138e3c42d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/arrow-left%402x.png

## File: skills/blurt/assets/icons/bell.png
size: 421
sha: 06113741f03eca577036060173887b20f8757a52
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell.png

## File: skills/blurt/assets/icons/bell@1.5x.png
size: 541
sha: d1dad442eecd9ffc3e677e860ee9b0154f6e0618
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell%401.5x.png

## File: skills/blurt/assets/icons/bell@2x.png
size: 822
sha: 3e012a01f3e68a5bfb3adae505779cc1a7dff6ca
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bell%402x.png

## File: skills/blurt/assets/icons/blurt.png
size: 447
sha: a700e8a8393843783e06b4e4b15da5665dec2a19
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt.png

## File: skills/blurt/assets/icons/blurt@1.5x.png
size: 670
sha: b7f27f811a3846377ce156700948dd4b2c3a44d5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt%401.5x.png

## File: skills/blurt/assets/icons/blurt@2x.png
size: 984
sha: 0a4873e1240a1798d0ffdcac93b392a255c260ae
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/blurt%402x.png

## File: skills/blurt/assets/icons/bug.png
size: 457
sha: ad8f9dfa9740684489809a2d5f1302cdb8383c29
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug.png

## File: skills/blurt/assets/icons/bug@1.5x.png
size: 660
sha: a3066983cc407850cff1336376b07108d60f5e75
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug%401.5x.png

## File: skills/blurt/assets/icons/bug@2x.png
size: 886
sha: 0cb07dfa60024019ae06ae28cffdf53718154233
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/bug%402x.png

## File: skills/blurt/assets/icons/camera.png
size: 482
sha: cb76e49827a21978a0c55f0c4c630ff8dee73bb7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera.png

## File: skills/blurt/assets/icons/camera@1.5x.png
size: 662
sha: cfdc0439c099f25134452634b949e5aa6569688f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera%401.5x.png

## File: skills/blurt/assets/icons/camera@2x.png
size: 922
sha: 1f11ebdbba915625ee80920979a009b57f7814a7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/camera%402x.png

## File: skills/blurt/assets/icons/cards.png
size: 303
sha: 2ff454151b2a15c225896f8cac638454d700b671
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards.png

## File: skills/blurt/assets/icons/cards@1.5x.png
size: 367
sha: 0392ec10872d5d0a837c548d12036b9e7b37e1a2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards%401.5x.png

## File: skills/blurt/assets/icons/cards@2x.png
size: 469
sha: a4a81130a01b488af88c85237fc2b2a53698dfaa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cards%402x.png

## File: skills/blurt/assets/icons/check.png
size: 245
sha: ea07bc0f0d3a605503383cc541a041f2bb4247de
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check.png

## File: skills/blurt/assets/icons/check@1.5x.png
size: 320
sha: 10a5060776030f061474703b9cf0598d32894767
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check%401.5x.png

## File: skills/blurt/assets/icons/check@2x.png
size: 418
sha: 00234a46354def562060d2e5d598ef844ff0a9bd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/check%402x.png

## File: skills/blurt/assets/icons/checkbox.png
size: 389
sha: 55f24527a58e3acce9fc45828bd4fd7199fef8a3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox.png

## File: skills/blurt/assets/icons/checkbox@1.5x.png
size: 582
sha: 8fe52823f9004d54a675c96bb83a215b21d33d28
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox%401.5x.png

## File: skills/blurt/assets/icons/checkbox@2x.png
size: 744
sha: d5dbfe116ac9cc56db24840c530c32f73af8ed6e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/checkbox%402x.png

## File: skills/blurt/assets/icons/chevron-down.png
size: 182
sha: a665076501c0ccf5c1dda062bee2861ac0ca7e85
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down.png

## File: skills/blurt/assets/icons/chevron-down@1.5x.png
size: 205
sha: 59895c95f47d38b36381b6ab039b6bdbf1ba0aa4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down%401.5x.png

## File: skills/blurt/assets/icons/chevron-down@2x.png
size: 282
sha: 1ecf3841c1d7a1a60f3b580574918aa7739c997d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-down%402x.png

## File: skills/blurt/assets/icons/chevron-left.png
size: 186
sha: 4a5a388d303704406043d6d7c0cd8e90eda135dd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left.png

## File: skills/blurt/assets/icons/chevron-left@1.5x.png
size: 208
sha: 02fc20a4b39480d511f51e218c24eb8c4d38ab9c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left%401.5x.png

## File: skills/blurt/assets/icons/chevron-left@2x.png
size: 224
sha: abc354c7a4ed60c77e72a9c67f24ff6fdf5b553c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-left%402x.png

## File: skills/blurt/assets/icons/chevron-right.png
size: 169
sha: bcf5c2bed45dc6181ac53e9d5c2bd63f7118dfd7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right.png

## File: skills/blurt/assets/icons/chevron-right@1.5x.png
size: 202
sha: ea8a5dec876099dfc91760112ab877a81b821c7e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right%401.5x.png

## File: skills/blurt/assets/icons/chevron-right@2x.png
size: 221
sha: 98a89d05d2330442b398f81e32a2f8dbddeaa335
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-right%402x.png

## File: skills/blurt/assets/icons/chevron-up.png
size: 182
sha: 0faf3144a9fbb09af0984176dcba1e0cba7db87c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up.png

## File: skills/blurt/assets/icons/chevron-up@1.5x.png
size: 205
sha: d9ff49e3d329263cd0afefc2cf68a41bd8ae33df
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up%401.5x.png

## File: skills/blurt/assets/icons/chevron-up@2x.png
size: 281
sha: 5d9a158e1dd73a1c5777b7a476b30cd18e3037e7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chevron-up%402x.png

## File: skills/blurt/assets/icons/chicken.png
size: 513
sha: fa8ee79356253f11dc2ce42fd14b7cfad3d69787
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken.png

## File: skills/blurt/assets/icons/chicken@1.5x.png
size: 811
sha: e35576e26232b1b7d7e3b66ccf40110470084836
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken%401.5x.png

## File: skills/blurt/assets/icons/chicken@2x.png
size: 1075
sha: 7f94a99a37ddd3089b5047d3b54f1b0e3e92c957
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/chicken%402x.png

## File: skills/blurt/assets/icons/cloud.png
size: 382
sha: 252958e9e31e93d3a700b08195ffd75586d519b2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud.png

## File: skills/blurt/assets/icons/cloud@1.5x.png
size: 551
sha: 21291d6354994c93e652347f44b36d10ebe47356
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud%401.5x.png

## File: skills/blurt/assets/icons/cloud@2x.png
size: 750
sha: 4e173e16b6d464e54981fc59c81b2cb74367d357
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/cloud%402x.png

## File: skills/blurt/assets/icons/code.png
size: 175
sha: ba1465dc8ef42d38255fee2a51503e91be983e5b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code.png

## File: skills/blurt/assets/icons/code@1.5x.png
size: 253
sha: 80848197cc79deb3d386f1603e97e802cee4c64e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code%401.5x.png

## File: skills/blurt/assets/icons/code@2x.png
size: 259
sha: 09995878846cda2bb728431c34295290af023bda
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/code%402x.png

## File: skills/blurt/assets/icons/copy.png
size: 434
sha: 1a404bd36fc9c1ce1eadeeea1a687eabdca75317
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy.png

## File: skills/blurt/assets/icons/copy@1.5x.png
size: 549
sha: 119781a1ba6691fd0593cc77a5b9dd349543dad7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy%401.5x.png

## File: skills/blurt/assets/icons/copy@2x.png
size: 738
sha: 8982579730f00d0fdc1a7a7904c0f356b238bded
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/copy%402x.png

## File: skills/blurt/assets/icons/document.png
size: 444
sha: 946b36200f9977bf1b039df8b3ab32e480171291
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document.png

## File: skills/blurt/assets/icons/document@1.5x.png
size: 560
sha: ef2568a664a230df3453de2ae622171b3ebf3800
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document%401.5x.png

## File: skills/blurt/assets/icons/document@2x.png
size: 692
sha: d47ed9a37611207ae3a38def2efddf0e05afb360
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/document%402x.png

## File: skills/blurt/assets/icons/download.png
size: 253
sha: 3b322dc988bf5ac3d2ea364e6dbef5810850b916
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download.png

## File: skills/blurt/assets/icons/download@1.5x.png
size: 278
sha: 1514e5af85681df998c593cba0e2fe9d6c604e10
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download%401.5x.png

## File: skills/blurt/assets/icons/download@2x.png
size: 422
sha: 1d46d0762bcfab7c0ce46829dce21c37f4215e94
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/download%402x.png

## File: skills/blurt/assets/icons/egg-fill.png
size: 305
sha: 55c292cf518b270da2a47a85814154ea2aa46795
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill.png

## File: skills/blurt/assets/icons/egg-fill@1.5x.png
size: 431
sha: 956d3840dc2d2fdd782653e90a1a602cca41794c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill%401.5x.png

## File: skills/blurt/assets/icons/egg-fill@2x.png
size: 567
sha: be90babd2652f27d52e55d45593ee7abd0b8801b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg-fill%402x.png

## File: skills/blurt/assets/icons/egg.png
size: 398
sha: b5816a6e6853b554a089ee722a1233099ea17b78
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg.png

## File: skills/blurt/assets/icons/egg@1.5x.png
size: 563
sha: ffd4b5d79f312b72eca52dd01f2f34f802d3633c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg%401.5x.png

## File: skills/blurt/assets/icons/egg@2x.png
size: 786
sha: 0fa0a4793fde3907b7bb3342a9313ebcb0f69a13
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/egg%402x.png

## File: skills/blurt/assets/icons/external-link.png
size: 406
sha: 790841faa369f665356ba5bc2e1c8b6440b0a2ac
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link.png

## File: skills/blurt/assets/icons/external-link@1.5x.png
size: 559
sha: 1b1b5665291aa4768c5a50b8492e6be3d6010139
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link%401.5x.png

## File: skills/blurt/assets/icons/external-link@2x.png
size: 636
sha: b2148d7badd4d4bc8f649d64676ea4af67021231
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/external-link%402x.png

## File: skills/blurt/assets/icons/eye.png
size: 430
sha: 812322328410d1e2536bdfede0614a7b0d22761d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye.png

## File: skills/blurt/assets/icons/eye@1.5x.png
size: 534
sha: 8c5397beb9cdde1cdb350afa6f6394331f919375
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye%401.5x.png

## File: skills/blurt/assets/icons/eye@2x.png
size: 853
sha: f1031c2c10437ba849fd2d55683bf86d9c09e56b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/eye%402x.png

## File: skills/blurt/assets/icons/film.png
size: 448
sha: 11d3c5512bb189f4f43b831288f160efda155c31
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film.png

## File: skills/blurt/assets/icons/film@1.5x.png
size: 462
sha: 72431b6555d5029ffbd3168d310e26636c091b7d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film%401.5x.png

## File: skills/blurt/assets/icons/film@2x.png
size: 751
sha: 4e3150362b1f4ce8158c90b56e0a46fd06eda5ee
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/film%402x.png

## File: skills/blurt/assets/icons/flag.png
size: 297
sha: 6b295580a421a6aab6b25c3b82fec518a7210292
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag.png

## File: skills/blurt/assets/icons/flag@1.5x.png
size: 392
sha: f7e674f07724b6f09ad74fc62d7dcc192714b5bc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag%401.5x.png

## File: skills/blurt/assets/icons/flag@2x.png
size: 485
sha: 6629f0303f81a10bf3de52234090a36a857d3627
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/flag%402x.png

## File: skills/blurt/assets/icons/folder-plus.png
size: 389
sha: 96e78e8fc760a32ec74bba8e8b76011ebf7be1b0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus.png

## File: skills/blurt/assets/icons/folder-plus@1.5x.png
size: 497
sha: ed8b935f7c44e87a8e103050f5a15a10dc12e79f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus%401.5x.png

## File: skills/blurt/assets/icons/folder-plus@2x.png
size: 706
sha: 381f98a950acd3caa7324cfe7173267e0bfcbc8e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder-plus%402x.png

## File: skills/blurt/assets/icons/folder.png
size: 333
sha: 5c2d12174e541f327295fc0b92e1fc8828391934
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder.png

## File: skills/blurt/assets/icons/folder@1.5x.png
size: 371
sha: d3728858106425a319488b4d0c662164fcf7a273
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder%401.5x.png

## File: skills/blurt/assets/icons/folder@2x.png
size: 539
sha: dcb49e645e923e003e8b1771e5d4f239c5a6db45
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/folder%402x.png

## File: skills/blurt/assets/icons/git-branch.png
size: 378
sha: 68f7cd60793f3b9e5dc09401ac61245423c64750
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch.png

## File: skills/blurt/assets/icons/git-branch@1.5x.png
size: 515
sha: 3c36d59ed12d53d06be8835f05a738ea994db3cb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch%401.5x.png

## File: skills/blurt/assets/icons/git-branch@2x.png
size: 801
sha: 3641f055038fed02b462f680cdf879f43fe7f79e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-branch%402x.png

## File: skills/blurt/assets/icons/git-commit.png
size: 241
sha: 28f594e5faa02009d4d4b095c5172990b985d955
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit.png

## File: skills/blurt/assets/icons/git-commit@1.5x.png
size: 366
sha: 480514ab803caf54af2fb6a7dcec7aa2ab9c46fa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit%401.5x.png

## File: skills/blurt/assets/icons/git-commit@2x.png
size: 441
sha: 894fdc51d4a86bdbe405e335f42a308cfdbf5b74
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-commit%402x.png

## File: skills/blurt/assets/icons/git-pull-request.png
size: 444
sha: bd7ec896232eddb9e60b4828db1ca69cbd054d1c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request.png

## File: skills/blurt/assets/icons/git-pull-request@1.5x.png
size: 508
sha: 2111fb1f54fb7cc4dc479f49468bd919ece55667
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request%401.5x.png

## File: skills/blurt/assets/icons/git-pull-request@2x.png
size: 938
sha: 168d821658f476163af49f9319c4f893c2e534bf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/git-pull-request%402x.png

## File: skills/blurt/assets/icons/globe.png
size: 547
sha: 385ac8bfca65e8756a2ca4e03f7f45a7abe24fe0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe.png

## File: skills/blurt/assets/icons/globe@1.5x.png
size: 854
sha: e7529cc7dd87bd71a1879628a19c1705b1e31e92
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe%401.5x.png

## File: skills/blurt/assets/icons/globe@2x.png
size: 1203
sha: 7e892cdfb20e03900858800ca98f9b05bd31213b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/globe%402x.png

## File: skills/blurt/assets/icons/hatch.png
size: 466
sha: 98f06e37e7d76b952308a2e55ce6f09b1d92d32d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch.png

## File: skills/blurt/assets/icons/hatch@1.5x.png
size: 715
sha: cf217b275ffb983290776bc795bd22021a23f0a4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch%401.5x.png

## File: skills/blurt/assets/icons/hatch@2x.png
size: 975
sha: c6f87a91063e933d16ba5da328bbeac130c4005b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatch%402x.png

## File: skills/blurt/assets/icons/hatched.png
size: 484
sha: 6521f8a3546c5a0197be15ded71925367c12a8a4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched.png

## File: skills/blurt/assets/icons/hatched@1.5x.png
size: 746
sha: 844b7485976c16b456ee9a3b889b25a20c2e56c9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched%401.5x.png

## File: skills/blurt/assets/icons/hatched@2x.png
size: 1082
sha: dd2d269512bd7c85d7345e2c99774c4cea576c6c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/hatched%402x.png

## File: skills/blurt/assets/icons/help-circle.png
size: 520
sha: 2f0b37605cf2fc996296b6d9d4da61ffcd131f0a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle.png

## File: skills/blurt/assets/icons/help-circle@1.5x.png
size: 786
sha: 829a00a73d8da0d8f1832f0bd21828b4752e1487
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle%401.5x.png

## File: skills/blurt/assets/icons/help-circle@2x.png
size: 1077
sha: 8c1c0bb6f05fed0700843ba6bd51173b86efbbfa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/help-circle%402x.png

## File: skills/blurt/assets/icons/home.png
size: 393
sha: 799eccca1ab3bc494afe568f4d75e6873b4d29fb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home.png

## File: skills/blurt/assets/icons/home@1.5x.png
size: 569
sha: 6cb40a5cca7f33510dab452fa9ae26f7ba6e151c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home%401.5x.png

## File: skills/blurt/assets/icons/home@2x.png
size: 723
sha: f206b9716896e79df9e03917ab5f5923d10e5d99
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/home%402x.png

## File: skills/blurt/assets/icons/inbox.png
size: 439
sha: 4e977f2d15e13f36645f1c2cd6c6bfe98dbb571a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox.png

## File: skills/blurt/assets/icons/inbox@1.5x.png
size: 652
sha: 4978aa24110eb72886084a9a8778a0054c0b7cb0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox%401.5x.png

## File: skills/blurt/assets/icons/inbox@2x.png
size: 810
sha: a8e90c6fc3c6a7ebb65b36bb776fe2be39c5064f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/inbox%402x.png

## File: skills/blurt/assets/icons/info.png
size: 455
sha: 7c9be36ef72900adfab2061058441728bf45711b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info.png

## File: skills/blurt/assets/icons/info@1.5x.png
size: 694
sha: 77cae2b926416a00a11f22457dc39648f30d1a47
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info%401.5x.png

## File: skills/blurt/assets/icons/info@2x.png
size: 942
sha: 9590a529da8750a7857a5dadc86aa858cedad4dd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/info%402x.png

## File: skills/blurt/assets/icons/ink.png
size: 365
sha: 75571cda28bdc0cf21511a1e123195841ae7811b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink.png

## File: skills/blurt/assets/icons/ink@1.5x.png
size: 577
sha: 001558d63ed6750447514e337c3ea772474d10b0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink%401.5x.png

## File: skills/blurt/assets/icons/ink@2x.png
size: 827
sha: f9448ee96368955452db2e323671c6bcef1eeb70
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/ink%402x.png

## File: skills/blurt/assets/icons/keyboard.png
size: 366
sha: fd09d7b871dc09cf6ab779e3eaed6083f28d9f25
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard.png

## File: skills/blurt/assets/icons/keyboard@1.5x.png
size: 520
sha: ea108f00041ddf17fc6c2e932158d0b23f74c9ea
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard%401.5x.png

## File: skills/blurt/assets/icons/keyboard@2x.png
size: 639
sha: d09277d1c7c367b6275450bb338f5a8fa037a73f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/keyboard%402x.png

## File: skills/blurt/assets/icons/languages.png
size: 400
sha: 47063dab25b8c2d5d5402059e2dcc2f6b178960a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages.png

## File: skills/blurt/assets/icons/languages@1.5x.png
size: 627
sha: 4154927ea9e8abd0922a6729a6dba357351c53ea
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages%401.5x.png

## File: skills/blurt/assets/icons/languages@2x.png
size: 801
sha: 562228551fe45216d3db87d816ac9900a7cd84e9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/languages%402x.png

## File: skills/blurt/assets/icons/lightbulb.png
size: 418
sha: 3f588a8234ce02fa92811f145b2b513e14f07ea3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb.png

## File: skills/blurt/assets/icons/lightbulb@1.5x.png
size: 623
sha: eff262745168f0d17467ff4a909a7e31a1b49856
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb%401.5x.png

## File: skills/blurt/assets/icons/lightbulb@2x.png
size: 855
sha: ad96ecac0365d6800daaae20544fe4136b5e0fe4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/lightbulb%402x.png

## File: skills/blurt/assets/icons/list.png
size: 266
sha: 9c2f0e10c132b28a26e15343c2ecf362727a8d90
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list.png

## File: skills/blurt/assets/icons/list@1.5x.png
size: 277
sha: ac7384ad871a1bc4148b83c07f25d551982f7620
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list%401.5x.png

## File: skills/blurt/assets/icons/list@2x.png
size: 469
sha: 0fbcee9ee9d248f695a714da021480b51537695b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/list%402x.png

## File: skills/blurt/assets/icons/mcp.png
size: 363
sha: 7460e5928f4f58b5587f6e6eb0fe46736c824ca5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp.png

## File: skills/blurt/assets/icons/mcp@1.5x.png
size: 423
sha: b6348a5d26aa3d1e7ddc10d9a700824ff32065a6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp%401.5x.png

## File: skills/blurt/assets/icons/mcp@2x.png
size: 605
sha: cd3671283359e7577f46c5eb9fdc48b7e5295d83
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mcp%402x.png

## File: skills/blurt/assets/icons/merge.png
size: 336
sha: e053f8eb3fbb1aa2cc7a6b8d42b91af5dd655458
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge.png

## File: skills/blurt/assets/icons/merge@1.5x.png
size: 478
sha: 1d41d45daa71e6b13af7c62d64dce456cfb9a48a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge%401.5x.png

## File: skills/blurt/assets/icons/merge@2x.png
size: 608
sha: 280ebd4a7c0bbee82dfb336d0804db5a7bbd3fe2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/merge%402x.png

## File: skills/blurt/assets/icons/mic.png
size: 398
sha: 4b7a8b6faf8668097cfdef0aae993ef8bc21fc29
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic.png

## File: skills/blurt/assets/icons/mic@1.5x.png
size: 578
sha: a1a1401044c36f5f98f2ac3126c7f760dfdc9b04
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic%401.5x.png

## File: skills/blurt/assets/icons/mic@2x.png
size: 805
sha: ec4b333490429e197aac69f77ec092d4bb59ec9a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/mic%402x.png

## File: skills/blurt/assets/icons/moon.png
size: 420
sha: 9d1b424c696df61c5b457010fbe6ca28f716be2f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon.png

## File: skills/blurt/assets/icons/moon@1.5x.png
size: 622
sha: 55e6d9973f25215f1a102591a0d677e9b53ba322
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon%401.5x.png

## File: skills/blurt/assets/icons/moon@2x.png
size: 875
sha: 8bbecf0dc6ea65a3d8f59cf05052d37f53041055
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/moon%402x.png

## File: skills/blurt/assets/icons/more.png
size: 155
sha: 375c98350273cb08358a99301d167a5a65ff9637
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more.png

## File: skills/blurt/assets/icons/more@1.5x.png
size: 201
sha: a8eff3528ed2279cdfb0cf57db270efeb7deeff0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more%401.5x.png

## File: skills/blurt/assets/icons/more@2x.png
size: 229
sha: bb7a28b1a35749da8defb104e5aad09f08da4c7f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/more%402x.png

## File: skills/blurt/assets/icons/pause-fill.png
size: 162
sha: 8c6f4903bd0171f21cc9edd49fdb09cc2c3b5966
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill.png

## File: skills/blurt/assets/icons/pause-fill@1.5x.png
size: 263
sha: 8f86e278bf2479604c252db5ffc62bf11150587a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill%401.5x.png

## File: skills/blurt/assets/icons/pause-fill@2x.png
size: 235
sha: fc51b83bdb01fd355fb4fd3a775480cfd83e1ff4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause-fill%402x.png

## File: skills/blurt/assets/icons/pause.png
size: 229
sha: c6f1df099d63ede49ef07b0623d49e4c3f576370
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause.png

## File: skills/blurt/assets/icons/pause@1.5x.png
size: 320
sha: ac4b35cbb3addb8c4708ac45484f43cb4cebc079
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause%401.5x.png

## File: skills/blurt/assets/icons/pause@2x.png
size: 320
sha: 9584fff8dc7d82cb5998be8edbf13c1cfd69cf12
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pause%402x.png

## File: skills/blurt/assets/icons/peck.png
size: 474
sha: 59c5113a9bfc99425d62f02fc35190ab4899e04e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck.png

## File: skills/blurt/assets/icons/peck@1.5x.png
size: 717
sha: a9a17d6089a2446d17f72288e889b01550354942
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck%401.5x.png

## File: skills/blurt/assets/icons/peck@2x.png
size: 995
sha: 13c300fb1618ebe0e4179d26bd31130c90c04b07
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/peck%402x.png

## File: skills/blurt/assets/icons/pencil.png
size: 375
sha: b316e76959bc466f688531cbd6ce631751b802ad
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil.png

## File: skills/blurt/assets/icons/pencil@1.5x.png
size: 522
sha: 28763adf96e7f48ba8a98646eb7ccb659eb951d4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil%401.5x.png

## File: skills/blurt/assets/icons/pencil@2x.png
size: 714
sha: 09cdf5b593e4846825b54ebcd9bd4217c5ac0c8d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/pencil%402x.png

## File: skills/blurt/assets/icons/play-fill.png
size: 204
sha: cbd1c2b5422019db43205c13528bbe7ac7e23518
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill.png

## File: skills/blurt/assets/icons/play-fill@1.5x.png
size: 358
sha: 2f0e24ab42e4334c72e6a63bc592b5eb3d984846
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill%401.5x.png

## File: skills/blurt/assets/icons/play-fill@2x.png
size: 396
sha: 5de68ee8687ab341be937506639cba0a7c793f11
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play-fill%402x.png

## File: skills/blurt/assets/icons/play.png
size: 358
sha: 33169b6e50e09aa6c909cf3e911905882fca5177
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play.png

## File: skills/blurt/assets/icons/play@1.5x.png
size: 491
sha: 340ee5acef7bb54d2707b034964cd711d79480f7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play%401.5x.png

## File: skills/blurt/assets/icons/play@2x.png
size: 673
sha: 9431524dd7806b534b09d241cf6a32314bc246e0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/play%402x.png

## File: skills/blurt/assets/icons/plus.png
size: 197
sha: 9bed9148b21b49bcba8bdf58f3e4b5e1f69e290e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus.png

## File: skills/blurt/assets/icons/plus@1.5x.png
size: 190
sha: a3b5af74884a6816d2e4b3b5fd06fa5d6a802ec9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus%401.5x.png

## File: skills/blurt/assets/icons/plus@2x.png
size: 284
sha: 430d127ad548adfa9250f6e533394c4a4e6f1fd2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/plus%402x.png

## File: skills/blurt/assets/icons/power.png
size: 387
sha: 0f05616ca00ae9b5e67cb0029c710424623caa66
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power.png

## File: skills/blurt/assets/icons/power@1.5x.png
size: 577
sha: 12892e68b527bec2014f981ba353cc45787cffc4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power%401.5x.png

## File: skills/blurt/assets/icons/power@2x.png
size: 779
sha: cf85738b9b5f647f7d4c5932b452f5b47dedca2a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/power%402x.png

## File: skills/blurt/assets/icons/quote.png
size: 301
sha: f04e762d74b09d419de9215f5fc73803051ffb49
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote.png

## File: skills/blurt/assets/icons/quote@1.5x.png
size: 389
sha: 445724a06e3d368dc7212cf287083bfbece50932
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote%401.5x.png

## File: skills/blurt/assets/icons/quote@2x.png
size: 541
sha: 33b10630feccde04a16354e2ec47d96bb33fe73b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/quote%402x.png

## File: skills/blurt/assets/icons/record-fill.png
size: 254
sha: 4ca3a7e66e489a85296acddcae23bf2eb4c15987
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill.png

## File: skills/blurt/assets/icons/record-fill@1.5x.png
size: 336
sha: 230f808eec19b5798b3ed672a24c8f547671f0b9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill%401.5x.png

## File: skills/blurt/assets/icons/record-fill@2x.png
size: 427
sha: 92097f7358e086439f42c5db8d867b1b631d05dd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record-fill%402x.png

## File: skills/blurt/assets/icons/record.png
size: 431
sha: 9accb691522ebe2b3b925d80b49f6ecc07d1fd62
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record.png

## File: skills/blurt/assets/icons/record@1.5x.png
size: 699
sha: 1046f0d21c43158a48fe93a7d15f537f2280b835
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record%401.5x.png

## File: skills/blurt/assets/icons/record@2x.png
size: 1012
sha: 2326f579aa47a341063a238bea74211febe86715
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/record%402x.png

## File: skills/blurt/assets/icons/restart.png
size: 414
sha: e37be4e80400d60f09989091775870043b6f5514
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart.png

## File: skills/blurt/assets/icons/restart@1.5x.png
size: 599
sha: 1babbc085c2c169cd7f090e38b8a68d6ed79ce65
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart%401.5x.png

## File: skills/blurt/assets/icons/restart@2x.png
size: 857
sha: 0aa91ac8b2da499aa47ec36b2fcb598863b83c74
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/restart%402x.png

## File: skills/blurt/assets/icons/reveal.png
size: 421
sha: 405cac4f64278196ebc9e99437e54291efdebd3d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal.png

## File: skills/blurt/assets/icons/reveal@1.5x.png
size: 496
sha: e317c0b28bc893a709e6aa1d3845a86c6ec2fba3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal%401.5x.png

## File: skills/blurt/assets/icons/reveal@2x.png
size: 704
sha: 848046e0a561480f1de01cf2d6cbf72fe7c1a610
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/reveal%402x.png

## File: skills/blurt/assets/icons/screen.png
size: 325
sha: 3fe3e1e09ff59bfbdfd324f4fb81ab89e65540d6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen.png

## File: skills/blurt/assets/icons/screen@1.5x.png
size: 445
sha: d9078b4db9b0341ffe88a04d15f8dd15ba2ee8b5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen%401.5x.png

## File: skills/blurt/assets/icons/screen@2x.png
size: 560
sha: 1b9d821b9f883580d7cfb9ea0f0d4c0b1fd3d5e6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/screen%402x.png

## File: skills/blurt/assets/icons/search.png
size: 383
sha: 861baa84072235fce61304fc1b7e90d9751270c3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search.png

## File: skills/blurt/assets/icons/search@1.5x.png
size: 585
sha: cf8803f18164ac4736cf4a72fa6be114f4bb73fe
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search%401.5x.png

## File: skills/blurt/assets/icons/search@2x.png
size: 761
sha: 4f6826608c826fba6862680a28a6fed151348801
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/search%402x.png

## File: skills/blurt/assets/icons/send.png
size: 442
sha: 180884e7e5161b9d54f299f28e158e26196a3626
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send.png

## File: skills/blurt/assets/icons/send@1.5x.png
size: 673
sha: 22a6e5b6517fcda58ae2ab26eb955cbc7c4b1348
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send%401.5x.png

## File: skills/blurt/assets/icons/send@2x.png
size: 913
sha: e06ad742f5d382ab68e4cf8a2fd32b3ee8d26bef
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/send%402x.png

## File: skills/blurt/assets/icons/settings.png
size: 344
sha: 5fee649ec43dfaf26e1f29da96129256a6c49313
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings.png

## File: skills/blurt/assets/icons/settings@1.5x.png
size: 330
sha: 95d1b7b6c9388fd024feda28496fb0f2cf05628e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings%401.5x.png

## File: skills/blurt/assets/icons/settings@2x.png
size: 671
sha: 88ca9f7854ff0abfdcc89ed322783f07a0ea5c20
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/settings%402x.png

## File: skills/blurt/assets/icons/snap.png
size: 458
sha: 32997fd6b7eaf7b1b018b7160437419e156f97f8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap.png

## File: skills/blurt/assets/icons/snap@1.5x.png
size: 589
sha: dae9dcc9a15f2a8e3151283a080243683730bfe9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap%401.5x.png

## File: skills/blurt/assets/icons/snap@2x.png
size: 946
sha: c3c99354fb2be7d5d40adedd06d58054f56fcc0c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/snap%402x.png

## File: skills/blurt/assets/icons/spark.png
size: 352
sha: 9a9617427a43fbcbd2d0a2a4cfb77c923f98b6c0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark.png

## File: skills/blurt/assets/icons/spark@1.5x.png
size: 490
sha: 71ab8bf482e43d2868739447235c305e2478db03
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark%401.5x.png

## File: skills/blurt/assets/icons/spark@2x.png
size: 782
sha: cde8834299caf372a4f7a77ef77807f9bb5259bc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/spark%402x.png

## File: skills/blurt/assets/icons/stop-fill.png
size: 212
sha: aa4606056f7f1f067546e0219dde972f0a4c81fb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill.png

## File: skills/blurt/assets/icons/stop-fill@1.5x.png
size: 214
sha: 02d009accea82fda0e32db7aef6c815fbc38b596
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill%401.5x.png

## File: skills/blurt/assets/icons/stop-fill@2x.png
size: 329
sha: 32ef85f9057bc2144b0d4a4ae782b8495cb624df
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop-fill%402x.png

## File: skills/blurt/assets/icons/stop.png
size: 259
sha: 34a7408e165bd77c27aab3bb09fb132bbc3dd03c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop.png

## File: skills/blurt/assets/icons/stop@1.5x.png
size: 354
sha: 22c5cad1e93290e5bdeef48161b80e1ba3d8e4a2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop%401.5x.png

## File: skills/blurt/assets/icons/stop@2x.png
size: 446
sha: 8155bd0c1e53c0dc218628b3d6cf440b1b655075
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/stop%402x.png

## File: skills/blurt/assets/icons/sun.png
size: 399
sha: 7f999444c0142f7eb6eb7ecfea3cc9592f83f475
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun.png

## File: skills/blurt/assets/icons/sun@1.5x.png
size: 500
sha: eab44cca2513deecdca6832cab2fc12ae6bcbf02
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun%401.5x.png

## File: skills/blurt/assets/icons/sun@2x.png
size: 808
sha: 7fda036e6ebbe29275fec68dd1d5ec2febc9275c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/sun%402x.png

## File: skills/blurt/assets/icons/tag.png
size: 368
sha: d289be9153128cd6513348b4cc69fd8cbd96ef2e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag.png

## File: skills/blurt/assets/icons/tag@1.5x.png
size: 562
sha: 76d4ed8f92606f819684439b822dbce9678446da
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag%401.5x.png

## File: skills/blurt/assets/icons/tag@2x.png
size: 691
sha: eaf9d10919917b673d9a615db3b29e8b278c35e8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/tag%402x.png

## File: skills/blurt/assets/icons/terminal.png
size: 361
sha: 3a5a88ce24523efc606e3719aa5303d9c7495bbe
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal.png

## File: skills/blurt/assets/icons/terminal@1.5x.png
size: 464
sha: 92562e7c3b54c5cd561eb66a0595e5dddc938f41
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal%401.5x.png

## File: skills/blurt/assets/icons/terminal@2x.png
size: 689
sha: e0428d693c1a378d963007e9ebddd5c71ca82b14
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/terminal%402x.png

## File: skills/blurt/assets/icons/text-cursor.png
size: 283
sha: d8f0b2d005f0cf9310597fb5d7f9e0041ede4e9b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor.png

## File: skills/blurt/assets/icons/text-cursor@1.5x.png
size: 336
sha: 3283b1cb5470c2a1e1791147b8dd6b539253ead0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor%401.5x.png

## File: skills/blurt/assets/icons/text-cursor@2x.png
size: 465
sha: 3f8fc66ddd9ad6f300e8fc8cdc4dfb6623c2c370
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/text-cursor%402x.png

## File: skills/blurt/assets/icons/trash.png
size: 427
sha: 2402ab208db74a2d5c532f5920e685f6f30167db
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash.png

## File: skills/blurt/assets/icons/trash@1.5x.png
size: 563
sha: 7097ec909237a67351735b059752a66c3d4e7cc5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash%401.5x.png

## File: skills/blurt/assets/icons/trash@2x.png
size: 752
sha: 46cb53ad6bc70d511d761bfd3fa162cf657afaaf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/trash%402x.png

## File: skills/blurt/assets/icons/undo.png
size: 335
sha: 4cef8b3a618f234c843aa42cfe9a634af41bb468
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo.png

## File: skills/blurt/assets/icons/undo@1.5x.png
size: 408
sha: 35f4f3ff59eece06639382a5ec7c444a1315d17e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo%401.5x.png

## File: skills/blurt/assets/icons/undo@2x.png
size: 565
sha: 5885b018bcbf9e750ec106e21936b14810ff13c3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/undo%402x.png

## File: skills/blurt/assets/icons/video.png
size: 344
sha: 50f808ebeb9a9204882b601296f44350996629bc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video.png

## File: skills/blurt/assets/icons/video@1.5x.png
size: 478
sha: 65f2328692202b691f19764597f1990d3147f08f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video%401.5x.png

## File: skills/blurt/assets/icons/video@2x.png
size: 633
sha: ab3e1fa1d650cd84b97eaf5138a32f1b6f933431
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/video%402x.png

## File: skills/blurt/assets/icons/wand.png
size: 279
sha: 8b1f71eae4ef7831da9fdf9724839c83bb94c01e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand.png

## File: skills/blurt/assets/icons/wand@1.5x.png
size: 397
sha: abbdbd4f6e26bad32cd36aed6b15f98c1e2e01c2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand%401.5x.png

## File: skills/blurt/assets/icons/wand@2x.png
size: 510
sha: 5f858365097cfd0bdcf250575edf4e14197d2a96
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/wand%402x.png

## File: skills/blurt/assets/icons/warning.png
size: 434
sha: 3ec86e1ba909429c47f45492f95b459012a16daf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning.png

## File: skills/blurt/assets/icons/warning@1.5x.png
size: 638
sha: e95091133f34d5f20c2f680f66b34059add6e611
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning%401.5x.png

## File: skills/blurt/assets/icons/warning@2x.png
size: 862
sha: 40b2232dab758615dd06bba31621c7324eac0603
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/warning%402x.png

## File: skills/blurt/assets/icons/waveform.png
size: 294
sha: e2925cbbdb8e2167e3c872b8665e8ff1ffc39594
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform.png

## File: skills/blurt/assets/icons/waveform@1.5x.png
size: 321
sha: 3a484b3f415934435d07a319634890e4756f06d4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform%401.5x.png

## File: skills/blurt/assets/icons/waveform@2x.png
size: 428
sha: 204df50d7a4d922fbfe838b057d4a032036a4a10
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/waveform%402x.png

## File: skills/blurt/assets/icons/x.png
size: 224
sha: 2482c6f11a58226c743bbc205cf9573e5254d957
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x.png

## File: skills/blurt/assets/icons/x@1.5x.png
size: 266
sha: 3cf66cccabce32664249b3247cccf18f1313439d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x%401.5x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x%401.5x.png

## File: skills/blurt/assets/icons/x@2x.png
size: 363
sha: 1ea70d96cf98f960de29a58ab24cc32c80b5d18d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x%402x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/icons/x%402x.png

## File: skills/blurt/assets/peep-done-dark.webp
size: 6478
sha: 2db59fb8ed9348a0e6ad3a2951dbbe20a55c1595
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/peep-done-dark.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/peep-done-dark.webp

## File: skills/blurt/assets/peep-done.webp
size: 6278
sha: 60a592cf245b193024ba569d7c82d11168e5edf5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/peep-done.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/assets/peep-done.webp

## File: skills/blurt/models/silero_vad.onnx
size: 643854
sha: d1b57f7bb9e6fca4f05ed0272a4d6c0f1dec3f74
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/models/silero_vad.onnx

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/models/silero_vad.onnx

## File: skills/blurt/recorder/macos/.gitignore
size: 18
sha: 2d9f16e2d276179d73c91ec2022a23834caec180
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/.gitignore

```text
.build/
.swiftpm/
```

## File: skills/blurt/recorder/macos/Info.plist
size: 2700
sha: 29c3f0deaff87111d246208c7a7afc3fd15cc1ab
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Info.plist

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Info.plist

## File: skills/blurt/recorder/macos/Package.swift
size: 3325
sha: db63e6638e4521208998f70a88312a930e940510
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Package.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Package.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentHub.swift
size: 46969
sha: ef819384fd318639e014a383ae9d4e5a2a32f842
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentHub.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentHub.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentSetupServer.swift
size: 32995
sha: 876dbffe54bbc78a87544e55455ce257148920f8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentSetupServer.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AgentSetupServer.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/AppDelegate.swift
size: 74720
sha: 2d231582192991dcbc2521393782df3652f3de69
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppDelegate.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppDelegate.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/AppEnvironment.swift
size: 4182
sha: 7330f8acc14300639a23670d4969bae1b2599d87
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppEnvironment.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppEnvironment.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/AppNames.swift
size: 2336
sha: 98a767c25743ae3f823eefb2a33a0eff3e8d0ad8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppNames.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/AppNames.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/BrandMoments.swift
size: 1780
sha: 1f3d0fbf9b31921bfb89baf41a03b81d05fe6212
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/BrandMoments.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/BrandMoments.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/CarbonHotkeys.swift
size: 1829
sha: 45b120328d24e0f1858ad072bd85238729d5ed4a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CarbonHotkeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CarbonHotkeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/CloudStore.swift
size: 15003
sha: cae47bf17949fcc33f6a03bde753bbf9cf3711cc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CloudStore.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CloudStore.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/CuratedModels.swift
size: 3803
sha: 097baaa3bcb34b427eebb81843f12b8a93b75333
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CuratedModels.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/CuratedModels.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Hotkeys.swift
size: 2992
sha: e7010cb137516aec7faebe3ba0f101ab330f03f6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Hotkeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Hotkeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/HotkeySettings.swift
size: 45131
sha: 53aa19962405e1d007d86d79a87e72760bc547fd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/HotkeySettings.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/HotkeySettings.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Housekeeping.swift
size: 15182
sha: b8fb7cce0b2020b036a3e8fb46629a4c339e7de4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Housekeeping.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Housekeeping.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/LaunchMessages.swift
size: 3407
sha: 85bdac72185c003559b040de48b725636f746c41
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/LaunchMessages.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/LaunchMessages.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/MemoryPressure.swift
size: 2291
sha: 6ff7b8864157cb10bff7cfed903b55f82668d924
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/MemoryPressure.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/MemoryPressure.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/MenuGlyph.swift
size: 14440
sha: e084aa48a3300fd43783512bf67e231916db887e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/MenuGlyph.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/MenuGlyph.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/ModelDownloads.swift
size: 20551
sha: 67634df3a2bbc0f17edf57d5a0ef54ab89adff5a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/ModelDownloads.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/ModelDownloads.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/NetworkWatch.swift
size: 2875
sha: 01ed89a3701a37c5353764f883086b5a251a84fe
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/NetworkWatch.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/NetworkWatch.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/OrganizeProgress.swift
size: 2659
sha: 625c0544d6142642d06802e92e4894d1fc4d4859
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/OrganizeProgress.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/OrganizeProgress.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/SelfTest.swift
size: 11285
sha: 210421860fe50041937e9f080a0746490727426c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/SelfTest.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/SelfTest.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Shell.swift
size: 2925
sha: 1fb2aea2f1596b435fc6b6a2d89935cf796e359e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Shell.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Shell.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/SnapApp.swift
size: 60019
sha: c8e6cde2fca540b1360a7ddac5bebce921c64e5e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/SnapApp.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/SnapApp.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Strings.swift
size: 1120
sha: 42bdc319e233d317e9f1d41064ee96058af15c7f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Strings.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Strings.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Support.swift
size: 7756
sha: 7883a8f707d69f5bb9fb7fab6a3fbdc8be8e1380
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Support.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Support.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Updater.swift
size: 5693
sha: 8831c2db444ab8e43a345ad2e03cd2a162ed0200
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Updater.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Updater.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/UVSetup.swift
size: 3871
sha: 6138826a06dbe1182f63498a91c7014b97365f5b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/UVSetup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/UVSetup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/App/Workspaces.swift
size: 2825
sha: ecbd843bce8e40fac880ee70c3c7dac76fea5ea2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Workspaces.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/App/Workspaces.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/AppleSpeech.swift
size: 18136
sha: 9c1d7fd93ee978b4e49b6eb2a9ac63c6ad13027d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/AppleSpeech.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/AppleSpeech.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Captures.swift
size: 75027
sha: 092964edccd78b695b438d7ba407a425ab343e5f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Captures.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Captures.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardDrag.swift
size: 27298
sha: 411097992faf89ee4038e129ada153a3962a3709
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardDrag.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardDrag.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardExport.swift
size: 16500
sha: 75f7cd3bd11ad6d0f66ec6313e582e6df9156c64
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardExport.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/CardExport.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Chrome.swift
size: 16808
sha: b7e76e84e1b670abb0eef4757895157527bc6305
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Chrome.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Chrome.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/Dictation.swift
size: 108861
sha: b1ba3ca8d822950c937495177f9cfeb9f84e6d14
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/Dictation.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/Dictation.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationCloud.swift
size: 3526
sha: 2295a282a64cfc7f484ae7f58bd4351ffac5285f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationCloud.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationCloud.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationContext.swift
size: 18905
sha: 0411080cc2fbfceb2b923491b38fb2b9836a4fb4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationContext.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationContext.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationInsert.swift
size: 24044
sha: 612584cbdd5309c510d63a578c0abf7915865e38
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationInsert.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationInsert.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationKeys.swift
size: 22406
sha: 4560c6ea4e5d9a56e7d64a4e27d62cb2dba86afc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationKeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationKeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationRemembering.swift
size: 6297
sha: 47aac81238fb0f0073b1a961657a38a9c281111e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationRemembering.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationRemembering.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationSound.swift
size: 3227
sha: b604aa72ff173af3c6fb6bb87ab46344ac8228e0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationSound.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationSound.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStream.swift
size: 77502
sha: 5f8a1a005ac8077d3aa446698f10cdbdb5ba5432
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStream.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStream.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStyles.swift
size: 32377
sha: 2f7c2a4a67a2116bb3d0385990e212f7750bb4f5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStyles.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationStyles.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTakes.swift
size: 51457
sha: 7a6957e63d7738eda18d11558a3c62c2b9e19216
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTakes.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTakes.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTestHooks.swift
size: 26408
sha: d38d491dcd8c721f659ee7450f45452477924eab
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTestHooks.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTestHooks.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTranslating.swift
size: 13456
sha: 07ea70c20334202169a71d7d2e7d7f736300c004
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTranslating.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Dictation/DictationTranslating.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkStage.swift
size: 13725
sha: b67d369579767bcb125aecfaedd52c7eedbb2bd4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkStage.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkStage.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkView.swift
size: 17181
sha: 9de23d1ccf754f69777d42f1a12ecc4854e1efcc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkView.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/InkView.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardChrome.swift
size: 17550
sha: 6f4725c403a08ab954240c0e67d1fa7563877d56
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardChrome.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardChrome.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardPreview.swift
size: 10711
sha: e01ac187527293044e9cd1a27cd4cd6435e652a3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardPreview.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardPreview.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardsOverview.swift
size: 62351
sha: 0ae15db01d5b97abf3e60d1785f872cb2ea5ddfa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardsOverview.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/CardsOverview.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Ears.swift
size: 27175
sha: 31bdd3261656cf82ad4d2e452903c237dbe063dd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Ears.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Ears.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/FrameCapture.swift
size: 5506
sha: 95b320a0c671c0045c2c3c234fb739401765ef23
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/FrameCapture.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/FrameCapture.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/HangingCards.swift
size: 157168
sha: 2dc2634922862d3ed96145eef5b051be5e110ded
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/HangingCards.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/HangingCards.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Island.swift
size: 80278
sha: da63da5fd812d4c395e851d4ed73688f2668aed3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Island.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Island.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandContent.swift
size: 97181
sha: 74a808deafcb9e75e0d79d75f90cb856f0fbba08
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandContent.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandContent.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandModule.swift
size: 406
sha: cf025d12c5c519f41bff44e425fbf1f8a5c37d6a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandModule.swift

```text
// The notch island (K7, P5): installed after the other modules (AppEnvironment.installModules) in the menu-bar app;
// sets AppEnvironment.island. A recording started from the chat (no menu-bar app) starts the island on its own.
import AppKit
import BlurtCore

enum IslandModule {
    static func install() {
        AppEnvironment.island = island
        island.start()
        snapper.restore()
    }
}
```

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandRecording.swift
size: 9187
sha: 4f566676b8d0b5dc51bc006d1b2f38d6680354f7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandRecording.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/IslandRecording.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Motion.swift
size: 8334
sha: 79a983ec03ab18e948395dd8ced96157b825dde8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Motion.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Island/Motion.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KeyCaps.swift
size: 10557
sha: 80ac655afd22ac07060f1723f647430b1058aa07
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KeyCaps.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KeyCaps.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KindChip.swift
size: 11419
sha: 56a2edc0e4269b92949d02764335b4ce2dca7b59
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KindChip.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/KindChip.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveAudio.swift
size: 10376
sha: 6ef6b163309451503d332853ad16ba5681ab0e5e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveAudio.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveAudio.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveFeeds.swift
size: 2367
sha: 4cdde43401e634097ecc016fac84936cddcd4e90
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveFeeds.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveFeeds.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveTranscript.swift
size: 31029
sha: c519574576203e1fd07f184903f0f88606dfaef3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveTranscript.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/LiveTranscript.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Loupe.swift
size: 6696
sha: fad7bae8e6a5f0ca6e96a4f5477f3e03fdc3c11b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Loupe.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Loupe.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/MissingFolder.swift
size: 8914
sha: b8b534e057510d21e90cd65be9718578b220928d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/MissingFolder.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/MissingFolder.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/NoteBubble.swift
size: 135151
sha: b63585da0ce7341958a4cd9c8bdb53c0565a6fa5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/NoteBubble.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/NoteBubble.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/OwnWindows.swift
size: 3285
sha: 75157c477e3d56f9562639d825d3ec92a71aea39
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/OwnWindows.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/OwnWindows.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Picker.swift
size: 35464
sha: bd05835c066b10f6201126c3da1b6d331014cff2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Picker.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Picker.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ProjectChip.swift
size: 20702
sha: 5beef89cdad930e9cd549f4473740e7720cfce93
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ProjectChip.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ProjectChip.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Recorder.swift
size: 54942
sha: 9ece86e28ea630e291dd2dabaebc308b8336bf35
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Recorder.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Recorder.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Refile.swift
size: 8757
sha: 69c388d02f16db347f1bb074b64eccd34f9b00ab
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Refile.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Refile.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenHelp.swift
size: 3637
sha: d454283485fb258f081d3281c685b9cdaab46e8c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenHelp.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenHelp.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCard.swift
size: 19070
sha: cdfe45c9c0762197998e33f985faf80d655942fc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCard.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCard.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCopy.swift
size: 26666
sha: b9c78cd0823c6a0245d7cfd2d4b24a1bbb7ecf24
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCopy.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextCopy.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextRefine.swift
size: 7389
sha: 9c95ab9819ea4016abc36d32158f77dadaea50f7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextRefine.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/ScreenTextRefine.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/SmartPaste.swift
size: 42116
sha: 2cfafda0d0fa077a5d85cecfbc1ba6c5370702c1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/SmartPaste.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/SmartPaste.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Snap.swift
size: 38997
sha: 20ab8fc6c2633984c0d499b8018bbe3366ff27d6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Snap.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/Snap.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/TakenPanel.swift
size: 4867
sha: 34c679c73a327daa9d89727818648c7da578d5fc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/TakenPanel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/TakenPanel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Capture/VoiceInput.swift
size: 50680
sha: 890e389998d756f6d8717b8759f487476692f115
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/VoiceInput.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Capture/VoiceInput.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIcon.swift
size: 10764
sha: e5e0e7418a26894908e87ed22ab7360aa7ee9624
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIcon.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIcon.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIconPaths.swift
size: 90115
sha: bc5c33061c84ec9bc9fb2d6253c53a2f171eac7a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIconPaths.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BlurtIconPaths.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandColor.swift
size: 15139
sha: 7fdd84986ab55c75b17b9bf4c4b8a884540ca494
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandColor.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandColor.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandViews.swift
size: 27455
sha: 18dfbb4bdf6aa7094eb394279217846418a2f71b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandViews.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/BrandViews.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/KindStyle.swift
size: 5593
sha: 53aaa9f667bd862ba4a7fe8abf16cda1ea5452a7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/KindStyle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/KindStyle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/Mascot.swift
size: 26784
sha: ea775816c309bac85de4df160b948fd4f3739fa8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/Mascot.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/Mascot.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/ProjectLook.swift
size: 2590
sha: d66817a9b706c2f07d8ee9b216a061129a3abb14
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/ProjectLook.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/ProjectLook.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Icons/StatusRing.swift
size: 5358
sha: 132c9a30ac2706e82bfeb225657e76493aa7b0d8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/StatusRing.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Icons/StatusRing.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/main.swift
size: 3125
sha: a3b9c9ba3cb507eabcb2e6494c2fdd9cfa08f21e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/main.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/main.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/CommandPalette.swift
size: 52475
sha: ceac7b3eb8f2cf88da51d2fe9c145292a88dd3d5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/CommandPalette.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/CommandPalette.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationFeedback.swift
size: 12083
sha: c4e4bd35c439ce4c201f26e071488824c66de611
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationFeedback.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationFeedback.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLab.swift
size: 45018
sha: 485499f09d4fb638f009cc0b0ad5ece1b0b2a2b0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLab.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLab.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLabViews.swift
size: 64591
sha: 61e41df0c58533e40f9094224c88371ad408f3bf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLabViews.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationLabViews.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationPage.swift
size: 113472
sha: 7a770214e62d9995ea2e8cf9a9039e24eaf1a204
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationPage.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationPage.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationWords.swift
size: 37894
sha: debdfe9315d1d0bf5bf9c1a1481a9f1b6e56c18c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationWords.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/DictationWords.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemCells.swift
size: 42497
sha: fbe016e824495d973e0d9bdf6c44a5f04ac47c1c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemCells.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemCells.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemListController.swift
size: 97951
sha: 3417c3e14458592707570a8b1057745ffe233a8a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemListController.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ItemListController.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/JobViews.swift
size: 65920
sha: b537f7d0f407c7d12e8ca3c0f06504dc76d3c44e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/JobViews.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/JobViews.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainMenu.swift
size: 36989
sha: 502161463f50f5ea45d2565698ccf90636a98f7a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainMenu.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainMenu.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainModel.swift
size: 25187
sha: 5f6b99ff8ff0a682fa307cd004744940285a391c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainModel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainModel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowController.swift
size: 111518
sha: 41aa35800c8bb456195e69c1be80037bf17f0322
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowController.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowController.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowModule.swift
size: 4385
sha: 1500f1575e77ed27e800fc1f36d4313a7246c7ba
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowModule.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/MainWindowModule.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/NewItemSheet.swift
size: 11761
sha: 1049cca9292a6822e19bd0ede0dd4672e53c35a5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/NewItemSheet.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/NewItemSheet.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectPicking.swift
size: 27822
sha: cc8ea0ac70c0987890e57fda7fb431d362da435f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectPicking.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectPicking.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectSettings.swift
size: 26773
sha: a07eadfc736692101bd2391ab05c7e310b9f8aa7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectSettings.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/ProjectSettings.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/Scripts.swift
size: 7748
sha: 0cc28c278d7a6eb024e65b5eb4793f4f3dcd007e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/Scripts.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/Scripts.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/SidebarController.swift
size: 26181
sha: 1f578217b4a123dc67dc84bd932408826788f9e4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/SidebarController.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/SidebarController.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/StateMenu.swift
size: 8966
sha: 8d350f2de0c7811171c07fb2c79fdb71d3f1a196
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/StateMenu.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/MainWindow/StateMenu.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/HelperPanel.swift
size: 28888
sha: 0539bcecb6f173f80f1d73dd189f72a7851f9f60
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/HelperPanel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/HelperPanel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/ModelSetup.swift
size: 14901
sha: 2c737d463296740876f41f4c53d7af8d52d4d2ce
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/ModelSetup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/ModelSetup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/Onboarding.swift
size: 69708
sha: 929a8e3dab05af451757901088220c2fdab7c255
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/Onboarding.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/Onboarding.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/OnboardingKit.swift
size: 8789
sha: 2471fb1836f6e8acbe6baeb6c1d33a717d3ba591
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/OnboardingKit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/OnboardingKit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionGuide.swift
size: 20541
sha: 70c00453b3e82cd4493734c6ee2700bf93de85fe
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionGuide.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionGuide.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionTestHooks.swift
size: 5047
sha: a97fc9dfdea22f47216807656dfce1fcb508d736
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionTestHooks.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/PermissionTestHooks.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/SystemAccess.swift
size: 7745
sha: ba0fa302e583c091eeb03ce5442ab51de8715a66
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/SystemAccess.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Onboarding/SystemAccess.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.car
size: 2505832
sha: 0eb40b43674274ff97c6d5916726b9fa1357036b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.car

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.car

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
size: 666
sha: 2d23b57861bca85ba6a97bad22fb6efea0ecb961
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/AccentColor.colorset/Contents.json

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/AccentColor.colorset/Contents.json

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/Contents.json
size: 60
sha: 74d6a722cf39b2dd5bef11f166e6ac9b99568a01
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/Contents.json

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Assets.xcassets/Contents.json

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.strings
size: 23062
sha: 916776af54a3e59623e0e859aaa42561ade71ab7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.stringsdict
size: 11099
sha: d58af00a5973b65bbbe9f7a44aad7414c4d4e1cd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Capture.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Common.strings
size: 3724
sha: 73c2f6574563f7cda9faa9745948c8205b0586d8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Common.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Common.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.strings
size: 45254
sha: cc4d3f02409372b0ed398c2a7736bef700ec5506
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.stringsdict
size: 1149
sha: 394028ffe6e48fea6c5e4c99ad40b3c9870bf1a1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Dictation.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.strings
size: 38650
sha: cbb2a3e14132d2f286e569e8e59a58c19c2abc48
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.stringsdict
size: 13689
sha: 3bc8de35120085cf869c957aa29e47a70938ab71
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Main.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Models.strings
size: 7763
sha: 1426df3e1bc77d98529b07d5d91df60470e548ef
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Models.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Models.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.strings
size: 36393
sha: d963bc444038f52b11b2219e8b799d3c83ad4da5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.stringsdict
size: 1848
sha: 5218e04889f0991a8d04e30d22a20a39618d046c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Settings.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Speech.strings
size: 13998
sha: 0a03483fd52571d18ef560a7ddfaf853b3050157
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Speech.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Speech.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.strings
size: 29721
sha: 04b05b96a8604a3cf35d5bba1c89b928f173ee56
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.stringsdict
size: 5728
sha: 449eb47dead171bd8eb6608016d81378da9bf453
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/en.lproj/Terminal.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-done.webp
size: 172828
sha: daf21dd3f47e0cfcc5ab854812ae55abb4a43a51
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-done.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-done.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-error.webp
size: 165248
sha: 408ff63026b33e64b7aad4e91b7ee795923890b3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-error.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-error.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-hello.webp
size: 152262
sha: e0ee797cb02175a013bcf1a81c3e0ac766d92bbc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-hello.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-hello.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-idle.webp
size: 189422
sha: 103515a8f8e7e5dbd61931be4dd224d3e9faefaa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-idle.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-idle.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-listening.webp
size: 155142
sha: e9f7c3b08fe0758c40dd043e65636d8d2c51fdf3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-listening.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-listening.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-talking.webp
size: 178748
sha: de00a0d7b36e285ede806663e2ed8aacab797d64
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-talking.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-talking.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-thinking.webp
size: 154412
sha: 22df5db7f8cda2d2a25174fe06c81707cd13969f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-thinking.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/dark-thinking.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done.png
size: 10418
sha: 4d74488fcee261b4cacadd717e1193d166d34493
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done@1x.png
size: 890
sha: 8d64f39ad077ea2e26c273a523f07ee61ecefc62
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-done%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error.png
size: 7374
sha: 939d1fb63a103d29a597bc8f66e7e8e71958b00c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error@1x.png
size: 792
sha: 7feddb62d6eead4a7fd70289735112099482c286
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-error%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello.png
size: 6270
sha: 0ddd1fbc8f3f9ac0a94f2a27ac56847a4785e744
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello@1x.png
size: 560
sha: 34978e2dec568bb84fc03daeada0ca630db52df9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-hello%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle.png
size: 9854
sha: 45619bce55806a7288f13cd5301f6e0f953f59f2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle@1x.png
size: 789
sha: 0abb1fa741613c0c4b1e06c2bb9b3439eea6a74f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-idle%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening.png
size: 6392
sha: e02ba194ee8e625beff664272b6842830b4ca4be
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening@1x.png
size: 476
sha: 58abf09ebb3c963274174c9ca95e8f0571cb5cc6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-listening%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking.png
size: 6674
sha: b2679d5a37654baed67ac6900700a2d97c00a4d9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking@1x.png
size: 618
sha: dc1bb334b1f1b7ca0ec4d16b9ff2471a97bd96b7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-talking%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking.png
size: 7166
sha: 3f17749babeb5563208851693166313fbb28121d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking@1x.png
size: 625
sha: e6b463267dbe011a2499ea157586596bcb5d5496
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking%401x.png

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/glyph-thinking%401x.png

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-done.webp
size: 235604
sha: 8bb3674e0e7da9ee484a62c1805757e81fd20b2d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-done.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-done.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-hello.webp
size: 207814
sha: 8d6f79ccf728bcf8f4faf844f7fe486610e4c31b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-hello.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-hello.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-idle.webp
size: 258098
sha: 4bf3009d35c59fa73c4462a65aa5785c08f3a73a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-idle.webp

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/paper-idle.webp

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/peep.json
size: 2748
sha: 67385003485e3030da9516e58bcf3b757593463f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/peep.json

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Peep/peep.json

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/cancel.wav
size: 4364
sha: 1f2f9b7bda4dc68353d2b80ad30725b82dbef1c7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/cancel.wav

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/cancel.wav

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/start.wav
size: 21164
sha: 5f6cbed49940772c342b805bcb9107d1f6dc34e1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/start.wav

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/start.wav

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/stop.wav
size: 8684
sha: a91a6b62f2d050e945f41267d91ddbb497f47c5d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/stop.wav

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/Sounds/stop.wav

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.strings
size: 23177
sha: 8d7c461a34613e9b1f1859bcdbddf5a24512db32
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.stringsdict
size: 9965
sha: 5f10bfa5df38ecfd12e963ea6dc582682006d03a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Capture.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Common.strings
size: 3606
sha: aee38c217da8eef953d5b47f6694d0eafdb74075
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Common.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Common.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.strings
size: 44575
sha: ed403309fa32abd33cb242e323ef4b85b2b77aa4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.stringsdict
size: 969
sha: 3c3caca7fd83f1ce8d01b68ef2fac042b9141ab5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Dictation.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.strings
size: 38280
sha: 7f2801635d45075eb685043ce24be2d983f4d295
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.stringsdict
size: 12064
sha: b1fd44b4f1180f4c71e92c6acdf5d39fa86fd8a3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Main.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Models.strings
size: 7693
sha: 4256703ece8cfb92613d9dd3fc741438731482bf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Models.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Models.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.strings
size: 35955
sha: 0d4e14f1472a824f15532e1d31835424acc5d8c1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.stringsdict
size: 1641
sha: f1bf15543516555fe2048d9254f988a8f0cb9f92
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Settings.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Speech.strings
size: 13471
sha: 79ab9f5b9ed5d15156431b1bfb0911a7564c484b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Speech.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Speech.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.strings
size: 29092
sha: 5d603d8bbe354803ce123d06c3716d6f1047105a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.strings

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.strings

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.stringsdict
size: 4919
sha: 38415cd681f9547820821b23ce8355a71784f14e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.stringsdict

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Resources/zh-Hans.lproj/Terminal.stringsdict

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentSetupViews.swift
size: 17012
sha: 3166c208c6f8eb33cc8f90d00ef5a3a5dc4eae1e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentSetupViews.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentSetupViews.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentsPane.swift
size: 78782
sha: e923a01c8c154dfeec650b79b36409b4c2e59881
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentsPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/AgentsPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudModels.swift
size: 5668
sha: a74bd0e756bbae470184e764346d910f422a4010
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudModels.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudModels.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudServicesPane.swift
size: 57200
sha: f3cc142e97dbc97db234c7cee930af02d39f1e4d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudServicesPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudServicesPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudSpeechSheet.swift
size: 24364
sha: 59105aeccd9b4467968fbbfafb448237601ec680
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudSpeechSheet.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/CloudSpeechSheet.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationCompare.swift
size: 22604
sha: 9474b88aa11ef6fcf8fbc4d8dae492af8102c0a0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationCompare.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationCompare.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationModels.swift
size: 20390
sha: 28f7423c1c713f9cd31b086789c8a9d901bc18ed
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationModels.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationModels.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationPane.swift
size: 51895
sha: 5d11a00f34dcafd6152dbb1e18223252d3dc7368
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/DictationPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/GeneralPane.swift
size: 13255
sha: a3f8441f90e7dda7e5eb2213db0dac35ab86da54
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/GeneralPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/GeneralPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/PrivacyStoragePanes.swift
size: 55085
sha: 0ae63c1917e9f8f406771efbaf342e953b2aba68
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/PrivacyStoragePanes.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/PrivacyStoragePanes.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ProjectsPane.swift
size: 13251
sha: dc999779e972db4ed93a82c357e97c2d72226585
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ProjectsPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ProjectsPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ScreenTextPane.swift
size: 5493
sha: cb69f0a68ab3e67989ffd6edeba1efa54b4099d7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ScreenTextPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/ScreenTextPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsKit.swift
size: 69337
sha: f2bb538a537aa62cd5d406a801d429c8998000f0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsKit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsKit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsModule.swift
size: 1857
sha: f6ca74e29021b9e4b72f6be69b1e5752fc0301d3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsModule.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsModule.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsSearch.swift
size: 28980
sha: 1f30933dd65f5d75bd00264086050d73dfc4c2bd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsSearch.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsSearch.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsWindow.swift
size: 27667
sha: 864bf23c04ed1baefdf42672127e2206b2c66c34
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsWindow.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SettingsWindow.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SpeechPane.swift
size: 71986
sha: e19df47c540a8007f10225322aeb7ac5597a5dd7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SpeechPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/SpeechPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Settings/TranslateTargets.swift
size: 2683
sha: 2edf6d9fd9c886f1ffc18db772fbac18601b4c00
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/TranslateTargets.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Settings/TranslateTargets.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/FixRunner.swift
size: 3354
sha: 0a95c54b23537ee9915cd845b7908cbab997ad50
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/FixRunner.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/FixRunner.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/FixWatcher.swift
size: 6754
sha: 4a9081c627e813508228eb25ec7ed52e8551a2c5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/FixWatcher.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/FixWatcher.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/IndexLookup.swift
size: 2781
sha: 91d6b1b181f220328467d560908db2483b63b488
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/IndexLookup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/IndexLookup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/JobNotifier.swift
size: 10686
sha: ef3743f39c443525d11ecf5fc359d27a2af123db
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/JobNotifier.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/JobNotifier.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/LayoutCheck.swift
size: 14533
sha: 8f7d1347c246b2921c083cf4a399479638932ffb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/LayoutCheck.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/LayoutCheck.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/Peck.swift
size: 4277
sha: 94f93ea359faf03c7cf60f128b8e067aea2a067a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Peck.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Peck.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/SelfTests.swift
size: 56125
sha: e57fbe7af48d636429c1dfbe2cf363ca1225a9c1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/SelfTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/SelfTests.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/Services.swift
size: 8347
sha: 72a93f4a36fad871ef3108184646f5cbdb538a6e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Services.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Services.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/Spotlight.swift
size: 5979
sha: 3f65b18e71e130cd07c31c8675570482430d70b7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Spotlight.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/Spotlight.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/System/URLRouter.swift
size: 4131
sha: 2d60ea084a468ef1a6a3d7ac68ebe2da91733264
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/URLRouter.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/System/URLRouter.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DesktopApp.swift
size: 6072
sha: f43b9bb39d1a483e35dce46a5196ff05081da25c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DesktopApp.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DesktopApp.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DispatchPanel.swift
size: 45656
sha: fdbee5d10b0dcdc02eac5da15be86206ce1848fe
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DispatchPanel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/DispatchPanel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/FinishPanel.swift
size: 23830
sha: 0c61197d246e33003adef52bd1ddafc5f2164e4f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/FinishPanel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/FinishPanel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/HandoffKit.swift
size: 12132
sha: 410170784a5f1445159548ab254da91541fc972f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/HandoffKit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/HandoffKit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionNotifier.swift
size: 5460
sha: 050f9afd5e8ef997a49885c4d61e28748977ef7b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionNotifier.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionNotifier.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionRecovery.swift
size: 4654
sha: 42a03b741a8318721cc26e9f4931d68971a4c709
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionRecovery.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionRecovery.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsModel.swift
size: 10999
sha: db0eefd6a868f4f1bb67b92c19b56086dc61b4fb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsModel.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsModel.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsPane.swift
size: 18228
sha: bcf7410a4258f7ee2411dd5c602ad5212f3bd86b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsPane.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsPane.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsViews.swift
size: 32607
sha: 06de3c91603ee07ed5257e87031bbb8dcb3dcdd5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsViews.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/SessionsViews.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalModule.swift
size: 5624
sha: 33e3fadfa4c14afb7dbdc489265e2ea845cef884
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalModule.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalModule.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSelfTests.swift
size: 14762
sha: d623edcde1677fac40482c8bb1d167d9e0724a76
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSelfTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSelfTests.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalStyle.swift
size: 8498
sha: 2f15a2dcd3d032ee962605feec565385d43a3132
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalStyle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalStyle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSurface.swift
size: 11388
sha: f31993c978d5d74abb7da7c98745a62d3568b992
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSurface.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/Terminal/TerminalSurface.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/DragOverlay.swift
size: 4802
sha: ca4eb822f6754593b1df8acc397512940ebea692
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/DragOverlay.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/DragOverlay.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/ReviewHandoff.swift
size: 3822
sha: 092c1e986866118c0ce06bc3425f85065c99a249
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/ReviewHandoff.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/ReviewHandoff.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SchemeHandler.swift
size: 9862
sha: abc55c251e3554e4ea7325366b0d86f56a7282bd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SchemeHandler.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SchemeHandler.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SelectionView.swift
size: 19679
sha: 4a231f87306533d327f6a233249e70a12881acae
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SelectionView.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/SelectionView.swift

## File: skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/WebHostController.swift
size: 47032
sha: 0fb7536fdf4d3190861884f0f537d6c3d3c3dc0e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/WebHostController.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtApp/WebHost/WebHostController.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Agents.swift
size: 29431
sha: 1442a510a10617c3ac343b1a7457f13b89e1d07d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Agents.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Agents.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Agents/OrganizeSteps.swift
size: 1623
sha: b168d40173f12139cd575c61f55a20873d87cfc7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/OrganizeSteps.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/OrganizeSteps.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Processing.swift
size: 3082
sha: 37bf10a7f00d5d5c1a79acc299d90ef4174d6194
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Processing.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/Processing.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Agents/UnattendedRun.swift
size: 3222
sha: 89d8c3b5eea7f3ed68ec68da6367ddc47fb7b754
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/UnattendedRun.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Agents/UnattendedRun.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/AgentSetup.swift
size: 25164
sha: 9b17a78aa96d7f55dc43b774354591a5d84e6aae
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/AgentSetup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/AgentSetup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/AppIdentity.swift
size: 626
sha: 66619aa389e19e9107f5304db7a585a8bfec9c69
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/AppIdentity.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/AppIdentity.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/BundledSkill.swift
size: 3544
sha: a36139be8fc68001c497227d4248f8068975f74d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/BundledSkill.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/BundledSkill.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CaptureEdits.swift
size: 5122
sha: 19be98b6d12b54aaac516109d5226459434d08e1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureEdits.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureEdits.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CaptureExclusion.swift
size: 3895
sha: 7a45ea760ae3948a0f82343fc5d6bb943a1455a6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureExclusion.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureExclusion.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CaptureRules.swift
size: 17853
sha: 74f703209b94e2c8f2ae3fee4dd9fe22713a36b5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureRules.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CaptureRules.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardDropTarget.swift
size: 17968
sha: 0833c28a7b2d030975dcda536bf0156361ebb848
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardDropTarget.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardDropTarget.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardFiles.swift
size: 20219
sha: 5e93bb44921252bf864db67130502b73db3fefb8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardFiles.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardFiles.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardNote.swift
size: 6136
sha: 001302ba9b1820171ca311047d41277424184e44
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardNote.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardNote.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardPeek.swift
size: 5750
sha: fbc22b6da391a24fcaa82b47878f11b42e7dbdfa
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardPeek.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardPeek.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardRow.swift
size: 17497
sha: f772ac273c23bd9adb67a18783ae230342f89b81
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardRow.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardRow.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardSmartPaste.swift
size: 20332
sha: 9d6b508833843aed69e7546499f41f8cf637649a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardSmartPaste.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardSmartPaste.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CardsPanelKeys.swift
size: 4897
sha: 262c2b386332050ebb83e392c579694885c97ec2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardsPanelKeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CardsPanelKeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CloudCurated.swift
size: 13730
sha: 15418e4fb937fb5e33b4feb381fe510620e87bfc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CloudCurated.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CloudCurated.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/CloudServices.swift
size: 35717
sha: 8408eb37e9730b0e9f6340abf00292234e7068a0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CloudServices.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/CloudServices.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Config.swift
size: 13242
sha: 45e9dd205ecf8b8c9be22ff25b5b5b60a70c40e7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Config.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Config.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ControlSocket.swift
size: 9269
sha: d29452b6ce977e13e31dd733f9216675db39aa4c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ControlSocket.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ControlSocket.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationAccess.swift
size: 5510
sha: 783ef3cd776020f12968c80f36f01f07cd3c5532
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationAccess.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationAccess.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationASRLine.swift
size: 5868
sha: ba12411201a079a612b259cdfa8ae579abbbf81a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationASRLine.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationASRLine.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationChoices.swift
size: 16103
sha: 42af7a0d1414b86c83f48bb45c2fbe73828de2cf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationChoices.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationChoices.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationFit.swift
size: 11329
sha: cc9aba38a82429708453de490d31500768e59536
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationFit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationFit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationHistory.swift
size: 33809
sha: 3c24aa4ac2fc00254d72649946d3801115ddfef8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationHistory.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationHistory.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationLab.swift
size: 23960
sha: 24c54b89069d86a93c2dbddb61a60f2738368719
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLab.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLab.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationLearn.swift
size: 19449
sha: c400a3d49c3d667f349f7bac6029745d7a153d91
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLearn.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLearn.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationListener.swift
size: 6450
sha: ec3031014925e4ac83a6f65045c46f552599b787
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationListener.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationListener.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationLiveDecode.swift
size: 10226
sha: 2f9c248d7f42917c41968701fe4d5a25a7e4fba8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLiveDecode.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationLiveDecode.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationPastePolicy.swift
size: 11995
sha: d48f127fa64ba553f892ccec56150d5b73752020
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationPastePolicy.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationPastePolicy.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationRemember.swift
size: 2514
sha: 3aa8923b4fb99b5e2bc2fb28b25654cd199bedfd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationRemember.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationRemember.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationSegmenter.swift
size: 8175
sha: 4279e25a7d2bcc57b555a3f35292519eed791004
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationSegmenter.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationSegmenter.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationSendRule.swift
size: 1200
sha: ef28ea328be149d8075d8febe013612feaf65172
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationSendRule.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationSendRule.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationStitch.swift
size: 18834
sha: c664f383d11a70b05f85214a8f4a1ffbc1156b9d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStitch.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStitch.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyle.swift
size: 14577
sha: a4c5d6254040e88afe6613bcbfd0c016b680d613
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleChoice.swift
size: 3431
sha: 79228c63e0442ce306b0d425b2ac34b5c21751e8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleChoice.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleChoice.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleLearn.swift
size: 4043
sha: 1e5be86a655dc18f3f452ac0c7ef9dc2a8d8b7c0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleLearn.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleLearn.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleRecord.swift
size: 7366
sha: f26728b7c4523e8618850dfc8b8b5d1474929016
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleRecord.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationStyleRecord.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationTakeFlow.swift
size: 20483
sha: da542e34adb5afaba23aac2c1bb3e4ed07221141
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTakeFlow.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTakeFlow.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationTier.swift
size: 6245
sha: 401cae565559c9c23af36d4c8eaaf9e8f714d395
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTier.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTier.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationTranslate.swift
size: 18616
sha: cccbc5d0614482f290ab959c41ced69be9103404
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTranslate.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTranslate.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationTrigger.swift
size: 34312
sha: 13d202c76a80adca752b448854478a2170f77c57
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTrigger.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationTrigger.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DictationVocabulary.swift
size: 21566
sha: c200e4e19862d88ba6c650a6c0843f6226d2b7ce
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationVocabulary.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DictationVocabulary.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/DragLog.swift
size: 3103
sha: 5b22de050aaf7ae34b374af05784dc1611332f7d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DragLog.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/DragLog.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/FilePrivacy.swift
size: 3197
sha: 2a46a7739624547ad238b702d09b3c3423d2788a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/FilePrivacy.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/FilePrivacy.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/HandoffBundle.swift
size: 2849
sha: 162d5bb2c748f72fdc45b5f92a1b56e384228cf5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/HandoffBundle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/HandoffBundle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Hotkeys.swift
size: 41034
sha: 1056641b2ab2f44c84a9da8b46e64b0789672179
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Hotkeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Hotkeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexReader.swift
size: 29567
sha: c36d5f060ba0516b9549d3e3b143c15eeea98eef
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexReader.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexReader.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexWatcher.swift
size: 5113
sha: 3e30fbfb10d4cefd4be11ce3a5893cfd27132bed
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexWatcher.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/IndexWatcher.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Index/ListSections.swift
size: 3815
sha: fad1ba31bd0a3c6ae0fba4b62f588c074f0d4da4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/ListSections.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/ListSections.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Index/ScanFindings.swift
size: 1639
sha: 4b7125a2791b776db2fab245579ffaf42c5a08ed
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/ScanFindings.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/ScanFindings.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Index/SearchHit.swift
size: 2701
sha: a320deb277ee77b2557184fd73847dd0f50c70cf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/SearchHit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Index/SearchHit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Ink.swift
size: 16890
sha: 6e726242d25a7da85c1b5423932b3a4b6313c349
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Ink.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Ink.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/IslandLayout.swift
size: 14113
sha: 13fff74d0968af574b2a891d59eb5eec4000ae06
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/IslandLayout.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/IslandLayout.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/IslandToasts.swift
size: 6556
sha: caaa0881499ed9992503c7f6d112c8f9116ef4d8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/IslandToasts.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/IslandToasts.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/Jobs.swift
size: 29141
sha: 9e76d6d15ec8f48ed8be4c46c155b40daf81dd61
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/Jobs.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/Jobs.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/ProcessGroup.swift
size: 7108
sha: 795ef9d38ba9c26b7327777ddc290bb8e8d2951c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/ProcessGroup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Jobs/ProcessGroup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/LaunchQueue.swift
size: 2771
sha: 068fc979a2d4d899a11d6ae72a2d3d0bdf71ac8a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/LaunchQueue.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/LaunchQueue.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/LayoutLint.swift
size: 12865
sha: 67a05f7444aa33b582d54611d684da1431fbae16
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/LayoutLint.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/LayoutLint.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Lifecycle.swift
size: 8571
sha: ce0afde99030c521800fd71ba3d1e57f0dfd6e11
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Lifecycle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Lifecycle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Loc.swift
size: 10957
sha: 09fd14385b4b702fbf1974f1322406829c954a31
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Loc.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Loc.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ModelBundle.swift
size: 7512
sha: 4708c66754b652f82f6420530be6d013a3ab7c69
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelBundle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelBundle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ModelCatalog.swift
size: 9516
sha: 08c066f55df65eeeddfc5e815aca2db8737eea09
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelCatalog.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelCatalog.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ModelDownloadQueue.swift
size: 9957
sha: 9a60fcb7b3ff904b8bb2092ae7ed511f2a13f0f2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelDownloadQueue.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelDownloadQueue.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ModelUsage.swift
size: 4386
sha: 4571969811024cd1c689dfaf26aaf57080d50b86
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelUsage.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ModelUsage.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/MoveBack.swift
size: 1071
sha: a7e9c1d70d8682885ecdbf7e2ea8950b10196c07
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/MoveBack.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/MoveBack.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/NoteEndpointer.swift
size: 9757
sha: 4b0790ab9363336fe92692679d175e13524bdb8e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteEndpointer.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteEndpointer.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/NoteKeys.swift
size: 8159
sha: b3b3d81c055036b61292fb7de5780e42b1e35fba
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteKeys.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteKeys.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/NoteKind.swift
size: 1335
sha: ef85d01d06bb70f152ca155babcc45234b8eb531
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteKind.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NoteKind.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/NothingHeard.swift
size: 1505
sha: 9bb48f91efc6f47c9a929da992efeeba886a3394
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NothingHeard.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/NothingHeard.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/OverlayFit.swift
size: 1106
sha: a33a2aa0f347b5fd206fdca820a3fa88b613348a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/OverlayFit.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/OverlayFit.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Paths.swift
size: 3464
sha: 802e4c0e70eee9e6ff5a35586d0046eacc08a601
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Paths.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Paths.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Peep.swift
size: 5478
sha: 0a0510d5d7203d698bc8752eb02aa85a4d3e5af3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Peep.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Peep.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/PermissionFlow.swift
size: 8786
sha: 4274c0b48594c50dc9820aa931f375cbcdfd20d1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/PermissionFlow.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/PermissionFlow.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/PlaceFilters.swift
size: 2564
sha: 5843fb0796fa178c477676107de13fd8bffb1fb6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/PlaceFilters.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/PlaceFilters.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ProcessProbe.swift
size: 3725
sha: b96e3a85c36d369a26dab92b2292d20be595648b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ProcessProbe.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ProcessProbe.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Assignment.swift
size: 7653
sha: 77cd1497597aad9e2db887f7dba7789c5a7b658a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Assignment.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Assignment.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Projects.swift
size: 17357
sha: bb13dba36664e1715d88b805d050c2f3bf59df9b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Projects.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/Projects.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Projects/StoreFolders.swift
size: 2649
sha: ea1132adf41eafb4dcf8d6b5d46ae106fa886413
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/StoreFolders.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Projects/StoreFolders.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/RecordingDiscard.swift
size: 1914
sha: 44178831cf166bcc9e5e03c6d1f8b307fe39224f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/RecordingDiscard.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/RecordingDiscard.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/RecordingFailure.swift
size: 10507
sha: 29f95b05da94d43ae319eb3d4e946d1e7f517229
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/RecordingFailure.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/RecordingFailure.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ScreenText.swift
size: 19552
sha: b5b160846fa811e789291bc66ecb8574584a3697
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ScreenText.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ScreenText.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Script.swift
size: 14472
sha: 6d492908dc0e9097936f93c6b51576596a8e973f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Script.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Script.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/SerialWork.swift
size: 1579
sha: 400c0f713856daf82ef9fb9a1dec75ffe09afd52
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SerialWork.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SerialWork.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/AgentSessions.swift
size: 18529
sha: 95234985aa7692aee46a8ad5808e7c6f33602fd9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/AgentSessions.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/AgentSessions.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandOffCheck.swift
size: 2558
sha: e33c494a87c88162f6d302491a83be45f33c1d99
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandOffCheck.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandOffCheck.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandoffTarget.swift
size: 1951
sha: 40bd4c2dbc7606c792bf5a652e77ef7a96937ea1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandoffTarget.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/HandoffTarget.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/SessionOutcome.swift
size: 7169
sha: e6c2b69e827e6c999d67514fb407470ee7d1e5e0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/SessionOutcome.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/SessionOutcome.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/WorkSession.swift
size: 4169
sha: 773cb88e168ab291b5a5a13f6be152a879bf6c04
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/WorkSession.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/Sessions/WorkSession.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/SettingsCatalog.swift
size: 39807
sha: 17c81c5ee554d66c1fef96ec9756e1964d457daf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SettingsCatalog.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SettingsCatalog.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/SkillContract.swift
size: 2354
sha: 4464462bedd3cd4cf8cab350be00f8bf1257fea0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SkillContract.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SkillContract.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/SpeechSetup.swift
size: 8149
sha: 4ae20224bd5e7f13793ab4935ed6a281eff8503b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SpeechSetup.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/SpeechSetup.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/TakeProgress.swift
size: 4564
sha: 3fe422d8c99b352890e92177524f69897f09d14c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TakeProgress.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TakeProgress.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/TakeStitch.swift
size: 4709
sha: 5cdcdd5980ec531d8dced4828e162aa0bb5fc4a2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TakeStitch.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TakeStitch.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/TextImage.swift
size: 7058
sha: d07c0c35ffed37bca40352a489cf85897e9ce4f4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TextImage.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TextImage.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/ToastQueue.swift
size: 11612
sha: 820c07402593b19c381b284c74804793cb3ce135
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ToastQueue.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/ToastQueue.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/TopRows.swift
size: 1331
sha: c6507e21541ad760943fc9a018607c76117c0fd5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TopRows.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TopRows.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/TrashRestore.swift
size: 2141
sha: 62f33ccd2be771b424bd12af78bf1b625a13a7be
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TrashRestore.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/TrashRestore.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/VideoRetention.swift
size: 5591
sha: caa376de8bdf6d1f2346f86e3cab6f7c1e4f15a1
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VideoRetention.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VideoRetention.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/VoiceCardDrop.swift
size: 7218
sha: ebb1ed75e0b39a6da218be8ac2bf0a266bfe90f3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VoiceCardDrop.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VoiceCardDrop.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/VoiceNoteStyle.swift
size: 4979
sha: 84cbce1a0d02a96b136ee19b9bdc62a175cda860
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VoiceNoteStyle.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VoiceNoteStyle.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/VolcengineSpeech.swift
size: 3272
sha: d4f47ee6e365caa4cab76a0a57df33665ca5f37b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VolcengineSpeech.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/VolcengineSpeech.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/WarmServer.swift
size: 10246
sha: 2f2a73cd4491e478c2c9fcde39d553fb082502f6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WarmServer.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WarmServer.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/WarmServerStream.swift
size: 7823
sha: cf185eac344b3b79ca82491bc9e1d826c8df6216
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WarmServerStream.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WarmServerStream.swift

## File: skills/blurt/recorder/macos/Sources/BlurtCore/WelcomeLine.swift
size: 3771
sha: 3081659fc16c6be861da7dd173b787ca100cf50a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WelcomeLine.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtCore/WelcomeLine.swift

## File: skills/blurt/recorder/macos/Sources/BlurtObjC/BlurtObjC.m
size: 537
sha: 721f17eae73e645d266448711701d1b161879842
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtObjC/BlurtObjC.m

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtObjC/BlurtObjC.m

## File: skills/blurt/recorder/macos/Sources/BlurtObjC/include/BlurtObjC.h
size: 712
sha: 190860dc550e0039a9547e2d69e4f0328b4c1357
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtObjC/include/BlurtObjC.h

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Sources/BlurtObjC/include/BlurtObjC.h

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentLoginCacheTests.swift
size: 2374
sha: 4561a2d5c128a1471312f73fed359cf7abb54d40
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentLoginCacheTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentLoginCacheTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentSetupTests.swift
size: 19625
sha: 7db737f992469c889df80b1f114f6b29b78d5999
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentSetupTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AgentSetupTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/AppIdentityTests.swift
size: 567
sha: 0b3246bc0ff5f5f7f57b24128482e8f46e73959e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AppIdentityTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AppIdentityTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/AssignmentTests.swift
size: 11911
sha: 12acb8489c0284990178b254b2d137e39bb2a159
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AssignmentTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/AssignmentTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/BlurtTryTests.swift
size: 1651
sha: a79a7ec042240584b2d7be9c7c6032f3b5a83e5b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/BlurtTryTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/BlurtTryTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/BundledSkillTests.swift
size: 3763
sha: 8a415e323770144afe678b32456ed59ff25be450
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/BundledSkillTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/BundledSkillTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureEditsTests.swift
size: 9231
sha: 14c58a0475b7d55fa50aee568fc98da82432dafd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureEditsTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureEditsTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureExclusionTests.swift
size: 3073
sha: b87a1506950066b20df1789c5b89bfad6bde183a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureExclusionTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureExclusionTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureRulesTests.swift
size: 20852
sha: 16da12ec5dc66aab2bfe32007a0886453b262561
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureRulesTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CaptureRulesTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardDropTargetTests.swift
size: 14301
sha: e28e40e03840114c21238e1e695797c136401d5e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardDropTargetTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardDropTargetTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardFilesTests.swift
size: 12921
sha: 48ee4a5931cbaf2f0cba5bba6cf29ec09bfd9a9e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardFilesTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardFilesTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardNoteTests.swift
size: 5876
sha: 86d05d65d672c7cd9c3a3e5a0f9a88d822afb4df
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardNoteTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardNoteTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardPeekTests.swift
size: 6723
sha: 75985761b3effa441f07683dcd4c1173b5fc99d4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardPeekTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardPeekTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardRowTests.swift
size: 14113
sha: 4405c83229b1b36c7013817b48af528dac7c1f92
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardRowTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardRowTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardSmartPasteTests.swift
size: 14801
sha: 1bc22975edf8033f09a85f4ac1805dd64c142782
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardSmartPasteTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardSmartPasteTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardsPanelKeysTests.swift
size: 5664
sha: a23e4211048db14693ce03b76433b4befda56ab4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardsPanelKeysTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CardsPanelKeysTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ChatAppDragTests.swift
size: 14877
sha: dcbc7d5248ae6fc871484e2a6f9ec6aefc6c8389
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ChatAppDragTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ChatAppDragTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudCuratedTests.swift
size: 14009
sha: d2d8356b07282b9147bab5ace922d211ba3752bf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudCuratedTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudCuratedTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudServicesTests.swift
size: 19751
sha: 5183d1cabd3ebced09462dbe828e6b69c3dc1e7c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudServicesTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/CloudServicesTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DesktopHandoffTests.swift
size: 8522
sha: 549288502528b0ba7b825623d5236163a3aad070
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DesktopHandoffTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DesktopHandoffTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationAccessTests.swift
size: 5523
sha: 227a67ef60a8676e633b82b51cfcb9b9d70664d9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationAccessTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationAccessTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationASRLineTests.swift
size: 4492
sha: 232c3f38ad6a9d2c60b64d3cf2c3bff78d19ecb9
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationASRLineTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationASRLineTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationChoicesTests.swift
size: 9090
sha: e82afee5c8455224959a8fa5d2123cf3d7129f14
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationChoicesTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationChoicesTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationFitTests.swift
size: 7845
sha: 38bf2fe44b73a3c91b7bfebd8ce30497ccc9acbc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationFitTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationFitTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationHistoryTests.swift
size: 20797
sha: 9fab82e5d676eac4bc1acf655528818e0d147f3f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationHistoryTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationHistoryTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLabTests.swift
size: 7266
sha: 120514e8b231696880b4db80b4d2703a682e2913
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLabTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLabTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationListenerTests.swift
size: 8521
sha: cbb4b6266e415b3139ac1c01ddbafaaedca26831
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationListenerTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationListenerTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLiveDecodeTests.swift
size: 16196
sha: 02b9eeab358c7eea242cbbf1dc899ce531ff24a8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLiveDecodeTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationLiveDecodeTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationPastePolicyTests.swift
size: 10437
sha: 2dfd68bda49ba87446296a528dbc12620dd26c31
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationPastePolicyTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationPastePolicyTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationRememberTests.swift
size: 3936
sha: eb5a85c64a463c9816a33edff65d2b11485b2bdd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationRememberTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationRememberTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSegmenterTests.swift
size: 4982
sha: 4fd2dfc250d7ff05cda1b84ae20647b262136f21
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSegmenterTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSegmenterTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSendRuleTests.swift
size: 1134
sha: 1a5437cee521f738facdb8ece298fc3d6c32df0c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSendRuleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationSendRuleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStitchTests.swift
size: 14522
sha: 823efe22a4153ad34056478334419b9c2ed7623a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStitchTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStitchTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleChoiceTests.swift
size: 4638
sha: 120473194d09f7d2a93d42267f9850e24435f686
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleChoiceTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleChoiceTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleLearnTests.swift
size: 13641
sha: 8ac56f207cb26aa9a636aac63ee5a7f20e6d0ad5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleLearnTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleLearnTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleTests.swift
size: 11410
sha: d6e3732bab62f2ef73f697dd978e4f0b8200b341
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationStyleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTakeFlowTests.swift
size: 17049
sha: 2564dee7dc1726319f577a9e604c36fe12f37f6f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTakeFlowTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTakeFlowTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTierTests.swift
size: 3968
sha: 8850bb294ce9aedc24216d5e251bebdeb8b7adac
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTierTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTierTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTranslateTests.swift
size: 12877
sha: ceff9378f34779b6c7eae856af24f8f741798af6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTranslateTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTranslateTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTriggerTests.swift
size: 42090
sha: fd487b9c526ce5f913971301bab3d2b734ef7dc8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTriggerTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationTriggerTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationVocabularyTests.swift
size: 21462
sha: 0d096c78c5fd32c650b60bd86e4b1884cfc39710
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationVocabularyTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DictationVocabularyTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/DragOutTests.swift
size: 8817
sha: ade4f748c6bf2547df1e6b2e7506d94372bb3e31
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DragOutTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/DragOutTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/HandoffBundleTests.swift
size: 3135
sha: 5d3fab810704ac30e473bc15cdf04dfe30bdeb05
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/HandoffBundleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/HandoffBundleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/HotkeysTests.swift
size: 13446
sha: b73c8fa09731488d3e51850fb54e29a59d7f6a43
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/HotkeysTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/HotkeysTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/IndexReaderTests.swift
size: 16495
sha: a07e493b934d00e2323e479f79365bf044737816
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IndexReaderTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IndexReaderTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/InkTests.swift
size: 21078
sha: 4cea3fecf4d0ae1c0600a329ce0c365c679a7904
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/InkTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/InkTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/InstallPlanTests.swift
size: 5542
sha: a40172c937cab7523b795e6cc9395008dee7b866
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/InstallPlanTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/InstallPlanTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandLayoutTests.swift
size: 14080
sha: d5fa70674e3bdee1c3f42ed5f72a89a030d4eaa0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandLayoutTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandLayoutTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandToastsTests.swift
size: 5467
sha: 0e6c5825e0a49f4ed0176dd6a8482a96fb5593b8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandToastsTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/IslandToastsTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/LayoutLintTests.swift
size: 10820
sha: 4beec51dd4b85f04c536eb1bfba5b00b9c74d826
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/LayoutLintTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/LayoutLintTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/LifecycleTests.swift
size: 5272
sha: 1f6cf86b4c2a4a685b0466a47b903357acdffd93
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/LifecycleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/LifecycleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ListSectionsTests.swift
size: 5462
sha: ea70d69e984c9e12233b2d72544a3cd26850607d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ListSectionsTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ListSectionsTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/MissingFolderTests.swift
size: 1600
sha: 205a96d35515812f4f6097341d0fdbf172ca0552
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/MissingFolderTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/MissingFolderTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelBundleTests.swift
size: 7251
sha: 206fd2d2149e93e7c1b2a2d4d84f088e630fef1b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelBundleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelBundleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelCatalogTests.swift
size: 5895
sha: 50d93df6eeb9b6f822a877511e44b2a1035eca85
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelCatalogTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelCatalogTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelDownloadQueueTests.swift
size: 8786
sha: f6ded6500b7275917c430b1a296b4b131e9eebac
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelDownloadQueueTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ModelDownloadQueueTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/MoveBackTests.swift
size: 658
sha: 74bdab6105c72bbaf7080f2c22f004a22e673617
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/MoveBackTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/MoveBackTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteEndpointerTests.swift
size: 14828
sha: f8e176b213dc3d942c4811b9505ec3309b20630d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteEndpointerTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteEndpointerTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteKeysTests.swift
size: 10181
sha: a230dfd22c69382126d6e55771a4e509135554fd
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteKeysTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NoteKeysTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/NothingHeardTests.swift
size: 1131
sha: 055e145228d366e3a491f71f4a2dbd35df1af6ac
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NothingHeardTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/NothingHeardTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/OverlayFitTests.swift
size: 1675
sha: 957eac0042e6cd454e71652193977d1b6273ca9f
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/OverlayFitTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/OverlayFitTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/PeepTests.swift
size: 8587
sha: 2be9d512b80f140f1ffaef2b3f83a625d837be3e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PeepTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PeepTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/PermissionFlowTests.swift
size: 8003
sha: 8ee95fc10b151c85a979e2f8fcebcc77c912684a
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PermissionFlowTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PermissionFlowTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/PlaceFiltersTests.swift
size: 2384
sha: 49aa295d6dfd74611e4f76bcfaa14acdbdda102d
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PlaceFiltersTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/PlaceFiltersTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ProjectOrderTests.swift
size: 2995
sha: 8bcf166976d99c6ffe3d8b0340d57b7d05cbdf31
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ProjectOrderTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ProjectOrderTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingDiscardTests.swift
size: 1172
sha: da70058ce0e3d2ec9fad45f76130897987b482b3
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingDiscardTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingDiscardTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingFailureTests.swift
size: 12069
sha: be474f2f8e30d659c35ca7ef4c2bd8fad839c141
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingFailureTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/RecordingFailureTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ScreenTextTests.swift
size: 7184
sha: bf4c698d6aefd2702319afbc3e6e334a58d0d029
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ScreenTextTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ScreenTextTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/SearchHitTests.swift
size: 2394
sha: a998de6402fe0a2fc14160ca636e9a36716c3105
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SearchHitTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SearchHitTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/SerialWorkTests.swift
size: 2128
sha: 76c9432eeaf3a1939ef155e61d8a81bdb2207757
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SerialWorkTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SerialWorkTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/SessionOutcomeTests.swift
size: 13976
sha: d6e2b88fc333923d2dc91bfb719edca6d14171a6
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SessionOutcomeTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SessionOutcomeTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/SettingsCatalogTests.swift
size: 15234
sha: 45a9094123dfa9911fa1fc66cfd8bf281ed689f2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SettingsCatalogTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SettingsCatalogTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ShellDataTests.swift
size: 24493
sha: f82f1fab78ffca2d0ee71e763759c4a663c60b5c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ShellDataTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ShellDataTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/SpeechSetupTests.swift
size: 6032
sha: 457c3cff4d816102259d6b4d89b2e2b706093e24
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SpeechSetupTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/SpeechSetupTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/StoreFoldersTests.swift
size: 3518
sha: cb044906978888aef46c8c0a91a95c786a8ba2f0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/StoreFoldersTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/StoreFoldersTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/TakeProgressTests.swift
size: 5233
sha: d0ce23d1f476221a574dff0458328ec7534900bc
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TakeProgressTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TakeProgressTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/TextImageTests.swift
size: 3098
sha: 903092cee5ff8a03f5978b711c8ed00bf4eeaf54
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TextImageTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TextImageTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/ToastQueueTests.swift
size: 14886
sha: 42390722a000192668b62998799ed1648890cd2b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ToastQueueTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/ToastQueueTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/TopRowsTests.swift
size: 1835
sha: 410b5dc5d12b5e4283b6a4fd710a87b2924c01a4
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TopRowsTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TopRowsTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/TrashRestoreTests.swift
size: 2673
sha: fd270f5cff842a85eca524b494620cc4e7488b1c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TrashRestoreTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/TrashRestoreTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/UnattendedRunTests.swift
size: 3512
sha: 684d07a7845d9f294fe97b8f7c2e3bc8e0aa7e1b
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/UnattendedRunTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/UnattendedRunTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceCardDropTests.swift
size: 8812
sha: 718746bb65cddb91fd2f845b57e2db30da91b259
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceCardDropTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceCardDropTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceNoteStyleTests.swift
size: 4093
sha: 8e049a4236d43fcb384818053b47b42489d2d970
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceNoteStyleTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VoiceNoteStyleTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/VolcengineSpeechTests.swift
size: 2596
sha: d34fd710c509cc610aff26e5583752b0dcf936c8
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VolcengineSpeechTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/VolcengineSpeechTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/WarmServerTests.swift
size: 5642
sha: c9f9102bbcedeeccd1a7d42bab7dc42f6bfadfa2
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WarmServerTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WarmServerTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/WelcomeLineTests.swift
size: 8069
sha: 6b4021f860d0730bf3335b985658f9623596b5ec
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WelcomeLineTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WelcomeLineTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkDogfoodTests.swift
size: 7906
sha: a9381471461f808af3909fd4db0b24d06049dd36
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkDogfoodTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkDogfoodTests.swift

## File: skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkSessionTests.swift
size: 4090
sha: 2801cf7cf09396bd5de13ae74de9d239d849f8fb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkSessionTests.swift

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/BlurtCoreTests/WorkSessionTests.swift

## File: skills/blurt/recorder/macos/Tests/make_fixture.py
size: 6994
sha: 43fdc56b75096a3b2276ad52e166800e90e543cf
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/make_fixture.py

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/recorder/macos/Tests/make_fixture.py

## File: skills/blurt/reference/asr.md
size: 6389
sha: 3554d6ee341efcd44eb207a16880aa91106135b7
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/asr.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/asr.md

## File: skills/blurt/reference/docs.md
size: 2136
sha: 8b2b9fea029f06143e80ae6079344c54be8436be
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/docs.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/docs.md

## File: skills/blurt/reference/export-other.md
size: 2546
sha: b9b7a38cc094ae4ebea7f932279c51dec785a848
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/export-other.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/export-other.md

## File: skills/blurt/reference/lenses/idea.md
size: 1300
sha: b6b984620f99431573ec8f6e71bd0ed9263c2c25
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/idea.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/idea.md

## File: skills/blurt/reference/lenses/issue.md
size: 1066
sha: f35c3da2d74cd8f84a6a97649ad35cc0495c247e
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/issue.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/issue.md

## File: skills/blurt/reference/lenses/note.md
size: 440
sha: acf53e3912cf2fc3a1d1ec713480b59f469f7bfb
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/note.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/note.md

## File: skills/blurt/reference/lenses/task.md
size: 276
sha: fd7314c5008f4b373d82866ca806b8ec600b49a5
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/task.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/lenses/task.md

## File: skills/blurt/reference/schema.md
size: 6434
sha: 3934f700190a98816f96a0a852e958a59f6e71f0
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/schema.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/schema.md

## File: skills/blurt/reference/sessions.md
size: 11340
sha: 576f5459ab97812cbc065ea1d6c5feafe4915632
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/sessions.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/sessions.md

## File: skills/blurt/reference/setup-models.md
size: 8521
sha: 199ebed2b318359487e97cd1b5a0541f96cf487c
upstream: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/setup-models.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/agihunt/blurt/blob/main/skills/blurt/reference/setup-models.md
