@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
@@ -1,11 +1,13 @@
1
1
  import { getSupportedThinkingLevels } from "@agent-forge/ai";
2
2
  import { Container, getCapabilities, SettingsList, Spacer, Text, } from "@agent-forge/tui";
3
3
  import { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from "../../../core/http-dispatcher.js";
4
+ import { t } from "../../../core/i18n/index.js";
4
5
  import { getSettingsListTheme, parseAutoThemeSetting, theme } from "../theme/theme.js";
5
6
  import { DynamicBorder } from "./dynamic-border.js";
6
7
  import { keyDisplayText } from "./keybinding-hints.js";
7
8
  import { SelectSubmenu, SteppedSubmenu } from "./settings-submenu.js";
8
9
  const MODEL_PICKER_LAYOUT = { minPrimaryColumnWidth: 12, maxPrimaryColumnWidth: 46 };
10
+ // i18n: 以函数查询而非模块级常量,保证语言切换后取到当前词典
9
11
  const THINKING_DESCRIPTIONS = {
10
12
  off: "No reasoning",
11
13
  minimal: "Very brief reasoning (~1k tokens)",
@@ -15,6 +17,9 @@ const THINKING_DESCRIPTIONS = {
15
17
  xhigh: "Extra-high reasoning (~32k tokens)",
16
18
  max: "Maximum reasoning",
17
19
  };
20
+ function thinkingDescription(level) {
21
+ return t(THINKING_DESCRIPTIONS[level]);
22
+ }
18
23
  /**
19
24
  * A submenu component for selecting from a list of options.
20
25
  */
@@ -27,8 +32,8 @@ class WarningSettingsSubmenu extends Container {
27
32
  const items = [
28
33
  {
29
34
  id: "anthropic-extra-usage",
30
- label: "Anthropic extra usage",
31
- description: "Warn when Anthropic subscription auth may use paid extra usage",
35
+ label: t("Anthropic extra usage"),
36
+ description: t("Warn when Anthropic subscription auth may use paid extra usage"),
32
37
  currentValue: (this.state.anthropicExtraUsage ?? true) ? "true" : "false",
33
38
  values: ["true", "false"],
34
39
  },
@@ -57,8 +62,8 @@ function modelDisplayLabel(model) {
57
62
  function modelThinkingOverridesSummary(overrides) {
58
63
  const count = Object.keys(overrides).length;
59
64
  if (count === 0)
60
- return "none";
61
- return `${count} configured`;
65
+ return t("none");
66
+ return t("{count} configured", { count });
62
67
  }
63
68
  function modelItemLabel(model) {
64
69
  return `${model.id} ${theme.fg("muted", `[${model.provider}]`)}`;
@@ -71,8 +76,8 @@ function singleModeThemeItems(availableThemes) {
71
76
  return [
72
77
  {
73
78
  value: AUTOMATIC_THEME_VALUE,
74
- label: "Automatic",
75
- description: "Use separate themes for light and dark terminal appearance",
79
+ label: t("Automatic"),
80
+ description: t("Use separate themes for light and dark terminal appearance"),
76
81
  },
77
82
  ...themeItems(availableThemes),
78
83
  ];
@@ -134,7 +139,7 @@ class ThemeSubmenu extends Container {
134
139
  }
135
140
  showSingleMenu() {
136
141
  this.mode = "single";
137
- const menu = new SelectSubmenu("Theme", "Select a theme, or choose Automatic to follow terminal appearance.", singleModeThemeItems(this.availableThemes), this.singleTheme, (value) => {
142
+ const menu = new SelectSubmenu(t("Theme"), t("Select a theme, or choose Automatic to follow terminal appearance."), singleModeThemeItems(this.availableThemes), this.singleTheme, (value) => {
138
143
  if (value === AUTOMATIC_THEME_VALUE) {
139
144
  this.mode = "automatic";
140
145
  this.callbacks.onThemePreview?.(this.getThemeSetting());
@@ -151,18 +156,18 @@ class ThemeSubmenu extends Container {
151
156
  showAutomaticMenu() {
152
157
  this.mode = "automatic";
153
158
  const content = new Container();
154
- content.addChild(new Text(theme.bold(theme.fg("accent", "Automatic Theme")), 0, 0));
159
+ content.addChild(new Text(theme.bold(theme.fg("accent", t("Automatic Theme"))), 0, 0));
155
160
  content.addChild(new Spacer(1));
156
- content.addChild(new Text(theme.fg("muted", "Choose themes for terminal light and dark appearance."), 0, 0));
157
- content.addChild(new Text(theme.fg("muted", "Light/dark detection requires terminal support."), 0, 0));
161
+ content.addChild(new Text(theme.fg("muted", t("Choose themes for terminal light and dark appearance.")), 0, 0));
162
+ content.addChild(new Text(theme.fg("muted", t("Light/dark detection requires terminal support.")), 0, 0));
158
163
  content.addChild(new Spacer(1));
159
164
  const items = [
160
165
  {
161
166
  id: "light-theme",
162
- label: "Light theme",
163
- description: "Theme to use in automatic mode when the terminal is light",
167
+ label: t("Light theme"),
168
+ description: t("Theme to use in automatic mode when the terminal is light"),
164
169
  currentValue: this.lightTheme,
165
- submenu: (currentValue, done) => this.createThemeSelect("Light Theme", "Select the theme to use for light terminal appearance", currentValue, done, (value) => {
170
+ submenu: (currentValue, done) => this.createThemeSelect(t("Light Theme"), t("Select the theme to use for light terminal appearance"), currentValue, done, (value) => {
166
171
  this.lightTheme = value;
167
172
  this.callbacks.onThemePreview?.(this.getThemeSetting());
168
173
  done(value);
@@ -170,10 +175,10 @@ class ThemeSubmenu extends Container {
170
175
  },
171
176
  {
172
177
  id: "dark-theme",
173
- label: "Dark theme",
174
- description: "Theme to use in automatic mode when the terminal is dark",
178
+ label: t("Dark theme"),
179
+ description: t("Theme to use in automatic mode when the terminal is dark"),
175
180
  currentValue: this.darkTheme,
176
- submenu: (currentValue, done) => this.createThemeSelect("Dark Theme", "Select the theme to use for dark terminal appearance", currentValue, done, (value) => {
181
+ submenu: (currentValue, done) => this.createThemeSelect(t("Dark Theme"), t("Select the theme to use for dark terminal appearance"), currentValue, done, (value) => {
177
182
  this.darkTheme = value;
178
183
  this.callbacks.onThemePreview?.(this.getThemeSetting());
179
184
  done(value);
@@ -181,17 +186,17 @@ class ThemeSubmenu extends Container {
181
186
  },
182
187
  {
183
188
  id: "apply",
184
- label: "Apply",
185
- description: "Save and go back",
186
- currentValue: "save and go back",
187
- values: ["save and go back"],
189
+ label: t("Apply"),
190
+ description: t("Save and go back"),
191
+ currentValue: t("save and go back"),
192
+ values: [t("save and go back")],
188
193
  },
189
194
  {
190
195
  id: "single-mode",
191
- label: "Change mode",
192
- description: "Switch to one theme for light and dark",
193
- currentValue: "switch to single theme",
194
- values: ["switch to single theme"],
196
+ label: t("Change mode"),
197
+ description: t("Switch to one theme for light and dark"),
198
+ currentValue: t("switch to single theme"),
199
+ values: [t("switch to single theme")],
195
200
  },
196
201
  ];
197
202
  const settingsList = new SettingsList(items, Math.min(items.length, 10), getSettingsListTheme(), (id) => {
@@ -251,93 +256,100 @@ export class SettingsSelectorComponent extends Container {
251
256
  const items = [
252
257
  {
253
258
  id: "autocompact",
254
- label: "Auto-compact",
255
- description: "Automatically compact context when it gets too large",
259
+ label: t("Auto-compact"),
260
+ description: t("Automatically compact context when it gets too large"),
256
261
  currentValue: config.autoCompact ? "true" : "false",
257
262
  values: ["true", "false"],
258
263
  },
259
264
  {
260
265
  id: "steering-mode",
261
- label: "Steering mode",
262
- description: "Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.",
266
+ label: t("Steering mode"),
267
+ description: t("Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once."),
263
268
  currentValue: config.steeringMode,
264
269
  values: ["one-at-a-time", "all"],
265
270
  },
266
271
  {
267
272
  id: "follow-up-mode",
268
- label: "Follow-up mode",
269
- description: `${followUpKey} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.`,
273
+ label: t("Follow-up mode"),
274
+ description: t("{key} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.", { key: followUpKey }),
270
275
  currentValue: config.followUpMode,
271
276
  values: ["one-at-a-time", "all"],
272
277
  },
273
278
  {
274
279
  id: "transport",
275
- label: "Transport",
276
- description: "Preferred transport for providers that support multiple transports",
280
+ label: t("Transport"),
281
+ description: t("Preferred transport for providers that support multiple transports"),
277
282
  currentValue: config.transport,
278
283
  values: ["sse", "websocket", "websocket-cached", "auto"],
279
284
  },
280
285
  {
281
286
  id: "http-idle-timeout",
282
- label: "HTTP idle timeout",
283
- description: "Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes.",
287
+ label: t("HTTP idle timeout"),
288
+ description: t("Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes."),
284
289
  currentValue: formatHttpIdleTimeoutMs(config.httpIdleTimeoutMs),
285
290
  values: HTTP_IDLE_TIMEOUT_CHOICES.map((choice) => choice.label),
286
291
  },
287
292
  {
288
293
  id: "hide-thinking",
289
- label: "Hide thinking",
290
- description: "Hide thinking blocks in assistant responses",
294
+ label: t("Hide thinking"),
295
+ description: t("Hide thinking blocks in assistant responses"),
291
296
  currentValue: config.hideThinkingBlock ? "true" : "false",
292
297
  values: ["true", "false"],
293
298
  },
294
299
  {
295
300
  id: "mermaid-rendering",
296
- label: "Mermaid diagrams",
297
- description: "Render Mermaid code blocks as Unicode diagrams",
301
+ label: t("Mermaid diagrams"),
302
+ description: t("Render Mermaid code blocks as Unicode diagrams"),
298
303
  currentValue: config.mermaidRenderingMode,
299
304
  values: ["off", "final", "streaming"],
300
305
  },
301
306
  {
302
307
  id: "cache-miss-notices",
303
- label: "Cache miss notices",
304
- description: "Show transcript notices for cache costs and provider recovery diagnostics",
308
+ label: t("Cache miss notices"),
309
+ description: t("Show transcript notices for cache costs and provider recovery diagnostics"),
305
310
  currentValue: config.showCacheMissNotices ? "true" : "false",
306
311
  values: ["true", "false"],
307
312
  },
308
313
  {
309
314
  id: "collapse-changelog",
310
- label: "Collapse changelog",
311
- description: "Show condensed changelog after updates",
315
+ label: t("Collapse changelog"),
316
+ description: t("Show condensed changelog after updates"),
312
317
  currentValue: config.collapseChangelog ? "true" : "false",
313
318
  values: ["true", "false"],
314
319
  },
315
320
  {
316
321
  id: "quiet-startup",
317
- label: "Quiet startup",
318
- description: "Disable verbose printing at startup",
322
+ label: t("Quiet startup"),
323
+ description: t("Disable verbose printing at startup"),
319
324
  currentValue: config.quietStartup ? "true" : "false",
320
325
  values: ["true", "false"],
321
326
  },
322
327
  {
323
328
  id: "double-escape-action",
324
- label: "Double-escape action",
325
- description: "Action when pressing Escape twice with empty editor",
329
+ label: t("Double-escape action"),
330
+ description: t("Action when pressing Escape twice with empty editor"),
326
331
  currentValue: config.doubleEscapeAction,
327
332
  values: ["tree", "fork", "none"],
328
333
  },
334
+ {
335
+ id: "language",
336
+ label: t("Interface language"),
337
+ description: t("Language for UI text; takes effect immediately"),
338
+ currentValue: config.uiLanguage,
339
+ values: ["zh-CN", "en"],
340
+ },
329
341
  {
330
342
  id: "tree-filter-mode",
331
- label: "Tree filter mode",
332
- description: "Default filter when opening /tree",
343
+ label: t("Tree filter mode"),
344
+ description: t("Default filter when opening /tree"),
333
345
  currentValue: config.treeFilterMode,
334
346
  values: ["default", "no-tools", "user-only", "labeled-only", "all"],
335
347
  },
336
348
  {
337
349
  id: "warnings",
338
- label: "Warnings",
339
- description: "Enable or disable individual warnings",
340
- currentValue: "configure",
350
+ label: t("Warnings"),
351
+ description: t("Enable or disable individual warnings"),
352
+ currentValue: t("configure"),
341
353
  submenu: (_currentValue, done) => new WarningSettingsSubmenu(currentWarnings, (warnings) => {
342
354
  currentWarnings = warnings;
343
355
  callbacks.onWarningsChange(warnings);
@@ -345,15 +357,17 @@ export class SettingsSelectorComponent extends Container {
345
357
  },
346
358
  {
347
359
  id: "model-thinking",
348
- label: "Default thinking level per model",
349
- description: `Override the default thinking level for specific models. ${cycleThinkingKey} cycles in-session.`,
360
+ label: t("Default thinking level per model"),
361
+ description: t("Override the default thinking level for specific models. {key} cycles in-session.", {
362
+ key: cycleThinkingKey,
363
+ }),
350
364
  currentValue: modelThinkingOverridesSummary(currentModelThinkingLevels),
351
365
  submenu: (_currentValue, done) => {
352
366
  const steps = [
353
367
  {
354
368
  key: "model",
355
- title: "Per-Model Thinking Level",
356
- description: "Select a model to configure",
369
+ title: t("Per-Model Thinking Level"),
370
+ description: t("Select a model to configure"),
357
371
  options: () => {
358
372
  const sorted = [...config.availableDefaultModels].sort((a, b) => {
359
373
  const aKey = modelSettingKey(a);
@@ -380,8 +394,8 @@ export class SettingsSelectorComponent extends Container {
380
394
  if (items.length === 0) {
381
395
  items.push({
382
396
  value: "__none__",
383
- label: "No models available",
384
- description: "Log in to a provider or configure an API key first",
397
+ label: t("No models available"),
398
+ description: t("Log in to a provider or configure an API key first"),
385
399
  });
386
400
  }
387
401
  return items;
@@ -394,9 +408,9 @@ export class SettingsSelectorComponent extends Container {
394
408
  key: "level",
395
409
  title: (ctx) => {
396
410
  const m = defaultModelByValue.get(ctx.model);
397
- return `Thinking Level for ${m ? modelDisplayLabel(m) : ctx.model}`;
411
+ return t("Thinking Level for {model}", { model: m ? modelDisplayLabel(m) : ctx.model });
398
412
  },
399
- description: "Select default thinking level for this model",
413
+ description: t("Select default thinking level for this model"),
400
414
  options: (ctx) => {
401
415
  const model = defaultModelByValue.get(ctx.model);
402
416
  if (!model)
@@ -405,13 +419,13 @@ export class SettingsSelectorComponent extends Container {
405
419
  const items = levels.map((level) => ({
406
420
  value: level,
407
421
  label: level,
408
- description: THINKING_DESCRIPTIONS[level],
422
+ description: thinkingDescription(level),
409
423
  }));
410
424
  if (currentModelThinkingLevels[ctx.model] !== undefined) {
411
425
  items.push({
412
426
  value: CLEAR_OVERRIDE_VALUE,
413
- label: "(clear override)",
414
- description: `Revert to global default (${config.thinkingLevel})`,
427
+ label: t("(clear override)"),
428
+ description: t("Revert to global default ({level})", { level: config.thinkingLevel }),
415
429
  });
416
430
  }
417
431
  return items;
@@ -440,43 +454,43 @@ export class SettingsSelectorComponent extends Container {
440
454
  },
441
455
  {
442
456
  id: "tui-mode",
443
- label: "TUI mode",
444
- description: "Interface layout; fullscreen mode is experimental",
457
+ label: t("TUI mode"),
458
+ description: t("Interface layout; fullscreen mode is experimental"),
445
459
  currentValue: config.tuiMode,
446
460
  values: ["regular", "fullscreen"],
447
461
  },
448
462
  {
449
463
  id: "fullscreen-exit-output",
450
- label: "Fullscreen exit output",
451
- description: "Print the transcript or only a session resume hint when exiting fullscreen mode",
464
+ label: t("Fullscreen exit output"),
465
+ description: t("Print the transcript or only a session resume hint when exiting fullscreen mode"),
452
466
  currentValue: config.fullscreenExitOutput,
453
467
  values: ["transcript", "resume-hint"],
454
468
  },
455
469
  {
456
470
  id: "fullscreen-scrollbar",
457
- label: "Fullscreen scrollbar",
458
- description: "Scrollbar behavior in fullscreen mode; has no effect in regular mode",
471
+ label: t("Fullscreen scrollbar"),
472
+ description: t("Scrollbar behavior in fullscreen mode; has no effect in regular mode"),
459
473
  currentValue: config.fullscreenScrollbar,
460
474
  values: ["auto", "always", "hidden"],
461
475
  },
462
476
  {
463
477
  id: "fullscreen-copy-on-select",
464
- label: "Fullscreen copy on select",
465
- description: "Automatically copy selected text in fullscreen mode; disable to copy selections with Ctrl+X",
478
+ label: t("Fullscreen copy on select"),
479
+ description: t("Automatically copy selected text in fullscreen mode; disable to copy selections with Ctrl+X"),
466
480
  currentValue: config.fullscreenCopyOnSelect ? "true" : "false",
467
481
  values: ["true", "false"],
468
482
  },
469
483
  {
470
484
  id: "fullscreen-wheel-scroll-lines",
471
- label: "Fullscreen wheel scroll lines",
472
- description: "Lines scrolled per wheel event in fullscreen mode; auto accelerates with scroll speed",
485
+ label: t("Fullscreen wheel scroll lines"),
486
+ description: t("Lines scrolled per wheel event in fullscreen mode; auto accelerates with scroll speed"),
473
487
  currentValue: String(config.fullscreenWheelScrollLines),
474
488
  values: ["auto", "1", "2", "3", "5", "10"],
475
489
  },
476
490
  {
477
491
  id: "theme",
478
- label: "Theme",
479
- description: "Color theme for the interface",
492
+ label: t("Theme"),
493
+ description: t("Color theme for the interface"),
480
494
  currentValue: config.currentTheme,
481
495
  submenu: (currentValue, done) => new ThemeSubmenu(currentValue, config.terminalTheme, config.availableThemes, callbacks, done),
482
496
  },
@@ -486,15 +500,15 @@ export class SettingsSelectorComponent extends Container {
486
500
  // Insert after autocompact
487
501
  items.splice(1, 0, {
488
502
  id: "show-images",
489
- label: "Show images",
490
- description: "Render images inline in terminal",
503
+ label: t("Show images"),
504
+ description: t("Render images inline in terminal"),
491
505
  currentValue: config.showImages ? "true" : "false",
492
506
  values: ["true", "false"],
493
507
  });
494
508
  items.splice(2, 0, {
495
509
  id: "image-width-cells",
496
- label: "Image width",
497
- description: "Preferred inline image width in terminal cells",
510
+ label: t("Image width"),
511
+ description: t("Preferred inline image width in terminal cells"),
498
512
  currentValue: String(config.imageWidthCells),
499
513
  values: ["60", "80", "120"],
500
514
  });
@@ -502,8 +516,8 @@ export class SettingsSelectorComponent extends Container {
502
516
  // Image auto-resize toggle (always available, affects both attached and read images)
503
517
  items.splice(supportsImages ? 3 : 1, 0, {
504
518
  id: "auto-resize-images",
505
- label: "Auto-resize images",
506
- description: "Resize large images to 2000x2000 max for better model compatibility",
519
+ label: t("Auto-resize images"),
520
+ description: t("Resize large images to 2000x2000 max for better model compatibility"),
507
521
  currentValue: config.autoResizeImages ? "true" : "false",
508
522
  values: ["true", "false"],
509
523
  });
@@ -511,8 +525,8 @@ export class SettingsSelectorComponent extends Container {
511
525
  const autoResizeIndex = items.findIndex((item) => item.id === "auto-resize-images");
512
526
  items.splice(autoResizeIndex + 1, 0, {
513
527
  id: "block-images",
514
- label: "Block images",
515
- description: "Prevent images from being sent to LLM providers",
528
+ label: t("Block images"),
529
+ description: t("Prevent images from being sent to LLM providers"),
516
530
  currentValue: config.blockImages ? "true" : "false",
517
531
  values: ["true", "false"],
518
532
  });
@@ -520,8 +534,8 @@ export class SettingsSelectorComponent extends Container {
520
534
  const blockImagesIndex = items.findIndex((item) => item.id === "block-images");
521
535
  items.splice(blockImagesIndex + 1, 0, {
522
536
  id: "skill-commands",
523
- label: "Skill commands",
524
- description: "Register skills as /skill:name commands",
537
+ label: t("Skill commands"),
538
+ description: t("Register skills as /skill:name commands"),
525
539
  currentValue: config.enableSkillCommands ? "true" : "false",
526
540
  values: ["true", "false"],
527
541
  });
@@ -529,8 +543,8 @@ export class SettingsSelectorComponent extends Container {
529
543
  const skillCommandsIndex = items.findIndex((item) => item.id === "skill-commands");
530
544
  items.splice(skillCommandsIndex + 1, 0, {
531
545
  id: "show-hardware-cursor",
532
- label: "Show hardware cursor",
533
- description: "Show the terminal cursor while still positioning it for IME support",
546
+ label: t("Show hardware cursor"),
547
+ description: t("Show the terminal cursor while still positioning it for IME support"),
534
548
  currentValue: config.showHardwareCursor ? "true" : "false",
535
549
  values: ["true", "false"],
536
550
  });
@@ -538,8 +552,8 @@ export class SettingsSelectorComponent extends Container {
538
552
  const hardwareCursorIndex = items.findIndex((item) => item.id === "show-hardware-cursor");
539
553
  items.splice(hardwareCursorIndex + 1, 0, {
540
554
  id: "editor-padding",
541
- label: "Editor padding",
542
- description: "Horizontal padding for input editor (0-3)",
555
+ label: t("Editor padding"),
556
+ description: t("Horizontal padding for input editor (0-3)"),
543
557
  currentValue: String(config.editorPaddingX),
544
558
  values: ["0", "1", "2", "3"],
545
559
  });
@@ -547,8 +561,8 @@ export class SettingsSelectorComponent extends Container {
547
561
  const editorPaddingIndex = items.findIndex((item) => item.id === "editor-padding");
548
562
  items.splice(editorPaddingIndex + 1, 0, {
549
563
  id: "output-padding",
550
- label: "Output padding",
551
- description: "Horizontal padding for user messages, assistant messages, and thinking",
564
+ label: t("Output padding"),
565
+ description: t("Horizontal padding for user messages, assistant messages, and thinking"),
552
566
  currentValue: String(config.outputPad),
553
567
  values: ["0", "1"],
554
568
  });
@@ -556,8 +570,8 @@ export class SettingsSelectorComponent extends Container {
556
570
  const outputPaddingIndex = items.findIndex((item) => item.id === "output-padding");
557
571
  items.splice(outputPaddingIndex + 1, 0, {
558
572
  id: "autocomplete-max-visible",
559
- label: "Autocomplete max items",
560
- description: "Max visible items in autocomplete dropdown (3-20)",
573
+ label: t("Autocomplete max items"),
574
+ description: t("Max visible items in autocomplete dropdown (3-20)"),
561
575
  currentValue: String(config.autocompleteMaxVisible),
562
576
  values: ["3", "5", "7", "10", "15", "20"],
563
577
  });
@@ -565,8 +579,8 @@ export class SettingsSelectorComponent extends Container {
565
579
  const autocompleteIndex = items.findIndex((item) => item.id === "autocomplete-max-visible");
566
580
  items.splice(autocompleteIndex + 1, 0, {
567
581
  id: "clear-on-shrink",
568
- label: "Clear on shrink",
569
- description: "Clear empty rows when content shrinks (may cause flicker)",
582
+ label: t("Clear on shrink"),
583
+ description: t("Clear empty rows when content shrinks (may cause flicker)"),
570
584
  currentValue: config.clearOnShrink ? "true" : "false",
571
585
  values: ["true", "false"],
572
586
  });
@@ -574,8 +588,8 @@ export class SettingsSelectorComponent extends Container {
574
588
  const clearOnShrinkIndex = items.findIndex((item) => item.id === "clear-on-shrink");
575
589
  items.splice(clearOnShrinkIndex + 1, 0, {
576
590
  id: "terminal-progress",
577
- label: "Terminal progress",
578
- description: "Show OSC 9;4 progress indicators in the terminal tab bar",
591
+ label: t("Terminal progress"),
592
+ description: t("Show OSC 9;4 progress indicators in the terminal tab bar"),
579
593
  currentValue: config.showTerminalProgress ? "true" : "false",
580
594
  values: ["true", "false"],
581
595
  });
@@ -636,6 +650,9 @@ export class SettingsSelectorComponent extends Container {
636
650
  case "double-escape-action":
637
651
  callbacks.onDoubleEscapeActionChange(newValue);
638
652
  break;
653
+ case "language":
654
+ callbacks.onUiLanguageChange(newValue);
655
+ break;
639
656
  case "tree-filter-mode":
640
657
  callbacks.onTreeFilterModeChange(newValue);
641
658
  break;