aura-code 0.5.0 → 0.10.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 (294) hide show
  1. package/README.md +47 -164
  2. package/dist/agent/affect.d.ts +13 -0
  3. package/dist/agent/affect.js +34 -0
  4. package/dist/agent/affect.js.map +1 -0
  5. package/dist/agent/compactor.d.ts +27 -4
  6. package/dist/agent/compactor.js +185 -54
  7. package/dist/agent/compactor.js.map +1 -1
  8. package/dist/agent/confess.d.ts +35 -0
  9. package/dist/agent/confess.js +296 -0
  10. package/dist/agent/confess.js.map +1 -0
  11. package/dist/agent/domain-expertise.d.ts +22 -0
  12. package/dist/agent/domain-expertise.js +110 -0
  13. package/dist/agent/domain-expertise.js.map +1 -0
  14. package/dist/agent/executive-queue.d.ts +26 -0
  15. package/dist/agent/executive-queue.js +50 -0
  16. package/dist/agent/executive-queue.js.map +1 -0
  17. package/dist/agent/generational-flush.d.ts +28 -0
  18. package/dist/agent/generational-flush.js +48 -0
  19. package/dist/agent/generational-flush.js.map +1 -0
  20. package/dist/agent/loop-profile.d.ts +50 -0
  21. package/dist/agent/loop-profile.js +88 -0
  22. package/dist/agent/loop-profile.js.map +1 -0
  23. package/dist/agent/loop.d.ts +14 -5
  24. package/dist/agent/loop.js +167 -23
  25. package/dist/agent/loop.js.map +1 -1
  26. package/dist/agent/memory-consolidate.d.ts +14 -0
  27. package/dist/agent/memory-consolidate.js +141 -0
  28. package/dist/agent/memory-consolidate.js.map +1 -0
  29. package/dist/agent/mixture.d.ts +33 -0
  30. package/dist/agent/mixture.js +138 -0
  31. package/dist/agent/mixture.js.map +1 -0
  32. package/dist/agent/spawner.js +2 -2
  33. package/dist/agent/spawner.js.map +1 -1
  34. package/dist/agent/system-prompt.d.ts +1 -1
  35. package/dist/agent/system-prompt.js +49 -13
  36. package/dist/agent/system-prompt.js.map +1 -1
  37. package/dist/agent/unified-memory.d.ts +15 -0
  38. package/dist/agent/unified-memory.js +164 -0
  39. package/dist/agent/unified-memory.js.map +1 -0
  40. package/dist/checkpoints/engine.d.ts +44 -0
  41. package/dist/checkpoints/engine.js +324 -0
  42. package/dist/checkpoints/engine.js.map +1 -0
  43. package/dist/cli/command-palette.d.ts +26 -0
  44. package/dist/cli/command-palette.js +133 -0
  45. package/dist/cli/command-palette.js.map +1 -0
  46. package/dist/cli/context-health.d.ts +51 -0
  47. package/dist/cli/context-health.js +187 -0
  48. package/dist/cli/context-health.js.map +1 -0
  49. package/dist/cli/diamond.d.ts +67 -0
  50. package/dist/cli/diamond.js +222 -12
  51. package/dist/cli/diamond.js.map +1 -1
  52. package/dist/cli/dic.d.ts +2 -0
  53. package/dist/cli/dic.js +106 -0
  54. package/dist/cli/dic.js.map +1 -0
  55. package/dist/cli/diff-view.d.ts +18 -0
  56. package/dist/cli/diff-view.js +114 -0
  57. package/dist/cli/diff-view.js.map +1 -0
  58. package/dist/cli/display.d.ts +18 -4
  59. package/dist/cli/display.js +74 -146
  60. package/dist/cli/display.js.map +1 -1
  61. package/dist/cli/help-data.d.ts +7 -0
  62. package/dist/cli/help-data.js +80 -0
  63. package/dist/cli/help-data.js.map +1 -0
  64. package/dist/cli/index.js +1001 -788
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/markdown.d.ts +5 -0
  67. package/dist/cli/markdown.js +128 -0
  68. package/dist/cli/markdown.js.map +1 -0
  69. package/dist/cli/model-select.d.ts +39 -0
  70. package/dist/cli/model-select.js +65 -0
  71. package/dist/cli/model-select.js.map +1 -0
  72. package/dist/cli/tui.d.ts +34 -0
  73. package/dist/cli/tui.js +1176 -0
  74. package/dist/cli/tui.js.map +1 -0
  75. package/dist/config/defaults.d.ts +6 -17
  76. package/dist/config/defaults.js +25 -39
  77. package/dist/config/defaults.js.map +1 -1
  78. package/dist/config/project-config.d.ts +2 -6
  79. package/dist/config/project-config.js +2 -2
  80. package/dist/config/project-config.js.map +1 -1
  81. package/dist/doctor/checks.d.ts +18 -0
  82. package/dist/doctor/checks.js +524 -0
  83. package/dist/doctor/checks.js.map +1 -0
  84. package/dist/doctor/index.d.ts +4 -0
  85. package/dist/doctor/index.js +229 -0
  86. package/dist/doctor/index.js.map +1 -0
  87. package/dist/doctor/repair.d.ts +19 -0
  88. package/dist/doctor/repair.js +126 -0
  89. package/dist/doctor/repair.js.map +1 -0
  90. package/dist/doctor/types.d.ts +38 -0
  91. package/dist/doctor/types.js +10 -0
  92. package/dist/doctor/types.js.map +1 -0
  93. package/dist/dream/dream.d.ts +79 -36
  94. package/dist/dream/dream.js +327 -117
  95. package/dist/dream/dream.js.map +1 -1
  96. package/dist/dream/episode.d.ts +17 -0
  97. package/dist/dream/episode.js +116 -0
  98. package/dist/dream/episode.js.map +1 -0
  99. package/dist/dream/okf.d.ts +10 -0
  100. package/dist/dream/okf.js +280 -0
  101. package/dist/dream/okf.js.map +1 -0
  102. package/dist/dream/parser.d.ts +60 -0
  103. package/dist/dream/parser.js +176 -0
  104. package/dist/dream/parser.js.map +1 -0
  105. package/dist/dream/reconcile.d.ts +69 -0
  106. package/dist/dream/reconcile.js +303 -0
  107. package/dist/dream/reconcile.js.map +1 -0
  108. package/dist/kanban/engine.d.ts +26 -0
  109. package/dist/kanban/engine.js +208 -0
  110. package/dist/kanban/engine.js.map +1 -0
  111. package/dist/kanban/types.d.ts +19 -0
  112. package/dist/kanban/types.js +9 -1
  113. package/dist/kanban/types.js.map +1 -1
  114. package/dist/machina/index.d.ts +16 -0
  115. package/dist/machina/index.js +61 -0
  116. package/dist/machina/index.js.map +1 -0
  117. package/dist/machina/render-html.d.ts +2 -0
  118. package/dist/machina/render-html.js +191 -0
  119. package/dist/machina/render-html.js.map +1 -0
  120. package/dist/machina/render-terminal.d.ts +2 -0
  121. package/dist/machina/render-terminal.js +99 -0
  122. package/dist/machina/render-terminal.js.map +1 -0
  123. package/dist/machina/repair.d.ts +23 -0
  124. package/dist/machina/repair.js +98 -0
  125. package/dist/machina/repair.js.map +1 -0
  126. package/dist/machina/spec.d.ts +61 -0
  127. package/dist/machina/spec.js +124 -0
  128. package/dist/machina/spec.js.map +1 -0
  129. package/dist/machina/verify.d.ts +39 -0
  130. package/dist/machina/verify.js +95 -0
  131. package/dist/machina/verify.js.map +1 -0
  132. package/dist/mining/extract.d.ts +34 -0
  133. package/dist/mining/extract.js +229 -0
  134. package/dist/mining/extract.js.map +1 -0
  135. package/dist/mining/refine.d.ts +28 -0
  136. package/dist/mining/refine.js +256 -0
  137. package/dist/mining/refine.js.map +1 -0
  138. package/dist/perception/extractor.js +5 -3
  139. package/dist/perception/extractor.js.map +1 -1
  140. package/dist/perception/graph-store.d.ts +0 -11
  141. package/dist/perception/graph-store.js +0 -33
  142. package/dist/perception/graph-store.js.map +1 -1
  143. package/dist/perception/index.d.ts +1 -1
  144. package/dist/perception/index.js +1 -2
  145. package/dist/perception/index.js.map +1 -1
  146. package/dist/plugins/commands.d.ts +38 -0
  147. package/dist/plugins/commands.js +134 -0
  148. package/dist/plugins/commands.js.map +1 -0
  149. package/dist/plugins/frontmatter.d.ts +14 -0
  150. package/dist/plugins/frontmatter.js +78 -0
  151. package/dist/plugins/frontmatter.js.map +1 -0
  152. package/dist/plugins/hooks.d.ts +12 -0
  153. package/dist/plugins/hooks.js +148 -0
  154. package/dist/plugins/hooks.js.map +1 -0
  155. package/dist/plugins/loader.d.ts +7 -0
  156. package/dist/plugins/loader.js +255 -0
  157. package/dist/plugins/loader.js.map +1 -0
  158. package/dist/plugins/market.d.ts +23 -0
  159. package/dist/plugins/market.js +281 -0
  160. package/dist/plugins/market.js.map +1 -0
  161. package/dist/plugins/types.d.ts +90 -0
  162. package/dist/plugins/types.js +20 -0
  163. package/dist/plugins/types.js.map +1 -0
  164. package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
  165. package/dist/providers/anthropic-oauth-draft.js +414 -0
  166. package/dist/providers/anthropic-oauth-draft.js.map +1 -0
  167. package/dist/providers/anthropic.d.ts +4 -1
  168. package/dist/providers/anthropic.js +34 -6
  169. package/dist/providers/anthropic.js.map +1 -1
  170. package/dist/providers/factory.d.ts +71 -14
  171. package/dist/providers/factory.js +205 -124
  172. package/dist/providers/factory.js.map +1 -1
  173. package/dist/providers/google.js +8 -21
  174. package/dist/providers/google.js.map +1 -1
  175. package/dist/providers/live-models.d.ts +23 -0
  176. package/dist/providers/live-models.js +145 -0
  177. package/dist/providers/live-models.js.map +1 -0
  178. package/dist/providers/openai-compatible.d.ts +1 -12
  179. package/dist/providers/openai-compatible.js +71 -108
  180. package/dist/providers/openai-compatible.js.map +1 -1
  181. package/dist/providers/resilient-factory.js +1 -1
  182. package/dist/providers/resilient-factory.js.map +1 -1
  183. package/dist/rem/graph.d.ts +72 -0
  184. package/dist/rem/graph.js +139 -0
  185. package/dist/rem/graph.js.map +1 -0
  186. package/dist/rem/index.d.ts +16 -0
  187. package/dist/rem/index.js +60 -0
  188. package/dist/rem/index.js.map +1 -0
  189. package/dist/rem/render-html.d.ts +2 -0
  190. package/dist/rem/render-html.js +189 -0
  191. package/dist/rem/render-html.js.map +1 -0
  192. package/dist/rem/render-terminal.d.ts +4 -0
  193. package/dist/rem/render-terminal.js +94 -0
  194. package/dist/rem/render-terminal.js.map +1 -0
  195. package/dist/repl/queue.d.ts +22 -0
  196. package/dist/repl/queue.js +165 -0
  197. package/dist/repl/queue.js.map +1 -0
  198. package/dist/repl/side-channel.d.ts +23 -0
  199. package/dist/repl/side-channel.js +63 -0
  200. package/dist/repl/side-channel.js.map +1 -0
  201. package/dist/research/council.d.ts +5 -2
  202. package/dist/research/council.js +73 -10
  203. package/dist/research/council.js.map +1 -1
  204. package/dist/ruby/alternator.d.ts +11 -30
  205. package/dist/ruby/alternator.js +59 -38
  206. package/dist/ruby/alternator.js.map +1 -1
  207. package/dist/ruby/episode-capture.d.ts +0 -10
  208. package/dist/ruby/episode-capture.js +0 -33
  209. package/dist/ruby/episode-capture.js.map +1 -1
  210. package/dist/ruby/types.js +1 -1
  211. package/dist/ruby/types.js.map +1 -1
  212. package/dist/safety/path-jail.d.ts +17 -0
  213. package/dist/safety/path-jail.js +100 -0
  214. package/dist/safety/path-jail.js.map +1 -0
  215. package/dist/safety/permissions.d.ts +12 -21
  216. package/dist/safety/permissions.js +81 -216
  217. package/dist/safety/permissions.js.map +1 -1
  218. package/dist/safety/ssrf.d.ts +29 -0
  219. package/dist/safety/ssrf.js +185 -0
  220. package/dist/safety/ssrf.js.map +1 -0
  221. package/dist/server/index.js +64 -10
  222. package/dist/server/index.js.map +1 -1
  223. package/dist/setup/first-run.d.ts +0 -24
  224. package/dist/setup/first-run.js +10 -344
  225. package/dist/setup/first-run.js.map +1 -1
  226. package/dist/setup/key-store.d.ts +12 -0
  227. package/dist/setup/key-store.js +108 -0
  228. package/dist/setup/key-store.js.map +1 -0
  229. package/dist/setup/provider-registry.js +31 -18
  230. package/dist/setup/provider-registry.js.map +1 -1
  231. package/dist/setup/provider-test.d.ts +7 -0
  232. package/dist/setup/provider-test.js +73 -10
  233. package/dist/setup/provider-test.js.map +1 -1
  234. package/dist/setup/provider-wizard.d.ts +4 -1
  235. package/dist/setup/provider-wizard.js +92 -26
  236. package/dist/setup/provider-wizard.js.map +1 -1
  237. package/dist/setup/xiaomi.d.ts +1 -1
  238. package/dist/setup/xiaomi.js +3 -3
  239. package/dist/setup/xiaomi.js.map +1 -1
  240. package/dist/tools/browser.js +6 -4
  241. package/dist/tools/browser.js.map +1 -1
  242. package/dist/tools/clipboard.js +7 -1
  243. package/dist/tools/clipboard.js.map +1 -1
  244. package/dist/tools/dictate.d.ts +60 -0
  245. package/dist/tools/dictate.js +983 -0
  246. package/dist/tools/dictate.js.map +1 -0
  247. package/dist/tools/dictate_patched.js +1057 -0
  248. package/dist/tools/edit-file.js +10 -2
  249. package/dist/tools/edit-file.js.map +1 -1
  250. package/dist/tools/gmail-tool.d.ts +5 -1
  251. package/dist/tools/gmail-tool.js +151 -11
  252. package/dist/tools/gmail-tool.js.map +1 -1
  253. package/dist/tools/http-request.js +14 -4
  254. package/dist/tools/http-request.js.map +1 -1
  255. package/dist/tools/image-read.js +34 -2
  256. package/dist/tools/image-read.js.map +1 -1
  257. package/dist/tools/index.d.ts +16 -1
  258. package/dist/tools/index.js +59 -8
  259. package/dist/tools/index.js.map +1 -1
  260. package/dist/tools/mcp.js +12 -0
  261. package/dist/tools/mcp.js.map +1 -1
  262. package/dist/tools/read-file.js +10 -14
  263. package/dist/tools/read-file.js.map +1 -1
  264. package/dist/tools/telegram-audio-policy.d.ts +30 -0
  265. package/dist/tools/telegram-audio-policy.js +49 -0
  266. package/dist/tools/telegram-audio-policy.js.map +1 -0
  267. package/dist/tools/telegram-bot.js +1136 -539
  268. package/dist/tools/telegram-bot.js.map +1 -1
  269. package/dist/tools/telegram-voice.d.ts +18 -5
  270. package/dist/tools/telegram-voice.js +54 -12
  271. package/dist/tools/telegram-voice.js.map +1 -1
  272. package/dist/tools/telegram.d.ts +3 -3
  273. package/dist/tools/telegram.js +5 -84
  274. package/dist/tools/telegram.js.map +1 -1
  275. package/dist/tools/tools.d.ts +2 -14
  276. package/dist/tools/tools.js +79 -144
  277. package/dist/tools/tools.js.map +1 -1
  278. package/dist/tools/web-fetch.js +39 -7
  279. package/dist/tools/web-fetch.js.map +1 -1
  280. package/dist/tools/web-search.js +2 -3
  281. package/dist/tools/web-search.js.map +1 -1
  282. package/dist/util/errors.js +1 -15
  283. package/dist/util/errors.js.map +1 -1
  284. package/dist/util/json-repair.d.ts +11 -0
  285. package/dist/util/json-repair.js +31 -0
  286. package/dist/util/json-repair.js.map +1 -0
  287. package/dist/util/rate-limiter.js +2 -8
  288. package/dist/util/rate-limiter.js.map +1 -1
  289. package/dist/viz/index.js +793 -792
  290. package/dist/viz/index.js.map +1 -1
  291. package/dist/viz/reader.d.ts +33 -0
  292. package/dist/viz/reader.js +343 -0
  293. package/dist/viz/reader.js.map +1 -0
  294. package/package.json +13 -32
