@oh-my-pi/pi-catalog 17.3.7 → 17.4.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.
Files changed (79) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/types/build.d.ts +5 -0
  3. package/dist/types/discovery/cursor-proto.d.ts +5362 -0
  4. package/dist/types/discovery/devin-proto.d.ts +1549 -0
  5. package/dist/types/discovery/index.d.ts +1 -0
  6. package/dist/types/discovery/protobuf.d.ts +102 -0
  7. package/dist/types/identity/family.d.ts +23 -1
  8. package/dist/types/index.d.ts +1 -0
  9. package/dist/types/model-thinking.d.ts +6 -2
  10. package/dist/types/model-tokenizer.d.ts +8 -0
  11. package/dist/types/provider-models/descriptors.d.ts +1 -0
  12. package/dist/types/types.d.ts +27 -1
  13. package/dist/types/variant-collapse.d.ts +2 -0
  14. package/package.json +5 -6
  15. package/src/build.ts +7 -0
  16. package/src/compat/openai.ts +27 -1
  17. package/src/discovery/codex.ts +118 -24
  18. package/src/discovery/cursor-proto.ts +8322 -0
  19. package/src/discovery/cursor.ts +16 -3
  20. package/src/discovery/devin-proto.ts +2037 -0
  21. package/src/discovery/devin.ts +4 -3
  22. package/src/discovery/index.ts +1 -0
  23. package/src/discovery/protobuf.ts +1073 -0
  24. package/src/hosts.ts +22 -1
  25. package/src/identity/family.ts +42 -1
  26. package/src/index.ts +1 -0
  27. package/src/model-cache.ts +67 -6
  28. package/src/model-thinking.ts +38 -6
  29. package/src/model-tokenizer.ts +75 -0
  30. package/src/models.json +185055 -2118
  31. package/src/models.ts +6 -5
  32. package/src/provider-models/bundled-references.ts +12 -2
  33. package/src/provider-models/cache-provider-id.ts +3 -1
  34. package/src/provider-models/descriptors.ts +1 -0
  35. package/src/provider-models/openai-compat.ts +194 -44
  36. package/src/types.ts +36 -0
  37. package/src/variant-collapse.ts +67 -34
  38. package/dist/types/discovery/cursor-gen/agent_pb.d.ts +0 -16769
  39. package/dist/types/discovery/devin-gen/buf/validate/validate_pb.d.ts +0 -1715
  40. package/dist/types/discovery/devin-gen/exa/analytics_pb/analytics_pb.d.ts +0 -693
  41. package/dist/types/discovery/devin-gen/exa/api_server_pb/api_server_pb.d.ts +0 -9158
  42. package/dist/types/discovery/devin-gen/exa/auth_pb/auth_pb.d.ts +0 -52
  43. package/dist/types/discovery/devin-gen/exa/auto_cascade_common_pb/auto_cascade_common_pb.d.ts +0 -276
  44. package/dist/types/discovery/devin-gen/exa/bug_checker_pb/bug_checker_pb.d.ts +0 -78
  45. package/dist/types/discovery/devin-gen/exa/cascade_plugins_pb/cascade_plugins_pb.d.ts +0 -999
  46. package/dist/types/discovery/devin-gen/exa/chat_pb/chat_pb.d.ts +0 -1704
  47. package/dist/types/discovery/devin-gen/exa/code_edit/code_edit_pb/code_edit_pb.d.ts +0 -656
  48. package/dist/types/discovery/devin-gen/exa/codeium_common_pb/codeium_common_pb.d.ts +0 -15014
  49. package/dist/types/discovery/devin-gen/exa/context_module_pb/context_module_pb.d.ts +0 -607
  50. package/dist/types/discovery/devin-gen/exa/cortex_pb/cortex_pb.d.ts +0 -11830
  51. package/dist/types/discovery/devin-gen/exa/diff_action_pb/diff_action_pb.d.ts +0 -248
  52. package/dist/types/discovery/devin-gen/exa/index_pb/index_pb.d.ts +0 -1747
  53. package/dist/types/discovery/devin-gen/exa/knowledge_base_pb/knowledge_base_pb.d.ts +0 -509
  54. package/dist/types/discovery/devin-gen/exa/language_server_pb/language_server_pb.d.ts +0 -9048
  55. package/dist/types/discovery/devin-gen/exa/opensearch_clients_pb/opensearch_clients_pb.d.ts +0 -1760
  56. package/dist/types/discovery/devin-gen/exa/prompt_pb/prompt_pb.d.ts +0 -286
  57. package/dist/types/discovery/devin-gen/exa/reactive_component_pb/reactive_component_pb.d.ts +0 -405
  58. package/dist/types/discovery/devin-gen/exa/trust_pb/trust_pb.d.ts +0 -582
  59. package/src/discovery/cursor-gen/agent_pb.ts +0 -19513
  60. package/src/discovery/devin-gen/buf/validate/validate_pb.ts +0 -1862
  61. package/src/discovery/devin-gen/exa/analytics_pb/analytics_pb.ts +0 -871
  62. package/src/discovery/devin-gen/exa/api_server_pb/api_server_pb.ts +0 -11083
  63. package/src/discovery/devin-gen/exa/auth_pb/auth_pb.ts +0 -71
  64. package/src/discovery/devin-gen/exa/auto_cascade_common_pb/auto_cascade_common_pb.ts +0 -348
  65. package/src/discovery/devin-gen/exa/bug_checker_pb/bug_checker_pb.ts +0 -103
  66. package/src/discovery/devin-gen/exa/cascade_plugins_pb/cascade_plugins_pb.ts +0 -1198
  67. package/src/discovery/devin-gen/exa/chat_pb/chat_pb.ts +0 -2063
  68. package/src/discovery/devin-gen/exa/code_edit/code_edit_pb/code_edit_pb.ts +0 -810
  69. package/src/discovery/devin-gen/exa/codeium_common_pb/codeium_common_pb.ts +0 -18354
  70. package/src/discovery/devin-gen/exa/context_module_pb/context_module_pb.ts +0 -732
  71. package/src/discovery/devin-gen/exa/cortex_pb/cortex_pb.ts +0 -14277
  72. package/src/discovery/devin-gen/exa/diff_action_pb/diff_action_pb.ts +0 -312
  73. package/src/discovery/devin-gen/exa/index_pb/index_pb.ts +0 -2106
  74. package/src/discovery/devin-gen/exa/knowledge_base_pb/knowledge_base_pb.ts +0 -623
  75. package/src/discovery/devin-gen/exa/language_server_pb/language_server_pb.ts +0 -10918
  76. package/src/discovery/devin-gen/exa/opensearch_clients_pb/opensearch_clients_pb.ts +0 -2125
  77. package/src/discovery/devin-gen/exa/prompt_pb/prompt_pb.ts +0 -361
  78. package/src/discovery/devin-gen/exa/reactive_component_pb/reactive_component_pb.ts +0 -450
  79. package/src/discovery/devin-gen/exa/trust_pb/trust_pb.ts +0 -712
