talos-code 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/LICENSE +661 -0
  3. package/README.md +116 -3
  4. package/THIRD_PARTY_NOTICES.md +40 -0
  5. package/dist/archive/zip.js +73 -0
  6. package/dist/args.js +100 -0
  7. package/dist/automations/history-store.js +34 -0
  8. package/dist/automations/policy-store.js +43 -0
  9. package/dist/automations/runner.js +107 -0
  10. package/dist/automations/schedule.js +85 -0
  11. package/dist/automations/windows-task.js +53 -0
  12. package/dist/commands/advanced-cli.js +233 -0
  13. package/dist/commands/checkpoint-cli.js +45 -0
  14. package/dist/commands/config-cli.js +107 -0
  15. package/dist/commands/context.js +17 -0
  16. package/dist/commands/extensions-cli.js +207 -0
  17. package/dist/commands/project-cli.js +74 -0
  18. package/dist/commands/project-commands.js +143 -0
  19. package/dist/commands/provider-cli.js +244 -0
  20. package/dist/commands/services-cli.js +248 -0
  21. package/dist/commands/session-cli.js +171 -0
  22. package/dist/commands/system-cli.js +405 -0
  23. package/dist/config/commands.js +60 -0
  24. package/dist/config/load.js +382 -0
  25. package/dist/config/migrations.js +48 -0
  26. package/dist/config/types.js +11 -0
  27. package/dist/diagnostics/development-log.js +154 -0
  28. package/dist/diagnostics/doctor.js +104 -0
  29. package/dist/diagnostics/redact.js +80 -0
  30. package/dist/diagnostics/zip.js +52 -0
  31. package/dist/errors.js +156 -0
  32. package/dist/events/bridge.js +130 -0
  33. package/dist/extensions/installer.js +178 -0
  34. package/dist/extensions/package-schema.js +24 -0
  35. package/dist/headless/result.js +84 -0
  36. package/dist/headless/run.js +230 -0
  37. package/dist/i18n/en/approval.js +46 -0
  38. package/dist/i18n/en/common.js +9 -0
  39. package/dist/i18n/en/credentials.js +92 -0
  40. package/dist/i18n/en/errors.js +267 -0
  41. package/dist/i18n/en/firstrun.js +101 -0
  42. package/dist/i18n/en/providers.js +37 -0
  43. package/dist/i18n/en/screen.js +774 -0
  44. package/dist/i18n/en/tools.js +127 -0
  45. package/dist/i18n/en.js +14 -0
  46. package/dist/i18n/error-view.js +307 -0
  47. package/dist/i18n/index.js +19 -0
  48. package/dist/i18n/kernel-map.js +139 -0
  49. package/dist/io.js +45 -0
  50. package/dist/main.js +331 -0
  51. package/dist/paths.js +41 -0
  52. package/dist/protocol/v2/codec.js +9 -0
  53. package/dist/protocol/v2/events.js +555 -0
  54. package/dist/protocol/v2/index.js +4 -0
  55. package/dist/protocol/v2/replay.js +28 -0
  56. package/dist/protocol/v2/types.js +1 -0
  57. package/dist/provider/control-plane.js +135 -0
  58. package/dist/provider/environment-keys.js +275 -0
  59. package/dist/provider/health.js +110 -0
  60. package/dist/provider/missing-key.js +48 -0
  61. package/dist/provider/model-catalog.js +168 -0
  62. package/dist/provider/openrouter-login.js +172 -0
  63. package/dist/provider/provider-text.js +13 -0
  64. package/dist/provider/store.js +95 -0
  65. package/dist/provider/system-keyring.js +214 -0
  66. package/dist/runtime/active-run.js +63 -0
  67. package/dist/runtime/agent-tree.js +74 -0
  68. package/dist/runtime/attachments.js +84 -0
  69. package/dist/runtime/brokered-executor.js +395 -0
  70. package/dist/runtime/context-archive.js +69 -0
  71. package/dist/runtime/context-status.js +76 -0
  72. package/dist/runtime/create-runtime.js +111 -0
  73. package/dist/runtime/model-profile.js +361 -0
  74. package/dist/runtime/output-store.js +137 -0
  75. package/dist/runtime/provider-attempts.js +185 -0
  76. package/dist/runtime/replay-buffer.js +153 -0
  77. package/dist/runtime/repo.js +95 -0
  78. package/dist/runtime/session-facade.js +135 -0
  79. package/dist/runtime/session-summary.js +125 -0
  80. package/dist/runtime/supervisor.js +265 -0
  81. package/dist/runtime/talos-composition.js +1011 -0
  82. package/dist/runtime/types.js +5 -0
  83. package/dist/runtime/usage-snapshot.js +82 -0
  84. package/dist/security/auto-classifier.js +38 -0
  85. package/dist/security/credential-free-environment.js +54 -0
  86. package/dist/security/evaluate.js +243 -0
  87. package/dist/security/execution-backends.js +236 -0
  88. package/dist/security/execution-broker.js +102 -0
  89. package/dist/security/forge-scan.js +74 -0
  90. package/dist/security/from-approval.js +39 -0
  91. package/dist/security/mxc-execution-backend.js +281 -0
  92. package/dist/security/permission-engine.js +138 -0
  93. package/dist/security/permission-explanation.js +54 -0
  94. package/dist/security/persist.js +179 -0
  95. package/dist/security/plugin-guard.js +230 -0
  96. package/dist/security/process-tree-evidence-store.js +74 -0
  97. package/dist/security/process-tree-probe.js +554 -0
  98. package/dist/security/project-resource-inventory.js +186 -0
  99. package/dist/security/project-trust-gate.js +38 -0
  100. package/dist/security/project-trust.js +367 -0
  101. package/dist/security/rule-parser.js +201 -0
  102. package/dist/security/shell-segmentation.js +68 -0
  103. package/dist/security/trust-authority.js +324 -0
  104. package/dist/security/types.js +1 -0
  105. package/dist/security/workspace-identity.js +102 -0
  106. package/dist/services/automation-facade.js +59 -0
  107. package/dist/services/forge-facade.js +77 -0
  108. package/dist/services/hook-facade.js +240 -0
  109. package/dist/services/index.js +16 -0
  110. package/dist/services/library-facade.js +174 -0
  111. package/dist/services/mcp-facade.js +348 -0
  112. package/dist/services/memory-facade.js +126 -0
  113. package/dist/services/notes-facade.js +157 -0
  114. package/dist/services/plugin-facade.js +308 -0
  115. package/dist/services/research-facade.js +110 -0
  116. package/dist/services/task-board-facade.js +236 -0
  117. package/dist/services/workflow-catalog.js +246 -0
  118. package/dist/sessions/export-format.js +98 -0
  119. package/dist/sessions/metadata-store.js +160 -0
  120. package/dist/sessions/share.js +122 -0
  121. package/dist/sessions/transfer.js +16 -0
  122. package/dist/subcommands.js +62 -0
  123. package/dist/tui/agent-roster.js +36 -0
  124. package/dist/tui/agent-view.js +51 -0
  125. package/dist/tui/app.js +4098 -0
  126. package/dist/tui/approval.js +36 -0
  127. package/dist/tui/boot/boot-sequence.js +76 -0
  128. package/dist/tui/boot/cinematic.js +243 -0
  129. package/dist/tui/boot/desktop-logo.js +82 -0
  130. package/dist/tui/boot.js +3 -0
  131. package/dist/tui/busy-input.js +58 -0
  132. package/dist/tui/catalog-service.js +560 -0
  133. package/dist/tui/components/assistant-stream.js +1 -0
  134. package/dist/tui/components/command-menu.js +68 -0
  135. package/dist/tui/components/composer.js +219 -0
  136. package/dist/tui/components/diff.js +35 -0
  137. package/dist/tui/components/footer.js +48 -0
  138. package/dist/tui/components/header.js +6 -0
  139. package/dist/tui/components/markdown.js +305 -0
  140. package/dist/tui/components/status-indicator.js +38 -0
  141. package/dist/tui/components/terminal-shell.js +214 -0
  142. package/dist/tui/components/thinking-row.js +19 -0
  143. package/dist/tui/components/tool-row.js +97 -0
  144. package/dist/tui/components/transcript-virtualizer.js +165 -0
  145. package/dist/tui/components/transcript.js +43 -0
  146. package/dist/tui/descendant-approvals.js +104 -0
  147. package/dist/tui/diff-model.js +77 -0
  148. package/dist/tui/editor-history.js +21 -0
  149. package/dist/tui/editor.js +210 -0
  150. package/dist/tui/event-adapter.js +436 -0
  151. package/dist/tui/exit-output.js +58 -0
  152. package/dist/tui/external-editor.js +53 -0
  153. package/dist/tui/file-completion.js +89 -0
  154. package/dist/tui/focus-manager.js +5 -0
  155. package/dist/tui/highlight.js +30 -0
  156. package/dist/tui/input-router.js +18 -0
  157. package/dist/tui/interrupt.js +99 -0
  158. package/dist/tui/keybindings.js +194 -0
  159. package/dist/tui/keymap-resolver.js +91 -0
  160. package/dist/tui/launch-state.js +148 -0
  161. package/dist/tui/line-diff.js +57 -0
  162. package/dist/tui/live-activity.js +56 -0
  163. package/dist/tui/metrics.js +123 -0
  164. package/dist/tui/onboarding.js +36 -0
  165. package/dist/tui/overlays/agent-tree.js +43 -0
  166. package/dist/tui/overlays/approval-dialog.js +642 -0
  167. package/dist/tui/overlays/automation-center.js +51 -0
  168. package/dist/tui/overlays/checkpoint-picker.js +47 -0
  169. package/dist/tui/overlays/context-inspector.js +36 -0
  170. package/dist/tui/overlays/effort-line.js +110 -0
  171. package/dist/tui/overlays/forge-center.js +46 -0
  172. package/dist/tui/overlays/help-dialog.js +16 -0
  173. package/dist/tui/overlays/history-picker.js +37 -0
  174. package/dist/tui/overlays/hook-center.js +70 -0
  175. package/dist/tui/overlays/library-center.js +55 -0
  176. package/dist/tui/overlays/mcp-center.js +60 -0
  177. package/dist/tui/overlays/memory-center.js +63 -0
  178. package/dist/tui/overlays/model-picker.js +77 -0
  179. package/dist/tui/overlays/notes-center.js +53 -0
  180. package/dist/tui/overlays/overlay-host.js +8 -0
  181. package/dist/tui/overlays/plugin-center.js +76 -0
  182. package/dist/tui/overlays/provider-picker.js +171 -0
  183. package/dist/tui/overlays/queue-editor.js +32 -0
  184. package/dist/tui/overlays/research-center.js +59 -0
  185. package/dist/tui/overlays/scroll-window.js +234 -0
  186. package/dist/tui/overlays/session-picker.js +115 -0
  187. package/dist/tui/overlays/tasks-center.js +83 -0
  188. package/dist/tui/overlays/theme-picker.js +21 -0
  189. package/dist/tui/overlays/transcript-search.js +58 -0
  190. package/dist/tui/overlays/trust-center.js +29 -0
  191. package/dist/tui/overlays/workflow-center.js +46 -0
  192. package/dist/tui/project-file-index.js +214 -0
  193. package/dist/tui/project-references.js +85 -0
  194. package/dist/tui/project-trust-prompt.js +289 -0
  195. package/dist/tui/prompt-history-store.js +116 -0
  196. package/dist/tui/queue-store.js +110 -0
  197. package/dist/tui/regions/budget.js +59 -0
  198. package/dist/tui/regions/views.js +96 -0
  199. package/dist/tui/render-coordinator.js +148 -0
  200. package/dist/tui/render-scheduler.js +4 -0
  201. package/dist/tui/run.js +69 -0
  202. package/dist/tui/selection-list.js +29 -0
  203. package/dist/tui/session-controller.js +791 -0
  204. package/dist/tui/session-export.js +54 -0
  205. package/dist/tui/setup-wizard.js +46 -0
  206. package/dist/tui/shell-input.js +35 -0
  207. package/dist/tui/shell-layout.js +48 -0
  208. package/dist/tui/shell-model.js +98 -0
  209. package/dist/tui/slash-commands.js +82 -0
  210. package/dist/tui/state.js +151 -0
  211. package/dist/tui/status-bar.js +125 -0
  212. package/dist/tui/status-view.js +40 -0
  213. package/dist/tui/terminal-capabilities.js +9 -0
  214. package/dist/tui/terminal-session.js +11 -0
  215. package/dist/tui/text-width.js +66 -0
  216. package/dist/tui/theme-catalog.js +27 -0
  217. package/dist/tui/theme-store.js +23 -0
  218. package/dist/tui/theme.js +23 -0
  219. package/dist/tui/tool-display.js +135 -0
  220. package/dist/tui/tool-facts.js +1 -0
  221. package/dist/tui/tools/bash-renderer.js +32 -0
  222. package/dist/tui/tools/change.js +61 -0
  223. package/dist/tui/tools/edit-renderer.js +17 -0
  224. package/dist/tui/tools/generic-renderer.js +13 -0
  225. package/dist/tui/tools/list-renderer.js +14 -0
  226. package/dist/tui/tools/read-renderer.js +13 -0
  227. package/dist/tui/tools/registry.js +20 -0
  228. package/dist/tui/tools/row-format.js +187 -0
  229. package/dist/tui/tools/search-renderer.js +38 -0
  230. package/dist/tui/tools/shared.js +97 -0
  231. package/dist/tui/tools/write-renderer.js +15 -0
  232. package/dist/tui/transcript-model.js +441 -0
  233. package/dist/tui/ui-preferences.js +79 -0
  234. package/dist/tui/usage-view.js +77 -0
  235. package/dist/tui/vim-mode.js +99 -0
  236. package/dist/update/check.js +15 -0
  237. package/dist/update/npm.js +51 -0
  238. package/dist/update/run.js +129 -0
  239. package/dist/version.js +2 -0
  240. package/dist/workspace/checkpoint-store.js +210 -0
  241. package/dist/workspace/checkpoint.js +413 -0
  242. package/dist/workspace/restore.js +232 -0
  243. package/package.json +64 -5
  244. package/vendor/context-engine/package.json +11 -0
  245. package/vendor/context-engine/src/compaction-planner.mjs +57 -0
  246. package/vendor/context-engine/src/contracts.mjs +48 -0
  247. package/vendor/context-engine/src/engine.mjs +445 -0
  248. package/vendor/context-engine/src/node/context-export.mjs +164 -0
  249. package/vendor/context-engine/src/node/legacy-import.mjs +92 -0
  250. package/vendor/context-engine/src/node/migrations/001-context.sql +126 -0
  251. package/vendor/context-engine/src/node/sqlite-store.mjs +85 -0
  252. package/vendor/context-engine/src/node/sqlite-worker.mjs +559 -0
  253. package/vendor/context-engine/src/profiles.mjs +10 -0
  254. package/vendor/context-engine/src/retrieval.mjs +104 -0
  255. package/vendor/context-engine/src/summary.mjs +97 -0
  256. package/vendor/context-engine/src/usage.mjs +34 -0
  257. package/vendor/harness-ui/package.json +38 -0
  258. package/vendor/harness-ui/src/acp-agent.mjs +350 -0
  259. package/vendor/harness-ui/src/agent-service.mjs +2188 -0
  260. package/vendor/harness-ui/src/agui-events.mjs +452 -0
  261. package/vendor/harness-ui/src/ambiente-solo-server.mjs +121 -0
  262. package/vendor/harness-ui/src/artifact-store.mjs +39 -0
  263. package/vendor/harness-ui/src/assistenza.mjs +123 -0
  264. package/vendor/harness-ui/src/automation-scheduler.mjs +69 -0
  265. package/vendor/harness-ui/src/automation-store.mjs +145 -0
  266. package/vendor/harness-ui/src/browser-annota.mjs +639 -0
  267. package/vendor/harness-ui/src/browser-frame.mjs +211 -0
  268. package/vendor/harness-ui/src/browser-proxy-universale.mjs +519 -0
  269. package/vendor/harness-ui/src/browser-proxy.mjs +87 -0
  270. package/vendor/harness-ui/src/browser-sessione-viva.mjs +329 -0
  271. package/vendor/harness-ui/src/browser-stream.mjs +445 -0
  272. package/vendor/harness-ui/src/browser-vivo.mjs +694 -0
  273. package/vendor/harness-ui/src/chat-image-attachments.mjs +72 -0
  274. package/vendor/harness-ui/src/config.mjs +697 -0
  275. package/vendor/harness-ui/src/contesto-del-progetto.mjs +385 -0
  276. package/vendor/harness-ui/src/context-asset-adapter.mjs +72 -0
  277. package/vendor/harness-ui/src/context-desktop-service.mjs +253 -0
  278. package/vendor/harness-ui/src/context-embedding-runtime.mjs +252 -0
  279. package/vendor/harness-ui/src/context-inference-scheduler.mjs +81 -0
  280. package/vendor/harness-ui/src/context-native-compaction.mjs +75 -0
  281. package/vendor/harness-ui/src/context-provider-adapter.mjs +141 -0
  282. package/vendor/harness-ui/src/context-runtime.mjs +118 -0
  283. package/vendor/harness-ui/src/context-token-counters.mjs +184 -0
  284. package/vendor/harness-ui/src/context-tool-catalog.mjs +86 -0
  285. package/vendor/harness-ui/src/context-tool-output.mjs +72 -0
  286. package/vendor/harness-ui/src/costo-elenco.mjs +252 -0
  287. package/vendor/harness-ui/src/custom-task.mjs +171 -0
  288. package/vendor/harness-ui/src/doctor.mjs +142 -0
  289. package/vendor/harness-ui/src/document-filename.mjs +97 -0
  290. package/vendor/harness-ui/src/document-generator.mjs +493 -0
  291. package/vendor/harness-ui/src/document-report.mjs +331 -0
  292. package/vendor/harness-ui/src/duckduckgo-search.mjs +155 -0
  293. package/vendor/harness-ui/src/elenco-profondo.mjs +337 -0
  294. package/vendor/harness-ui/src/favicon-proxy.mjs +113 -0
  295. package/vendor/harness-ui/src/forge-contract.mjs +221 -0
  296. package/vendor/harness-ui/src/frequent-dirs.mjs +134 -0
  297. package/vendor/harness-ui/src/generated-image-store.mjs +147 -0
  298. package/vendor/harness-ui/src/generation-idle.mjs +332 -0
  299. package/vendor/harness-ui/src/gguf-header.mjs +207 -0
  300. package/vendor/harness-ui/src/git-service.mjs +626 -0
  301. package/vendor/harness-ui/src/gitignore-elenco.mjs +604 -0
  302. package/vendor/harness-ui/src/harness-receipt-keypair.mjs +207 -0
  303. package/vendor/harness-ui/src/hf-direct-transfer.mjs +170 -0
  304. package/vendor/harness-ui/src/hf-hub-client.mjs +106 -0
  305. package/vendor/harness-ui/src/hf-image-proxy.mjs +105 -0
  306. package/vendor/harness-ui/src/hf-model-transfer.mjs +245 -0
  307. package/vendor/harness-ui/src/hook-registry.mjs +186 -0
  308. package/vendor/harness-ui/src/http-app.mjs +6259 -0
  309. package/vendor/harness-ui/src/http-lifecycle.mjs +132 -0
  310. package/vendor/harness-ui/src/id-archivio.mjs +27 -0
  311. package/vendor/harness-ui/src/image-generator.mjs +143 -0
  312. package/vendor/harness-ui/src/istruzioni-di-progetto.mjs +234 -0
  313. package/vendor/harness-ui/src/kernel/dist/kernelPerIlBanco.js +518 -0
  314. package/vendor/harness-ui/src/kernel/talosHarness.mjs +10437 -0
  315. package/vendor/harness-ui/src/library-policy-store.mjs +175 -0
  316. package/vendor/harness-ui/src/library-store.mjs +652 -0
  317. package/vendor/harness-ui/src/llama-server-supervisor.mjs +629 -0
  318. package/vendor/harness-ui/src/local-model-store.mjs +339 -0
  319. package/vendor/harness-ui/src/local-runtime-contract.mjs +66 -0
  320. package/vendor/harness-ui/src/local-runtime-events.mjs +44 -0
  321. package/vendor/harness-ui/src/local-runtime-llama-server.mjs +244 -0
  322. package/vendor/harness-ui/src/local-runtime-probe.mjs +401 -0
  323. package/vendor/harness-ui/src/machine-capacity.mjs +66 -0
  324. package/vendor/harness-ui/src/mappa-cartelle.mjs +491 -0
  325. package/vendor/harness-ui/src/mcp-client.mjs +98 -0
  326. package/vendor/harness-ui/src/mcp-registry.mjs +157 -0
  327. package/vendor/harness-ui/src/mcp-session.mjs +177 -0
  328. package/vendor/harness-ui/src/memory-store.mjs +227 -0
  329. package/vendor/harness-ui/src/model-catalog-models-dev.mjs +276 -0
  330. package/vendor/harness-ui/src/model-catalog.mjs +129 -0
  331. package/vendor/harness-ui/src/model-destination.mjs +189 -0
  332. package/vendor/harness-ui/src/modifica-ancorata.mjs +177 -0
  333. package/vendor/harness-ui/src/native-provider-adapter.mjs +205 -0
  334. package/vendor/harness-ui/src/notes-store.mjs +250 -0
  335. package/vendor/harness-ui/src/openai-compatible-runtime.mjs +428 -0
  336. package/vendor/harness-ui/src/openrouter-oauth.mjs +339 -0
  337. package/vendor/harness-ui/src/path-policy.mjs +442 -0
  338. package/vendor/harness-ui/src/plugin-registry.mjs +780 -0
  339. package/vendor/harness-ui/src/plugin-session.mjs +180 -0
  340. package/vendor/harness-ui/src/process-policy.mjs +345 -0
  341. package/vendor/harness-ui/src/prompt-enhancer-provider.mjs +94 -0
  342. package/vendor/harness-ui/src/provider-auth-cloud.mjs +95 -0
  343. package/vendor/harness-ui/src/provider-credential-store.mjs +541 -0
  344. package/vendor/harness-ui/src/provider-probe.mjs +582 -0
  345. package/vendor/harness-ui/src/provider-registry.mjs +1633 -0
  346. package/vendor/harness-ui/src/pty-terminal.mjs +312 -0
  347. package/vendor/harness-ui/src/public-problem.mjs +109 -0
  348. package/vendor/harness-ui/src/research/card.mjs +235 -0
  349. package/vendor/harness-ui/src/research/citations.mjs +142 -0
  350. package/vendor/harness-ui/src/research/collector.mjs +275 -0
  351. package/vendor/harness-ui/src/research/deposito-a-pezzi.mjs +139 -0
  352. package/vendor/harness-ui/src/research/dossier.mjs +114 -0
  353. package/vendor/harness-ui/src/research/esportazioni.mjs +560 -0
  354. package/vendor/harness-ui/src/research/fetch-cache.mjs +465 -0
  355. package/vendor/harness-ui/src/research/fidelity.mjs +122 -0
  356. package/vendor/harness-ui/src/research/independence.mjs +159 -0
  357. package/vendor/harness-ui/src/research/ledger.mjs +166 -0
  358. package/vendor/harness-ui/src/research/markdown-server.mjs +565 -0
  359. package/vendor/harness-ui/src/research/narration.mjs +181 -0
  360. package/vendor/harness-ui/src/research/open-cards.mjs +131 -0
  361. package/vendor/harness-ui/src/research/opposing.mjs +305 -0
  362. package/vendor/harness-ui/src/research/outline.mjs +111 -0
  363. package/vendor/harness-ui/src/research/page-budget.mjs +209 -0
  364. package/vendor/harness-ui/src/research/pdf.mjs +291 -0
  365. package/vendor/harness-ui/src/research/plan.mjs +301 -0
  366. package/vendor/harness-ui/src/research/raccolta-viva.mjs +452 -0
  367. package/vendor/harness-ui/src/research/recheck-document.mjs +69 -0
  368. package/vendor/harness-ui/src/research/recheck-history.mjs +192 -0
  369. package/vendor/harness-ui/src/research/recheck.mjs +194 -0
  370. package/vendor/harness-ui/src/research/report.mjs +203 -0
  371. package/vendor/harness-ui/src/research/run.mjs +527 -0
  372. package/vendor/harness-ui/src/research/synthesis.mjs +318 -0
  373. package/vendor/harness-ui/src/research/verification.mjs +572 -0
  374. package/vendor/harness-ui/src/research-orchestrator.mjs +2679 -0
  375. package/vendor/harness-ui/src/research-store.mjs +1133 -0
  376. package/vendor/harness-ui/src/runtime-build-manifest.mjs +26 -0
  377. package/vendor/harness-ui/src/runtime-contract.mjs +59 -0
  378. package/vendor/harness-ui/src/runtime-owner-adapter.mjs +1348 -0
  379. package/vendor/harness-ui/src/runtime-owner-contract.mjs +32 -0
  380. package/vendor/harness-ui/src/scheda-di-lavoro.mjs +249 -0
  381. package/vendor/harness-ui/src/search-source-store.mjs +172 -0
  382. package/vendor/harness-ui/src/session-registry.mjs +6095 -0
  383. package/vendor/harness-ui/src/session-store.mjs +220 -0
  384. package/vendor/harness-ui/src/sessione-pronta.mjs +73 -0
  385. package/vendor/harness-ui/src/setup-stato.mjs +31 -0
  386. package/vendor/harness-ui/src/sezioni-istruzioni.mjs +204 -0
  387. package/vendor/harness-ui/src/skill-registry.mjs +120 -0
  388. package/vendor/harness-ui/src/sse-replay-coalescente.mjs +0 -0
  389. package/vendor/harness-ui/src/static-files.mjs +96 -0
  390. package/vendor/harness-ui/src/stream-partition.mjs +123 -0
  391. package/vendor/harness-ui/src/subagent-orchestrator.mjs +453 -0
  392. package/vendor/harness-ui/src/task-catalog.mjs +65 -0
  393. package/vendor/harness-ui/src/tasks-store.mjs +220 -0
  394. package/vendor/harness-ui/src/terminal-registry.mjs +312 -0
  395. package/vendor/harness-ui/src/terminal-ws.mjs +170 -0
  396. package/vendor/harness-ui/src/tool-forge-store.mjs +299 -0
  397. package/vendor/harness-ui/src/tool-schema-normalize.mjs +100 -0
  398. package/vendor/harness-ui/src/usage-cache.mjs +315 -0
  399. package/vendor/harness-ui/src/workspace-browser.mjs +213 -0
  400. package/vendor/harness-ui/src/workspace-context.mjs +124 -0
  401. package/vendor/harness-ui/src/workspace-disk.mjs +62 -0
  402. package/vendor/harness-ui/src/workspace-files.mjs +589 -0
  403. package/vendor/harness-ui/src/workspace-info.mjs +189 -0
  404. package/vendor/harness-ui/src/workspace-launch-store.mjs +150 -0
  405. package/vendor/harness-ui/src/workspace-tree.mjs +67 -0
  406. package/vendor/harness-ui/src/workspace-watcher.mjs +161 -0
  407. package/vendor/manifest.json +170 -0