@@ -33,30 +33,39 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CONTEXT_WINDOWS = exports.KNOWN_MODELS = void 0;
36
+ exports.KNOWN_MODELS = exports.ZHIPU_CODING_BASE_URL = exports.ZHIPU_GENERAL_BASE_URL = void 0;
37
37
  exports.registerCustomProviders = registerCustomProviders;
38
38
  exports.getCustomProviders = getCustomProviders;
39
+ exports.getContextWindow = getContextWindow;
40
+ exports.apiKeyEnvVarForModel = apiKeyEnvVarForModel;
39
41
  exports.detectProviderKind = detectProviderKind;
40
42
  exports.modelProviderFamily = modelProviderFamily;
41
- exports.apiKeyEnvVarForModel = apiKeyEnvVarForModel;
42
43
  exports.getApiKeyForModel = getApiKeyForModel;
43
44
  exports.resolveProviderTransport = resolveProviderTransport;
45
+ exports.resolveTaskModelBaseUrl = resolveTaskModelBaseUrl;
44
46
  exports.createProvider = createProvider;
45
47
  exports.getAllModels = getAllModels;
46
- exports.getContextWindow = getContextWindow;
47
48
  exports.checkOllamaHealth = checkOllamaHealth;
48
49
  exports.isModelConfigured = isModelConfigured;
