aura-code 0.6.3 → 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 (265) 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/context.d.ts +0 -4
  12. package/dist/agent/context.js +0 -38
  13. package/dist/agent/context.js.map +1 -1
  14. package/dist/agent/domain-expertise.d.ts +22 -0
  15. package/dist/agent/domain-expertise.js +110 -0
  16. package/dist/agent/domain-expertise.js.map +1 -0
  17. package/dist/agent/executive-queue.d.ts +26 -0
  18. package/dist/agent/executive-queue.js +50 -0
  19. package/dist/agent/executive-queue.js.map +1 -0
  20. package/dist/agent/generational-flush.d.ts +28 -0
  21. package/dist/agent/generational-flush.js +48 -0
  22. package/dist/agent/generational-flush.js.map +1 -0
  23. package/dist/agent/loop-profile.d.ts +50 -0
  24. package/dist/agent/loop-profile.js +88 -0
  25. package/dist/agent/loop-profile.js.map +1 -0
  26. package/dist/agent/loop.d.ts +14 -5
  27. package/dist/agent/loop.js +167 -39
  28. package/dist/agent/loop.js.map +1 -1
  29. package/dist/agent/memory-consolidate.d.ts +14 -0
  30. package/dist/agent/memory-consolidate.js +141 -0
  31. package/dist/agent/memory-consolidate.js.map +1 -0
  32. package/dist/agent/mixture.d.ts +33 -0
  33. package/dist/agent/mixture.js +138 -0
  34. package/dist/agent/mixture.js.map +1 -0
  35. package/dist/agent/spawner.js +2 -2
  36. package/dist/agent/spawner.js.map +1 -1
  37. package/dist/agent/system-prompt.d.ts +1 -1
  38. package/dist/agent/system-prompt.js +50 -22
  39. package/dist/agent/system-prompt.js.map +1 -1
  40. package/dist/agent/unified-memory.d.ts +15 -0
  41. package/dist/agent/unified-memory.js +164 -0
  42. package/dist/agent/unified-memory.js.map +1 -0
  43. package/dist/checkpoints/engine.d.ts +44 -0
  44. package/dist/checkpoints/engine.js +324 -0
  45. package/dist/checkpoints/engine.js.map +1 -0
  46. package/dist/cli/command-palette.d.ts +26 -0
  47. package/dist/cli/command-palette.js +133 -0
  48. package/dist/cli/command-palette.js.map +1 -0
  49. package/dist/cli/context-health.d.ts +51 -0
  50. package/dist/cli/context-health.js +187 -0
  51. package/dist/cli/context-health.js.map +1 -0
  52. package/dist/cli/diamond.d.ts +67 -0
  53. package/dist/cli/diamond.js +222 -12
  54. package/dist/cli/diamond.js.map +1 -1
  55. package/dist/cli/dic.d.ts +2 -0
  56. package/dist/cli/dic.js +106 -0
  57. package/dist/cli/dic.js.map +1 -0
  58. package/dist/cli/diff-view.d.ts +18 -0
  59. package/dist/cli/diff-view.js +114 -0
  60. package/dist/cli/diff-view.js.map +1 -0
  61. package/dist/cli/display.d.ts +18 -4
  62. package/dist/cli/display.js +74 -151
  63. package/dist/cli/display.js.map +1 -1
  64. package/dist/cli/help-data.d.ts +7 -0
  65. package/dist/cli/help-data.js +80 -0
  66. package/dist/cli/help-data.js.map +1 -0
  67. package/dist/cli/index.js +1002 -852
  68. package/dist/cli/index.js.map +1 -1
  69. package/dist/cli/markdown.d.ts +5 -0
  70. package/dist/cli/markdown.js +128 -0
  71. package/dist/cli/markdown.js.map +1 -0
  72. package/dist/cli/model-select.d.ts +39 -0
  73. package/dist/cli/model-select.js +65 -0
  74. package/dist/cli/model-select.js.map +1 -0
  75. package/dist/cli/tui.d.ts +34 -0
  76. package/dist/cli/tui.js +1176 -0
  77. package/dist/cli/tui.js.map +1 -0
  78. package/dist/config/defaults.d.ts +6 -17
  79. package/dist/config/defaults.js +25 -46
  80. package/dist/config/defaults.js.map +1 -1
  81. package/dist/config/project-config.d.ts +2 -6
  82. package/dist/config/project-config.js +2 -2
  83. package/dist/config/project-config.js.map +1 -1
  84. package/dist/doctor/checks.d.ts +18 -0
  85. package/dist/doctor/checks.js +524 -0
  86. package/dist/doctor/checks.js.map +1 -0
  87. package/dist/doctor/index.d.ts +4 -0
  88. package/dist/doctor/index.js +229 -0
  89. package/dist/doctor/index.js.map +1 -0
  90. package/dist/doctor/repair.d.ts +19 -0
  91. package/dist/doctor/repair.js +126 -0
  92. package/dist/doctor/repair.js.map +1 -0
  93. package/dist/doctor/types.d.ts +38 -0
  94. package/dist/doctor/types.js +10 -0
  95. package/dist/doctor/types.js.map +1 -0
  96. package/dist/dream/dream.d.ts +79 -59
  97. package/dist/dream/dream.js +324 -144
  98. package/dist/dream/dream.js.map +1 -1
  99. package/dist/dream/episode.d.ts +17 -0
  100. package/dist/dream/episode.js +116 -0
  101. package/dist/dream/episode.js.map +1 -0
  102. package/dist/kanban/engine.d.ts +26 -0
  103. package/dist/kanban/engine.js +208 -0
  104. package/dist/kanban/engine.js.map +1 -0
  105. package/dist/kanban/types.d.ts +19 -0
  106. package/dist/kanban/types.js +9 -1
  107. package/dist/kanban/types.js.map +1 -1
  108. package/dist/machina/render-html.js +4 -2
  109. package/dist/machina/render-html.js.map +1 -1
  110. package/dist/machina/render-terminal.js +11 -4
  111. package/dist/machina/render-terminal.js.map +1 -1
  112. package/dist/machina/repair.d.ts +23 -0
  113. package/dist/machina/repair.js +98 -0
  114. package/dist/machina/repair.js.map +1 -0
  115. package/dist/machina/spec.js +12 -12
  116. package/dist/machina/spec.js.map +1 -1
  117. package/dist/machina/verify.d.ts +13 -1
  118. package/dist/machina/verify.js +12 -2
  119. package/dist/machina/verify.js.map +1 -1
  120. package/dist/mining/extract.d.ts +34 -0
  121. package/dist/mining/extract.js +229 -0
  122. package/dist/mining/extract.js.map +1 -0
  123. package/dist/mining/refine.d.ts +28 -0
  124. package/dist/mining/refine.js +256 -0
  125. package/dist/mining/refine.js.map +1 -0
  126. package/dist/perception/extractor.js +5 -3
  127. package/dist/perception/extractor.js.map +1 -1
  128. package/dist/perception/graph-store.d.ts +0 -11
  129. package/dist/perception/graph-store.js +0 -33
  130. package/dist/perception/graph-store.js.map +1 -1
  131. package/dist/perception/index.d.ts +1 -1
  132. package/dist/perception/index.js +1 -2
  133. package/dist/perception/index.js.map +1 -1
  134. package/dist/plugins/commands.d.ts +38 -0
  135. package/dist/plugins/commands.js +134 -0
  136. package/dist/plugins/commands.js.map +1 -0
  137. package/dist/plugins/frontmatter.d.ts +14 -0
  138. package/dist/plugins/frontmatter.js +78 -0
  139. package/dist/plugins/frontmatter.js.map +1 -0
  140. package/dist/plugins/hooks.d.ts +12 -0
  141. package/dist/plugins/hooks.js +148 -0
  142. package/dist/plugins/hooks.js.map +1 -0
  143. package/dist/plugins/loader.d.ts +7 -0
  144. package/dist/plugins/loader.js +255 -0
  145. package/dist/plugins/loader.js.map +1 -0
  146. package/dist/plugins/market.d.ts +23 -0
  147. package/dist/plugins/market.js +281 -0
  148. package/dist/plugins/market.js.map +1 -0
  149. package/dist/plugins/types.d.ts +90 -0
  150. package/dist/plugins/types.js +20 -0
  151. package/dist/plugins/types.js.map +1 -0
  152. package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
  153. package/dist/providers/anthropic-oauth-draft.js +414 -0
  154. package/dist/providers/anthropic-oauth-draft.js.map +1 -0
  155. package/dist/providers/anthropic.d.ts +4 -1
  156. package/dist/providers/anthropic.js +35 -7
  157. package/dist/providers/anthropic.js.map +1 -1
  158. package/dist/providers/factory.d.ts +43 -19
  159. package/dist/providers/factory.js +183 -129
  160. package/dist/providers/factory.js.map +1 -1
  161. package/dist/providers/google.js +9 -22
  162. package/dist/providers/google.js.map +1 -1
  163. package/dist/providers/live-models.d.ts +23 -0
  164. package/dist/providers/live-models.js +145 -0
  165. package/dist/providers/live-models.js.map +1 -0
  166. package/dist/providers/openai-compatible.d.ts +1 -12
  167. package/dist/providers/openai-compatible.js +71 -108
  168. package/dist/providers/openai-compatible.js.map +1 -1
  169. package/dist/providers/resilient-factory.js +1 -1
  170. package/dist/providers/resilient-factory.js.map +1 -1
  171. package/dist/repl/queue.d.ts +22 -0
  172. package/dist/repl/queue.js +165 -0
  173. package/dist/repl/queue.js.map +1 -0
  174. package/dist/repl/side-channel.d.ts +23 -0
  175. package/dist/repl/side-channel.js +63 -0
  176. package/dist/repl/side-channel.js.map +1 -0
  177. package/dist/research/council.d.ts +2 -0
  178. package/dist/research/council.js +29 -4
  179. package/dist/research/council.js.map +1 -1
  180. package/dist/ruby/alternator.d.ts +11 -30
  181. package/dist/ruby/alternator.js +59 -38
  182. package/dist/ruby/alternator.js.map +1 -1
  183. package/dist/ruby/episode-capture.d.ts +0 -10
  184. package/dist/ruby/episode-capture.js +0 -33
  185. package/dist/ruby/episode-capture.js.map +1 -1
  186. package/dist/ruby/types.js +1 -1
  187. package/dist/ruby/types.js.map +1 -1
  188. package/dist/safety/path-jail.d.ts +17 -0
  189. package/dist/safety/path-jail.js +100 -0
  190. package/dist/safety/path-jail.js.map +1 -0
  191. package/dist/safety/permissions.d.ts +12 -21
  192. package/dist/safety/permissions.js +81 -216
  193. package/dist/safety/permissions.js.map +1 -1
  194. package/dist/safety/ssrf.d.ts +29 -0
  195. package/dist/safety/ssrf.js +185 -0
  196. package/dist/safety/ssrf.js.map +1 -0
  197. package/dist/server/index.js +64 -10
  198. package/dist/server/index.js.map +1 -1
  199. package/dist/setup/first-run.d.ts +0 -24
  200. package/dist/setup/first-run.js +10 -344
  201. package/dist/setup/first-run.js.map +1 -1
  202. package/dist/setup/key-store.d.ts +12 -0
  203. package/dist/setup/key-store.js +108 -0
  204. package/dist/setup/key-store.js.map +1 -0
  205. package/dist/setup/provider-registry.js +31 -18
  206. package/dist/setup/provider-registry.js.map +1 -1
  207. package/dist/setup/provider-test.d.ts +7 -0
  208. package/dist/setup/provider-test.js +73 -10
  209. package/dist/setup/provider-test.js.map +1 -1
  210. package/dist/setup/provider-wizard.d.ts +4 -1
  211. package/dist/setup/provider-wizard.js +92 -26
  212. package/dist/setup/provider-wizard.js.map +1 -1
  213. package/dist/setup/xiaomi.d.ts +1 -1
  214. package/dist/setup/xiaomi.js +3 -3
  215. package/dist/setup/xiaomi.js.map +1 -1
  216. package/dist/tools/browser.js +14 -10
  217. package/dist/tools/browser.js.map +1 -1
  218. package/dist/tools/clipboard.js +7 -1
  219. package/dist/tools/clipboard.js.map +1 -1
  220. package/dist/tools/dictate.d.ts +60 -0
  221. package/dist/tools/dictate.js +983 -0
  222. package/dist/tools/dictate.js.map +1 -0
  223. package/dist/tools/dictate_patched.js +1057 -0
  224. package/dist/tools/edit-file.js +10 -2
  225. package/dist/tools/edit-file.js.map +1 -1
  226. package/dist/tools/http-request.js +14 -4
  227. package/dist/tools/http-request.js.map +1 -1
  228. package/dist/tools/image-read.js +34 -2
  229. package/dist/tools/image-read.js.map +1 -1
  230. package/dist/tools/index.d.ts +16 -1
  231. package/dist/tools/index.js +59 -8
  232. package/dist/tools/index.js.map +1 -1
  233. package/dist/tools/mcp.js +12 -0
  234. package/dist/tools/mcp.js.map +1 -1
  235. package/dist/tools/read-file.js +10 -14
  236. package/dist/tools/read-file.js.map +1 -1
  237. package/dist/tools/telegram-audio-policy.d.ts +30 -0
  238. package/dist/tools/telegram-audio-policy.js +49 -0
  239. package/dist/tools/telegram-audio-policy.js.map +1 -0
  240. package/dist/tools/telegram-bot.js +1136 -537
  241. package/dist/tools/telegram-bot.js.map +1 -1
  242. package/dist/tools/telegram-voice.d.ts +18 -5
  243. package/dist/tools/telegram-voice.js +54 -12
  244. package/dist/tools/telegram-voice.js.map +1 -1
  245. package/dist/tools/telegram.d.ts +3 -3
  246. package/dist/tools/telegram.js +5 -84
  247. package/dist/tools/telegram.js.map +1 -1
  248. package/dist/tools/tools.d.ts +2 -14
  249. package/dist/tools/tools.js +79 -144
  250. package/dist/tools/tools.js.map +1 -1
  251. package/dist/tools/web-fetch.js +39 -7
  252. package/dist/tools/web-fetch.js.map +1 -1
  253. package/dist/tools/web-search.d.ts +0 -20
  254. package/dist/tools/web-search.js +40 -137
  255. package/dist/tools/web-search.js.map +1 -1
  256. package/dist/util/errors.js +1 -15
  257. package/dist/util/errors.js.map +1 -1
  258. package/dist/util/json-repair.d.ts +11 -0
  259. package/dist/util/json-repair.js +31 -0
  260. package/dist/util/json-repair.js.map +1 -0
  261. package/dist/util/rate-limiter.js +2 -8
  262. package/dist/util/rate-limiter.js.map +1 -1
  263. package/dist/viz/index.js +793 -792
  264. package/dist/viz/index.js.map +1 -1
  265. package/package.json +12 -32