@@ -0,0 +1,92 @@
1
+ /*
2
+ * R2 lane K: provider keys, the missing-key sentence, the credential store and `talos model list` (gate E1, E8, E13, E14).
3
+ * ⛔ `key.bench.cause.*` is keyed by the kernel's bench code (`provider-credential-store.mjs`, `PANCHINE_PROVIDER_MS`): the ids
4
+ * carry the kernel's Italian codes so that the mapping is by code, never by text (gate E4); only the values reach the screen.
5
+ */
6
+ export const credentials = {
7
+ /* E8 / Q-R2-7: the ONE missing-key sentence, on every path (`provider/missing-key.ts`). */
8
+ 'key.missing': 'No API key for {provider}. Set {env} or run `talos provider set-key {id}`.',
9
+ /* Only for a provider whose registry names no environment variable: the sentence never invents one. */
10
+ 'key.missing.noEnv': 'No API key for {provider}. Run `talos provider set-key {id}`.',
11
+ 'key.origin.saved.system': 'Key for {provider}: saved in the system keyring.',
12
+ 'key.origin.saved.memory': 'Key for {provider}: kept in memory for this process only.',
13
+ 'key.origin.environment.approved': 'Key for {provider}: environment variable {variable}, approved earlier.',
14
+ 'key.origin.environment.unasked': 'Key for {provider}: environment variable {variable}, used without asking because this run is non-interactive.',
15
+ 'key.origin.unknownVariable': '(unknown)',
16
+ /* E1: the two `BENCH_CAUSES` tables (`provider/health.ts`, `tui/catalog-service.ts`), deduplicated. */
17
+ 'key.bench.cause.traffico': 'rate limit',
18
+ 'key.bench.cause.credenziale': 'key refused',
19
+ 'key.bench.cause.credito': 'out of credit',
20
+ 'key.bench.cause.rete': 'network error',
21
+ 'key.bench.cause.timeout-fornitore': 'provider timeout',
22
+ 'key.bench.cause.guasto-fornitore': 'provider error',
23
+ 'key.bench.cause.flusso-interrotto': 'interrupted stream',
24
+ 'key.benched.one': 'The {provider} key is benched',
25
+ 'key.benched.other': 'All {count} {provider} keys are benched',
26
+ 'key.benched.until': '{state} until {time}',
27
+ 'key.benched.because': '{state} ({cause})',
28
+ 'key.benched.remedy.until': 'Wait until then, or add another key with /provider.',
29
+ 'key.benched.remedy': 'Wait, or add another key with /provider.',
30
+ 'key.benched.status': '{state}. {remedy}',
31
+ 'key.benched.refusal': '{state}, so nothing was sent to {provider}. {remedy}',
32
+ 'key.remedy.replaceKey': '{provider} rejected the current credential. Replace or re-authorize the key.',
33
+ 'key.remedy.configureProvider': 'Configure {provider} before using this provider.',
34
+ 'key.remedy.configureEndpoint': 'Configure a valid {provider} endpoint.',
35
+ 'key.remedy.checkEndpoint': '{provider} could not be reached. Check the endpoint and network, then retry.',
36
+ 'key.remedy.retry': '{provider} returned an error. Retry after checking provider status and configuration.',
37
+ 'key.remedy.completeConfiguration': 'Complete the {provider} provider configuration before using it.',
38
+ 'key.remedy.inspect': 'TALOS cannot verify {provider} with a normal health probe; inspect its configuration before relying on the connection state.',
39
+ /* E1: `KEYRING_TEXT` (`provider/system-keyring.ts`), unchanged words. */
40
+ 'store.keyring.moduleMissing': '@napi-rs/keyring is not installed where TALOS loads it from ({roots})',
41
+ 'store.keyring.outsideApprovedRoots': '@napi-rs/keyring resolved outside the approved roots, at {location}; TALOS loads it only from {roots}',
42
+ 'store.keyring.unresolved': '@napi-rs/keyring could not be resolved: {detail}',
43
+ 'store.keyring.loadFailed': '@napi-rs/keyring at {location} failed to load: {detail}',
44
+ 'store.keyring.invalidModule': '@napi-rs/keyring at {location} does not export Entry',
45
+ 'store.keyring.probeWriteFailed': 'the keyring probe write failed: {detail}',
46
+ 'store.keyring.probeReadFailed': 'the keyring probe read failed: {detail}',
47
+ 'store.keyring.probeMismatch': 'the keyring probe did not read back the value it wrote',
48
+ /* E13 / Q-R2-5: the credential store, named by `doctor` (Q-R2-9: wording only). */
49
+ 'store.name.system.win32': 'Windows Credential Manager',
50
+ 'store.name.system.darwin': 'macOS Keychain',
51
+ 'store.name.system.other': 'the system keyring',
52
+ 'store.name.memory': 'in memory, this process only',
53
+ 'store.source.environment': 'set by {variable}',
54
+ 'store.source.config': 'set by credentials.store in the configuration',
55
+ 'store.source.testProfile': 'test profile',
56
+ 'store.source.default': 'default',
57
+ 'store.line': '{store} ({source})',
58
+ /* R4 Q-R4-15 (a): the system store is per operating-system user; doctor says who shares it. */
59
+ 'store.shared.win32': 'shared by every TALOS of this Windows user',
60
+ 'store.shared.darwin': 'shared by every TALOS of this macOS user',
61
+ 'store.shared.other': 'shared by every TALOS of this user',
62
+ 'store.refused.line': 'refused: {message}',
63
+ 'store.refusedInTest': 'This is a test profile, so TALOS did not open the real credential store ({store}). Set {variable}=memory.',
64
+ 'store.invalid': '"{value}" is not a credential store TALOS knows. Set {variable} to system or memory.',
65
+ 'store.saved.system': 'Saved to the system keyring.',
66
+ 'store.saved.memory': 'Kept in memory for this process only; it is gone when TALOS exits.',
67
+ /* E14 / E-03: human `talos model list` (the JSON output is unchanged). */
68
+ 'key.models.column.model': 'MODEL',
69
+ 'key.models.column.context': 'CONTEXT',
70
+ 'key.models.column.tools': 'TOOLS',
71
+ 'key.models.column.reasoning': 'REASONING',
72
+ 'key.models.column.availability': 'AVAILABILITY',
73
+ 'key.models.yes': 'yes',
74
+ 'key.models.no': 'no',
75
+ 'key.models.unknown': '-',
76
+ 'key.models.source.live': 'live',
77
+ 'key.models.source.configured': 'configured',
78
+ 'key.models.source.documented': 'documented',
79
+ 'key.models.source.unknown': 'not verified',
80
+ 'key.models.none': 'No models are known for this provider.',
81
+ 'key.models.use': 'Use one with: talos model use <MODEL>',
82
+ /* P21: `talos provider login openrouter`. */
83
+ 'key.login.paste': 'Open this address in a browser on any machine, sign in to OpenRouter, then paste the code it shows:',
84
+ 'key.login.opened': 'Opening OpenRouter in your browser. If it did not open, use this address:',
85
+ 'key.login.open': 'Open this address in your browser and sign in to OpenRouter:',
86
+ 'key.login.waiting': 'Waiting for the browser (10 min). Ctrl+C cancels; on another machine, run it again with --paste.',
87
+ 'key.login.codePrompt': 'Code: ',
88
+ 'key.login.failed': 'OpenRouter sign-in did not complete ({code}).',
89
+ 'key.login.signedIn': 'Signed in to OpenRouter. {message} {saved}',
90
+ 'key.login.saved': 'Saved.',
91
+ 'key.login.notSaved': 'The key was not saved.',
92
+ };
@@ -0,0 +1,267 @@
1
+ /*
2
+ * R2 lane E: error anatomy (what · what to do · where to look) and the English for kernel codes (gate E4-E7, Q-R2-2/4).
3
+ * Every failure the screen shows is one of these families or one of the mapped codes below; the kernel's own words (Italian)
4
+ * are never a value here. `{id}`/`{provider}` name the provider, `{seconds}` a known wait (E7: never invented, E15).
5
+ */
6
+ export const errors = {
7
+ 'error.generic.what': 'TALOS could not finish this action.',
8
+ 'error.generic.where': 'talos logs',
9
+ 'error.prefix': 'Error',
10
+ 'error.trace': 'Trace {trace} · component {component}',
11
+ /* Families: the fallback for a code with no entry of its own (Q-R2-2), chosen by the same taxonomy as the exit code. */
12
+ 'error.family.internal.what': 'TALOS could not finish this action.',
13
+ 'error.family.internal.todo': 'Try again; if it happens again, keep the log for a report.',
14
+ 'error.family.permission.what': 'TALOS did not do this because it is not allowed here.',
15
+ 'error.family.permission.todo': 'Review the permission rules, then try again.',
16
+ 'error.family.permission.where': 'talos config permissions',
17
+ 'error.family.key.what': 'The provider key could not be used.',
18
+ 'error.family.key.todo': 'Check the key saved for this provider.',
19
+ 'error.family.key.where': 'talos provider list',
20
+ 'error.family.provider.what': 'The model provider returned an error.',
21
+ 'error.family.provider.todo': 'Try again in a moment, or pick another model with /model.',
22
+ 'error.family.extension.what': 'An extension (MCP server, hook or plugin) failed.',
23
+ 'error.family.extension.todo': 'Check the extension, then try again.',
24
+ 'error.family.timeout.what': 'This took too long and was stopped.',
25
+ 'error.family.timeout.todo': 'Try again; if it keeps timing out, check the connection.',
26
+ 'error.family.session.what': 'The session could not be used.',
27
+ 'error.family.session.todo': 'Pick a session from the list.',
28
+ 'error.family.session.where': 'talos session list',
29
+ 'error.family.update.what': 'The update could not be completed.',
30
+ 'error.family.update.todo': 'Try again later.',
31
+ 'error.family.usage.what': 'The command or the configuration is not valid.',
32
+ 'error.family.usage.todo': 'Check the command, its options and the configuration.',
33
+ 'error.family.usage.where': 'talos --help',
34
+ 'error.family.interrupted.what': 'Stopped at your request.',
35
+ 'error.where.doctor': 'talos doctor',
36
+ 'error.where.providerTest': 'talos provider test {id}',
37
+ 'error.where.providerList': 'talos provider list',
38
+ /* Provider failures (PROVIDER_REQUEST_ERROR × classe × HTTP status). 403 is never "the key is wrong" (E7). */
39
+ 'error.provider.rateLimited.what': 'The model provider is limiting requests (HTTP 429); TALOS retried and then stopped.',
40
+ 'error.provider.rateLimited.todo': 'Wait a moment and send the message again, or pick another model with /model.',
41
+ 'error.provider.rateLimited.todoKnown': 'Wait {seconds} s and send the message again, or pick another model with /model.',
42
+ /* R5a lane R (Q-R5-6): the provider asked for a wait longer than the 60 s TALOS waits by itself, so it did not retry. */
43
+ 'error.provider.rateLimited.whatLongWait': 'The model provider is limiting requests (HTTP 429) and asked TALOS to wait {seconds} s, longer than it waits by itself.',
44
+ 'error.provider.credential.what': 'The model provider refused the credentials or the access (HTTP 401 or 403).',
45
+ 'error.provider.credential.todo': 'Check that the key is valid and may use this model.',
46
+ 'error.provider.unauthorized.what': 'The model provider rejected the API key (HTTP 401).',
47
+ 'error.provider.unauthorized.todo': 'Replace the key with `talos provider set-key {id}`.',
48
+ 'error.provider.forbidden.what': 'The model provider denied access to this model or action (HTTP 403).',
49
+ 'error.provider.forbidden.todo': 'Check on the provider\'s site that your account may use this model, or pick another model with /model.',
50
+ 'error.provider.notFound.what': 'The model provider does not know this model or address (HTTP 404).',
51
+ 'error.provider.notFound.todo': 'Check the model with /model or `talos model list`, then send the message again.',
52
+ 'error.provider.notAccepted.what': 'The model provider did not accept the request (for example an unknown model, HTTP 400 or 404).',
53
+ 'error.provider.notAccepted.todo': 'Check the model with /model or `talos model list`, then send the message again.',
54
+ 'error.provider.credit.what': 'The model provider account has no credit left for this request.',
55
+ 'error.provider.credit.todo': 'Add credit on the provider\'s site, or pick another model with /model.',
56
+ 'error.provider.network.what': 'TALOS could not reach the model provider, or the connection dropped.',
57
+ 'error.provider.network.todo': 'Check the network connection and send the message again.',
58
+ 'error.provider.timeout.what': 'The model provider did not answer in time.',
59
+ 'error.provider.timeout.todo': 'Send the message again; if it keeps happening, pick another model with /model.',
60
+ 'error.provider.serverError.what': 'The model provider had an internal error (HTTP 5xx).',
61
+ 'error.provider.serverError.todo': 'Try again in a moment; the problem is on the provider\'s side.',
62
+ 'error.provider.streamCut.what': 'The model provider\'s answer stopped halfway.',
63
+ 'error.provider.streamCut.todo': 'Send the message again.',
64
+ 'error.provider.context.what': 'The conversation is too long for this model.',
65
+ 'error.provider.context.todo': 'Start a new session, or pick a model with a larger context with /model.',
66
+ /* Run outcomes (RunError.code). The stop point comes from the CLI's own state, never from the kernel text (E15). */
67
+ /* R3 Q-R3-8: a person's interrupt is neutral: `Interrupted · <stop point>` (the stop point is R2's words). */
68
+ 'error.run.interrupted.what': 'Interrupted',
69
+ 'error.run.interruptedWhile.what': 'Interrupted · {while}',
70
+ 'error.run.while.answering': 'while the model was answering',
71
+ 'error.run.while.approval': 'while TALOS was waiting for your approval for {tool}',
72
+ 'error.run.while.tool': 'while {tool} was running',
73
+ 'error.run.noAnswer.what': 'The model stopped without an answer.',
74
+ 'error.run.noAnswer.todo': 'Send the message again, or pick another model with /model.',
75
+ 'error.run.turnsExhausted.what': 'TALOS used all its turns without finishing the task.',
76
+ 'error.run.turnsExhausted.todo': 'Send "continue" to go on, or split the task into smaller steps.',
77
+ 'error.run.repetition.what': 'The model asked for the same tool call again and again, so TALOS stopped it.',
78
+ 'error.run.repetition.todo': 'Send the message again, or pick another model with /model.',
79
+ 'error.run.premiseDenied.what': 'TALOS stopped because a premise of the task turned out to be false.',
80
+ 'error.run.premiseDenied.todo': 'Check the task description and send it again.',
81
+ 'error.code.PROVIDER_FALLBACK_BUSY.what': 'Another answer of this session is still running.',
82
+ 'error.code.PROVIDER_FALLBACK_BUSY.todo': 'Wait for it to finish, or press Esc to stop it.',
83
+ /* Tool refusals, worded from the permission `via` of the receipt (the Italian `motivo` is kernel text). */
84
+ 'error.refused.notApproved': 'Not run: you did not approve it.',
85
+ 'error.refused.toolOff': 'Not run: this tool is turned off for this session.',
86
+ 'error.refused.readOnly': 'Not run: the session is read-only.',
87
+ 'error.refused.research': 'Not run: a deep research may only save its own report.',
88
+ 'error.refused.workspaceWrite': 'Not run: this session may only write files inside the workspace.',
89
+ 'error.refused.stopped': 'Not run: you stopped the run while TALOS was asking.',
90
+ 'error.refused.noRecovery': 'Not run: this command cannot be undone, so TALOS never runs it.',
91
+ 'error.refused.checkpoint': 'Not run: TALOS could not save a checkpoint before the change.',
92
+ 'error.refused.generic': 'Not run: the action was refused.',
93
+ /* R5a lane R (S10, gate finding 15): who decided that a tool did not run. `person` only when the person was asked. */
94
+ 'error.denial.person': 'Not run: you did not approve it.',
95
+ 'error.denial.rule': 'Not run: denied by the rule {rule}.',
96
+ 'error.denial.ruleScoped': 'Not run: denied by the rule {rule} ({scope} settings).',
97
+ 'error.denial.ruleUnnamed': 'Not run: denied by a permission rule.',
98
+ 'error.denial.because': 'Not run: {reason}',
99
+ 'error.denial.reason.unsupportedShell': 'TALOS cannot check this command part by part (unsupported shell composition), so it never runs it.',
100
+ 'error.denial.reason.pathOutside': 'the file is outside the project.',
101
+ 'error.denial.reason.planMode': 'plan mode allows only read-only actions.',
102
+ 'error.denial.reason.noAsking': 'this mode never asks, and the action needs approval.',
103
+ 'error.denial.reason.autoDenied': 'the automatic classifier refused it.',
104
+ /* R5a lane R (S10): the kernel's refusal sentences in English, on the screen's copy only (kernel-map.ts). */
105
+ 'error.refusalReason.notApproved': 'the approval request was answered no.',
106
+ 'error.refusalReason.readOnly': 'the session is read-only: no write, command or document is allowed right now.',
107
+ 'error.refusalReason.toolOff': '{tool} is turned off for this session.',
108
+ 'error.refusalReason.research': 'a deep research may read, search and browse, and write only its own report, so {tool} is not allowed.',
109
+ 'error.refusalReason.researchPath': 'a research report is saved only in that research\'s folder, and {path} is not inside it.',
110
+ 'error.refusalReason.workspaceTool': 'this session may only write files inside the workspace, so {tool} is not allowed.',
111
+ 'error.refusalReason.workspacePath': '{path} is not inside the current workspace, and this session may only write inside it.',
112
+ 'error.refusalReason.noChannel': '{tool} needs approval, but this session has no way to ask for it.',
113
+ 'error.refusalReason.stoppedAsking': 'stopped at your request while TALOS was waiting for your approval for {tool}.',
114
+ 'error.refusalReason.noPath': '(no path)',
115
+ 'error.notice.keyRefused': 'The {provider} key was refused by the provider and is paused. Check it with `talos provider list`.',
116
+ 'error.notice.switchRateLimited': '{from} is limiting requests: continuing with {to} · model {model}',
117
+ 'error.notice.switchNotAnswering': '{from} is not answering: continuing with {to} · model {model}',
118
+ /* R3 Q-R3-8 (R3-INT): the kernel's stop and timeout sentences in a tool result, shown in English (display only). */
119
+ 'error.toolStop.whileRunning': 'Interrupted while it was running.',
120
+ 'error.toolStop.notRun': 'Interrupted before it started; this tool was not run.',
121
+ 'error.toolStop.timedOut': 'Stopped after {seconds} seconds: it did not finish by itself.',
122
+ 'error.warning.untranslated': 'TALOS reported a notice that has no English text yet.',
123
+ 'error.warning.untranslatedWhere': 'the full notice is in `talos logs`',
124
+ /* Mapped codes (CLI and kernel). */
125
+ 'error.code.PROJECT_TRUST_REQUIRED.what': 'This folder is not trusted, so TALOS did not load its instructions or tools.',
126
+ 'error.code.PROJECT_TRUST_REQUIRED.todo': 'Review it with `talos project status`, then trust it with `talos project trust`.',
127
+ 'error.code.PROJECT_TRUST_INVALIDATED.what': 'This folder changed since you trusted it, so TALOS did not load the change.',
128
+ 'error.code.PROJECT_TRUST_INVALIDATED.todo': 'Review it with `talos project status`, then trust it again with `talos project trust`.',
129
+ 'error.code.PROJECT_TRUST.where': 'talos project status',
130
+ 'error.code.SANDBOX_REQUIRED_UNAVAILABLE.what': 'The Windows sandbox is not available, so the command did not run.',
131
+ 'error.code.SANDBOX_REQUIRED_UNAVAILABLE.todo': 'See what is missing in the sandbox section of `talos doctor`.',
132
+ 'error.code.MXC_BACKEND_UNAVAILABLE.what': 'The Windows sandbox could not be started for this command.',
133
+ 'error.code.MXC_BACKEND_UNAVAILABLE.todo': 'See the sandbox section of `talos doctor`.',
134
+ /* R3 Q-R3-20: quitting stops a sandbox check still running; it gives no result and is never saved. */
135
+ 'error.code.PROCESS_TREE_PROBE_ABORTED.what': 'The sandbox check was stopped because TALOS was closing, so it gave no result.',
136
+ 'error.code.PROCESS_TREE_PROBE_ABORTED.todo': 'Nothing to do: TALOS checks the sandbox again the next time it starts.',
137
+ 'error.code.ABORT_ERR.what': 'This was stopped before it finished.',
138
+ 'error.code.ABORT_ERR.todo': 'Run it again if you still need it.',
139
+ 'error.code.RULE_COMMAND_UNSUPPORTED.what': 'This command cannot be split into parts TALOS can judge, so no rule is saved for it.',
140
+ 'error.code.RULE_COMPOUND_COMMAND.what': 'A command made of several parts is not remembered as a rule.',
141
+ 'error.code.RULE_UNREADABLE.what': 'The rule for this request could not be read back, so it is not saved.',
142
+ 'error.code.RULE_MATCHES_NOTHING.what': 'The rule for this request would not match the request itself, so it is not saved.',
143
+ 'error.code.RULE.todo': '"Allow always" answers for this session only; approve it again next time.',
144
+ 'error.code.PERMISSION_RULE_INVALID.what': 'A permission rule in the configuration is not valid, so TALOS did not start.',
145
+ 'error.code.PERMISSION_RULE_INVALID.todo': 'Fix or remove the rule in the file named below.',
146
+ 'error.code.RULE_STORE_INVALID.what': 'The project permission settings are not a valid list.',
147
+ 'error.code.RULE_STORE_INVALID.todo': 'Fix the "permissions" entry of the project configuration.',
148
+ 'error.code.FORGE_PACKAGE_SCHEMA_INVALID.what': 'The forged tool package is not valid.',
149
+ 'error.code.FORGE_PACKAGE_SCHEMA_INVALID.todo': 'Check the package against the forge schema, then try again.',
150
+ 'error.code.KEYMAP_INVALID.what': 'The key map in the configuration is not valid.',
151
+ 'error.code.KEYMAP_INVALID.todo': 'Fix the keymap entry of the configuration.',
152
+ /* R2 integration (lane K codes, gate E13): the credential-store resolver and its configuration key. */
153
+ 'error.code.CREDENTIAL_STORE_INVALID.what': 'The credential store TALOS was asked to use is not one it knows.',
154
+ 'error.code.CREDENTIAL_STORE_INVALID.todo': 'Set TALOS_CREDENTIAL_STORE (or credentials.store in the configuration) to system or memory.',
155
+ 'error.code.CREDENTIAL_STORE_REAL_IN_TEST.what': 'A test profile asked for the real system credential store, so TALOS refused to open it.',
156
+ 'error.code.CREDENTIAL_STORE_REAL_IN_TEST.todo': 'Use TALOS_CREDENTIAL_STORE=memory for tests; the real store is never opened under a test profile.',
157
+ 'error.code.CONFIG_INVALID_CREDENTIAL_STORE.what': 'The credentials.store setting in the configuration is not valid.',
158
+ 'error.code.CONFIG_INVALID_CREDENTIAL_STORE.todo': 'Set credentials.store to system or memory, or remove it.',
159
+ 'error.code.PROJECT_CREDENTIAL_STORE_IGNORED.what': 'The project configuration tried to choose where TALOS keeps your keys, so that setting was ignored.',
160
+ 'error.code.PROJECT_CREDENTIAL_STORE_IGNORED.todo': 'Set credentials.store in your user or project-user configuration, or use TALOS_CREDENTIAL_STORE.',
161
+ 'error.code.CONFIG_INVALID_CREDENTIALS.what': 'The credentials section of the configuration is not valid.',
162
+ 'error.code.CONFIG_INVALID_CREDENTIALS.todo': 'Make credentials an object with a store of system or memory, or remove it.',
163
+ 'error.code.config.where': 'talos config show',
164
+ 'error.code.PROVIDER_STORE_UNAVAILABLE.what': 'The Windows credential store is not available.',
165
+ 'error.code.PROVIDER_STORE_UNAVAILABLE.todo': 'See the credential store line of `talos doctor`.',
166
+ 'error.code.PROVIDER_KEY_REQUIRED.what': 'No key was entered.',
167
+ 'error.code.PROVIDER_KEY_REQUIRED.todo': 'Enter a key before saving it.',
168
+ 'error.code.PROVIDER_KEY_INVALID.what': 'The key is not valid (empty, too long, or with line breaks).',
169
+ 'error.code.PROVIDER_KEY_INVALID.todo': 'Paste the key again, on one line.',
170
+ 'error.code.PROVIDER_KEY_NOT_FOUND.what': 'That key is no longer stored.',
171
+ 'error.code.PROVIDER_KEY_NOT_FOUND.todo': 'Reload the provider list.',
172
+ 'error.code.PROVIDER_POOL_FULL.what': 'This provider already has eight keys.',
173
+ 'error.code.PROVIDER_POOL_FULL.todo': 'Remove a key before adding another one.',
174
+ 'error.code.PROVIDER_RUNTIME_INVALID.what': 'The provider settings are not valid (address, models, command or time limit).',
175
+ 'error.code.PROVIDER_RUNTIME_INVALID.todo': 'Fix the provider settings, then test them.',
176
+ 'error.code.PROVIDER_RUNTIME_UNAVAILABLE.what': 'The provider settings could not be saved.',
177
+ 'error.code.PROVIDER_RUNTIME_UNAVAILABLE.todo': 'Check that the TALOS data folder is writable.',
178
+ 'error.code.PROVIDER_KEY_MISSING.what': 'No API key is available for this provider.',
179
+ 'error.code.PROVIDER_KEY_MISSING.todo': 'Add one with `talos provider set-key <id>`.',
180
+ 'error.code.MODEL_IMAGE_NOT_SUPPORTED.what': 'The selected model does not accept images.',
181
+ 'error.code.MODEL_IMAGE_NOT_SUPPORTED.todo': 'Pick a model with vision with /model.',
182
+ 'error.code.LOCAL_RUNTIME_NOT_READY.what': 'The local model engine is not running.',
183
+ 'error.code.LOCAL_RUNTIME_NOT_READY.todo': 'Start the local engine, or pick another model with /model.',
184
+ 'error.code.RUNTIME_NOT_AVAILABLE.what': 'No model runtime is available for this session.',
185
+ 'error.code.RUNTIME_NOT_AVAILABLE.todo': 'Pick a provider and a model with /provider and /model.',
186
+ 'error.code.NOT_FOUND.what': 'The session was not found.',
187
+ 'error.code.CANCELLED.what': 'Cancelled.',
188
+ 'error.code.TALOS_RUNTIME_NOT_FOUND.what': 'TALOS could not find its runtime files.',
189
+ 'error.code.TALOS_RUNTIME_NOT_FOUND.todo': 'Reinstall TALOS, or run it from its install folder.',
190
+ 'error.code.CLI_USAGE_ERROR.what': 'The command line is not valid.',
191
+ 'error.code.PROVIDER_UNREACHABLE.what': 'TALOS could not reach the model provider.',
192
+ 'error.code.PROVIDER_UNREACHABLE.todo': 'Check the network and the provider address, then try again.',
193
+ 'error.code.PATH_NOT_ALLOWED.what': 'This path is outside the folders TALOS may use.',
194
+ 'error.code.PATH_NOT_ALLOWED.todo': 'Use a path inside the project folder.',
195
+ 'error.code.PLAN_MODE_READ_ONLY.what': 'Plan mode is read-only, so nothing was changed.',
196
+ 'error.code.PLAN_MODE_READ_ONLY.todo': 'Switch out of plan mode to make changes.',
197
+ 'error.code.SESSION_NOT_FOUND.what': 'That session was not found.',
198
+ /* R5b D1: /export with a word that is neither a format nor a file. */
199
+ 'error.code.EXPORT_USAGE.what': 'That is not a format TALOS can export to.',
200
+ 'error.code.EXPORT_USAGE.todo': 'Use /export md, /export json or /export jsonl, optionally with a file name.',
201
+ 'error.code.EXECUTION_BACKEND_UNAVAILABLE.what': 'No isolation backend is available, so the command did not run.',
202
+ 'error.code.EXECUTION_BACKEND_UNAVAILABLE.todo': 'See the sandbox section of `talos doctor`.',
203
+ 'error.code.RUN_TIMEOUT.what': 'The run went past its time limit and was stopped.',
204
+ 'error.code.RUN_TIMEOUT.todo': 'Give it more time with --timeout, or split the task into smaller steps.',
205
+ /* R5a lane R: the R5 configuration keys (Q-R5-3, Q-R5-7, Q-R5-9) and the models.dev size bound (gate E7). */
206
+ 'error.code.CONFIG_INVALID_MODELS.what': 'A model override in the configuration is not valid.',
207
+ 'error.code.CONFIG_INVALID_MODELS.todo': 'Write it as "models": {"provider:model": {"contextWindow": 131072}}.',
208
+ 'error.code.CONFIG_INVALID_MODEL_WINDOW.what': 'A model\'s context window or output limit in the configuration is not a number of tokens TALOS can use.',
209
+ 'error.code.CONFIG_INVALID_MODEL_WINDOW.todo': 'Use a whole number between 1024 and 10000000, with the output limit below the window.',
210
+ 'error.code.CONFIG_INVALID_BUSY_INPUT.what': 'The busy-input mode in the configuration is not one TALOS knows.',
211
+ 'error.code.CONFIG_INVALID_BUSY_INPUT.todo': 'Use queue, steer or interrupt.',
212
+ 'error.code.CONFIG_INVALID_REASONING_DISPLAY.what': 'The reasoning display setting in the configuration is not one TALOS knows.',
213
+ 'error.code.CONFIG_INVALID_REASONING_DISPLAY.todo': 'Use collapsed or visible.',
214
+ 'error.code.PROJECT_MODELS_IGNORED.what': 'The project configuration tried to set a model\'s context window, so that setting was ignored.',
215
+ 'error.code.PROJECT_MODELS_IGNORED.todo': 'Set models in your user or project-user configuration.',
216
+ 'error.code.CONFIG_INVALID_CATALOG.what': 'The configuration’s catalog section is not valid: it accepts only modelsDev, true or false.',
217
+ 'error.code.CONFIG_INVALID_CATALOG.todo': 'Run talos config set catalog.modelsDev false (or true), or remove the catalog section.',
218
+ /* R5b (R5a open 4): the Context Engine's failures a person can meet, in English, with what to do. */
219
+ 'error.code.CTX_CONTEXT_OVERFLOW.what': 'This conversation is too big for the model’s context window, even after compaction.',
220
+ 'error.code.CTX_CONTEXT_OVERFLOW.todo': 'Run /compact or start a new conversation with /clear. If the model’s window is larger than TALOS measured, set it: talos config set models.<provider:model>.contextWindow <tokens>.',
221
+ 'error.code.CTX_TRUNCATED_SUMMARY.what': 'The summary that compacts this conversation was cut off before it finished.',
222
+ 'error.code.CTX_TRUNCATED_SUMMARY.todo': 'Try again; if it keeps happening, choose a model with more output room, or set models.<provider:model>.maxOutputTokens.',
223
+ 'error.code.CTX_SUMMARY_RESPONSE_INVALID.what': 'The summary the model sent back to compact this conversation could not be read.',
224
+ 'error.code.CTX_SUMMARY_RESPONSE_INVALID.todo': 'Try again; if it keeps happening, choose another model for this conversation.',
225
+ 'error.code.CTX_SEGMENT_TOO_LARGE.what': 'Part of this conversation is too large to summarise with this model.',
226
+ 'error.code.CTX_SEGMENT_TOO_LARGE.todo': 'Start a new conversation with /clear, or choose a model with a larger context window.',
227
+ /* Desktop CE alignment (2026-09-25): the other Context Engine codes a turn or /compact can end with
228
+ (context-engine/src/engine.mjs, summary.mjs, profiles.mjs). */
229
+ 'error.code.CTX_INVALID_SUMMARY.what': 'The summary the model wrote to compact this conversation was not in the form TALOS asked for, so it was not used.',
230
+ 'error.code.CTX_INVALID_SUMMARY.todo': 'Automatic compaction waits a while before trying again; /compact tries now. If it keeps happening, choose another model for this conversation.',
231
+ 'error.code.CTX_EMPTY_SUMMARY.what': 'The model sent back an empty summary, so this conversation was not compacted.',
232
+ 'error.code.CTX_EMPTY_SUMMARY.todo': 'Try /compact again; if it keeps happening, choose another model for this conversation.',
233
+ 'error.code.CTX_NO_REDUCTION.what': 'The summary did not make this conversation smaller, so the previous context stays in use.',
234
+ 'error.code.CTX_NO_REDUCTION.todo': 'Start a new conversation with /clear, or choose a model with a larger context window.',
235
+ 'error.code.CTX_NOTHING_TO_COMPACT.what': 'There is nothing to compact yet: the conversation has no earlier exchanges to summarise.',
236
+ 'error.code.CTX_NOTHING_TO_COMPACT.todo': 'Nothing to do; compaction becomes possible once the conversation grows.',
237
+ 'error.code.CTX_CONTEXT_TOO_SMALL.what': 'The model’s context window is too small for TALOS’s instructions and the room it keeps for the answer.',
238
+ 'error.code.CTX_CONTEXT_TOO_SMALL.todo': 'Choose a model with a larger window. If its window is larger than TALOS measured, set it: talos config set models.<provider:model>.contextWindow <tokens>.',
239
+ 'error.code.CTX_COMPACTION_FAILED.what': 'Compacting this conversation did not work; the previous context stays in use.',
240
+ 'error.code.CTX_COMPACTION_FAILED.todo': 'Try /compact again; if it keeps happening, start a new conversation with /clear.',
241
+ 'error.code.CTX_JOB_INTERRUPTED.what': 'A compaction was interrupted because the TALOS process running it stopped; nothing was changed.',
242
+ 'error.code.CTX_JOB_INTERRUPTED.todo': 'Nothing to fix: the next request or /compact starts it again.',
243
+ /* P12: a session whose context archive no longer matches its history (before 0.2.0 an interrupted tool turn could
244
+ cause it). Nothing is lost; the way on is a new session that carries the conversation. */
245
+ /* P21: OpenRouter sign-in. */
246
+ 'error.code.LOGIN_REQUIRES_TTY.what': 'Signing in needs an interactive terminal.',
247
+ 'error.code.LOGIN_REQUIRES_TTY.todo': 'Run talos provider login openrouter in a terminal, or save a key with talos provider set-key openrouter.',
248
+ 'error.code.PROVIDER_LOGIN_UNSUPPORTED.what': 'Only OpenRouter offers a sign-in; other providers use a key.',
249
+ 'error.code.PROVIDER_LOGIN_UNSUPPORTED.todo': 'Save a key with talos provider set-key <provider>.',
250
+ 'error.code.PROVIDER_LOGIN_UNAVAILABLE.what': 'The OpenRouter sign-in is not available in this installation.',
251
+ 'error.code.PROVIDER_LOGIN_UNAVAILABLE.todo': 'Save a key with talos provider set-key openrouter.',
252
+ 'error.code.OAUTH_CALLBACK_UNAVAILABLE.what': 'TALOS could not listen for OpenRouter on this machine.',
253
+ 'error.code.OAUTH_CALLBACK_UNAVAILABLE.todo': 'Sign in with the code instead: talos provider login openrouter --paste.',
254
+ 'error.code.OAUTH_CANCELLED.what': 'The sign-in was cancelled.',
255
+ 'error.code.OAUTH_CANCELLED.todo': 'Start it again when you are ready.',
256
+ 'error.code.OAUTH_CODE_MISSING.what': 'That is not a code from OpenRouter.',
257
+ 'error.code.OAUTH_CODE_MISSING.todo': 'Paste the code OpenRouter shows, or the whole address the browser landed on.',
258
+ 'error.code.OAUTH_DENIED.what': 'The sign-in was cancelled in the browser.',
259
+ 'error.code.OAUTH_DENIED.todo': 'Start it again and allow access on the OpenRouter page.',
260
+ 'error.code.OAUTH_TIMEOUT.what': 'The sign-in took longer than 10 minutes.',
261
+ 'error.code.OAUTH_TIMEOUT.todo': 'Start it again; the code OpenRouter gives lasts 10 minutes.',
262
+ 'error.code.CTX_HISTORY_DIVERGED.what': 'This conversation no longer matches its saved context, so TALOS stopped before sending anything. Nothing was lost.',
263
+ 'error.code.CTX_HISTORY_DIVERGED.todo': 'Continue it in a new session with /fork (it keeps the whole conversation), or start fresh with /clear.',
264
+ 'error.where.context': '/context shows the window TALOS measured and how compaction is set.',
265
+ 'error.code.MODELS_DEV_TOO_LARGE.what': 'The models.dev catalogue answered with more data than TALOS accepts, so it was not used.',
266
+ 'error.code.MODELS_DEV_TOO_LARGE.todo': 'Nothing to do: model windows come from the other sources until the next try.',
267
+ };
@@ -0,0 +1,101 @@
1
+ /* R4 lane F: first run — trust, boot, setup lines, loaded files, provider and model lists (gate E11, Q-R4-1…4, 13). */
2
+ export const firstrun = {
3
+ /* Q-R4-4: the boot says that a key skips it. */
4
+ 'firstrun.boot.skipHint': 'Press any key to skip',
5
+ /* The boot's status line past the reveal (moved from boot-sequence.ts, same words: test/tui/boot-no-keypress.test.ts reads them). */
6
+ 'firstrun.boot.waiting': 'runtime synchronization…',
7
+ 'firstrun.boot.failed': 'startup failed',
8
+ /* Q-R4-1…3: the trust question, drawn before anything is loaded (the words that were inline in project-trust-prompt.ts). */
9
+ 'firstrun.trust.title': 'Trust this folder?',
10
+ 'firstrun.trust.titleChanged': 'Trust the changed folder snapshot?',
11
+ 'firstrun.trust.heading': 'TALOS · {title}',
12
+ 'firstrun.trust.plain': 'TALOS will read, edit and run files in this folder, as your permission mode allows.',
13
+ 'firstrun.trust.reason.untrusted': 'This folder contains project instructions or executable resources that TALOS has not trusted yet.',
14
+ 'firstrun.trust.reason.fingerprint': 'A file in the previously trusted project snapshot changed on disk.',
15
+ 'firstrun.trust.reason.set': 'The set of files in the previously trusted project snapshot changed on disk.',
16
+ 'firstrun.trust.reason.identity': 'A project resource no longer matches the identity of this folder.',
17
+ 'firstrun.trust.reason.nested': 'A nested repository boundary changed around project resources. Review the boundary explicitly before trusting it.',
18
+ 'firstrun.trust.reason.other': 'The previously trusted project snapshot changed ({reason}).',
19
+ 'firstrun.trust.files.one': '1 project file covered by this decision ({detail})',
20
+ 'firstrun.trust.files.other': '{count} project files covered by this decision ({detail})',
21
+ 'firstrun.trust.more': 'and {count} more',
22
+ 'firstrun.trust.nested': 'Nested repository boundaries included in this snapshot:',
23
+ 'firstrun.trust.nestedCount.one': '1 nested repository boundary is included in this snapshot.',
24
+ 'firstrun.trust.nestedCount.other': '{count} nested repository boundaries are included in this snapshot.',
25
+ 'firstrun.trust.session': 'This is your home folder or a drive root: the decision lasts for this session only.',
26
+ 'firstrun.trust.choice.cancel': 'Cancel',
27
+ 'firstrun.trust.choice.trust': 'Trust this folder',
28
+ 'firstrun.trust.choice.trustSession': 'Trust this folder for this session',
29
+ 'firstrun.trust.choice.parent': 'Trust the parent folder ({path})',
30
+ 'firstrun.trust.keys': 'Arrows choose · Enter confirms · Esc cancels',
31
+ /* Q-R4-10 (gate E10): what a local engine said when TALOS read its installed models. */
32
+ 'firstrun.models.live.one': 'Live list from {label}: 1 model installed.',
33
+ 'firstrun.models.live.other': 'Live list from {label}: {count} models installed.',
34
+ 'firstrun.models.empty': '{label} is running but has no models installed. Install one in {label}, then open /model again.',
35
+ 'firstrun.models.down': '{label} is not answering at {address}. Start it, or change its address with /provider, then open /model again.',
36
+ 'firstrun.models.unreadable': '{label} answered at {address}, but not with a list of models.',
37
+ 'firstrun.models.knownOnly': 'The models below are the ones TALOS already knows; they are not verified.',
38
+ 'firstrun.models.notInstalled.one': '1 configured model is not installed in {label}.',
39
+ 'firstrun.models.notInstalled.other': '{count} configured models are not installed in {label}.',
40
+ 'firstrun.models.chosenMissing': '{model} is chosen but {label} does not list it.',
41
+ /* Q-R4-13: the first frame's setup lines (the three steps moved from tui/onboarding.ts, same words) and what was loaded. */
42
+ 'firstrun.setup.trust': 'Review and trust this project before starting.',
43
+ 'firstrun.setup.provider': 'Choose a provider and add a usable key if needed.',
44
+ 'firstrun.setup.model': 'Choose the model TALOS should use for this project.',
45
+ 'firstrun.setup.key': 'The chosen provider has no usable key; add one.',
46
+ 'firstrun.setup.loaded': 'Loaded {files}',
47
+ /* P17 (owner decisions 2026-09-26): the guided setup of the first launch, and /setup. */
48
+ 'firstrun.setup.stepLine': 'Setup · Step {index} of {total} · {name} · Esc skips this step',
49
+ 'firstrun.setup.stepLineOnly': 'Setup · Step {index} of {total} · {name}',
50
+ 'firstrun.setup.stepName.trust': 'Trust',
51
+ 'firstrun.setup.stepName.provider': 'Provider',
52
+ 'firstrun.setup.stepName.key': 'Key or local engine',
53
+ 'firstrun.setup.stepName.model': 'Model',
54
+ 'firstrun.setup.trustHeading': 'TALOS · Setup · Step 1 of 4 · {title}',
55
+ 'firstrun.setup.retryHint': 'R retries · Esc back to the providers',
56
+ 'firstrun.setup.skipped': 'Setup skipped. /setup starts it again; /provider and /model change one thing.',
57
+ 'firstrun.setup.ready': '✓ Ready · {model} · type your first message',
58
+ 'firstrun.setup.readyHints': '/help commands · Shift+Tab permissions · /setup to change this',
59
+ /* Q-R4-11: the provider list marks the chosen provider and says whether a local engine is running. */
60
+ 'firstrun.providers.chosen': 'chosen',
61
+ 'firstrun.providers.running': 'running',
62
+ 'firstrun.providers.notRunning': 'not running',
63
+ /* Q-R4-14 (a), gate E12: talos doctor's verdict. `ok` keeps its meaning; these words say whether a turn could run now. */
64
+ 'firstrun.doctor.headlineReady': 'TALOS doctor: ready',
65
+ 'firstrun.doctor.headlineAttention': 'TALOS doctor: needs attention — {reason}',
66
+ 'firstrun.doctor.noProvider': 'no provider is chosen; choose one with /provider.',
67
+ 'firstrun.doctor.noModel': 'no model of {provider} is chosen; choose one with /model.',
68
+ 'firstrun.doctor.localDown': '{provider} is not answering at {address}; start it, or change its address with /provider.',
69
+ 'firstrun.doctor.localDownNoAddress': '{provider} is not answering; start it, or set its address with /provider.',
70
+ 'firstrun.doctor.checkFailed': 'the {check} check failed.',
71
+ /* R5b (owner 2026-09-24): the models.dev switch, as talos doctor says it. */
72
+ 'firstrun.doctor.catalogOn': 'models.dev on: one request to {source} for model sizes and prices, cached {hours} h; talos config set catalog.modelsDev false turns it off',
73
+ 'firstrun.doctor.catalogOffConfig': 'models.dev off (catalog.modelsDev false in the configuration): nothing is sent',
74
+ 'firstrun.doctor.catalogOffEnvironment': 'models.dev off (TALOS_MODELS_DEV=off): nothing is sent',
75
+ 'firstrun.doctor.catalogOffTest': 'models.dev off (test profile): nothing is sent',
76
+ 'firstrun.doctor.unknown': 'TALOS could not tell whether a turn can run; see the lines below.',
77
+ /* R4 Q-R4-16 (a): the kernel probe's sentences, mapped by pinned templates (i18n/kernel-map.ts, KERNEL_PROBE_REASONS). */
78
+ 'firstrun.probe.catalog.one': '{provider} answered with its model list: 1 model. No message was generated.',
79
+ 'firstrun.probe.catalog.other': '{provider} answered with its model list: {count} models. No message was generated.',
80
+ 'firstrun.probe.catalogFirstPage.one': '{provider} answered with its model list: 1 model on the first page. No message was generated.',
81
+ 'firstrun.probe.catalogFirstPage.other': '{provider} answered with its model list: {count} models on the first page. No message was generated.',
82
+ 'firstrun.probe.publicCatalog.one': '{provider} answered with its public model list: 1 model. The key was not checked, and no message was generated.',
83
+ 'firstrun.probe.publicCatalog.other': '{provider} answered with its public model list: {count} models. The key was not checked, and no message was generated.',
84
+ 'firstrun.probe.keyAccepted': '{provider} accepted the key.',
85
+ 'firstrun.probe.unreachable': '{provider} could not be reached.',
86
+ 'firstrun.probe.timeout': '{provider} did not answer within {seconds} seconds.',
87
+ 'firstrun.probe.redirect': '{provider} answered with a redirect to another address, which TALOS does not follow. Check the address set for this provider.',
88
+ 'firstrun.probe.keyRefused': '{provider} refused the key (HTTP {status}).',
89
+ 'firstrun.probe.keyNotAccepted': '{provider} did not accept the key (HTTP 401).',
90
+ 'firstrun.probe.accessDenied': "{provider} denied access (HTTP 403); check the key's permissions.",
91
+ 'firstrun.probe.httpStatus': '{provider} answered HTTP {status}.',
92
+ 'firstrun.probe.listNotFound': '{provider}: the model list was not found (HTTP 404); this answer does not show whether the key is valid.',
93
+ 'firstrun.probe.noAddress': '{provider} has no address set.',
94
+ 'firstrun.probe.noKey': 'No key is saved for {provider}.',
95
+ 'firstrun.probe.minimalOk': '{provider} answered a one-token request; its model list was not checked.',
96
+ 'firstrun.probe.invalidList': '{provider} answered HTTP {status} without a valid model list; the key was not checked.',
97
+ 'firstrun.probe.invalidMessage': '{provider} answered HTTP {status} without a valid message; the key was not checked.',
98
+ 'firstrun.probe.declaredError': '{provider} answered with an error, so the key is not confirmed.',
99
+ /* `talos project trust` in the home folder or a drive root (Q-R4-1: never saved). */
100
+ 'firstrun.project.sessionOnly': 'Not saved: {path} is your home folder or a drive root, so TALOS asks about it at every start.',
101
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ * R2 integration (D-05: "Agente esterno" in the provider list): English labels and descriptions for the kernel's provider
3
+ * registry (harness-ui/src/provider-registry.mjs, `etichetta`/`descrizione`, measured 2026-09-24: 4 of 29 labels and 25 of 29
4
+ * descriptions Italian). Keyed by provider id; a provider without an entry keeps the registry text, and
5
+ * `test/i18n/providers-english.test.ts` fails when that text is not English, so a new Italian entry cannot slip in.
6
+ */
7
+ export const providers = {
8
+ 'provider.esterno.label': 'External agent',
9
+ 'provider.esterno.description': 'An agent installed on this computer.',
10
+ 'provider.kimi.description': 'Kimi models, direct international connection.',
11
+ 'provider.minimax.description': 'MiniMax models, direct international connection.',
12
+ 'provider.qwen.description': 'Qwen models, direct international connection.',
13
+ 'provider.zai.description': 'GLM models through the Z.AI direct API.',
14
+ 'provider.openrouter.description': 'Aggregator: hundreds of models behind a single key.',
15
+ 'provider.ollama.description': 'Local Ollama engine on this computer.',
16
+ 'provider.lmstudio.description': 'Local LM Studio engine on this computer.',
17
+ 'provider.groq.description': 'Models through Groq.',
18
+ 'provider.cerebras.description': 'Models through Cerebras.',
19
+ 'provider.mistral.description': 'Models through Mistral.',
20
+ 'provider.together.description': 'Models through Together.',
21
+ 'provider.fireworks.description': 'Models through Fireworks.',
22
+ 'provider.deepinfra.description': 'Models through DeepInfra.',
23
+ 'provider.novita.description': 'Models through Novita.',
24
+ 'provider.nebius.description': 'Models through Nebius.',
25
+ 'provider.xai.description': 'Models through xAI.',
26
+ 'provider.ollama-cloud.description': 'Models through Ollama Cloud.',
27
+ 'provider.huggingface.description': 'Hugging Face model inference, catalog and downloads.',
28
+ 'provider.zai-anthropic.label': 'Z.AI (Anthropic endpoint)',
29
+ 'provider.zai-anthropic.description': 'GLM models through the Z.AI coding plan endpoint.',
30
+ 'provider.minimax-anthropic.label': 'MiniMax (Anthropic endpoint)',
31
+ 'provider.minimax-anthropic.description': 'MiniMax models through the Anthropic-compatible endpoint (international access).',
32
+ 'provider.azure.description': 'Models from your own Azure resource.',
33
+ 'provider.bedrock.description': 'Models available in the chosen region.',
34
+ 'provider.vertex.description': 'Models of the chosen project and region.',
35
+ 'provider.local.label': 'Local engine (llama.cpp)',
36
+ 'provider.local.description': 'The llama-server supervisor of this computer.',
37
+ };