49
50
  const anthropic_js_1 = require("./anthropic.js");
50
51
  const openai_compatible_js_1 = require("./openai-compatible.js");
51
52
  const google_js_1 = require("./google.js");
52
53
  const env_js_1 = require("../util/env.js");
53
- const http = __importStar(require("http"));
54
+ const live_models_js_1 = require("./live-models.js");
55
+ const provider_registry_js_1 = require("../setup/provider-registry.js");
56
+ const xiaomi_js_1 = require("../setup/xiaomi.js");
57
+ // Circular with provider-wizard (it imports the ZHIPU_* consts below) — safe
58
+ // because both sides only touch the other's exports inside function bodies.
54
59
  const provider_wizard_js_1 = require("../setup/provider-wizard.js");
55
60
  const global_config_js_1 = require("../setup/global-config.js");
56
- const defaults_js_1 = require("../config/defaults.js");
61
+ const http = __importStar(require("http"));
57
62
  // ─────────────────────────────────────────────────────────────────────────────
58
63
  // Custom provider registry (populated from .aura.json or programmatically)
59
64
  // ─────────────────────────────────────────────────────────────────────────────
65
+ /** Zhipu (Z.ai) General/International endpoint — pay-as-you-go API keys. */
66
+ exports.ZHIPU_GENERAL_BASE_URL = 'https://api.z.ai/api/paas/v4';
67
+ /** Zhipu (Z.ai) Coding Plan endpoint — GLM Coding Plan subscription quota. */
68
+ exports.ZHIPU_CODING_BASE_URL = 'https://api.z.ai/api/coding/paas/v4';
60
69
  let customProviders = [];
