@ai-agent-forge/agent-forge 0.86.7 → 0.88.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 (717) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +10 -11
  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 +430 -413
  7. package/dist/bundle/chunks/{chunk-A7GUOX2H.js → chunk-6ZKDNZHA.js} +5 -1
  8. package/dist/bundle/chunks/chunk-HLJEVRWP.js +13 -0
  9. package/dist/bundle/chunks/chunk-YGHQME4V.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 +17 -4
  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 +5 -3
  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 +6 -10
  54. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  55. package/dist/core/agent-session-compaction.js +35 -133
  56. package/dist/core/agent-session-compaction.js.map +1 -1
  57. package/dist/core/agent-session-context.d.ts.map +1 -1
  58. package/dist/core/agent-session-context.js +18 -13
  59. package/dist/core/agent-session-context.js.map +1 -1
  60. package/dist/core/agent-session-internal.d.ts +0 -6
  61. package/dist/core/agent-session-internal.d.ts.map +1 -1
  62. package/dist/core/agent-session-internal.js.map +1 -1
  63. package/dist/core/agent-session-model.d.ts.map +1 -1
  64. package/dist/core/agent-session-model.js +2 -1
  65. package/dist/core/agent-session-model.js.map +1 -1
  66. package/dist/core/agent-session-retry.d.ts.map +1 -1
  67. package/dist/core/agent-session-retry.js +3 -3
  68. package/dist/core/agent-session-retry.js.map +1 -1
  69. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  70. package/dist/core/agent-session-runtime.js +7 -6
  71. package/dist/core/agent-session-runtime.js.map +1 -1
  72. package/dist/core/agent-session-services.d.ts +1 -1
  73. package/dist/core/agent-session-services.d.ts.map +1 -1
  74. package/dist/core/agent-session-services.js.map +1 -1
  75. package/dist/core/agent-session-tools.d.ts.map +1 -1
  76. package/dist/core/agent-session-tools.js +3 -2
  77. package/dist/core/agent-session-tools.js.map +1 -1
  78. package/dist/core/agent-session.d.ts +40 -22
  79. package/dist/core/agent-session.d.ts.map +1 -1
  80. package/dist/core/agent-session.js +147 -67
  81. package/dist/core/agent-session.js.map +1 -1
  82. package/dist/core/auth-guidance.d.ts.map +1 -1
  83. package/dist/core/auth-guidance.js +11 -5
  84. package/dist/core/auth-guidance.js.map +1 -1
  85. package/dist/core/auth-storage.d.ts.map +1 -1
  86. package/dist/core/auth-storage.js +9 -6
  87. package/dist/core/auth-storage.js.map +1 -1
  88. package/dist/core/compaction/compaction.d.ts.map +1 -1
  89. package/dist/core/compaction/compaction.js +2 -1
  90. package/dist/core/compaction/compaction.js.map +1 -1
  91. package/dist/core/embedded-sdk.d.ts.map +1 -1
  92. package/dist/core/embedded-sdk.js +10 -6
  93. package/dist/core/embedded-sdk.js.map +1 -1
  94. package/dist/core/export-html/index.d.ts.map +1 -1
  95. package/dist/core/export-html/index.js +9 -4
  96. package/dist/core/export-html/index.js.map +1 -1
  97. package/dist/core/extensions/agent-composition.d.ts.map +1 -1
  98. package/dist/core/extensions/agent-composition.js +26 -19
  99. package/dist/core/extensions/agent-composition.js.map +1 -1
  100. package/dist/core/extensions/bootstrap-agent-loop.d.ts.map +1 -1
  101. package/dist/core/extensions/bootstrap-agent-loop.js +3 -2
  102. package/dist/core/extensions/bootstrap-agent-loop.js.map +1 -1
  103. package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +1 -1
  104. package/dist/core/extensions/bootstrap-compaction-policy.js +0 -34
  105. package/dist/core/extensions/bootstrap-compaction-policy.js.map +1 -1
  106. package/dist/core/extensions/bootstrap-lifecycle.d.ts.map +1 -1
  107. package/dist/core/extensions/bootstrap-lifecycle.js +20 -17
  108. package/dist/core/extensions/bootstrap-lifecycle.js.map +1 -1
  109. package/dist/core/extensions/bootstrap-overflow-policy.d.ts.map +1 -1
  110. package/dist/core/extensions/bootstrap-overflow-policy.js +2 -1
  111. package/dist/core/extensions/bootstrap-overflow-policy.js.map +1 -1
  112. package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +1 -1
  113. package/dist/core/extensions/bootstrap-retry-policy.js +4 -3
  114. package/dist/core/extensions/bootstrap-retry-policy.js.map +1 -1
  115. package/dist/core/extensions/bootstrap-skills.d.ts.map +1 -1
  116. package/dist/core/extensions/bootstrap-skills.js +7 -6
  117. package/dist/core/extensions/bootstrap-skills.js.map +1 -1
  118. package/dist/core/extensions/bootstrap-tools.d.ts.map +1 -1
  119. package/dist/core/extensions/bootstrap-tools.js +2 -1
  120. package/dist/core/extensions/bootstrap-tools.js.map +1 -1
  121. package/dist/core/extensions/capability-plugin.d.ts.map +1 -1
  122. package/dist/core/extensions/capability-plugin.js +37 -13
  123. package/dist/core/extensions/capability-plugin.js.map +1 -1
  124. package/dist/core/extensions/capability-runtime-events.d.ts.map +1 -1
  125. package/dist/core/extensions/capability-runtime-events.js +17 -13
  126. package/dist/core/extensions/capability-runtime-events.js.map +1 -1
  127. package/dist/core/extensions/capability-runtime-guards.d.ts.map +1 -1
  128. package/dist/core/extensions/capability-runtime-guards.js +16 -15
  129. package/dist/core/extensions/capability-runtime-guards.js.map +1 -1
  130. package/dist/core/extensions/capability-runtime-manifest.d.ts.map +1 -1
  131. package/dist/core/extensions/capability-runtime-manifest.js +52 -30
  132. package/dist/core/extensions/capability-runtime-manifest.js.map +1 -1
  133. package/dist/core/extensions/capability-runtime-validation.d.ts.map +1 -1
  134. package/dist/core/extensions/capability-runtime-validation.js +66 -65
  135. package/dist/core/extensions/capability-runtime-validation.js.map +1 -1
  136. package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
  137. package/dist/core/extensions/capability-runtime.js +147 -127
  138. package/dist/core/extensions/capability-runtime.js.map +1 -1
  139. package/dist/core/extensions/compaction-memory-failure-mode.d.ts.map +1 -1
  140. package/dist/core/extensions/compaction-memory-failure-mode.js +3 -2
  141. package/dist/core/extensions/compaction-memory-failure-mode.js.map +1 -1
  142. package/dist/core/extensions/context-strategy-binding.d.ts.map +1 -1
  143. package/dist/core/extensions/context-strategy-binding.js +7 -4
  144. package/dist/core/extensions/context-strategy-binding.js.map +1 -1
  145. package/dist/core/extensions/lifecycle-catalog.d.ts.map +1 -1
  146. package/dist/core/extensions/lifecycle-catalog.js +290 -279
  147. package/dist/core/extensions/lifecycle-catalog.js.map +1 -1
  148. package/dist/core/extensions/lifecycle-delivery-queue.d.ts.map +1 -1
  149. package/dist/core/extensions/lifecycle-delivery-queue.js +3 -2
  150. package/dist/core/extensions/lifecycle-delivery-queue.js.map +1 -1
  151. package/dist/core/extensions/provider-failover.d.ts +7 -3
  152. package/dist/core/extensions/provider-failover.d.ts.map +1 -1
  153. package/dist/core/extensions/provider-failover.js +9 -8
  154. package/dist/core/extensions/provider-failover.js.map +1 -1
  155. package/dist/core/facade/coding-agent-facade.d.ts +6 -6
  156. package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
  157. package/dist/core/facade/coding-agent-facade.js +2 -3
  158. package/dist/core/facade/coding-agent-facade.js.map +1 -1
  159. package/dist/core/http-dispatcher.d.ts.map +1 -1
  160. package/dist/core/http-dispatcher.js +2 -1
  161. package/dist/core/http-dispatcher.js.map +1 -1
  162. package/dist/core/i18n/index.d.ts +14 -0
  163. package/dist/core/i18n/index.d.ts.map +1 -0
  164. package/dist/core/i18n/index.js +67 -0
  165. package/dist/core/i18n/index.js.map +1 -0
  166. package/dist/core/i18n/locales/en/example.d.ts +7 -0
  167. package/dist/core/i18n/locales/en/example.d.ts.map +1 -0
  168. package/dist/core/i18n/locales/en/example.js +7 -0
  169. package/dist/core/i18n/locales/en/example.js.map +1 -0
  170. package/dist/core/i18n/locales/zh-cn/cli.d.ts +8 -0
  171. package/dist/core/i18n/locales/zh-cn/cli.d.ts.map +1 -0
  172. package/dist/core/i18n/locales/zh-cn/cli.js +229 -0
  173. package/dist/core/i18n/locales/zh-cn/cli.js.map +1 -0
  174. package/dist/core/i18n/locales/zh-cn/common.d.ts +6 -0
  175. package/dist/core/i18n/locales/zh-cn/common.d.ts.map +1 -0
  176. package/dist/core/i18n/locales/zh-cn/common.js +6 -0
  177. package/dist/core/i18n/locales/zh-cn/common.js.map +1 -0
  178. package/dist/core/i18n/locales/zh-cn/core-contract-core.d.ts +13 -0
  179. package/dist/core/i18n/locales/zh-cn/core-contract-core.d.ts.map +1 -0
  180. package/dist/core/i18n/locales/zh-cn/core-contract-core.js +173 -0
  181. package/dist/core/i18n/locales/zh-cn/core-contract-core.js.map +1 -0
  182. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.d.ts +12 -0
  183. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.d.ts.map +1 -0
  184. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js +582 -0
  185. package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js.map +1 -0
  186. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts +9 -0
  187. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts.map +1 -0
  188. package/dist/core/i18n/locales/zh-cn/core-contract-final.js +55 -0
  189. package/dist/core/i18n/locales/zh-cn/core-contract-final.js.map +1 -0
  190. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts +11 -0
  191. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts.map +1 -0
  192. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js +455 -0
  193. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js.map +1 -0
  194. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts +9 -0
  195. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -0
  196. package/dist/core/i18n/locales/zh-cn/core-errors.js +191 -0
  197. package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -0
  198. package/dist/core/i18n/locales/zh-cn/example.d.ts +7 -0
  199. package/dist/core/i18n/locales/zh-cn/example.d.ts.map +1 -0
  200. package/dist/core/i18n/locales/zh-cn/example.js +10 -0
  201. package/dist/core/i18n/locales/zh-cn/example.js.map +1 -0
  202. package/dist/core/i18n/locales/zh-cn/index.d.ts +2 -0
  203. package/dist/core/i18n/locales/zh-cn/index.d.ts.map +1 -0
  204. package/dist/core/i18n/locales/zh-cn/index.js +41 -0
  205. package/dist/core/i18n/locales/zh-cn/index.js.map +1 -0
  206. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts +10 -0
  207. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -0
  208. package/dist/core/i18n/locales/zh-cn/interactive-mode.js +267 -0
  209. package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -0
  210. package/dist/core/i18n/locales/zh-cn/keybindings.d.ts +11 -0
  211. package/dist/core/i18n/locales/zh-cn/keybindings.d.ts.map +1 -0
  212. package/dist/core/i18n/locales/zh-cn/keybindings.js +67 -0
  213. package/dist/core/i18n/locales/zh-cn/keybindings.js.map +1 -0
  214. package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts +7 -0
  215. package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts.map +1 -0
  216. package/dist/core/i18n/locales/zh-cn/slash-commands.js +39 -0
  217. package/dist/core/i18n/locales/zh-cn/slash-commands.js.map +1 -0
  218. package/dist/core/i18n/locales/zh-cn/tui-builtin.d.ts +10 -0
  219. package/dist/core/i18n/locales/zh-cn/tui-builtin.d.ts.map +1 -0
  220. package/dist/core/i18n/locales/zh-cn/tui-builtin.js +15 -0
  221. package/dist/core/i18n/locales/zh-cn/tui-builtin.js.map +1 -0
  222. package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts +13 -0
  223. package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts.map +1 -0
  224. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js +102 -0
  225. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js.map +1 -0
  226. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.d.ts +12 -0
  227. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.d.ts.map +1 -0
  228. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js +286 -0
  229. package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js.map +1 -0
  230. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.d.ts +9 -0
  231. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.d.ts.map +1 -0
  232. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.js +79 -0
  233. package/dist/core/i18n/locales/zh-cn/tui-interactive-misc.js.map +1 -0
  234. package/dist/core/i18n/locales/zh-cn/tui-self-owned.d.ts +8 -0
  235. package/dist/core/i18n/locales/zh-cn/tui-self-owned.d.ts.map +1 -0
  236. package/dist/core/i18n/locales/zh-cn/tui-self-owned.js +72 -0
  237. package/dist/core/i18n/locales/zh-cn/tui-self-owned.js.map +1 -0
  238. package/dist/core/keybindings.d.ts +15 -0
  239. package/dist/core/keybindings.d.ts.map +1 -1
  240. package/dist/core/keybindings.js +18 -0
  241. package/dist/core/keybindings.js.map +1 -1
  242. package/dist/core/logger.d.ts.map +1 -1
  243. package/dist/core/logger.js +5 -1
  244. package/dist/core/logger.js.map +1 -1
  245. package/dist/core/model-config.d.ts +0 -1
  246. package/dist/core/model-config.d.ts.map +1 -1
  247. package/dist/core/model-config.js +9 -1
  248. package/dist/core/model-config.js.map +1 -1
  249. package/dist/core/model-registry.d.ts.map +1 -1
  250. package/dist/core/model-registry.js +2 -1
  251. package/dist/core/model-registry.js.map +1 -1
  252. package/dist/core/model-runtime.d.ts.map +1 -1
  253. package/dist/core/model-runtime.js +11 -7
  254. package/dist/core/model-runtime.js.map +1 -1
  255. package/dist/core/package-install-host.d.ts.map +1 -1
  256. package/dist/core/package-install-host.js +4 -3
  257. package/dist/core/package-install-host.js.map +1 -1
  258. package/dist/core/package-manager.d.ts.map +1 -1
  259. package/dist/core/package-manager.js +15 -10
  260. package/dist/core/package-manager.js.map +1 -1
  261. package/dist/core/package-resource-collection.d.ts.map +1 -1
  262. package/dist/core/package-resource-collection.js +2 -1
  263. package/dist/core/package-resource-collection.js.map +1 -1
  264. package/dist/core/package-source.d.ts.map +1 -1
  265. package/dist/core/package-source.js +3 -2
  266. package/dist/core/package-source.js.map +1 -1
  267. package/dist/core/provider-composer.d.ts +2 -2
  268. package/dist/core/provider-composer.d.ts.map +1 -1
  269. package/dist/core/provider-composer.js +29 -21
  270. package/dist/core/provider-composer.js.map +1 -1
  271. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  272. package/dist/core/remote-catalog-provider.js +6 -2
  273. package/dist/core/remote-catalog-provider.js.map +1 -1
  274. package/dist/core/resolve-config-value.d.ts.map +1 -1
  275. package/dist/core/resolve-config-value.js +15 -5
  276. package/dist/core/resolve-config-value.js.map +1 -1
  277. package/dist/core/sdk.d.ts +27 -5
  278. package/dist/core/sdk.d.ts.map +1 -1
  279. package/dist/core/sdk.js +80 -55
  280. package/dist/core/sdk.js.map +1 -1
  281. package/dist/core/session-cwd.d.ts.map +1 -1
  282. package/dist/core/session-cwd.js +5 -2
  283. package/dist/core/session-cwd.js.map +1 -1
  284. package/dist/core/session-export.d.ts.map +1 -1
  285. package/dist/core/session-export.js +2 -1
  286. package/dist/core/session-export.js.map +1 -1
  287. package/dist/core/session-manager.d.ts.map +1 -1
  288. package/dist/core/session-manager.js +39 -29
  289. package/dist/core/session-manager.js.map +1 -1
  290. package/dist/core/session-storage.d.ts.map +1 -1
  291. package/dist/core/session-storage.js +3 -3
  292. package/dist/core/session-storage.js.map +1 -1
  293. package/dist/core/settings-manager.d.ts +20 -20
  294. package/dist/core/settings-manager.d.ts.map +1 -1
  295. package/dist/core/settings-manager.js +47 -59
  296. package/dist/core/settings-manager.js.map +1 -1
  297. package/dist/core/slash-commands.d.ts.map +1 -1
  298. package/dist/core/slash-commands.js +53 -32
  299. package/dist/core/slash-commands.js.map +1 -1
  300. package/dist/core/system-prompt.d.ts.map +1 -1
  301. package/dist/core/system-prompt.js +25 -2
  302. package/dist/core/system-prompt.js.map +1 -1
  303. package/dist/core/tools/bash.d.ts.map +1 -1
  304. package/dist/core/tools/bash.js +11 -7
  305. package/dist/core/tools/bash.js.map +1 -1
  306. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  307. package/dist/core/tools/edit-diff.js +9 -4
  308. package/dist/core/tools/edit-diff.js.map +1 -1
  309. package/dist/core/tools/edit.d.ts.map +1 -1
  310. package/dist/core/tools/edit.js +4 -3
  311. package/dist/core/tools/edit.js.map +1 -1
  312. package/dist/core/tools/index.d.ts.map +1 -1
  313. package/dist/core/tools/index.js +3 -2
  314. package/dist/core/tools/index.js.map +1 -1
  315. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  316. package/dist/core/tools/output-accumulator.js +2 -1
  317. package/dist/core/tools/output-accumulator.js.map +1 -1
  318. package/dist/core/tools/read.d.ts.map +1 -1
  319. package/dist/core/tools/read.js +6 -2
  320. package/dist/core/tools/read.js.map +1 -1
  321. package/dist/core/tools/write.d.ts.map +1 -1
  322. package/dist/core/tools/write.js +2 -1
  323. package/dist/core/tools/write.js.map +1 -1
  324. package/dist/durable/durable-service.d.ts.map +1 -1
  325. package/dist/durable/durable-service.js +25 -18
  326. package/dist/durable/durable-service.js.map +1 -1
  327. package/dist/host/checkpoint-commit.d.ts.map +1 -1
  328. package/dist/host/checkpoint-commit.js +2 -1
  329. package/dist/host/checkpoint-commit.js.map +1 -1
  330. package/dist/host/manual-compaction.d.ts.map +1 -1
  331. package/dist/host/manual-compaction.js +2 -1
  332. package/dist/host/manual-compaction.js.map +1 -1
  333. package/dist/host/output-projection.d.ts +0 -13
  334. package/dist/host/output-projection.d.ts.map +1 -1
  335. package/dist/host/output-projection.js +16 -2
  336. package/dist/host/output-projection.js.map +1 -1
  337. package/dist/host/summary-retry.d.ts.map +1 -1
  338. package/dist/host/summary-retry.js +3 -2
  339. package/dist/host/summary-retry.js.map +1 -1
  340. package/dist/main.d.ts.map +1 -1
  341. package/dist/main.js +97 -60
  342. package/dist/main.js.map +1 -1
  343. package/dist/modes/interactive/components/agents-view.d.ts.map +1 -1
  344. package/dist/modes/interactive/components/agents-view.js +18 -15
  345. package/dist/modes/interactive/components/agents-view.js.map +1 -1
  346. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  347. package/dist/modes/interactive/components/assistant-message.js +6 -5
  348. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  349. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  350. package/dist/modes/interactive/components/bash-execution.js +12 -7
  351. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  352. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  353. package/dist/modes/interactive/components/bordered-loader.js +2 -1
  354. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  355. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  356. package/dist/modes/interactive/components/branch-summary-message.js +6 -5
  357. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  358. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  359. package/dist/modes/interactive/components/compaction-summary-message.js +9 -5
  360. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  361. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  362. package/dist/modes/interactive/components/config-selector.js +18 -15
  363. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  364. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  365. package/dist/modes/interactive/components/custom-entry.js +2 -1
  366. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  367. package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -1
  368. package/dist/modes/interactive/components/dialog-editor.js +5 -4
  369. package/dist/modes/interactive/components/dialog-editor.js.map +1 -1
  370. package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -1
  371. package/dist/modes/interactive/components/dialog-input.js +2 -1
  372. package/dist/modes/interactive/components/dialog-input.js.map +1 -1
  373. package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -1
  374. package/dist/modes/interactive/components/dialog-selector.js +4 -3
  375. package/dist/modes/interactive/components/dialog-selector.js.map +1 -1
  376. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  377. package/dist/modes/interactive/components/first-time-setup.js +11 -10
  378. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  379. package/dist/modes/interactive/components/footer.d.ts +0 -2
  380. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  381. package/dist/modes/interactive/components/footer.js +8 -10
  382. package/dist/modes/interactive/components/footer.js.map +1 -1
  383. package/dist/modes/interactive/components/index.d.ts +1 -0
  384. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  385. package/dist/modes/interactive/components/index.js +1 -0
  386. package/dist/modes/interactive/components/index.js.map +1 -1
  387. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  388. package/dist/modes/interactive/components/keybinding-hints.js +3 -2
  389. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  390. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  391. package/dist/modes/interactive/components/login-dialog.js +12 -11
  392. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  393. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  394. package/dist/modes/interactive/components/mermaid.js +6 -2
  395. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  396. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  397. package/dist/modes/interactive/components/model-selector.js +28 -16
  398. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  399. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  400. package/dist/modes/interactive/components/oauth-selector.js +10 -9
  401. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  402. package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -1
  403. package/dist/modes/interactive/components/plugin-manager-entry.js +22 -13
  404. package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -1
  405. package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -1
  406. package/dist/modes/interactive/components/plugin-selection-entry.js +27 -12
  407. package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -1
  408. package/dist/modes/interactive/components/queue-manager-selector.d.ts +60 -0
  409. package/dist/modes/interactive/components/queue-manager-selector.d.ts.map +1 -0
  410. package/dist/modes/interactive/components/queue-manager-selector.js +166 -0
  411. package/dist/modes/interactive/components/queue-manager-selector.js.map +1 -0
  412. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  413. package/dist/modes/interactive/components/scoped-models-selector.js +16 -14
  414. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  415. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  416. package/dist/modes/interactive/components/session-selector.js +43 -31
  417. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  418. package/dist/modes/interactive/components/settings-selector.d.ts +4 -6
  419. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  420. package/dist/modes/interactive/components/settings-selector.js +115 -120
  421. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  422. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  423. package/dist/modes/interactive/components/settings-submenu.js +5 -4
  424. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  425. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  426. package/dist/modes/interactive/components/show-images-selector.js +3 -2
  427. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  428. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  429. package/dist/modes/interactive/components/skill-invocation-message.js +4 -3
  430. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  431. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  432. package/dist/modes/interactive/components/status-indicator.js +14 -5
  433. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  434. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  435. package/dist/modes/interactive/components/theme-selector.js +2 -1
  436. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  437. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  438. package/dist/modes/interactive/components/thinking-selector.js +11 -4
  439. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  440. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  441. package/dist/modes/interactive/components/tool-execution.js +8 -3
  442. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  443. package/dist/modes/interactive/components/tree-list.d.ts.map +1 -1
  444. package/dist/modes/interactive/components/tree-list.js +7 -6
  445. package/dist/modes/interactive/components/tree-list.js.map +1 -1
  446. package/dist/modes/interactive/components/tree-render.d.ts.map +1 -1
  447. package/dist/modes/interactive/components/tree-render.js +28 -23
  448. package/dist/modes/interactive/components/tree-render.js.map +1 -1
  449. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  450. package/dist/modes/interactive/components/tree-selector.js +9 -7
  451. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  452. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  453. package/dist/modes/interactive/components/user-message-selector.js +5 -4
  454. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  455. package/dist/modes/interactive/components/workflow-view.d.ts.map +1 -1
  456. package/dist/modes/interactive/components/workflow-view.js +36 -21
  457. package/dist/modes/interactive/components/workflow-view.js.map +1 -1
  458. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  459. package/dist/modes/interactive/external-editor.js +2 -1
  460. package/dist/modes/interactive/external-editor.js.map +1 -1
  461. package/dist/modes/interactive/interactive-auth.d.ts.map +1 -1
  462. package/dist/modes/interactive/interactive-auth.js +71 -40
  463. package/dist/modes/interactive/interactive-auth.js.map +1 -1
  464. package/dist/modes/interactive/interactive-commands.d.ts +1 -0
  465. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
  466. package/dist/modes/interactive/interactive-commands.js +3 -0
  467. package/dist/modes/interactive/interactive-commands.js.map +1 -1
  468. package/dist/modes/interactive/interactive-dialog-ui.d.ts.map +1 -1
  469. package/dist/modes/interactive/interactive-dialog-ui.js +5 -5
  470. package/dist/modes/interactive/interactive-dialog-ui.js.map +1 -1
  471. package/dist/modes/interactive/interactive-format.d.ts.map +1 -1
  472. package/dist/modes/interactive/interactive-format.js +34 -18
  473. package/dist/modes/interactive/interactive-format.js.map +1 -1
  474. package/dist/modes/interactive/interactive-helpers.d.ts.map +1 -1
  475. package/dist/modes/interactive/interactive-helpers.js +7 -2
  476. package/dist/modes/interactive/interactive-helpers.js.map +1 -1
  477. package/dist/modes/interactive/interactive-mode.d.ts +4 -2
  478. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  479. package/dist/modes/interactive/interactive-mode.js +350 -279
  480. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  481. package/dist/modes/interactive/interactive-selectors.d.ts +9 -0
  482. package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -1
  483. package/dist/modes/interactive/interactive-selectors.js +79 -25
  484. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  485. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  486. package/dist/modes/interactive/theme/theme-controller.js +5 -1
  487. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  488. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  489. package/dist/modes/interactive/theme/theme.js +26 -23
  490. package/dist/modes/interactive/theme/theme.js.map +1 -1
  491. package/dist/modes/json-event.d.ts.map +1 -1
  492. package/dist/modes/json-event.js +3 -2
  493. package/dist/modes/json-event.js.map +1 -1
  494. package/dist/modes/print-mode.d.ts.map +1 -1
  495. package/dist/modes/print-mode.js +3 -2
  496. package/dist/modes/print-mode.js.map +1 -1
  497. package/dist/modes/rpc/rpc-client.d.ts +0 -8
  498. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  499. package/dist/modes/rpc/rpc-client.js +3 -14
  500. package/dist/modes/rpc/rpc-client.js.map +1 -1
  501. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  502. package/dist/modes/rpc/rpc-mode.js +0 -9
  503. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  504. package/dist/modes/rpc/rpc-types.d.ts +0 -19
  505. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  506. package/dist/modes/rpc/rpc-types.js.map +1 -1
  507. package/dist/package-manager-cli.d.ts.map +1 -1
  508. package/dist/package-manager-cli.js +28 -13
  509. package/dist/package-manager-cli.js.map +1 -1
  510. package/dist/plugins/ecosystem/catalog.d.ts.map +1 -1
  511. package/dist/plugins/ecosystem/catalog.js +3 -2
  512. package/dist/plugins/ecosystem/catalog.js.map +1 -1
  513. package/dist/plugins/ecosystem/cli.d.ts.map +1 -1
  514. package/dist/plugins/ecosystem/cli.js +2 -1
  515. package/dist/plugins/ecosystem/cli.js.map +1 -1
  516. package/dist/plugins/ecosystem/default-plugin-market.d.ts.map +1 -1
  517. package/dist/plugins/ecosystem/default-plugin-market.js +3 -2
  518. package/dist/plugins/ecosystem/default-plugin-market.js.map +1 -1
  519. package/dist/plugins/ecosystem/distribution.d.ts.map +1 -1
  520. package/dist/plugins/ecosystem/distribution.js +2 -1
  521. package/dist/plugins/ecosystem/distribution.js.map +1 -1
  522. package/dist/plugins/ecosystem/installer.d.ts.map +1 -1
  523. package/dist/plugins/ecosystem/installer.js +3 -2
  524. package/dist/plugins/ecosystem/installer.js.map +1 -1
  525. package/dist/plugins/ecosystem/node-disk-registry-source.d.ts.map +1 -1
  526. package/dist/plugins/ecosystem/node-disk-registry-source.js +20 -17
  527. package/dist/plugins/ecosystem/node-disk-registry-source.js.map +1 -1
  528. package/dist/plugins/ecosystem/node-distribution-host.d.ts.map +1 -1
  529. package/dist/plugins/ecosystem/node-distribution-host.js +35 -34
  530. package/dist/plugins/ecosystem/node-distribution-host.js.map +1 -1
  531. package/dist/plugins/ecosystem/node-npm-registry-source.d.ts.map +1 -1
  532. package/dist/plugins/ecosystem/node-npm-registry-source.js +35 -34
  533. package/dist/plugins/ecosystem/node-npm-registry-source.js.map +1 -1
  534. package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -1
  535. package/dist/plugins/ecosystem/node-package-install-host.js +9 -8
  536. package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -1
  537. package/dist/plugins/ecosystem/node-package-install-persistence.d.ts.map +1 -1
  538. package/dist/plugins/ecosystem/node-package-install-persistence.js +4 -3
  539. package/dist/plugins/ecosystem/node-package-install-persistence.js.map +1 -1
  540. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +9 -2
  541. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
  542. package/dist/plugins/ecosystem/node-plugin-bootstrap.js +44 -5
  543. package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
  544. package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts.map +1 -1
  545. package/dist/plugins/ecosystem/node-plugin-trust-root.js +10 -9
  546. package/dist/plugins/ecosystem/node-plugin-trust-root.js.map +1 -1
  547. package/dist/plugins/ecosystem/node-registry-source.d.ts.map +1 -1
  548. package/dist/plugins/ecosystem/node-registry-source.js +31 -30
  549. package/dist/plugins/ecosystem/node-registry-source.js.map +1 -1
  550. package/dist/plugins/ecosystem/node-release-package-source.d.ts.map +1 -1
  551. package/dist/plugins/ecosystem/node-release-package-source.js +30 -29
  552. package/dist/plugins/ecosystem/node-release-package-source.js.map +1 -1
  553. package/dist/plugins/ecosystem/node-tar-writer.d.ts.map +1 -1
  554. package/dist/plugins/ecosystem/node-tar-writer.js +11 -10
  555. package/dist/plugins/ecosystem/node-tar-writer.js.map +1 -1
  556. package/dist/plugins/ecosystem/node-url-package-source.d.ts.map +1 -1
  557. package/dist/plugins/ecosystem/node-url-package-source.js +21 -20
  558. package/dist/plugins/ecosystem/node-url-package-source.js.map +1 -1
  559. package/dist/plugins/ecosystem/plugin-acquisition.d.ts.map +1 -1
  560. package/dist/plugins/ecosystem/plugin-acquisition.js +3 -2
  561. package/dist/plugins/ecosystem/plugin-acquisition.js.map +1 -1
  562. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +9 -1
  563. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -1
  564. package/dist/plugins/ecosystem/plugin-bootstrap.js +5 -0
  565. package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -1
  566. package/dist/plugins/ecosystem/registry-cli-adapter.d.ts.map +1 -1
  567. package/dist/plugins/ecosystem/registry-cli-adapter.js +2 -1
  568. package/dist/plugins/ecosystem/registry-cli-adapter.js.map +1 -1
  569. package/dist/plugins/ecosystem/registry.d.ts.map +1 -1
  570. package/dist/plugins/ecosystem/registry.js +35 -32
  571. package/dist/plugins/ecosystem/registry.js.map +1 -1
  572. package/dist/plugins/ecosystem/resolver.d.ts.map +1 -1
  573. package/dist/plugins/ecosystem/resolver.js +3 -2
  574. package/dist/plugins/ecosystem/resolver.js.map +1 -1
  575. package/dist/plugins/ecosystem/selection-store.d.ts.map +1 -1
  576. package/dist/plugins/ecosystem/selection-store.js +11 -10
  577. package/dist/plugins/ecosystem/selection-store.js.map +1 -1
  578. package/dist/plugins/ecosystem/selection.d.ts.map +1 -1
  579. package/dist/plugins/ecosystem/selection.js +8 -7
  580. package/dist/plugins/ecosystem/selection.js.map +1 -1
  581. package/dist/plugins/ecosystem/state.d.ts.map +1 -1
  582. package/dist/plugins/ecosystem/state.js +24 -23
  583. package/dist/plugins/ecosystem/state.js.map +1 -1
  584. package/dist/plugins/ecosystem/updates.d.ts.map +1 -1
  585. package/dist/plugins/ecosystem/updates.js +5 -4
  586. package/dist/plugins/ecosystem/updates.js.map +1 -1
  587. package/dist/plugins/mcp-http.d.ts +0 -17
  588. package/dist/plugins/mcp-http.d.ts.map +1 -1
  589. package/dist/plugins/mcp-http.js +30 -7
  590. package/dist/plugins/mcp-http.js.map +1 -1
  591. package/dist/plugins/plugin-supervisor.d.ts.map +1 -1
  592. package/dist/plugins/plugin-supervisor.js +19 -1
  593. package/dist/plugins/plugin-supervisor.js.map +1 -1
  594. package/dist/profile/first-roles.d.ts.map +1 -1
  595. package/dist/profile/first-roles.js +10 -1
  596. package/dist/profile/first-roles.js.map +1 -1
  597. package/dist/profile/goal-plugin.d.ts.map +1 -1
  598. package/dist/profile/goal-plugin.js +24 -5
  599. package/dist/profile/goal-plugin.js.map +1 -1
  600. package/dist/profile/identity.d.ts.map +1 -1
  601. package/dist/profile/identity.js +7 -6
  602. package/dist/profile/identity.js.map +1 -1
  603. package/dist/profile/lock.d.ts.map +1 -1
  604. package/dist/profile/lock.js +15 -1
  605. package/dist/profile/lock.js.map +1 -1
  606. package/dist/profile/plan-plugin.d.ts.map +1 -1
  607. package/dist/profile/plan-plugin.js +26 -13
  608. package/dist/profile/plan-plugin.js.map +1 -1
  609. package/dist/profile/plugin-profiles.d.ts.map +1 -1
  610. package/dist/profile/plugin-profiles.js +2 -1
  611. package/dist/profile/plugin-profiles.js.map +1 -1
  612. package/dist/profile/policy-manifest.d.ts.map +1 -1
  613. package/dist/profile/policy-manifest.js +5 -4
  614. package/dist/profile/policy-manifest.js.map +1 -1
  615. package/dist/profile/profile-registry.d.ts +0 -12
  616. package/dist/profile/profile-registry.d.ts.map +1 -1
  617. package/dist/profile/profile-registry.js +14 -1
  618. package/dist/profile/profile-registry.js.map +1 -1
  619. package/dist/profile/role-catalog.d.ts +0 -1
  620. package/dist/profile/role-catalog.d.ts.map +1 -1
  621. package/dist/profile/role-catalog.js +17 -15
  622. package/dist/profile/role-catalog.js.map +1 -1
  623. package/dist/profile/role-orchestrator.d.ts.map +1 -1
  624. package/dist/profile/role-orchestrator.js +8 -7
  625. package/dist/profile/role-orchestrator.js.map +1 -1
  626. package/dist/profile/role-runner.d.ts.map +1 -1
  627. package/dist/profile/role-runner.js +3 -2
  628. package/dist/profile/role-runner.js.map +1 -1
  629. package/dist/profile/root-facade.d.ts.map +1 -1
  630. package/dist/profile/root-facade.js +2 -1
  631. package/dist/profile/root-facade.js.map +1 -1
  632. package/dist/profile/skill-discovery-wiring.d.ts.map +1 -1
  633. package/dist/profile/skill-discovery-wiring.js +7 -2
  634. package/dist/profile/skill-discovery-wiring.js.map +1 -1
  635. package/dist/profile/state-store.d.ts.map +1 -1
  636. package/dist/profile/state-store.js +13 -9
  637. package/dist/profile/state-store.js.map +1 -1
  638. package/dist/profile/todo-plugin.d.ts.map +1 -1
  639. package/dist/profile/todo-plugin.js +9 -4
  640. package/dist/profile/todo-plugin.js.map +1 -1
  641. package/dist/profiles/builtin-suites.d.ts +13 -6
  642. package/dist/profiles/builtin-suites.d.ts.map +1 -1
  643. package/dist/profiles/builtin-suites.js +15 -6
  644. package/dist/profiles/builtin-suites.js.map +1 -1
  645. package/dist/profiles/suite-loader.d.ts +25 -1
  646. package/dist/profiles/suite-loader.d.ts.map +1 -1
  647. package/dist/profiles/suite-loader.js +34 -9
  648. package/dist/profiles/suite-loader.js.map +1 -1
  649. package/dist/remote/server-entry.d.ts.map +1 -1
  650. package/dist/remote/server-entry.js +3 -2
  651. package/dist/remote/server-entry.js.map +1 -1
  652. package/dist/remote/session-source.d.ts.map +1 -1
  653. package/dist/remote/session-source.js +8 -4
  654. package/dist/remote/session-source.js.map +1 -1
  655. package/dist/share/session-share.d.ts.map +1 -1
  656. package/dist/share/session-share.js +14 -2
  657. package/dist/share/session-share.js.map +1 -1
  658. package/dist/testing/plugin-testkit.d.ts.map +1 -1
  659. package/dist/testing/plugin-testkit.js +4 -3
  660. package/dist/testing/plugin-testkit.js.map +1 -1
  661. package/dist/testing/runtime-delivery-queue.d.ts.map +1 -1
  662. package/dist/testing/runtime-delivery-queue.js +2 -1
  663. package/dist/testing/runtime-delivery-queue.js.map +1 -1
  664. package/dist/testing/session-plugin-testkit.d.ts.map +1 -1
  665. package/dist/testing/session-plugin-testkit.js +10 -7
  666. package/dist/testing/session-plugin-testkit.js.map +1 -1
  667. package/dist/utils/ansi.d.ts.map +1 -1
  668. package/dist/utils/ansi.js +2 -1
  669. package/dist/utils/ansi.js.map +1 -1
  670. package/dist/utils/clipboard.d.ts.map +1 -1
  671. package/dist/utils/clipboard.js +7 -6
  672. package/dist/utils/clipboard.js.map +1 -1
  673. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  674. package/dist/utils/image-resize-worker.js +3 -2
  675. package/dist/utils/image-resize-worker.js.map +1 -1
  676. package/dist/utils/photon.d.ts +2 -2
  677. package/dist/utils/photon.d.ts.map +1 -1
  678. package/dist/utils/photon.js +2 -2
  679. package/dist/utils/photon.js.map +1 -1
  680. package/dist/utils/shell.d.ts.map +1 -1
  681. package/dist/utils/shell.js +9 -8
  682. package/dist/utils/shell.js.map +1 -1
  683. package/dist/utils/tools-manager.d.ts.map +1 -1
  684. package/dist/utils/tools-manager.js +23 -13
  685. package/dist/utils/tools-manager.js.map +1 -1
  686. package/dist/utils/version-check.d.ts.map +1 -1
  687. package/dist/utils/version-check.js +5 -1
  688. package/dist/utils/version-check.js.map +1 -1
  689. package/docs/compaction.md +1 -3
  690. package/docs/docs.json +4 -0
  691. package/docs/index.md +1 -0
  692. package/docs/keybindings.md +3 -0
  693. package/docs/mcp.md +103 -0
  694. package/docs/models.md +14 -22
  695. package/docs/providers.md +0 -1
  696. package/docs/quickstart.md +1 -1
  697. package/docs/rpc.md +1 -26
  698. package/docs/sdk.md +4 -6
  699. package/docs/settings.md +10 -12
  700. package/docs/skills.md +1 -9
  701. package/docs/terminal-setup.md +2 -3
  702. package/docs/usage.md +7 -6
  703. package/examples/extensions/with-deps/package-lock.json +2 -2
  704. package/examples/extensions/with-deps/package.json +1 -1
  705. package/examples/extensions/with-deps/plugin.json +1 -1
  706. package/examples/sdk/10-settings.ts +2 -4
  707. package/examples/sdk/12-full-control.ts +1 -2
  708. package/package.json +1 -3
  709. package/dist/bundle/chunks/chunk-EALJ5DDX.js +0 -1452
  710. package/dist/core/extensions/microcompact.d.ts +0 -80
  711. package/dist/core/extensions/microcompact.d.ts.map +0 -1
  712. package/dist/core/extensions/microcompact.js +0 -134
  713. package/dist/core/extensions/microcompact.js.map +0 -1
  714. package/dist/server/create-harness.d.ts +0 -26
  715. package/dist/server/create-harness.d.ts.map +0 -1
  716. package/dist/server/create-harness.js +0 -106
  717. package/dist/server/create-harness.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-capability-contract.js","sourceRoot":"","sources":["../../src/core/agent-capability-contract.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Transport-neutral Agent Capability Contract.\n *\n * This module is deliberately self contained. It describes serializable\n * facts shared by an embedded SDK binding and a service binding; it does not\n * import either binding or a runtime Agent object.\n */\n\nexport const AGENT_CAPABILITY_CONTRACT_ID = \"agent-forge/agent-capability-contract\" as const;\nexport const AGENT_CAPABILITY_CONTRACT_VERSION = 1 as const;\n\n/** The only contract version currently understood by this module. */\nexport type AgentCapabilityContractVersion = 1;\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { readonly [key: string]: JsonValue };\n\nexport type HostMode = \"readonly\" | \"full-control\";\nexport type HostTransport = \"in-process\" | \"stdio\" | \"http\" | \"rpc\" | \"unix\" | \"websocket\";\n\nexport interface CapabilityRefV1 {\n\treadonly id: string;\n\treadonly version: number;\n}\n\nexport interface HostContextV1 {\n\treadonly mode: HostMode;\n\treadonly features: readonly string[];\n\treadonly transports: readonly HostTransport[];\n}\n\nexport interface AgentCapabilityContractV1 {\n\treadonly contractId: string;\n\treadonly version: 1;\n\treadonly capabilities: readonly CapabilityRefV1[];\n\treadonly hostContext: HostContextV1;\n}\n\n/** Canonical profile identity and composition snapshot shared by bindings. */\nexport interface AgentProfileV1 {\n\treadonly id: string;\n\treadonly version: number;\n\treadonly rootAgent: string;\n\treadonly requiredPlugins: readonly string[];\n\treadonly optionalPlugins?: readonly string[];\n\treadonly defaults?: JsonValue;\n}\n\n/** JSON-safe artifact reference; bytes are fetched through the host artifact API. */\nexport interface ArtifactRefV1 {\n\treadonly sessionId: string;\n\treadonly operationId: string;\n\treadonly artifactId: string;\n\treadonly kind: string;\n\treadonly mediaType: string;\n\treadonly sizeBytes?: number;\n\treadonly truncated: boolean;\n\treadonly createdAt: number;\n}\n\nexport type AgentRoleV1 = \"root-agent-controller\" | \"child-agent-controller\";\nexport type AgentInstanceStatusV1 = \"created\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\" | \"disposed\";\n\nexport interface AgentDefinitionSnapshotV1 {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly definitionVersion: number;\n\treadonly role: AgentRoleV1;\n\treadonly capabilities: readonly CapabilityRefV1[];\n\treadonly owner?: string;\n}\n\nexport interface AgentInstanceSnapshotV1 {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly definitionId: string;\n\treadonly definitionVersion: number;\n\treadonly role: AgentRoleV1;\n\treadonly status: AgentInstanceStatusV1;\n\treadonly revision: number;\n\treadonly parentInstanceId?: string;\n\treadonly leaseOwner?: string;\n}\n\nexport interface SessionRevisionV1 {\n\treadonly version: 1;\n\treadonly sessionId: string;\n\treadonly sequence: number;\n\treadonly leafId: string | null;\n}\n\nexport interface SessionSnapshotV1 {\n\treadonly version: 1;\n\treadonly sessionId: string;\n\treadonly revision: SessionRevisionV1;\n}\n\n/**\n * Unified operation lifecycle: queued → running → succeeded | failed |\n * cancelled | timed_out.\n *\n * Producer authority (D-043 unification): the runtime executor only settles\n * succeeded, failed, and cancelled — it has no watchdog. `timed_out` is\n * host-declared through `complete()` when a caller-imposed deadline expires.\n * Explicit cancel wins over late results; a second `complete()` with a\n * different terminal is rejected. The interaction layer's\n * `options.timeoutMs` produces the separate `InteractionOutcomeV1` \"timeout\"\n * vocabulary, never this status.\n */\nexport type OperationStatusV1 = \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\" | \"timed_out\";\n/** Terminal set including the host-declared `timed_out`; the executor-side truthful subset is `OperationTerminalStatus` in capability-runtime-types. */\nexport type OperationTerminalStatusV1 = Exclude<OperationStatusV1, \"queued\" | \"running\">;\n\n/** Shared error-code registry for the canonical Agent contract. Extensions may use namespaced codes. */\nexport const AGENT_ERROR_CODES_V1 = [\n\t\"provider_error\",\n\t\"operation_timeout\",\n\t\"operation_cancelled\",\n\t\"idempotency_conflict\",\n\t\"revision_conflict\",\n\t\"revision_unavailable\",\n\t\"unsupported_capability\",\n\t\"invalid_request\",\n\t\"invalid_ref\",\n\t\"not_found\",\n\t\"cancelled\",\n\t\"unsupported\",\n\t\"busy\",\n\t\"session_locked\",\n\t\"unauthorized\",\n\t\"not_implemented\",\n\t\"internal_error\",\n] as const;\nexport type AgentErrorCodeV1 = (typeof AGENT_ERROR_CODES_V1)[number];\nconst agentErrorCodeSet = new Set<string>(AGENT_ERROR_CODES_V1);\n\nexport function isRegisteredAgentErrorCodeV1(code: string): code is AgentErrorCodeV1 {\n\treturn agentErrorCodeSet.has(code);\n}\n\n/**\n * Frozen mapping from protocol/server transport error codes onto canonical\n * agent error codes. Codes outside this table pass through unchanged so plugin\n * namespaced codes (e.g. `plugin.custom_failure`) survive projection.\n */\nexport const PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1: Readonly<Record<string, AgentErrorCodeV1>> = Object.freeze({\n\tversion: \"unsupported\",\n\tbusy: \"busy\",\n\tsession_locked: \"session_locked\",\n\tnot_found: \"not_found\",\n\tinvalid_request: \"invalid_request\",\n\tunauthorized: \"unauthorized\",\n\tnot_implemented: \"not_implemented\",\n\tinternal_error: \"internal_error\",\n});\n\nexport function mapProtocolErrorCodeToAgentErrorV1(code: string): AgentErrorCodeV1 | undefined {\n\treturn PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1[code];\n}\n\n/**\n * Projects an arbitrary caught error onto a canonical detached error envelope.\n * Transport errors carrying a mappable `code` are mapped; already canonical or\n * namespaced codes pass through; anything else falls back to `internal_error`.\n */\nexport function toErrorEnvelopeV1(error: unknown): ErrorEnvelopeV1 {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst name = error instanceof Error ? error.name : undefined;\n\tlet code: string | undefined;\n\tif (error && typeof error === \"object\" && \"code\" in error) {\n\t\tconst raw = (error as { code?: unknown }).code;\n\t\tif (typeof raw === \"string\" && raw.trim() !== \"\") code = raw;\n\t}\n\tif (code === undefined) code = \"internal_error\";\n\tconst mapped = PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1[code];\n\treturn buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: mapped ?? code,\n\t\tmessage,\n\t\tretryable: false,\n\t\t...(name === undefined ? {} : { name }),\n\t});\n}\n\nexport interface ErrorEnvelopeV1 {\n\treadonly version: 1;\n\treadonly code: string;\n\treadonly message: string;\n\treadonly retryable: boolean;\n\treadonly details?: JsonValue;\n\treadonly name?: string;\n}\n\nexport interface SuccessfulOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"succeeded\";\n\treadonly result?: JsonValue;\n}\n\nexport interface FailedOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"failed\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport interface CancelledOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"cancelled\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport interface TimedOutOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"timed_out\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport type OperationTerminalV1 =\n\t| SuccessfulOperationTerminalV1\n\t| FailedOperationTerminalV1\n\t| CancelledOperationTerminalV1\n\t| TimedOutOperationTerminalV1;\n\nexport interface OperationSnapshotV1 {\n\treadonly version: 1;\n\treadonly operationId: string;\n\treadonly kind: string;\n\treadonly status: OperationStatusV1;\n\treadonly terminal?: OperationTerminalV1;\n\treadonly instanceId?: string;\n\treadonly sessionId?: string;\n\treadonly inputRevision?: SessionRevisionV1;\n}\n\n/** Transport-neutral command request shared by embedded and remote bindings. */\nexport interface CommandRequestV1 {\n\treadonly version: 1;\n\treadonly operationId: string;\n\treadonly idempotencyKey: string;\n\treadonly command: string;\n\treadonly target: string;\n\treadonly input: JsonValue;\n\treadonly expectedRevision?: SessionRevisionV1;\n\treadonly hostContext: HostContextV1;\n}\n\nexport interface CommandAdmissionV1 {\n\treadonly version: 1;\n\treadonly status: \"accepted\" | \"existing\" | \"rejected\";\n\treadonly request: CommandRequestV1;\n\treadonly operation?: OperationSnapshotV1;\n\treadonly error?: ErrorEnvelopeV1;\n}\n\n/**\n * A transport-neutral, in-memory reference for command admission semantics.\n * Hosts may persist this state differently, but must preserve its idempotency\n * and revision-conflict behavior.\n */\nexport interface CommandOperationRegistryV1 {\n\tadmit(request: CommandRequestV1, currentRevision?: SessionRevisionV1): CommandAdmissionV1;\n\tstart(operationId: string): OperationSnapshotV1;\n\tcomplete(operationId: string, terminal: OperationTerminalV1): OperationSnapshotV1;\n\tcancel(operationId: string): OperationSnapshotV1;\n\tget(operationId: string): OperationSnapshotV1 | undefined;\n\trelease(operationId: string): void;\n}\n\nexport interface CanonicalContractVectorsV1 {\n\treadonly version: 1;\n\treadonly contract: AgentCapabilityContractV1;\n\treadonly definition: AgentDefinitionSnapshotV1;\n\treadonly instance: AgentInstanceSnapshotV1;\n\treadonly session: SessionSnapshotV1;\n\treadonly revision: SessionRevisionV1;\n\treadonly error: ErrorEnvelopeV1;\n\treadonly profile: AgentProfileV1;\n\treadonly artifact: ArtifactRefV1;\n\treadonly command: CommandRequestV1;\n\treadonly accepted: CommandAdmissionV1;\n\treadonly running: OperationSnapshotV1;\n\treadonly terminal: OperationSnapshotV1;\n\treadonly event: EventEnvelopeV1;\n}\n\n/** A named, JSON-safe semantic vector shared by future SDK and wire bindings. */\nexport interface CanonicalContractFixtureVectorV1 {\n\treadonly id: string;\n\treadonly value: JsonValue;\n}\n\nexport interface EventEnvelopeV1<TData extends JsonValue = JsonValue> {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly deliveryId: string;\n\treadonly type: string;\n\treadonly source: string;\n\treadonly category: EventCategoryV1;\n\treadonly deliveryGuarantee: EventDeliveryGuaranteeV1;\n\treadonly timestamp: number;\n\treadonly data: TData;\n\treadonly operationId?: string;\n\treadonly correlationId?: string;\n\treadonly causationId?: string;\n}\n\nexport type EventCategoryV1 = \"authoritative\" | \"progress\" | \"observation\";\nexport type EventDeliveryGuaranteeV1 = \"best-effort\" | \"at-least-once\";\n\nexport interface SupportedCapabilityV1 {\n\treadonly status: \"supported\";\n\treadonly capability: CapabilityRefV1;\n}\n\nexport interface UnsupportedCapabilityV1 {\n\treadonly status: \"unsupported\";\n\treadonly capability: CapabilityRefV1;\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport type CapabilityResolutionV1 = SupportedCapabilityV1 | UnsupportedCapabilityV1;\n\n/** Requirements a binding must satisfy before it can use a canonical contract. */\nexport interface ContractCompatibilityRequirementsV1 {\n\treadonly contractId: string;\n\treadonly version: number;\n\treadonly mode: HostMode;\n\treadonly features: readonly string[];\n\treadonly transports: readonly HostTransport[];\n\treadonly capabilities: readonly CapabilityRefV1[];\n}\n\nexport type ContractCompatibilityIssueCodeV1 =\n\t| \"unsupported_contract\"\n\t| \"host_mode_mismatch\"\n\t| \"unsupported_feature\"\n\t| \"unsupported_transport\"\n\t| \"unsupported_capability\";\n\nexport interface ContractCompatibilityIssueV1 {\n\treadonly code: ContractCompatibilityIssueCodeV1;\n\treadonly error: ErrorEnvelopeV1;\n\treadonly missingFeatures?: readonly string[];\n\treadonly missingTransports?: readonly HostTransport[];\n\treadonly missingCapabilities?: readonly CapabilityRefV1[];\n}\n\nexport interface ContractCompatibilityResultV1 {\n\treadonly version: 1;\n\treadonly compatible: boolean;\n\treadonly issues: readonly ContractCompatibilityIssueV1[];\n}\n\ntype PlainRecord = Record<string, unknown>;\n\nfunction isPlainRecord(value: unknown): value is PlainRecord {\n\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n}\n\nfunction assertPlainRecord(value: unknown, label: string): asserts value is PlainRecord {\n\tif (!isPlainRecord(value)) throw new Error(`${label} must be a plain object`);\n}\n\nfunction assertExactKeys(\n\tvalue: PlainRecord,\n\trequired: readonly string[],\n\toptional: readonly string[],\n\tlabel: string,\n): void {\n\tconst allowed = new Set([...required, ...optional]);\n\tconst unsupported = Object.keys(value)\n\t\t.filter((key) => !allowed.has(key))\n\t\t.sort();\n\tif (unsupported.length > 0) throw new Error(`${label} has unsupported fields: ${unsupported.join(\", \")}`);\n\tfor (const key of required) {\n\t\tif (!(key in value)) throw new Error(`${label} is missing required field: ${key}`);\n\t}\n}\n\nfunction assertNonEmptyString(value: unknown, label: string): asserts value is string {\n\tif (typeof value !== \"string\" || value.trim().length === 0) throw new Error(`${label} must be a non-empty string`);\n}\n\nfunction assertPositiveSafeInteger(value: unknown, label: string): asserts value is number {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 1) {\n\t\tthrow new Error(`${label} must be a positive safe integer`);\n\t}\n}\n\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n\t\tthrow new Error(`${label} must be a non-negative safe integer`);\n\t}\n}\n\nfunction assertJsonValue(value: unknown, label: string, seen = new WeakSet<object>()): asserts value is JsonValue {\n\tif (value === null || typeof value === \"boolean\" || typeof value === \"string\") return;\n\tif (typeof value === \"number\") {\n\t\tif (Number.isFinite(value)) return;\n\t\tthrow new Error(`${label} must contain finite JSON numbers`);\n\t}\n\tif (typeof value !== \"object\") throw new Error(`${label} must be JSON-compatible`);\n\tif (seen.has(value)) throw new Error(`${label} must not contain cycles`);\n\tseen.add(value);\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, child] of value.entries()) assertJsonValue(child, `${label}[${index}]`, seen);\n\t} else {\n\t\tif (!isPlainRecord(value)) throw new Error(`${label} must contain only plain JSON objects`);\n\t\tfor (const [key, child] of Object.entries(value)) assertJsonValue(child, `${label}.${key}`, seen);\n\t}\n\tseen.delete(value);\n}\n\nfunction detachedFreeze<T>(value: T, seen = new WeakMap<object, unknown>()): T {\n\tif (value === null || typeof value !== \"object\") return value;\n\tconst existing = seen.get(value);\n\tif (existing !== undefined) return existing as T;\n\tif (Array.isArray(value)) {\n\t\tconst result: unknown[] = [];\n\t\tseen.set(value, result);\n\t\tfor (const child of value) result.push(detachedFreeze(child, seen));\n\t\treturn Object.freeze(result) as T;\n\t}\n\tconst result: PlainRecord = {};\n\tseen.set(value, result);\n\tfor (const [key, child] of Object.entries(value as PlainRecord)) result[key] = detachedFreeze(child, seen);\n\treturn Object.freeze(result) as T;\n}\n\nfunction capabilitySort(left: CapabilityRefV1, right: CapabilityRefV1): number {\n\treturn left.id < right.id ? -1 : left.id > right.id ? 1 : left.version - right.version;\n}\n\nfunction validateCapabilityRefs(value: unknown, label: string): readonly CapabilityRefV1[] {\n\tif (!Array.isArray(value)) throw new Error(`${label} must be an array`);\n\tconst refs = value.map((item, index) => validateCapabilityRefV1(item, `${label}[${index}]`));\n\tconst seen = new Set<string>();\n\tfor (const ref of refs) {\n\t\tconst key = `${ref.id}\\u0000${ref.version}`;\n\t\tif (seen.has(key)) throw new Error(`${label} contains duplicate capability: ${ref.id}@${ref.version}`);\n\t\tseen.add(key);\n\t}\n\treturn Object.freeze(refs.sort(capabilitySort));\n}\n\nfunction validateHostTransport(value: unknown, label: string): asserts value is HostTransport {\n\tif (\n\t\tvalue !== \"in-process\" &&\n\t\tvalue !== \"stdio\" &&\n\t\tvalue !== \"http\" &&\n\t\tvalue !== \"rpc\" &&\n\t\tvalue !== \"unix\" &&\n\t\tvalue !== \"websocket\"\n\t) {\n\t\tthrow new Error(`${label} is invalid`);\n\t}\n}\n\nexport function validateCapabilityRefV1(value: unknown, label = \"Capability reference\"): CapabilityRefV1 {\n\tassertPlainRecord(value, label);\n\tassertExactKeys(value, [\"id\", \"version\"], [], label);\n\tassertNonEmptyString(value.id, `${label}.id`);\n\tassertPositiveSafeInteger(value.version, `${label}.version`);\n\treturn detachedFreeze({ id: value.id, version: value.version });\n}\n\nexport function buildCapabilityRefV1(input: CapabilityRefV1): CapabilityRefV1 {\n\treturn validateCapabilityRefV1(input);\n}\n\nexport function validateHostContextV1(value: unknown): HostContextV1 {\n\tassertPlainRecord(value, \"Host context\");\n\tassertExactKeys(value, [\"mode\", \"features\", \"transports\"], [], \"Host context\");\n\tif (value.mode !== \"readonly\" && value.mode !== \"full-control\") throw new Error(\"Host context.mode is invalid\");\n\tif (!Array.isArray(value.features)) throw new Error(\"Host context.features must be an array\");\n\tconst features = value.features.map((feature, index) => {\n\t\tassertNonEmptyString(feature, `Host context.features[${index}]`);\n\t\treturn feature;\n\t});\n\tif (new Set(features).size !== features.length) throw new Error(\"Host context.features must not contain duplicates\");\n\tif (!Array.isArray(value.transports)) throw new Error(\"Host context.transports must be an array\");\n\tconst transports = value.transports.map((transport, index) => {\n\t\tvalidateHostTransport(transport, `Host context.transports[${index}]`);\n\t\treturn transport;\n\t});\n\tif (new Set(transports).size !== transports.length)\n\t\tthrow new Error(\"Host context.transports must not contain duplicates\");\n\treturn detachedFreeze({\n\t\tmode: value.mode,\n\t\tfeatures: [...features].sort(),\n\t\ttransports: [...transports].sort(),\n\t});\n}\n\nexport function buildHostContextV1(input: HostContextV1): HostContextV1 {\n\treturn validateHostContextV1(input);\n}\n\nexport function validateContractCompatibilityRequirementsV1(value: unknown): ContractCompatibilityRequirementsV1 {\n\tassertPlainRecord(value, \"Contract compatibility requirements\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"contractId\", \"version\", \"mode\", \"features\", \"transports\", \"capabilities\"],\n\t\t[],\n\t\t\"Contract compatibility requirements\",\n\t);\n\tassertNonEmptyString(value.contractId, \"Contract compatibility requirements.contractId\");\n\tassertPositiveSafeInteger(value.version, \"Contract compatibility requirements.version\");\n\tconst hostContext = validateHostContextV1({\n\t\tmode: value.mode,\n\t\tfeatures: value.features,\n\t\ttransports: value.transports,\n\t});\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Contract compatibility requirements.capabilities\");\n\treturn detachedFreeze({\n\t\tcontractId: value.contractId,\n\t\tversion: value.version,\n\t\tmode: hostContext.mode,\n\t\tfeatures: hostContext.features,\n\t\ttransports: hostContext.transports,\n\t\tcapabilities,\n\t});\n}\n\nexport function buildContractCompatibilityRequirementsV1(\n\tinput: ContractCompatibilityRequirementsV1,\n): ContractCompatibilityRequirementsV1 {\n\treturn validateContractCompatibilityRequirementsV1(input);\n}\n\nconst CONTRACT_COMPATIBILITY_ISSUE_CODES_V1: readonly ContractCompatibilityIssueCodeV1[] = [\n\t\"unsupported_contract\",\n\t\"host_mode_mismatch\",\n\t\"unsupported_feature\",\n\t\"unsupported_transport\",\n\t\"unsupported_capability\",\n];\n\n/** Validates frozen compatibility results so both bindings share one matrix shape. */\nexport function validateContractCompatibilityResultV1(value: unknown): ContractCompatibilityResultV1 {\n\tassertPlainRecord(value, \"Contract compatibility result\");\n\tassertExactKeys(value, [\"version\", \"compatible\", \"issues\"], [], \"Contract compatibility result\");\n\tif (value.version !== 1) throw new Error(\"Contract compatibility result.version must be 1\");\n\tif (typeof value.compatible !== \"boolean\")\n\t\tthrow new Error(\"Contract compatibility result.compatible must be boolean\");\n\tif (!Array.isArray(value.issues)) throw new Error(\"Contract compatibility result.issues must be an array\");\n\tif (value.compatible && value.issues.length > 0) {\n\t\tthrow new Error(\"Contract compatibility result.compatible must be false when issues exist\");\n\t}\n\tif (!value.compatible && value.issues.length === 0) {\n\t\tthrow new Error(\"Contract compatibility result.compatible must be true when no issues exist\");\n\t}\n\tconst issues = value.issues.map((entry, index): ContractCompatibilityIssueV1 => {\n\t\tassertPlainRecord(entry, `Contract compatibility result.issues[${index}]`);\n\t\tassertExactKeys(\n\t\t\tentry,\n\t\t\t[\"code\", \"error\"],\n\t\t\t[\"missingFeatures\", \"missingTransports\", \"missingCapabilities\"],\n\t\t\t`Contract compatibility result.issues[${index}]`,\n\t\t);\n\t\tif (!CONTRACT_COMPATIBILITY_ISSUE_CODES_V1.includes(entry.code as ContractCompatibilityIssueCodeV1)) {\n\t\t\tthrow new Error(`Contract compatibility result.issues[${index}].code is invalid`);\n\t\t}\n\t\tconst error = validateErrorEnvelopeV1(entry.error);\n\t\tconst missingFeatures = entry.missingFeatures;\n\t\tif (missingFeatures !== undefined) {\n\t\t\tif (!Array.isArray(missingFeatures) || missingFeatures.some((item) => typeof item !== \"string\")) {\n\t\t\t\tthrow new Error(`Contract compatibility result.issues[${index}].missingFeatures must be strings`);\n\t\t\t}\n\t\t}\n\t\tconst missingTransports = entry.missingTransports;\n\t\tif (missingTransports !== undefined) {\n\t\t\tif (!Array.isArray(missingTransports) || missingTransports.some((item) => typeof item !== \"string\")) {\n\t\t\t\tthrow new Error(`Contract compatibility result.issues[${index}].missingTransports must be strings`);\n\t\t\t}\n\t\t}\n\t\tconst missingCapabilities = entry.missingCapabilities;\n\t\tif (missingCapabilities !== undefined) {\n\t\t\tvalidateCapabilityRefs(\n\t\t\t\tmissingCapabilities,\n\t\t\t\t`Contract compatibility result.issues[${index}].missingCapabilities`,\n\t\t\t);\n\t\t}\n\t\tconst issue: ContractCompatibilityIssueV1 = {\n\t\t\tcode: entry.code as ContractCompatibilityIssueCodeV1,\n\t\t\terror,\n\t\t\t...(missingFeatures === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingFeatures: Object.freeze(missingFeatures.map((item) => item as string)) }),\n\t\t\t...(missingTransports === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingTransports: Object.freeze(missingTransports.map((item) => item as HostTransport)) }),\n\t\t\t...(missingCapabilities === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingCapabilities: validateCapabilityRefs(missingCapabilities, \"missingCapabilities\") }),\n\t\t};\n\t\treturn detachedFreeze(issue);\n\t});\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcompatible: value.compatible,\n\t\tissues: Object.freeze(issues),\n\t});\n}\n\nexport function validateAgentCapabilityContractV1(value: unknown): AgentCapabilityContractV1 {\n\tassertPlainRecord(value, \"Agent capability contract\");\n\tassertExactKeys(value, [\"contractId\", \"version\", \"capabilities\", \"hostContext\"], [], \"Agent capability contract\");\n\tif (value.contractId !== AGENT_CAPABILITY_CONTRACT_ID) {\n\t\tthrow new Error(`Agent capability contract.contractId must be ${AGENT_CAPABILITY_CONTRACT_ID}`);\n\t}\n\tif (value.version !== 1) throw new Error(\"Agent capability contract.version must be 1\");\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Agent capability contract.capabilities\");\n\tconst hostContext = validateHostContextV1(value.hostContext);\n\treturn detachedFreeze({ contractId: value.contractId, version: 1 as const, capabilities, hostContext });\n}\n\nexport type AgentCapabilityContractInputV1 = Omit<AgentCapabilityContractV1, \"version\"> & { readonly version?: 1 };\n\nexport function buildAgentCapabilityContractV1(input: AgentCapabilityContractInputV1): AgentCapabilityContractV1 {\n\treturn validateAgentCapabilityContractV1({ ...input, version: input.version ?? 1 });\n}\n\nexport function validateAgentProfileV1(value: unknown): AgentProfileV1 {\n\tassertPlainRecord(value, \"Agent profile\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"id\", \"version\", \"rootAgent\", \"requiredPlugins\"],\n\t\t[\"optionalPlugins\", \"defaults\"],\n\t\t\"Agent profile\",\n\t);\n\tassertNonEmptyString(value.id, \"Agent profile.id\");\n\tassertPositiveSafeInteger(value.version, \"Agent profile.version\");\n\tassertNonEmptyString(value.rootAgent, \"Agent profile.rootAgent\");\n\tconst validatePluginIds = (candidate: unknown, label: string): readonly string[] => {\n\t\tif (!Array.isArray(candidate)) throw new Error(`${label} must be an array`);\n\t\tconst ids = candidate.map((id, index) => {\n\t\t\tassertNonEmptyString(id, `${label}[${index}]`);\n\t\t\treturn id;\n\t\t});\n\t\tif (new Set(ids).size !== ids.length) throw new Error(`${label} must not contain duplicates`);\n\t\treturn Object.freeze([...ids].sort());\n\t};\n\tconst requiredPlugins = validatePluginIds(value.requiredPlugins, \"Agent profile.requiredPlugins\");\n\tconst optionalPlugins =\n\t\tvalue.optionalPlugins === undefined\n\t\t\t? undefined\n\t\t\t: validatePluginIds(value.optionalPlugins, \"Agent profile.optionalPlugins\");\n\tif (optionalPlugins?.some((id) => requiredPlugins.includes(id))) {\n\t\tthrow new Error(\"Agent profile.optionalPlugins must not overlap requiredPlugins\");\n\t}\n\tif (value.defaults !== undefined) assertJsonValue(value.defaults, \"Agent profile.defaults\");\n\treturn detachedFreeze({\n\t\tid: value.id,\n\t\tversion: value.version,\n\t\trootAgent: value.rootAgent,\n\t\trequiredPlugins,\n\t\t...(optionalPlugins === undefined ? {} : { optionalPlugins }),\n\t\t...(value.defaults === undefined ? {} : { defaults: value.defaults }),\n\t});\n}\n\nexport function buildAgentProfileV1(input: AgentProfileV1): AgentProfileV1 {\n\treturn validateAgentProfileV1(input);\n}\n\nexport function validateArtifactRefV1(value: unknown): ArtifactRefV1 {\n\tassertPlainRecord(value, \"Artifact reference\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"sessionId\", \"operationId\", \"artifactId\", \"kind\", \"mediaType\", \"truncated\", \"createdAt\"],\n\t\t[\"sizeBytes\"],\n\t\t\"Artifact reference\",\n\t);\n\tassertNonEmptyString(value.sessionId, \"Artifact reference.sessionId\");\n\tassertNonEmptyString(value.operationId, \"Artifact reference.operationId\");\n\tassertNonEmptyString(value.artifactId, \"Artifact reference.artifactId\");\n\tassertNonEmptyString(value.kind, \"Artifact reference.kind\");\n\tassertNonEmptyString(value.mediaType, \"Artifact reference.mediaType\");\n\tif (value.sizeBytes !== undefined) assertNonNegativeSafeInteger(value.sizeBytes, \"Artifact reference.sizeBytes\");\n\tif (typeof value.truncated !== \"boolean\") throw new Error(\"Artifact reference.truncated must be boolean\");\n\tassertNonNegativeSafeInteger(value.createdAt, \"Artifact reference.createdAt\");\n\treturn detachedFreeze({\n\t\tsessionId: value.sessionId,\n\t\toperationId: value.operationId,\n\t\tartifactId: value.artifactId,\n\t\tkind: value.kind,\n\t\tmediaType: value.mediaType,\n\t\t...(value.sizeBytes === undefined ? {} : { sizeBytes: value.sizeBytes }),\n\t\ttruncated: value.truncated,\n\t\tcreatedAt: value.createdAt,\n\t});\n}\n\nexport function buildArtifactRefV1(input: ArtifactRefV1): ArtifactRefV1 {\n\treturn validateArtifactRefV1(input);\n}\n\n/**\n * Compare a candidate contract to explicitly requested semantics. V1 has no\n * version upcast/downcast: a different contract ID or version is unsupported.\n */\nexport function checkContractCompatibilityV1(\n\tcandidateInput: AgentCapabilityContractV1,\n\trequirementsInput: ContractCompatibilityRequirementsV1,\n): ContractCompatibilityResultV1 {\n\tconst candidate = validateAgentCapabilityContractV1(candidateInput);\n\tconst requirements = validateContractCompatibilityRequirementsV1(requirementsInput);\n\tconst issues: ContractCompatibilityIssueV1[] = [];\n\tif (candidate.contractId !== requirements.contractId || candidate.version !== requirements.version) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_contract\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_contract\",\n\t\t\t\t`Contract is unsupported: ${requirements.contractId}@${requirements.version}`,\n\t\t\t),\n\t\t});\n\t}\n\tif (candidate.hostContext.mode !== requirements.mode) {\n\t\tissues.push({\n\t\t\tcode: \"host_mode_mismatch\",\n\t\t\terror: commandError(\n\t\t\t\t\"host_mode_mismatch\",\n\t\t\t\t`Host mode is incompatible: required ${requirements.mode}, received ${candidate.hostContext.mode}`,\n\t\t\t),\n\t\t});\n\t}\n\tconst missingFeatures = requirements.features.filter((feature) => !candidate.hostContext.features.includes(feature));\n\tif (missingFeatures.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_feature\",\n\t\t\terror: commandError(\"unsupported_feature\", `Host features are unsupported: ${missingFeatures.join(\", \")}`),\n\t\t\tmissingFeatures: Object.freeze([...missingFeatures]),\n\t\t});\n\t}\n\tconst missingTransports = requirements.transports.filter(\n\t\t(transport) => !candidate.hostContext.transports.includes(transport),\n\t);\n\tif (missingTransports.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_transport\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_transport\",\n\t\t\t\t`Host transports are unsupported: ${missingTransports.join(\", \")}`,\n\t\t\t),\n\t\t\tmissingTransports: Object.freeze([...missingTransports]),\n\t\t});\n\t}\n\tconst missingCapabilities = requirements.capabilities.filter(\n\t\t(required) =>\n\t\t\t!candidate.capabilities.some(\n\t\t\t\t(available) => available.id === required.id && available.version === required.version,\n\t\t\t),\n\t);\n\tif (missingCapabilities.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_capability\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_capability\",\n\t\t\t\t`Capabilities are unsupported: ${missingCapabilities.map((item) => `${item.id}@${item.version}`).join(\", \")}`,\n\t\t\t),\n\t\t\tmissingCapabilities: Object.freeze([...missingCapabilities]),\n\t\t});\n\t}\n\treturn detachedFreeze({ version: 1 as const, compatible: issues.length === 0, issues });\n}\n\nfunction validateAgentRole(value: unknown, label: string): asserts value is AgentRoleV1 {\n\tif (value !== \"root-agent-controller\" && value !== \"child-agent-controller\") throw new Error(`${label} is invalid`);\n}\n\nexport function validateAgentDefinitionSnapshotV1(value: unknown): AgentDefinitionSnapshotV1 {\n\tassertPlainRecord(value, \"Agent definition snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"definitionVersion\", \"role\", \"capabilities\"],\n\t\t[\"owner\"],\n\t\t\"Agent definition snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(\"Agent definition snapshot.version must be 1\");\n\tassertNonEmptyString(value.id, \"Agent definition snapshot.id\");\n\tassertPositiveSafeInteger(value.definitionVersion, \"Agent definition snapshot.definitionVersion\");\n\tvalidateAgentRole(value.role, \"Agent definition snapshot.role\");\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Agent definition snapshot.capabilities\");\n\tif (value.owner !== undefined) assertNonEmptyString(value.owner, \"Agent definition snapshot.owner\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdefinitionVersion: value.definitionVersion,\n\t\trole: value.role,\n\t\tcapabilities,\n\t\t...(value.owner === undefined ? {} : { owner: value.owner }),\n\t});\n}\n\nexport function buildAgentDefinitionSnapshotV1(input: AgentDefinitionSnapshotV1): AgentDefinitionSnapshotV1 {\n\treturn validateAgentDefinitionSnapshotV1(input);\n}\n\nexport function validateAgentInstanceSnapshotV1(value: unknown): AgentInstanceSnapshotV1 {\n\tassertPlainRecord(value, \"Agent instance snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"definitionId\", \"definitionVersion\", \"role\", \"status\", \"revision\"],\n\t\t[\"parentInstanceId\", \"leaseOwner\"],\n\t\t\"Agent instance snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(\"Agent instance snapshot.version must be 1\");\n\tassertNonEmptyString(value.id, \"Agent instance snapshot.id\");\n\tassertNonEmptyString(value.definitionId, \"Agent instance snapshot.definitionId\");\n\tassertPositiveSafeInteger(value.definitionVersion, \"Agent instance snapshot.definitionVersion\");\n\tvalidateAgentRole(value.role, \"Agent instance snapshot.role\");\n\tif (\n\t\tvalue.status !== \"created\" &&\n\t\tvalue.status !== \"running\" &&\n\t\tvalue.status !== \"succeeded\" &&\n\t\tvalue.status !== \"failed\" &&\n\t\tvalue.status !== \"cancelled\" &&\n\t\tvalue.status !== \"disposed\"\n\t) {\n\t\tthrow new Error(\"Agent instance snapshot.status is invalid\");\n\t}\n\tassertNonNegativeSafeInteger(value.revision, \"Agent instance snapshot.revision\");\n\tif (value.parentInstanceId !== undefined)\n\t\tassertNonEmptyString(value.parentInstanceId, \"Agent instance snapshot.parentInstanceId\");\n\tif (value.leaseOwner !== undefined) assertNonEmptyString(value.leaseOwner, \"Agent instance snapshot.leaseOwner\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdefinitionId: value.definitionId,\n\t\tdefinitionVersion: value.definitionVersion,\n\t\trole: value.role,\n\t\tstatus: value.status,\n\t\trevision: value.revision,\n\t\t...(value.parentInstanceId === undefined ? {} : { parentInstanceId: value.parentInstanceId }),\n\t\t...(value.leaseOwner === undefined ? {} : { leaseOwner: value.leaseOwner }),\n\t});\n}\n\nexport function buildAgentInstanceSnapshotV1(input: AgentInstanceSnapshotV1): AgentInstanceSnapshotV1 {\n\treturn validateAgentInstanceSnapshotV1(input);\n}\n\nexport function validateSessionRevisionV1(value: unknown): SessionRevisionV1 {\n\tassertPlainRecord(value, \"Session revision\");\n\tassertExactKeys(value, [\"version\", \"sessionId\", \"sequence\", \"leafId\"], [], \"Session revision\");\n\tif (value.version !== 1) throw new Error(\"Session revision.version must be 1\");\n\tassertNonEmptyString(value.sessionId, \"Session revision.sessionId\");\n\tassertNonNegativeSafeInteger(value.sequence, \"Session revision.sequence\");\n\tif (value.leafId !== null && value.leafId !== undefined)\n\t\tassertNonEmptyString(value.leafId, \"Session revision.leafId\");\n\tif (value.leafId === undefined) throw new Error(\"Session revision.leafId is required\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tsessionId: value.sessionId,\n\t\tsequence: value.sequence,\n\t\tleafId: value.leafId,\n\t});\n}\n\nexport function buildSessionRevisionV1(input: SessionRevisionV1): SessionRevisionV1 {\n\treturn validateSessionRevisionV1(input);\n}\n\nexport function validateSessionSnapshotV1(value: unknown): SessionSnapshotV1 {\n\tassertPlainRecord(value, \"Session snapshot\");\n\tassertExactKeys(value, [\"version\", \"sessionId\", \"revision\"], [], \"Session snapshot\");\n\tif (value.version !== 1) throw new Error(\"Session snapshot.version must be 1\");\n\tassertNonEmptyString(value.sessionId, \"Session snapshot.sessionId\");\n\tconst revision = validateSessionRevisionV1(value.revision);\n\tif (revision.sessionId !== value.sessionId)\n\t\tthrow new Error(\"Session snapshot.revision.sessionId must match sessionId\");\n\treturn detachedFreeze({ version: 1 as const, sessionId: value.sessionId, revision });\n}\n\nexport function buildSessionSnapshotV1(input: SessionSnapshotV1): SessionSnapshotV1 {\n\treturn validateSessionSnapshotV1(input);\n}\n\nexport function validateErrorEnvelopeV1(value: unknown): ErrorEnvelopeV1 {\n\tassertPlainRecord(value, \"Error envelope\");\n\tassertExactKeys(value, [\"version\", \"code\", \"message\", \"retryable\"], [\"details\", \"name\"], \"Error envelope\");\n\tif (value.version !== 1) throw new Error(\"Error envelope.version must be 1\");\n\tassertNonEmptyString(value.code, \"Error envelope.code\");\n\tif (typeof value.message !== \"string\") throw new Error(\"Error envelope.message must be a string\");\n\tif (typeof value.retryable !== \"boolean\") throw new Error(\"Error envelope.retryable must be a boolean\");\n\tif (value.name !== undefined) assertNonEmptyString(value.name, \"Error envelope.name\");\n\tif (value.details !== undefined) assertJsonValue(value.details, \"Error envelope.details\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcode: value.code,\n\t\tmessage: value.message,\n\t\tretryable: value.retryable,\n\t\t...(value.details === undefined ? {} : { details: value.details }),\n\t\t...(value.name === undefined ? {} : { name: value.name }),\n\t});\n}\n\nexport function buildErrorEnvelopeV1(input: ErrorEnvelopeV1): ErrorEnvelopeV1 {\n\treturn validateErrorEnvelopeV1(input);\n}\n\nfunction validateOperationTerminalStatus(value: unknown, label: string): asserts value is OperationTerminalStatusV1 {\n\tif (value !== \"succeeded\" && value !== \"failed\" && value !== \"cancelled\" && value !== \"timed_out\") {\n\t\tthrow new Error(`${label} is invalid`);\n\t}\n}\n\nexport function validateOperationTerminalV1(value: unknown): OperationTerminalV1 {\n\tassertPlainRecord(value, \"Operation terminal\");\n\tif (!(\"version\" in value) || !(\"status\" in value)) {\n\t\tthrow new Error(\"Operation terminal is missing required field: version or status\");\n\t}\n\tif (value.version !== 1) throw new Error(\"Operation terminal.version must be 1\");\n\tvalidateOperationTerminalStatus(value.status, \"Operation terminal.status\");\n\tif (value.status === \"succeeded\") {\n\t\tassertExactKeys(value, [\"version\", \"status\"], [\"result\"], \"Operation terminal\");\n\t\tif (value.result !== undefined) assertJsonValue(value.result, \"Operation terminal.result\");\n\t\treturn detachedFreeze({\n\t\t\tversion: 1 as const,\n\t\t\tstatus: \"succeeded\" as const,\n\t\t\t...(value.result === undefined ? {} : { result: value.result }),\n\t\t});\n\t}\n\tassertExactKeys(value, [\"version\", \"status\", \"error\"], [], \"Operation terminal\");\n\tconst error = validateErrorEnvelopeV1(value.error);\n\treturn detachedFreeze({ version: 1 as const, status: value.status, error });\n}\n\nexport function buildOperationTerminalV1(input: OperationTerminalV1): OperationTerminalV1 {\n\treturn validateOperationTerminalV1(input);\n}\n\nexport function validateOperationSnapshotV1(value: unknown): OperationSnapshotV1 {\n\tassertPlainRecord(value, \"Operation snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"operationId\", \"kind\", \"status\"],\n\t\t[\"terminal\", \"instanceId\", \"sessionId\", \"inputRevision\"],\n\t\t\"Operation snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(\"Operation snapshot.version must be 1\");\n\tassertNonEmptyString(value.operationId, \"Operation snapshot.operationId\");\n\tassertNonEmptyString(value.kind, \"Operation snapshot.kind\");\n\tif (\n\t\tvalue.status !== \"queued\" &&\n\t\tvalue.status !== \"running\" &&\n\t\tvalue.status !== \"succeeded\" &&\n\t\tvalue.status !== \"failed\" &&\n\t\tvalue.status !== \"cancelled\" &&\n\t\tvalue.status !== \"timed_out\"\n\t) {\n\t\tthrow new Error(\"Operation snapshot.status is invalid\");\n\t}\n\tif ((value.status === \"queued\" || value.status === \"running\") && value.terminal !== undefined) {\n\t\tthrow new Error(\"Operation snapshot active status must not have a terminal\");\n\t}\n\tif (value.status !== \"queued\" && value.status !== \"running\" && value.terminal === undefined) {\n\t\tthrow new Error(\"Operation snapshot terminal status requires a terminal\");\n\t}\n\tconst terminal = value.terminal === undefined ? undefined : validateOperationTerminalV1(value.terminal);\n\tif (terminal !== undefined && terminal.status !== value.status)\n\t\tthrow new Error(\"Operation snapshot.terminal.status must match status\");\n\tif (value.instanceId !== undefined) assertNonEmptyString(value.instanceId, \"Operation snapshot.instanceId\");\n\tif (value.sessionId !== undefined) assertNonEmptyString(value.sessionId, \"Operation snapshot.sessionId\");\n\tconst inputRevision = value.inputRevision === undefined ? undefined : validateSessionRevisionV1(value.inputRevision);\n\tif (inputRevision !== undefined && value.sessionId !== undefined && inputRevision.sessionId !== value.sessionId) {\n\t\tthrow new Error(\"Operation snapshot.inputRevision.sessionId must match sessionId\");\n\t}\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\toperationId: value.operationId,\n\t\tkind: value.kind,\n\t\tstatus: value.status,\n\t\t...(terminal === undefined ? {} : { terminal }),\n\t\t...(value.instanceId === undefined ? {} : { instanceId: value.instanceId }),\n\t\t...(value.sessionId === undefined ? {} : { sessionId: value.sessionId }),\n\t\t...(inputRevision === undefined ? {} : { inputRevision }),\n\t});\n}\n\nexport function buildOperationSnapshotV1(input: OperationSnapshotV1): OperationSnapshotV1 {\n\treturn validateOperationSnapshotV1(input);\n}\n\nexport function validateCommandRequestV1(value: unknown): CommandRequestV1 {\n\tassertPlainRecord(value, \"Command request\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"operationId\", \"idempotencyKey\", \"command\", \"target\", \"input\", \"hostContext\"],\n\t\t[\"expectedRevision\"],\n\t\t\"Command request\",\n\t);\n\tif (value.version !== 1) throw new Error(\"Command request.version must be 1\");\n\tassertNonEmptyString(value.operationId, \"Command request.operationId\");\n\tassertNonEmptyString(value.idempotencyKey, \"Command request.idempotencyKey\");\n\tassertNonEmptyString(value.command, \"Command request.command\");\n\tassertNonEmptyString(value.target, \"Command request.target\");\n\tassertJsonValue(value.input, \"Command request.input\");\n\tconst expectedRevision =\n\t\tvalue.expectedRevision === undefined ? undefined : validateSessionRevisionV1(value.expectedRevision);\n\tif (expectedRevision !== undefined && expectedRevision.sessionId !== value.target) {\n\t\tthrow new Error(\"Command request.expectedRevision.sessionId does not match target\");\n\t}\n\tconst hostContext = validateHostContextV1(value.hostContext);\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\toperationId: value.operationId,\n\t\tidempotencyKey: value.idempotencyKey,\n\t\tcommand: value.command,\n\t\ttarget: value.target,\n\t\tinput: value.input,\n\t\t...(expectedRevision === undefined ? {} : { expectedRevision }),\n\t\thostContext,\n\t});\n}\n\nexport type CommandRequestInputV1 = Omit<CommandRequestV1, \"version\"> & { readonly version?: 1 };\n\nexport function buildCommandRequestV1(input: CommandRequestInputV1): CommandRequestV1 {\n\treturn validateCommandRequestV1({ ...input, version: input.version ?? 1 });\n}\n\nexport function validateCommandAdmissionV1(value: unknown): CommandAdmissionV1 {\n\tassertPlainRecord(value, \"Command admission\");\n\tassertExactKeys(value, [\"version\", \"status\", \"request\"], [\"operation\", \"error\"], \"Command admission\");\n\tif (value.version !== 1) throw new Error(\"Command admission.version must be 1\");\n\tif (value.status !== \"accepted\" && value.status !== \"existing\" && value.status !== \"rejected\") {\n\t\tthrow new Error(\"Command admission.status is invalid\");\n\t}\n\tconst request = validateCommandRequestV1(value.request);\n\tconst operation = value.operation === undefined ? undefined : validateOperationSnapshotV1(value.operation);\n\tif ((value.status === \"accepted\" || value.status === \"existing\") && operation === undefined) {\n\t\tthrow new Error(\"Command admission accepted status requires an operation\");\n\t}\n\tif (value.status === \"rejected\" && value.error === undefined) {\n\t\tthrow new Error(\"Command admission rejected status requires an error\");\n\t}\n\tconst error = value.error === undefined ? undefined : validateErrorEnvelopeV1(value.error);\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tstatus: value.status,\n\t\trequest,\n\t\t...(operation === undefined ? {} : { operation }),\n\t\t...(error === undefined ? {} : { error }),\n\t});\n}\n\nfunction canonicalJson(value: unknown): string {\n\tif (value === null || typeof value !== \"object\") return JSON.stringify(value);\n\tif (Array.isArray(value)) return `[${value.map(canonicalJson).join(\",\")}]`;\n\tconst record = value as Record<string, unknown>;\n\treturn `{${Object.keys(record)\n\t\t.sort()\n\t\t.map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`)\n\t\t.join(\",\")}}`;\n}\n\nfunction sameRevision(left: SessionRevisionV1, right: SessionRevisionV1): boolean {\n\treturn left.sessionId === right.sessionId && left.sequence === right.sequence && left.leafId === right.leafId;\n}\n\nfunction commandError(code: string, message: string, details?: unknown): ErrorEnvelopeV1 {\n\treturn buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode,\n\t\tmessage,\n\t\tretryable: false,\n\t\t...(details === undefined ? {} : { details: details as JsonValue }),\n\t});\n}\n\nfunction rejectedAdmission(request: CommandRequestV1, error: ErrorEnvelopeV1): CommandAdmissionV1 {\n\treturn detachedFreeze({ version: 1 as const, status: \"rejected\" as const, request, error });\n}\n\n/** Create the reference command admission registry used by deterministic fixtures. */\nexport function createCommandOperationRegistryV1(): CommandOperationRegistryV1 {\n\tconst entries = new Map<\n\t\tstring,\n\t\t{ request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 }\n\t>();\n\n\tconst read = (\n\t\toperationId: string,\n\t): { request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 } => {\n\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\tconst entry = entries.get(operationId);\n\t\tif (!entry) throw new Error(`Operation is not retained: ${operationId}`);\n\t\treturn entry;\n\t};\n\tconst write = (\n\t\tentry: { request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 },\n\t\toperation: OperationSnapshotV1,\n\t): OperationSnapshotV1 => {\n\t\tentry.operation = operation;\n\t\treturn operation;\n\t};\n\tconst terminal = (entry: {\n\t\trequest: CommandRequestV1;\n\t\tfingerprint: string;\n\t\toperation: OperationSnapshotV1;\n\t}): boolean => entry.operation.terminal !== undefined;\n\n\treturn Object.freeze({\n\t\tadmit(input: CommandRequestV1, currentRevision?: SessionRevisionV1): CommandAdmissionV1 {\n\t\t\tconst request = validateCommandRequestV1(input);\n\t\t\tconst current = currentRevision === undefined ? undefined : validateSessionRevisionV1(currentRevision);\n\t\t\tconst fingerprint = canonicalJson(request);\n\t\t\tconst existing = entries.get(request.operationId);\n\t\t\tif (existing) {\n\t\t\t\tif (existing.fingerprint === fingerprint) {\n\t\t\t\t\treturn detachedFreeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tstatus: \"existing\" as const,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\toperation: existing.operation,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\trequest,\n\t\t\t\t\tcommandError(\n\t\t\t\t\t\t\"idempotency_conflict\",\n\t\t\t\t\t\t`Operation ID is already bound to different input: ${request.operationId}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (request.expectedRevision !== undefined) {\n\t\t\t\tif (current === undefined) {\n\t\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tcommandError(\"revision_unavailable\", `Current revision is required for: ${request.target}`),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!sameRevision(request.expectedRevision, current)) {\n\t\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tcommandError(\"revision_conflict\", `Expected revision does not match: ${request.target}`, {\n\t\t\t\t\t\t\texpectedRevision: request.expectedRevision as unknown as JsonValue,\n\t\t\t\t\t\t\tcurrentRevision: current as unknown as JsonValue,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst operation = buildOperationSnapshotV1({\n\t\t\t\tversion: 1,\n\t\t\t\toperationId: request.operationId,\n\t\t\t\tkind: `command:${request.command}`,\n\t\t\t\tstatus: \"queued\",\n\t\t\t\t...(request.expectedRevision === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { sessionId: request.expectedRevision.sessionId, inputRevision: request.expectedRevision }),\n\t\t\t});\n\t\t\tentries.set(request.operationId, { request, fingerprint, operation });\n\t\t\treturn detachedFreeze({ version: 1 as const, status: \"accepted\" as const, request, operation });\n\t\t},\n\t\tstart(operationId: string): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tif (entry.operation.status !== \"queued\") return entry.operation;\n\t\t\treturn write(entry, buildOperationSnapshotV1({ ...entry.operation, status: \"running\" }));\n\t\t},\n\t\tcomplete(operationId: string, terminalSnapshot: OperationTerminalV1): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tconst nextTerminal = validateOperationTerminalV1(terminalSnapshot);\n\t\t\tif (terminal(entry)) {\n\t\t\t\tif (\n\t\t\t\t\tcanonicalJson(entry.operation.terminal! as unknown as JsonValue) !==\n\t\t\t\t\tcanonicalJson(nextTerminal as unknown as JsonValue)\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(`Operation already has a different terminal result: ${operationId}`);\n\t\t\t\t}\n\t\t\t\treturn entry.operation;\n\t\t\t}\n\t\t\treturn write(\n\t\t\t\tentry,\n\t\t\t\tbuildOperationSnapshotV1({ ...entry.operation, status: nextTerminal.status, terminal: nextTerminal }),\n\t\t\t);\n\t\t},\n\t\tcancel(operationId: string): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tif (terminal(entry)) return entry.operation;\n\t\t\treturn write(\n\t\t\t\tentry,\n\t\t\t\tbuildOperationSnapshotV1({\n\t\t\t\t\t...entry.operation,\n\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\tterminal: {\n\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\t\terror: commandError(\"operation_cancelled\", `Operation cancelled: ${operationId}`),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\tget(operationId: string): OperationSnapshotV1 | undefined {\n\t\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\t\treturn entries.get(operationId)?.operation;\n\t\t},\n\t\trelease(operationId: string): void {\n\t\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\t\tentries.delete(operationId);\n\t\t},\n\t});\n}\n\n/** Build the stable semantic vector used by embedded and future service bindings. */\nexport function buildCanonicalContractVectorsV1(): CanonicalContractVectorsV1 {\n\tconst hostContext = buildHostContextV1({\n\t\tmode: \"full-control\",\n\t\tfeatures: [\"agent.run\", \"session.snapshot\"],\n\t\ttransports: [\"in-process\"],\n\t});\n\tconst contract = buildAgentCapabilityContractV1({\n\t\tcontractId: AGENT_CAPABILITY_CONTRACT_ID,\n\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\thostContext,\n\t});\n\tconst profile = buildAgentProfileV1({\n\t\tid: \"coding-agent\",\n\t\tversion: 1,\n\t\trootAgent: \"coding-agent.root\",\n\t\trequiredPlugins: [\"bootstrap-tools\"],\n\t\toptionalPlugins: [\"bootstrap-skills\"],\n\t\tdefaults: { mode: \"full-control\", context: { strategy: \"default\" } },\n\t});\n\tconst artifact = buildArtifactRefV1({\n\t\tsessionId: \"session-vector-1\",\n\t\toperationId: \"vector-operation-1\",\n\t\tartifactId: \"artifact-vector-1\",\n\t\tkind: \"operation_record\",\n\t\tmediaType: \"application/json\",\n\t\tsizeBytes: 13,\n\t\ttruncated: false,\n\t\tcreatedAt: 0,\n\t});\n\tconst revision = buildSessionRevisionV1({ version: 1, sessionId: \"session-vector-1\", sequence: 0, leafId: null });\n\tconst definition = buildAgentDefinitionSnapshotV1({\n\t\tversion: 1,\n\t\tid: \"coding-agent.root\",\n\t\tdefinitionVersion: 1,\n\t\trole: \"root-agent-controller\",\n\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\towner: \"coding-agent\",\n\t});\n\tconst instance = buildAgentInstanceSnapshotV1({\n\t\tversion: 1,\n\t\tid: \"instance-vector-1\",\n\t\tdefinitionId: definition.id,\n\t\tdefinitionVersion: definition.definitionVersion,\n\t\trole: definition.role,\n\t\tstatus: \"created\",\n\t\trevision: 0,\n\t});\n\tconst session = buildSessionSnapshotV1({ version: 1, sessionId: revision.sessionId, revision });\n\tconst error = buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: \"provider_error\",\n\t\tmessage: \"provider failed\",\n\t\tretryable: true,\n\t});\n\tconst command = buildCommandRequestV1({\n\t\toperationId: \"vector-operation-1\",\n\t\tidempotencyKey: \"vector-request-1\",\n\t\tcommand: \"agent.run\",\n\t\ttarget: \"session-vector-1\",\n\t\tinput: { prompt: \"vector\" },\n\t\texpectedRevision: { version: 1, sessionId: \"session-vector-1\", sequence: 0, leafId: null },\n\t\thostContext,\n\t});\n\tconst registry = createCommandOperationRegistryV1();\n\tconst accepted = registry.admit(command, command.expectedRevision);\n\tif (accepted.status !== \"accepted\" || accepted.operation === undefined) {\n\t\tthrow new Error(\"Canonical contract vector admission failed\");\n\t}\n\tconst running = registry.start(command.operationId);\n\tconst terminal = registry.complete(command.operationId, {\n\t\tversion: 1,\n\t\tstatus: \"succeeded\",\n\t\tresult: { ok: true },\n\t});\n\tconst event = buildEventEnvelopeV1({\n\t\tid: \"vector-event-1\",\n\t\tdeliveryId: \"vector-delivery-1\",\n\t\ttype: \"operation.end\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"authoritative\",\n\t\tdeliveryGuarantee: \"best-effort\",\n\t\ttimestamp: 0,\n\t\toperationId: command.operationId,\n\t\tcorrelationId: command.operationId,\n\t\tdata: { version: 1, operationId: command.operationId, operationKind: command.command, status: \"succeeded\" },\n\t});\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcontract,\n\t\tdefinition,\n\t\tinstance,\n\t\tsession,\n\t\trevision,\n\t\terror,\n\t\tprofile,\n\t\tartifact,\n\t\tcommand,\n\t\taccepted,\n\t\trunning,\n\t\tterminal,\n\t\tevent,\n\t});\n}\n\n/**\n * Stable V1 fixture vectors. They intentionally model contract outcomes, not\n * SDK/runtime implementation details, so each binding can consume them.\n */\nexport function buildCanonicalContractFixtureVectorsV1(): readonly CanonicalContractFixtureVectorV1[] {\n\tconst base = buildCanonicalContractVectorsV1();\n\tconst registry = createCommandOperationRegistryV1();\n\tconst request = buildCommandRequestV1({\n\t\toperationId: \"fixture-operation-1\",\n\t\tidempotencyKey: \"fixture-request-1\",\n\t\tcommand: \"agent.run\",\n\t\ttarget: \"session-fixture-1\",\n\t\tinput: { prompt: \"fixture\" },\n\t\texpectedRevision: { version: 1, sessionId: \"session-fixture-1\", sequence: 1, leafId: \"leaf-1\" },\n\t\thostContext: base.contract.hostContext,\n\t});\n\tregistry.admit(request, request.expectedRevision);\n\tconst existing = registry.admit(request, request.expectedRevision);\n\tconst idempotencyConflict = registry.admit({ ...request, input: { prompt: \"different\" } }, request.expectedRevision);\n\tconst revisionConflict = registry.admit(\n\t\t{ ...request, operationId: \"fixture-operation-2\", idempotencyKey: \"fixture-request-2\" },\n\t\t{ version: 1, sessionId: \"session-fixture-1\", sequence: 2, leafId: \"leaf-2\" },\n\t);\n\tconst cancelled = registry.cancel(request.operationId);\n\tconst terminalReplay = registry.complete(request.operationId, cancelled.terminal!);\n\tconst failed = registry.admit(\n\t\tbuildCommandRequestV1({\n\t\t\t...request,\n\t\t\toperationId: \"fixture-operation-failed\",\n\t\t\tidempotencyKey: \"fixture-request-failed\",\n\t\t}),\n\t\trequest.expectedRevision,\n\t);\n\tif (failed.status !== \"accepted\") throw new Error(\"Canonical contract failed vector admission failed\");\n\tconst failedTerminal = registry.complete(\"fixture-operation-failed\", {\n\t\tversion: 1,\n\t\tstatus: \"failed\",\n\t\terror: buildErrorEnvelopeV1({\n\t\t\tversion: 1,\n\t\t\tcode: \"provider_error\",\n\t\t\tmessage: \"provider failed\",\n\t\t\tretryable: true,\n\t\t}),\n\t});\n\tconst timedOut = registry.admit(\n\t\tbuildCommandRequestV1({\n\t\t\t...request,\n\t\t\toperationId: \"fixture-operation-timeout\",\n\t\t\tidempotencyKey: \"fixture-request-timeout\",\n\t\t}),\n\t\trequest.expectedRevision,\n\t);\n\tif (timedOut.status !== \"accepted\") throw new Error(\"Canonical contract timeout vector admission failed\");\n\tconst timedOutTerminal = registry.complete(\"fixture-operation-timeout\", {\n\t\tversion: 1,\n\t\tstatus: \"timed_out\",\n\t\terror: buildErrorEnvelopeV1({\n\t\t\tversion: 1,\n\t\t\tcode: \"operation_timeout\",\n\t\t\tmessage: \"operation timed out\",\n\t\t\tretryable: true,\n\t\t}),\n\t});\n\tconst unsupported = buildUnsupportedCapabilityV1({ id: \"fixture.missing\", version: 1 });\n\tconst observation = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-1\",\n\t\tdeliveryId: \"fixture-delivery-1\",\n\t\ttype: \"fixture.observation\",\n\t\tsource: \"canonical-vector\",\n\t\ttimestamp: 0,\n\t\tdata: { observed: true },\n\t});\n\tconst correlated = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-correlated\",\n\t\tdeliveryId: \"fixture-delivery-correlated\",\n\t\ttype: \"operation.end\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"authoritative\",\n\t\ttimestamp: 0,\n\t\toperationId: \"fixture-operation-1\",\n\t\tcorrelationId: \"fixture-operation-1\",\n\t\tdata: { status: \"cancelled\" },\n\t});\n\tconst steer = buildCommandRequestV1({\n\t\toperationId: \"fixture-operation-steer\",\n\t\tidempotencyKey: \"fixture-request-steer\",\n\t\tcommand: \"session.steer\",\n\t\ttarget: \"session-fixture-1\",\n\t\tinput: { text: \"steer\" },\n\t\texpectedRevision: request.expectedRevision,\n\t\thostContext: base.contract.hostContext,\n\t});\n\tconst operationStep = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-step\",\n\t\tdeliveryId: \"fixture-delivery-step\",\n\t\ttype: \"operation.step\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"progress\",\n\t\ttimestamp: 0,\n\t\toperationId: \"fixture-operation-steer\",\n\t\tcorrelationId: \"fixture-operation-steer\",\n\t\tdata: {\n\t\t\tversion: 1,\n\t\t\toperationId: \"fixture-operation-steer\",\n\t\t\toperationKind: \"session.steer\",\n\t\t\tstep: 1,\n\t\t\tmessage: \"accepted\",\n\t\t},\n\t});\n\tconst compatibilityRequirements = (overrides: Partial<ContractCompatibilityRequirementsV1>) =>\n\t\tbuildContractCompatibilityRequirementsV1({\n\t\t\tcontractId: AGENT_CAPABILITY_CONTRACT_ID,\n\t\t\tversion: 1,\n\t\t\tmode: \"full-control\",\n\t\t\tfeatures: [],\n\t\t\ttransports: [],\n\t\t\tcapabilities: [],\n\t\t\t...overrides,\n\t\t});\n\tconst compatibilityAccepted = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({\n\t\t\tfeatures: [\"agent.run\", \"session.snapshot\"],\n\t\t\ttransports: [\"in-process\"],\n\t\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\t}),\n\t);\n\tconst compatibilityContractUnsupported = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ version: 2 }),\n\t);\n\tconst compatibilityCapabilityVersionUnsupported = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ capabilities: [{ id: \"agent.run\", version: 2 }] }),\n\t);\n\tconst compatibilityFeatureSubset = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ features: [\"agent.run\", \"session.compact\"] }),\n\t);\n\treturn detachedFreeze([\n\t\t{ id: \"agent-definition\", value: base.definition as unknown as JsonValue },\n\t\t{ id: \"agent-instance\", value: base.instance as unknown as JsonValue },\n\t\t{ id: \"session-snapshot\", value: base.session as unknown as JsonValue },\n\t\t{ id: \"session-revision\", value: base.revision as unknown as JsonValue },\n\t\t{ id: \"error-envelope\", value: base.error as unknown as JsonValue },\n\t\t{ id: \"profile-snapshot\", value: base.profile as unknown as JsonValue },\n\t\t{ id: \"artifact-reference\", value: base.artifact as unknown as JsonValue },\n\t\t{ id: \"command-success\", value: base.terminal as unknown as JsonValue },\n\t\t{ id: \"command-failed-terminal\", value: failedTerminal as unknown as JsonValue },\n\t\t{ id: \"command-timed-out-terminal\", value: timedOutTerminal as unknown as JsonValue },\n\t\t{ id: \"command-idempotency-replay\", value: existing as unknown as JsonValue },\n\t\t{ id: \"command-idempotency-conflict\", value: idempotencyConflict as unknown as JsonValue },\n\t\t{ id: \"command-revision-conflict\", value: revisionConflict as unknown as JsonValue },\n\t\t{ id: \"command-cancel-terminal\", value: cancelled as unknown as JsonValue },\n\t\t{ id: \"command-terminal-replay\", value: terminalReplay as unknown as JsonValue },\n\t\t{ id: \"capability-unsupported\", value: unsupported as unknown as JsonValue },\n\t\t{ id: \"event-without-operation\", value: observation as unknown as JsonValue },\n\t\t{ id: \"event-with-operation\", value: correlated as unknown as JsonValue },\n\t\t{ id: \"command-steer\", value: steer as unknown as JsonValue },\n\t\t{ id: \"event-operation-step\", value: operationStep as unknown as JsonValue },\n\t\t{ id: \"compatibility-accepted\", value: compatibilityAccepted as unknown as JsonValue },\n\t\t{ id: \"compatibility-contract-unsupported\", value: compatibilityContractUnsupported as unknown as JsonValue },\n\t\t{\n\t\t\tid: \"compatibility-capability-version-unsupported\",\n\t\t\tvalue: compatibilityCapabilityVersionUnsupported as unknown as JsonValue,\n\t\t},\n\t\t{ id: \"compatibility-feature-subset\", value: compatibilityFeatureSubset as unknown as JsonValue },\n\t]);\n}\n\nexport function validateEventEnvelopeV1<TData extends JsonValue = JsonValue>(value: unknown): EventEnvelopeV1<TData> {\n\tassertPlainRecord(value, \"Event envelope\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"deliveryId\", \"type\", \"source\", \"category\", \"deliveryGuarantee\", \"timestamp\", \"data\"],\n\t\t[\"operationId\", \"correlationId\", \"causationId\"],\n\t\t\"Event envelope\",\n\t);\n\tif (value.version !== 1) throw new Error(\"Event envelope.version must be 1\");\n\tassertNonEmptyString(value.id, \"Event envelope.id\");\n\tassertNonEmptyString(value.deliveryId, \"Event envelope.deliveryId\");\n\tassertNonEmptyString(value.type, \"Event envelope.type\");\n\tassertNonEmptyString(value.source, \"Event envelope.source\");\n\tif (value.category !== \"authoritative\" && value.category !== \"progress\" && value.category !== \"observation\") {\n\t\tthrow new Error(\"Event envelope.category is invalid\");\n\t}\n\tif (value.deliveryGuarantee !== \"best-effort\" && value.deliveryGuarantee !== \"at-least-once\") {\n\t\tthrow new Error(\"Event envelope.deliveryGuarantee is invalid\");\n\t}\n\tassertNonNegativeSafeInteger(value.timestamp, \"Event envelope.timestamp\");\n\tassertJsonValue(value.data, \"Event envelope.data\");\n\tif (value.operationId !== undefined) assertNonEmptyString(value.operationId, \"Event envelope.operationId\");\n\tif (value.correlationId !== undefined) assertNonEmptyString(value.correlationId, \"Event envelope.correlationId\");\n\tif (value.causationId !== undefined) assertNonEmptyString(value.causationId, \"Event envelope.causationId\");\n\tif (value.operationId === undefined && value.correlationId !== undefined) {\n\t\tthrow new Error(\"Event envelope.correlationId requires a real operationId\");\n\t}\n\tif (value.operationId !== undefined && value.correlationId === undefined) {\n\t\tthrow new Error(\"Event envelope.operationId requires correlationId\");\n\t}\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdeliveryId: value.deliveryId,\n\t\ttype: value.type,\n\t\tsource: value.source,\n\t\tcategory: value.category,\n\t\tdeliveryGuarantee: value.deliveryGuarantee,\n\t\ttimestamp: value.timestamp,\n\t\tdata: value.data,\n\t\t...(value.operationId === undefined ? {} : { operationId: value.operationId }),\n\t\t...(value.correlationId === undefined ? {} : { correlationId: value.correlationId }),\n\t\t...(value.causationId === undefined ? {} : { causationId: value.causationId }),\n\t}) as EventEnvelopeV1<TData>;\n}\n\nexport type EventEnvelopeInputV1<TData extends JsonValue = JsonValue> = Omit<\n\tEventEnvelopeV1<TData>,\n\t\"version\" | \"category\" | \"deliveryGuarantee\"\n> & {\n\treadonly version?: 1;\n\treadonly category?: EventCategoryV1;\n\treadonly deliveryGuarantee?: EventDeliveryGuaranteeV1;\n};\n\nexport function buildEventEnvelopeV1<TData extends JsonValue = JsonValue>(\n\tinput: EventEnvelopeInputV1<TData>,\n): EventEnvelopeV1<TData> {\n\treturn validateEventEnvelopeV1<TData>({\n\t\t...input,\n\t\tversion: input.version ?? 1,\n\t\tcategory: input.category ?? \"observation\",\n\t\tdeliveryGuarantee: input.deliveryGuarantee ?? \"best-effort\",\n\t});\n}\n\nexport function buildUnsupportedCapabilityV1(capability: CapabilityRefV1): UnsupportedCapabilityV1 {\n\tconst reference = validateCapabilityRefV1(capability);\n\tconst error = buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: \"unsupported_capability\",\n\t\tmessage: `Capability is unsupported: ${reference.id}@${reference.version}`,\n\t\tretryable: false,\n\t});\n\treturn detachedFreeze({ status: \"unsupported\" as const, capability: reference, error });\n}\n\nexport function resolveCapabilityV1(\n\trequested: CapabilityRefV1,\n\tsupported: readonly CapabilityRefV1[],\n): CapabilityResolutionV1 {\n\tconst reference = validateCapabilityRefV1(requested);\n\tconst available = validateCapabilityRefs(supported, \"Supported capabilities\");\n\tconst found = available.some(\n\t\t(candidate) => candidate.id === reference.id && candidate.version === reference.version,\n\t);\n\treturn found\n\t\t? detachedFreeze({ status: \"supported\" as const, capability: reference })\n\t\t: buildUnsupportedCapabilityV1(reference);\n}\n\nexport function assertCapabilitySupportedV1(\n\trequested: CapabilityRefV1,\n\tsupported: readonly CapabilityRefV1[],\n): CapabilityRefV1 {\n\tconst resolution = resolveCapabilityV1(requested, supported);\n\tif (resolution.status === \"unsupported\") throw new Error(resolution.error.message);\n\treturn resolution.capability;\n}\n\n// Short aliases keep consumers from having to repeat the schema suffix when\n// they only support the currently frozen version.\nexport const validateAgentCapabilityContract = validateAgentCapabilityContractV1;\nexport const buildAgentCapabilityContract = buildAgentCapabilityContractV1;\nexport const validateEventEnvelope = validateEventEnvelopeV1;\nexport const buildEventEnvelope = buildEventEnvelopeV1;\nexport const validateCommandRequest = validateCommandRequestV1;\nexport const buildCommandRequest = buildCommandRequestV1;\n"]}
