@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
@@ -5,6 +5,7 @@
5
5
  * facts shared by an embedded SDK binding and a service binding; it does not
6
6
  * import either binding or a runtime Agent object.
7
7
  */
8
+ import { t } from "./i18n/index.js";
8
9
  export const AGENT_CAPABILITY_CONTRACT_ID = "agent-forge/agent-capability-contract";
9
10
  export const AGENT_CAPABILITY_CONTRACT_VERSION = 1;
10
11
  /** Shared error-code registry for the canonical Agent contract. Extensions may use namespaced codes. */
@@ -82,7 +83,7 @@ function isPlainRecord(value) {
82
83
  }
83
84
  function assertPlainRecord(value, label) {
84
85
  if (!isPlainRecord(value))
85
- throw new Error(`${label} must be a plain object`);
86
+ throw new Error(t("{label} must be a plain object", { label }));
86
87
  }
87
88
  function assertExactKeys(value, required, optional, label) {
88
89
  const allowed = new Set([...required, ...optional]);
@@ -90,24 +91,24 @@ function assertExactKeys(value, required, optional, label) {
90
91
  .filter((key) => !allowed.has(key))
91
92
  .sort();
92
93
  if (unsupported.length > 0)
93
- throw new Error(`${label} has unsupported fields: ${unsupported.join(", ")}`);
94
+ throw new Error(t("{label} has unsupported fields: {fields}", { label, fields: unsupported.join(", ") }));
94
95
  for (const key of required) {
95
96
  if (!(key in value))
96
- throw new Error(`${label} is missing required field: ${key}`);
97
+ throw new Error(t("{label} is missing required field: {key}", { label, key }));
97
98
  }
98
99
  }
99
100
  function assertNonEmptyString(value, label) {
100
101
  if (typeof value !== "string" || value.trim().length === 0)
101
- throw new Error(`${label} must be a non-empty string`);
102
+ throw new Error(t("{label} must be a non-empty string", { label }));
102
103
  }
103
104
  function assertPositiveSafeInteger(value, label) {
104
105
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) {
105
- throw new Error(`${label} must be a positive safe integer`);
106
+ throw new Error(t("{label} must be a positive safe integer", { label }));
106
107
  }
107
108
  }
108
109
  function assertNonNegativeSafeInteger(value, label) {
109
110
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) {
110
- throw new Error(`${label} must be a non-negative safe integer`);
111
+ throw new Error(t("{label} must be a non-negative safe integer", { label }));
111
112
  }
112
113
  }
