muonroi-cli 1.8.4 → 1.9.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 (562) hide show
  1. package/LICENSE +17 -5
  2. package/dist/packages/agent-harness-core/src/driver.d.ts +27 -1
  3. package/dist/packages/agent-harness-core/src/driver.js +46 -0
  4. package/dist/packages/agent-harness-core/src/event-filter.js +11 -0
  5. package/dist/packages/agent-harness-core/src/event-redact.js +7 -0
  6. package/dist/packages/agent-harness-core/src/event-tee.d.ts +64 -0
  7. package/dist/packages/agent-harness-core/src/event-tee.js +104 -0
  8. package/dist/packages/agent-harness-core/src/mcp-server.d.ts +25 -0
  9. package/dist/packages/agent-harness-core/src/mcp-server.js +169 -21
  10. package/dist/packages/agent-harness-core/src/predicate.d.ts +1 -1
  11. package/dist/packages/agent-harness-core/src/protocol.d.ts +90 -4
  12. package/dist/packages/agent-harness-core/src/protocol.js +15 -0
  13. package/dist/packages/agent-harness-core/src/visual-quality.d.ts +58 -0
  14. package/dist/packages/agent-harness-core/src/visual-quality.js +141 -0
  15. package/dist/packages/agent-harness-opentui/src/agent-mode.d.ts +6 -0
  16. package/dist/packages/agent-harness-opentui/src/agent-mode.js +14 -1
  17. package/dist/packages/agent-harness-opentui/src/input-bridge.d.ts +2 -10
  18. package/dist/packages/agent-harness-opentui/src/input-bridge.js +103 -16
  19. package/dist/packages/agent-harness-opentui/src/install.d.ts +8 -0
  20. package/dist/packages/agent-harness-opentui/src/install.js +10 -0
  21. package/dist/packages/agent-harness-opentui/src/semantic.js +12 -10
  22. package/dist/packages/agent-harness-opentui/src/visual-capture.d.ts +56 -0
  23. package/dist/packages/agent-harness-opentui/src/visual-capture.js +103 -0
  24. package/dist/src/agent-harness/mock-model.d.ts +38 -0
  25. package/dist/src/agent-harness/mock-model.js +69 -3
  26. package/dist/src/agent-harness/test-spawn.js +31 -0
  27. package/dist/src/chat/chat-keychain.d.ts +7 -12
  28. package/dist/src/chat/chat-keychain.js +19 -86
  29. package/dist/src/cli/config/screen-providers.js +1 -1
  30. package/dist/src/cli/cost-forensics.d.ts +10 -0
  31. package/dist/src/cli/cost-forensics.js +18 -3
  32. package/dist/src/cli/keys-bundle.d.ts +1 -1
  33. package/dist/src/cli/keys-bundle.js +1 -1
  34. package/dist/src/cli/keys.d.ts +10 -47
  35. package/dist/src/cli/keys.js +31 -399
  36. package/dist/src/council/clarifier.d.ts +31 -3
  37. package/dist/src/council/clarifier.js +220 -32
  38. package/dist/src/council/context.js +49 -15
  39. package/dist/src/council/debate-checkpoint.d.ts +129 -0
  40. package/dist/src/council/debate-checkpoint.js +176 -0
  41. package/dist/src/council/debate-planner.js +54 -5
  42. package/dist/src/council/debate-summary.d.ts +25 -0
  43. package/dist/src/council/debate-summary.js +85 -0
  44. package/dist/src/council/debate.d.ts +169 -2
  45. package/dist/src/council/debate.js +1265 -135
  46. package/dist/src/council/index.d.ts +108 -1
  47. package/dist/src/council/index.js +670 -197
  48. package/dist/src/council/leader.d.ts +26 -0
  49. package/dist/src/council/leader.js +150 -9
  50. package/dist/src/council/llm.d.ts +94 -0
  51. package/dist/src/council/llm.js +348 -55
  52. package/dist/src/council/panel-select.d.ts +30 -0
  53. package/dist/src/council/panel-select.js +82 -0
  54. package/dist/src/council/planner.js +40 -0
  55. package/dist/src/council/preflight.d.ts +17 -0
  56. package/dist/src/council/preflight.js +50 -2
  57. package/dist/src/council/prompts.d.ts +39 -4
  58. package/dist/src/council/prompts.js +256 -69
  59. package/dist/src/council/stance-recall.d.ts +42 -0
  60. package/dist/src/council/stance-recall.js +57 -0
  61. package/dist/src/council/strip-think.d.ts +17 -0
  62. package/dist/src/council/strip-think.js +33 -0
  63. package/dist/src/council/types.d.ts +138 -0
  64. package/dist/src/ee/artifact-cache.d.ts +16 -0
  65. package/dist/src/ee/artifact-cache.js +32 -0
  66. package/dist/src/ee/auth.d.ts +20 -0
  67. package/dist/src/ee/auth.js +54 -2
  68. package/dist/src/ee/bridge.d.ts +10 -0
  69. package/dist/src/ee/bridge.js +58 -0
  70. package/dist/src/ee/client.js +109 -21
  71. package/dist/src/ee/ee-onboarding.js +6 -26
  72. package/dist/src/ee/export-transcripts.d.ts +1 -0
  73. package/dist/src/ee/export-transcripts.js +8 -10
  74. package/dist/src/ee/extract-session.js +29 -0
  75. package/dist/src/ee/extract-style.d.ts +58 -0
  76. package/dist/src/ee/extract-style.js +270 -0
  77. package/dist/src/ee/recall-ledger.d.ts +9 -0
  78. package/dist/src/ee/recall-ledger.js +3 -0
  79. package/dist/src/ee/scope.d.ts +1 -0
  80. package/dist/src/ee/scope.js +26 -1
  81. package/dist/src/ee/search.d.ts +7 -0
  82. package/dist/src/ee/search.js +24 -0
  83. package/dist/src/ee/transcript-emit.js +2 -0
  84. package/dist/src/ee/types.d.ts +22 -0
  85. package/dist/src/ee/who-am-i-brain.d.ts +35 -0
  86. package/dist/src/ee/who-am-i-brain.js +220 -0
  87. package/dist/src/ee/who-am-i.d.ts +10 -3
  88. package/dist/src/ee/who-am-i.js +12 -0
  89. package/dist/src/ee/workflow-event.d.ts +48 -0
  90. package/dist/src/ee/workflow-event.js +81 -0
  91. package/dist/src/flow/compaction/compress.d.ts +3 -3
  92. package/dist/src/flow/compaction/compress.js +58 -8
  93. package/dist/src/flow/compaction/extract.d.ts +4 -7
  94. package/dist/src/flow/compaction/extract.js +50 -10
  95. package/dist/src/flow/compaction/index.d.ts +14 -1
  96. package/dist/src/flow/compaction/index.js +96 -3
  97. package/dist/src/flow/compaction/input-guard.d.ts +24 -0
  98. package/dist/src/flow/compaction/input-guard.js +43 -0
  99. package/dist/src/flow/compaction/progress.d.ts +35 -0
  100. package/dist/src/flow/compaction/progress.js +35 -0
  101. package/dist/src/flow/fold-planning.d.ts +36 -0
  102. package/dist/src/flow/fold-planning.js +83 -0
  103. package/dist/src/flow/hierarchy.d.ts +146 -0
  104. package/dist/src/flow/hierarchy.js +427 -0
  105. package/dist/src/flow/index.d.ts +1 -0
  106. package/dist/src/flow/index.js +2 -0
  107. package/dist/src/flow/run-artifacts.d.ts +102 -0
  108. package/dist/src/flow/run-artifacts.js +208 -0
  109. package/dist/src/generated/version.d.ts +1 -1
  110. package/dist/src/generated/version.js +1 -1
  111. package/dist/src/gsd/assessment-schema.d.ts +44 -0
  112. package/dist/src/gsd/assessment-schema.js +134 -0
  113. package/dist/src/gsd/capability-registry.d.ts +45 -0
  114. package/dist/src/gsd/capability-registry.js +337 -0
  115. package/dist/src/gsd/complexity-assessor.d.ts +39 -0
  116. package/dist/src/gsd/complexity-assessor.js +152 -0
  117. package/dist/src/gsd/config-bridge.d.ts +7 -0
  118. package/dist/src/gsd/config-bridge.js +114 -0
  119. package/dist/src/gsd/config-loader.d.ts +27 -0
  120. package/dist/src/gsd/config-loader.js +50 -0
  121. package/dist/src/gsd/council-context.d.ts +44 -0
  122. package/dist/src/gsd/council-context.js +114 -0
  123. package/dist/src/gsd/ee-closure.d.ts +28 -0
  124. package/dist/src/gsd/ee-closure.js +49 -0
  125. package/dist/src/gsd/flags.d.ts +66 -0
  126. package/dist/src/gsd/flags.js +102 -0
  127. package/dist/src/gsd/gsd-dispatch.d.ts +58 -0
  128. package/dist/src/gsd/gsd-dispatch.js +131 -0
  129. package/dist/src/gsd/gsd-runtime.d.ts +22 -0
  130. package/dist/src/gsd/gsd-runtime.js +37 -0
  131. package/dist/src/gsd/host-adapter.d.ts +11 -0
  132. package/dist/src/gsd/host-adapter.js +29 -0
  133. package/dist/src/gsd/index.d.ts +24 -1
  134. package/dist/src/gsd/index.js +27 -0
  135. package/dist/src/gsd/loop-host-contract.d.ts +21 -0
  136. package/dist/src/gsd/loop-host-contract.js +39 -0
  137. package/dist/src/gsd/loop-host.d.ts +69 -0
  138. package/dist/src/gsd/loop-host.js +245 -0
  139. package/dist/src/gsd/loop-resolver.d.ts +36 -0
  140. package/dist/src/gsd/loop-resolver.js +79 -0
  141. package/dist/src/gsd/model-tier.d.ts +13 -0
  142. package/dist/src/gsd/model-tier.js +45 -0
  143. package/dist/src/gsd/mutation-gate.d.ts +16 -0
  144. package/dist/src/gsd/mutation-gate.js +41 -0
  145. package/dist/src/gsd/native-roadmap.d.ts +89 -0
  146. package/dist/src/gsd/native-roadmap.js +343 -0
  147. package/dist/src/gsd/native-state.d.ts +47 -0
  148. package/dist/src/gsd/native-state.js +220 -0
  149. package/dist/src/gsd/paths.d.ts +23 -0
  150. package/dist/src/gsd/paths.js +66 -0
  151. package/dist/src/gsd/phase-dag.d.ts +12 -0
  152. package/dist/src/gsd/phase-dag.js +94 -0
  153. package/dist/src/gsd/phase-sync.d.ts +42 -0
  154. package/dist/src/gsd/phase-sync.js +321 -0
  155. package/dist/src/gsd/pil-gate-context.d.ts +13 -0
  156. package/dist/src/gsd/pil-gate-context.js +64 -0
  157. package/dist/src/gsd/pil-gate-critic.d.ts +19 -0
  158. package/dist/src/gsd/pil-gate-critic.js +74 -0
  159. package/dist/src/gsd/plan-council-prompts.d.ts +25 -0
  160. package/dist/src/gsd/plan-council-prompts.js +79 -0
  161. package/dist/src/gsd/plan-council.d.ts +44 -0
  162. package/dist/src/gsd/plan-council.js +283 -0
  163. package/dist/src/gsd/plan-gate-vocabulary.d.ts +40 -0
  164. package/dist/src/gsd/plan-gate-vocabulary.js +64 -0
  165. package/dist/src/gsd/product-workspace.d.ts +13 -0
  166. package/dist/src/gsd/product-workspace.js +124 -0
  167. package/dist/src/gsd/ship-bridge.d.ts +25 -0
  168. package/dist/src/gsd/ship-bridge.js +65 -0
  169. package/dist/src/gsd/state-document.d.ts +40 -0
  170. package/dist/src/gsd/state-document.js +163 -0
  171. package/dist/src/gsd/verdict-schema.d.ts +39 -0
  172. package/dist/src/gsd/verdict-schema.js +144 -0
  173. package/dist/src/gsd/verify-context.d.ts +22 -0
  174. package/dist/src/gsd/verify-context.js +27 -0
  175. package/dist/src/gsd/verify-council-prompts.d.ts +19 -0
  176. package/dist/src/gsd/verify-council-prompts.js +85 -0
  177. package/dist/src/gsd/verify-council.d.ts +25 -0
  178. package/dist/src/gsd/verify-council.js +119 -0
  179. package/dist/src/gsd/verify-gate-vocabulary.d.ts +25 -0
  180. package/dist/src/gsd/verify-gate-vocabulary.js +46 -0
  181. package/dist/src/gsd/workflow-engine.d.ts +60 -0
  182. package/dist/src/gsd/workflow-engine.js +207 -0
  183. package/dist/src/gsd/workflow-tools.d.ts +13 -0
  184. package/dist/src/gsd/workflow-tools.js +277 -0
  185. package/dist/src/headless/council-answers.js +4 -0
  186. package/dist/src/hooks/index.js +1 -1
  187. package/dist/src/index.js +172 -270
  188. package/dist/src/lsp/builtins.js +3 -1
  189. package/dist/src/lsp/manager.d.ts +5 -1
  190. package/dist/src/lsp/manager.js +249 -3
  191. package/dist/src/lsp/npm-cache.d.ts +11 -1
  192. package/dist/src/lsp/npm-cache.js +17 -1
  193. package/dist/src/lsp/runtime.d.ts +6 -1
  194. package/dist/src/lsp/runtime.js +17 -1
  195. package/dist/src/lsp/types.d.ts +83 -1
  196. package/dist/src/lsp/types.js +10 -0
  197. package/dist/src/maintain/pr-builder.js +23 -13
  198. package/dist/src/mcp/auto-setup.js +57 -32
  199. package/dist/src/mcp/client-pool.js +44 -16
  200. package/dist/src/mcp/lsp-tools.d.ts +5 -1
  201. package/dist/src/mcp/lsp-tools.js +93 -2
  202. package/dist/src/mcp/mcp-keychain.d.ts +3 -5
  203. package/dist/src/mcp/mcp-keychain.js +9 -49
  204. package/dist/src/mcp/research-onboarding.js +8 -7
  205. package/dist/src/mcp/runtime.js +34 -2
  206. package/dist/src/mcp/setup-guide-text.d.ts +1 -1
  207. package/dist/src/mcp/setup-guide-text.js +22 -2
  208. package/dist/src/mcp/tools-server.d.ts +10 -0
  209. package/dist/src/mcp/tools-server.js +10 -2
  210. package/dist/src/models/catalog-client.d.ts +87 -0
  211. package/dist/src/models/catalog-client.js +105 -38
  212. package/dist/src/models/catalog.json +528 -265
  213. package/dist/src/models/registry.d.ts +22 -7
  214. package/dist/src/models/registry.js +73 -10
  215. package/dist/src/ops/doctor.js +1 -1
  216. package/dist/src/orchestrator/ask-user.d.ts +61 -0
  217. package/dist/src/orchestrator/ask-user.js +65 -0
  218. package/dist/src/orchestrator/auto-commit.js +1 -1
  219. package/dist/src/orchestrator/batch-turn-runner.js +2 -2
  220. package/dist/src/orchestrator/cache-prefix.d.ts +67 -0
  221. package/dist/src/orchestrator/cache-prefix.js +83 -0
  222. package/dist/src/orchestrator/compact-request.d.ts +32 -0
  223. package/dist/src/orchestrator/compact-request.js +41 -0
  224. package/dist/src/orchestrator/compaction.d.ts +12 -3
  225. package/dist/src/orchestrator/compaction.js +35 -15
  226. package/dist/src/orchestrator/council-manager.d.ts +12 -3
  227. package/dist/src/orchestrator/council-manager.js +74 -32
  228. package/dist/src/orchestrator/council-request.d.ts +49 -0
  229. package/dist/src/orchestrator/council-request.js +62 -0
  230. package/dist/src/orchestrator/cross-turn-dedup.d.ts +6 -0
  231. package/dist/src/orchestrator/cross-turn-dedup.js +22 -1
  232. package/dist/src/orchestrator/error-utils.d.ts +29 -0
  233. package/dist/src/orchestrator/error-utils.js +132 -24
  234. package/dist/src/orchestrator/grounding-check.js +39 -1
  235. package/dist/src/orchestrator/interactive-pause.d.ts +26 -0
  236. package/dist/src/orchestrator/interactive-pause.js +36 -0
  237. package/dist/src/orchestrator/message-processor.d.ts +4 -0
  238. package/dist/src/orchestrator/message-processor.js +268 -41
  239. package/dist/src/orchestrator/orchestrator.d.ts +64 -3
  240. package/dist/src/orchestrator/orchestrator.js +823 -120
  241. package/dist/src/orchestrator/preprocessor.js +3 -3
  242. package/dist/src/orchestrator/proactive-compact-detector.d.ts +26 -0
  243. package/dist/src/orchestrator/proactive-compact-detector.js +36 -0
  244. package/dist/src/orchestrator/prompts.js +17 -17
  245. package/dist/src/orchestrator/reactive-delegation.d.ts +39 -0
  246. package/dist/src/orchestrator/reactive-delegation.js +59 -0
  247. package/dist/src/orchestrator/retry-classifier.d.ts +2 -1
  248. package/dist/src/orchestrator/retry-classifier.js +46 -2
  249. package/dist/src/orchestrator/safety-askcard.d.ts +1 -1
  250. package/dist/src/orchestrator/safety-askcard.js +5 -2
  251. package/dist/src/orchestrator/safety-intercept.d.ts +50 -0
  252. package/dist/src/orchestrator/safety-intercept.js +62 -0
  253. package/dist/src/orchestrator/scope-reminder.js +1 -1
  254. package/dist/src/orchestrator/session-experience.d.ts +2 -1
  255. package/dist/src/orchestrator/session-experience.js +2 -1
  256. package/dist/src/orchestrator/should-run-gate.d.ts +5 -0
  257. package/dist/src/orchestrator/should-run-gate.js +18 -0
  258. package/dist/src/orchestrator/stall-watchdog.d.ts +31 -3
  259. package/dist/src/orchestrator/stall-watchdog.js +65 -10
  260. package/dist/src/orchestrator/stream-runner.d.ts +13 -3
  261. package/dist/src/orchestrator/stream-runner.js +115 -49
  262. package/dist/src/orchestrator/sub-agent-cap.d.ts +13 -1
  263. package/dist/src/orchestrator/sub-agent-cap.js +16 -1
  264. package/dist/src/orchestrator/sub-agent-model-tier.d.ts +13 -1
  265. package/dist/src/orchestrator/sub-agent-model-tier.js +16 -2
  266. package/dist/src/orchestrator/subagent-compactor.d.ts +53 -1
  267. package/dist/src/orchestrator/subagent-compactor.js +126 -15
  268. package/dist/src/orchestrator/tool-engine.d.ts +41 -0
  269. package/dist/src/orchestrator/tool-engine.js +846 -66
  270. package/dist/src/orchestrator/tool-limit-auto-recover.d.ts +22 -0
  271. package/dist/src/orchestrator/tool-limit-auto-recover.js +30 -0
  272. package/dist/src/orchestrator/turn-runner-deps.d.ts +19 -0
  273. package/dist/src/orchestrator/turn-watchdog.d.ts +44 -0
  274. package/dist/src/orchestrator/turn-watchdog.js +84 -0
  275. package/dist/src/pil/agent-operating-contract.d.ts +1 -1
  276. package/dist/src/pil/agent-operating-contract.js +6 -4
  277. package/dist/src/pil/cheap-model-playbook.d.ts +1 -1
  278. package/dist/src/pil/cheap-model-playbook.js +5 -1
  279. package/dist/src/pil/cheap-model-workbooks.d.ts +1 -1
  280. package/dist/src/pil/cheap-model-workbooks.js +1 -1
  281. package/dist/src/pil/discovery-types.d.ts +1 -0
  282. package/dist/src/pil/discovery.d.ts +1 -1
  283. package/dist/src/pil/discovery.js +18 -13
  284. package/dist/src/pil/layer1-intent.d.ts +18 -6
  285. package/dist/src/pil/layer1-intent.js +66 -757
  286. package/dist/src/pil/layer15-context-scan.js +15 -1
  287. package/dist/src/pil/layer1_5-complexity-size.d.ts +7 -0
  288. package/dist/src/pil/layer1_5-complexity-size.js +31 -5
  289. package/dist/src/pil/layer3-ee-injection.js +23 -8
  290. package/dist/src/pil/layer4-gsd.js +69 -16
  291. package/dist/src/pil/layer5-context.js +7 -3
  292. package/dist/src/pil/layer6-output.d.ts +23 -0
  293. package/dist/src/pil/layer6-output.js +5 -1
  294. package/dist/src/pil/llm-classify.d.ts +111 -5
  295. package/dist/src/pil/llm-classify.js +421 -189
  296. package/dist/src/pil/native-capabilities-workbook.d.ts +1 -1
  297. package/dist/src/pil/native-capabilities-workbook.js +8 -0
  298. package/dist/src/pil/pipeline.js +36 -2
  299. package/dist/src/pil/repo-grounding-probe.d.ts +15 -0
  300. package/dist/src/pil/repo-grounding-probe.js +136 -0
  301. package/dist/src/pil/repo-structure-hints.d.ts +7 -0
  302. package/dist/src/pil/repo-structure-hints.js +45 -0
  303. package/dist/src/pil/response-tools.js +5 -3
  304. package/dist/src/pil/schema.d.ts +1 -0
  305. package/dist/src/pil/schema.js +2 -0
  306. package/dist/src/pil/types.d.ts +18 -0
  307. package/dist/src/playbook/directives.d.ts +4 -0
  308. package/dist/src/playbook/directives.js +17 -5
  309. package/dist/src/product-loop/artifact-io.js +4 -0
  310. package/dist/src/product-loop/backlog-builder.d.ts +14 -1
  311. package/dist/src/product-loop/backlog-builder.js +30 -6
  312. package/dist/src/product-loop/criteria-seed.d.ts +51 -0
  313. package/dist/src/product-loop/criteria-seed.js +200 -0
  314. package/dist/src/product-loop/discovery-context-format.js +3 -1
  315. package/dist/src/product-loop/discovery-ecosystem.js +4 -1
  316. package/dist/src/product-loop/discovery-interview.d.ts +9 -0
  317. package/dist/src/product-loop/discovery-interview.js +60 -12
  318. package/dist/src/product-loop/discovery-recommender.js +2 -1
  319. package/dist/src/product-loop/discovery-schema.js +19 -2
  320. package/dist/src/product-loop/discovery-triage.d.ts +23 -0
  321. package/dist/src/product-loop/discovery-triage.js +109 -0
  322. package/dist/src/product-loop/gather.js +150 -2
  323. package/dist/src/product-loop/ideal-trace.d.ts +7 -0
  324. package/dist/src/product-loop/ideal-trace.js +64 -0
  325. package/dist/src/product-loop/index.d.ts +13 -1
  326. package/dist/src/product-loop/index.js +340 -52
  327. package/dist/src/product-loop/loop-driver.d.ts +7 -0
  328. package/dist/src/product-loop/loop-driver.js +330 -106
  329. package/dist/src/product-loop/phase-plan.d.ts +21 -0
  330. package/dist/src/product-loop/phase-plan.js +81 -6
  331. package/dist/src/product-loop/phase-rituals.d.ts +3 -0
  332. package/dist/src/product-loop/phase-rituals.js +8 -3
  333. package/dist/src/product-loop/phase-runner.js +39 -12
  334. package/dist/src/product-loop/plan-adherence-review.d.ts +26 -0
  335. package/dist/src/product-loop/plan-adherence-review.js +144 -0
  336. package/dist/src/product-loop/sprint-runner.d.ts +173 -0
  337. package/dist/src/product-loop/sprint-runner.js +863 -19
  338. package/dist/src/product-loop/types.d.ts +61 -5
  339. package/dist/src/providers/adapter.d.ts +1 -1
  340. package/dist/src/providers/adapter.js +3 -4
  341. package/dist/src/providers/anthropic.d.ts +9 -8
  342. package/dist/src/providers/anthropic.js +13 -47
  343. package/dist/src/providers/auth/browser-flow.d.ts +1 -1
  344. package/dist/src/providers/auth/browser-flow.js +1 -1
  345. package/dist/src/providers/auth/grok-oauth.d.ts +1 -0
  346. package/dist/src/providers/auth/grok-oauth.js +30 -5
  347. package/dist/src/providers/auth/openai-oauth.d.ts +1 -0
  348. package/dist/src/providers/auth/openai-oauth.js +15 -1
  349. package/dist/src/providers/auth/registry.js +0 -34
  350. package/dist/src/providers/auth/token-store.d.ts +9 -9
  351. package/dist/src/providers/auth/token-store.js +8 -67
  352. package/dist/src/providers/auth/types.d.ts +9 -1
  353. package/dist/src/providers/auth/types.js +1 -1
  354. package/dist/src/providers/capabilities.d.ts +24 -5
  355. package/dist/src/providers/capabilities.js +42 -24
  356. package/dist/src/providers/endpoints.d.ts +2 -2
  357. package/dist/src/providers/endpoints.js +11 -10
  358. package/dist/src/providers/env-store.d.ts +17 -0
  359. package/dist/src/providers/env-store.js +228 -0
  360. package/dist/src/providers/keychain.d.ts +22 -18
  361. package/dist/src/providers/keychain.js +127 -140
  362. package/dist/src/providers/mcp-vision-bridge.js +56 -146
  363. package/dist/src/providers/openai-compatible.js +8 -1
  364. package/dist/src/providers/pricing.d.ts +2 -2
  365. package/dist/src/providers/pricing.js +3 -13
  366. package/dist/src/providers/runtime.d.ts +43 -3
  367. package/dist/src/providers/runtime.js +88 -14
  368. package/dist/src/providers/strategies/base.strategy.d.ts +16 -0
  369. package/dist/src/providers/strategies/base.strategy.js +24 -1
  370. package/dist/src/providers/strategies/{siliconflow.strategy.d.ts → opencode-go.strategy.d.ts} +3 -3
  371. package/dist/src/providers/strategies/opencode-go.strategy.js +83 -0
  372. package/dist/src/providers/strategies/registry.js +4 -4
  373. package/dist/src/providers/strategies/thinking-mode.d.ts +109 -0
  374. package/dist/src/providers/strategies/thinking-mode.js +288 -1
  375. package/dist/src/providers/strategies/xai.strategy.js +27 -0
  376. package/dist/src/providers/strategies/zai.strategy.d.ts +14 -0
  377. package/dist/src/providers/strategies/zai.strategy.js +44 -0
  378. package/dist/src/providers/types.d.ts +5 -6
  379. package/dist/src/providers/types.js +2 -2
  380. package/dist/src/providers/vision-backend.d.ts +47 -0
  381. package/dist/src/providers/vision-backend.js +258 -0
  382. package/dist/src/providers/vision-proxy.d.ts +22 -9
  383. package/dist/src/providers/vision-proxy.js +63 -132
  384. package/dist/src/providers/warm.d.ts +65 -0
  385. package/dist/src/providers/warm.js +145 -0
  386. package/dist/src/providers/wire-debug.js +95 -0
  387. package/dist/src/router/decide.d.ts +13 -0
  388. package/dist/src/router/decide.js +138 -36
  389. package/dist/src/router/peak-hour.d.ts +38 -0
  390. package/dist/src/router/peak-hour.js +107 -0
  391. package/dist/src/router/step-router.js +3 -2
  392. package/dist/src/router/warm.js +4 -5
  393. package/dist/src/scaffold/continuation-prompt.d.ts +11 -0
  394. package/dist/src/scaffold/continuation-prompt.js +26 -0
  395. package/dist/src/scaffold/point-to-existing.d.ts +21 -0
  396. package/dist/src/scaffold/point-to-existing.js +25 -0
  397. package/dist/src/self-qa/agentic-loop.js +6 -5
  398. package/dist/src/{ui/state → state}/active-run.d.ts +19 -0
  399. package/dist/src/{ui/state → state}/active-run.js +21 -0
  400. package/dist/src/{ui/status-bar/store.d.ts → state/status-bar-store.d.ts} +4 -1
  401. package/dist/src/{ui/status-bar/store.js → state/status-bar-store.js} +12 -9
  402. package/dist/src/state/turn-trace.d.ts +43 -0
  403. package/dist/src/state/turn-trace.js +32 -0
  404. package/dist/src/storage/db.js +2 -1
  405. package/dist/src/storage/index.d.ts +1 -1
  406. package/dist/src/storage/index.js +1 -1
  407. package/dist/src/storage/interaction-log.d.ts +1 -1
  408. package/dist/src/storage/migrations.js +71 -1
  409. package/dist/src/storage/sessions.d.ts +28 -10
  410. package/dist/src/storage/sessions.js +78 -21
  411. package/dist/src/storage/transcript-view.js +1 -1
  412. package/dist/src/storage/transcript.d.ts +51 -0
  413. package/dist/src/storage/transcript.js +340 -15
  414. package/dist/src/tools/file.d.ts +15 -0
  415. package/dist/src/tools/file.js +32 -0
  416. package/dist/src/tools/git-safety.d.ts +19 -0
  417. package/dist/src/tools/git-safety.js +168 -0
  418. package/dist/src/tools/native-tools.d.ts +1 -1
  419. package/dist/src/tools/native-tools.js +81 -1
  420. package/dist/src/tools/registry.d.ts +20 -0
  421. package/dist/src/tools/registry.js +576 -23
  422. package/dist/src/tools/research.d.ts +29 -0
  423. package/dist/src/tools/research.js +233 -0
  424. package/dist/src/types/index.d.ts +147 -4
  425. package/dist/src/ui/app.js +0 -0
  426. package/dist/src/ui/cards/product-status-card.js +1 -1
  427. package/dist/src/ui/components/agent-rail-activities.d.ts +26 -0
  428. package/dist/src/ui/components/agent-rail-activities.js +47 -0
  429. package/dist/src/ui/components/bubble-body-guard.d.ts +27 -0
  430. package/dist/src/ui/components/bubble-body-guard.js +50 -0
  431. package/dist/src/ui/components/compact-progress-card.d.ts +24 -0
  432. package/dist/src/ui/components/compact-progress-card.js +42 -0
  433. package/dist/src/ui/components/context-rail.d.ts +26 -0
  434. package/dist/src/ui/components/context-rail.js +33 -0
  435. package/dist/src/ui/components/council-conclusion-card.d.ts +73 -0
  436. package/dist/src/ui/components/council-conclusion-card.js +420 -0
  437. package/dist/src/ui/components/council-debate-pill.d.ts +36 -0
  438. package/dist/src/ui/components/council-debate-pill.js +34 -0
  439. package/dist/src/ui/components/council-info-card.js +2 -2
  440. package/dist/src/ui/components/council-leader-bubble.d.ts +10 -3
  441. package/dist/src/ui/components/council-leader-bubble.js +21 -11
  442. package/dist/src/ui/components/council-message-bubble.d.ts +15 -2
  443. package/dist/src/ui/components/council-message-bubble.js +16 -15
  444. package/dist/src/ui/components/council-phase-timeline.d.ts +9 -1
  445. package/dist/src/ui/components/council-phase-timeline.js +66 -17
  446. package/dist/src/ui/components/council-placeholder-bubble.d.ts +16 -9
  447. package/dist/src/ui/components/council-placeholder-bubble.js +32 -29
  448. package/dist/src/ui/components/council-question-card.js +13 -12
  449. package/dist/src/ui/components/council-rail-rounds.d.ts +26 -0
  450. package/dist/src/ui/components/council-rail-rounds.js +57 -0
  451. package/dist/src/ui/components/council-round-group.d.ts +38 -0
  452. package/dist/src/ui/components/council-round-group.js +88 -0
  453. package/dist/src/ui/components/council-status-list.d.ts +3 -1
  454. package/dist/src/ui/components/council-status-list.js +36 -24
  455. package/dist/src/ui/components/council-synthesis-banner.d.ts +7 -2
  456. package/dist/src/ui/components/council-synthesis-banner.js +20 -5
  457. package/dist/src/ui/components/halt-recovery-card.js +9 -5
  458. package/dist/src/ui/components/jump-to-latest-pill.d.ts +11 -0
  459. package/dist/src/ui/components/jump-to-latest-pill.js +14 -0
  460. package/dist/src/ui/components/message-view.d.ts +15 -0
  461. package/dist/src/ui/components/message-view.js +50 -1
  462. package/dist/src/ui/components/prompt-box.js +18 -16
  463. package/dist/src/ui/components/session-tree-card.d.ts +14 -0
  464. package/dist/src/ui/components/session-tree-card.js +46 -0
  465. package/dist/src/ui/components/slash-inline-menu.d.ts +12 -0
  466. package/dist/src/ui/components/slash-inline-menu.js +26 -5
  467. package/dist/src/ui/components/task-list-panel.d.ts +14 -1
  468. package/dist/src/ui/components/task-list-panel.js +22 -2
  469. package/dist/src/ui/components/tool-group.d.ts +15 -3
  470. package/dist/src/ui/components/tool-group.js +69 -11
  471. package/dist/src/ui/containers/modals-layer.d.ts +4 -2
  472. package/dist/src/ui/containers/modals-layer.js +2 -2
  473. package/dist/src/ui/council-harness-event.d.ts +57 -0
  474. package/dist/src/ui/council-harness-event.js +46 -0
  475. package/dist/src/ui/heartbeat-debug.d.ts +29 -0
  476. package/dist/src/ui/heartbeat-debug.js +45 -0
  477. package/dist/src/ui/hooks/use-session-picker.d.ts +3 -3
  478. package/dist/src/ui/mcp-modal.js +2 -4
  479. package/dist/src/ui/modals/api-key-modal.js +1 -1
  480. package/dist/src/ui/modals/connect-modal.js +4 -3
  481. package/dist/src/ui/modals/model-picker-modal.d.ts +8 -18
  482. package/dist/src/ui/modals/model-picker-modal.js +8 -10
  483. package/dist/src/ui/modals/session-picker-modal.d.ts +2 -2
  484. package/dist/src/ui/modals/session-picker-modal.js +3 -5
  485. package/dist/src/ui/picker-providers.d.ts +1 -1
  486. package/dist/src/ui/picker-providers.js +1 -1
  487. package/dist/src/ui/primitives/index.d.ts +1 -0
  488. package/dist/src/ui/primitives/index.js +2 -0
  489. package/dist/src/ui/primitives/semantic-primitives.d.ts +76 -0
  490. package/dist/src/ui/primitives/semantic-primitives.js +81 -0
  491. package/dist/src/ui/slash/compact.js +5 -7
  492. package/dist/src/ui/slash/cost.js +1 -1
  493. package/dist/src/ui/slash/council.js +19 -1
  494. package/dist/src/ui/slash/debug.d.ts +3 -31
  495. package/dist/src/ui/slash/debug.js +9 -20
  496. package/dist/src/ui/slash/ee.js +81 -0
  497. package/dist/src/ui/slash/ideal.d.ts +6 -2
  498. package/dist/src/ui/slash/ideal.js +97 -7
  499. package/dist/src/ui/slash/menu-items.d.ts +7 -0
  500. package/dist/src/ui/slash/menu-items.js +23 -20
  501. package/dist/src/ui/slash/registry.d.ts +2 -0
  502. package/dist/src/ui/slash/registry.js +4 -0
  503. package/dist/src/ui/status-bar/cache-hit.d.ts +6 -0
  504. package/dist/src/ui/status-bar/cache-hit.js +9 -0
  505. package/dist/src/ui/status-bar/index.d.ts +1 -1
  506. package/dist/src/ui/status-bar/index.js +7 -3
  507. package/dist/src/ui/status-bar/usd-meter.d.ts +5 -4
  508. package/dist/src/ui/status-bar/usd-meter.js +6 -4
  509. package/dist/src/ui/theme.d.ts +1 -0
  510. package/dist/src/ui/theme.js +2 -0
  511. package/dist/src/ui/types.d.ts +7 -0
  512. package/dist/src/ui/use-app-logic.js +0 -0
  513. package/dist/src/ui/utils/agent-activities.d.ts +39 -0
  514. package/dist/src/ui/utils/agent-activities.js +96 -0
  515. package/dist/src/ui/utils/format.d.ts +14 -0
  516. package/dist/src/ui/utils/format.js +23 -3
  517. package/dist/src/ui/utils/group-tool-entries.d.ts +26 -0
  518. package/dist/src/ui/utils/group-tool-entries.js +111 -0
  519. package/dist/src/ui/utils/tool-summary.d.ts +21 -0
  520. package/dist/src/ui/utils/tool-summary.js +91 -0
  521. package/dist/src/usage/downgrade.js +2 -2
  522. package/dist/src/usage/product-ledger.js +2 -2
  523. package/dist/src/utils/event-loop-monitor.d.ts +85 -0
  524. package/dist/src/utils/event-loop-monitor.js +107 -0
  525. package/dist/src/utils/install-manager.js +2 -1
  526. package/dist/src/utils/llm-deadline.d.ts +14 -0
  527. package/dist/src/utils/llm-deadline.js +19 -0
  528. package/dist/src/utils/logger.js +2 -2
  529. package/dist/src/utils/loop-profiler.d.ts +102 -0
  530. package/dist/src/utils/loop-profiler.js +202 -0
  531. package/dist/src/utils/permission-mode.js +5 -3
  532. package/dist/src/utils/redactor.js +1 -1
  533. package/dist/src/utils/settings.d.ts +180 -5
  534. package/dist/src/utils/settings.js +271 -31
  535. package/dist/src/utils/side-question.d.ts +1 -2
  536. package/dist/src/utils/side-question.js +2 -2
  537. package/dist/src/utils/visible-retry.d.ts +11 -0
  538. package/dist/src/utils/visible-retry.js +10 -1
  539. package/dist/src/verify/entrypoint.d.ts +1 -1
  540. package/dist/src/verify/entrypoint.js +52 -17
  541. package/dist/src/verify/orchestrator.d.ts +1 -1
  542. package/dist/src/verify/orchestrator.js +20 -3
  543. package/dist/src/verify/recipes.d.ts +13 -0
  544. package/dist/src/verify/recipes.js +15 -0
  545. package/package.json +134 -132
  546. package/dist/src/cli/bw-vault.d.ts +0 -55
  547. package/dist/src/cli/bw-vault.js +0 -133
  548. package/dist/src/mcp/ee-tools.d.ts +0 -46
  549. package/dist/src/mcp/ee-tools.js +0 -193
  550. package/dist/src/providers/auth/gcloud.d.ts +0 -28
  551. package/dist/src/providers/auth/gcloud.js +0 -102
  552. package/dist/src/providers/auth/gemini-oauth.d.ts +0 -82
  553. package/dist/src/providers/auth/gemini-oauth.js +0 -472
  554. package/dist/src/providers/gemini.d.ts +0 -11
  555. package/dist/src/providers/gemini.js +0 -45
  556. package/dist/src/providers/siliconflow-sse-repair.d.ts +0 -58
  557. package/dist/src/providers/siliconflow-sse-repair.js +0 -177
  558. package/dist/src/providers/strategies/google.strategy.d.ts +0 -22
  559. package/dist/src/providers/strategies/google.strategy.js +0 -174
  560. package/dist/src/providers/strategies/siliconflow.strategy.js +0 -29
  561. package/dist/src/ui/containers/chat-feed.d.ts +0 -40
  562. package/dist/src/ui/containers/chat-feed.js +0 -66