1
+ {"version":3,"file":"agent-capability-contract.js","sourceRoot":"","sources":["../../src/core/agent-capability-contract.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Transport-neutral Agent Capability Contract.\n *\n * This module is deliberately self contained. It describes serializable\n * facts shared by an embedded SDK binding and a service binding; it does not\n * import either binding or a runtime Agent object.\n */\nimport { t } from \"./i18n/index.ts\";\n\nexport const AGENT_CAPABILITY_CONTRACT_ID = \"agent-forge/agent-capability-contract\" as const;\nexport const AGENT_CAPABILITY_CONTRACT_VERSION = 1 as const;\n\n/** The only contract version currently understood by this module. */\nexport type AgentCapabilityContractVersion = 1;\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { readonly [key: string]: JsonValue };\n\nexport type HostMode = \"readonly\" | \"full-control\";\nexport type HostTransport = \"in-process\" | \"stdio\" | \"http\" | \"rpc\" | \"unix\" | \"websocket\";\n\nexport interface CapabilityRefV1 {\n\treadonly id: string;\n\treadonly version: number;\n}\n\nexport interface HostContextV1 {\n\treadonly mode: HostMode;\n\treadonly features: readonly string[];\n\treadonly transports: readonly HostTransport[];\n}\n\nexport interface AgentCapabilityContractV1 {\n\treadonly contractId: string;\n\treadonly version: 1;\n\treadonly capabilities: readonly CapabilityRefV1[];\n\treadonly hostContext: HostContextV1;\n}\n\n/** Canonical profile identity and composition snapshot shared by bindings. */\nexport interface AgentProfileV1 {\n\treadonly id: string;\n\treadonly version: number;\n\treadonly rootAgent: string;\n\treadonly requiredPlugins: readonly string[];\n\treadonly optionalPlugins?: readonly string[];\n\treadonly defaults?: JsonValue;\n}\n\n/** JSON-safe artifact reference; bytes are fetched through the host artifact API. */\nexport interface ArtifactRefV1 {\n\treadonly sessionId: string;\n\treadonly operationId: string;\n\treadonly artifactId: string;\n\treadonly kind: string;\n\treadonly mediaType: string;\n\treadonly sizeBytes?: number;\n\treadonly truncated: boolean;\n\treadonly createdAt: number;\n}\n\nexport type AgentRoleV1 = \"root-agent-controller\" | \"child-agent-controller\";\nexport type AgentInstanceStatusV1 = \"created\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\" | \"disposed\";\n\nexport interface AgentDefinitionSnapshotV1 {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly definitionVersion: number;\n\treadonly role: AgentRoleV1;\n\treadonly capabilities: readonly CapabilityRefV1[];\n\treadonly owner?: string;\n}\n\nexport interface AgentInstanceSnapshotV1 {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly definitionId: string;\n\treadonly definitionVersion: number;\n\treadonly role: AgentRoleV1;\n\treadonly status: AgentInstanceStatusV1;\n\treadonly revision: number;\n\treadonly parentInstanceId?: string;\n\treadonly leaseOwner?: string;\n}\n\nexport interface SessionRevisionV1 {\n\treadonly version: 1;\n\treadonly sessionId: string;\n\treadonly sequence: number;\n\treadonly leafId: string | null;\n}\n\nexport interface SessionSnapshotV1 {\n\treadonly version: 1;\n\treadonly sessionId: string;\n\treadonly revision: SessionRevisionV1;\n}\n\n/**\n * Unified operation lifecycle: queued → running → succeeded | failed |\n * cancelled | timed_out.\n *\n * Producer authority (D-043 unification): the runtime executor only settles\n * succeeded, failed, and cancelled — it has no watchdog. `timed_out` is\n * host-declared through `complete()` when a caller-imposed deadline expires.\n * Explicit cancel wins over late results; a second `complete()` with a\n * different terminal is rejected. The interaction layer's\n * `options.timeoutMs` produces the separate `InteractionOutcomeV1` \"timeout\"\n * vocabulary, never this status.\n */\nexport type OperationStatusV1 = \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\" | \"timed_out\";\n/** Terminal set including the host-declared `timed_out`; the executor-side truthful subset is `OperationTerminalStatus` in capability-runtime-types. */\nexport type OperationTerminalStatusV1 = Exclude<OperationStatusV1, \"queued\" | \"running\">;\n\n/** Shared error-code registry for the canonical Agent contract. Extensions may use namespaced codes. */\nexport const AGENT_ERROR_CODES_V1 = [\n\t\"provider_error\",\n\t\"operation_timeout\",\n\t\"operation_cancelled\",\n\t\"idempotency_conflict\",\n\t\"revision_conflict\",\n\t\"revision_unavailable\",\n\t\"unsupported_capability\",\n\t\"invalid_request\",\n\t\"invalid_ref\",\n\t\"not_found\",\n\t\"cancelled\",\n\t\"unsupported\",\n\t\"busy\",\n\t\"session_locked\",\n\t\"unauthorized\",\n\t\"not_implemented\",\n\t\"internal_error\",\n] as const;\nexport type AgentErrorCodeV1 = (typeof AGENT_ERROR_CODES_V1)[number];\nconst agentErrorCodeSet = new Set<string>(AGENT_ERROR_CODES_V1);\n\nexport function isRegisteredAgentErrorCodeV1(code: string): code is AgentErrorCodeV1 {\n\treturn agentErrorCodeSet.has(code);\n}\n\n/**\n * Frozen mapping from protocol/server transport error codes onto canonical\n * agent error codes. Codes outside this table pass through unchanged so plugin\n * namespaced codes (e.g. `plugin.custom_failure`) survive projection.\n */\nexport const PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1: Readonly<Record<string, AgentErrorCodeV1>> = Object.freeze({\n\tversion: \"unsupported\",\n\tbusy: \"busy\",\n\tsession_locked: \"session_locked\",\n\tnot_found: \"not_found\",\n\tinvalid_request: \"invalid_request\",\n\tunauthorized: \"unauthorized\",\n\tnot_implemented: \"not_implemented\",\n\tinternal_error: \"internal_error\",\n});\n\nexport function mapProtocolErrorCodeToAgentErrorV1(code: string): AgentErrorCodeV1 | undefined {\n\treturn PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1[code];\n}\n\n/**\n * Projects an arbitrary caught error onto a canonical detached error envelope.\n * Transport errors carrying a mappable `code` are mapped; already canonical or\n * namespaced codes pass through; anything else falls back to `internal_error`.\n */\nexport function toErrorEnvelopeV1(error: unknown): ErrorEnvelopeV1 {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst name = error instanceof Error ? error.name : undefined;\n\tlet code: string | undefined;\n\tif (error && typeof error === \"object\" && \"code\" in error) {\n\t\tconst raw = (error as { code?: unknown }).code;\n\t\tif (typeof raw === \"string\" && raw.trim() !== \"\") code = raw;\n\t}\n\tif (code === undefined) code = \"internal_error\";\n\tconst mapped = PROTOCOL_ERROR_CODE_TO_AGENT_CODE_V1[code];\n\treturn buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: mapped ?? code,\n\t\tmessage,\n\t\tretryable: false,\n\t\t...(name === undefined ? {} : { name }),\n\t});\n}\n\nexport interface ErrorEnvelopeV1 {\n\treadonly version: 1;\n\treadonly code: string;\n\treadonly message: string;\n\treadonly retryable: boolean;\n\treadonly details?: JsonValue;\n\treadonly name?: string;\n}\n\nexport interface SuccessfulOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"succeeded\";\n\treadonly result?: JsonValue;\n}\n\nexport interface FailedOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"failed\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport interface CancelledOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"cancelled\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport interface TimedOutOperationTerminalV1 {\n\treadonly version: 1;\n\treadonly status: \"timed_out\";\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport type OperationTerminalV1 =\n\t| SuccessfulOperationTerminalV1\n\t| FailedOperationTerminalV1\n\t| CancelledOperationTerminalV1\n\t| TimedOutOperationTerminalV1;\n\nexport interface OperationSnapshotV1 {\n\treadonly version: 1;\n\treadonly operationId: string;\n\treadonly kind: string;\n\treadonly status: OperationStatusV1;\n\treadonly terminal?: OperationTerminalV1;\n\treadonly instanceId?: string;\n\treadonly sessionId?: string;\n\treadonly inputRevision?: SessionRevisionV1;\n}\n\n/** Transport-neutral command request shared by embedded and remote bindings. */\nexport interface CommandRequestV1 {\n\treadonly version: 1;\n\treadonly operationId: string;\n\treadonly idempotencyKey: string;\n\treadonly command: string;\n\treadonly target: string;\n\treadonly input: JsonValue;\n\treadonly expectedRevision?: SessionRevisionV1;\n\treadonly hostContext: HostContextV1;\n}\n\nexport interface CommandAdmissionV1 {\n\treadonly version: 1;\n\treadonly status: \"accepted\" | \"existing\" | \"rejected\";\n\treadonly request: CommandRequestV1;\n\treadonly operation?: OperationSnapshotV1;\n\treadonly error?: ErrorEnvelopeV1;\n}\n\n/**\n * A transport-neutral, in-memory reference for command admission semantics.\n * Hosts may persist this state differently, but must preserve its idempotency\n * and revision-conflict behavior.\n */\nexport interface CommandOperationRegistryV1 {\n\tadmit(request: CommandRequestV1, currentRevision?: SessionRevisionV1): CommandAdmissionV1;\n\tstart(operationId: string): OperationSnapshotV1;\n\tcomplete(operationId: string, terminal: OperationTerminalV1): OperationSnapshotV1;\n\tcancel(operationId: string): OperationSnapshotV1;\n\tget(operationId: string): OperationSnapshotV1 | undefined;\n\trelease(operationId: string): void;\n}\n\nexport interface CanonicalContractVectorsV1 {\n\treadonly version: 1;\n\treadonly contract: AgentCapabilityContractV1;\n\treadonly definition: AgentDefinitionSnapshotV1;\n\treadonly instance: AgentInstanceSnapshotV1;\n\treadonly session: SessionSnapshotV1;\n\treadonly revision: SessionRevisionV1;\n\treadonly error: ErrorEnvelopeV1;\n\treadonly profile: AgentProfileV1;\n\treadonly artifact: ArtifactRefV1;\n\treadonly command: CommandRequestV1;\n\treadonly accepted: CommandAdmissionV1;\n\treadonly running: OperationSnapshotV1;\n\treadonly terminal: OperationSnapshotV1;\n\treadonly event: EventEnvelopeV1;\n}\n\n/** A named, JSON-safe semantic vector shared by future SDK and wire bindings. */\nexport interface CanonicalContractFixtureVectorV1 {\n\treadonly id: string;\n\treadonly value: JsonValue;\n}\n\nexport interface EventEnvelopeV1<TData extends JsonValue = JsonValue> {\n\treadonly version: 1;\n\treadonly id: string;\n\treadonly deliveryId: string;\n\treadonly type: string;\n\treadonly source: string;\n\treadonly category: EventCategoryV1;\n\treadonly deliveryGuarantee: EventDeliveryGuaranteeV1;\n\treadonly timestamp: number;\n\treadonly data: TData;\n\treadonly operationId?: string;\n\treadonly correlationId?: string;\n\treadonly causationId?: string;\n}\n\nexport type EventCategoryV1 = \"authoritative\" | \"progress\" | \"observation\";\nexport type EventDeliveryGuaranteeV1 = \"best-effort\" | \"at-least-once\";\n\nexport interface SupportedCapabilityV1 {\n\treadonly status: \"supported\";\n\treadonly capability: CapabilityRefV1;\n}\n\nexport interface UnsupportedCapabilityV1 {\n\treadonly status: \"unsupported\";\n\treadonly capability: CapabilityRefV1;\n\treadonly error: ErrorEnvelopeV1;\n}\n\nexport type CapabilityResolutionV1 = SupportedCapabilityV1 | UnsupportedCapabilityV1;\n\n/** Requirements a binding must satisfy before it can use a canonical contract. */\nexport interface ContractCompatibilityRequirementsV1 {\n\treadonly contractId: string;\n\treadonly version: number;\n\treadonly mode: HostMode;\n\treadonly features: readonly string[];\n\treadonly transports: readonly HostTransport[];\n\treadonly capabilities: readonly CapabilityRefV1[];\n}\n\nexport type ContractCompatibilityIssueCodeV1 =\n\t| \"unsupported_contract\"\n\t| \"host_mode_mismatch\"\n\t| \"unsupported_feature\"\n\t| \"unsupported_transport\"\n\t| \"unsupported_capability\";\n\nexport interface ContractCompatibilityIssueV1 {\n\treadonly code: ContractCompatibilityIssueCodeV1;\n\treadonly error: ErrorEnvelopeV1;\n\treadonly missingFeatures?: readonly string[];\n\treadonly missingTransports?: readonly HostTransport[];\n\treadonly missingCapabilities?: readonly CapabilityRefV1[];\n}\n\nexport interface ContractCompatibilityResultV1 {\n\treadonly version: 1;\n\treadonly compatible: boolean;\n\treadonly issues: readonly ContractCompatibilityIssueV1[];\n}\n\ntype PlainRecord = Record<string, unknown>;\n\nfunction isPlainRecord(value: unknown): value is PlainRecord {\n\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n}\n\nfunction assertPlainRecord(value: unknown, label: string): asserts value is PlainRecord {\n\tif (!isPlainRecord(value)) throw new Error(t(\"{label} must be a plain object\", { label }));\n}\n\nfunction assertExactKeys(\n\tvalue: PlainRecord,\n\trequired: readonly string[],\n\toptional: readonly string[],\n\tlabel: string,\n): void {\n\tconst allowed = new Set([...required, ...optional]);\n\tconst unsupported = Object.keys(value)\n\t\t.filter((key) => !allowed.has(key))\n\t\t.sort();\n\tif (unsupported.length > 0)\n\t\tthrow new Error(t(\"{label} has unsupported fields: {fields}\", { label, fields: unsupported.join(\", \") }));\n\tfor (const key of required) {\n\t\tif (!(key in value)) throw new Error(t(\"{label} is missing required field: {key}\", { label, key }));\n\t}\n}\n\nfunction assertNonEmptyString(value: unknown, label: string): asserts value is string {\n\tif (typeof value !== \"string\" || value.trim().length === 0)\n\t\tthrow new Error(t(\"{label} must be a non-empty string\", { label }));\n}\n\nfunction assertPositiveSafeInteger(value: unknown, label: string): asserts value is number {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 1) {\n\t\tthrow new Error(t(\"{label} must be a positive safe integer\", { label }));\n\t}\n}\n\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n\t\tthrow new Error(t(\"{label} must be a non-negative safe integer\", { label }));\n\t}\n}\n\nfunction assertJsonValue(value: unknown, label: string, seen = new WeakSet<object>()): asserts value is JsonValue {\n\tif (value === null || typeof value === \"boolean\" || typeof value === \"string\") return;\n\tif (typeof value === \"number\") {\n\t\tif (Number.isFinite(value)) return;\n\t\tthrow new Error(t(\"{label} must contain finite JSON numbers\", { label }));\n\t}\n\tif (typeof value !== \"object\") throw new Error(t(\"{label} must be JSON-compatible\", { label }));\n\tif (seen.has(value)) throw new Error(t(\"{label} must not contain cycles\", { label }));\n\tseen.add(value);\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, child] of value.entries()) assertJsonValue(child, `${label}[${index}]`, seen);\n\t} else {\n\t\tif (!isPlainRecord(value)) throw new Error(t(\"{label} must contain only plain JSON objects\", { label }));\n\t\tfor (const [key, child] of Object.entries(value)) assertJsonValue(child, `${label}.${key}`, seen);\n\t}\n\tseen.delete(value);\n}\n\nfunction detachedFreeze<T>(value: T, seen = new WeakMap<object, unknown>()): T {\n\tif (value === null || typeof value !== \"object\") return value;\n\tconst existing = seen.get(value);\n\tif (existing !== undefined) return existing as T;\n\tif (Array.isArray(value)) {\n\t\tconst result: unknown[] = [];\n\t\tseen.set(value, result);\n\t\tfor (const child of value) result.push(detachedFreeze(child, seen));\n\t\treturn Object.freeze(result) as T;\n\t}\n\tconst result: PlainRecord = {};\n\tseen.set(value, result);\n\tfor (const [key, child] of Object.entries(value as PlainRecord)) result[key] = detachedFreeze(child, seen);\n\treturn Object.freeze(result) as T;\n}\n\nfunction capabilitySort(left: CapabilityRefV1, right: CapabilityRefV1): number {\n\treturn left.id < right.id ? -1 : left.id > right.id ? 1 : left.version - right.version;\n}\n\nfunction validateCapabilityRefs(value: unknown, label: string): readonly CapabilityRefV1[] {\n\tif (!Array.isArray(value)) throw new Error(t(\"{label} must be an array\", { label }));\n\tconst refs = value.map((item, index) => validateCapabilityRefV1(item, `${label}[${index}]`));\n\tconst seen = new Set<string>();\n\tfor (const ref of refs) {\n\t\tconst key = `${ref.id}\\u0000${ref.version}`;\n\t\tif (seen.has(key))\n\t\t\tthrow new Error(\n\t\t\t\tt(\"{label} contains duplicate capability: {capability}\", {\n\t\t\t\t\tlabel,\n\t\t\t\t\tcapability: `${ref.id}@${ref.version}`,\n\t\t\t\t}),\n\t\t\t);\n\t\tseen.add(key);\n\t}\n\treturn Object.freeze(refs.sort(capabilitySort));\n}\n\nfunction validateHostTransport(value: unknown, label: string): asserts value is HostTransport {\n\tif (\n\t\tvalue !== \"in-process\" &&\n\t\tvalue !== \"stdio\" &&\n\t\tvalue !== \"http\" &&\n\t\tvalue !== \"rpc\" &&\n\t\tvalue !== \"unix\" &&\n\t\tvalue !== \"websocket\"\n\t) {\n\t\tthrow new Error(t(\"{label} is invalid\", { label }));\n\t}\n}\n\nexport function validateCapabilityRefV1(value: unknown, label = \"Capability reference\"): CapabilityRefV1 {\n\tassertPlainRecord(value, label);\n\tassertExactKeys(value, [\"id\", \"version\"], [], label);\n\tassertNonEmptyString(value.id, `${label}.id`);\n\tassertPositiveSafeInteger(value.version, `${label}.version`);\n\treturn detachedFreeze({ id: value.id, version: value.version });\n}\n\nexport function buildCapabilityRefV1(input: CapabilityRefV1): CapabilityRefV1 {\n\treturn validateCapabilityRefV1(input);\n}\n\nexport function validateHostContextV1(value: unknown): HostContextV1 {\n\tassertPlainRecord(value, \"Host context\");\n\tassertExactKeys(value, [\"mode\", \"features\", \"transports\"], [], \"Host context\");\n\tif (value.mode !== \"readonly\" && value.mode !== \"full-control\") throw new Error(t(\"Host context.mode is invalid\"));\n\tif (!Array.isArray(value.features)) throw new Error(t(\"Host context.features must be an array\"));\n\tconst features = value.features.map((feature, index) => {\n\t\tassertNonEmptyString(feature, `Host context.features[${index}]`);\n\t\treturn feature;\n\t});\n\tif (new Set(features).size !== features.length)\n\t\tthrow new Error(t(\"Host context.features must not contain duplicates\"));\n\tif (!Array.isArray(value.transports)) throw new Error(t(\"Host context.transports must be an array\"));\n\tconst transports = value.transports.map((transport, index) => {\n\t\tvalidateHostTransport(transport, `Host context.transports[${index}]`);\n\t\treturn transport;\n\t});\n\tif (new Set(transports).size !== transports.length)\n\t\tthrow new Error(t(\"Host context.transports must not contain duplicates\"));\n\treturn detachedFreeze({\n\t\tmode: value.mode,\n\t\tfeatures: [...features].sort(),\n\t\ttransports: [...transports].sort(),\n\t});\n}\n\nexport function buildHostContextV1(input: HostContextV1): HostContextV1 {\n\treturn validateHostContextV1(input);\n}\n\nexport function validateContractCompatibilityRequirementsV1(value: unknown): ContractCompatibilityRequirementsV1 {\n\tassertPlainRecord(value, \"Contract compatibility requirements\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"contractId\", \"version\", \"mode\", \"features\", \"transports\", \"capabilities\"],\n\t\t[],\n\t\t\"Contract compatibility requirements\",\n\t);\n\tassertNonEmptyString(value.contractId, \"Contract compatibility requirements.contractId\");\n\tassertPositiveSafeInteger(value.version, \"Contract compatibility requirements.version\");\n\tconst hostContext = validateHostContextV1({\n\t\tmode: value.mode,\n\t\tfeatures: value.features,\n\t\ttransports: value.transports,\n\t});\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Contract compatibility requirements.capabilities\");\n\treturn detachedFreeze({\n\t\tcontractId: value.contractId,\n\t\tversion: value.version,\n\t\tmode: hostContext.mode,\n\t\tfeatures: hostContext.features,\n\t\ttransports: hostContext.transports,\n\t\tcapabilities,\n\t});\n}\n\nexport function buildContractCompatibilityRequirementsV1(\n\tinput: ContractCompatibilityRequirementsV1,\n): ContractCompatibilityRequirementsV1 {\n\treturn validateContractCompatibilityRequirementsV1(input);\n}\n\nconst CONTRACT_COMPATIBILITY_ISSUE_CODES_V1: readonly ContractCompatibilityIssueCodeV1[] = [\n\t\"unsupported_contract\",\n\t\"host_mode_mismatch\",\n\t\"unsupported_feature\",\n\t\"unsupported_transport\",\n\t\"unsupported_capability\",\n];\n\n/** Validates frozen compatibility results so both bindings share one matrix shape. */\nexport function validateContractCompatibilityResultV1(value: unknown): ContractCompatibilityResultV1 {\n\tassertPlainRecord(value, \"Contract compatibility result\");\n\tassertExactKeys(value, [\"version\", \"compatible\", \"issues\"], [], \"Contract compatibility result\");\n\tif (value.version !== 1) throw new Error(t(\"Contract compatibility result.version must be 1\"));\n\tif (typeof value.compatible !== \"boolean\")\n\t\tthrow new Error(t(\"Contract compatibility result.compatible must be boolean\"));\n\tif (!Array.isArray(value.issues)) throw new Error(t(\"Contract compatibility result.issues must be an array\"));\n\tif (value.compatible && value.issues.length > 0) {\n\t\tthrow new Error(t(\"Contract compatibility result.compatible must be false when issues exist\"));\n\t}\n\tif (!value.compatible && value.issues.length === 0) {\n\t\tthrow new Error(t(\"Contract compatibility result.compatible must be true when no issues exist\"));\n\t}\n\tconst issues = value.issues.map((entry, index): ContractCompatibilityIssueV1 => {\n\t\tassertPlainRecord(entry, `Contract compatibility result.issues[${index}]`);\n\t\tassertExactKeys(\n\t\t\tentry,\n\t\t\t[\"code\", \"error\"],\n\t\t\t[\"missingFeatures\", \"missingTransports\", \"missingCapabilities\"],\n\t\t\t`Contract compatibility result.issues[${index}]`,\n\t\t);\n\t\tif (!CONTRACT_COMPATIBILITY_ISSUE_CODES_V1.includes(entry.code as ContractCompatibilityIssueCodeV1)) {\n\t\t\tthrow new Error(t(\"Contract compatibility result.issues[{index}].code is invalid\", { index }));\n\t\t}\n\t\tconst error = validateErrorEnvelopeV1(entry.error);\n\t\tconst missingFeatures = entry.missingFeatures;\n\t\tif (missingFeatures !== undefined) {\n\t\t\tif (!Array.isArray(missingFeatures) || missingFeatures.some((item) => typeof item !== \"string\")) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"Contract compatibility result.issues[{index}].missingFeatures must be strings\", { index }),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tconst missingTransports = entry.missingTransports;\n\t\tif (missingTransports !== undefined) {\n\t\t\tif (!Array.isArray(missingTransports) || missingTransports.some((item) => typeof item !== \"string\")) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"Contract compatibility result.issues[{index}].missingTransports must be strings\", { index }),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tconst missingCapabilities = entry.missingCapabilities;\n\t\tif (missingCapabilities !== undefined) {\n\t\t\tvalidateCapabilityRefs(\n\t\t\t\tmissingCapabilities,\n\t\t\t\t`Contract compatibility result.issues[${index}].missingCapabilities`,\n\t\t\t);\n\t\t}\n\t\tconst issue: ContractCompatibilityIssueV1 = {\n\t\t\tcode: entry.code as ContractCompatibilityIssueCodeV1,\n\t\t\terror,\n\t\t\t...(missingFeatures === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingFeatures: Object.freeze(missingFeatures.map((item) => item as string)) }),\n\t\t\t...(missingTransports === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingTransports: Object.freeze(missingTransports.map((item) => item as HostTransport)) }),\n\t\t\t...(missingCapabilities === undefined\n\t\t\t\t? {}\n\t\t\t\t: { missingCapabilities: validateCapabilityRefs(missingCapabilities, \"missingCapabilities\") }),\n\t\t};\n\t\treturn detachedFreeze(issue);\n\t});\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcompatible: value.compatible,\n\t\tissues: Object.freeze(issues),\n\t});\n}\n\nexport function validateAgentCapabilityContractV1(value: unknown): AgentCapabilityContractV1 {\n\tassertPlainRecord(value, \"Agent capability contract\");\n\tassertExactKeys(value, [\"contractId\", \"version\", \"capabilities\", \"hostContext\"], [], \"Agent capability contract\");\n\tif (value.contractId !== AGENT_CAPABILITY_CONTRACT_ID) {\n\t\tthrow new Error(\n\t\t\tt(\"Agent capability contract.contractId must be {contractId}\", { contractId: AGENT_CAPABILITY_CONTRACT_ID }),\n\t\t);\n\t}\n\tif (value.version !== 1) throw new Error(t(\"Agent capability contract.version must be 1\"));\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Agent capability contract.capabilities\");\n\tconst hostContext = validateHostContextV1(value.hostContext);\n\treturn detachedFreeze({ contractId: value.contractId, version: 1 as const, capabilities, hostContext });\n}\n\nexport type AgentCapabilityContractInputV1 = Omit<AgentCapabilityContractV1, \"version\"> & { readonly version?: 1 };\n\nexport function buildAgentCapabilityContractV1(input: AgentCapabilityContractInputV1): AgentCapabilityContractV1 {\n\treturn validateAgentCapabilityContractV1({ ...input, version: input.version ?? 1 });\n}\n\nexport function validateAgentProfileV1(value: unknown): AgentProfileV1 {\n\tassertPlainRecord(value, \"Agent profile\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"id\", \"version\", \"rootAgent\", \"requiredPlugins\"],\n\t\t[\"optionalPlugins\", \"defaults\"],\n\t\t\"Agent profile\",\n\t);\n\tassertNonEmptyString(value.id, \"Agent profile.id\");\n\tassertPositiveSafeInteger(value.version, \"Agent profile.version\");\n\tassertNonEmptyString(value.rootAgent, \"Agent profile.rootAgent\");\n\tconst validatePluginIds = (candidate: unknown, label: string): readonly string[] => {\n\t\tif (!Array.isArray(candidate)) throw new Error(t(\"{label} must be an array\", { label }));\n\t\tconst ids = candidate.map((id, index) => {\n\t\t\tassertNonEmptyString(id, `${label}[${index}]`);\n\t\t\treturn id;\n\t\t});\n\t\tif (new Set(ids).size !== ids.length) throw new Error(t(\"{label} must not contain duplicates\", { label }));\n\t\treturn Object.freeze([...ids].sort());\n\t};\n\tconst requiredPlugins = validatePluginIds(value.requiredPlugins, \"Agent profile.requiredPlugins\");\n\tconst optionalPlugins =\n\t\tvalue.optionalPlugins === undefined\n\t\t\t? undefined\n\t\t\t: validatePluginIds(value.optionalPlugins, \"Agent profile.optionalPlugins\");\n\tif (optionalPlugins?.some((id) => requiredPlugins.includes(id))) {\n\t\tthrow new Error(t(\"Agent profile.optionalPlugins must not overlap requiredPlugins\"));\n\t}\n\tif (value.defaults !== undefined) assertJsonValue(value.defaults, \"Agent profile.defaults\");\n\treturn detachedFreeze({\n\t\tid: value.id,\n\t\tversion: value.version,\n\t\trootAgent: value.rootAgent,\n\t\trequiredPlugins,\n\t\t...(optionalPlugins === undefined ? {} : { optionalPlugins }),\n\t\t...(value.defaults === undefined ? {} : { defaults: value.defaults }),\n\t});\n}\n\nexport function buildAgentProfileV1(input: AgentProfileV1): AgentProfileV1 {\n\treturn validateAgentProfileV1(input);\n}\n\nexport function validateArtifactRefV1(value: unknown): ArtifactRefV1 {\n\tassertPlainRecord(value, \"Artifact reference\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"sessionId\", \"operationId\", \"artifactId\", \"kind\", \"mediaType\", \"truncated\", \"createdAt\"],\n\t\t[\"sizeBytes\"],\n\t\t\"Artifact reference\",\n\t);\n\tassertNonEmptyString(value.sessionId, \"Artifact reference.sessionId\");\n\tassertNonEmptyString(value.operationId, \"Artifact reference.operationId\");\n\tassertNonEmptyString(value.artifactId, \"Artifact reference.artifactId\");\n\tassertNonEmptyString(value.kind, \"Artifact reference.kind\");\n\tassertNonEmptyString(value.mediaType, \"Artifact reference.mediaType\");\n\tif (value.sizeBytes !== undefined) assertNonNegativeSafeInteger(value.sizeBytes, \"Artifact reference.sizeBytes\");\n\tif (typeof value.truncated !== \"boolean\") throw new Error(t(\"Artifact reference.truncated must be boolean\"));\n\tassertNonNegativeSafeInteger(value.createdAt, \"Artifact reference.createdAt\");\n\treturn detachedFreeze({\n\t\tsessionId: value.sessionId,\n\t\toperationId: value.operationId,\n\t\tartifactId: value.artifactId,\n\t\tkind: value.kind,\n\t\tmediaType: value.mediaType,\n\t\t...(value.sizeBytes === undefined ? {} : { sizeBytes: value.sizeBytes }),\n\t\ttruncated: value.truncated,\n\t\tcreatedAt: value.createdAt,\n\t});\n}\n\nexport function buildArtifactRefV1(input: ArtifactRefV1): ArtifactRefV1 {\n\treturn validateArtifactRefV1(input);\n}\n\n/**\n * Compare a candidate contract to explicitly requested semantics. V1 has no\n * version upcast/downcast: a different contract ID or version is unsupported.\n */\nexport function checkContractCompatibilityV1(\n\tcandidateInput: AgentCapabilityContractV1,\n\trequirementsInput: ContractCompatibilityRequirementsV1,\n): ContractCompatibilityResultV1 {\n\tconst candidate = validateAgentCapabilityContractV1(candidateInput);\n\tconst requirements = validateContractCompatibilityRequirementsV1(requirementsInput);\n\tconst issues: ContractCompatibilityIssueV1[] = [];\n\tif (candidate.contractId !== requirements.contractId || candidate.version !== requirements.version) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_contract\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_contract\",\n\t\t\t\t`Contract is unsupported: ${requirements.contractId}@${requirements.version}`,\n\t\t\t),\n\t\t});\n\t}\n\tif (candidate.hostContext.mode !== requirements.mode) {\n\t\tissues.push({\n\t\t\tcode: \"host_mode_mismatch\",\n\t\t\terror: commandError(\n\t\t\t\t\"host_mode_mismatch\",\n\t\t\t\t`Host mode is incompatible: required ${requirements.mode}, received ${candidate.hostContext.mode}`,\n\t\t\t),\n\t\t});\n\t}\n\tconst missingFeatures = requirements.features.filter((feature) => !candidate.hostContext.features.includes(feature));\n\tif (missingFeatures.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_feature\",\n\t\t\terror: commandError(\"unsupported_feature\", `Host features are unsupported: ${missingFeatures.join(\", \")}`),\n\t\t\tmissingFeatures: Object.freeze([...missingFeatures]),\n\t\t});\n\t}\n\tconst missingTransports = requirements.transports.filter(\n\t\t(transport) => !candidate.hostContext.transports.includes(transport),\n\t);\n\tif (missingTransports.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_transport\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_transport\",\n\t\t\t\t`Host transports are unsupported: ${missingTransports.join(\", \")}`,\n\t\t\t),\n\t\t\tmissingTransports: Object.freeze([...missingTransports]),\n\t\t});\n\t}\n\tconst missingCapabilities = requirements.capabilities.filter(\n\t\t(required) =>\n\t\t\t!candidate.capabilities.some(\n\t\t\t\t(available) => available.id === required.id && available.version === required.version,\n\t\t\t),\n\t);\n\tif (missingCapabilities.length > 0) {\n\t\tissues.push({\n\t\t\tcode: \"unsupported_capability\",\n\t\t\terror: commandError(\n\t\t\t\t\"unsupported_capability\",\n\t\t\t\t`Capabilities are unsupported: ${missingCapabilities.map((item) => `${item.id}@${item.version}`).join(\", \")}`,\n\t\t\t),\n\t\t\tmissingCapabilities: Object.freeze([...missingCapabilities]),\n\t\t});\n\t}\n\treturn detachedFreeze({ version: 1 as const, compatible: issues.length === 0, issues });\n}\n\nfunction validateAgentRole(value: unknown, label: string): asserts value is AgentRoleV1 {\n\tif (value !== \"root-agent-controller\" && value !== \"child-agent-controller\")\n\t\tthrow new Error(t(\"{label} is invalid\", { label }));\n}\n\nexport function validateAgentDefinitionSnapshotV1(value: unknown): AgentDefinitionSnapshotV1 {\n\tassertPlainRecord(value, \"Agent definition snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"definitionVersion\", \"role\", \"capabilities\"],\n\t\t[\"owner\"],\n\t\t\"Agent definition snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(t(\"Agent definition snapshot.version must be 1\"));\n\tassertNonEmptyString(value.id, \"Agent definition snapshot.id\");\n\tassertPositiveSafeInteger(value.definitionVersion, \"Agent definition snapshot.definitionVersion\");\n\tvalidateAgentRole(value.role, \"Agent definition snapshot.role\");\n\tconst capabilities = validateCapabilityRefs(value.capabilities, \"Agent definition snapshot.capabilities\");\n\tif (value.owner !== undefined) assertNonEmptyString(value.owner, \"Agent definition snapshot.owner\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdefinitionVersion: value.definitionVersion,\n\t\trole: value.role,\n\t\tcapabilities,\n\t\t...(value.owner === undefined ? {} : { owner: value.owner }),\n\t});\n}\n\nexport function buildAgentDefinitionSnapshotV1(input: AgentDefinitionSnapshotV1): AgentDefinitionSnapshotV1 {\n\treturn validateAgentDefinitionSnapshotV1(input);\n}\n\nexport function validateAgentInstanceSnapshotV1(value: unknown): AgentInstanceSnapshotV1 {\n\tassertPlainRecord(value, \"Agent instance snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"definitionId\", \"definitionVersion\", \"role\", \"status\", \"revision\"],\n\t\t[\"parentInstanceId\", \"leaseOwner\"],\n\t\t\"Agent instance snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(t(\"Agent instance snapshot.version must be 1\"));\n\tassertNonEmptyString(value.id, \"Agent instance snapshot.id\");\n\tassertNonEmptyString(value.definitionId, \"Agent instance snapshot.definitionId\");\n\tassertPositiveSafeInteger(value.definitionVersion, \"Agent instance snapshot.definitionVersion\");\n\tvalidateAgentRole(value.role, \"Agent instance snapshot.role\");\n\tif (\n\t\tvalue.status !== \"created\" &&\n\t\tvalue.status !== \"running\" &&\n\t\tvalue.status !== \"succeeded\" &&\n\t\tvalue.status !== \"failed\" &&\n\t\tvalue.status !== \"cancelled\" &&\n\t\tvalue.status !== \"disposed\"\n\t) {\n\t\tthrow new Error(t(\"Agent instance snapshot.status is invalid\"));\n\t}\n\tassertNonNegativeSafeInteger(value.revision, \"Agent instance snapshot.revision\");\n\tif (value.parentInstanceId !== undefined)\n\t\tassertNonEmptyString(value.parentInstanceId, \"Agent instance snapshot.parentInstanceId\");\n\tif (value.leaseOwner !== undefined) assertNonEmptyString(value.leaseOwner, \"Agent instance snapshot.leaseOwner\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdefinitionId: value.definitionId,\n\t\tdefinitionVersion: value.definitionVersion,\n\t\trole: value.role,\n\t\tstatus: value.status,\n\t\trevision: value.revision,\n\t\t...(value.parentInstanceId === undefined ? {} : { parentInstanceId: value.parentInstanceId }),\n\t\t...(value.leaseOwner === undefined ? {} : { leaseOwner: value.leaseOwner }),\n\t});\n}\n\nexport function buildAgentInstanceSnapshotV1(input: AgentInstanceSnapshotV1): AgentInstanceSnapshotV1 {\n\treturn validateAgentInstanceSnapshotV1(input);\n}\n\nexport function validateSessionRevisionV1(value: unknown): SessionRevisionV1 {\n\tassertPlainRecord(value, \"Session revision\");\n\tassertExactKeys(value, [\"version\", \"sessionId\", \"sequence\", \"leafId\"], [], \"Session revision\");\n\tif (value.version !== 1) throw new Error(t(\"Session revision.version must be 1\"));\n\tassertNonEmptyString(value.sessionId, \"Session revision.sessionId\");\n\tassertNonNegativeSafeInteger(value.sequence, \"Session revision.sequence\");\n\tif (value.leafId !== null && value.leafId !== undefined)\n\t\tassertNonEmptyString(value.leafId, \"Session revision.leafId\");\n\tif (value.leafId === undefined) throw new Error(t(\"Session revision.leafId is required\"));\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tsessionId: value.sessionId,\n\t\tsequence: value.sequence,\n\t\tleafId: value.leafId,\n\t});\n}\n\nexport function buildSessionRevisionV1(input: SessionRevisionV1): SessionRevisionV1 {\n\treturn validateSessionRevisionV1(input);\n}\n\nexport function validateSessionSnapshotV1(value: unknown): SessionSnapshotV1 {\n\tassertPlainRecord(value, \"Session snapshot\");\n\tassertExactKeys(value, [\"version\", \"sessionId\", \"revision\"], [], \"Session snapshot\");\n\tif (value.version !== 1) throw new Error(t(\"Session snapshot.version must be 1\"));\n\tassertNonEmptyString(value.sessionId, \"Session snapshot.sessionId\");\n\tconst revision = validateSessionRevisionV1(value.revision);\n\tif (revision.sessionId !== value.sessionId)\n\t\tthrow new Error(t(\"Session snapshot.revision.sessionId must match sessionId\"));\n\treturn detachedFreeze({ version: 1 as const, sessionId: value.sessionId, revision });\n}\n\nexport function buildSessionSnapshotV1(input: SessionSnapshotV1): SessionSnapshotV1 {\n\treturn validateSessionSnapshotV1(input);\n}\n\nexport function validateErrorEnvelopeV1(value: unknown): ErrorEnvelopeV1 {\n\tassertPlainRecord(value, \"Error envelope\");\n\tassertExactKeys(value, [\"version\", \"code\", \"message\", \"retryable\"], [\"details\", \"name\"], \"Error envelope\");\n\tif (value.version !== 1) throw new Error(t(\"Error envelope.version must be 1\"));\n\tassertNonEmptyString(value.code, \"Error envelope.code\");\n\tif (typeof value.message !== \"string\") throw new Error(t(\"Error envelope.message must be a string\"));\n\tif (typeof value.retryable !== \"boolean\") throw new Error(t(\"Error envelope.retryable must be a boolean\"));\n\tif (value.name !== undefined) assertNonEmptyString(value.name, \"Error envelope.name\");\n\tif (value.details !== undefined) assertJsonValue(value.details, \"Error envelope.details\");\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcode: value.code,\n\t\tmessage: value.message,\n\t\tretryable: value.retryable,\n\t\t...(value.details === undefined ? {} : { details: value.details }),\n\t\t...(value.name === undefined ? {} : { name: value.name }),\n\t});\n}\n\nexport function buildErrorEnvelopeV1(input: ErrorEnvelopeV1): ErrorEnvelopeV1 {\n\treturn validateErrorEnvelopeV1(input);\n}\n\nfunction validateOperationTerminalStatus(value: unknown, label: string): asserts value is OperationTerminalStatusV1 {\n\tif (value !== \"succeeded\" && value !== \"failed\" && value !== \"cancelled\" && value !== \"timed_out\") {\n\t\tthrow new Error(t(\"{label} is invalid\", { label }));\n\t}\n}\n\nexport function validateOperationTerminalV1(value: unknown): OperationTerminalV1 {\n\tassertPlainRecord(value, \"Operation terminal\");\n\tif (!(\"version\" in value) || !(\"status\" in value)) {\n\t\tthrow new Error(t(\"Operation terminal is missing required field: version or status\"));\n\t}\n\tif (value.version !== 1) throw new Error(t(\"Operation terminal.version must be 1\"));\n\tvalidateOperationTerminalStatus(value.status, \"Operation terminal.status\");\n\tif (value.status === \"succeeded\") {\n\t\tassertExactKeys(value, [\"version\", \"status\"], [\"result\"], \"Operation terminal\");\n\t\tif (value.result !== undefined) assertJsonValue(value.result, \"Operation terminal.result\");\n\t\treturn detachedFreeze({\n\t\t\tversion: 1 as const,\n\t\t\tstatus: \"succeeded\" as const,\n\t\t\t...(value.result === undefined ? {} : { result: value.result }),\n\t\t});\n\t}\n\tassertExactKeys(value, [\"version\", \"status\", \"error\"], [], \"Operation terminal\");\n\tconst error = validateErrorEnvelopeV1(value.error);\n\treturn detachedFreeze({ version: 1 as const, status: value.status, error });\n}\n\nexport function buildOperationTerminalV1(input: OperationTerminalV1): OperationTerminalV1 {\n\treturn validateOperationTerminalV1(input);\n}\n\nexport function validateOperationSnapshotV1(value: unknown): OperationSnapshotV1 {\n\tassertPlainRecord(value, \"Operation snapshot\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"operationId\", \"kind\", \"status\"],\n\t\t[\"terminal\", \"instanceId\", \"sessionId\", \"inputRevision\"],\n\t\t\"Operation snapshot\",\n\t);\n\tif (value.version !== 1) throw new Error(t(\"Operation snapshot.version must be 1\"));\n\tassertNonEmptyString(value.operationId, \"Operation snapshot.operationId\");\n\tassertNonEmptyString(value.kind, \"Operation snapshot.kind\");\n\tif (\n\t\tvalue.status !== \"queued\" &&\n\t\tvalue.status !== \"running\" &&\n\t\tvalue.status !== \"succeeded\" &&\n\t\tvalue.status !== \"failed\" &&\n\t\tvalue.status !== \"cancelled\" &&\n\t\tvalue.status !== \"timed_out\"\n\t) {\n\t\tthrow new Error(t(\"Operation snapshot.status is invalid\"));\n\t}\n\tif ((value.status === \"queued\" || value.status === \"running\") && value.terminal !== undefined) {\n\t\tthrow new Error(t(\"Operation snapshot active status must not have a terminal\"));\n\t}\n\tif (value.status !== \"queued\" && value.status !== \"running\" && value.terminal === undefined) {\n\t\tthrow new Error(t(\"Operation snapshot terminal status requires a terminal\"));\n\t}\n\tconst terminal = value.terminal === undefined ? undefined : validateOperationTerminalV1(value.terminal);\n\tif (terminal !== undefined && terminal.status !== value.status)\n\t\tthrow new Error(t(\"Operation snapshot.terminal.status must match status\"));\n\tif (value.instanceId !== undefined) assertNonEmptyString(value.instanceId, \"Operation snapshot.instanceId\");\n\tif (value.sessionId !== undefined) assertNonEmptyString(value.sessionId, \"Operation snapshot.sessionId\");\n\tconst inputRevision = value.inputRevision === undefined ? undefined : validateSessionRevisionV1(value.inputRevision);\n\tif (inputRevision !== undefined && value.sessionId !== undefined && inputRevision.sessionId !== value.sessionId) {\n\t\tthrow new Error(t(\"Operation snapshot.inputRevision.sessionId must match sessionId\"));\n\t}\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\toperationId: value.operationId,\n\t\tkind: value.kind,\n\t\tstatus: value.status,\n\t\t...(terminal === undefined ? {} : { terminal }),\n\t\t...(value.instanceId === undefined ? {} : { instanceId: value.instanceId }),\n\t\t...(value.sessionId === undefined ? {} : { sessionId: value.sessionId }),\n\t\t...(inputRevision === undefined ? {} : { inputRevision }),\n\t});\n}\n\nexport function buildOperationSnapshotV1(input: OperationSnapshotV1): OperationSnapshotV1 {\n\treturn validateOperationSnapshotV1(input);\n}\n\nexport function validateCommandRequestV1(value: unknown): CommandRequestV1 {\n\tassertPlainRecord(value, \"Command request\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"operationId\", \"idempotencyKey\", \"command\", \"target\", \"input\", \"hostContext\"],\n\t\t[\"expectedRevision\"],\n\t\t\"Command request\",\n\t);\n\tif (value.version !== 1) throw new Error(t(\"Command request.version must be 1\"));\n\tassertNonEmptyString(value.operationId, \"Command request.operationId\");\n\tassertNonEmptyString(value.idempotencyKey, \"Command request.idempotencyKey\");\n\tassertNonEmptyString(value.command, \"Command request.command\");\n\tassertNonEmptyString(value.target, \"Command request.target\");\n\tassertJsonValue(value.input, \"Command request.input\");\n\tconst expectedRevision =\n\t\tvalue.expectedRevision === undefined ? undefined : validateSessionRevisionV1(value.expectedRevision);\n\tif (expectedRevision !== undefined && expectedRevision.sessionId !== value.target) {\n\t\tthrow new Error(t(\"Command request.expectedRevision.sessionId does not match target\"));\n\t}\n\tconst hostContext = validateHostContextV1(value.hostContext);\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\toperationId: value.operationId,\n\t\tidempotencyKey: value.idempotencyKey,\n\t\tcommand: value.command,\n\t\ttarget: value.target,\n\t\tinput: value.input,\n\t\t...(expectedRevision === undefined ? {} : { expectedRevision }),\n\t\thostContext,\n\t});\n}\n\nexport type CommandRequestInputV1 = Omit<CommandRequestV1, \"version\"> & { readonly version?: 1 };\n\nexport function buildCommandRequestV1(input: CommandRequestInputV1): CommandRequestV1 {\n\treturn validateCommandRequestV1({ ...input, version: input.version ?? 1 });\n}\n\nexport function validateCommandAdmissionV1(value: unknown): CommandAdmissionV1 {\n\tassertPlainRecord(value, \"Command admission\");\n\tassertExactKeys(value, [\"version\", \"status\", \"request\"], [\"operation\", \"error\"], \"Command admission\");\n\tif (value.version !== 1) throw new Error(t(\"Command admission.version must be 1\"));\n\tif (value.status !== \"accepted\" && value.status !== \"existing\" && value.status !== \"rejected\") {\n\t\tthrow new Error(t(\"Command admission.status is invalid\"));\n\t}\n\tconst request = validateCommandRequestV1(value.request);\n\tconst operation = value.operation === undefined ? undefined : validateOperationSnapshotV1(value.operation);\n\tif ((value.status === \"accepted\" || value.status === \"existing\") && operation === undefined) {\n\t\tthrow new Error(t(\"Command admission accepted status requires an operation\"));\n\t}\n\tif (value.status === \"rejected\" && value.error === undefined) {\n\t\tthrow new Error(t(\"Command admission rejected status requires an error\"));\n\t}\n\tconst error = value.error === undefined ? undefined : validateErrorEnvelopeV1(value.error);\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tstatus: value.status,\n\t\trequest,\n\t\t...(operation === undefined ? {} : { operation }),\n\t\t...(error === undefined ? {} : { error }),\n\t});\n}\n\nfunction canonicalJson(value: unknown): string {\n\tif (value === null || typeof value !== \"object\") return JSON.stringify(value);\n\tif (Array.isArray(value)) return `[${value.map(canonicalJson).join(\",\")}]`;\n\tconst record = value as Record<string, unknown>;\n\treturn `{${Object.keys(record)\n\t\t.sort()\n\t\t.map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`)\n\t\t.join(\",\")}}`;\n}\n\nfunction sameRevision(left: SessionRevisionV1, right: SessionRevisionV1): boolean {\n\treturn left.sessionId === right.sessionId && left.sequence === right.sequence && left.leafId === right.leafId;\n}\n\nfunction commandError(code: string, message: string, details?: unknown): ErrorEnvelopeV1 {\n\treturn buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode,\n\t\tmessage,\n\t\tretryable: false,\n\t\t...(details === undefined ? {} : { details: details as JsonValue }),\n\t});\n}\n\nfunction rejectedAdmission(request: CommandRequestV1, error: ErrorEnvelopeV1): CommandAdmissionV1 {\n\treturn detachedFreeze({ version: 1 as const, status: \"rejected\" as const, request, error });\n}\n\n/** Create the reference command admission registry used by deterministic fixtures. */\nexport function createCommandOperationRegistryV1(): CommandOperationRegistryV1 {\n\tconst entries = new Map<\n\t\tstring,\n\t\t{ request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 }\n\t>();\n\n\tconst read = (\n\t\toperationId: string,\n\t): { request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 } => {\n\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\tconst entry = entries.get(operationId);\n\t\tif (!entry) throw new Error(t(\"Operation is not retained: {operationId}\", { operationId }));\n\t\treturn entry;\n\t};\n\tconst write = (\n\t\tentry: { request: CommandRequestV1; fingerprint: string; operation: OperationSnapshotV1 },\n\t\toperation: OperationSnapshotV1,\n\t): OperationSnapshotV1 => {\n\t\tentry.operation = operation;\n\t\treturn operation;\n\t};\n\tconst terminal = (entry: {\n\t\trequest: CommandRequestV1;\n\t\tfingerprint: string;\n\t\toperation: OperationSnapshotV1;\n\t}): boolean => entry.operation.terminal !== undefined;\n\n\treturn Object.freeze({\n\t\tadmit(input: CommandRequestV1, currentRevision?: SessionRevisionV1): CommandAdmissionV1 {\n\t\t\tconst request = validateCommandRequestV1(input);\n\t\t\tconst current = currentRevision === undefined ? undefined : validateSessionRevisionV1(currentRevision);\n\t\t\tconst fingerprint = canonicalJson(request);\n\t\t\tconst existing = entries.get(request.operationId);\n\t\t\tif (existing) {\n\t\t\t\tif (existing.fingerprint === fingerprint) {\n\t\t\t\t\treturn detachedFreeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tstatus: \"existing\" as const,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\toperation: existing.operation,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\trequest,\n\t\t\t\t\tcommandError(\n\t\t\t\t\t\t\"idempotency_conflict\",\n\t\t\t\t\t\t`Operation ID is already bound to different input: ${request.operationId}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (request.expectedRevision !== undefined) {\n\t\t\t\tif (current === undefined) {\n\t\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tcommandError(\"revision_unavailable\", `Current revision is required for: ${request.target}`),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!sameRevision(request.expectedRevision, current)) {\n\t\t\t\t\treturn rejectedAdmission(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tcommandError(\"revision_conflict\", `Expected revision does not match: ${request.target}`, {\n\t\t\t\t\t\t\texpectedRevision: request.expectedRevision as unknown as JsonValue,\n\t\t\t\t\t\t\tcurrentRevision: current as unknown as JsonValue,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst operation = buildOperationSnapshotV1({\n\t\t\t\tversion: 1,\n\t\t\t\toperationId: request.operationId,\n\t\t\t\tkind: `command:${request.command}`,\n\t\t\t\tstatus: \"queued\",\n\t\t\t\t...(request.expectedRevision === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { sessionId: request.expectedRevision.sessionId, inputRevision: request.expectedRevision }),\n\t\t\t});\n\t\t\tentries.set(request.operationId, { request, fingerprint, operation });\n\t\t\treturn detachedFreeze({ version: 1 as const, status: \"accepted\" as const, request, operation });\n\t\t},\n\t\tstart(operationId: string): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tif (entry.operation.status !== \"queued\") return entry.operation;\n\t\t\treturn write(entry, buildOperationSnapshotV1({ ...entry.operation, status: \"running\" }));\n\t\t},\n\t\tcomplete(operationId: string, terminalSnapshot: OperationTerminalV1): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tconst nextTerminal = validateOperationTerminalV1(terminalSnapshot);\n\t\t\tif (terminal(entry)) {\n\t\t\t\tif (\n\t\t\t\t\tcanonicalJson(entry.operation.terminal! as unknown as JsonValue) !==\n\t\t\t\t\tcanonicalJson(nextTerminal as unknown as JsonValue)\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(t(\"Operation already has a different terminal result: {operationId}\", { operationId }));\n\t\t\t\t}\n\t\t\t\treturn entry.operation;\n\t\t\t}\n\t\t\treturn write(\n\t\t\t\tentry,\n\t\t\t\tbuildOperationSnapshotV1({ ...entry.operation, status: nextTerminal.status, terminal: nextTerminal }),\n\t\t\t);\n\t\t},\n\t\tcancel(operationId: string): OperationSnapshotV1 {\n\t\t\tconst entry = read(operationId);\n\t\t\tif (terminal(entry)) return entry.operation;\n\t\t\treturn write(\n\t\t\t\tentry,\n\t\t\t\tbuildOperationSnapshotV1({\n\t\t\t\t\t...entry.operation,\n\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\tterminal: {\n\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\t\terror: commandError(\"operation_cancelled\", `Operation cancelled: ${operationId}`),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\tget(operationId: string): OperationSnapshotV1 | undefined {\n\t\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\t\treturn entries.get(operationId)?.operation;\n\t\t},\n\t\trelease(operationId: string): void {\n\t\t\tassertNonEmptyString(operationId, \"operationId\");\n\t\t\tentries.delete(operationId);\n\t\t},\n\t});\n}\n\n/** Build the stable semantic vector used by embedded and future service bindings. */\nexport function buildCanonicalContractVectorsV1(): CanonicalContractVectorsV1 {\n\tconst hostContext = buildHostContextV1({\n\t\tmode: \"full-control\",\n\t\tfeatures: [\"agent.run\", \"session.snapshot\"],\n\t\ttransports: [\"in-process\"],\n\t});\n\tconst contract = buildAgentCapabilityContractV1({\n\t\tcontractId: AGENT_CAPABILITY_CONTRACT_ID,\n\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\thostContext,\n\t});\n\tconst profile = buildAgentProfileV1({\n\t\tid: \"coding-agent\",\n\t\tversion: 1,\n\t\trootAgent: \"coding-agent.root\",\n\t\trequiredPlugins: [\"bootstrap-tools\"],\n\t\toptionalPlugins: [\"bootstrap-skills\"],\n\t\tdefaults: { mode: \"full-control\", context: { strategy: \"default\" } },\n\t});\n\tconst artifact = buildArtifactRefV1({\n\t\tsessionId: \"session-vector-1\",\n\t\toperationId: \"vector-operation-1\",\n\t\tartifactId: \"artifact-vector-1\",\n\t\tkind: \"operation_record\",\n\t\tmediaType: \"application/json\",\n\t\tsizeBytes: 13,\n\t\ttruncated: false,\n\t\tcreatedAt: 0,\n\t});\n\tconst revision = buildSessionRevisionV1({ version: 1, sessionId: \"session-vector-1\", sequence: 0, leafId: null });\n\tconst definition = buildAgentDefinitionSnapshotV1({\n\t\tversion: 1,\n\t\tid: \"coding-agent.root\",\n\t\tdefinitionVersion: 1,\n\t\trole: \"root-agent-controller\",\n\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\towner: \"coding-agent\",\n\t});\n\tconst instance = buildAgentInstanceSnapshotV1({\n\t\tversion: 1,\n\t\tid: \"instance-vector-1\",\n\t\tdefinitionId: definition.id,\n\t\tdefinitionVersion: definition.definitionVersion,\n\t\trole: definition.role,\n\t\tstatus: \"created\",\n\t\trevision: 0,\n\t});\n\tconst session = buildSessionSnapshotV1({ version: 1, sessionId: revision.sessionId, revision });\n\tconst error = buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: \"provider_error\",\n\t\tmessage: \"provider failed\",\n\t\tretryable: true,\n\t});\n\tconst command = buildCommandRequestV1({\n\t\toperationId: \"vector-operation-1\",\n\t\tidempotencyKey: \"vector-request-1\",\n\t\tcommand: \"agent.run\",\n\t\ttarget: \"session-vector-1\",\n\t\tinput: { prompt: \"vector\" },\n\t\texpectedRevision: { version: 1, sessionId: \"session-vector-1\", sequence: 0, leafId: null },\n\t\thostContext,\n\t});\n\tconst registry = createCommandOperationRegistryV1();\n\tconst accepted = registry.admit(command, command.expectedRevision);\n\tif (accepted.status !== \"accepted\" || accepted.operation === undefined) {\n\t\tthrow new Error(t(\"Canonical contract vector admission failed\"));\n\t}\n\tconst running = registry.start(command.operationId);\n\tconst terminal = registry.complete(command.operationId, {\n\t\tversion: 1,\n\t\tstatus: \"succeeded\",\n\t\tresult: { ok: true },\n\t});\n\tconst event = buildEventEnvelopeV1({\n\t\tid: \"vector-event-1\",\n\t\tdeliveryId: \"vector-delivery-1\",\n\t\ttype: \"operation.end\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"authoritative\",\n\t\tdeliveryGuarantee: \"best-effort\",\n\t\ttimestamp: 0,\n\t\toperationId: command.operationId,\n\t\tcorrelationId: command.operationId,\n\t\tdata: { version: 1, operationId: command.operationId, operationKind: command.command, status: \"succeeded\" },\n\t});\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tcontract,\n\t\tdefinition,\n\t\tinstance,\n\t\tsession,\n\t\trevision,\n\t\terror,\n\t\tprofile,\n\t\tartifact,\n\t\tcommand,\n\t\taccepted,\n\t\trunning,\n\t\tterminal,\n\t\tevent,\n\t});\n}\n\n/**\n * Stable V1 fixture vectors. They intentionally model contract outcomes, not\n * SDK/runtime implementation details, so each binding can consume them.\n */\nexport function buildCanonicalContractFixtureVectorsV1(): readonly CanonicalContractFixtureVectorV1[] {\n\tconst base = buildCanonicalContractVectorsV1();\n\tconst registry = createCommandOperationRegistryV1();\n\tconst request = buildCommandRequestV1({\n\t\toperationId: \"fixture-operation-1\",\n\t\tidempotencyKey: \"fixture-request-1\",\n\t\tcommand: \"agent.run\",\n\t\ttarget: \"session-fixture-1\",\n\t\tinput: { prompt: \"fixture\" },\n\t\texpectedRevision: { version: 1, sessionId: \"session-fixture-1\", sequence: 1, leafId: \"leaf-1\" },\n\t\thostContext: base.contract.hostContext,\n\t});\n\tregistry.admit(request, request.expectedRevision);\n\tconst existing = registry.admit(request, request.expectedRevision);\n\tconst idempotencyConflict = registry.admit({ ...request, input: { prompt: \"different\" } }, request.expectedRevision);\n\tconst revisionConflict = registry.admit(\n\t\t{ ...request, operationId: \"fixture-operation-2\", idempotencyKey: \"fixture-request-2\" },\n\t\t{ version: 1, sessionId: \"session-fixture-1\", sequence: 2, leafId: \"leaf-2\" },\n\t);\n\tconst cancelled = registry.cancel(request.operationId);\n\tconst terminalReplay = registry.complete(request.operationId, cancelled.terminal!);\n\tconst failed = registry.admit(\n\t\tbuildCommandRequestV1({\n\t\t\t...request,\n\t\t\toperationId: \"fixture-operation-failed\",\n\t\t\tidempotencyKey: \"fixture-request-failed\",\n\t\t}),\n\t\trequest.expectedRevision,\n\t);\n\tif (failed.status !== \"accepted\") throw new Error(t(\"Canonical contract failed vector admission failed\"));\n\tconst failedTerminal = registry.complete(\"fixture-operation-failed\", {\n\t\tversion: 1,\n\t\tstatus: \"failed\",\n\t\terror: buildErrorEnvelopeV1({\n\t\t\tversion: 1,\n\t\t\tcode: \"provider_error\",\n\t\t\tmessage: \"provider failed\",\n\t\t\tretryable: true,\n\t\t}),\n\t});\n\tconst timedOut = registry.admit(\n\t\tbuildCommandRequestV1({\n\t\t\t...request,\n\t\t\toperationId: \"fixture-operation-timeout\",\n\t\t\tidempotencyKey: \"fixture-request-timeout\",\n\t\t}),\n\t\trequest.expectedRevision,\n\t);\n\tif (timedOut.status !== \"accepted\") throw new Error(t(\"Canonical contract timeout vector admission failed\"));\n\tconst timedOutTerminal = registry.complete(\"fixture-operation-timeout\", {\n\t\tversion: 1,\n\t\tstatus: \"timed_out\",\n\t\terror: buildErrorEnvelopeV1({\n\t\t\tversion: 1,\n\t\t\tcode: \"operation_timeout\",\n\t\t\tmessage: \"operation timed out\",\n\t\t\tretryable: true,\n\t\t}),\n\t});\n\tconst unsupported = buildUnsupportedCapabilityV1({ id: \"fixture.missing\", version: 1 });\n\tconst observation = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-1\",\n\t\tdeliveryId: \"fixture-delivery-1\",\n\t\ttype: \"fixture.observation\",\n\t\tsource: \"canonical-vector\",\n\t\ttimestamp: 0,\n\t\tdata: { observed: true },\n\t});\n\tconst correlated = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-correlated\",\n\t\tdeliveryId: \"fixture-delivery-correlated\",\n\t\ttype: \"operation.end\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"authoritative\",\n\t\ttimestamp: 0,\n\t\toperationId: \"fixture-operation-1\",\n\t\tcorrelationId: \"fixture-operation-1\",\n\t\tdata: { status: \"cancelled\" },\n\t});\n\tconst steer = buildCommandRequestV1({\n\t\toperationId: \"fixture-operation-steer\",\n\t\tidempotencyKey: \"fixture-request-steer\",\n\t\tcommand: \"session.steer\",\n\t\ttarget: \"session-fixture-1\",\n\t\tinput: { text: \"steer\" },\n\t\texpectedRevision: request.expectedRevision,\n\t\thostContext: base.contract.hostContext,\n\t});\n\tconst operationStep = buildEventEnvelopeV1({\n\t\tid: \"fixture-event-step\",\n\t\tdeliveryId: \"fixture-delivery-step\",\n\t\ttype: \"operation.step\",\n\t\tsource: \"canonical-vector\",\n\t\tcategory: \"progress\",\n\t\ttimestamp: 0,\n\t\toperationId: \"fixture-operation-steer\",\n\t\tcorrelationId: \"fixture-operation-steer\",\n\t\tdata: {\n\t\t\tversion: 1,\n\t\t\toperationId: \"fixture-operation-steer\",\n\t\t\toperationKind: \"session.steer\",\n\t\t\tstep: 1,\n\t\t\tmessage: \"accepted\",\n\t\t},\n\t});\n\tconst compatibilityRequirements = (overrides: Partial<ContractCompatibilityRequirementsV1>) =>\n\t\tbuildContractCompatibilityRequirementsV1({\n\t\t\tcontractId: AGENT_CAPABILITY_CONTRACT_ID,\n\t\t\tversion: 1,\n\t\t\tmode: \"full-control\",\n\t\t\tfeatures: [],\n\t\t\ttransports: [],\n\t\t\tcapabilities: [],\n\t\t\t...overrides,\n\t\t});\n\tconst compatibilityAccepted = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({\n\t\t\tfeatures: [\"agent.run\", \"session.snapshot\"],\n\t\t\ttransports: [\"in-process\"],\n\t\t\tcapabilities: [{ id: \"agent.run\", version: 1 }],\n\t\t}),\n\t);\n\tconst compatibilityContractUnsupported = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ version: 2 }),\n\t);\n\tconst compatibilityCapabilityVersionUnsupported = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ capabilities: [{ id: \"agent.run\", version: 2 }] }),\n\t);\n\tconst compatibilityFeatureSubset = checkContractCompatibilityV1(\n\t\tbase.contract,\n\t\tcompatibilityRequirements({ features: [\"agent.run\", \"session.compact\"] }),\n\t);\n\treturn detachedFreeze([\n\t\t{ id: \"agent-definition\", value: base.definition as unknown as JsonValue },\n\t\t{ id: \"agent-instance\", value: base.instance as unknown as JsonValue },\n\t\t{ id: \"session-snapshot\", value: base.session as unknown as JsonValue },\n\t\t{ id: \"session-revision\", value: base.revision as unknown as JsonValue },\n\t\t{ id: \"error-envelope\", value: base.error as unknown as JsonValue },\n\t\t{ id: \"profile-snapshot\", value: base.profile as unknown as JsonValue },\n\t\t{ id: \"artifact-reference\", value: base.artifact as unknown as JsonValue },\n\t\t{ id: \"command-success\", value: base.terminal as unknown as JsonValue },\n\t\t{ id: \"command-failed-terminal\", value: failedTerminal as unknown as JsonValue },\n\t\t{ id: \"command-timed-out-terminal\", value: timedOutTerminal as unknown as JsonValue },\n\t\t{ id: \"command-idempotency-replay\", value: existing as unknown as JsonValue },\n\t\t{ id: \"command-idempotency-conflict\", value: idempotencyConflict as unknown as JsonValue },\n\t\t{ id: \"command-revision-conflict\", value: revisionConflict as unknown as JsonValue },\n\t\t{ id: \"command-cancel-terminal\", value: cancelled as unknown as JsonValue },\n\t\t{ id: \"command-terminal-replay\", value: terminalReplay as unknown as JsonValue },\n\t\t{ id: \"capability-unsupported\", value: unsupported as unknown as JsonValue },\n\t\t{ id: \"event-without-operation\", value: observation as unknown as JsonValue },\n\t\t{ id: \"event-with-operation\", value: correlated as unknown as JsonValue },\n\t\t{ id: \"command-steer\", value: steer as unknown as JsonValue },\n\t\t{ id: \"event-operation-step\", value: operationStep as unknown as JsonValue },\n\t\t{ id: \"compatibility-accepted\", value: compatibilityAccepted as unknown as JsonValue },\n\t\t{ id: \"compatibility-contract-unsupported\", value: compatibilityContractUnsupported as unknown as JsonValue },\n\t\t{\n\t\t\tid: \"compatibility-capability-version-unsupported\",\n\t\t\tvalue: compatibilityCapabilityVersionUnsupported as unknown as JsonValue,\n\t\t},\n\t\t{ id: \"compatibility-feature-subset\", value: compatibilityFeatureSubset as unknown as JsonValue },\n\t]);\n}\n\nexport function validateEventEnvelopeV1<TData extends JsonValue = JsonValue>(value: unknown): EventEnvelopeV1<TData> {\n\tassertPlainRecord(value, \"Event envelope\");\n\tassertExactKeys(\n\t\tvalue,\n\t\t[\"version\", \"id\", \"deliveryId\", \"type\", \"source\", \"category\", \"deliveryGuarantee\", \"timestamp\", \"data\"],\n\t\t[\"operationId\", \"correlationId\", \"causationId\"],\n\t\t\"Event envelope\",\n\t);\n\tif (value.version !== 1) throw new Error(t(\"Event envelope.version must be 1\"));\n\tassertNonEmptyString(value.id, \"Event envelope.id\");\n\tassertNonEmptyString(value.deliveryId, \"Event envelope.deliveryId\");\n\tassertNonEmptyString(value.type, \"Event envelope.type\");\n\tassertNonEmptyString(value.source, \"Event envelope.source\");\n\tif (value.category !== \"authoritative\" && value.category !== \"progress\" && value.category !== \"observation\") {\n\t\tthrow new Error(t(\"Event envelope.category is invalid\"));\n\t}\n\tif (value.deliveryGuarantee !== \"best-effort\" && value.deliveryGuarantee !== \"at-least-once\") {\n\t\tthrow new Error(t(\"Event envelope.deliveryGuarantee is invalid\"));\n\t}\n\tassertNonNegativeSafeInteger(value.timestamp, \"Event envelope.timestamp\");\n\tassertJsonValue(value.data, \"Event envelope.data\");\n\tif (value.operationId !== undefined) assertNonEmptyString(value.operationId, \"Event envelope.operationId\");\n\tif (value.correlationId !== undefined) assertNonEmptyString(value.correlationId, \"Event envelope.correlationId\");\n\tif (value.causationId !== undefined) assertNonEmptyString(value.causationId, \"Event envelope.causationId\");\n\tif (value.operationId === undefined && value.correlationId !== undefined) {\n\t\tthrow new Error(t(\"Event envelope.correlationId requires a real operationId\"));\n\t}\n\tif (value.operationId !== undefined && value.correlationId === undefined) {\n\t\tthrow new Error(t(\"Event envelope.operationId requires correlationId\"));\n\t}\n\treturn detachedFreeze({\n\t\tversion: 1 as const,\n\t\tid: value.id,\n\t\tdeliveryId: value.deliveryId,\n\t\ttype: value.type,\n\t\tsource: value.source,\n\t\tcategory: value.category,\n\t\tdeliveryGuarantee: value.deliveryGuarantee,\n\t\ttimestamp: value.timestamp,\n\t\tdata: value.data,\n\t\t...(value.operationId === undefined ? {} : { operationId: value.operationId }),\n\t\t...(value.correlationId === undefined ? {} : { correlationId: value.correlationId }),\n\t\t...(value.causationId === undefined ? {} : { causationId: value.causationId }),\n\t}) as EventEnvelopeV1<TData>;\n}\n\nexport type EventEnvelopeInputV1<TData extends JsonValue = JsonValue> = Omit<\n\tEventEnvelopeV1<TData>,\n\t\"version\" | \"category\" | \"deliveryGuarantee\"\n> & {\n\treadonly version?: 1;\n\treadonly category?: EventCategoryV1;\n\treadonly deliveryGuarantee?: EventDeliveryGuaranteeV1;\n};\n\nexport function buildEventEnvelopeV1<TData extends JsonValue = JsonValue>(\n\tinput: EventEnvelopeInputV1<TData>,\n): EventEnvelopeV1<TData> {\n\treturn validateEventEnvelopeV1<TData>({\n\t\t...input,\n\t\tversion: input.version ?? 1,\n\t\tcategory: input.category ?? \"observation\",\n\t\tdeliveryGuarantee: input.deliveryGuarantee ?? \"best-effort\",\n\t});\n}\n\nexport function buildUnsupportedCapabilityV1(capability: CapabilityRefV1): UnsupportedCapabilityV1 {\n\tconst reference = validateCapabilityRefV1(capability);\n\tconst error = buildErrorEnvelopeV1({\n\t\tversion: 1,\n\t\tcode: \"unsupported_capability\",\n\t\tmessage: `Capability is unsupported: ${reference.id}@${reference.version}`,\n\t\tretryable: false,\n\t});\n\treturn detachedFreeze({ status: \"unsupported\" as const, capability: reference, error });\n}\n\nexport function resolveCapabilityV1(\n\trequested: CapabilityRefV1,\n\tsupported: readonly CapabilityRefV1[],\n): CapabilityResolutionV1 {\n\tconst reference = validateCapabilityRefV1(requested);\n\tconst available = validateCapabilityRefs(supported, \"Supported capabilities\");\n\tconst found = available.some(\n\t\t(candidate) => candidate.id === reference.id && candidate.version === reference.version,\n\t);\n\treturn found\n\t\t? detachedFreeze({ status: \"supported\" as const, capability: reference })\n\t\t: buildUnsupportedCapabilityV1(reference);\n}\n\nexport function assertCapabilitySupportedV1(\n\trequested: CapabilityRefV1,\n\tsupported: readonly CapabilityRefV1[],\n): CapabilityRefV1 {\n\tconst resolution = resolveCapabilityV1(requested, supported);\n\tif (resolution.status === \"unsupported\") throw new Error(resolution.error.message);\n\treturn resolution.capability;\n}\n\n// Short aliases keep consumers from having to repeat the schema suffix when\n// they only support the currently frozen version.\nexport const validateAgentCapabilityContract = validateAgentCapabilityContractV1;\nexport const buildAgentCapabilityContract = buildAgentCapabilityContractV1;\nexport const validateEventEnvelope = validateEventEnvelopeV1;\nexport const buildEventEnvelope = buildEventEnvelopeV1;\nexport const validateCommandRequest = validateCommandRequestV1;\nexport const buildCommandRequest = buildCommandRequestV1;\n"]}