61
70
  /**
62
71
  * Register custom providers from .aura.json or any other source.
@@ -69,6 +78,66 @@ function registerCustomProviders(providers) {
69
78
  function getCustomProviders() {
70
79
  return customProviders;
71
80
  }
81
+ /**
82
+ * Strip Aura's internal routing prefixes from a model id so it can be looked
83
+ * up against registry entries (which store unprefixed ids).
84
+ */
85
+ function stripRoutingPrefix(model) {
86
+ return model.replace(/^(opencode|zen|zhipu(-coding)?|ollama|local|lmstudio|xai|xiaomi|mimo|go-anthropic|local-profile)\//, '');
87
+ }
88
+ /**
89
+ * Context window (in tokens) for a model, from the provider registry.
90
+ * Returns undefined for unknown models — callers supply their own default.
91
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
92
+ */
93
+ function getContextWindow(model) {
94
+ // Lazy import would be circular-safe, but provider-registry has no factory
95
+ // dependency, so a static import is fine (see top of file).
96
+ const candidates = [model, stripRoutingPrefix(model)];
97
+ for (const entry of provider_registry_js_1.PROVIDER_REGISTRY) {
98
+ for (const m of entry.models) {
99
+ if (candidates.includes(m.id) && m.contextWindow > 0)
100
+ return m.contextWindow;
101
+ }
102
+ }
103
+ return undefined;
104
+ }
105
+ /**
106
+ * Env var name whose value holds the API key for a given model id, matching
107
+ * createProvider's routing rules. Custom providers (registered from
108
+ * .aura.json) win over built-in prefixes. Returns undefined for models that
109
+ * need no key (ollama/local) or aren't recognized.
110
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
111
+ */
112
+ function apiKeyEnvVarForModel(model) {
113
+ const m = model.toLowerCase();
114
+ for (const p of customProviders) {
115
+ if (p.apiKeyEnv && (p.prefixes ?? []).some(pre => m.startsWith(pre.toLowerCase()))) {
116
+ return p.apiKeyEnv;
117
+ }
118
+ }
119
+ if (m.startsWith('go-anthropic/'))
120
+ return 'OPENCODE_GO_API_KEY';
121
+ if (m.startsWith('opencode/') || m.startsWith('zen/'))
122
+ return 'OPENCODE_API_KEY';
123
+ if (m.startsWith('deepseek/') || m.startsWith('deepseek-'))
124
+ return 'DEEPSEEK_API_KEY';
125
+ if (m.startsWith('glm-') || m.startsWith('zhipu'))
126
+ return 'ZHIPU_API_KEY';
127
+ if (m.startsWith('mimo-') || m.startsWith('mimo/') || m.startsWith('xiaomi/'))
128
+ return 'XIAOMI_API_KEY';
129
+ if (m.startsWith('gpt-') || m.startsWith('o1') || m.startsWith('o3') || m.startsWith('o4'))
130
+ return 'OPENAI_API_KEY';
131
+ if (m.startsWith('claude') || m.startsWith('anthropic'))
132
+ return 'ANTHROPIC_API_KEY';
133
+ if (m.startsWith('gemini'))
134
+ return 'GOOGLE_API_KEY';
135
+ if (m.includes('grok') || m.startsWith('xai/'))
136
+ return 'XAI_API_KEY';
137
+ if (m.startsWith('openrouter/'))
138
+ return 'OPENROUTER_API_KEY';
139
+ return undefined;
140
+ }
72
141
  /**
73
142
  * Detect which provider class would handle a given model name.
74
143
  * Exported so the resilience layer can pre-build the right class.
@@ -88,6 +157,8 @@ function modelProviderFamily(modelId) {
88
157
  return 'deepseek';
89
158
  if (m.startsWith('mimo-') || m.startsWith('xiaomi/') || m.startsWith('mimo/'))
90
159
  return 'xiaomi';
160
+ if (m.startsWith('glm-') || m.startsWith('zhipu/') || m.startsWith('zhipu-coding/'))
161
+ return 'zhipu';
91
162
  if (m.startsWith('claude-'))
92
163
  return 'anthropic';
93
164
  if (m.startsWith('gemini-'))
@@ -96,7 +167,7 @@ function modelProviderFamily(modelId) {
96
167
  return 'openrouter';
97
168
  if (m.startsWith('grok-') || m.startsWith('xai/'))
98
169
  return 'xai';
99
- if (m.startsWith('opencode/') || m.startsWith('zen/'))
170
+ if (m.startsWith('opencode/') || m.startsWith('zen/') || m.startsWith('go-anthropic/'))
100
171
  return 'opencode';
101
172
  if (m.startsWith('ollama/'))
102
173
  return 'ollama';
@@ -105,6 +176,7 @@ function modelProviderFamily(modelId) {
105
176
  const FAMILY_API_KEY_ENV = {
106
177
  deepseek: 'DEEPSEEK_API_KEY',
107
178
  xiaomi: 'XIAOMI_API_KEY',
179
+ zhipu: 'ZHIPU_API_KEY',
108
180
  anthropic: 'ANTHROPIC_API_KEY',
109
181
  google: 'GOOGLE_API_KEY',
110
182
  openrouter: 'OPENROUTER_API_KEY',
@@ -112,15 +184,6 @@ const FAMILY_API_KEY_ENV = {
112
184
  opencode: 'OPENCODE_API_KEY',
113
185
  'openai-compatible': 'OPENAI_API_KEY',
114
186
  };
115
- /**
116
- * The name of the environment variable that holds the API key for a given
117
- * model's provider family (e.g. "deepseek/..." → "DEEPSEEK_API_KEY"). Returns
118
- * the key's *name*, not its value — used by setup wizards to tell the user
119
- * which variable to set. Falls back to OPENAI_API_KEY for unknown families.
120
- */
121
- function apiKeyEnvVarForModel(model) {
122
- return FAMILY_API_KEY_ENV[modelProviderFamily(model)] ?? 'OPENAI_API_KEY';
123
- }
124
187
  /**
125
188
  * Resolves an API key for a given model, trying that model's own provider
126
189
  * family first — falling back to other configured keys only as a last
@@ -128,6 +191,7 @@ function apiKeyEnvVarForModel(model) {
128
191
  * then..." chain: that ordering picks whichever key happens to exist first,
129
192
  * completely independent of which model is actually being called, which is
130
193
  * exactly how a MiMo model string ends up paired with a DeepSeek key.
194
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
131
195
  */
132
196
  function getApiKeyForModel(model) {
133
197
  const family = modelProviderFamily(model);
@@ -162,10 +226,13 @@ function getApiKeyForModel(model) {
162
226
  const KNOWN_PROVIDER_BASE_URLS = {
163
227
  'https://api.deepseek.com/v1': 'deepseek',
164
228
  'https://token-plan-sgp.xiaomimimo.com/v1': 'xiaomi',
229
+ [exports.ZHIPU_GENERAL_BASE_URL]: 'zhipu',
230
+ [exports.ZHIPU_CODING_BASE_URL]: 'zhipu',
165
231
  'https://api.anthropic.com': 'anthropic',
166
232
  'https://generativelanguage.googleapis.com/v1beta': 'google',
167
233
  'https://openrouter.ai/api/v1': 'openrouter',
168
234
  'https://api.x.ai/v1': 'xai',
235
+ 'https://opencode.ai/zen/v1': 'opencode',
169
236
  };
170
237
  function baseUrlFamily(url) {
171
238
  if (!url)
@@ -174,6 +241,7 @@ function baseUrlFamily(url) {
174
241
  }
175
242
  /**
176
243
  * Drop baseUrl/apiKey from a different wizard setup so we never send DeepSeek to MiMo URL.
244
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
177
245
  */
178
246
  function resolveProviderTransport(model, opts) {
179
247
  const saved = (0, provider_wizard_js_1.loadProviderConfig)();
@@ -212,6 +280,31 @@ function resolveProviderTransport(model, opts) {
212
280
  }
213
281
  return { baseUrl, apiKey: opts.apiKey };
214
282
  }
283
+ /**
284
+ * Resolve which baseUrl (if any) should be trusted for a given task model,
285
+ * given a project-level config and/or a global config that each carry their
286
+ * own (model, baseUrl) pair.
287
+ *
288
+ * A saved config's baseUrl is only trustworthy if it was saved alongside
289
+ * the SAME model that's actually about to be called. Without this check, a
290
+ * project's .aura.json or the global config can hold a baseUrl from a
291
+ * previous provider setup (e.g. DeepSeek's https://api.deepseek.com/v1)
292
+ * that gets paired with whatever the task model resolves to NOW (e.g.
293
+ * opencode/big-pickle, from a later env-var override) — sending an
294
+ * OpenCode model name to DeepSeek's endpoint, which DeepSeek then rejects
295
+ * with a 400 ("supported API model names are deepseek-v4-pro or
296
+ * deepseek-v4-flash, but you passed big-pickle").
297
+ *
298
+ * Callers like telegram-bot.ts read the project fileConfig and the global
299
+ * config independently before ever reaching createProvider() — this guard
300
+ * covers those two sources.
301
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
302
+ */
303
+ function resolveTaskModelBaseUrl(opts) {
304
+ return opts.envBaseUrl
305
+ ?? (opts.fileConfig?.model === opts.taskModel ? opts.fileConfig?.baseUrl : undefined)
306
+ ?? (opts.globalCfg?.defaultModel === opts.taskModel ? opts.globalCfg?.baseUrl : undefined);
307
+ }
215
308
  /**
216
309
  * Auto-detect the right provider from the model name, then instantiate it.
217
310
  *
@@ -227,20 +320,15 @@ function resolveProviderTransport(model, opts) {
227
320
  */
228
321
  function createProvider(config) {
229
322
  const model = config.model.toLowerCase();
230
- config = { ...config, maxTokens: config.maxTokens ?? defaults_js_1.DEFAULTS.maxTokens };
231
- // ── Saved provider config (from provider wizard) ────────────────────────
232
- // Use saved baseUrl / apiKey as fallback when not explicitly provided.
233
- const savedCfg = (0, provider_wizard_js_1.loadProviderConfig)();
234
- if (savedCfg && !config.baseUrl) {
235
- const sameWizardModel = savedCfg.model === config.model;
236
- const sameXiaomiFamily = modelProviderFamily(savedCfg.model) === 'xiaomi'
237
- && modelProviderFamily(config.model) === 'xiaomi';
238
- if (sameWizardModel || sameXiaomiFamily) {
239
- config = { ...config, baseUrl: config.baseUrl ?? savedCfg.baseUrl };
240
- if (!config.apiKey && savedCfg.apiKey) {
241
- config = { ...config, apiKey: savedCfg.apiKey };
242
- }
243
- }
323
+ // ── OpenCode Go (Anthropic-style models at /v1/messages) ───────────────
324
+ if (model.startsWith('go-anthropic/')) {
325
+ const goModel = model.replace('go-anthropic/', '');
326
+ return new anthropic_js_1.AnthropicProvider({
327
+ ...config,
328
+ model: goModel,
329
+ baseUrl: config.baseUrl ?? 'https://opencode.ai/zen/go/v1',
330
+ apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('OPENCODE_GO_API_KEY'),
331
+ }, 'OpenCode Go');
244
332
  }
245
333
  // ── Custom providers (from .aura.json) ─────────────────────────────────
246
334
  for (const def of customProviders) {
@@ -251,8 +339,8 @@ function createProvider(config) {
251
339
  const stripPrefix = def.prefixes.find(p => p.endsWith('/') && model.startsWith(p.toLowerCase()));
252
340
  const rawModel = stripPrefix ? model.slice(stripPrefix.length) : model;
253
341
  const apiKey = config.apiKey
254
- ?? (def.apiKey ?? undefined)
255
- ?? (def.apiKeyEnv ? (0, env_js_1.getApiKey)(def.apiKeyEnv) : undefined);
342
+ ?? (def.apiKeyEnv ? (0, env_js_1.getApiKey)(def.apiKeyEnv) : undefined)
343
+ ?? (def.apiKey ?? undefined);
256
344
  return new openai_compatible_js_1.OpenAICompatibleProvider({
257
345
  ...config,
258
346
  model: rawModel || model,
@@ -281,22 +369,32 @@ function createProvider(config) {
281
369
  // ── Xiaomi MiMo ────────────────────────────────────────────────────────────
282
370
  if (model.startsWith('mimo-') || model.startsWith('xiaomi/') || model.startsWith('mimo/')) {
283
371
  const mimoModel = model.replace(/^(xiaomi|mimo)\//, '');
372
+ const mimoKey = config.apiKey ?? (0, env_js_1.getApiKey)('XIAOMI_API_KEY');
284
373
  return new openai_compatible_js_1.OpenAICompatibleProvider({
285
374
  ...config,
286
375
  model: mimoModel,
287
- baseUrl: config.baseUrl ?? (0, env_js_1.getEnv)('XIAOMI_BASE_URL') ?? 'https://token-plan-sgp.xiaomimimo.com/v1',
288
- apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('XIAOMI_API_KEY'),
376
+ // Key-type aware default: tp- keys → Token Plan endpoint, sk- keys
377
+ // pay-as-you-go api.xiaomimimo.com. A hardcoded token-plan URL used to
378
+ // send pay-as-you-go keys to the wrong host.
379
+ baseUrl: config.baseUrl ?? (0, env_js_1.getEnv)('XIAOMI_BASE_URL') ?? (0, xiaomi_js_1.defaultXiaomiBaseUrl)(mimoKey),
380
+ apiKey: mimoKey,
289
381
  }, 'Xiaomi MiMo');
290
382
  }
291
- // ── OpenCode Zen (OpenAI-compatible gateway) ──────────────────────────────
292
- if (model.startsWith('opencode/') || model.startsWith('zen/')) {
293
- const zenModel = model.replace(/^(opencode|zen)\//, '');
383
+ // ── Zhipu (Z.ai GLM) — two endpoints ───────────────────────────────────────
384
+ // glm-* / zhipu/* → General/International https://api.z.ai/api/paas/v4
385
+ // zhipu-coding/* → Coding Plan https://api.z.ai/api/coding/paas/v4
386
+ // ZHIPU_BASE_URL overrides either.
387
+ if (model.startsWith('glm-') || model.startsWith('zhipu/') || model.startsWith('zhipu-coding/')) {
388
+ const coding = model.startsWith('zhipu-coding/');
389
+ const glmModel = model.replace(/^zhipu(-coding)?\//, '');
294
390
  return new openai_compatible_js_1.OpenAICompatibleProvider({
295
391
  ...config,
296
- model: zenModel,
297
- baseUrl: config.baseUrl ?? (0, env_js_1.getEnv)('OPENCODE_BASE_URL') ?? 'https://opencode.ai/zen/v1',
298
- apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('OPENCODE_API_KEY'),
299
- }, 'OpenCode Zen');
392
+ model: glmModel,
393
+ baseUrl: config.baseUrl
394
+ ?? (0, env_js_1.getEnv)('ZHIPU_BASE_URL')
395
+ ?? (coding ? exports.ZHIPU_CODING_BASE_URL : exports.ZHIPU_GENERAL_BASE_URL),
396
+ apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('ZHIPU_API_KEY'),
397
+ }, 'Zhipu');
300
398
  }
301
399
  // ── xAI / Grok ─────────────────────────────────────────────────────────────
302
400
  if (model.startsWith('grok-') || model.startsWith('xai/')) {
@@ -307,6 +405,15 @@ function createProvider(config) {
307
405
  apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('XAI_API_KEY'),
308
406
  }, 'xAI');
309
407
  }
408
+ // ── DeepSeek ──────────────────────────────────────────────────────────────
409
+ if (model.startsWith('deepseek/')) {
410
+ return new openai_compatible_js_1.OpenAICompatibleProvider({
411
+ ...config,
412
+ model: model.replace('deepseek/', ''),
413
+ baseUrl: config.baseUrl ?? 'https://api.deepseek.com/v1',
414
+ apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('DEEPSEEK_API_KEY'),
415
+ }, 'DeepSeek');
416
+ }
310
417
  // ── Ollama (local) ─────────────────────────────────────────────────────────
311
418
  if (model.startsWith('ollama/') || model.startsWith('ollama:')) {
312
419
  const ollamaModel = model.replace(/^ollama[/:]/, '');
@@ -343,6 +450,15 @@ function createProvider(config) {
343
450
  /**
344
451
  * List of well-known model shortcuts for quick selection.
345
452
  * Used by `:models` in the REPL and by `--models` on the CLI.
453
+ *
454
+ * NOTE: Anthropic, OpenAI, Google, and OpenRouter entries here are a
455
+ * fallback only — getAllModels() prefers live-fetched lists for these
456
+ * four providers when available (see live-models.ts), since this static
457
+ * list goes stale fast. As of Feb 2026, OpenAI retired gpt-4o, gpt-4.1,
458
+ * gpt-4.1-mini, and o4-mini from the API. The Anthropic list below is
459
+ * also behind the current lineup — Claude Sonnet 5, Claude Opus 4.8, and
460
+ * Claude Fable 5 are the current generation as of this writing and are
461
+ * not listed statically; live fetch is what surfaces them.
346
462
  */
347
463
  exports.KNOWN_MODELS = [
348
464
  // ── Anthropic Claude ─────────────────────────────────────────────────────
@@ -352,7 +468,7 @@ exports.KNOWN_MODELS = [
352
468
  { id: 'claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet', provider: 'Anthropic', speed: 'Fast · legacy' },
353
469
  { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', provider: 'Anthropic', speed: 'Fastest · legacy' },
354
470
  { id: 'claude-3-opus-20240229', name: 'Claude 3 Opus', provider: 'Anthropic', speed: 'Powerful · legacy' },
355
- // ── OpenAI ──────────────────────────────────────────────────────────────
471
+ // ── OpenAI (offline fallback — prefer live fetch, see note above) ───────
356
472
  { id: 'gpt-4o', name: 'GPT-4o', provider: 'OpenAI', speed: 'Powerful · multimodal' },
357
473
  { id: 'gpt-4o-mini', name: 'GPT-4o mini', provider: 'OpenAI', speed: 'Fast · cheap' },
358
474
  { id: 'gpt-4-turbo', name: 'GPT-4 Turbo', provider: 'OpenAI', speed: 'Powerful · legacy' },
@@ -363,7 +479,7 @@ exports.KNOWN_MODELS = [
363
479
  { id: 'o3', name: 'o3', provider: 'OpenAI', speed: 'Reasoning · new flagship' },
364
480
  { id: 'o3-mini', name: 'o3-mini', provider: 'OpenAI', speed: 'Reasoning · fast' },
365
481
  { id: 'o4-mini', name: 'o4-mini', provider: 'OpenAI', speed: 'Reasoning · fastest' },
366
- // ── Google Gemini ───────────────────────────────────────────────────────
482
+ // ── Google Gemini (offline fallback — prefer live fetch, see note above) ─
367
483
  { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', provider: 'Google', speed: 'Powerful · long context' },
368
484
  { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', provider: 'Google', speed: 'Fast · cheap' },
369
485
  { id: 'gemini-2.0-pro', name: 'Gemini 2.0 Pro', provider: 'Google', speed: 'Powerful' },
@@ -374,14 +490,25 @@ exports.KNOWN_MODELS = [
374
490
  // ── Xiaomi MiMo ─────────────────────────────────────────────────────────
375
491
  { id: 'mimo-v2.5-pro', name: 'MiMo V2.5 Pro', provider: 'Xiaomi MiMo', speed: 'Powerful · 1T params' },
376
492
  { id: 'mimo-v2.5', name: 'MiMo V2.5', provider: 'Xiaomi MiMo', speed: 'Fast · 310B' },
377
- { id: 'mimo-v2-flash', name: 'MiMo V2 Flash', provider: 'Xiaomi MiMo', speed: 'Fastest · efficient' },
378
- { id: 'mimo-v1', name: 'MiMo V1', provider: 'Xiaomi MiMo', speed: 'Legacy' },
493
+ { id: 'mimo-v2-flash', name: 'MiMo V2 Flash', provider: 'Xiaomi MiMo', speed: 'Fastest · pay-as-you-go (sk-) keys only' },
494
+ { id: 'mimo-v1', name: 'MiMo V1', provider: 'Xiaomi MiMo', speed: 'Legacy · pay-as-you-go (sk-) keys only' },
495
+ // ── Zhipu (Z.ai GLM) — use zhipu-coding/<id> to route via the Coding Plan ─
496
+ { id: 'glm-5.2', name: 'GLM-5.2', provider: 'Zhipu', speed: 'Powerful · 1M context' },
497
+ { id: 'glm-5.1', name: 'GLM-5.1', provider: 'Zhipu', speed: 'Powerful · agentic' },
498
+ { id: 'glm-5', name: 'GLM-5', provider: 'Zhipu', speed: 'Powerful · 744B MoE' },
379
499
  // ── xAI Grok ────────────────────────────────────────────────────────────
380
500
  { id: 'grok-2', name: 'Grok 2', provider: 'xAI', speed: 'Powerful' },
381
501
  { id: 'grok-2-mini', name: 'Grok 2 mini', provider: 'xAI', speed: 'Fast · cheap' },
382
502
  { id: 'grok-beta', name: 'Grok Beta', provider: 'xAI', speed: 'Fast' },
383
503
  { id: 'grok-vision-beta', name: 'Grok Vision Beta', provider: 'xAI', speed: 'Multimodal' },
384
- // ── OpenRouter (any model from any provider, pay-as-you-go) ──────────────
504
+ // ── OpenCode Go (Anthropic-style models use go-anthropic/ prefix) ──────
505
+ { id: 'go-anthropic/minimax-m3', name: 'MiniMax M3 (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · agentic' },
506
+ { id: 'go-anthropic/minimax-m2.7', name: 'MiniMax M2.7 (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · fast' },
507
+ { id: 'go-anthropic/minimax-m2.5', name: 'MiniMax M2.5 (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · budget' },
508
+ { id: 'go-anthropic/qwen3.7-max', name: 'Qwen3.7 Max (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · powerful' },
509
+ { id: 'go-anthropic/qwen3.7-plus', name: 'Qwen3.7 Plus (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · balanced' },
510
+ { id: 'go-anthropic/qwen3.6-plus', name: 'Qwen3.6 Plus (Go)', provider: 'OpenCode Go', speed: 'Anthropic API · balanced' },
511
+ // ── OpenRouter (offline fallback — prefer live fetch, see note above) ────
385
512
  { id: 'openrouter/anthropic/claude-3.5-sonnet', name: 'Claude 3.5 Sonnet (OR)', provider: 'OpenRouter', speed: 'Fast' },
386
513
  { id: 'openrouter/anthropic/claude-3-opus', name: 'Claude 3 Opus (OR)', provider: 'OpenRouter', speed: 'Powerful' },
387
514
  { id: 'openrouter/openai/gpt-4o', name: 'GPT-4o (OR)', provider: 'OpenRouter', speed: 'Powerful' },
@@ -394,11 +521,10 @@ exports.KNOWN_MODELS = [
394
521
  { id: 'openrouter/mistralai/mixtral-8x7b-instruct', name: 'Mixtral 8x7B (OR)', provider: 'OpenRouter', speed: 'Open · fast' },
395
522
  { id: 'openrouter/qwen/qwen-2.5-72b-instruct', name: 'Qwen 2.5 72B (OR)', provider: 'OpenRouter', speed: 'Open · strong' },
396
523
  { id: 'openrouter/qwen/qwen-2.5-coder-32b-instruct', name: 'Qwen 2.5 Coder 32B (OR)', provider: 'OpenRouter', speed: 'Open · code' },
397
- { id: 'openrouter/deepseek/deepseek-v4-flash:free', name: 'DeepSeek V4 Flash (OR)', provider: 'OpenRouter', speed: 'Fast · 1M context · free' },
524
+ { id: 'openrouter/deepseek/deepseek-chat', name: 'DeepSeek V3 (OR)', provider: 'OpenRouter', speed: 'Open · strong' },
398
525
  { id: 'openrouter/deepseek/deepseek-r1', name: 'DeepSeek R1 (OR)', provider: 'OpenRouter', speed: 'Reasoning · open' },
399
- { id: 'openrouter/deepseek/deepseek-v4-pro', name: 'DeepSeek V4 Pro (OR)', provider: 'OpenRouter', speed: 'Powerful · 1M context' },
526
+ { id: 'openrouter/deepseek/deepseek-v4-pro', name: 'DeepSeek V4 Pro (OR)', provider: 'OpenRouter', speed: 'Powerful · open' },
400
527
  { id: 'openrouter/google/gemma-2-27b-it', name: 'Gemma 2 27B (OR)', provider: 'OpenRouter', speed: 'Open · fast' },
401
- { id: 'openrouter/nex-agi/nex-n2-pro:free', name: 'Nex N2 Pro (OR)', provider: 'OpenRouter', speed: 'Free · open' },
402
528
  // ── Ollama (local) ──────────────────────────────────────────────────────
403
529
  { id: 'ollama/llama3.2', name: 'Llama 3.2 (local)', provider: 'Ollama', speed: 'Local · small' },
404
530
  { id: 'ollama/llama3.1', name: 'Llama 3.1 (local)', provider: 'Ollama', speed: 'Local · 8B-70B' },
@@ -418,11 +544,28 @@ exports.KNOWN_MODELS = [
418
544
  { id: 'local/llama-3.3-70b-instruct', name: 'Llama 3.3 70B (local)', provider: 'Local', speed: 'Local · strong' },
419
545
  { id: 'local/mistral-large', name: 'Mistral Large (local)', provider: 'Local', speed: 'Local · powerful' },
420
546
  ];
547
+ const LIVE_PREFERRED_PROVIDERS = new Set(['Anthropic', 'OpenAI', 'Google', 'OpenRouter']);
421
548
  /**
422
- * Get all available models — built-in + custom providers from .aura.json.
549
+ * Get all available models — live-fetched (OpenAI/Google/OpenRouter, when
550
+ * an API key is configured and refreshLiveModels() has run) + static
551
+ * KNOWN_MODELS fallback + custom providers from .aura.json.
552
+ *
553
+ * When a live list exists for a provider, its static KNOWN_MODELS entries
554
+ * are dropped entirely rather than merged — the static list can contain
555
+ * retired model IDs (see the note on KNOWN_MODELS above), and a partial
556
+ * merge would leave dead entries mixed in with real ones with no way to
557
+ * tell them apart in the picker.
423
558
  */
424
559
  function getAllModels() {
425
- const all = [...exports.KNOWN_MODELS];
560
+ const live = (0, live_models_js_1.getLiveModels)();
561
+ const liveProviders = new Set(live.map((m) => m.provider));
562
+ const staticFallback = exports.KNOWN_MODELS.filter((m) => {
563
+ if (LIVE_PREFERRED_PROVIDERS.has(m.provider) && liveProviders.has(m.provider)) {
564
+ return false;
565
+ }
566
+ return true;
567
+ });
568
+ const all = [...staticFallback, ...live];
426
569
  for (const def of customProviders) {
427
570
  if (def.models) {
428
571
  for (const m of def.models) {
@@ -440,78 +583,6 @@ function getAllModels() {
440
583
  }
441
584
  return all;
442
585
  }
443
- // ── Context window limits per model ─────────────────────────────────────────
444
- // Published/official context window sizes (in tokens).
445
- // Only real numbers — verified from provider documentation.
446
- exports.CONTEXT_WINDOWS = {
447
- // Anthropic Claude (all 200K)
448
- 'claude-opus-4-5-20251001': 200_000,
449
- 'claude-sonnet-4-5-20251001': 200_000,
450
- 'claude-haiku-4-5-20251001': 200_000,
451
- 'claude-3-5-sonnet-20241022': 200_000,
452
- 'claude-3-5-haiku-20241022': 200_000,
453
- 'claude-3-opus-20240229': 200_000,
454
- // OpenAI
455
- 'gpt-4o': 128_000,
456
- 'gpt-4o-mini': 128_000,
457
- 'gpt-4-turbo': 128_000,
458
- 'gpt-3.5-turbo': 16_384,
459
- 'o1': 200_000,
460
- 'o1-mini': 128_000,
461
- 'o1-preview': 128_000,
462
- 'o3': 200_000,
463
- 'o3-mini': 200_000,
464
- 'o4-mini': 200_000,
465
- // Google Gemini
466
- 'gemini-2.5-pro': 1_048_576,
467
- 'gemini-2.5-flash': 1_048_576,
468
- 'gemini-2.0-pro': 2_097_152,
469
- 'gemini-2.0-flash': 1_048_576,
470
- 'gemini-1.5-pro': 2_097_152,
471
- 'gemini-1.5-flash': 1_048_576,
472
- 'gemini-1.5-flash-8b': 1_048_576,
473
- // Xiaomi MiMo
474
- 'mimo-v2.5-pro': 1_048_576,
475
- 'mimo-v2.5': 1_048_576,
476
- 'mimo-v2-flash': 1_048_576,
477
- 'mimo-v1': 131_072,
478
- // DeepSeek — also covers OpenRouter-hosted ids; getContextWindow() strips the
479
- // "openrouter/<vendor>/" prefix before lookup, so "openrouter/deepseek/deepseek-v4-pro"
480
- // resolves here. Adjust the numbers to the real published limits as needed.
481
- 'deepseek-v4-pro': 1_048_576,
482
- 'deepseek-v4-flash': 1_048_576,
483
- 'deepseek-v4': 1_048_576,
484
- 'deepseek-r1': 131_072,
485
- 'deepseek-chat': 131_072,
486
- 'deepseek-coder-v2': 131_072,
487
- // xAI Grok
488
- 'grok-2': 131_072,
489
- 'grok-2-mini': 131_072,
490
- 'grok-beta': 131_072,
491
- 'grok-vision-beta': 131_072,
492
- };
493
- /**
494
- * Look up the context window for a model id.
495
- * Returns undefined for unknown models (caller should suppress the bar).
496
- */
497
- function getContextWindow(modelId) {
498
- // Direct match
499
- if (exports.CONTEXT_WINDOWS[modelId] !== undefined)
500
- return exports.CONTEXT_WINDOWS[modelId];
501
- // Strip OpenRouter prefix: "openrouter/anthropic/claude-3.5-sonnet" → "claude-3.5-sonnet"
502
- const orPrefix = modelId.match(/^openrouter\/[^/]+\/(.+)$/);
503
- if (orPrefix) {
504
- const base = orPrefix[1];
505
- if (exports.CONTEXT_WINDOWS[base] !== undefined)
506
- return exports.CONTEXT_WINDOWS[base];
507
- }
508
- // Strip Ollama prefix: "ollama/llama3.2" → check without prefix
509
- const ollamaPrefix = modelId.replace(/^ollama\//, '');
510
- if (ollamaPrefix !== modelId && exports.CONTEXT_WINDOWS[ollamaPrefix] !== undefined) {
511
- return exports.CONTEXT_WINDOWS[ollamaPrefix];
512
- }
513
- return undefined;
514
- }
515
586
  /**
516
587
  * Check if Ollama is reachable at the given base URL.
517
588
  * Returns true if the server responds, false otherwise.
@@ -532,6 +603,7 @@ function hasApiKey(...names) {
532
603
  /**
533
604
  * True when this model can be called with credentials available in env / saved wizard config.
534
605
  * Used to keep competence-based model selection from routing to providers without keys.
606
+ * (Reinstated: the original was lost in the backup-restore commit 6e5481a5.)
535
607
  */
536
608
  function isModelConfigured(modelId) {
537
609
  const model = modelId.toLowerCase();
@@ -554,13 +626,22 @@ function isModelConfigured(modelId) {
554
626
  return hasApiKey('OPENROUTER_API_KEY');
555
627
  if (model.startsWith('deepseek/'))
556
628
  return hasApiKey('DEEPSEEK_API_KEY');
557
- if (model.startsWith('xiaomi/') || model.startsWith('mimo-')) {
629
+ if (model.startsWith('glm-') || model.startsWith('zhipu/') || model.startsWith('zhipu-coding/')) {
630
+ return hasApiKey('ZHIPU_API_KEY');
631
+ }
632
+ if (model.startsWith('xiaomi/') || model.startsWith('mimo-') || model.startsWith('mimo/')) {
558
633
  return hasApiKey('XIAOMI_API_KEY')
559
634
  || !!(savedCfg?.apiKey && savedCfg.model === modelId);
560
635
  }
561
636
  if (model.startsWith('grok-') || model.includes('grok'))
562
637
  return hasApiKey('XAI_API_KEY');
563
- if (model.startsWith('ollama/'))
638
+ if (model.startsWith('go-anthropic/'))
639
+ return hasApiKey('OPENCODE_GO_API_KEY');
640
+ if (model.startsWith('opencode/') || model.startsWith('zen/'))
641
+ return hasApiKey('OPENCODE_API_KEY');
642
+ if (model.startsWith('ollama/') || model.startsWith('ollama:'))
643
+ return true;
644
+ if (model.startsWith('local/') || model.startsWith('lmstudio/') || model.startsWith('local-profile/'))
564
645
  return true;
565
646
  if (model === 'deepseek-v4-flash' || model.startsWith('deepseek-')) {
566
647
  if (hasApiKey('DEEPSEEK_API_KEY'))
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"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"}