@tychenjiajun/pi-voice 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -64,7 +64,7 @@ After ASR produces a transcript, Pi Voice can refine it with the same model (and
64
64
  Set it up in `/voice-settings` → **Post-processing** → **On**. You then choose the model:
65
65
 
66
66
  - **Pi's current model** (default) — whichever model the agent is using, exactly like compaction;
67
- - **a different model** — any model from Pi's registry, using that provider's configured authentication.
67
+ - **a different model** — any model from Pi's registry, using that provider's configured authentication. The picker is searchable: type a keyword (a model name or part of `provider/id`) to filter the list, `Enter` selects the highlighted match, and `Esc` clears the search.
68
68
 
69
69
  Pi Voice makes a small nested request through Pi's model registry, so it automatically reuses Pi's model definitions and API keys (or OAuth). No base URL, key, or timeout is stored in Pi Voice settings.
70
70
 
@@ -116,6 +116,14 @@ When FFmpeg is unavailable, `transcribe_file` reports platform-specific guidance
116
116
 
117
117
  ## Changelog
118
118
 
119
+ ### 0.7.0
120
+
121
+ **Added — Searchable post-processing model picker**
122
+
123
+ - `/voice-settings` → **Post-processing** → model now has a search box, so a registry with a thousand-plus models can be narrowed by typing instead of arrowing through the whole list.
124
+ - The search uses the same fuzzy matcher as the transcription model picker (`fuzzyFilter` from `@earendil-works/pi-tui`) and matches the model name as well as `provider/id`, so `wspr` finds `openai/whisper-1` and `claude` finds `anthropic/claude-opus-4-5`.
125
+ - Results are sorted by match quality with the cursor on the best match (Enter picks it), `Esc` clears the search and restores the full list, and the subtitle reminds you that typing filters the models.
126
+
119
127
  ### 0.6.0
120
128
 
121
129
  **Changed — Fuzzy model search**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tychenjiajun/pi-voice",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Speech-to-text for Pi (local model or OpenAI-compatible remote ASR, compaction-style post-processing)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -389,7 +389,7 @@ function samePolishModel(
389
389
  }
390
390
 
391
391
  /** Pick Pi's current model (default) or any model with configured auth. */
392
- async function choosePolishModel(
392
+ export async function choosePolishModel(
393
393
  ctx: ExtensionContext,
394
394
  current: PolishModelRef | undefined,
395
395
  ): Promise<"current" | PolishModelRef | undefined> {
@@ -423,7 +423,14 @@ async function choosePolishModel(
423
423
  keybindings,
424
424
  choices,
425
425
  current ? polishModelKey(current) : "current",
426
- { title: "Post-processing model", cancelLabel: "back" },
426
+ {
427
+ title: "Post-processing model",
428
+ subtitle: "Type to filter models",
429
+ // The registry can hold a thousand-plus models; arrowing through them
430
+ // is unusable, so the list is fuzzy-searchable like every model picker.
431
+ searchable: true,
432
+ cancelLabel: "back",
433
+ },
427
434
  done,
428
435
  ),
429
436
  );