@ai-agent-forge/agent-forge 0.86.7 → 0.87.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 (665) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +8 -9
  3. package/dist/artifacts/artifact-store.d.ts.map +1 -1
  4. package/dist/artifacts/artifact-store.js +9 -5
  5. package/dist/artifacts/artifact-store.js.map +1 -1
  6. package/dist/bundle/.build-manifest.json +410 -371
  7. package/dist/bundle/chunks/{chunk-A7GUOX2H.js → chunk-6ZKDNZHA.js} +5 -1
  8. package/dist/bundle/chunks/chunk-BFC2BDVJ.js +13 -0
  9. package/dist/bundle/chunks/chunk-MOHOLL3F.js +1456 -0
  10. package/dist/bundle/chunks/image-resize-worker.js +12 -1
  11. package/dist/bundle/chunks/{virtual-modules-3IZ4MYSQ.js → virtual-modules-KZ5DRH7Q.js} +1 -1
  12. package/dist/bundle/cli.js +1 -1
  13. package/dist/bundle/client.js +1 -1
  14. package/dist/bundle/index.js +2 -2
  15. package/dist/bundle/rpc-entry.js +1 -1
  16. package/dist/cli/args.d.ts.map +1 -1
  17. package/dist/cli/args.js +231 -185
  18. package/dist/cli/args.js.map +1 -1
  19. package/dist/cli/auth-check.d.ts.map +1 -1
  20. package/dist/cli/auth-check.js +3 -2
  21. package/dist/cli/auth-check.js.map +1 -1
  22. package/dist/cli/auth-command.d.ts.map +1 -1
  23. package/dist/cli/auth-command.js +15 -9
  24. package/dist/cli/auth-command.js.map +1 -1
  25. package/dist/cli/credential-print.d.ts.map +1 -1
  26. package/dist/cli/credential-print.js +14 -7
  27. package/dist/cli/credential-print.js.map +1 -1
  28. package/dist/cli/experimental/command.d.ts.map +1 -1
  29. package/dist/cli/experimental/command.js +6 -5
  30. package/dist/cli/experimental/command.js.map +1 -1
  31. package/dist/cli/list-models.d.ts.map +1 -1
  32. package/dist/cli/list-models.js +9 -8
  33. package/dist/cli/list-models.js.map +1 -1
  34. package/dist/cli/plugin-manager-controller.d.ts.map +1 -1
  35. package/dist/cli/plugin-manager-controller.js +2 -1
  36. package/dist/cli/plugin-manager-controller.js.map +1 -1
  37. package/dist/cli/serve.d.ts.map +1 -1
  38. package/dist/cli/serve.js +8 -5
  39. package/dist/cli/serve.js.map +1 -1
  40. package/dist/client/remote-session.d.ts.map +1 -1
  41. package/dist/client/remote-session.js +16 -9
  42. package/dist/client/remote-session.js.map +1 -1
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/config.js +2 -1
  45. package/dist/config.js.map +1 -1
  46. package/dist/core/agent-capability-contract.d.ts +0 -7
  47. package/dist/core/agent-capability-contract.d.ts.map +1 -1
  48. package/dist/core/agent-capability-contract.js +72 -68
  49. package/dist/core/agent-capability-contract.js.map +1 -1
  50. package/dist/core/agent-session-bash.d.ts.map +1 -1
  51. package/dist/core/agent-session-bash.js +5 -4
  52. package/dist/core/agent-session-bash.js.map +1 -1
  53. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  54. package/dist/core/agent-session-compaction.js +28 -22
  55. package/dist/core/agent-session-compaction.js.map +1 -1
  56. package/dist/core/agent-session-context.d.ts.map +1 -1
  57. package/dist/core/agent-session-context.js +18 -13
  58. package/dist/core/agent-session-context.js.map +1 -1
  59. package/dist/core/agent-session-model.d.ts.map +1 -1
  60. package/dist/core/agent-session-model.js +2 -1
  61. package/dist/core/agent-session-model.js.map +1 -1
  62. package/dist/core/agent-session-retry.d.ts.map +1 -1
  63. package/dist/core/agent-session-retry.js +3 -2
  64. package/dist/core/agent-session-retry.js.map +1 -1
  65. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  66. package/dist/core/agent-session-runtime.js +7 -6
  67. package/dist/core/agent-session-runtime.js.map +1 -1
  68. package/dist/core/agent-session-services.d.ts +1 -1
  69. package/dist/core/agent-session-services.d.ts.map +1 -1
  70. package/dist/core/agent-session-services.js.map +1 -1
  71. package/dist/core/agent-session-tools.d.ts.map +1 -1
  72. package/dist/core/agent-session-tools.js +3 -2
  73. package/dist/core/agent-session-tools.js.map +1 -1
  74. package/dist/core/agent-session.d.ts +40 -2
  75. package/dist/core/agent-session.d.ts.map +1 -1
  76. package/dist/core/agent-session.js +142 -34
  77. package/dist/core/agent-session.js.map +1 -1
  78. package/dist/core/auth-guidance.d.ts.map +1 -1
  79. package/dist/core/auth-guidance.js +11 -5
  80. package/dist/core/auth-guidance.js.map +1 -1
  81. package/dist/core/auth-storage.d.ts.map +1 -1
  82. package/dist/core/auth-storage.js +9 -6
  83. package/dist/core/auth-storage.js.map +1 -1
  84. package/dist/core/compaction/compaction.d.ts.map +1 -1
  85. package/dist/core/compaction/compaction.js +2 -1
  86. package/dist/core/compaction/compaction.js.map +1 -1
  87. package/dist/core/embedded-sdk.d.ts.map +1 -1
  88. package/dist/core/embedded-sdk.js +10 -6
  89. package/dist/core/embedded-sdk.js.map +1 -1
  90. package/dist/core/export-html/index.d.ts.map +1 -1
  91. package/dist/core/export-html/index.js +9 -4
  92. package/dist/core/export-html/index.js.map +1 -1
  93. package/dist/core/extensions/agent-composition.d.ts.map +1 -1
  94. package/dist/core/extensions/agent-composition.js +26 -19
  95. package/dist/core/extensions/agent-composition.js.map +1 -1
  96. package/dist/core/extensions/bootstrap-agent-loop.d.ts.map +1 -1
  97. package/dist/core/extensions/bootstrap-agent-loop.js +3 -2
  98. package/dist/core/extensions/bootstrap-agent-loop.js.map +1 -1
  99. package/dist/core/extensions/bootstrap-lifecycle.d.ts.map +1 -1
  100. package/dist/core/extensions/bootstrap-lifecycle.js +20 -17
  101. package/dist/core/extensions/bootstrap-lifecycle.js.map +1 -1
  102. package/dist/core/extensions/bootstrap-overflow-policy.d.ts.map +1 -1
  103. package/dist/core/extensions/bootstrap-overflow-policy.js +2 -1
  104. package/dist/core/extensions/bootstrap-overflow-policy.js.map +1 -1
  105. package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +1 -1
  106. package/dist/core/extensions/bootstrap-retry-policy.js +2 -1
  107. package/dist/core/extensions/bootstrap-retry-policy.js.map +1 -1
  108. package/dist/core/extensions/bootstrap-skills.d.ts.map +1 -1
  109. package/dist/core/extensions/bootstrap-skills.js +7 -6
  110. package/dist/core/extensions/bootstrap-skills.js.map +1 -1
  111. package/dist/core/extensions/bootstrap-tools.d.ts.map +1 -1
  112. package/dist/core/extensions/bootstrap-tools.js +2 -1
  113. package/dist/core/extensions/bootstrap-tools.js.map +1 -1
  114. package/dist/core/extensions/capability-plugin.d.ts.map +1 -1
  115. package/dist/core/extensions/capability-plugin.js +37 -13
  116. package/dist/core/extensions/capability-plugin.js.map +1 -1
  117. package/dist/core/extensions/capability-runtime-events.d.ts.map +1 -1
  118. package/dist/core/extensions/capability-runtime-events.js +17 -13
  119. package/dist/core/extensions/capability-runtime-events.js.map +1 -1
  120. package/dist/core/extensions/capability-runtime-guards.d.ts.map +1 -1
  121. package/dist/core/extensions/capability-runtime-guards.js +16 -15
  122. package/dist/core/extensions/capability-runtime-guards.js.map +1 -1
  123. package/dist/core/extensions/capability-runtime-manifest.d.ts.map +1 -1
  124. package/dist/core/extensions/capability-runtime-manifest.js +52 -30
  125. package/dist/core/extensions/capability-runtime-manifest.js.map +1 -1
  126. package/dist/core/extensions/capability-runtime-validation.d.ts.map +1 -1
  127. package/dist/core/extensions/capability-runtime-validation.js +66 -65
  128. package/dist/core/extensions/capability-runtime-validation.js.map +1 -1
  129. package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
  130. package/dist/core/extensions/capability-runtime.js +147 -127
  131. package/dist/core/extensions/capability-runtime.js.map +1 -1
  132. package/dist/core/extensions/compaction-memory-failure-mode.d.ts.map +1 -1
  133. package/dist/core/extensions/compaction-memory-failure-mode.js +3 -2
  134. package/dist/core/extensions/compaction-memory-failure-mode.js.map +1 -1
  135. package/dist/core/extensions/context-strategy-binding.d.ts.map +1 -1
  136. package/dist/core/extensions/context-strategy-binding.js +7 -4
  137. package/dist/core/extensions/context-strategy-binding.js.map +1 -1
  138. package/dist/core/extensions/lifecycle-catalog.d.ts.map +1 -1
  139. package/dist/core/extensions/lifecycle-catalog.js +290 -279
  140. package/dist/core/extensions/lifecycle-catalog.js.map +1 -1
  141. package/dist/core/extensions/lifecycle-delivery-queue.d.ts.map +1 -1
  142. package/dist/core/extensions/lifecycle-delivery-queue.js +3 -2
  143. package/dist/core/extensions/lifecycle-delivery-queue.js.map +1 -1
  144. package/dist/core/facade/coding-agent-facade.d.ts +6 -0
  145. package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
  146. package/dist/core/facade/coding-agent-facade.js +2 -0
  147. package/dist/core/facade/coding-agent-facade.js.map +1 -1
  148. package/dist/core/http-dispatcher.d.ts.map +1 -1
  149. package/dist/core/http-dispatcher.js +2 -1
  150. package/dist/core/http-dispatcher.js.map +1 -1
  151. package/dist/core/i18n/index.d.ts +14 -0
  152. package/dist/core/i18n/index.d.ts.map +1 -0
  153. package/dist/core/i18n/index.js +67 -0
  154. package/dist/core/i18n/index.js.map +1 -0
  155. package/dist/core/i18n/locales/en/example.d.ts +7 -0
  156. package/dist/core/i18n/locales/en/example.d.ts.map +1 -0
  157. package/dist/core/i18n/locales/en/example.js +7 -0
  158. package/dist/core/i18n/locales/en/example.js.map +1 -0
  159. package/dist/core/i18n/locales/zh-cn/cli.d.ts +8 -0
  160. package/dist/core/i18n/locales/zh-cn/cli.d.ts.map +1 -0
  161. package/dist/core/i18n/locales/zh-cn/cli.js +227 -0
  162. package/dist/core/i18n/locales/zh-cn/cli.js.map +1 -0
  163. package/dist/core/i18n/locales/zh-cn/common.d.ts +6 -0
  164. package/dist/core/i18n/locales/zh-cn/common.d.ts.map +1 -0
  165. package/dist/core/i18n/locales/zh-cn/common.js +6 -0
  166. package/dist/core/i18n/locales/zh-cn/common.js.map +1 -0
  167. package/dist/core/i18n/locales/zh-cn/core-contract-core.d.ts +13 -0
  168. package/dist/core/i18n/locales/zh-cn/core-contract-core.d.ts.map +1 -0
  169. package/dist/core/i18n/locales/zh-cn/core-contract-core.js +173 -0
  170. package/dist/core/i18n/locales/zh-cn/core-contract-core.js.map +1 -0
  171. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.d.ts +12 -0
  172. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.d.ts.map +1 -0
  173. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js +582 -0
  174. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js.map +1 -0
  175. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts +9 -0
  176. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts.map +1 -0
  177. package/dist/core/i18n/locales/zh-cn/core-contract-final.js +55 -0
  178. package/dist/core/i18n/locales/zh-cn/core-contract-final.js.map +1 -0
  179. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts +11 -0
  180. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts.map +1 -0
  181. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js +455 -0
  182. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js.map +1 -0
  183. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts +9 -0
  184. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -0
  185. package/dist/core/i18n/locales/zh-cn/core-errors.js +191 -0
  186. package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -0
  187. package/dist/core/i18n/locales/zh-cn/example.d.ts +7 -0
  188. package/dist/core/i18n/locales/zh-cn/example.d.ts.map +1 -0
  189. package/dist/core/i18n/locales/zh-cn/example.js +10 -0
  190. package/dist/core/i18n/locales/zh-cn/example.js.map +1 -0
  191. package/dist/core/i18n/locales/zh-cn/index.d.ts +2 -0
  192. package/dist/core/i18n/locales/zh-cn/index.d.ts.map +1 -0
  193. package/dist/core/i18n/locales/zh-cn/index.js +41 -0
  194. package/dist/core/i18n/locales/zh-cn/index.js.map +1 -0
  195. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts +10 -0
  196. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -0
  197. package/dist/core/i18n/locales/zh-cn/interactive-mode.js +265 -0
  198. package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -0
  199. package/dist/core/i18n/locales/zh-cn/keybindings.d.ts +11 -0
  200. package/dist/core/i18n/locales/zh-cn/keybindings.d.ts.map +1 -0
  201. package/dist/core/i18n/locales/zh-cn/keybindings.js +67 -0
  202. package/dist/core/i18n/locales/zh-cn/keybindings.js.map +1 -0
  203. package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts +7 -0
  204. package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts.map +1 -0
  205. package/dist/core/i18n/locales/zh-cn/slash-commands.js +39 -0
  206. package/dist/core/i18n/locales/zh-cn/slash-commands.js.map +1 -0
  207. package/dist/core/i18n/locales/zh-cn/tui-builtin.d.ts +10 -0
  208. package/dist/core/i18n/locales/zh-cn/tui-builtin.d.ts.map +1 -0
  209. package/dist/core/i18n/locales/zh-cn/tui-builtin.js +15 -0
  210. package/dist/core/i18n/locales/zh-cn/tui-builtin.js.map +1 -0
  211. package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts +13 -0
  212. package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts.map +1 -0
  213. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js +102 -0
  214. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js.map +1 -0
  215. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.d.ts +12 -0
  216. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.d.ts.map +1 -0
  217. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js +288 -0
  218. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js.map +1 -0
  219. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.d.ts +9 -0
  220. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.d.ts.map +1 -0
  221. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.js +79 -0
  222. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.js.map +1 -0
  223. package/dist/core/i18n/locales/zh-cn/tui-self-owned.d.ts +8 -0
  224. package/dist/core/i18n/locales/zh-cn/tui-self-owned.d.ts.map +1 -0
  225. package/dist/core/i18n/locales/zh-cn/tui-self-owned.js +72 -0
  226. package/dist/core/i18n/locales/zh-cn/tui-self-owned.js.map +1 -0
  227. package/dist/core/keybindings.d.ts +15 -0
  228. package/dist/core/keybindings.d.ts.map +1 -1
  229. package/dist/core/keybindings.js +18 -0
  230. package/dist/core/keybindings.js.map +1 -1
  231. package/dist/core/logger.d.ts.map +1 -1
  232. package/dist/core/logger.js +5 -1
  233. package/dist/core/logger.js.map +1 -1
  234. package/dist/core/model-registry.d.ts.map +1 -1
  235. package/dist/core/model-registry.js +2 -1
  236. package/dist/core/model-registry.js.map +1 -1
  237. package/dist/core/model-runtime.d.ts.map +1 -1
  238. package/dist/core/model-runtime.js +8 -4
  239. package/dist/core/model-runtime.js.map +1 -1
  240. package/dist/core/package-install-host.d.ts.map +1 -1
  241. package/dist/core/package-install-host.js +4 -3
  242. package/dist/core/package-install-host.js.map +1 -1
  243. package/dist/core/package-manager.d.ts.map +1 -1
  244. package/dist/core/package-manager.js +15 -10
  245. package/dist/core/package-manager.js.map +1 -1
  246. package/dist/core/package-resource-collection.d.ts.map +1 -1
  247. package/dist/core/package-resource-collection.js +2 -1
  248. package/dist/core/package-resource-collection.js.map +1 -1
  249. package/dist/core/package-source.d.ts.map +1 -1
  250. package/dist/core/package-source.js +3 -2
  251. package/dist/core/package-source.js.map +1 -1
  252. package/dist/core/provider-composer.d.ts.map +1 -1
  253. package/dist/core/provider-composer.js +22 -13
  254. package/dist/core/provider-composer.js.map +1 -1
  255. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  256. package/dist/core/remote-catalog-provider.js +6 -2
  257. package/dist/core/remote-catalog-provider.js.map +1 -1
  258. package/dist/core/resolve-config-value.d.ts.map +1 -1
  259. package/dist/core/resolve-config-value.js +15 -5
  260. package/dist/core/resolve-config-value.js.map +1 -1
  261. package/dist/core/sdk.d.ts +19 -5
  262. package/dist/core/sdk.d.ts.map +1 -1
  263. package/dist/core/sdk.js +74 -54
  264. package/dist/core/sdk.js.map +1 -1
  265. package/dist/core/session-cwd.d.ts.map +1 -1
  266. package/dist/core/session-cwd.js +5 -2
  267. package/dist/core/session-cwd.js.map +1 -1
  268. package/dist/core/session-export.d.ts.map +1 -1
  269. package/dist/core/session-export.js +2 -1
  270. package/dist/core/session-export.js.map +1 -1
  271. package/dist/core/session-manager.d.ts.map +1 -1
  272. package/dist/core/session-manager.js +39 -29
  273. package/dist/core/session-manager.js.map +1 -1
  274. package/dist/core/session-storage.d.ts.map +1 -1
  275. package/dist/core/session-storage.js +3 -3
  276. package/dist/core/session-storage.js.map +1 -1
  277. package/dist/core/settings-manager.d.ts +11 -0
  278. package/dist/core/settings-manager.d.ts.map +1 -1
  279. package/dist/core/settings-manager.js +27 -5
  280. package/dist/core/settings-manager.js.map +1 -1
  281. package/dist/core/slash-commands.d.ts.map +1 -1
  282. package/dist/core/slash-commands.js +53 -32
  283. package/dist/core/slash-commands.js.map +1 -1
  284. package/dist/core/system-prompt.d.ts.map +1 -1
  285. package/dist/core/system-prompt.js +25 -2
  286. package/dist/core/system-prompt.js.map +1 -1
  287. package/dist/core/tools/bash.d.ts.map +1 -1
  288. package/dist/core/tools/bash.js +11 -7
  289. package/dist/core/tools/bash.js.map +1 -1
  290. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  291. package/dist/core/tools/edit-diff.js +9 -4
  292. package/dist/core/tools/edit-diff.js.map +1 -1
  293. package/dist/core/tools/edit.d.ts.map +1 -1
  294. package/dist/core/tools/edit.js +4 -3
  295. package/dist/core/tools/edit.js.map +1 -1
  296. package/dist/core/tools/index.d.ts.map +1 -1
  297. package/dist/core/tools/index.js +3 -2
  298. package/dist/core/tools/index.js.map +1 -1
  299. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  300. package/dist/core/tools/output-accumulator.js +2 -1
  301. package/dist/core/tools/output-accumulator.js.map +1 -1
  302. package/dist/core/tools/read.d.ts.map +1 -1
  303. package/dist/core/tools/read.js +6 -2
  304. package/dist/core/tools/read.js.map +1 -1
  305. package/dist/core/tools/write.d.ts.map +1 -1
  306. package/dist/core/tools/write.js +2 -1
  307. package/dist/core/tools/write.js.map +1 -1
  308. package/dist/durable/durable-service.d.ts.map +1 -1
  309. package/dist/durable/durable-service.js +25 -18
  310. package/dist/durable/durable-service.js.map +1 -1
  311. package/dist/host/checkpoint-commit.d.ts.map +1 -1
  312. package/dist/host/checkpoint-commit.js +2 -1
  313. package/dist/host/checkpoint-commit.js.map +1 -1
  314. package/dist/host/manual-compaction.d.ts.map +1 -1
  315. package/dist/host/manual-compaction.js +2 -1
  316. package/dist/host/manual-compaction.js.map +1 -1
  317. package/dist/host/output-projection.d.ts +0 -13
  318. package/dist/host/output-projection.d.ts.map +1 -1
  319. package/dist/host/output-projection.js +16 -2
  320. package/dist/host/output-projection.js.map +1 -1
  321. package/dist/host/summary-retry.d.ts.map +1 -1
  322. package/dist/host/summary-retry.js +3 -2
  323. package/dist/host/summary-retry.js.map +1 -1
  324. package/dist/main.d.ts.map +1 -1
  325. package/dist/main.js +94 -58
  326. package/dist/main.js.map +1 -1
  327. package/dist/modes/interactive/components/agents-view.d.ts.map +1 -1
  328. package/dist/modes/interactive/components/agents-view.js +18 -15
  329. package/dist/modes/interactive/components/agents-view.js.map +1 -1
  330. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  331. package/dist/modes/interactive/components/assistant-message.js +6 -5
  332. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  333. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  334. package/dist/modes/interactive/components/bash-execution.js +12 -7
  335. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  336. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  337. package/dist/modes/interactive/components/bordered-loader.js +2 -1
  338. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  339. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  340. package/dist/modes/interactive/components/branch-summary-message.js +6 -5
  341. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  342. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  343. package/dist/modes/interactive/components/compaction-summary-message.js +9 -5
  344. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  345. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  346. package/dist/modes/interactive/components/config-selector.js +18 -15
  347. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  348. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  349. package/dist/modes/interactive/components/custom-entry.js +2 -1
  350. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  351. package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -1
  352. package/dist/modes/interactive/components/dialog-editor.js +5 -4
  353. package/dist/modes/interactive/components/dialog-editor.js.map +1 -1
  354. package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -1
  355. package/dist/modes/interactive/components/dialog-input.js +2 -1
  356. package/dist/modes/interactive/components/dialog-input.js.map +1 -1
  357. package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -1
  358. package/dist/modes/interactive/components/dialog-selector.js +4 -3
  359. package/dist/modes/interactive/components/dialog-selector.js.map +1 -1
  360. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  361. package/dist/modes/interactive/components/first-time-setup.js +11 -10
  362. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  363. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  364. package/dist/modes/interactive/components/footer.js +7 -4
  365. package/dist/modes/interactive/components/footer.js.map +1 -1
  366. package/dist/modes/interactive/components/index.d.ts +1 -0
  367. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  368. package/dist/modes/interactive/components/index.js +1 -0
  369. package/dist/modes/interactive/components/index.js.map +1 -1
  370. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  371. package/dist/modes/interactive/components/keybinding-hints.js +3 -2
  372. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  373. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  374. package/dist/modes/interactive/components/login-dialog.js +12 -11
  375. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  376. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  377. package/dist/modes/interactive/components/mermaid.js +6 -2
  378. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  379. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  380. package/dist/modes/interactive/components/model-selector.js +28 -16
  381. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  382. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  383. package/dist/modes/interactive/components/oauth-selector.js +10 -9
  384. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  385. package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -1
  386. package/dist/modes/interactive/components/plugin-manager-entry.js +22 -13
  387. package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -1
  388. package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -1
  389. package/dist/modes/interactive/components/plugin-selection-entry.js +27 -12
  390. package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -1
  391. package/dist/modes/interactive/components/queue-manager-selector.d.ts +60 -0
  392. package/dist/modes/interactive/components/queue-manager-selector.d.ts.map +1 -0
  393. package/dist/modes/interactive/components/queue-manager-selector.js +166 -0
  394. package/dist/modes/interactive/components/queue-manager-selector.js.map +1 -0
  395. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  396. package/dist/modes/interactive/components/scoped-models-selector.js +16 -14
  397. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  398. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  399. package/dist/modes/interactive/components/session-selector.js +43 -31
  400. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  401. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  402. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  403. package/dist/modes/interactive/components/settings-selector.js +113 -96
  404. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  405. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  406. package/dist/modes/interactive/components/settings-submenu.js +5 -4
  407. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  408. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  409. package/dist/modes/interactive/components/show-images-selector.js +3 -2
  410. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  411. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  412. package/dist/modes/interactive/components/skill-invocation-message.js +4 -3
  413. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  414. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  415. package/dist/modes/interactive/components/status-indicator.js +14 -5
  416. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  417. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  418. package/dist/modes/interactive/components/theme-selector.js +2 -1
  419. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  420. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  421. package/dist/modes/interactive/components/thinking-selector.js +11 -4
  422. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  423. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  424. package/dist/modes/interactive/components/tool-execution.js +8 -3
  425. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  426. package/dist/modes/interactive/components/tree-list.d.ts.map +1 -1
  427. package/dist/modes/interactive/components/tree-list.js +7 -6
  428. package/dist/modes/interactive/components/tree-list.js.map +1 -1
  429. package/dist/modes/interactive/components/tree-render.d.ts.map +1 -1
  430. package/dist/modes/interactive/components/tree-render.js +28 -23
  431. package/dist/modes/interactive/components/tree-render.js.map +1 -1
  432. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  433. package/dist/modes/interactive/components/tree-selector.js +9 -7
  434. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  435. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  436. package/dist/modes/interactive/components/user-message-selector.js +5 -4
  437. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  438. package/dist/modes/interactive/components/workflow-view.d.ts.map +1 -1
  439. package/dist/modes/interactive/components/workflow-view.js +36 -21
  440. package/dist/modes/interactive/components/workflow-view.js.map +1 -1
  441. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  442. package/dist/modes/interactive/external-editor.js +2 -1
  443. package/dist/modes/interactive/external-editor.js.map +1 -1
  444. package/dist/modes/interactive/interactive-auth.d.ts.map +1 -1
  445. package/dist/modes/interactive/interactive-auth.js +71 -40
  446. package/dist/modes/interactive/interactive-auth.js.map +1 -1
  447. package/dist/modes/interactive/interactive-commands.d.ts +1 -0
  448. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
  449. package/dist/modes/interactive/interactive-commands.js +3 -0
  450. package/dist/modes/interactive/interactive-commands.js.map +1 -1
  451. package/dist/modes/interactive/interactive-dialog-ui.d.ts.map +1 -1
  452. package/dist/modes/interactive/interactive-dialog-ui.js +5 -5
  453. package/dist/modes/interactive/interactive-dialog-ui.js.map +1 -1
  454. package/dist/modes/interactive/interactive-format.d.ts.map +1 -1
  455. package/dist/modes/interactive/interactive-format.js +34 -18
  456. package/dist/modes/interactive/interactive-format.js.map +1 -1
  457. package/dist/modes/interactive/interactive-helpers.d.ts.map +1 -1
  458. package/dist/modes/interactive/interactive-helpers.js +7 -2
  459. package/dist/modes/interactive/interactive-helpers.js.map +1 -1
  460. package/dist/modes/interactive/interactive-mode.d.ts +4 -1
  461. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  462. package/dist/modes/interactive/interactive-mode.js +327 -243
  463. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  464. package/dist/modes/interactive/interactive-selectors.d.ts +9 -0
  465. package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -1
  466. package/dist/modes/interactive/interactive-selectors.js +79 -25
  467. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  468. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  469. package/dist/modes/interactive/theme/theme-controller.js +5 -1
  470. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  471. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  472. package/dist/modes/interactive/theme/theme.js +26 -23
  473. package/dist/modes/interactive/theme/theme.js.map +1 -1
  474. package/dist/modes/json-event.d.ts.map +1 -1
  475. package/dist/modes/json-event.js +3 -2
  476. package/dist/modes/json-event.js.map +1 -1
  477. package/dist/modes/print-mode.d.ts.map +1 -1
  478. package/dist/modes/print-mode.js +3 -2
  479. package/dist/modes/print-mode.js.map +1 -1
  480. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  481. package/dist/modes/rpc/rpc-client.js +3 -2
  482. package/dist/modes/rpc/rpc-client.js.map +1 -1
  483. package/dist/package-manager-cli.d.ts.map +1 -1
  484. package/dist/package-manager-cli.js +28 -13
  485. package/dist/package-manager-cli.js.map +1 -1
  486. package/dist/plugins/ecosystem/catalog.d.ts.map +1 -1
  487. package/dist/plugins/ecosystem/catalog.js +3 -2
  488. package/dist/plugins/ecosystem/catalog.js.map +1 -1
  489. package/dist/plugins/ecosystem/cli.d.ts.map +1 -1
  490. package/dist/plugins/ecosystem/cli.js +2 -1
  491. package/dist/plugins/ecosystem/cli.js.map +1 -1
  492. package/dist/plugins/ecosystem/default-plugin-market.d.ts.map +1 -1
  493. package/dist/plugins/ecosystem/default-plugin-market.js +3 -2
  494. package/dist/plugins/ecosystem/default-plugin-market.js.map +1 -1
  495. package/dist/plugins/ecosystem/distribution.d.ts.map +1 -1
  496. package/dist/plugins/ecosystem/distribution.js +2 -1
  497. package/dist/plugins/ecosystem/distribution.js.map +1 -1
  498. package/dist/plugins/ecosystem/installer.d.ts.map +1 -1
  499. package/dist/plugins/ecosystem/installer.js +3 -2
  500. package/dist/plugins/ecosystem/installer.js.map +1 -1
  501. package/dist/plugins/ecosystem/node-disk-registry-source.d.ts.map +1 -1
  502. package/dist/plugins/ecosystem/node-disk-registry-source.js +20 -17
  503. package/dist/plugins/ecosystem/node-disk-registry-source.js.map +1 -1
  504. package/dist/plugins/ecosystem/node-distribution-host.d.ts.map +1 -1
  505. package/dist/plugins/ecosystem/node-distribution-host.js +35 -34
  506. package/dist/plugins/ecosystem/node-distribution-host.js.map +1 -1
  507. package/dist/plugins/ecosystem/node-npm-registry-source.d.ts.map +1 -1
  508. package/dist/plugins/ecosystem/node-npm-registry-source.js +35 -34
  509. package/dist/plugins/ecosystem/node-npm-registry-source.js.map +1 -1
  510. package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -1
  511. package/dist/plugins/ecosystem/node-package-install-host.js +9 -8
  512. package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -1
  513. package/dist/plugins/ecosystem/node-package-install-persistence.d.ts.map +1 -1
  514. package/dist/plugins/ecosystem/node-package-install-persistence.js +4 -3
  515. package/dist/plugins/ecosystem/node-package-install-persistence.js.map +1 -1
  516. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
  517. package/dist/plugins/ecosystem/node-plugin-bootstrap.js +21 -5
  518. package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
  519. package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts.map +1 -1
  520. package/dist/plugins/ecosystem/node-plugin-trust-root.js +10 -9
  521. package/dist/plugins/ecosystem/node-plugin-trust-root.js.map +1 -1
  522. package/dist/plugins/ecosystem/node-registry-source.d.ts.map +1 -1
  523. package/dist/plugins/ecosystem/node-registry-source.js +31 -30
  524. package/dist/plugins/ecosystem/node-registry-source.js.map +1 -1
  525. package/dist/plugins/ecosystem/node-release-package-source.d.ts.map +1 -1
  526. package/dist/plugins/ecosystem/node-release-package-source.js +30 -29
  527. package/dist/plugins/ecosystem/node-release-package-source.js.map +1 -1
  528. package/dist/plugins/ecosystem/node-tar-writer.d.ts.map +1 -1
  529. package/dist/plugins/ecosystem/node-tar-writer.js +11 -10
  530. package/dist/plugins/ecosystem/node-tar-writer.js.map +1 -1
  531. package/dist/plugins/ecosystem/node-url-package-source.d.ts.map +1 -1
  532. package/dist/plugins/ecosystem/node-url-package-source.js +21 -20
  533. package/dist/plugins/ecosystem/node-url-package-source.js.map +1 -1
  534. package/dist/plugins/ecosystem/plugin-acquisition.d.ts.map +1 -1
  535. package/dist/plugins/ecosystem/plugin-acquisition.js +3 -2
  536. package/dist/plugins/ecosystem/plugin-acquisition.js.map +1 -1
  537. package/dist/plugins/ecosystem/registry-cli-adapter.d.ts.map +1 -1
  538. package/dist/plugins/ecosystem/registry-cli-adapter.js +2 -1
  539. package/dist/plugins/ecosystem/registry-cli-adapter.js.map +1 -1
  540. package/dist/plugins/ecosystem/registry.d.ts.map +1 -1
  541. package/dist/plugins/ecosystem/registry.js +35 -32
  542. package/dist/plugins/ecosystem/registry.js.map +1 -1
  543. package/dist/plugins/ecosystem/resolver.d.ts.map +1 -1
  544. package/dist/plugins/ecosystem/resolver.js +3 -2
  545. package/dist/plugins/ecosystem/resolver.js.map +1 -1
  546. package/dist/plugins/ecosystem/selection-store.d.ts.map +1 -1
  547. package/dist/plugins/ecosystem/selection-store.js +11 -10
  548. package/dist/plugins/ecosystem/selection-store.js.map +1 -1
  549. package/dist/plugins/ecosystem/selection.d.ts.map +1 -1
  550. package/dist/plugins/ecosystem/selection.js +8 -7
  551. package/dist/plugins/ecosystem/selection.js.map +1 -1
  552. package/dist/plugins/ecosystem/state.d.ts.map +1 -1
  553. package/dist/plugins/ecosystem/state.js +24 -23
  554. package/dist/plugins/ecosystem/state.js.map +1 -1
  555. package/dist/plugins/ecosystem/updates.d.ts.map +1 -1
  556. package/dist/plugins/ecosystem/updates.js +5 -4
  557. package/dist/plugins/ecosystem/updates.js.map +1 -1
  558. package/dist/plugins/mcp-http.d.ts +0 -17
  559. package/dist/plugins/mcp-http.d.ts.map +1 -1
  560. package/dist/plugins/mcp-http.js +30 -7
  561. package/dist/plugins/mcp-http.js.map +1 -1
  562. package/dist/plugins/plugin-supervisor.d.ts.map +1 -1
  563. package/dist/plugins/plugin-supervisor.js +19 -1
  564. package/dist/plugins/plugin-supervisor.js.map +1 -1
  565. package/dist/profile/first-roles.d.ts.map +1 -1
  566. package/dist/profile/first-roles.js +10 -1
  567. package/dist/profile/first-roles.js.map +1 -1
  568. package/dist/profile/goal-plugin.d.ts.map +1 -1
  569. package/dist/profile/goal-plugin.js +24 -5
  570. package/dist/profile/goal-plugin.js.map +1 -1
  571. package/dist/profile/identity.d.ts.map +1 -1
  572. package/dist/profile/identity.js +7 -6
  573. package/dist/profile/identity.js.map +1 -1
  574. package/dist/profile/lock.d.ts.map +1 -1
  575. package/dist/profile/lock.js +15 -1
  576. package/dist/profile/lock.js.map +1 -1
  577. package/dist/profile/plan-plugin.d.ts.map +1 -1
  578. package/dist/profile/plan-plugin.js +26 -13
  579. package/dist/profile/plan-plugin.js.map +1 -1
  580. package/dist/profile/plugin-profiles.d.ts.map +1 -1
  581. package/dist/profile/plugin-profiles.js +2 -1
  582. package/dist/profile/plugin-profiles.js.map +1 -1
  583. package/dist/profile/policy-manifest.d.ts.map +1 -1
  584. package/dist/profile/policy-manifest.js +5 -4
  585. package/dist/profile/policy-manifest.js.map +1 -1
  586. package/dist/profile/profile-registry.d.ts +0 -12
  587. package/dist/profile/profile-registry.d.ts.map +1 -1
  588. package/dist/profile/profile-registry.js +14 -1
  589. package/dist/profile/profile-registry.js.map +1 -1
  590. package/dist/profile/role-catalog.d.ts +0 -1
  591. package/dist/profile/role-catalog.d.ts.map +1 -1
  592. package/dist/profile/role-catalog.js +17 -15
  593. package/dist/profile/role-catalog.js.map +1 -1
  594. package/dist/profile/role-orchestrator.d.ts.map +1 -1
  595. package/dist/profile/role-orchestrator.js +8 -7
  596. package/dist/profile/role-orchestrator.js.map +1 -1
  597. package/dist/profile/role-runner.d.ts.map +1 -1
  598. package/dist/profile/role-runner.js +3 -2
  599. package/dist/profile/role-runner.js.map +1 -1
  600. package/dist/profile/root-facade.d.ts.map +1 -1
  601. package/dist/profile/root-facade.js +2 -1
  602. package/dist/profile/root-facade.js.map +1 -1
  603. package/dist/profile/skill-discovery-wiring.d.ts.map +1 -1
  604. package/dist/profile/skill-discovery-wiring.js +7 -2
  605. package/dist/profile/skill-discovery-wiring.js.map +1 -1
  606. package/dist/profile/state-store.d.ts.map +1 -1
  607. package/dist/profile/state-store.js +13 -9
  608. package/dist/profile/state-store.js.map +1 -1
  609. package/dist/profile/todo-plugin.d.ts.map +1 -1
  610. package/dist/profile/todo-plugin.js +9 -4
  611. package/dist/profile/todo-plugin.js.map +1 -1
  612. package/dist/profiles/builtin-suites.d.ts +13 -6
  613. package/dist/profiles/builtin-suites.d.ts.map +1 -1
  614. package/dist/profiles/builtin-suites.js +15 -6
  615. package/dist/profiles/builtin-suites.js.map +1 -1
  616. package/dist/profiles/suite-loader.d.ts +25 -1
  617. package/dist/profiles/suite-loader.d.ts.map +1 -1
  618. package/dist/profiles/suite-loader.js +34 -9
  619. package/dist/profiles/suite-loader.js.map +1 -1
  620. package/dist/remote/server-entry.d.ts.map +1 -1
  621. package/dist/remote/server-entry.js +3 -2
  622. package/dist/remote/server-entry.js.map +1 -1
  623. package/dist/remote/session-source.d.ts.map +1 -1
  624. package/dist/remote/session-source.js +8 -4
  625. package/dist/remote/session-source.js.map +1 -1
  626. package/dist/share/session-share.d.ts.map +1 -1
  627. package/dist/share/session-share.js +14 -2
  628. package/dist/share/session-share.js.map +1 -1
  629. package/dist/testing/plugin-testkit.d.ts.map +1 -1
  630. package/dist/testing/plugin-testkit.js +4 -3
  631. package/dist/testing/plugin-testkit.js.map +1 -1
  632. package/dist/testing/runtime-delivery-queue.d.ts.map +1 -1
  633. package/dist/testing/runtime-delivery-queue.js +2 -1
  634. package/dist/testing/runtime-delivery-queue.js.map +1 -1
  635. package/dist/testing/session-plugin-testkit.d.ts.map +1 -1
  636. package/dist/testing/session-plugin-testkit.js +10 -7
  637. package/dist/testing/session-plugin-testkit.js.map +1 -1
  638. package/dist/utils/ansi.d.ts.map +1 -1
  639. package/dist/utils/ansi.js +2 -1
  640. package/dist/utils/ansi.js.map +1 -1
  641. package/dist/utils/clipboard.d.ts.map +1 -1
  642. package/dist/utils/clipboard.js +7 -6
  643. package/dist/utils/clipboard.js.map +1 -1
  644. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  645. package/dist/utils/image-resize-worker.js +3 -2
  646. package/dist/utils/image-resize-worker.js.map +1 -1
  647. package/dist/utils/shell.d.ts.map +1 -1
  648. package/dist/utils/shell.js +9 -8
  649. package/dist/utils/shell.js.map +1 -1
  650. package/dist/utils/tools-manager.d.ts.map +1 -1
  651. package/dist/utils/tools-manager.js +23 -13
  652. package/dist/utils/tools-manager.js.map +1 -1
  653. package/dist/utils/version-check.d.ts.map +1 -1
  654. package/dist/utils/version-check.js +5 -1
  655. package/dist/utils/version-check.js.map +1 -1
  656. package/docs/keybindings.md +3 -0
  657. package/docs/quickstart.md +1 -1
  658. package/docs/settings.md +1 -0
  659. package/docs/terminal-setup.md +2 -3
  660. package/docs/usage.md +6 -5
  661. package/examples/extensions/with-deps/package-lock.json +2 -2
  662. package/examples/extensions/with-deps/package.json +1 -1
  663. package/examples/extensions/with-deps/plugin.json +1 -1
  664. package/package.json +1 -1
  665. package/dist/bundle/chunks/chunk-EALJ5DDX.js +0 -1452