@@ -33,31 +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;
44
45
  exports.resolveTaskModelBaseUrl = resolveTaskModelBaseUrl;
45
46
  exports.createProvider = createProvider;
46
47
  exports.getAllModels = getAllModels;
47
- exports.getContextWindow = getContextWindow;
48
48
  exports.checkOllamaHealth = checkOllamaHealth;
49
49
  exports.isModelConfigured = isModelConfigured;
50
50
  const anthropic_js_1 = require("./anthropic.js");
51
51
  const openai_compatible_js_1 = require("./openai-compatible.js");
52
52
  const google_js_1 = require("./google.js");
53
53
  const env_js_1 = require("../util/env.js");
54
- 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.
55
59
  const provider_wizard_js_1 = require("../setup/provider-wizard.js");
56
60
  const global_config_js_1 = require("../setup/global-config.js");
57
- const defaults_js_1 = require("../config/defaults.js");
61
+ const http = __importStar(require("http"));
58
62
  // ─────────────────────────────────────────────────────────────────────────────
59
63
  // Custom provider registry (populated from .aura.json or programmatically)
60
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';
61
69
  let customProviders = [];
62
70
  /**
63
71
  * Register custom providers from .aura.json or any other source.
@@ -70,6 +78,66 @@ function registerCustomProviders(providers) {
70
78
  function getCustomProviders() {
71
79
  return customProviders;
72
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
+ }
73
141
  /**
74
142
  * Detect which provider class would handle a given model name.
75
143
  * Exported so the resilience layer can pre-build the right class.
@@ -89,6 +157,8 @@ function modelProviderFamily(modelId) {
89
157
  return 'deepseek';
90
158
  if (m.startsWith('mimo-') || m.startsWith('xiaomi/') || m.startsWith('mimo/'))
91
159
  return 'xiaomi';
160
+ if (m.startsWith('glm-') || m.startsWith('zhipu/') || m.startsWith('zhipu-coding/'))
161
+ return 'zhipu';
92
162
  if (m.startsWith('claude-'))
93
163
  return 'anthropic';
94
164
  if (m.startsWith('gemini-'))
@@ -97,7 +167,7 @@ function modelProviderFamily(modelId) {
97
167
  return 'openrouter';
98
168
  if (m.startsWith('grok-') || m.startsWith('xai/'))
99
169
  return 'xai';
100
- if (m.startsWith('opencode/') || m.startsWith('zen/'))
170
+ if (m.startsWith('opencode/') || m.startsWith('zen/') || m.startsWith('go-anthropic/'))
101
171
  return 'opencode';
102
172
  if (m.startsWith('ollama/'))
103
173
  return 'ollama';
@@ -106,6 +176,7 @@ function modelProviderFamily(modelId) {
106
176
  const FAMILY_API_KEY_ENV = {
107
177
  deepseek: 'DEEPSEEK_API_KEY',
108
178
  xiaomi: 'XIAOMI_API_KEY',
179
+ zhipu: 'ZHIPU_API_KEY',
109
180
  anthropic: 'ANTHROPIC_API_KEY',
110
181
  google: 'GOOGLE_API_KEY',
111
182
  openrouter: 'OPENROUTER_API_KEY',
@@ -113,15 +184,6 @@ const FAMILY_API_KEY_ENV = {
113
184
  opencode: 'OPENCODE_API_KEY',
114
185
  'openai-compatible': 'OPENAI_API_KEY',
115
186
  };
116
- /**
117
- * The name of the environment variable that holds the API key for a given
118
- * model's provider family (e.g. "deepseek/..." → "DEEPSEEK_API_KEY"). Returns
119
- * the key's *name*, not its value — used by setup wizards to tell the user
120
- * which variable to set. Falls back to OPENAI_API_KEY for unknown families.
121
- */
122
- function apiKeyEnvVarForModel(model) {
123
- return FAMILY_API_KEY_ENV[modelProviderFamily(model)] ?? 'OPENAI_API_KEY';
124
- }
125
187
  /**
126
188
  * Resolves an API key for a given model, trying that model's own provider
127
189
  * family first — falling back to other configured keys only as a last
@@ -129,6 +191,7 @@ function apiKeyEnvVarForModel(model) {
129
191
  * then..." chain: that ordering picks whichever key happens to exist first,
130
192
  * completely independent of which model is actually being called, which is
131
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.)
132
195
  */