@@ -1,7 +1,7 @@
1
1
  {
2
- "version": "2.2",
3
- "updated_at": "2026-06-04",
4
- "description": "Local fallback catalog: deepseek + siliconflow + openai (ChatGPT OAuth) + google (Agy via agy.exe OAuth + cloudcode-pa). Agy supports: Gemini 3.5 Flash (High/Medium/Low), Gemini 3.1 Pro (High/Low), Gemini 3 Flash, Claude Sonnet 4.6 (Thinking), Claude Opus 4.6 (Thinking), GPT-OSS 120B (Medium+). Non-Gemini models under google provider use Agy token for proxied access. Other providers unchanged. Pricing APPROXIMATE.",
2
+ "version": "2.15",
3
+ "updated_at": "2026-07-15",
4
+ "description": "Local fallback catalog: deepseek + zai + opencode-go + xai. routing.council multi-provider debate; routing.vision_proxy Z.ai/xai backend for text-only models (deepseek etc.). provider_policies.peak_hour from vendor docs. Pricing APPROXIMATE.",
5
5
  "models": [
6
6
  {
7
7
  "id": "deepseek-v4-flash",
@@ -17,9 +17,12 @@
17
17
  "thinking_type": "enabled",
18
18
  "supports_effort": false,
19
19
  "default_reasoning_effort": null,
20
- "description": "Native DeepSeek V4 Flash. Tool-call capable. More expensive than SiliconFlow's hosted V4-Flash ($0.14/$0.28) prefer SF unless rate-limited.",
20
+ "description": "Native DeepSeek V4 Flash. Tool-call capable. Primary fast-tier model for the deepseek provider.",
21
21
  "aliases": ["deepseek-flash-native"],
22
- "supports_vision": false
22
+ "supports_vision": false,
23
+ "roles": ["research", "implement", "verify"],
24
+ "native_web_research": false,
25
+ "web_research_kind": null
23
26
  },
24
27
  {
25
28
  "id": "deepseek-v4-pro",
@@ -35,383 +38,643 @@
35
38
  "thinking_type": "enabled",
36
39
  "supports_effort": false,
37
40
  "default_reasoning_effort": null,
38
- "description": "Native DeepSeek V4 Pro. Tool-call capable. Cheaper than SF-hosted V4-Pro ($1.74/$3.48) — this is the premium-tier default.",
41
+ "description": "Native DeepSeek V4 Pro. Tool-call capable. Premium-tier default for the deepseek provider.",
39
42
  "aliases": ["deepseek-pro-native"],
40
- "supports_vision": false
43
+ "supports_vision": false,
44
+ "roles": ["leader", "implement", "verify", "research"],
45
+ "native_web_research": false,
46
+ "web_research_kind": null
41
47
  },
42
48
  {
43
- "id": "deepseek-ai/DeepSeek-V4-Flash",
44
- "name": "DeepSeek V4 Flash (via SiliconFlow)",
45
- "provider": "siliconflow",
49
+ "id": "gpt-5.5",
50
+ "name": "GPT-5.5 (OpenAI ChatGPT OAuth)",
51
+ "provider": "openai",
52
+ "tier": "premium",
53
+ "context_window": 256000,
54
+ "max_output_tokens": 32000,
55
+ "input_price_per_million": 0,
56
+ "output_price_per_million": 0,
57
+ "reasoning": true,
58
+ "thinking_type": "enabled",
59
+ "supports_effort": true,
60
+ "default_reasoning_effort": "high",
61
+ "description": "OpenAI GPT-5.5 — frontier model for complex coding, research, and real-world work. Via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed — per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
62
+ "aliases": ["gpt-5.5-oauth"],
63
+ "supports_vision": false,
64
+ "roles": ["leader", "implement", "verify", "research"],
65
+ "native_web_research": true,
66
+ "web_research_kind": "web-tool"
67
+ },
68
+ {
69
+ "id": "gpt-5.4",
70
+ "name": "GPT-5.4 (OpenAI ChatGPT OAuth)",
71
+ "provider": "openai",
72
+ "tier": "balanced",
73
+ "context_window": 256000,
74
+ "max_output_tokens": 32000,
75
+ "input_price_per_million": 0,
76
+ "output_price_per_million": 0,
77
+ "reasoning": true,
78
+ "thinking_type": "enabled",
79
+ "supports_effort": true,
80
+ "default_reasoning_effort": "medium",
81
+ "description": "OpenAI GPT-5.4 — strong model for everyday coding. Via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed — per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
82
+ "aliases": ["gpt-5.4-oauth"],
83
+ "supports_vision": false,
84
+ "roles": ["implement", "verify", "research"],
85
+ "native_web_research": true,
86
+ "web_research_kind": "web-tool"
87
+ },
88
+ {
89
+ "id": "gpt-5.4-mini",
90
+ "name": "GPT-5.4 mini (OpenAI ChatGPT OAuth)",
91
+ "provider": "openai",
46
92
  "tier": "fast",
47
- "context_window": 1049000,
48
- "max_output_tokens": 8000,
49
- "input_price_per_million": 0.14,
50
- "output_price_per_million": 0.28,
93
+ "context_window": 256000,
94
+ "max_output_tokens": 32000,
95
+ "input_price_per_million": 0,
96
+ "output_price_per_million": 0,
51
97
  "reasoning": true,
52
98
  "thinking_type": "enabled",
53
- "supports_effort": false,
54
- "default_reasoning_effort": null,
55
- "description": "DeepSeek V4 Flash on SiliconFlow cheaper than native. 1M context. Reasoning_tokens share output budget.",
56
- "aliases": ["deepseek-v4-flash-sf", "deepseek-flash-sf"],
57
- "supports_vision": false
99
+ "supports_effort": true,
100
+ "default_reasoning_effort": "low",
101
+ "description": "OpenAI GPT-5.4 mini small, fast, and cost-efficient model for simpler coding tasks. Via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed — per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
102
+ "aliases": ["gpt-5.4-mini-oauth"],
103
+ "supports_vision": false,
104
+ "roles": ["research", "implement", "verify"],
105
+ "native_web_research": true,
106
+ "web_research_kind": "web-tool"
58
107
  },
59
108
  {
60
- "id": "deepseek-ai/DeepSeek-V4-Pro",
61
- "name": "DeepSeek V4 Pro (via SiliconFlow)",
62
- "provider": "siliconflow",
109
+ "id": "grok-4.5",
110
+ "name": "Grok 4.5 (xAI)",
111
+ "provider": "xai",
63
112
  "tier": "premium",
64
- "context_window": 1049000,
65
- "max_output_tokens": 16000,
66
- "input_price_per_million": 1.74,
67
- "output_price_per_million": 3.48,
113
+ "context_window": 500000,
114
+ "max_output_tokens": 65536,
115
+ "input_price_per_million": 2,
116
+ "output_price_per_million": 6,
117
+ "cached_input_price_per_million": 0.5,
68
118
  "reasoning": true,
69
119
  "thinking_type": "enabled",
120
+ "supports_effort": true,
121
+ "default_reasoning_effort": "high",
122
+ "description": "xAI/SpaceXAI flagship (Jul 2026). Strongest model for coding, agentic tool-calling, and knowledge work. Configurable reasoning (default high). 500k context. Pricing verified from docs.x.ai 2026-07-09.",
123
+ "aliases": ["grok-4.5", "grok-4.5-latest", "grok-latest", "grok-4"],
124
+ "supports_vision": true,
125
+ "roles": ["leader", "implement", "verify", "research"],
126
+ "native_web_research": true,
127
+ "web_research_kind": "web-search"
128
+ },
129
+ {
130
+ "id": "grok-composer-2.5-fast",
131
+ "name": "Composer 2.5 (Cursor / xAI)",
132
+ "provider": "xai",
133
+ "tier": "balanced",
134
+ "context_window": 200000,
135
+ "max_output_tokens": 65536,
136
+ "input_price_per_million": 3,
137
+ "output_price_per_million": 15,
138
+ "reasoning": false,
139
+ "thinking_type": null,
70
140
  "supports_effort": false,
71
141
  "default_reasoning_effort": null,
72
- "description": "DeepSeek V4 Pro on SiliconFlow. Prefer native deepseek-v4-pro for cost ($0.55/$2.19) when key available.",
73
- "aliases": ["deepseek-v4-pro-sf", "deepseek-pro-sf"],
74
- "supports_vision": false
142
+ "description": "Cursor Composer 2.5 (fast) via Grok/xAI. Agentic coding model for long-horizon tasks and complex instructions. Text-only (no native vision). Model id used by Grok Build / Grok CLI integrations. Pricing: Cursor fast tier $3/$15 per 1M.",
143
+ "aliases": ["composer-2.5", "composer-2.5-fast", "composer", "grok-composer-2.5", "grok-build-0.1"],
144
+ "supports_vision": false,
145
+ "roles": ["implement", "research", "verify"],
146
+ "native_web_research": true,
147
+ "web_research_kind": "web-search"
75
148
  },
76
149
  {
77
- "id": "Qwen/Qwen3-8B",
78
- "name": "Qwen3 8B (SiliconFlow)",
79
- "provider": "siliconflow",
150
+ "id": "glm-4.6v-flash",
151
+ "name": "GLM 4.6V Flash (Z.ai Vision)",
152
+ "provider": "zai",
80
153
  "tier": "fast",
81
- "context_window": 131072,
154
+ "tier_routing": false,
155
+ "context_window": 128000,
82
156
  "max_output_tokens": 8192,
83
- "input_price_per_million": 0.06,
84
- "output_price_per_million": 0.06,
157
+ "input_price_per_million": 0.3,
158
+ "output_price_per_million": 0.9,
85
159
  "reasoning": false,
86
- "thinking_type": "hybrid",
160
+ "thinking_type": null,
87
161
  "supports_effort": false,
88
162
  "default_reasoning_effort": null,
89
- "description": "Cheapest tool-capable SiliconFlow model. Symmetric pricing ideal for mechanical tool-execution loops. Supports thinking/non-thinking hybrid mode.",
90
- "aliases": ["qwen3-8b-sf", "alibaba/Qwen3-8B"],
91
- "supports_vision": false
163
+ "description": "Z.ai vision model for screenshots, UI, diagrams. Primary backend for routing.vision_proxy (text-only models like DeepSeek). Explicit -m or proxy only — not tier routing.",
164
+ "aliases": ["glm-4.6v-flashx"],
165
+ "supports_vision": true,
166
+ "native_web_research": true,
167
+ "web_research_kind": "web-tool"
92
168
  },
93
169
  {
94
- "id": "Qwen/Qwen3-30B-A3B-Instruct-2507",
95
- "name": "Qwen3 30B A3B Instruct (SiliconFlow)",
96
- "provider": "siliconflow",
97
- "tier": "balanced",
98
- "context_window": 262144,
99
- "max_output_tokens": 8192,
100
- "input_price_per_million": 0.09,
101
- "output_price_per_million": 0.3,
170
+ "id": "glm-4.7-flash",
171
+ "name": "GLM 4.7 Flash (Z.ai)",
172
+ "provider": "zai",
173
+ "tier": "fast",
174
+ "tier_routing": false,
175
+ "context_window": 203000,
176
+ "max_output_tokens": 8000,
177
+ "input_price_per_million": 0,
178
+ "output_price_per_million": 0,
102
179
  "reasoning": false,
103
180
  "thinking_type": null,
104
181
  "supports_effort": false,
105
182
  "default_reasoning_effort": null,
106
- "description": "MoE balanced default. 3B active params keeps cost low while 30B total gives strong instruction following + tool use. Recommended SF balanced pick.",
107
- "aliases": ["qwen3-30b-instruct-sf", "alibaba/Qwen3-30B-A3B-Instruct-2507"],
108
- "supports_vision": false
183
+ "description": "Z.ai free-tier model (separate rate-limit pool; NOT covered by GLM Coding Plan Pro/Lite/Max quota). Use glm-4.7 for subscription-backed coding. Explicit -m only — excluded from automatic tier routing and compaction.",
184
+ "aliases": ["glm-4-flash", "glm-4-flashx", "glm-4.7-flashx"],
185
+ "supports_vision": false,
186
+ "roles": ["research"],
187
+ "native_web_research": true,
188
+ "web_research_kind": "web-tool"
109
189
  },
110
190
  {
111
- "id": "Qwen/Qwen3-Coder-30B-A3B-Instruct",
112
- "name": "Qwen3 Coder 30B A3B (SiliconFlow)",
113
- "provider": "siliconflow",
114
- "tier": "balanced",
115
- "context_window": 262144,
191
+ "id": "glm-4.5-air",
192
+ "name": "GLM 4.5 Air (Z.ai)",
193
+ "provider": "zai",
194
+ "tier": "fast",
195
+ "tier_routing": false,
196
+ "context_window": 131072,
116
197
  "max_output_tokens": 8192,
117
- "input_price_per_million": 0.07,
118
- "output_price_per_million": 0.28,
198
+ "input_price_per_million": 0.2,
199
+ "output_price_per_million": 1.1,
119
200
  "reasoning": false,
120
201
  "thinking_type": null,
121
202
  "supports_effort": false,
122
203
  "default_reasoning_effort": null,
123
- "description": "Coding-specialized Qwen3 MoE. Cheaper than the generic Qwen3-30B variant. Use when pil.taskType is coding (router override pending).",
124
- "aliases": ["qwen3-coder-sf", "qwen-coder-sf", "alibaba/Qwen3-Coder-30B-A3B-Instruct"],
125
- "supports_vision": false
204
+ "description": "Z.ai pay-as-you-go API model (billed per token; NOT the GLM Coding Plan subscription pool). Explicit -m only.",
205
+ "aliases": ["glm-4.5-airx"],
206
+ "supports_vision": false,
207
+ "roles": ["research", "verify"],
208
+ "native_web_research": true,
209
+ "web_research_kind": "web-tool"
126
210
  },
127
211
  {
128
- "id": "deepseek-ai/DeepSeek-V3.2",
129
- "name": "DeepSeek V3.2 (SiliconFlow)",
130
- "provider": "siliconflow",
212
+ "id": "glm-4.7",
213
+ "name": "GLM 4.7 (Z.ai)",
214
+ "provider": "zai",
131
215
  "tier": "balanced",
132
- "context_window": 163840,
133
- "max_output_tokens": 8192,
134
- "input_price_per_million": 0.27,
135
- "output_price_per_million": 0.42,
136
- "reasoning": true,
137
- "thinking_type": "enabled",
216
+ "routing_tiers": ["fast"],
217
+ "context_window": 203000,
218
+ "max_output_tokens": 16000,
219
+ "input_price_per_million": 0.6,
220
+ "output_price_per_million": 2.2,
221
+ "reasoning": false,
222
+ "thinking_type": null,
138
223
  "supports_effort": false,
139
224
  "default_reasoning_effort": null,
140
- "description": "Cheap DeepSeek reasoning option for balanced-tier turns that benefit from CoT. Tool-capable. Use when Qwen3-30B is not strong enough on reasoning.",
141
- "aliases": ["deepseek-v3.2-sf"],
142
- "supports_vision": false
225
+ "description": "Recommended default for Z.ai GLM Coding Plan subscribers (Lite/Pro/Max). Primary balanced model; also routes as fast-tier for compaction/title (replaces glm-4.7-flash in auto-routing). Z.ai docs: use for routine tasks.",
226
+ "aliases": [],
227
+ "supports_vision": false,
228
+ "roles": ["leader", "implement"],
229
+ "native_web_research": true,
230
+ "web_research_kind": "web-tool"
143
231
  },
144
232
  {
145
- "id": "deepseek-ai/DeepSeek-R1",
146
- "name": "DeepSeek R1 (SiliconFlow)",
147
- "provider": "siliconflow",
148
- "tier": "premium",
149
- "context_window": 163840,
150
- "max_output_tokens": 16384,
151
- "input_price_per_million": 0.5,
152
- "output_price_per_million": 2.18,
153
- "reasoning": true,
154
- "thinking_type": "enabled",
233
+ "id": "glm-5-turbo",
234
+ "name": "GLM 5 Turbo (Z.ai)",
235
+ "provider": "zai",
236
+ "tier": "balanced",
237
+ "context_window": 128000,
238
+ "max_output_tokens": 8192,
239
+ "input_price_per_million": 0.1,
240
+ "output_price_per_million": 0.3,
241
+ "reasoning": false,
242
+ "thinking_type": null,
155
243
  "supports_effort": false,
156
244
  "default_reasoning_effort": null,
157
- "description": "Cheaper premium reasoning alternative to V4-Pro. Tool-capable. Use when V4-Pro is rate-limited or for benchmark parity.",
158
- "aliases": ["deepseek-r1-sf"],
159
- "supports_vision": false
245
+ "description": "GLM Coding Plan model (Lite/Pro/Max). High-throughput agent tasks; consumes subscription quota (2-3x during peak for GLM-5 family per Z.ai policy).",
246
+ "aliases": [],
247
+ "supports_vision": false,
248
+ "roles": ["implement", "research", "verify"],
249
+ "native_web_research": true,
250
+ "web_research_kind": "web-tool"
160
251
  },
161
252
  {
162
- "id": "z-ai/GLM-4.6V",
163
- "name": "GLM 4.6V Vision (SiliconFlow)",
164
- "provider": "siliconflow",
253
+ "id": "glm-5v-turbo",
254
+ "name": "GLM 5V Turbo Vision (Z.ai)",
255
+ "provider": "zai",
165
256
  "tier": "balanced",
166
- "context_window": 131072,
167
- "max_output_tokens": 4096,
257
+ "tier_routing": false,
258
+ "context_window": 128000,
259
+ "max_output_tokens": 8192,
168
260
  "input_price_per_million": 0.3,
169
261
  "output_price_per_million": 0.9,
170
262
  "reasoning": false,
171
263
  "thinking_type": null,
172
264
  "supports_effort": false,
173
265
  "default_reasoning_effort": null,
174
- "description": "Vision-language model with confirmed function-calling support. Use when the turn contains image attachments (router vision-override pending).",
175
- "aliases": ["glm-4.6v-sf"],
176
- "supports_vision": true
266
+ "description": "Pay-as-you-go vision model NOT included in GLM Coding Plan Pro (API returns 429). Use Z.ai Vision MCP on Coding Plan instead. Explicit -m only.",
267
+ "aliases": [],
268
+ "supports_vision": true,
269
+ "native_web_research": true,
270
+ "web_research_kind": "web-tool"
177
271
  },
178
272
  {
179
- "id": "gpt-5.4-mini",
180
- "name": "GPT-5.4 mini (OpenAI ChatGPT OAuth)",
181
- "provider": "openai",
182
- "tier": "fast",
183
- "context_window": 256000,
273
+ "id": "glm-5",
274
+ "name": "GLM 5 (Z.ai)",
275
+ "provider": "zai",
276
+ "tier": "balanced",
277
+ "tier_routing": false,
278
+ "context_window": 203000,
184
279
  "max_output_tokens": 32000,
185
- "input_price_per_million": 0,
186
- "output_price_per_million": 0,
280
+ "input_price_per_million": 1,
281
+ "output_price_per_million": 3.2,
187
282
  "reasoning": true,
188
283
  "thinking_type": "enabled",
189
- "supports_effort": true,
190
- "default_reasoning_effort": "low",
191
- "description": "OpenAI GPT-5.4 mini via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
192
- "aliases": ["gpt-5.4-mini-oauth"],
193
- "supports_vision": false
284
+ "supports_effort": false,
285
+ "default_reasoning_effort": null,
286
+ "description": "Legacy GLM-5 base model (not in the official Coding Plan trio). Use glm-4.7 / glm-5-turbo / glm-5.2. Explicit -m only.",
287
+ "aliases": [],
288
+ "supports_vision": false,
289
+ "roles": ["leader", "implement", "verify"],
290
+ "native_web_research": true,
291
+ "web_research_kind": "web-tool"
194
292
  },
195
293
  {
196
- "id": "gpt-5.4",
197
- "name": "GPT-5.4 (OpenAI ChatGPT OAuth)",
198
- "provider": "openai",
294
+ "id": "glm-5.2",
295
+ "name": "GLM 5.2 (Z.ai)",
296
+ "provider": "zai",
199
297
  "tier": "premium",
200
- "context_window": 256000,
201
- "max_output_tokens": 32000,
202
- "input_price_per_million": 0,
203
- "output_price_per_million": 0,
298
+ "context_window": 1000000,
299
+ "max_output_tokens": 131072,
300
+ "input_price_per_million": 1.4,
301
+ "output_price_per_million": 4.4,
204
302
  "reasoning": true,
205
303
  "thinking_type": "enabled",
206
304
  "supports_effort": true,
207
305
  "default_reasoning_effort": "medium",
208
- "description": "OpenAI GPT-5.4 via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
209
- "aliases": ["gpt-5.4-oauth"],
210
- "supports_vision": false
306
+ "description": "GLM Coding Plan flagship for complex reasoning and large engineering (Z.ai: Opus-level). Default premium route; 3x peak / 2x off-peak quota per Z.ai policy.",
307
+ "aliases": ["glm-5.2[1m]"],
308
+ "supports_vision": true,
309
+ "roles": ["leader", "implement", "verify"],
310
+ "native_web_research": true,
311
+ "web_research_kind": "web-tool"
211
312
  },
212
313
  {
213
- "id": "gpt-5.3-codex",
214
- "name": "GPT-5.3 Codex (OpenAI ChatGPT OAuth)",
215
- "provider": "openai",
216
- "tier": "balanced",
217
- "context_window": 256000,
314
+ "id": "glm-5.1",
315
+ "name": "GLM 5.1 (Z.ai)",
316
+ "provider": "zai",
317
+ "tier": "premium",
318
+ "tier_routing": false,
319
+ "context_window": 203000,
218
320
  "max_output_tokens": 32000,
219
- "input_price_per_million": 0,
220
- "output_price_per_million": 0,
321
+ "input_price_per_million": 1.4,
322
+ "output_price_per_million": 4.4,
221
323
  "reasoning": true,
222
324
  "thinking_type": "enabled",
223
325
  "supports_effort": true,
224
326
  "default_reasoning_effort": "medium",
225
- "description": "OpenAI GPT-5.3 Codex (coding-specialized) via ChatGPT subscription OAuth (chatgpt.com/backend-api/codex, Responses API). Subscription-billed — per-token price N/A (0 placeholder). Added to local fallback catalog so OAuth-granted OpenAI models resolve when the CP catalog endpoint is unreachable.",
226
- "aliases": ["gpt-5.3-codex-oauth", "codex"],
227
- "supports_vision": false
327
+ "description": "Superseded by glm-5.2 for Coding Plan premium routing. Still callable via -m on the coding endpoint.",
328
+ "aliases": [],
329
+ "supports_vision": false,
330
+ "roles": ["implement", "research"],
331
+ "native_web_research": true,
332
+ "web_research_kind": "web-tool"
228
333
  },
229
334
  {
230
- "id": "gemini-3.5-flash-high",
231
- "name": "Gemini 3.5 Flash (High)",
232
- "provider": "google",
233
- "tier": "fast",
234
- "context_window": 1048576,
235
- "max_output_tokens": 65536,
236
- "input_price_per_million": 0.5,
237
- "output_price_per_million": 3.0,
238
- "reasoning": true,
239
- "thinking_type": "enabled",
240
- "supports_effort": true,
241
- "default_reasoning_effort": "high",
242
- "description": "Agy-supported Gemini 3.5 Flash High via Agy OAuth (cloudcode-pa backend, not public Generative Language). Multimodal, 1M context. Matches official agy cli model list.",
243
- "aliases": ["gemini-3.5-flash"],
244
- "supports_vision": true
335
+ "id": "opencode/kimi-k2.7-code",
336
+ "name": "Kimi K2.7 Code (OpenCode Go)",
337
+ "provider": "opencode-go",
338
+ "tier": "balanced",
339
+ "context_window": 128000,
340
+ "max_output_tokens": 8192,
341
+ "input_price_per_million": 0,
342
+ "output_price_per_million": 0,
343
+ "reasoning": false,
344
+ "thinking_type": null,
345
+ "supports_effort": false,
346
+ "default_reasoning_effort": null,
347
+ "fixed_temperature": 1,
348
+ "description": "Subscription model specialized for coding from Moonshot/Kimi.",
349
+ "aliases": ["kimi-k2.7-code-go"],
350
+ "supports_vision": false,
351
+ "roles": ["implement", "verify"],
352
+ "native_web_research": false,
353
+ "web_research_kind": null
245
354
  },
246
355
  {
247
- "id": "gemini-3.5-flash-medium",
248
- "name": "Gemini 3.5 Flash (Medium)",
249
- "provider": "google",
356
+ "id": "opencode/kimi-k2.6",
357
+ "name": "Kimi K2.6 (OpenCode Go)",
358
+ "provider": "opencode-go",
250
359
  "tier": "balanced",
251
- "context_window": 1048576,
252
- "max_output_tokens": 65536,
253
- "input_price_per_million": 0.5,
254
- "output_price_per_million": 3.0,
255
- "reasoning": true,
256
- "thinking_type": "enabled",
257
- "supports_effort": true,
258
- "default_reasoning_effort": "medium",
259
- "description": "Agy-supported Gemini 3.5 Flash Medium via Agy OAuth (cloudcode-pa). Multimodal, 1M context. Matches official agy cli model list.",
260
- "aliases": ["gemini-3.5-flash-med"],
261
- "supports_vision": true
360
+ "context_window": 128000,
361
+ "max_output_tokens": 8192,
362
+ "input_price_per_million": 0,
363
+ "output_price_per_million": 0,
364
+ "reasoning": false,
365
+ "thinking_type": null,
366
+ "supports_effort": false,
367
+ "default_reasoning_effort": null,
368
+ "fixed_temperature": 1,
369
+ "description": "Subscription version of Moonshot's Kimi K2.6 model.",
370
+ "aliases": ["kimi-k2.6-go"],
371
+ "supports_vision": false,
372
+ "roles": ["research"],
373
+ "native_web_research": false,
374
+ "web_research_kind": null
262
375
  },
263
376
  {
264
- "id": "gemini-3.5-flash-low",
265
- "name": "Gemini 3.5 Flash (Low)",
266
- "provider": "google",
267
- "tier": "fast",
268
- "context_window": 1048576,
269
- "max_output_tokens": 65536,
270
- "input_price_per_million": 0.5,
271
- "output_price_per_million": 3.0,
377
+ "id": "opencode/glm-5.2",
378
+ "name": "GLM 5.2 (OpenCode Go)",
379
+ "provider": "opencode-go",
380
+ "tier": "premium",
381
+ "context_window": 1000000,
382
+ "max_output_tokens": 131072,
383
+ "input_price_per_million": 0,
384
+ "output_price_per_million": 0,
272
385
  "reasoning": true,
273
386
  "thinking_type": "enabled",
274
387
  "supports_effort": true,
275
- "default_reasoning_effort": "low",
276
- "description": "Agy-supported Gemini 3.5 Flash Low via Agy OAuth (cloudcode-pa). Multimodal, 1M context. Matches official agy cli model list.",
277
- "aliases": ["gemini-3.5-flash-low"],
278
- "supports_vision": true
388
+ "default_reasoning_effort": "medium",
389
+ "description": "Subscription version of GLM-5.2 MoE with 1M-token context window.",
390
+ "aliases": ["glm-5.2-go"],
391
+ "supports_vision": true,
392
+ "roles": ["leader", "implement", "verify"],
393
+ "native_web_research": false,
394
+ "web_research_kind": null
279
395
  },
280
396
  {
281
- "id": "gemini-3.1-pro-high",
282
- "name": "Gemini 3.1 Pro (High)",
283
- "provider": "google",
397
+ "id": "opencode/glm-5.1",
398
+ "name": "GLM 5.1 (OpenCode Go)",
399
+ "provider": "opencode-go",
284
400
  "tier": "premium",
285
- "context_window": 1048576,
286
- "max_output_tokens": 65536,
287
- "input_price_per_million": 2.0,
288
- "output_price_per_million": 12.0,
401
+ "context_window": 203000,
402
+ "max_output_tokens": 32000,
403
+ "input_price_per_million": 0,
404
+ "output_price_per_million": 0,
289
405
  "reasoning": true,
290
406
  "thinking_type": "enabled",
291
407
  "supports_effort": true,
292
- "default_reasoning_effort": "high",
293
- "description": "Agy-supported Gemini 3.1 Pro High via Agy OAuth (cloudcode-pa backend). Strongest agentic Gemini. Matches official agy cli model list. Pricing approximate.",
294
- "aliases": ["gemini-3.1-pro", "gemini-3.1-pro-preview"],
295
- "supports_vision": true
408
+ "default_reasoning_effort": "medium",
409
+ "description": "Subscription version of GLM-5.1 fifth-generation model.",
410
+ "aliases": ["glm-5.1-go"],
411
+ "supports_vision": false,
412
+ "roles": ["implement", "research"],
413
+ "native_web_research": false,
414
+ "web_research_kind": null
296
415
  },
297
416
  {
298
- "id": "gemini-3.1-pro-low",
299
- "name": "Gemini 3.1 Pro (Low)",
300
- "provider": "google",
301
- "tier": "premium",
302
- "context_window": 1048576,
303
- "max_output_tokens": 65536,
304
- "input_price_per_million": 2.0,
305
- "output_price_per_million": 12.0,
306
- "reasoning": true,
307
- "thinking_type": "enabled",
308
- "supports_effort": true,
309
- "default_reasoning_effort": "low",
310
- "description": "Agy-supported Gemini 3.1 Pro Low via Agy OAuth (cloudcode-pa). Matches official agy cli model list.",
311
- "aliases": ["gemini-3.1-pro-low"],
312
- "supports_vision": true
417
+ "id": "opencode/minimax-m3",
418
+ "name": "MiniMax M3 (OpenCode Go)",
419
+ "provider": "opencode-go",
420
+ "tier": "balanced",
421
+ "context_window": 128000,
422
+ "max_output_tokens": 8192,
423
+ "input_price_per_million": 0,
424
+ "output_price_per_million": 0,
425
+ "reasoning": false,
426
+ "thinking_type": null,
427
+ "supports_effort": false,
428
+ "default_reasoning_effort": null,
429
+ "description": "Subscription model specialized for high-quality structured generation.",
430
+ "aliases": ["minimax-m3-go"],
431
+ "supports_vision": false,
432
+ "native_web_research": false,
433
+ "web_research_kind": null
313
434
  },
314
435
  {
315
- "id": "gemini-3-flash",
316
- "name": "Gemini 3 Flash",
317
- "provider": "google",
318
- "tier": "fast",
319
- "context_window": 1048576,
320
- "max_output_tokens": 65536,
321
- "input_price_per_million": 0.3,
322
- "output_price_per_million": 2.0,
323
- "reasoning": true,
324
- "thinking_type": "enabled",
436
+ "id": "opencode/minimax-m2.7",
437
+ "name": "MiniMax M2.7 (OpenCode Go)",
438
+ "provider": "opencode-go",
439
+ "tier": "balanced",
440
+ "context_window": 128000,
441
+ "max_output_tokens": 8192,
442
+ "input_price_per_million": 0,
443
+ "output_price_per_million": 0,
444
+ "reasoning": false,
445
+ "thinking_type": null,
325
446
  "supports_effort": false,
326
447
  "default_reasoning_effort": null,
327
- "description": "Agy-supported Gemini 3 Flash via Agy OAuth (cloudcode-pa). Multimodal. Matches official agy cli model list.",
328
- "aliases": ["gemini-3-flash"],
329
- "supports_vision": true
448
+ "description": "Subscription model for fast and cost-effective generation.",
449
+ "aliases": ["minimax-m2.7-go"],
450
+ "supports_vision": false,
451
+ "native_web_research": false,
452
+ "web_research_kind": null
330
453
  },
331
454
  {
332
- "id": "claude-sonnet-4.6-thinking",
333
- "name": "Claude Sonnet 4.6 (Thinking)",
334
- "provider": "google",
455
+ "id": "opencode/qwen-3.7-max",
456
+ "name": "Qwen 3.7 Max (OpenCode Go)",
457
+ "provider": "opencode-go",
335
458
  "tier": "premium",
336
- "context_window": 200000,
337
- "max_output_tokens": 32000,
338
- "input_price_per_million": 3.0,
339
- "output_price_per_million": 15.0,
459
+ "context_window": 128000,
460
+ "max_output_tokens": 8192,
461
+ "input_price_per_million": 0,
462
+ "output_price_per_million": 0,
340
463
  "reasoning": true,
341
464
  "thinking_type": "enabled",
342
465
  "supports_effort": true,
343
466
  "default_reasoning_effort": "medium",
344
- "description": "Agy-supported Claude Sonnet 4.6 Thinking via Agy OAuth (cloudcode-pa backend proxy). Matches official agy cli model list.",
345
- "aliases": ["claude-sonnet-4-6-thinking", "claude-4.6-sonnet-thinking"],
346
- "supports_vision": true
467
+ "description": "Subscription version of Qwen's top-tier reasoning coding model.",
468
+ "aliases": ["qwen-3.7-max-go"],
469
+ "supports_vision": false,
470
+ "roles": ["leader", "implement", "verify"],
471
+ "native_web_research": false,
472
+ "web_research_kind": null
347
473
  },
348
474
  {
349
- "id": "claude-opus-4.6-thinking",
350
- "name": "Claude Opus 4.6 (Thinking)",
351
- "provider": "google",
352
- "tier": "premium",
353
- "context_window": 200000,
354
- "max_output_tokens": 32000,
355
- "input_price_per_million": 15.0,
356
- "output_price_per_million": 75.0,
357
- "reasoning": true,
358
- "thinking_type": "enabled",
359
- "supports_effort": true,
360
- "default_reasoning_effort": "medium",
361
- "description": "Agy-supported Claude Opus 4.6 Thinking via Agy OAuth (cloudcode-pa backend proxy). Matches official agy cli model list.",
362
- "aliases": ["claude-opus-4-6-thinking", "claude-4.6-opus-thinking"],
363
- "supports_vision": true
475
+ "id": "opencode/qwen-3.7-plus",
476
+ "name": "Qwen 3.7 Plus (OpenCode Go)",
477
+ "provider": "opencode-go",
478
+ "tier": "balanced",
479
+ "context_window": 128000,
480
+ "max_output_tokens": 8192,
481
+ "input_price_per_million": 0,
482
+ "output_price_per_million": 0,
483
+ "reasoning": false,
484
+ "thinking_type": null,
485
+ "supports_effort": false,
486
+ "default_reasoning_effort": null,
487
+ "description": "Subscription version of Qwen 3.7 Plus coding model.",
488
+ "aliases": ["qwen-3.7-plus-go"],
489
+ "supports_vision": false,
490
+ "roles": ["implement", "verify", "research"],
491
+ "native_web_research": false,
492
+ "web_research_kind": null
364
493
  },
365
494
  {
366
- "id": "gpt-oss-120b-medium",
367
- "name": "GPT-OSS 120B (Medium)",
368
- "provider": "google",
495
+ "id": "opencode/qwen-3.6-plus",
496
+ "name": "Qwen 3.6 Plus (OpenCode Go)",
497
+ "provider": "opencode-go",
369
498
  "tier": "balanced",
370
499
  "context_window": 128000,
371
- "max_output_tokens": 32000,
372
- "input_price_per_million": 0.2,
373
- "output_price_per_million": 0.8,
374
- "reasoning": true,
375
- "thinking_type": "enabled",
376
- "supports_effort": true,
377
- "default_reasoning_effort": "medium",
378
- "description": "Agy-supported GPT-OSS 120B Medium via Agy OAuth (cloudcode-pa). Matches official agy cli model list.",
379
- "aliases": ["gpt-oss-120b", "gpt-oss-medium"],
380
- "supports_vision": false
500
+ "max_output_tokens": 8192,
501
+ "input_price_per_million": 0,
502
+ "output_price_per_million": 0,
503
+ "reasoning": false,
504
+ "thinking_type": null,
505
+ "supports_effort": false,
506
+ "default_reasoning_effort": null,
507
+ "description": "Subscription version of Qwen 3.6 Plus coding model.",
508
+ "aliases": ["qwen-3.6-plus-go"],
509
+ "supports_vision": false,
510
+ "native_web_research": false,
511
+ "web_research_kind": null
381
512
  },
382
513
  {
383
- "id": "grok-4.3",
384
- "name": "Grok 4.3 (xAI)",
385
- "provider": "xai",
514
+ "id": "opencode/deepseek-v4-pro",
515
+ "name": "DeepSeek V4 Pro (OpenCode Go)",
516
+ "provider": "opencode-go",
386
517
  "tier": "premium",
387
- "context_window": 1048576,
388
- "max_output_tokens": 32768,
389
- "input_price_per_million": 1.25,
390
- "output_price_per_million": 2.5,
518
+ "context_window": 128000,
519
+ "max_output_tokens": 16000,
520
+ "input_price_per_million": 0,
521
+ "output_price_per_million": 0,
391
522
  "reasoning": true,
392
523
  "thinking_type": "enabled",
393
524
  "supports_effort": true,
394
525
  "default_reasoning_effort": "medium",
395
- "description": "xAI's current flagship. Excellent agentic tool-calling, low hallucination, supports reasoning + non-reasoning mode. 1M token context. Recommended default for Grok CLI.",
396
- "aliases": ["grok-4.3", "grok-latest", "grok-4"],
397
- "supports_vision": true
526
+ "description": "Subscription version of DeepSeek's flagship coding model.",
527
+ "aliases": ["deepseek-v4-pro-go"],
528
+ "supports_vision": false,
529
+ "roles": ["leader", "implement", "verify", "research"],
530
+ "native_web_research": false,
531
+ "web_research_kind": null
398
532
  },
399
533
  {
400
- "id": "grok-build-0.1",
401
- "name": "Grok Build 0.1 (xAI)",
402
- "provider": "xai",
403
- "tier": "balanced",
404
- "context_window": 262144,
405
- "max_output_tokens": 65536,
406
- "input_price_per_million": 1.0,
407
- "output_price_per_million": 2.0,
534
+ "id": "opencode/deepseek-v4-flash",
535
+ "name": "DeepSeek V4 Flash (OpenCode Go)",
536
+ "provider": "opencode-go",
537
+ "tier": "fast",
538
+ "context_window": 128000,
539
+ "max_output_tokens": 8000,
540
+ "input_price_per_million": 0,
541
+ "output_price_per_million": 0,
408
542
  "reasoning": true,
409
543
  "thinking_type": "enabled",
410
544
  "supports_effort": false,
411
545
  "default_reasoning_effort": null,
412
- "description": "Specialized fast coding model optimized for agentic coding workflows. The model powering Grok Build CLI. Well-suited for programming, debugging, and multi-step tasks.",
413
- "aliases": ["grok-build", "grok-code-fast", "grok-build-0.1"],
414
- "supports_vision": true
546
+ "description": "Subscription version of DeepSeek's fast reasoning model via OpenCode Go (Console Go proxy). Shares rate limits with other subscribers — heavy tool use or long sessions often hit 'Provider rate limit exceeded'. For sustained work prefer native `-m deepseek-v4-flash`.",
547
+ "aliases": ["deepseek-v4-flash-go"],
548
+ "supports_vision": false,
549
+ "roles": ["research", "implement", "verify"],
550
+ "native_web_research": false,
551
+ "web_research_kind": null
552
+ },
553
+ {
554
+ "id": "opencode/mimo-v2.5",
555
+ "name": "MiMo V2.5 (OpenCode Go)",
556
+ "provider": "opencode-go",
557
+ "tier": "fast",
558
+ "context_window": 128000,
559
+ "max_output_tokens": 8192,
560
+ "input_price_per_million": 0,
561
+ "output_price_per_million": 0,
562
+ "reasoning": false,
563
+ "thinking_type": null,
564
+ "supports_effort": false,
565
+ "default_reasoning_effort": null,
566
+ "description": "Fast and lightweight coding model.",
567
+ "aliases": ["mimo-v2.5-go"],
568
+ "supports_vision": false,
569
+ "native_web_research": false,
570
+ "web_research_kind": null
571
+ },
572
+ {
573
+ "id": "opencode/mimo-v2.5-pro",
574
+ "name": "MiMo V2.5 Pro (OpenCode Go)",
575
+ "provider": "opencode-go",
576
+ "tier": "balanced",
577
+ "context_window": 128000,
578
+ "max_output_tokens": 8192,
579
+ "input_price_per_million": 0,
580
+ "output_price_per_million": 0,
581
+ "reasoning": false,
582
+ "thinking_type": null,
583
+ "supports_effort": false,
584
+ "default_reasoning_effort": null,
585
+ "description": "Subscription model specialized for multi-step structured coding.",
586
+ "aliases": ["mimo-v2.5-pro-go"],
587
+ "supports_vision": false,
588
+ "native_web_research": false,
589
+ "web_research_kind": null
590
+ }
591
+ ],
592
+ "routing": {
593
+ "switch_provider_order": ["deepseek", "zai", "opencode-go", "xai"],
594
+ "vision_proxy": {
595
+ "default": {
596
+ "provider": "zai",
597
+ "model_id": "glm-4.6v-flash"
598
+ },
599
+ "ocr": {
600
+ "provider": "zai",
601
+ "model_id": "glm-4.6v-flash"
602
+ },
603
+ "design": {
604
+ "provider": "zai",
605
+ "model_id": "glm-5.2"
606
+ },
607
+ "fallback_chain": [
608
+ {
609
+ "provider": "xai",
610
+ "model_id": "grok-4.5"
611
+ },
612
+ {
613
+ "provider": "zai",
614
+ "model_id": "glm-5.2"
615
+ }
616
+ ]
617
+ },
618
+ "council": {
619
+ "prefer_multi_provider": true,
620
+ "participants": [
621
+ {
622
+ "role": "implement",
623
+ "provider": "deepseek",
624
+ "tier": "balanced",
625
+ "model_id": "deepseek-v4-flash"
626
+ },
627
+ {
628
+ "role": "verify",
629
+ "provider": "zai",
630
+ "tier": "premium",
631
+ "model_id": "glm-5.2"
632
+ },
633
+ {
634
+ "role": "research",
635
+ "provider": "opencode-go",
636
+ "tier": "balanced",
637
+ "model_id": "opencode/kimi-k2.7-code"
638
+ }
639
+ ]
640
+ }
641
+ },
642
+ "provider_policies": {
643
+ "zai": {
644
+ "peak_hour": {
645
+ "source_url": "https://docs.z.ai/devpack/overview",
646
+ "source_verified_at": "2026-07-01",
647
+ "timezone": "Asia/Shanghai",
648
+ "start_hour": 14,
649
+ "end_hour": 18,
650
+ "peak_quota_multiplier": 3,
651
+ "off_peak_quota_multiplier": 2,
652
+ "sensitive_model_ids": ["glm-5.2", "glm-5-turbo", "glm-5", "glm-5.1", "glm-5v-turbo"],
653
+ "fallback_model_id": "glm-4.7",
654
+ "switch_fallback_providers": ["deepseek", "opencode-go", "xai"]
655
+ }
656
+ },
657
+ "deepseek": {
658
+ "peak_hour": {
659
+ "source_url": "https://api-docs.deepseek.com/quick_start/rate_limit",
660
+ "source_verified_at": "2026-07-01",
661
+ "timezone": "Asia/Shanghai",
662
+ "policy_basis": "official",
663
+ "policy_note": "Peak-valley pricing per DeepSeek Team announcement (mid-July V4 release). UTC: 01:00–04:00 and 06:00–10:00; UTC+8: 09:00–12:00 and 14:00–18:00. Peak prices 2x regular for v4-pro and v4-flash.",
664
+ "windows": [
665
+ {
666
+ "start_hour": 9,
667
+ "end_hour": 12
668
+ },
669
+ {
670
+ "start_hour": 14,
671
+ "end_hour": 18
672
+ }
673
+ ],
674
+ "sensitive_model_ids": ["deepseek-v4-pro"],
675
+ "fallback_model_id": "deepseek-v4-flash",
676
+ "switch_fallback_providers": ["zai", "opencode-go", "xai"]
677
+ }
415
678
  }
416
- ]
679
+ }
417
680
  }