113
114
  function assertJsonValue(value, label, seen = new WeakSet()) {
@@ -116,12 +117,12 @@ function assertJsonValue(value, label, seen = new WeakSet()) {
116
117
  if (typeof value === "number") {
117
118
  if (Number.isFinite(value))
118
119
  return;
119
- throw new Error(`${label} must contain finite JSON numbers`);
120
+ throw new Error(t("{label} must contain finite JSON numbers", { label }));
120
121
  }
121
122
  if (typeof value !== "object")
122
- throw new Error(`${label} must be JSON-compatible`);
123
+ throw new Error(t("{label} must be JSON-compatible", { label }));
123
124
  if (seen.has(value))
124
- throw new Error(`${label} must not contain cycles`);
125
+ throw new Error(t("{label} must not contain cycles", { label }));
125
126
  seen.add(value);
126
127
  if (Array.isArray(value)) {
127
128
  for (const [index, child] of value.entries())
@@ -129,7 +130,7 @@ function assertJsonValue(value, label, seen = new WeakSet()) {
129
130
  }
130
131
  else {
131
132
  if (!isPlainRecord(value))
132
- throw new Error(`${label} must contain only plain JSON objects`);
133
+ throw new Error(t("{label} must contain only plain JSON objects", { label }));
133
134
  for (const [key, child] of Object.entries(value))
134
135
  assertJsonValue(child, `${label}.${key}`, seen);
135
136
  }
@@ -159,13 +160,16 @@ function capabilitySort(left, right) {
159
160
  }
160
161
  function validateCapabilityRefs(value, label) {
161
162
  if (!Array.isArray(value))
162
- throw new Error(`${label} must be an array`);
163
+ throw new Error(t("{label} must be an array", { label }));
163
164
  const refs = value.map((item, index) => validateCapabilityRefV1(item, `${label}[${index}]`));
164
165
  const seen = new Set();
165
166
  for (const ref of refs) {
166
167
  const key = `${ref.id}\u0000${ref.version}`;
167
168
  if (seen.has(key))
168
- throw new Error(`${label} contains duplicate capability: ${ref.id}@${ref.version}`);
169
+ throw new Error(t("{label} contains duplicate capability: {capability}", {
170
+ label,
171
+ capability: `${ref.id}@${ref.version}`,
172
+ }));
169
173
  seen.add(key);
170
174
  }
171
175
  return Object.freeze(refs.sort(capabilitySort));
@@ -177,7 +181,7 @@ function validateHostTransport(value, label) {
177
181
  value !== "rpc" &&
178
182
  value !== "unix" &&
179
183
  value !== "websocket") {
180
- throw new Error(`${label} is invalid`);
184
+ throw new Error(t("{label} is invalid", { label }));
181
185
  }
182
186
  }
183
187
  export function validateCapabilityRefV1(value, label = "Capability reference") {
@@ -194,23 +198,23 @@ export function validateHostContextV1(value) {
194
198
  assertPlainRecord(value, "Host context");
195
199
  assertExactKeys(value, ["mode", "features", "transports"], [], "Host context");
196
200
  if (value.mode !== "readonly" && value.mode !== "full-control")
197
- throw new Error("Host context.mode is invalid");
201
+ throw new Error(t("Host context.mode is invalid"));
198
202
  if (!Array.isArray(value.features))
199
- throw new Error("Host context.features must be an array");
203
+ throw new Error(t("Host context.features must be an array"));
200
204
  const features = value.features.map((feature, index) => {
201
205
  assertNonEmptyString(feature, `Host context.features[${index}]`);
202
206
  return feature;
203
207
  });
204
208
  if (new Set(features).size !== features.length)
205
- throw new Error("Host context.features must not contain duplicates");
209
+ throw new Error(t("Host context.features must not contain duplicates"));
206
210
  if (!Array.isArray(value.transports))
207
- throw new Error("Host context.transports must be an array");
211
+ throw new Error(t("Host context.transports must be an array"));
208
212
  const transports = value.transports.map((transport, index) => {
209
213
  validateHostTransport(transport, `Host context.transports[${index}]`);
210
214
  return transport;
211
215
  });
212
216
  if (new Set(transports).size !== transports.length)
213
- throw new Error("Host context.transports must not contain duplicates");
217
+ throw new Error(t("Host context.transports must not contain duplicates"));
214
218
  return detachedFreeze({
215
219
  mode: value.mode,
216
220
  features: [...features].sort(),
@@ -255,34 +259,34 @@ export function validateContractCompatibilityResultV1(value) {
255
259
  assertPlainRecord(value, "Contract compatibility result");
256
260
  assertExactKeys(value, ["version", "compatible", "issues"], [], "Contract compatibility result");
257
261
  if (value.version !== 1)
258
- throw new Error("Contract compatibility result.version must be 1");
262
+ throw new Error(t("Contract compatibility result.version must be 1"));
259
263
  if (typeof value.compatible !== "boolean")
260
- throw new Error("Contract compatibility result.compatible must be boolean");
264
+ throw new Error(t("Contract compatibility result.compatible must be boolean"));
261
265
  if (!Array.isArray(value.issues))
262
- throw new Error("Contract compatibility result.issues must be an array");
266
+ throw new Error(t("Contract compatibility result.issues must be an array"));
263
267
  if (value.compatible && value.issues.length > 0) {
264
- throw new Error("Contract compatibility result.compatible must be false when issues exist");
268
+ throw new Error(t("Contract compatibility result.compatible must be false when issues exist"));
265
269
  }
266
270
  if (!value.compatible && value.issues.length === 0) {
267
- throw new Error("Contract compatibility result.compatible must be true when no issues exist");
271
+ throw new Error(t("Contract compatibility result.compatible must be true when no issues exist"));
268
272
  }
269
273
  const issues = value.issues.map((entry, index) => {
270
274
  assertPlainRecord(entry, `Contract compatibility result.issues[${index}]`);
271
275
  assertExactKeys(entry, ["code", "error"], ["missingFeatures", "missingTransports", "missingCapabilities"], `Contract compatibility result.issues[${index}]`);
272
276
  if (!CONTRACT_COMPATIBILITY_ISSUE_CODES_V1.includes(entry.code)) {
273
- throw new Error(`Contract compatibility result.issues[${index}].code is invalid`);
277
+ throw new Error(t("Contract compatibility result.issues[{index}].code is invalid", { index }));
274
278
  }
275
279
  const error = validateErrorEnvelopeV1(entry.error);
276
280
  const missingFeatures = entry.missingFeatures;
277
281
  if (missingFeatures !== undefined) {
278
282
  if (!Array.isArray(missingFeatures) || missingFeatures.some((item) => typeof item !== "string")) {
279
- throw new Error(`Contract compatibility result.issues[${index}].missingFeatures must be strings`);
283
+ throw new Error(t("Contract compatibility result.issues[{index}].missingFeatures must be strings", { index }));
280
284
  }
281
285
  }
282
286
  const missingTransports = entry.missingTransports;
283
287
  if (missingTransports !== undefined) {
284
288
  if (!Array.isArray(missingTransports) || missingTransports.some((item) => typeof item !== "string")) {
285
- throw new Error(`Contract compatibility result.issues[${index}].missingTransports must be strings`);
289
+ throw new Error(t("Contract compatibility result.issues[{index}].missingTransports must be strings", { index }));
286
290
  }
287
291
  }
288
292
  const missingCapabilities = entry.missingCapabilities;
@@ -314,10 +318,10 @@ export function validateAgentCapabilityContractV1(value) {
314
318
  assertPlainRecord(value, "Agent capability contract");
315
319
  assertExactKeys(value, ["contractId", "version", "capabilities", "hostContext"], [], "Agent capability contract");
316
320
  if (value.contractId !== AGENT_CAPABILITY_CONTRACT_ID) {
317
- throw new Error(`Agent capability contract.contractId must be ${AGENT_CAPABILITY_CONTRACT_ID}`);
321
+ throw new Error(t("Agent capability contract.contractId must be {contractId}", { contractId: AGENT_CAPABILITY_CONTRACT_ID }));
318
322
  }
319
323
  if (value.version !== 1)
320
- throw new Error("Agent capability contract.version must be 1");
324
+ throw new Error(t("Agent capability contract.version must be 1"));
321
325
  const capabilities = validateCapabilityRefs(value.capabilities, "Agent capability contract.capabilities");
322
326
  const hostContext = validateHostContextV1(value.hostContext);
323
327
  return detachedFreeze({ contractId: value.contractId, version: 1, capabilities, hostContext });
@@ -333,13 +337,13 @@ export function validateAgentProfileV1(value) {
333
337
  assertNonEmptyString(value.rootAgent, "Agent profile.rootAgent");
334
338
  const validatePluginIds = (candidate, label) => {
335
339
  if (!Array.isArray(candidate))
336
- throw new Error(`${label} must be an array`);
340
+ throw new Error(t("{label} must be an array", { label }));
337
341
  const ids = candidate.map((id, index) => {
338
342
  assertNonEmptyString(id, `${label}[${index}]`);
339
343
  return id;
340
344
  });
341
345
  if (new Set(ids).size !== ids.length)
342
- throw new Error(`${label} must not contain duplicates`);
346
+ throw new Error(t("{label} must not contain duplicates", { label }));
343
347
  return Object.freeze([...ids].sort());
344
348
  };
345
349
  const requiredPlugins = validatePluginIds(value.requiredPlugins, "Agent profile.requiredPlugins");
@@ -347,7 +351,7 @@ export function validateAgentProfileV1(value) {
347
351
  ? undefined
348
352
  : validatePluginIds(value.optionalPlugins, "Agent profile.optionalPlugins");
349
353
  if (optionalPlugins?.some((id) => requiredPlugins.includes(id))) {
350
- throw new Error("Agent profile.optionalPlugins must not overlap requiredPlugins");
354
+ throw new Error(t("Agent profile.optionalPlugins must not overlap requiredPlugins"));
351
355
  }
352
356
  if (value.defaults !== undefined)
353
357
  assertJsonValue(value.defaults, "Agent profile.defaults");
@@ -374,7 +378,7 @@ export function validateArtifactRefV1(value) {
374
378
  if (value.sizeBytes !== undefined)
375
379
  assertNonNegativeSafeInteger(value.sizeBytes, "Artifact reference.sizeBytes");
376
380
  if (typeof value.truncated !== "boolean")
377
- throw new Error("Artifact reference.truncated must be boolean");
381
+ throw new Error(t("Artifact reference.truncated must be boolean"));
378
382
  assertNonNegativeSafeInteger(value.createdAt, "Artifact reference.createdAt");
379
383
  return detachedFreeze({
380
384
  sessionId: value.sessionId,
@@ -438,13 +442,13 @@ export function checkContractCompatibilityV1(candidateInput, requirementsInput)
438
442
  }
439
443
  function validateAgentRole(value, label) {
440
444
  if (value !== "root-agent-controller" && value !== "child-agent-controller")
441
- throw new Error(`${label} is invalid`);
445
+ throw new Error(t("{label} is invalid", { label }));
442
446
  }
443
447
  export function validateAgentDefinitionSnapshotV1(value) {
444
448
  assertPlainRecord(value, "Agent definition snapshot");
445
449
  assertExactKeys(value, ["version", "id", "definitionVersion", "role", "capabilities"], ["owner"], "Agent definition snapshot");
446
450
  if (value.version !== 1)
447
- throw new Error("Agent definition snapshot.version must be 1");
451
+ throw new Error(t("Agent definition snapshot.version must be 1"));
448
452
  assertNonEmptyString(value.id, "Agent definition snapshot.id");
449
453
  assertPositiveSafeInteger(value.definitionVersion, "Agent definition snapshot.definitionVersion");
450
454
  validateAgentRole(value.role, "Agent definition snapshot.role");
@@ -467,7 +471,7 @@ export function validateAgentInstanceSnapshotV1(value) {
467
471
  assertPlainRecord(value, "Agent instance snapshot");
468
472
  assertExactKeys(value, ["version", "id", "definitionId", "definitionVersion", "role", "status", "revision"], ["parentInstanceId", "leaseOwner"], "Agent instance snapshot");
469
473
  if (value.version !== 1)
470
- throw new Error("Agent instance snapshot.version must be 1");
474
+ throw new Error(t("Agent instance snapshot.version must be 1"));
471
475
  assertNonEmptyString(value.id, "Agent instance snapshot.id");
472
476
  assertNonEmptyString(value.definitionId, "Agent instance snapshot.definitionId");
473
477
  assertPositiveSafeInteger(value.definitionVersion, "Agent instance snapshot.definitionVersion");
@@ -478,7 +482,7 @@ export function validateAgentInstanceSnapshotV1(value) {
478
482
  value.status !== "failed" &&
479
483
  value.status !== "cancelled" &&
480
484
  value.status !== "disposed") {
481
- throw new Error("Agent instance snapshot.status is invalid");
485
+ throw new Error(t("Agent instance snapshot.status is invalid"));
482
486
  }
483
487
  assertNonNegativeSafeInteger(value.revision, "Agent instance snapshot.revision");
484
488
  if (value.parentInstanceId !== undefined)
@@ -504,13 +508,13 @@ export function validateSessionRevisionV1(value) {
504
508
  assertPlainRecord(value, "Session revision");
505
509
  assertExactKeys(value, ["version", "sessionId", "sequence", "leafId"], [], "Session revision");
506
510
  if (value.version !== 1)
507
- throw new Error("Session revision.version must be 1");
511
+ throw new Error(t("Session revision.version must be 1"));
508
512
  assertNonEmptyString(value.sessionId, "Session revision.sessionId");
509
513
  assertNonNegativeSafeInteger(value.sequence, "Session revision.sequence");
510
514
  if (value.leafId !== null && value.leafId !== undefined)
511
515
  assertNonEmptyString(value.leafId, "Session revision.leafId");
512
516
  if (value.leafId === undefined)
513
- throw new Error("Session revision.leafId is required");
517
+ throw new Error(t("Session revision.leafId is required"));
514
518
  return detachedFreeze({
515
519
  version: 1,
516
520
  sessionId: value.sessionId,
@@ -525,11 +529,11 @@ export function validateSessionSnapshotV1(value) {
525
529
  assertPlainRecord(value, "Session snapshot");
526
530
  assertExactKeys(value, ["version", "sessionId", "revision"], [], "Session snapshot");
527
531
  if (value.version !== 1)
528
- throw new Error("Session snapshot.version must be 1");
532
+ throw new Error(t("Session snapshot.version must be 1"));
529
533
  assertNonEmptyString(value.sessionId, "Session snapshot.sessionId");
530
534
  const revision = validateSessionRevisionV1(value.revision);
531
535
  if (revision.sessionId !== value.sessionId)
532
- throw new Error("Session snapshot.revision.sessionId must match sessionId");
536
+ throw new Error(t("Session snapshot.revision.sessionId must match sessionId"));
533
537
  return detachedFreeze({ version: 1, sessionId: value.sessionId, revision });
534
538
  }
535
539
  export function buildSessionSnapshotV1(input) {
@@ -539,12 +543,12 @@ export function validateErrorEnvelopeV1(value) {
539
543
  assertPlainRecord(value, "Error envelope");
540
544
  assertExactKeys(value, ["version", "code", "message", "retryable"], ["details", "name"], "Error envelope");
541
545
  if (value.version !== 1)
542
- throw new Error("Error envelope.version must be 1");
546
+ throw new Error(t("Error envelope.version must be 1"));
543
547
  assertNonEmptyString(value.code, "Error envelope.code");
544
548
  if (typeof value.message !== "string")
545
- throw new Error("Error envelope.message must be a string");
549
+ throw new Error(t("Error envelope.message must be a string"));
546
550
  if (typeof value.retryable !== "boolean")
547
- throw new Error("Error envelope.retryable must be a boolean");
551
+ throw new Error(t("Error envelope.retryable must be a boolean"));
548
552
  if (value.name !== undefined)
549
553
  assertNonEmptyString(value.name, "Error envelope.name");
550
554
  if (value.details !== undefined)
@@ -563,16 +567,16 @@ export function buildErrorEnvelopeV1(input) {
563
567
  }
564
568
  function validateOperationTerminalStatus(value, label) {
565
569
  if (value !== "succeeded" && value !== "failed" && value !== "cancelled" && value !== "timed_out") {
566
- throw new Error(`${label} is invalid`);
570
+ throw new Error(t("{label} is invalid", { label }));
567
571
  }
568
572
  }
569
573
  export function validateOperationTerminalV1(value) {
570
574
  assertPlainRecord(value, "Operation terminal");
571
575
  if (!("version" in value) || !("status" in value)) {
572
- throw new Error("Operation terminal is missing required field: version or status");
576
+ throw new Error(t("Operation terminal is missing required field: version or status"));
573
577
  }
574
578
  if (value.version !== 1)
575
- throw new Error("Operation terminal.version must be 1");
579
+ throw new Error(t("Operation terminal.version must be 1"));
576
580
  validateOperationTerminalStatus(value.status, "Operation terminal.status");
577
581
  if (value.status === "succeeded") {
578
582
  assertExactKeys(value, ["version", "status"], ["result"], "Operation terminal");
@@ -595,7 +599,7 @@ export function validateOperationSnapshotV1(value) {
595
599
  assertPlainRecord(value, "Operation snapshot");
596
600
  assertExactKeys(value, ["version", "operationId", "kind", "status"], ["terminal", "instanceId", "sessionId", "inputRevision"], "Operation snapshot");
597
601
  if (value.version !== 1)
598
- throw new Error("Operation snapshot.version must be 1");
602
+ throw new Error(t("Operation snapshot.version must be 1"));
599
603
  assertNonEmptyString(value.operationId, "Operation snapshot.operationId");
600
604
  assertNonEmptyString(value.kind, "Operation snapshot.kind");
601
605
  if (value.status !== "queued" &&
@@ -604,24 +608,24 @@ export function validateOperationSnapshotV1(value) {
604
608
  value.status !== "failed" &&
605
609
  value.status !== "cancelled" &&
606
610
  value.status !== "timed_out") {
607
- throw new Error("Operation snapshot.status is invalid");
611
+ throw new Error(t("Operation snapshot.status is invalid"));
608
612
  }
609
613
  if ((value.status === "queued" || value.status === "running") && value.terminal !== undefined) {
610
- throw new Error("Operation snapshot active status must not have a terminal");
614
+ throw new Error(t("Operation snapshot active status must not have a terminal"));
611
615
  }
612
616
  if (value.status !== "queued" && value.status !== "running" && value.terminal === undefined) {
613
- throw new Error("Operation snapshot terminal status requires a terminal");
617
+ throw new Error(t("Operation snapshot terminal status requires a terminal"));
614
618
  }
615
619
  const terminal = value.terminal === undefined ? undefined : validateOperationTerminalV1(value.terminal);
616
620
  if (terminal !== undefined && terminal.status !== value.status)
617
- throw new Error("Operation snapshot.terminal.status must match status");
621
+ throw new Error(t("Operation snapshot.terminal.status must match status"));
618
622
  if (value.instanceId !== undefined)
619
623
  assertNonEmptyString(value.instanceId, "Operation snapshot.instanceId");
620
624
  if (value.sessionId !== undefined)
621
625
  assertNonEmptyString(value.sessionId, "Operation snapshot.sessionId");
622
626
  const inputRevision = value.inputRevision === undefined ? undefined : validateSessionRevisionV1(value.inputRevision);
623
627
  if (inputRevision !== undefined && value.sessionId !== undefined && inputRevision.sessionId !== value.sessionId) {
624
- throw new Error("Operation snapshot.inputRevision.sessionId must match sessionId");
628
+ throw new Error(t("Operation snapshot.inputRevision.sessionId must match sessionId"));
625
629
  }
626
630
  return detachedFreeze({
627
631
  version: 1,
@@ -641,7 +645,7 @@ export function validateCommandRequestV1(value) {
641
645
  assertPlainRecord(value, "Command request");
642
646
  assertExactKeys(value, ["version", "operationId", "idempotencyKey", "command", "target", "input", "hostContext"], ["expectedRevision"], "Command request");
643
647
  if (value.version !== 1)
644
- throw new Error("Command request.version must be 1");
648
+ throw new Error(t("Command request.version must be 1"));
645
649
  assertNonEmptyString(value.operationId, "Command request.operationId");
646
650
  assertNonEmptyString(value.idempotencyKey, "Command request.idempotencyKey");
647
651
  assertNonEmptyString(value.command, "Command request.command");
@@ -649,7 +653,7 @@ export function validateCommandRequestV1(value) {
649
653
  assertJsonValue(value.input, "Command request.input");
650
654
  const expectedRevision = value.expectedRevision === undefined ? undefined : validateSessionRevisionV1(value.expectedRevision);
651
655
  if (expectedRevision !== undefined && expectedRevision.sessionId !== value.target) {
652
- throw new Error("Command request.expectedRevision.sessionId does not match target");
656
+ throw new Error(t("Command request.expectedRevision.sessionId does not match target"));
653
657
  }
654
658
  const hostContext = validateHostContextV1(value.hostContext);
655
659
  return detachedFreeze({
@@ -670,17 +674,17 @@ export function validateCommandAdmissionV1(value) {
670
674
  assertPlainRecord(value, "Command admission");
671
675
  assertExactKeys(value, ["version", "status", "request"], ["operation", "error"], "Command admission");
672
676
  if (value.version !== 1)
673
- throw new Error("Command admission.version must be 1");
677
+ throw new Error(t("Command admission.version must be 1"));
674
678
  if (value.status !== "accepted" && value.status !== "existing" && value.status !== "rejected") {
675
- throw new Error("Command admission.status is invalid");
679
+ throw new Error(t("Command admission.status is invalid"));
676
680
  }
677
681
  const request = validateCommandRequestV1(value.request);
678
682
  const operation = value.operation === undefined ? undefined : validateOperationSnapshotV1(value.operation);
679
683
  if ((value.status === "accepted" || value.status === "existing") && operation === undefined) {
680
- throw new Error("Command admission accepted status requires an operation");
684
+ throw new Error(t("Command admission accepted status requires an operation"));
681
685
  }
682
686
  if (value.status === "rejected" && value.error === undefined) {
683
- throw new Error("Command admission rejected status requires an error");
687
+ throw new Error(t("Command admission rejected status requires an error"));
684
688
  }
685
689
  const error = value.error === undefined ? undefined : validateErrorEnvelopeV1(value.error);
686
690
  return detachedFreeze({
@@ -724,7 +728,7 @@ export function createCommandOperationRegistryV1() {
724
728
  assertNonEmptyString(operationId, "operationId");
725
729
  const entry = entries.get(operationId);
726
730
  if (!entry)
727
- throw new Error(`Operation is not retained: ${operationId}`);
731
+ throw new Error(t("Operation is not retained: {operationId}", { operationId }));
728
732
  return entry;
729
733
  };
730
734
  const write = (entry, operation) => {
@@ -784,7 +788,7 @@ export function createCommandOperationRegistryV1() {
784
788
  if (terminal(entry)) {
785
789
  if (canonicalJson(entry.operation.terminal) !==
786
790
  canonicalJson(nextTerminal)) {
787
- throw new Error(`Operation already has a different terminal result: ${operationId}`);
791
+ throw new Error(t("Operation already has a different terminal result: {operationId}", { operationId }));
788
792
  }
789
793
  return entry.operation;
790
794
  }
@@ -881,7 +885,7 @@ export function buildCanonicalContractVectorsV1() {
881
885
  const registry = createCommandOperationRegistryV1();
882
886
  const accepted = registry.admit(command, command.expectedRevision);
883
887
  if (accepted.status !== "accepted" || accepted.operation === undefined) {
884
- throw new Error("Canonical contract vector admission failed");
888
+ throw new Error(t("Canonical contract vector admission failed"));
885
889
  }
886
890
  const running = registry.start(command.operationId);
887
891
  const terminal = registry.complete(command.operationId, {
@@ -946,7 +950,7 @@ export function buildCanonicalContractFixtureVectorsV1() {
946
950
  idempotencyKey: "fixture-request-failed",
947
951
  }), request.expectedRevision);
948
952
  if (failed.status !== "accepted")
949
- throw new Error("Canonical contract failed vector admission failed");
953
+ throw new Error(t("Canonical contract failed vector admission failed"));
950
954
  const failedTerminal = registry.complete("fixture-operation-failed", {
951
955
  version: 1,
952
956
  status: "failed",
@@ -963,7 +967,7 @@ export function buildCanonicalContractFixtureVectorsV1() {
963
967
  idempotencyKey: "fixture-request-timeout",
964
968
  }), request.expectedRevision);
965
969
  if (timedOut.status !== "accepted")
966
- throw new Error("Canonical contract timeout vector admission failed");
970
+ throw new Error(t("Canonical contract timeout vector admission failed"));
967
971
  const timedOutTerminal = registry.complete("fixture-operation-timeout", {
968
972
  version: 1,
969
973
  status: "timed_out",
@@ -1071,16 +1075,16 @@ export function validateEventEnvelopeV1(value) {
1071
1075
  assertPlainRecord(value, "Event envelope");
1072
1076
  assertExactKeys(value, ["version", "id", "deliveryId", "type", "source", "category", "deliveryGuarantee", "timestamp", "data"], ["operationId", "correlationId", "causationId"], "Event envelope");
1073
1077
  if (value.version !== 1)
1074
- throw new Error("Event envelope.version must be 1");
1078
+ throw new Error(t("Event envelope.version must be 1"));
1075
1079
  assertNonEmptyString(value.id, "Event envelope.id");
1076
1080
  assertNonEmptyString(value.deliveryId, "Event envelope.deliveryId");
1077
1081
  assertNonEmptyString(value.type, "Event envelope.type");
1078
1082
  assertNonEmptyString(value.source, "Event envelope.source");
1079
1083
  if (value.category !== "authoritative" && value.category !== "progress" && value.category !== "observation") {
1080
- throw new Error("Event envelope.category is invalid");
1084
+ throw new Error(t("Event envelope.category is invalid"));
1081
1085
  }
1082
1086
  if (value.deliveryGuarantee !== "best-effort" && value.deliveryGuarantee !== "at-least-once") {
1083
- throw new Error("Event envelope.deliveryGuarantee is invalid");
1087
+ throw new Error(t("Event envelope.deliveryGuarantee is invalid"));
1084
1088
  }
1085
1089
  assertNonNegativeSafeInteger(value.timestamp, "Event envelope.timestamp");
1086
1090
  assertJsonValue(value.data, "Event envelope.data");
@@ -1091,10 +1095,10 @@ export function validateEventEnvelopeV1(value) {
1091
1095
  if (value.causationId !== undefined)
1092
1096
  assertNonEmptyString(value.causationId, "Event envelope.causationId");
1093
1097
  if (value.operationId === undefined && value.correlationId !== undefined) {
1094
- throw new Error("Event envelope.correlationId requires a real operationId");
1098
+ throw new Error(t("Event envelope.correlationId requires a real operationId"));
1095
1099
  }
1096
1100
  if (value.operationId !== undefined && value.correlationId === undefined) {
1097
- throw new Error("Event envelope.operationId requires correlationId");
1101
+ throw new Error(t("Event envelope.operationId requires correlationId"));
1098
1102
  }
1099
1103
  return detachedFreeze({
1100
1104
  version: 1,