@linxiraos/pi-catalog 1.3.2 → 1.4.1

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 (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/types/compat/auth-ids.d.ts +2 -2
  3. package/dist/types/compat/image-tokenization.d.ts +13 -1
  4. package/dist/types/compat/prompt-cache-persistent.d.ts +7 -0
  5. package/dist/types/compat/provider-ids.d.ts +1 -1
  6. package/dist/types/compat/request-size.d.ts +11 -6
  7. package/dist/types/discovery/devin.d.ts +1 -1
  8. package/dist/types/hosts.d.ts +3 -1
  9. package/dist/types/provider-models/openai-compat.d.ts +9 -2
  10. package/dist/types/types.d.ts +10 -3
  11. package/dist/types/wire/codex.d.ts +4 -2
  12. package/dist/types/wire/devin.d.ts +1 -15
  13. package/package.json +4 -4
  14. package/src/compat/auth-ids.ts +2 -0
  15. package/src/compat/axes.ts +25 -2
  16. package/src/compat/image-tokenization.ts +55 -1
  17. package/src/compat/prompt-cache-persistent.ts +12 -0
  18. package/src/compat/provider-ids.d.ts +1 -1
  19. package/src/compat/provider-ids.ts +1 -0
  20. package/src/compat/request-size.ts +18 -8
  21. package/src/compat/resolve.ts +1 -0
  22. package/src/compat/rules/README.md +8 -2
  23. package/src/compat/rules/auth/_order.kdl +1 -1
  24. package/src/compat/rules/auth/inception.kdl +11 -0
  25. package/src/compat/rules/classes/anthropic.kdl +23 -21
  26. package/src/compat/rules/classes/deepseek.kdl +31 -0
  27. package/src/compat/rules/classes/gemma.kdl +11 -0
  28. package/src/compat/rules/classes/minimax.kdl +13 -8
  29. package/src/compat/rules/providers/amazon-bedrock.kdl +56 -0
  30. package/src/compat/rules/providers/factory-droid.kdl +12 -0
  31. package/src/compat/rules/providers/inception.kdl +61 -0
  32. package/src/compat/rules/providers/moonshot.kdl +3 -3
  33. package/src/compat/rules/providers/openai-codex.kdl +3 -0
  34. package/src/compat/rules/providers/yolo-auto.kdl +33 -37
  35. package/src/compat/rules/taxonomy/qwen.kdl +1 -1
  36. package/src/compat/rules.json +1 -1
  37. package/src/discovery/devin.d.ts +1 -1
  38. package/src/discovery/devin.ts +33 -66
  39. package/src/hosts.d.ts +3 -1
  40. package/src/hosts.ts +5 -2
  41. package/src/models.json +1 -1
  42. package/src/provider-models/descriptors.ts +2 -0
  43. package/src/provider-models/openai-compat.d.ts +9 -2
  44. package/src/provider-models/openai-compat.ts +47 -5
  45. package/src/types.d.ts +10 -3
  46. package/src/types.ts +10 -3
  47. package/src/wire/codex.d.ts +4 -2
  48. package/src/wire/codex.ts +11 -3
  49. package/src/wire/devin.d.ts +1 -15
  50. package/src/wire/devin.ts +16 -20
@@ -163,34 +163,36 @@ class "anthropic" {
163
163
  // Foundry / Claude Platform on AWS are first-party Anthropic routes whose
164
164
  // effective URLs are checked at request time.
165
165
  on "anthropic" "google-vertex" "amazon-bedrock" "bedrock-mantle" {
166
- family "fable" {
167
- revision ">=5" {
168
- supports-server-compaction #true
166
+ on-api "anthropic-messages" {
167
+ family "fable" {
168
+ revision ">=5" {
169
+ supports-server-compaction #true
170
+ }
169
171
  }
170
- }
171
- family "mythos" {
172
- revision ">=5" {
173
- supports-server-compaction #true
172
+ family "mythos" {
173
+ revision ">=5" {
174
+ supports-server-compaction #true
175
+ }
174
176
  }
175
- }
176
- family "opus" {
177
- revision ">=4.6" {
178
- supports-server-compaction #true
177
+ family "opus" {
178
+ revision ">=4.6" {
179
+ supports-server-compaction #true
180
+ }
179
181
  }
180
- }
181
- family "sonnet" {
182
- revision ">=4.6" {
183
- supports-server-compaction #true
182
+ family "sonnet" {
183
+ revision ">=4.6" {
184
+ supports-server-compaction #true
185
+ }
184
186
  }
185
- }
186
- family "haiku" {
187
- revision ">=5.5 <6" {
187
+ family "haiku" {
188
+ revision ">=5.5 <6" {
189
+ supports-server-compaction #true
190
+ }
191
+ }
192
+ models "claude-mythos-preview" {
188
193
  supports-server-compaction #true
189
194
  }
190
195
  }
191
- models "claude-mythos-preview" {
192
- supports-server-compaction #true
193
- }
194
196
  }
195
197
  // Sonnet 4.5 and newer end generation with `model_context_window_exceeded`
196
198
  // when prompt + max_tokens overruns the window, instead of a 400, so the
@@ -108,4 +108,35 @@ class "deepseek" {
108
108
  revision ">=4" {
109
109
  portable-reasoning #true
110
110
  }
111
+ // V4.1 Flash's vision config (patch 14, 3x3 merge, 1024-token cap, 544²
112
+ // floor). verified: OpenRouter billing matched it exactly on Fireworks and
113
+ // DeepInfra and within one token on Together, 256px to 4000px.
114
+ // Later Flash releases stay on their wire fallback until measured.
115
+ family "flash" {
116
+ revision ">=4.1 <4.2" {
117
+ image-tokenization {
118
+ regime "deepseek-patch"
119
+ verified #true
120
+ patch-size 14
121
+ downsample 3
122
+ max-tokens 1024
123
+ min-pixels 295936
124
+ }
125
+ }
126
+ }
127
+ // DeepSeek's API retired the V4.0 vision preview and serves its legacy id
128
+ // with the current Flash (api-docs.deepseek.com/guides/vision); hosts that
129
+ // still run the preview keep their fallback.
130
+ on "deepseek" {
131
+ models "deepseek-v4-flash-vision-exp" {
132
+ image-tokenization {
133
+ regime "deepseek-patch"
134
+ verified #true
135
+ patch-size 14
136
+ downsample 3
137
+ max-tokens 1024
138
+ min-pixels 295936
139
+ }
140
+ }
141
+ }
111
142
  }
@@ -11,4 +11,15 @@ class "gemma" {
11
11
  on "google" "vercel-ai-gateway" {
12
12
  thinking-mode "budget"
13
13
  }
14
+ // Gemma 4 on the Gemini API toggles thinking only through `thinkingLevel`
15
+ // (`HIGH` on, `MINIMAL` off) and rejects any `thinkingBudget` with a 400
16
+ // (https://ai.google.dev/gemma/docs/core/gemma_on_gemini_api#thinking).
17
+ // Off must be sent explicitly as `MINIMAL` rather than omitting the config.
18
+ on "google" {
19
+ revision ">=4" {
20
+ thinking-mode "google-level"
21
+ thinking-efforts "high"
22
+ thinking-suppress-when-off #true
23
+ }
24
+ }
14
25
  }
@@ -81,15 +81,17 @@ class "minimax" {
81
81
  thinking-efforts "low" "medium" "high"
82
82
  }
83
83
  }
84
- // MiniMax-M3.1-Flash-Preview always thinks (`thinking.type: "disabled"` and
85
- // effort `none` 400 with error 2013) and tunes depth through
86
- // `output_config.effort` from `low` to `max` (the default when omitted).
87
- // The identity map replaces the M3 family's adaptive-tag-only map so each
88
- // level reaches the wire. Like the M2 family, thinking cannot be turned off:
89
- // `thinking-requires-effort` hides the off level and clamps forced-off
90
- // requests to the lowest effort instead of sending `disabled`.
84
+ // MiniMax-M3.1-Flash (and its bundled `-Preview` id) always thinks
85
+ // (`thinking.type: "disabled"` and effort `none` 400 with error 2013) and
86
+ // tunes depth through `output_config.effort` from `low` to `max` (the
87
+ // default when omitted). The identity map replaces the M3 family's
88
+ // adaptive-tag-only map so each level reaches the wire. Like the M2 family,
89
+ // thinking cannot be turned off: `thinking-requires-effort` hides the off
90
+ // level and clamps forced-off requests to the lowest effort instead of
91
+ // sending `disabled`. The launch id also rejects sampling params
92
+ // (`temperature`, `top_p`, `top_k`).
91
93
  on "minimax" "minimax-cn" "minimax-code" "minimax-code-cn" {
92
- models "MiniMax-M3.1-Flash-Preview" {
94
+ models "MiniMax-M3.1-Flash" "MiniMax-M3.1-Flash-Preview" {
93
95
  thinking-requires-effort #true
94
96
  thinking-efforts "low" "medium" "high" "xhigh" "max"
95
97
  thinking-effort-map {
@@ -98,6 +100,9 @@ class "minimax" {
98
100
  high "high"
99
101
  }
100
102
  }
103
+ models "MiniMax-M3.1-Flash" {
104
+ supports-sampling-params #false
105
+ }
101
106
  }
102
107
  // Token Plan rows ride the Anthropic route; these OpenAI-only wire axes
103
108
  // serve the legacy lightning rows that stay on the OpenAI-compatible one.
@@ -51,10 +51,66 @@ provider "amazon-bedrock" {
51
51
  thinking-efforts "minimal" "low" "medium" "high"
52
52
  thinking-mode "budget"
53
53
  }
54
+ // AWS documents compact-2026-09-04 for native Runtime APIs, not Converse.
55
+ // Expose this only as a side-compaction capability; ordinary turns
56
+ // continue to use the model's bedrock-converse-stream API. These revisions
57
+ // are limited to the Bedrock model cards that name the new beta:
58
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/claude-messages-compaction.html
59
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-haiku-4-5.html
60
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-haiku-5-5.html
61
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-5.html
62
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-5-5.html
63
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-4-7.html
64
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-4-8.html
65
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5.html
66
+ // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5-5.html
67
+ // The haiku/sonnet/opus families are Anthropic-only (taxonomy/anthropic.kdl).
68
+ on-api "bedrock-converse-stream" {
69
+ family "haiku" {
70
+ revision ">=4.5 <4.6" {
71
+ supports-server-compaction #true
72
+ }
73
+ revision ">=5.5 <5.6" {
74
+ supports-server-compaction #true
75
+ }
76
+ }
77
+ family "sonnet" {
78
+ revision ">=5 <5.1" {
79
+ supports-server-compaction #true
80
+ }
81
+ revision ">=5.5 <5.6" {
82
+ supports-server-compaction #true
83
+ }
84
+ }
85
+ family "opus" {
86
+ revision ">=4.7 <4.9" {
87
+ supports-server-compaction #true
88
+ }
89
+ revision ">=5 <5.1" {
90
+ supports-server-compaction #true
91
+ }
92
+ revision ">=5.5 <5.6" {
93
+ supports-server-compaction #true
94
+ }
95
+ }
96
+ }
54
97
  // residue: taxonomy ranks and exact globs do not isolate these models.
55
98
  models "moonshot.kimi-k2-thinking" {
56
99
  thinking-requires-effort #true
57
100
  }
101
+ // residue: the inference-profile prefixes leave the K3 rows in the
102
+ // "unknown" class, so an exact selector is the only match. K3 reasons via
103
+ // OpenAI-style reasoning_effort (low/high/max, default max), matching
104
+ // Moonshot's official API and every other provider's K3 entry. Verified
105
+ // live via Converse on global.moonshotai.kimi-k3: identical prompt yields
106
+ // ~1K output tokens at "high" vs ~2.4K at "max" (invalid values are
107
+ // accepted silently and behave like the max default).
108
+ models "*.moonshotai.kimi-k3" {
109
+ thinking-mode "effort"
110
+ thinking-efforts "low" "high" "max"
111
+ thinking-default-level "max"
112
+ thinking-requires-effort #true
113
+ }
58
114
  // The Qwen rows arrive with maxTokens copied from the upstream context
59
115
  // window (262000 on a 262144 window), so a request that does not set an
60
116
  // output budget of its own asks Bedrock for more than the model accepts
@@ -12,6 +12,18 @@ provider "factory-droid" {
12
12
  dynamic-models-authoritative #true
13
13
  // Native subscription limits are not direct-host price-tier or capacity heuristics.
14
14
  context-window-authoritative #true
15
+ // Factory's hosted HTTP routes refuse request bodies over 4,500,000 bytes.
16
+ // The native CLI keeps inline media under 3,500,000 base64 bytes, leaving
17
+ // ~1 MB for system, tools and text, but never evicts the newest user
18
+ // message's or newest tool result's media. Applied only on Factory's own
19
+ // hosts; a custom gateway baseUrl keeps its own limit.
20
+ inline-image-byte-budget 3500000
21
+ request-body-byte-limit 4500000
22
+ // Factory's own hosts per residency (wire/factory-droid.ts factoryDroidApiBaseUrl);
23
+ // seed rows are never bundled, so they are listed here for isCatalogEndpointUrl,
24
+ // which gates the budgets above (Factory's compat names no official endpoint).
25
+ endpoint-hosts "api.factory.ai" "api.eu.factory.ai"
26
+ catalog-endpoint-budgets #true
15
27
 
16
28
  // The registry roster. Factory has no model-listing endpoint, so first-party
17
29
  // clients ship this list and narrow it per account with feature flags, org
@@ -0,0 +1,61 @@
1
+ // https://docs.inceptionlabs.ai/get-started/models (2026-10-20).
2
+ provider "inception" {
3
+ default-model "mercury-3"
4
+ env "INCEPTION_API_KEY"
5
+ dynamic-models-authoritative #true
6
+ discovery label="Inception"
7
+
8
+ seed api="openai-completions" base-url="https://api.inceptionlabs.ai/v1" bundle="fallback" {
9
+ model "mercury-3" name="Mercury 3" {
10
+ reasoning #true
11
+ input "text"
12
+ cost input=0.1 output=0.35 cache-read=0.01 cache-write=0
13
+ limits context=1000000 max-tokens=131072
14
+ }
15
+ model "mercury-2.5" name="Mercury 2.5" {
16
+ reasoning #true
17
+ input "text"
18
+ cost input=0.2 output=0.75 cache-read=0.02 cache-write=0
19
+ limits context=260000 max-tokens=65536
20
+ }
21
+ model "mercury-2" name="Mercury 2" {
22
+ reasoning #true
23
+ input "text"
24
+ cost input=0.25 output=0.75 cache-read=0.025 cache-write=0
25
+ limits context=128000 max-tokens=50000
26
+ }
27
+ }
28
+
29
+ supports-developer-role #false
30
+ supports-store #false
31
+ max-tokens-field "max_completion_tokens"
32
+ clamp-output-to-model-max #true
33
+
34
+ // No Mercury taxonomy exists; these reviewed chat ids expose reasoning
35
+ // controls omitted by /models. Other endpoints must not inherit them.
36
+ models "mercury-2" "mercury-2.5" "mercury-3" {
37
+ thinking-upgrade-neutral #true
38
+ thinking-mode "effort"
39
+ thinking-efforts "minimal" "low" "medium" "high"
40
+ thinking-effort-map { minimal "instant" }
41
+ thinking-default-level "medium"
42
+ supports-reasoning-effort #true
43
+ reasoning-disable-mode "lowest-effort"
44
+ }
45
+ models "mercury-3" priority=1 {
46
+ thinking-default-level "low"
47
+ // Mercury streams nothing while it reasons. High effort defaults to a
48
+ // 131,072-token budget; at the measured ~400 reasoning tokens/s that
49
+ // can take ~330s before the first chunk, past the 300s default.
50
+ stream-first-event-timeout-ms 600000
51
+ // /models reports $0. `cost-fallback` seeds the published launch price
52
+ // ($0.10/$0.35, 50% off the $0.20/$0.70 list price, no announced end) only
53
+ // while it does, so a real upstream tariff takes over once published.
54
+ cost-fallback {
55
+ input 0.1
56
+ output 0.35
57
+ cache-read 0.01
58
+ cache-write 0
59
+ }
60
+ }
61
+ }
@@ -33,15 +33,15 @@ provider "moonshot" {
33
33
  input-modalities "text" "image"
34
34
  }
35
35
  }
36
- // stencil.so reports a $3 K3 cache write; Moonshot bills only cache hits
37
- // ($0.30) and misses (the $3 input rate), with no cache-write charge.
36
+ // Official K3 rates: cache write is billed separately by TTL ($3 for the
37
+ // default 5min tier, $6 for 1h). omp sends no TTL, so the 5min rate applies.
38
38
  // https://platform.moonshot.ai/docs/pricing/chat-k3
39
39
  models "kimi-k3" {
40
40
  cost-patch {
41
41
  input 3.0
42
42
  output 15.0
43
43
  cache-read 0.3
44
- cache-write 0.0
44
+ cache-write 3.0
45
45
  }
46
46
  }
47
47
  // The /models roster carries no modality metadata for the named vision/vl
@@ -24,6 +24,9 @@ provider "openai-codex" {
24
24
  // The backend decodes zstd request bodies, as the official client sends.
25
25
  // Its rejection body is undocumented, so any 400/415 re-checks uncompressed.
26
26
  request-encodings "zstd"
27
+ // Logged-in Codex accounts keep prompt-cache entries with no TTL, so
28
+ // idle compaction would only discard a prefix that stays warm.
29
+ prompt-cache-persistent #true
27
30
 
28
31
  seed api="openai-codex-responses" base-url="https://chatgpt.com/backend-api" bundle="always" {
29
32
  // Label only: the Codex backend ignores `tool.model` and runs gpt-image-2-codex.
@@ -1,37 +1,27 @@
1
1
  // Provider-wire compat for "yolo-auto"; wire constraints apply to every discovered model.
2
2
 
3
3
  provider "yolo-auto" {
4
- default-model "qwen3.8-flash"
4
+ default-model "qwen3.8-27b"
5
5
  env "YOLO_AUTO_API_KEY"
6
6
  dynamic-models-authoritative #true
7
7
  discovery label="Yolo-Auto"
8
8
 
9
- // Documented Yolo-Auto catalog (yolo-auto.com/models, yolo-auto.com/docs):
10
- // `qwen3.8-flash` is the default model on Free and paid plans at a 256K
11
- // (262144) context window, and the paid `yolo` route is initially backed by
12
- // the same Flash deployment. The flat-rate `/v1/models` response carries
13
- // bare ids with no limit fields and is authoritative once discovery runs.
14
- // Without provider-local seeds the bare `qwen3.8-flash` slug resolves
15
- // through the global reference index, which prefers the largest bundled
16
- // window (1M) and misreports the deployment cap. The compat block mirrors
17
- // the provider's documented wire surface: the API speaks the Qwen
18
- // chat-template dialect with `reasoning_effort` support and rejects the
19
- // `developer` role and `store` param.
9
+ // Documented Yolo-Auto catalog (yolo-auto.com/models, yolo-auto.com/docs,
10
+ // 2026-10): `qwen3.8-27b`, `yolo`, `yolo-small` (256K) and `yolo-128k`
11
+ // (128K), all paid-only. `qwen3.8-27b` is the recommended default; the
12
+ // `yolo` route is currently backed by the same Qwen3.8-27B deployment
13
+ // (its server-side target can change). The flat-rate `/v1/models`
14
+ // response is authoritative once discovery runs. Without provider-local
15
+ // seeds the bare `qwen3.8-27b` slug resolves through the global reference
16
+ // index, which prefers the largest bundled window (1M) and misreports the
17
+ // deployment cap. The compat block mirrors the provider's documented wire
18
+ // surface: the API speaks the Qwen chat-template dialect with
19
+ // `reasoning_effort` support and rejects the `developer` role and `store`
20
+ // param. `yolo-small` and `yolo-128k` are documented only by id and
21
+ // context, and their `/v1/models` rows advertise no thinking ladder, so
22
+ // they seed as plain text routes until the provider documents more.
20
23
  seed api="openai-completions" base-url="https://yolo-auto.com/v1" bundle="fallback" {
21
- model "deepseek-flash-v4" name="DeepSeek Flash V4" {
22
- reasoning #true
23
- input "text" "image"
24
- cost input=0 output=0 cache-read=0 cache-write=0
25
- limits context=131072
26
- thinking-mode "effort"
27
- thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
28
- thinking-effort-map { minimal "low"; low "low"; medium "high"; high "high"; xhigh "max"; max "max" }
29
- supports-developer-role #false
30
- supports-store #false
31
- supports-reasoning-effort #true
32
- thinking-format "chat-template"
33
- }
34
- model "qwen3.8-flash" name="Qwen3.8 Flash" {
24
+ model "qwen3.8-27b" name="Qwen3.8-27B" {
35
25
  reasoning #true
36
26
  input "text" "image"
37
27
  cost input=0 output=0 cache-read=0 cache-write=0
@@ -57,6 +47,22 @@ provider "yolo-auto" {
57
47
  thinking-format "qwen-chat-template"
58
48
  template-reasoning-effort #true
59
49
  }
50
+ model "yolo-small" name="Yolo Small" {
51
+ reasoning #false
52
+ input "text"
53
+ cost input=0 output=0 cache-read=0 cache-write=0
54
+ limits context=262144
55
+ supports-developer-role #false
56
+ supports-store #false
57
+ }
58
+ model "yolo-128k" name="Yolo 128K" {
59
+ reasoning #false
60
+ input "text"
61
+ cost input=0 output=0 cache-read=0 cache-write=0
62
+ limits context=131072
63
+ supports-developer-role #false
64
+ supports-store #false
65
+ }
60
66
  }
61
67
 
62
68
  supports-developer-role #false
@@ -64,17 +70,7 @@ provider "yolo-auto" {
64
70
  // Live /v1/models advertises `thinking: minimal..xhigh` for the Qwen3.8
65
71
  // rows; the cascade rule carries it into the regenerated bundle, whose
66
72
  // thinking re-bake ignores seed-level ladders.
67
- models "qwen3.8-flash" "yolo" "qwen3.8-27b" {
73
+ models "qwen3.8-27b" "yolo" {
68
74
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
69
75
  }
70
- models "deepseek-flash-v4" {
71
- disable-reasoning-on-tool-choice #true
72
- max-tokens-field "max_completion_tokens"
73
- requires-reasoning-content-for-all-assistant-turns #true
74
- requires-reasoning-content-for-tool-calls #true
75
- supports-reasoning-effort #true
76
- thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
77
- thinking-format "chat-template"
78
- thinking-mode "effort"
79
- }
80
76
  }
@@ -12,7 +12,7 @@ class "qwen" {
12
12
 
13
13
  revision prefix="qwen"
14
14
 
15
- override id="yolo-auto-yolo-flash-identity" provider="yolo-auto" model="yolo" class="qwen" revision="3.8" rationale="Yolo-Auto's paid yolo route is initially backed by the same Qwen3.8 Flash deployment as qwen3.8-flash; the opaque alias carries no lineage tokens" provenance="yolo-auto.com/models (2026-09)"
15
+ override id="yolo-auto-yolo-identity" provider="yolo-auto" model="yolo" class="qwen" revision="3.8" rationale="Yolo-Auto's paid yolo route is currently backed by the same Qwen3.8-27B deployment as qwen3.8-27b; the opaque alias carries no lineage tokens" provenance="yolo-auto.com/models (2026-10)"
16
16
  override id="prismml-bonsai-27b-qwen-3-6" glob="*bonsai-27b*" class="qwen" revision="3.6" rationale="Reviewed PrismML Bonsai and Ternary-Bonsai 27B lineage is Qwen3.6-27B; the wire basename may carry a prefix or GGUF quantization suffix" provenance="packages/coding-agent/src/config/model-discovery.ts; original reviewed alias e3aa6594e5"
17
17
  override id="prismml-bonsai-2-27b-qwen-3-8" glob="*bonsai-2-27b*" class="qwen" revision="3.8" rationale="Reviewed PrismML Bonsai 2 27B lineage is Qwen3.8-27B; the wire basename may carry a prefix or GGUF quantization suffix" provenance="packages/coding-agent/src/config/model-discovery.ts"
18
18
  override id="kilo-qwq-32b-family" provider="kilo" model="qwq-32b" logical="qwen/qwq-32b" class="qwen" rationale="The reviewed Kilo QwQ deployment belongs to the Qwen family despite its opaque product spelling" provenance="fixtures/llm-oracle/catalog/models.normalized.json"