133
196
  function getApiKeyForModel(model) {
134
197
  const family = modelProviderFamily(model);
@@ -163,10 +226,13 @@ function getApiKeyForModel(model) {
163
226
  const KNOWN_PROVIDER_BASE_URLS = {
164
227
  'https://api.deepseek.com/v1': 'deepseek',
165
228
  'https://token-plan-sgp.xiaomimimo.com/v1': 'xiaomi',
229
+ [exports.ZHIPU_GENERAL_BASE_URL]: 'zhipu',
230
+ [exports.ZHIPU_CODING_BASE_URL]: 'zhipu',
166
231
  'https://api.anthropic.com': 'anthropic',
167
232
  'https://generativelanguage.googleapis.com/v1beta': 'google',
168
233
  'https://openrouter.ai/api/v1': 'openrouter',
169
234
  'https://api.x.ai/v1': 'xai',
235
+ 'https://opencode.ai/zen/v1': 'opencode',
170
236
  };
171
237
  function baseUrlFamily(url) {
172
238
  if (!url)
@@ -175,6 +241,7 @@ function baseUrlFamily(url) {
175
241
  }
176
242
  /**
177
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.)
178
245
  */
179
246
  function resolveProviderTransport(model, opts) {
180
247
  const saved = (0, provider_wizard_js_1.loadProviderConfig)();
@@ -228,11 +295,10 @@ function resolveProviderTransport(model, opts) {
228
295
  * with a 400 ("supported API model names are deepseek-v4-pro or
229
296
  * deepseek-v4-flash, but you passed big-pickle").
230
297
  *
231
- * createProvider()'s own internal saved-config merge has an equivalent
232
- * guard for provider.json (the wizard's saved config) — this function
233
- * covers the OTHER two config sources (project-level fileConfig and the
234
- * global config), which callers like telegram-bot.ts read independently
235
- * before ever reaching createProvider().
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.)
236
302
  */
237
303
  function resolveTaskModelBaseUrl(opts) {
238
304
  return opts.envBaseUrl
@@ -254,20 +320,15 @@ function resolveTaskModelBaseUrl(opts) {
254
320
  */
255
321
  function createProvider(config) {
256
322
  const model = config.model.toLowerCase();
257
- config = { ...config, maxTokens: config.maxTokens ?? defaults_js_1.DEFAULTS.maxTokens };
258
- // ── Saved provider config (from provider wizard) ────────────────────────
259
- // Use saved baseUrl / apiKey as fallback when not explicitly provided.
260
- const savedCfg = (0, provider_wizard_js_1.loadProviderConfig)();
261
- if (savedCfg && !config.baseUrl) {
262
- const sameWizardModel = savedCfg.model === config.model;
263
- const sameXiaomiFamily = modelProviderFamily(savedCfg.model) === 'xiaomi'
264
- && modelProviderFamily(config.model) === 'xiaomi';
265
- if (sameWizardModel || sameXiaomiFamily) {
266
- config = { ...config, baseUrl: config.baseUrl ?? savedCfg.baseUrl };
267
- if (!config.apiKey && savedCfg.apiKey) {
268
- config = { ...config, apiKey: savedCfg.apiKey };
269
- }
270
- }
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');
271
332
  }
272
333
  // ── Custom providers (from .aura.json) ─────────────────────────────────
273
334
  for (const def of customProviders) {
@@ -278,8 +339,8 @@ function createProvider(config) {
278
339
  const stripPrefix = def.prefixes.find(p => p.endsWith('/') && model.startsWith(p.toLowerCase()));
279
340
  const rawModel = stripPrefix ? model.slice(stripPrefix.length) : model;
280
341
  const apiKey = config.apiKey
281
- ?? (def.apiKey ?? undefined)
282
- ?? (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);
283
344
  return new openai_compatible_js_1.OpenAICompatibleProvider({
284
345
  ...config,
285
346
  model: rawModel || model,
@@ -308,22 +369,32 @@ function createProvider(config) {
308
369
  // ── Xiaomi MiMo ────────────────────────────────────────────────────────────
309
370
  if (model.startsWith('mimo-') || model.startsWith('xiaomi/') || model.startsWith('mimo/')) {
310
371
  const mimoModel = model.replace(/^(xiaomi|mimo)\//, '');
372
+ const mimoKey = config.apiKey ?? (0, env_js_1.getApiKey)('XIAOMI_API_KEY');
311
373
  return new openai_compatible_js_1.OpenAICompatibleProvider({
312
374
  ...config,
313
375
  model: mimoModel,
314
- baseUrl: config.baseUrl ?? (0, env_js_1.getEnv)('XIAOMI_BASE_URL') ?? 'https://token-plan-sgp.xiaomimimo.com/v1',
315
- 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,
316
381
  }, 'Xiaomi MiMo');
317
382
  }
318
- // ── OpenCode Zen (OpenAI-compatible gateway) ──────────────────────────────
319
- if (model.startsWith('opencode/') || model.startsWith('zen/')) {
320
- 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)?\//, '');
321
390
  return new openai_compatible_js_1.OpenAICompatibleProvider({
322
391
  ...config,
323
- model: zenModel,
324
- baseUrl: config.baseUrl ?? (0, env_js_1.getEnv)('OPENCODE_BASE_URL') ?? 'https://opencode.ai/zen/v1',
325
- apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('OPENCODE_API_KEY'),
326
- }, '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');
327
398
  }
328
399
  // ── xAI / Grok ─────────────────────────────────────────────────────────────
329
400
  if (model.startsWith('grok-') || model.startsWith('xai/')) {
@@ -334,6 +405,15 @@ function createProvider(config) {
334
405
  apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('XAI_API_KEY'),
335
406
  }, 'xAI');
336
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
+ }
337
417
  // ── Ollama (local) ─────────────────────────────────────────────────────────
338
418
  if (model.startsWith('ollama/') || model.startsWith('ollama:')) {
339
419
  const ollamaModel = model.replace(/^ollama[/:]/, '');
@@ -370,6 +450,15 @@ function createProvider(config) {
370
450
  /**
371
451
  * List of well-known model shortcuts for quick selection.
372
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.
373
462
  */
374
463
  exports.KNOWN_MODELS = [
375
464
  // ── Anthropic Claude ─────────────────────────────────────────────────────
@@ -379,7 +468,7 @@ exports.KNOWN_MODELS = [
379
468
  { id: 'claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet', provider: 'Anthropic', speed: 'Fast · legacy' },
380
469
  { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', provider: 'Anthropic', speed: 'Fastest · legacy' },
381
470
  { id: 'claude-3-opus-20240229', name: 'Claude 3 Opus', provider: 'Anthropic', speed: 'Powerful · legacy' },
382
- // ── OpenAI ──────────────────────────────────────────────────────────────
471
+ // ── OpenAI (offline fallback — prefer live fetch, see note above) ───────
383
472
  { id: 'gpt-4o', name: 'GPT-4o', provider: 'OpenAI', speed: 'Powerful · multimodal' },
384
473
  { id: 'gpt-4o-mini', name: 'GPT-4o mini', provider: 'OpenAI', speed: 'Fast · cheap' },
385
474
  { id: 'gpt-4-turbo', name: 'GPT-4 Turbo', provider: 'OpenAI', speed: 'Powerful · legacy' },
@@ -390,7 +479,7 @@ exports.KNOWN_MODELS = [
390
479
  { id: 'o3', name: 'o3', provider: 'OpenAI', speed: 'Reasoning · new flagship' },
391
480
  { id: 'o3-mini', name: 'o3-mini', provider: 'OpenAI', speed: 'Reasoning · fast' },
392
481
  { id: 'o4-mini', name: 'o4-mini', provider: 'OpenAI', speed: 'Reasoning · fastest' },
393
- // ── Google Gemini ───────────────────────────────────────────────────────
482
+ // ── Google Gemini (offline fallback — prefer live fetch, see note above) ─
394
483
  { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', provider: 'Google', speed: 'Powerful · long context' },
395
484
  { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', provider: 'Google', speed: 'Fast · cheap' },
396
485
  { id: 'gemini-2.0-pro', name: 'Gemini 2.0 Pro', provider: 'Google', speed: 'Powerful' },
@@ -401,14 +490,25 @@ exports.KNOWN_MODELS = [
401
490
  // ── Xiaomi MiMo ─────────────────────────────────────────────────────────
402
491
  { id: 'mimo-v2.5-pro', name: 'MiMo V2.5 Pro', provider: 'Xiaomi MiMo', speed: 'Powerful · 1T params' },
403
492
  { id: 'mimo-v2.5', name: 'MiMo V2.5', provider: 'Xiaomi MiMo', speed: 'Fast · 310B' },
404
- { id: 'mimo-v2-flash', name: 'MiMo V2 Flash', provider: 'Xiaomi MiMo', speed: 'Fastest · efficient' },
405
- { 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' },
406
499
  // ── xAI Grok ────────────────────────────────────────────────────────────
407
500
  { id: 'grok-2', name: 'Grok 2', provider: 'xAI', speed: 'Powerful' },
408
501
  { id: 'grok-2-mini', name: 'Grok 2 mini', provider: 'xAI', speed: 'Fast · cheap' },
409
502
  { id: 'grok-beta', name: 'Grok Beta', provider: 'xAI', speed: 'Fast' },
410
503
  { id: 'grok-vision-beta', name: 'Grok Vision Beta', provider: 'xAI', speed: 'Multimodal' },
411
- // ── 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) ────
412
512
  { id: 'openrouter/anthropic/claude-3.5-sonnet', name: 'Claude 3.5 Sonnet (OR)', provider: 'OpenRouter', speed: 'Fast' },
413
513
  { id: 'openrouter/anthropic/claude-3-opus', name: 'Claude 3 Opus (OR)', provider: 'OpenRouter', speed: 'Powerful' },
414
514
  { id: 'openrouter/openai/gpt-4o', name: 'GPT-4o (OR)', provider: 'OpenRouter', speed: 'Powerful' },
@@ -421,11 +521,10 @@ exports.KNOWN_MODELS = [
421
521
  { id: 'openrouter/mistralai/mixtral-8x7b-instruct', name: 'Mixtral 8x7B (OR)', provider: 'OpenRouter', speed: 'Open · fast' },
422
522
  { id: 'openrouter/qwen/qwen-2.5-72b-instruct', name: 'Qwen 2.5 72B (OR)', provider: 'OpenRouter', speed: 'Open · strong' },
423
523
  { id: 'openrouter/qwen/qwen-2.5-coder-32b-instruct', name: 'Qwen 2.5 Coder 32B (OR)', provider: 'OpenRouter', speed: 'Open · code' },
424
- { 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' },
425
525
  { id: 'openrouter/deepseek/deepseek-r1', name: 'DeepSeek R1 (OR)', provider: 'OpenRouter', speed: 'Reasoning · open' },
426
- { 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' },
427
527
  { id: 'openrouter/google/gemma-2-27b-it', name: 'Gemma 2 27B (OR)', provider: 'OpenRouter', speed: 'Open · fast' },
428
- { id: 'openrouter/nex-agi/nex-n2-pro:free', name: 'Nex N2 Pro (OR)', provider: 'OpenRouter', speed: 'Free · open' },
429
528
  // ── Ollama (local) ──────────────────────────────────────────────────────
430
529
  { id: 'ollama/llama3.2', name: 'Llama 3.2 (local)', provider: 'Ollama', speed: 'Local · small' },
431
530
  { id: 'ollama/llama3.1', name: 'Llama 3.1 (local)', provider: 'Ollama', speed: 'Local · 8B-70B' },
@@ -445,11 +544,28 @@ exports.KNOWN_MODELS = [
445
544
  { id: 'local/llama-3.3-70b-instruct', name: 'Llama 3.3 70B (local)', provider: 'Local', speed: 'Local · strong' },
446
545
  { id: 'local/mistral-large', name: 'Mistral Large (local)', provider: 'Local', speed: 'Local · powerful' },
447
546
  ];
547
+ const LIVE_PREFERRED_PROVIDERS = new Set(['Anthropic', 'OpenAI', 'Google', 'OpenRouter']);
448
548
  /**
449
- * 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.
450
558
  */
451
559
  function getAllModels() {
452
- 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];
453
569
  for (const def of customProviders) {
454
570
  if (def.models) {
455
571
  for (const m of def.models) {
@@ -467,78 +583,6 @@ function getAllModels() {
467
583
  }
468
584
  return all;
469
585
  }
470
- // ── Context window limits per model ─────────────────────────────────────────
471
- // Published/official context window sizes (in tokens).
472
- // Only real numbers — verified from provider documentation.
473
- exports.CONTEXT_WINDOWS = {
474
- // Anthropic Claude (all 200K)
475
- 'claude-opus-4-5-20251001': 200_000,
476
- 'claude-sonnet-4-5-20251001': 200_000,
477
- 'claude-haiku-4-5-20251001': 200_000,
478
- 'claude-3-5-sonnet-20241022': 200_000,
479
- 'claude-3-5-haiku-20241022': 200_000,
480
- 'claude-3-opus-20240229': 200_000,
481
- // OpenAI
482
- 'gpt-4o': 128_000,
483
- 'gpt-4o-mini': 128_000,
484
- 'gpt-4-turbo': 128_000,
485
- 'gpt-3.5-turbo': 16_384,
486
- 'o1': 200_000,
487
- 'o1-mini': 128_000,
488
- 'o1-preview': 128_000,
489
- 'o3': 200_000,
490
- 'o3-mini': 200_000,
491
- 'o4-mini': 200_000,
492
- // Google Gemini
493
- 'gemini-2.5-pro': 1_048_576,
494
- 'gemini-2.5-flash': 1_048_576,
495
- 'gemini-2.0-pro': 2_097_152,
496
- 'gemini-2.0-flash': 1_048_576,
497
- 'gemini-1.5-pro': 2_097_152,
498
- 'gemini-1.5-flash': 1_048_576,
499
- 'gemini-1.5-flash-8b': 1_048_576,
500
- // Xiaomi MiMo
501
- 'mimo-v2.5-pro': 1_048_576,
502
- 'mimo-v2.5': 1_048_576,
503
- 'mimo-v2-flash': 1_048_576,
504
- 'mimo-v1': 131_072,
505
- // DeepSeek — also covers OpenRouter-hosted ids; getContextWindow() strips the
506
- // "openrouter/<vendor>/" prefix before lookup, so "openrouter/deepseek/deepseek-v4-pro"
507
- // resolves here. Adjust the numbers to the real published limits as needed.
508
- 'deepseek-v4-pro': 1_048_576,
509
- 'deepseek-v4-flash': 1_048_576,
510
- 'deepseek-v4': 1_048_576,
511
- 'deepseek-r1': 131_072,
512
- 'deepseek-chat': 131_072,
513
- 'deepseek-coder-v2': 131_072,
514
- // xAI Grok
515
- 'grok-2': 131_072,
516
- 'grok-2-mini': 131_072,
517
- 'grok-beta': 131_072,
518
- 'grok-vision-beta': 131_072,
519
- };
520
- /**
521
- * Look up the context window for a model id.
522
- * Returns undefined for unknown models (caller should suppress the bar).
523
- */
524
- function getContextWindow(modelId) {
525
- // Direct match
526
- if (exports.CONTEXT_WINDOWS[modelId] !== undefined)
527
- return exports.CONTEXT_WINDOWS[modelId];
528
- // Strip OpenRouter prefix: "openrouter/anthropic/claude-3.5-sonnet" → "claude-3.5-sonnet"
529
- const orPrefix = modelId.match(/^openrouter\/[^/]+\/(.+)$/);
530
- if (orPrefix) {
531
- const base = orPrefix[1];
532
- if (exports.CONTEXT_WINDOWS[base] !== undefined)
533
- return exports.CONTEXT_WINDOWS[base];
534
- }
535
- // Strip Ollama prefix: "ollama/llama3.2" → check without prefix
536
- const ollamaPrefix = modelId.replace(/^ollama\//, '');
537
- if (ollamaPrefix !== modelId && exports.CONTEXT_WINDOWS[ollamaPrefix] !== undefined) {
538
- return exports.CONTEXT_WINDOWS[ollamaPrefix];
539
- }
540
- return undefined;
541
- }
542
586
  /**
543
587
  * Check if Ollama is reachable at the given base URL.
544
588
  * Returns true if the server responds, false otherwise.
@@ -559,6 +603,7 @@ function hasApiKey(...names) {
559
603
  /**
560
604
  * True when this model can be called with credentials available in env / saved wizard config.
561
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.)
562
607
  */
563
608
  function isModelConfigured(modelId) {
564
609
  const model = modelId.toLowerCase();
@@ -581,13 +626,22 @@ function isModelConfigured(modelId) {
581
626
  return hasApiKey('OPENROUTER_API_KEY');
582
627
  if (model.startsWith('deepseek/'))
583
628
  return hasApiKey('DEEPSEEK_API_KEY');
584
- 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/')) {
585
633
  return hasApiKey('XIAOMI_API_KEY')
586
634
  || !!(savedCfg?.apiKey && savedCfg.model === modelId);
587
635
  }
588
636
  if (model.startsWith('grok-') || model.includes('grok'))
589
637
  return hasApiKey('XAI_API_KEY');
590
- 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/'))
591
645
  return true;
592
646
  if (model === 'deepseek-v4-flash' || model.startsWith('deepseek-')) {
593
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,0DAEC;AAGD,gDAEC;AAeD,4CAUC;AASD,oDAkBC;AAMD,gDAKC;AAGD,kDAYC;AAuBD,8CAkBC;AA+BD,4DA8CC;AAsBD,0DASC;AAeD,wCA+IC;AA0HD,oCA4BC;AAMD,8CASC;AAWD,8CA0CC;AA/nBD,iDAAmD;AACnD,iEAAkE;AAClE,2CAA6C;AAC7C,2CAAmD;AAEnD,qDAAiD;AACjD,wEAAkE;AAClE,kDAA0D;AAC1D,6EAA6E;AAC7E,4EAA4E;AAC5E,oEAAiE;AACjE,gEAA6D;AAC7D,2CAA6B;AAE7B,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;AAEhF,4EAA4E;AAC/D,QAAA,sBAAsB,GAAG,8BAA8B,CAAC;AACrE,8EAA8E;AACjE,QAAA,qBAAqB,GAAG,qCAAqC,CAAC;AAE3E,IAAI,eAAe,GAAkB,EAAE,CAAC;AAExC;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,SAAwB;IAC9D,eAAe,GAAG,SAAS,CAAC;AAC9B,CAAC;AAED,iDAAiD;AACjD,SAAgB,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,oGAAoG,EAAE,EAAE,CAAC,CAAC;AACjI,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,wCAAiB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,aAAa,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,CAAC,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAChE,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACjF,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACtF,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,CAAC;IAC1E,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACvG,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACpH,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACpF,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,aAAa,CAAC;IACrE,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,iEAAiE;AACjE,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9E,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/F,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,OAAO,CAAC;IACpG,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,YAAY,CAAC;IACrD,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1G,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,kBAAkB,GAA2B;IACjD,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,oBAAoB;IAChC,GAAG,EAAE,aAAa;IAClB,QAAQ,EAAE,kBAAkB;IAC5B,mBAAmB,EAAE,gBAAgB;CACtC,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IACD,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,eAAe;YAAE,SAAS;QACzC,MAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAA2B;IACvD,6BAA6B,EAAE,UAAU;IACzC,0CAA0C,EAAE,QAAQ;IACpD,CAAC,8BAAsB,CAAC,EAAE,OAAO;IACjC,CAAC,6BAAqB,CAAC,EAAE,OAAO;IAChC,2BAA2B,EAAE,WAAW;IACxC,kDAAkD,EAAE,QAAQ;IAC5D,8BAA8B,EAAE,YAAY;IAC5C,qBAAqB,EAAE,KAAK;IAC5B,4BAA4B,EAAE,UAAU;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,GAAuB;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,KAAa,EACb,IAA2C;IAE3C,MAAM,KAAK,GAAG,IAAA,uCAAkB,GAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,mCAAgB,GAAE,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,SAAS,EAAE,YAAY,CAAC;IAE5C,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM;SACrC,CAAC;IACJ,CAAC;IACD,IACE,KAAK,EAAE,MAAM;WACV,KAAK,EAAE,OAAO;WACd,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,QAAQ;WAClD,mBAAmB,CAAC,KAAK,CAAC,KAAK,QAAQ,EAC1C,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,OAAO;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,WAAW,GACf,CAAC,KAAK,EAAE,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,UAAU,IAAI,UAAU,KAAK,KAAK,CAAC;eAChF,CAAC,SAAS,EAAE,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,OAAO,IAAI,WAAW,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC;QAEnG,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,qBAAqB,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtG,IAAI,WAAW,IAAI,qBAAqB;YAAE,OAAO,GAAG,SAAS,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,uBAAuB,CAAC,IAKvC;IACC,OAAO,IAAI,CAAC,UAAU;WACjB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;WAClF,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,cAAc,CAAC,MAAsB;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAEzC,0EAA0E;IAC1E,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,gCAAiB,CAAC;YAC3B,GAAG,MAAM;YACT,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,+BAA+B;YAC1D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,qBAAqB,CAAC;SAC1D,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,EAAE,CAAC;YACZ,mFAAmF;YACnF,qEAAqE;YACrE,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC1D,CAAC;YACF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;mBACvB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;mBACtD,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;YAC/B,OAAO,IAAI,+CAAwB,CAAC;gBAClC,GAAG,MAAM;gBACT,KAAK,EAAE,QAAQ,IAAI,KAAK;gBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO;gBACtC,MAAM;aACP,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,gCAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,0BAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YACvC,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,oBAAoB,CAAC;SACzD,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,gBAAgB,CAAC,CAAC;QAC7D,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,SAAS;YAChB,qEAAqE;YACrE,uEAAuE;YACvE,6CAA6C;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAA,eAAM,EAAC,iBAAiB,CAAC,IAAI,IAAA,gCAAoB,EAAC,OAAO,CAAC;YACrF,MAAM,EAAE,OAAO;SAChB,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,mFAAmF;IACnF,mCAAmC;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChG,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;mBAClB,IAAA,eAAM,EAAC,gBAAgB,CAAC;mBACxB,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAqB,CAAC,CAAC,CAAC,8BAAsB,CAAC;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,eAAe,CAAC;SACpD,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,OAAO,EAAE,qBAAqB;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,aAAa,CAAC;SAClD,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,6BAA6B;YACxD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,kBAAkB,CAAC;SACvD,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;YACtD,MAAM,EAAE,QAAQ;SACjB,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,0BAA0B;YACrD,MAAM,EAAE,WAAW;SACpB,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,IAAI,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,+CAAwB,CAAC;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;YACtD,MAAM,EAAE,QAAQ;SACjB,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC;IAED,6EAA6E;IAC7E,OAAO,IAAI,+CAAwB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACU,QAAA,YAAY,GAAoE;IAC3F,4EAA4E;IAC5E,EAAE,EAAE,EAAE,0BAA0B,EAAI,IAAI,EAAE,iBAAiB,EAAI,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACrH,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAChH,EAAE,EAAE,EAAE,2BAA2B,EAAG,IAAI,EAAE,kBAAkB,EAAG,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAChH,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE;IAC9G,EAAE,EAAE,EAAE,2BAA2B,EAAG,IAAI,EAAE,kBAAkB,EAAG,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjH,EAAE,EAAE,EAAE,wBAAwB,EAAM,IAAI,EAAE,eAAe,EAAM,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAElH,2EAA2E;IAC3E,EAAE,EAAE,EAAE,QAAQ,EAAW,IAAI,EAAE,QAAQ,EAAW,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACtG,EAAE,EAAE,EAAE,aAAa,EAAM,IAAI,EAAE,aAAa,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7F,EAAE,EAAE,EAAE,aAAa,EAAM,IAAI,EAAE,aAAa,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAClG,EAAE,EAAE,EAAE,eAAe,EAAI,IAAI,EAAE,eAAe,EAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjG,EAAE,EAAE,EAAE,IAAI,EAAe,IAAI,EAAE,IAAI,EAAe,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACrG,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAClG,EAAE,EAAE,EAAE,YAAY,EAAO,IAAI,EAAE,YAAY,EAAO,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACnG,EAAE,EAAE,EAAE,IAAI,EAAe,IAAI,EAAE,IAAI,EAAe,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE;IACzG,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjG,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAEpG,4EAA4E;IAC5E,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,gBAAgB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACrH,EAAE,EAAE,EAAE,kBAAkB,EAAW,IAAI,EAAE,kBAAkB,EAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IAC1G,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,gBAAgB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;IACtG,EAAE,EAAE,EAAE,kBAAkB,EAAW,IAAI,EAAE,kBAAkB,EAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IAClG,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,gBAAgB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACnH,EAAE,EAAE,EAAE,kBAAkB,EAAW,IAAI,EAAE,kBAAkB,EAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;IAC3G,EAAE,EAAE,EAAE,qBAAqB,EAAQ,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAE7G,2EAA2E;IAC3E,EAAE,EAAE,EAAE,eAAe,EAAI,IAAI,EAAE,eAAe,EAAI,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC1G,EAAE,EAAE,EAAE,WAAW,EAAQ,IAAI,EAAE,WAAW,EAAQ,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IACjG,EAAE,EAAE,EAAE,eAAe,EAAI,IAAI,EAAE,eAAe,EAAI,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,yCAAyC,EAAE;IAC7H,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,wCAAwC,EAAE;IAE5H,6EAA6E;IAC7E,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACrG,EAAE,EAAE,EAAE,SAAS,EAAU,IAAI,EAAE,SAAS,EAAU,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAClG,EAAE,EAAE,EAAE,OAAO,EAAY,IAAI,EAAE,OAAO,EAAY,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAEnG,2EAA2E;IAC3E,EAAE,EAAE,EAAE,QAAQ,EAAa,IAAI,EAAE,QAAQ,EAAa,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IAC1F,EAAE,EAAE,EAAE,aAAa,EAAQ,IAAI,EAAE,aAAa,EAAQ,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE;IAC9F,EAAE,EAAE,EAAE,WAAW,EAAU,IAAI,EAAE,WAAW,EAAU,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;IACtF,EAAE,EAAE,EAAE,kBAAkB,EAAG,IAAI,EAAE,kBAAkB,EAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;IAE5F,4EAA4E;IAC5E,EAAE,EAAE,EAAE,yBAAyB,EAAI,IAAI,EAAE,iBAAiB,EAAK,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,yBAAyB,EAAE;IAC1H,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,mBAAmB,EAAG,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACvH,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,mBAAmB,EAAG,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,wBAAwB,EAAE;IACzH,EAAE,EAAE,EAAE,0BAA0B,EAAG,IAAI,EAAE,kBAAkB,EAAI,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3H,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,mBAAmB,EAAG,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3H,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,mBAAmB,EAAG,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAE3H,4EAA4E;IAC5E,EAAE,EAAE,EAAE,wCAAwC,EAAa,IAAI,EAAE,wBAAwB,EAAI,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;IACpI,EAAE,EAAE,EAAE,oCAAoC,EAAiB,IAAI,EAAE,oBAAoB,EAAQ,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;IACxI,EAAE,EAAE,EAAE,0BAA0B,EAA4B,IAAI,EAAE,aAAa,EAAe,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;IACzI,EAAE,EAAE,EAAE,sBAAsB,EAAgC,IAAI,EAAE,SAAS,EAAmB,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1I,EAAE,EAAE,EAAE,wCAAwC,EAAc,IAAI,EAAE,uBAAuB,EAAK,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;IACrI,EAAE,EAAE,EAAE,+CAA+C,EAAO,IAAI,EAAE,qBAAqB,EAAO,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAChJ,EAAE,EAAE,EAAE,8CAA8C,EAAQ,IAAI,EAAE,oBAAoB,EAAQ,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5I,EAAE,EAAE,EAAE,6CAA6C,EAAS,IAAI,EAAE,mBAAmB,EAAS,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7I,EAAE,EAAE,EAAE,2CAA2C,EAAW,IAAI,EAAE,oBAAoB,EAAQ,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;IACzI,EAAE,EAAE,EAAE,4CAA4C,EAAU,IAAI,EAAE,mBAAmB,EAAS,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5I,EAAE,EAAE,EAAE,uCAAuC,EAAe,IAAI,EAAE,mBAAmB,EAAS,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE;IAC9I,EAAE,EAAE,EAAE,6CAA6C,EAAS,IAAI,EAAE,yBAAyB,EAAG,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5I,EAAE,EAAE,EAAE,mCAAmC,EAAmB,IAAI,EAAE,kBAAkB,EAAU,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE;IAC9I,EAAE,EAAE,EAAE,iCAAiC,EAAqB,IAAI,EAAE,kBAAkB,EAAU,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjJ,EAAE,EAAE,EAAE,qCAAqC,EAAiB,IAAI,EAAE,sBAAsB,EAAM,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAChJ,EAAE,EAAE,EAAE,kCAAkC,EAAoB,IAAI,EAAE,kBAAkB,EAAU,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAE5I,2EAA2E;IAC3E,EAAE,EAAE,EAAE,iBAAiB,EAAY,IAAI,EAAE,mBAAmB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;IAC9G,EAAE,EAAE,EAAE,iBAAiB,EAAY,IAAI,EAAE,mBAAmB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC/G,EAAE,EAAE,EAAE,iBAAiB,EAAY,IAAI,EAAE,mBAAmB,EAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5G,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,kBAAkB,EAAO,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACrH,EAAE,EAAE,EAAE,sBAAsB,EAAO,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IAC9G,EAAE,EAAE,EAAE,kBAAkB,EAAW,IAAI,EAAE,oBAAoB,EAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IAC5G,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,iBAAiB,EAAO,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;IAC1G,EAAE,EAAE,EAAE,qBAAqB,EAAQ,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3G,EAAE,EAAE,EAAE,gBAAgB,EAAa,IAAI,EAAE,iBAAiB,EAAO,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3G,EAAE,EAAE,EAAE,aAAa,EAAgB,IAAI,EAAE,eAAe,EAAS,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IAC5G,EAAE,EAAE,EAAE,eAAe,EAAc,IAAI,EAAE,iBAAiB,EAAO,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC9G,EAAE,EAAE,EAAE,0BAA0B,EAAG,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;IACjH,EAAE,EAAE,EAAE,kBAAkB,EAAW,IAAI,EAAE,mBAAmB,EAAK,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAE9G,0EAA0E;IAC1E,EAAE,EAAE,EAAE,kCAAkC,EAAG,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;IACzH,EAAE,EAAE,EAAE,8BAA8B,EAAO,IAAI,EAAE,uBAAuB,EAAO,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC3H,EAAE,EAAE,EAAE,qBAAqB,EAAgB,IAAI,EAAE,uBAAuB,EAAO,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAC9H,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAE1F;;;;;;;;;;GAUG;AACH,SAAgB,YAAY;IAC1B,MAAM,IAAI,GAAG,IAAA,8BAAa,GAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,oBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/C,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC3B,mBAAmB;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAClC,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;wBACpB,QAAQ,EAAE,GAAG,CAAC,IAAI;wBAClB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,QAAQ;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,UAAkB,wBAAwB;IAChF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;YACnE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;YAChC,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,KAAe;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,uCAAkB,GAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;YACpC,IAAI,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACxE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChG,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1F,OAAO,SAAS,CAAC,gBAAgB,CAAC;eAC7B,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACpG,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnH,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,IAAI,SAAS,CAAC,kBAAkB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;IAClE,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3G,OAAO,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhE,OAAO,KAAK,CAAC;AACf,CAAC"}