package/CHANGELOG.md CHANGED
@@ -2,6 +2,42 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [17.4.0] - 2026-08-20
6
+
7
+ ### Added
8
+
9
+ - Models now include an optional `tokenizer` family field across bundled, discovered, and custom models (supporting Claude, Qwen, DeepSeek, Kimi, and GLM families), with support for explicit overrides in model configuration.
10
+ - Added long-context cost tiers (`cost.longContext`) to subscription Codex GPT-5.6 models (Sol, Terra, Luna) matching first-party API pricing above 272K input tokens.
11
+
12
+ ### Changed
13
+
14
+ - Bundled model metadata is prebuilt during generation, reducing catalog startup work.
15
+
16
+ ### Fixed
17
+
18
+ - Fixed tool-call turn failures for `opencode-go/muse-spark-1.2` and related variants by ensuring API transport pins apply to live discovery and automatically inferring response routes for gateway-first OpenCode models ([#8957](https://github.com/can1357/oh-my-pi/issues/8957)).
19
+
20
+ ## [17.3.8] - 2026-08-19
21
+
22
+ ### Added
23
+
24
+ - Added a Cursor variant-collapse table folding the per-effort Grok siblings (`cursor-grok-4.5` low/medium/high and `cursor-grok-4.6` low/medium/high/xhigh, plus their `-fast` service-tier lanes) into one logical model per lane with effort routing onto the live wire ids, matching Devin's `grok-4-5` collapse ([#8803](https://github.com/can1357/oh-my-pi/issues/8803)).
25
+ - Regenerated the Cursor agent protobufs to model hosted WebFetch permission queries (`interaction_query` / `interaction_response` field 9) and the matching `ToolCall` variant (field 37).
26
+
27
+ ### Fixed
28
+
29
+ - Fixed a physically corrupt `models.db` (`SQLITE_CORRUPT*` / `SQLITE_NOTADB`, "database disk image is malformed") permanently disabling the model cache. The shared read/write paths swallowed unrecoverable SQLite corruption as a best-effort miss and cached the broken handle, so a successful live catalog could never overwrite the corrupt cache and every later process repeated the miss — a runtime provider extension with no bundled catalog was left with only its bootstrap model. Corruption now self-heals: the cache closes the handle, quarantines `models.db`(+`-wal`/`-shm`) aside, recreates a fresh database, and retries the operation once; `SQLITE_BUSY`, permission, and unrelated errors keep their existing best-effort paths ([#8867](https://github.com/can1357/oh-my-pi/issues/8867)).
30
+ - Fixed local Qwen 3.8+ models (llama.cpp, vLLM, loopback custom providers) exposing the generic `minimal..high` thinking ladder instead of the chat template's real `low`/`medium`/`xhigh` `reasoning_effort` tiers. The derived metadata now marks thinking as mandatory (the official 3.8 template raises on `enable_thinking: false`), vLLM-served Qwen routes through the `chat_template_kwargs` dialect (top-level `enable_thinking` is ignored by vLLM), and vLLM discovery lights up the reasoning dial for Qwen 3.8+ ids its `/v1/models` endpoint reports as non-reasoning.
31
+ - Fixed `deepseek-v4-pro-0813` surfacing from Alibaba Token Plan discovery with `contextWindow`/`maxTokens` of `null`. The dated DeepSeek V4 Pro snapshot was missing from `ALIBABA_TOKEN_PLAN_DISCOVERED_MODEL_LIMITS`, so unlike its `deepseek-v4-flash-0731` sibling it fell through to unknown limits ([#8847](https://github.com/can1357/oh-my-pi/issues/8847)).
32
+ - Cloud Code Assist Gemini 3.6/3.7 Flash no longer maps user `minimal` to wire `thinkingLevel: MINIMAL` when that effort is aliased onto the `-low` SKU. The request now sends `LOW`, which those SKUs accept.
33
+ - Fixed SuperGrok (`xai-oauth`) Grok 4.6 hiding the thinking-level picker: the Responses effort-capable allowlist now includes `grok-4.6`, so `/model` can select the documented `low`/`medium`/`high`/`xhigh` ladder (`max` is rejected by api.x.ai).
34
+ - Marked CoreWeave runtime discovery as authoritative so stale bundled model ids that the endpoint no longer serves stop appearing as selectable models.
35
+ - ChatGPT Codex discovery that advertises only worker `-wm` SKUs now also registers the plain model route, so a configured `openai-codex/<model>` keeps resolving instead of fuzzy-falling-back to the `-wm` SKU some accounts reject.
36
+ - Fixed `opencode-go/muse-spark-1.2` (and `muse-spark-1.2-contributor`) failing every tool-call turn with `OpenAI completions stream closed before a finish_reason was received`. The Go gateway serves these ids only at `/zen/go/v1/responses`, but the `/zen/go/v1/models` discovery omits the `provider.npm` hint, so the resolver fell through to `openai-completions`; both ids are now pinned to `openai-responses` like `deepseek-v4-flash` ([#8957](https://github.com/can1357/oh-my-pi/issues/8957)).
37
+ - Fixed GitHub Copilot `grok-4.6` / `grok-4.6-1m` failing with HTTP 400 `unsupported_api_for_model` by routing them through the OpenAI Responses API (`/responses`) instead of `/chat/completions`, matching `grok-4.5`. Stale cached completion routes are invalidated on refresh ([#8807](https://github.com/can1357/oh-my-pi/issues/8807)).
38
+ - Fixed Cursor Grok 4.5/4.6 discovery classifying the versioned ids as non-reasoning: `GetUsableModels` ships no `thinkingDetails` and the bundled references read `reasoning: false`, so the picker hid the effort ladder. Discovery now marks `cursor-grok-<version>` ids as reasoning models (the non-reasoning `grok-code-*` ids stay out) ([#8803](https://github.com/can1357/oh-my-pi/issues/8803)).
39
+ - Fixed GMI Cloud (`gmi-cloud`) models resolved via `/v1/models` discovery surfacing with `null` context windows, zero pricing, and no reasoning/thinking metadata for every model except the bundled `deepseek-ai/DeepSeek-V4-Flash` seed. GMI's endpoint returns only bare `{id}` rows, so the mapper now recovers intrinsic capability metadata (context window, output limit, reasoning, thinking ladder) for resold open-weight models from the cross-provider canonical reference index — matching the SiliconFlow behavior — while never borrowing another provider's pricing ([#8890](https://github.com/can1357/oh-my-pi/issues/8890)).
40
+
5
41
  ## [17.3.6] - 2026-08-17
6
42
 
7
43
  ### Changed
@@ -10,5 +10,10 @@
10
10
  * compat per request.
11
11
  */
12
12
  import type { Api, CompatOf, Model, ModelSpec } from "./types.js";
13
+ /**
14
+ * Build one model from an authored spec. Bundled models.json rows are fully
15
+ * materialized by the generator and consumed directly (see `models.ts`), so
16
+ * this only runs for discovered/custom/override specs.
17
+ */
13
18
  export declare function buildModel<TApi extends Api>(spec: ModelSpec<TApi>): Model<TApi>;
14
19
  export declare function buildCompat(spec: ModelSpec<Api>): CompatOf<Api>;