package/dist/main.js CHANGED
@@ -29,6 +29,7 @@ import { formatNoModelsAvailableMessage } from "./core/auth-guidance.js";
29
29
  import { AuthStorage, ReadOnlyAuthStorage } from "./core/auth-storage.js";
30
30
  import { exportFromFile } from "./core/export-html/index.js";
31
31
  import { applyHttpProxySettings, configureHttpDispatcher } from "./core/http-dispatcher.js";
32
+ import { setI18nLanguage, t } from "./core/i18n/index.js";
32
33
  import { createHostLogger } from "./core/logger.js";
33
34
  import { resolveCliModel, resolveModelScope } from "./core/model-resolver.js";
34
35
  import { ModelRuntime } from "./core/model-runtime.js";
@@ -135,8 +136,12 @@ function filterAcknowledgedSuiteNotices(diagnostics, settingsManager) {
135
136
  function reportDiagnostics(diagnostics) {
136
137
  for (const diagnostic of diagnostics) {
137
138
  const color = diagnostic.type === "error" ? chalk.red : diagnostic.type === "warning" ? chalk.yellow : chalk.dim;
138
- const prefix = diagnostic.type === "error" ? "Error: " : diagnostic.type === "warning" ? "Warning: " : "";
139
- console.error(color(`${prefix}${diagnostic.message}`));
139
+ const message = diagnostic.type === "error"
140
+ ? t("Error: {message}", { message: diagnostic.message })
141
+ : diagnostic.type === "warning"
142
+ ? t("Warning: {message}", { message: diagnostic.message })
143
+ : diagnostic.message;
144
+ console.error(color(message));
140
145
  }
141
146
  }
142
147
  function isTruthyEnvFlag(value) {
@@ -177,8 +182,8 @@ async function runAuthCommand(args) {
177
182
  command = parseAuthCommand(args);
178
183
  }
179
184
  catch (error) {
180
- const message = error instanceof AuthCommandError ? error.message : "Failed to parse auth command";
181
- console.error(chalk.red(`Error: ${message}`));
185
+ const message = error instanceof AuthCommandError ? error.message : t("Failed to parse auth command");
186
+ console.error(chalk.red(t("Error: {message}", { message })));
182
187
  process.exitCode = 1;
183
188
  return true;
184
189
  }
@@ -191,10 +196,13 @@ async function runAuthCommand(args) {
191
196
  const unknownLongOptions = parsed.diagnostics.filter((diagnostic) => diagnostic.message.startsWith("Unknown option: --"));
192
197
  if (unknownLongOptions.length > 0) {
193
198
  for (const diagnostic of unknownLongOptions) {
194
- console.error(chalk.red(`Error: ${diagnostic.message}`));
199
+ console.error(chalk.red(t("Error: {message}", { message: diagnostic.message })));
195
200
  }
196
- console.error(chalk.red(`Invalid arguments for "${getAuthCommandName(command.kind)}".`));
197
- console.error(chalk.dim(`Use "${APP_NAME} --help" or "${getAuthCommandUsage(command.kind)}".`));
201
+ console.error(chalk.red(t('Invalid arguments for "{command}".', { command: getAuthCommandName(command.kind) })));
202
+ console.error(chalk.dim(t('Use "{help}" or "{usage}".', {
203
+ help: `${APP_NAME} --help`,
204
+ usage: getAuthCommandUsage(command.kind),
205
+ })));
198
206
  process.exitCode = 1;
199
207
  return true;
200
208
  }
@@ -239,8 +247,8 @@ async function runAuthCommand(args) {
239
247
  process.exitCode = result.status === "ready" ? 0 : result.status === "not_ready" ? 1 : 2;
240
248
  }
241
249
  catch (error) {
242
- const message = error instanceof AuthCommandError ? error.message : "Failed to resolve credential";
243
- console.error(chalk.red(`Error: ${message}`));
250
+ const message = error instanceof AuthCommandError ? error.message : t("Failed to resolve credential");
251
+ console.error(chalk.red(t("Error: {message}", { message })));
244
252
  process.exitCode = command.kind === "check" ? 2 : 1;
245
253
  }
246
254
  return true;
@@ -276,7 +284,7 @@ async function promptConfirm(message) {
276
284
  }
277
285
  function printSuiteLifecycleError(error) {
278
286
  const message = error instanceof Error ? error.message : String(error);
279
- console.error(chalk.red(`Error: ${message}`));
287
+ console.error(chalk.red(t("Error: {message}", { message })));
280
288
  }
281
289
  function suiteWorkspaceExists(agentDir, id) {
282
290
  return existsSync(join(getSuiteWorkspaceDir(agentDir, id), SUITE_MANIFEST_FILENAME));
@@ -295,7 +303,7 @@ async function handleSuiteLifecycleCommands(parsed, cwd, agentDir) {
295
303
  id: parsed.suiteCreate,
296
304
  ...(parsed.cloneFrom === undefined ? {} : { cloneFrom: parsed.cloneFrom }),
297
305
  });
298
- console.log(`Created suite "${result.suiteId}" at ${result.suiteDir}`);
306
+ console.log(t('Created suite "{id}" at {dir}', { id: result.suiteId, dir: result.suiteDir }));
299
307
  }
300
308
  catch (error) {
301
309
  printSuiteLifecycleError(error);
@@ -304,7 +312,7 @@ async function handleSuiteLifecycleCommands(parsed, cwd, agentDir) {
304
312
  process.exit(0);
305
313
  }
306
314
  if (parsed.cloneFrom !== undefined) {
307
- console.error(chalk.red("Error: --clone-from requires --suite-create"));
315
+ console.error(chalk.red(t("Error: --clone-from requires --suite-create")));
308
316
  process.exit(1);
309
317
  }
310
318
  if (parsed.suiteDelete !== undefined) {
@@ -319,30 +327,39 @@ async function handleSuiteLifecycleCommands(parsed, cwd, agentDir) {
319
327
  }
320
328
  const refs = findSuiteSessionRefs(agentDir, id);
321
329
  if (refs.length > 0) {
322
- console.error(chalk.red(`Error: suite "${id}" is referenced by ${refs.length} existing session(s); deletion refused:`));
330
+ console.error(chalk.red(t('Error: suite "{id}" is referenced by {count} existing session(s); deletion refused:', {
331
+ id,
332
+ count: refs.length,
333
+ })));
323
334
  for (const ref of refs) {
324
335
  console.error(` ${ref.sessionId} ${ref.path}`);
325
336
  }
326
337
  process.exit(1);
327
338
  }
328
339
  const suiteDir = getSuiteWorkspaceDir(agentDir, id);
329
- console.log(`Deleting suite "${id}": the workspace directory ${suiteDir} will be moved to the trash and released.`);
340
+ console.log(t('Deleting suite "{id}": the workspace directory {dir} will be moved to the trash and released.', {
341
+ id,
342
+ dir: suiteDir,
343
+ }));
330
344
  if (!process.stdin.isTTY) {
331
- console.error(chalk.red(`Refusing to delete suite "${id}" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.`));
345
+ console.error(chalk.red(t('Refusing to delete suite "{id}" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.', { id })));
332
346
  process.exit(1);
333
347
  }
334
- if (!(await promptConfirm(`Delete suite "${id}"?`))) {
335
- console.log(`Aborted: suite "${id}" was not deleted.`);
348
+ if (!(await promptConfirm(t('Delete suite "{id}"?', { id })))) {
349
+ console.log(t('Aborted: suite "{id}" was not deleted.', { id }));
336
350
  process.exit(1);
337
351
  }
338
352
  try {
339
353
  const result = deleteSuite({ agentDir, id, refs });
340
354
  const cleanup = clearDanglingSuiteSettings(SettingsManager.create(cwd, agentDir), id);
341
355
  for (const scope of cleanup.clearedScopes) {
342
- console.log(`Cleared the ${scope} settings "suite" key (pointed at "${id}").`);
356
+ console.log(t('Cleared the {scope} settings "suite" key (pointed at "{id}").', { scope, id }));
343
357
  }
344
358
  releaseTrashedSuite(result.trashPath);
345
- console.log(`Deleted suite "${id}"; the workspace was moved to ${result.trashPath} and is being released.`);
359
+ console.log(t('Deleted suite "{id}"; the workspace was moved to {trashPath} and is being released.', {
360
+ id,
361
+ trashPath: result.trashPath,
362
+ }));
346
363
  }
347
364
  catch (error) {
348
365
  printSuiteLifecycleError(error);
@@ -354,29 +371,34 @@ async function handleSuiteLifecycleCommands(parsed, cwd, agentDir) {
354
371
  const id = parsed.suiteReset;
355
372
  if (!isBuiltinSuiteId(id)) {
356
373
  const message = listSuiteIds(agentDir).includes(id)
357
- ? `Suite "${id}" is a user suite; only builtin suites can be reset — use --suite-delete instead.`
374
+ ? t('Suite "{id}" is a user suite; only builtin suites can be reset — use --suite-delete instead.', {
375
+ id,
376
+ })
358
377
  : new SuiteResolutionError(id, listSuiteIds(agentDir)).message;
359
- console.error(chalk.red(`Error: ${message}`));
378
+ console.error(chalk.red(t("Error: {message}", { message })));
360
379
  process.exit(1);
361
380
  }
362
381
  try {
363
382
  const plan = resetSuite({ agentDir, id });
364
383
  if (plan.diffText.length === 0) {
365
- console.log(`Suite "${id}" already matches the factory contents; nothing to reset.`);
384
+ console.log(t('Suite "{id}" already matches the factory contents; nothing to reset.', { id }));
366
385
  process.exit(0);
367
386
  }
368
- console.log(`Resetting builtin suite "${id}" to the factory contents:\n`);
387
+ console.log(`${t('Resetting builtin suite "{id}" to the factory contents:', { id })}\n`);
369
388
  console.log(plan.diffText);
370
389
  if (!process.stdin.isTTY) {
371
- console.error(chalk.red(`Refusing to reset suite "${id}" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.`));
390
+ console.error(chalk.red(t('Refusing to reset suite "{id}" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.', { id })));
372
391
  process.exit(1);
373
392
  }
374
- if (!(await promptConfirm(`Apply reset of suite "${id}"?`))) {
375
- console.log(`Aborted: suite "${id}" was not reset.`);
393
+ if (!(await promptConfirm(t('Apply reset of suite "{id}"?', { id })))) {
394
+ console.log(t('Aborted: suite "{id}" was not reset.', { id }));
376
395
  process.exit(1);
377
396
  }
378
397
  const result = plan.apply();
379
- console.log(`Suite "${id}" was reset to the factory contents (profile lock generation ${result.lock.generation}).`);
398
+ console.log(t('Suite "{id}" was reset to the factory contents (profile lock generation {generation}).', {
399
+ id,
400
+ generation: result.lock.generation,
401
+ }));
380
402
  }
381
403
  catch (error) {
382
404
  printSuiteLifecycleError(error);
@@ -395,7 +417,7 @@ function validateForkFlags(parsed) {
395
417
  parsed.noSession ? "--no-session" : undefined,
396
418
  ].filter((flag) => flag !== undefined);
397
419
  if (conflictingFlags.length > 0) {
398
- console.error(chalk.red(`Error: --fork cannot be combined with ${conflictingFlags.join(", ")}`));
420
+ console.error(chalk.red(t("Error: --fork cannot be combined with {flags}", { flags: conflictingFlags.join(", ") })));
399
421
  process.exit(1);
400
422
  }
401
423
  }
@@ -408,7 +430,7 @@ function validateSessionIdFlags(parsed) {
408
430
  parsed.resume ? "--resume" : undefined,
409
431
  ].filter((flag) => flag !== undefined);
410
432
  if (conflictingFlags.length > 0) {
411
- console.error(chalk.red(`Error: --session-id cannot be combined with ${conflictingFlags.join(", ")}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).`));
433
+ console.error(chalk.red(t("Error: --session-id cannot be combined with {flags}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).", { flags: conflictingFlags.join(", ") })));
412
434
  process.exit(1);
413
435
  }
414
436
  try {
@@ -416,7 +438,7 @@ function validateSessionIdFlags(parsed) {
416
438
  }
417
439
  catch (error) {
418
440
  const message = error instanceof Error ? error.message : String(error);
419
- console.error(chalk.red(`Error: ${message}`));
441
+ console.error(chalk.red(t("Error: {message}", { message })));
420
442
  process.exit(1);
421
443
  }
422
444
  }
@@ -426,7 +448,7 @@ function openSessionOrExit(path, sessionDir) {
426
448
  }
427
449
  catch (error) {
428
450
  const message = error instanceof Error ? error.message : String(error);
429
- console.error(chalk.red(`Error: ${message}`));
451
+ console.error(chalk.red(t("Error: {message}", { message })));
430
452
  process.exit(1);
431
453
  }
432
454
  }
@@ -436,7 +458,7 @@ function forkSessionOrExit(sourcePath, cwd, sessionDir, sessionId) {
436
458
  }
437
459
  catch (error) {
438
460
  const message = error instanceof Error ? error.message : String(error);
439
- console.error(chalk.red(`Error: ${message}`));
461
+ console.error(chalk.red(t("Error: {message}", { message })));
440
462
  process.exit(1);
441
463
  }
442
464
  }
@@ -448,7 +470,7 @@ export async function createSessionManager(parsed, cwd, sessionDir, settingsMana
448
470
  if (parsed.sessionId) {
449
471
  const existingTarget = findLocalSessionByExactId(parsed.sessionId, cwd, sessionDir);
450
472
  if (existingTarget) {
451
- console.error(chalk.red(`Session already exists with id '${parsed.sessionId}'`));
473
+ console.error(chalk.red(t("Session already exists with id '{sessionId}'", { sessionId: parsed.sessionId })));
452
474
  process.exit(1);
453
475
  }
454
476
  }
@@ -459,7 +481,7 @@ export async function createSessionManager(parsed, cwd, sessionDir, settingsMana
459
481
  case "global":
460
482
  return forkSessionOrExit(resolved.path, cwd, sessionDir, parsed.sessionId);
461
483
  case "not_found":
462
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
484
+ console.error(chalk.red(t("No session found matching '{arg}'", { arg: resolved.arg })));
463
485
  process.exit(1);
464
486
  }
465
487
  }
@@ -470,16 +492,16 @@ export async function createSessionManager(parsed, cwd, sessionDir, settingsMana
470
492
  case "local":
471
493
  return openSessionOrExit(resolved.path, sessionDir);
472
494
  case "global": {
473
- console.log(chalk.yellow(`Session found in different project: ${resolved.cwd}`));
474
- const shouldFork = await promptConfirm("Fork this session into current directory?");
495
+ console.log(chalk.yellow(t("Session found in different project: {cwd}", { cwd: resolved.cwd })));
496
+ const shouldFork = await promptConfirm(t("Fork this session into current directory?"));
475
497
  if (!shouldFork) {
476
- console.log(chalk.dim("Aborted."));
498
+ console.log(chalk.dim(t("Aborted.")));
477
499
  process.exit(0);
478
500
  }
479
501
  return forkSessionOrExit(resolved.path, cwd, sessionDir);
480
502
  }
481
503
  case "not_found":
482
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
504
+ console.error(chalk.red(t("No session found matching '{arg}'", { arg: resolved.arg })));
483
505
  process.exit(1);
484
506
  }
485
507
  }
@@ -487,7 +509,7 @@ export async function createSessionManager(parsed, cwd, sessionDir, settingsMana
487
509
  try {
488
510
  const selectedPath = await selectSession((onProgress, signal) => SessionManager.list(cwd, sessionDir, onProgress, signal), (onProgress, signal) => SessionManager.listAll(sessionDir, onProgress, signal), settingsManager);
489
511
  if (!selectedPath) {
490
- console.log(chalk.dim("No session selected"));
512
+ console.log(chalk.dim(t("No session selected")));
491
513
  process.exit(0);
492
514
  }
493
515
  return SessionManager.open(selectedPath, sessionDir);
@@ -504,7 +526,9 @@ export async function createSessionManager(parsed, cwd, sessionDir, settingsMana
504
526
  if (existingSession) {
505
527
  return SessionManager.open(existingSession.path, sessionDir);
506
528
  }
507
- console.error(chalk.yellow(`Warning: No project session found with id '${parsed.sessionId}'; creating a new session with that id.`));
529
+ console.error(chalk.yellow(t("Warning: No project session found with id '{sessionId}'; creating a new session with that id.", {
530
+ sessionId: parsed.sessionId,
531
+ })));
508
532
  }
509
533
  return SessionManager.create(cwd, sessionDir, { id: parsed.sessionId });
510
534
  }
@@ -713,6 +737,7 @@ export async function main(args, options) {
713
737
  const cwd = process.cwd();
714
738
  const agentDir = getAgentDir();
715
739
  const bootstrapSettingsManager = SettingsManager.create(cwd, agentDir);
740
+ setI18nLanguage(bootstrapSettingsManager.getUiLanguage());
716
741
  applyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);
717
742
  configureHttpDispatcher();
718
743
  if (await handlePackageCommand(args)) {
@@ -744,7 +769,9 @@ export async function main(args, options) {
744
769
  if (parsed.diagnostics.length > 0) {
745
770
  for (const d of parsed.diagnostics) {
746
771
  const color = d.type === "error" ? chalk.red : chalk.yellow;
747
- console.error(color(`${d.type === "error" ? "Error" : "Warning"}: ${d.message}`));
772
+ console.error(color(d.type === "error"
773
+ ? t("Error: {message}", { message: d.message })
774
+ : t("Warning: {message}", { message: d.message })));
748
775
  }
749
776
  if (parsed.diagnostics.some((d) => d.type === "error")) {
750
777
  process.exit(1);
@@ -803,11 +830,11 @@ export async function main(args, options) {
803
830
  result = await exportFromFile(parsed.export, outputPath);
804
831
  }
805
832
  catch (error) {
806
- const message = error instanceof Error ? error.message : "Failed to export session";
807
- console.error(chalk.red(`Error: ${message}`));
833
+ const message = error instanceof Error ? error.message : t("Failed to export session");
834
+ console.error(chalk.red(t("Error: {message}", { message })));
808
835
  process.exit(1);
809
836
  }
810
- console.log(`Exported to: ${result}`);
837
+ console.log(t("Exported to: {result}", { result }));
811
838
  process.exit(0);
812
839
  }
813
840
  // Trace viewer (设计 §8 第 3 期): same exit-style dispatch as --export above,
@@ -828,7 +855,7 @@ export async function main(args, options) {
828
855
  ...(parsed.traceLimit === undefined ? {} : { limit: parsed.traceLimit }),
829
856
  });
830
857
  if (!result.ok) {
831
- console.error(chalk.red(`Error: ${result.message}`));
858
+ console.error(chalk.red(t("Error: {message}", { message: result.message ?? "Unknown error" })));
832
859
  process.exit(1);
833
860
  }
834
861
  process.exit(0);
@@ -875,7 +902,7 @@ export async function main(args, options) {
875
902
  parsed.cloneFrom ? "--clone-from" : undefined,
876
903
  ].filter((flag) => flag !== undefined);
877
904
  if (conflictingFlags.length > 0) {
878
- console.error(chalk.red(`Error: --serve cannot be combined with ${conflictingFlags.join(", ")}`));
905
+ console.error(chalk.red(t("Error: --serve cannot be combined with {flags}", { flags: conflictingFlags.join(", ") })));
879
906
  process.exit(1);
880
907
  }
881
908
  // Remaining options would be silently ignored; list the ones the user
@@ -912,7 +939,7 @@ export async function main(args, options) {
912
939
  ];
913
940
  const ignoredFlags = ignoredFlagChecks.flatMap(([flag, passed]) => (passed ? [flag] : []));
914
941
  if (ignoredFlags.length > 0) {
915
- console.warn(chalk.yellow(`--serve ignores session/model/tool options: ${ignoredFlags.join(", ")}`));
942
+ console.warn(chalk.yellow(t("--serve ignores session/model/tool options: {flags}", { flags: ignoredFlags.join(", ") })));
916
943
  }
917
944
  await runServeMode(parsed.serve, {
918
945
  ...(parsed.serveWorkspaceRoots === undefined ? {} : { workspaceRoots: parsed.serveWorkspaceRoots }),
@@ -940,7 +967,7 @@ export async function main(args, options) {
940
967
  takeOverStdout();
941
968
  }
942
969
  if (parsed.mode === "rpc" && parsed.fileArgs.length > 0) {
943
- console.error(chalk.red("Error: @file arguments are not supported in RPC mode"));
970
+ console.error(chalk.red(t("Error: @file arguments are not supported in RPC mode")));
944
971
  process.exit(1);
945
972
  }
946
973
  validateForkFlags(parsed);
@@ -986,7 +1013,7 @@ export async function main(args, options) {
986
1013
  if (parsed.name !== undefined) {
987
1014
  const name = normalizeSessionName(parsed.name);
988
1015
  if (name === undefined) {
989
- console.error(chalk.red("Error: --name requires a non-empty value"));
1016
+ console.error(chalk.red(t("Error: --name requires a non-empty value")));
990
1017
  process.exit(1);
991
1018
  }
992
1019
  sessionManager.appendSessionInfo(name);
@@ -1045,7 +1072,7 @@ export async function main(args, options) {
1045
1072
  if (!parsed.noPlugins) {
1046
1073
  const bootstrapResult = await runStartupPluginBootstrap(cwd);
1047
1074
  for (const diagnostic of bootstrapResult.diagnostics) {
1048
- console.error(chalk.yellow(`Plugin bootstrap ${diagnostic.code}: ${diagnostic.message}`));
1075
+ console.error(chalk.yellow(t("Plugin bootstrap {code}: {message}", { code: diagnostic.code, message: diagnostic.message })));
1049
1076
  }
1050
1077
  }
1051
1078
  const resolveActivePluginBindings = options?.resolveActivePluginBindings ?? createDefaultActivePluginBindingsResolverV1();
@@ -1171,8 +1198,10 @@ export async function main(args, options) {
1171
1198
  const entry = scopedModels.find((candidate) => candidate.model.id === childModelId);
1172
1199
  if (entry === undefined) {
1173
1200
  const available = scopedModels.map((candidate) => candidate.model.id).sort();
1174
- throw new Error(`agent task child profile model ${JSON.stringify(childModelId)} is not among the runner's scoped models` +
1175
- (available.length === 0 ? " (none configured)" : `; available: ${available.join(", ")}`));
1201
+ throw new Error(t("agent task child profile model {model} is not among the runner's scoped models{available}", {
1202
+ model: JSON.stringify(childModelId),
1203
+ available: available.length === 0 ? " (none configured)" : `; available: ${available.join(", ")}`,
1204
+ }));
1176
1205
  }
1177
1206
  return entry.model;
1178
1207
  })();
@@ -1339,7 +1368,10 @@ export async function main(args, options) {
1339
1368
  if (resumeRead === undefined ||
1340
1369
  request.parentSessionId === undefined ||
1341
1370
  resumeRead.parentAgentSession !== request.parentSessionId) {
1342
- throw new Error(`resume target ${request.resumeSessionId} is not a persisted child of session ${String(request.parentSessionId)}`);
1371
+ throw new Error(t("resume target {resumeId} is not a persisted child of session {parentId}", {
1372
+ resumeId: request.resumeSessionId,
1373
+ parentId: String(request.parentSessionId),
1374
+ }));
1343
1375
  }
1344
1376
  }
1345
1377
  const resumeFilePath = resumeRead !== undefined && typeof request.resumeSessionId === "string"
@@ -1444,7 +1476,7 @@ export async function main(args, options) {
1444
1476
  // 已绑定会话换 suite / Profile 身份漂移(SuiteRebindError):用户可自行纠正的
1445
1477
  // 参数错误,干净的一行 stderr + 退出 1,不甩内部栈(dogfood 2026-09-25 实测)。
1446
1478
  if (error instanceof SuiteRebindError) {
1447
- console.error(chalk.red(`Error: ${error.message}`));
1479
+ console.error(chalk.red(t("Error: {message}", { message: error.message })));
1448
1480
  process.exit(1);
1449
1481
  }
1450
1482
  // Unknown --suite/env/settings suite ids are a structured startup error
@@ -1452,7 +1484,7 @@ export async function main(args, options) {
1452
1484
  if (!(error instanceof SuiteResolutionError))
1453
1485
  throw error;
1454
1486
  if (appMode !== "interactive") {
1455
- console.error(chalk.red(`Error: ${error.message}`));
1487
+ console.error(chalk.red(t("Error: {message}", { message: error.message })));
1456
1488
  process.exit(1);
1457
1489
  }
1458
1490
  // One in-process recovery attempt (设计 §9 startup selector): record the
@@ -1476,7 +1508,7 @@ export async function main(args, options) {
1476
1508
  }
1477
1509
  catch (retryError) {
1478
1510
  if (retryError instanceof SuiteResolutionError) {
1479
- console.error(chalk.red(`Error: ${retryError.message}`));
1511
+ console.error(chalk.red(t("Error: {message}", { message: retryError.message })));
1480
1512
  process.exit(1);
1481
1513
  }
1482
1514
  throw retryError;
@@ -1534,7 +1566,11 @@ export async function main(args, options) {
1534
1566
  // capability plugins get an explicit stderr note before the TUI takes over.
1535
1567
  if (appMode === "interactive") {
1536
1568
  for (const rejection of runtime.pluginRejections) {
1537
- console.error(chalk.yellow(`Warning: capability plugin rejected (${rejection.code}): ${rejection.pluginId ?? rejection.manifestPath}: ${rejection.message}`));
1569
+ console.error(chalk.yellow(t("Warning: capability plugin rejected ({code}): {target}: {message}", {
1570
+ code: rejection.code,
1571
+ target: rejection.pluginId ?? rejection.manifestPath,
1572
+ message: rejection.message,
1573
+ })));
1538
1574
  }
1539
1575
  }
1540
1576
  time("createAgentSession");
@@ -1549,7 +1585,7 @@ export async function main(args, options) {
1549
1585
  }
1550
1586
  const startupBenchmark = isTruthyEnvFlag(process.env.AGENT_FORGE_STARTUP_BENCHMARK);
1551
1587
  if (startupBenchmark && appMode !== "interactive") {
1552
- console.error(chalk.red("Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode"));
1588
+ console.error(chalk.red(t("Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode")));
1553
1589
  process.exit(1);
1554
1590
  }
1555
1591
  // RPC refreshes catalogs here in the background; interactive mode starts its refresh after TUI initialization.