@ai-agent-forge/agent-forge 0.85.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 (1654) hide show
  1. package/CHANGELOG.md +5969 -0
  2. package/README.md +629 -0
  3. package/dist/artifacts/artifact-store.d.ts +51 -0
  4. package/dist/artifacts/artifact-store.d.ts.map +1 -0
  5. package/dist/artifacts/artifact-store.js +87 -0
  6. package/dist/artifacts/artifact-store.js.map +1 -0
  7. package/dist/artifacts/paged-read.d.ts +51 -0
  8. package/dist/artifacts/paged-read.d.ts.map +1 -0
  9. package/dist/artifacts/paged-read.js +55 -0
  10. package/dist/artifacts/paged-read.js.map +1 -0
  11. package/dist/bun/cli.d.ts +3 -0
  12. package/dist/bun/cli.d.ts.map +1 -0
  13. package/dist/bun/cli.js +11 -0
  14. package/dist/bun/cli.js.map +1 -0
  15. package/dist/bun/register-bedrock.d.ts +2 -0
  16. package/dist/bun/register-bedrock.d.ts.map +1 -0
  17. package/dist/bun/register-bedrock.js +4 -0
  18. package/dist/bun/register-bedrock.js.map +1 -0
  19. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  20. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  21. package/dist/bun/restore-sandbox-env.js +36 -0
  22. package/dist/bun/restore-sandbox-env.js.map +1 -0
  23. package/dist/bundle/.build-manifest.json +3566 -0
  24. package/dist/bundle/chunks/anthropic-messages-RJYU4TCY.js +6 -0
  25. package/dist/bundle/chunks/anthropic.js +75 -0
  26. package/dist/bundle/chunks/azure-openai-responses-LESTCUL7.js +2 -0
  27. package/dist/bundle/chunks/bedrock-converse-stream.js +78 -0
  28. package/dist/bundle/chunks/chunk-3QKHSPQL.js +8 -0
  29. package/dist/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  30. package/dist/bundle/chunks/chunk-4NKZMFSZ.js +1579 -0
  31. package/dist/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  32. package/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  33. package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
  34. package/dist/bundle/chunks/chunk-7ZY7IXZD.js +4 -0
  35. package/dist/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  36. package/dist/bundle/chunks/chunk-DTD7JQ7Y.js +42 -0
  37. package/dist/bundle/chunks/chunk-EWXX34QG.js +2 -0
  38. package/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  39. package/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  40. package/dist/bundle/chunks/chunk-KQEGUM34.js +2 -0
  41. package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  42. package/dist/bundle/chunks/chunk-MDOTREMR.js +11 -0
  43. package/dist/bundle/chunks/chunk-NUHFSC37.js +25 -0
  44. package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  45. package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
  46. package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  47. package/dist/bundle/chunks/chunk-SER2HCLE.js +38 -0
  48. package/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  49. package/dist/bundle/chunks/chunk-V46XUTK3.js +2 -0
  50. package/dist/bundle/chunks/chunk-WGLBM2BP.js +2 -0
  51. package/dist/bundle/chunks/chunk-WW3LMV3F.js +2 -0
  52. package/dist/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  53. package/dist/bundle/chunks/github-copilot.js +2 -0
  54. package/dist/bundle/chunks/google-generative-ai-NZ66X6K7.js +2 -0
  55. package/dist/bundle/chunks/google-vertex-2ZZOFBNQ.js +2 -0
  56. package/dist/bundle/chunks/https-proxy-agent-UDEHOBGS.js +13 -0
  57. package/dist/bundle/chunks/image-resize-worker.js +2 -0
  58. package/dist/bundle/chunks/kimi-coding.js +2 -0
  59. package/dist/bundle/chunks/lib-HGQMNYVT.js +9 -0
  60. package/dist/bundle/chunks/mistral-conversations-B6DZRMEK.js +5 -0
  61. package/dist/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  62. package/dist/bundle/chunks/node-O3RIBJRH.js +16 -0
  63. package/dist/bundle/chunks/node-TWVVAGPO.js +2 -0
  64. package/dist/bundle/chunks/openai-codex-responses-UFH6O5K6.js +10 -0
  65. package/dist/bundle/chunks/openai-codex.js +75 -0
  66. package/dist/bundle/chunks/openai-completions-A55GHA4O.js +7 -0
  67. package/dist/bundle/chunks/openai-responses-TJLXRAXR.js +2 -0
  68. package/dist/bundle/chunks/openrouter-images-G3GT5BVT.js +2 -0
  69. package/dist/bundle/chunks/openrouter.js +75 -0
  70. package/dist/bundle/chunks/pi-messages-SLF355GF.js +8 -0
  71. package/dist/bundle/chunks/radius.js +75 -0
  72. package/dist/bundle/chunks/src-UK77SYZE.js +4 -0
  73. package/dist/bundle/chunks/xai.js +2 -0
  74. package/dist/bundle/cli.js +3 -0
  75. package/dist/bundle/client.js +2 -0
  76. package/dist/bundle/index.js +8 -0
  77. package/dist/bundle/rpc-entry.js +3 -0
  78. package/dist/capabilities/builtin.d.ts +46 -0
  79. package/dist/capabilities/builtin.d.ts.map +1 -0
  80. package/dist/capabilities/builtin.js +68 -0
  81. package/dist/capabilities/builtin.js.map +1 -0
  82. package/dist/cli/args.d.ts +102 -0
  83. package/dist/cli/args.d.ts.map +1 -0
  84. package/dist/cli/args.js +712 -0
  85. package/dist/cli/args.js.map +1 -0
  86. package/dist/cli/auth-check.d.ts +19 -0
  87. package/dist/cli/auth-check.d.ts.map +1 -0
  88. package/dist/cli/auth-check.js +50 -0
  89. package/dist/cli/auth-check.js.map +1 -0
  90. package/dist/cli/auth-command.d.ts +24 -0
  91. package/dist/cli/auth-command.d.ts.map +1 -0
  92. package/dist/cli/auth-command.js +102 -0
  93. package/dist/cli/auth-command.js.map +1 -0
  94. package/dist/cli/config-selector.d.ts +23 -0
  95. package/dist/cli/config-selector.d.ts.map +1 -0
  96. package/dist/cli/config-selector.js +51 -0
  97. package/dist/cli/config-selector.js.map +1 -0
  98. package/dist/cli/credential-print.d.ts +13 -0
  99. package/dist/cli/credential-print.d.ts.map +1 -0
  100. package/dist/cli/credential-print.js +76 -0
  101. package/dist/cli/credential-print.js.map +1 -0
  102. package/dist/cli/experimental/auth.d.ts +16 -0
  103. package/dist/cli/experimental/auth.d.ts.map +1 -0
  104. package/dist/cli/experimental/auth.js +13 -0
  105. package/dist/cli/experimental/auth.js.map +1 -0
  106. package/dist/cli/experimental/cli.d.ts +6 -0
  107. package/dist/cli/experimental/cli.d.ts.map +1 -0
  108. package/dist/cli/experimental/cli.js +5 -0
  109. package/dist/cli/experimental/cli.js.map +1 -0
  110. package/dist/cli/experimental/command-options.d.ts +17 -0
  111. package/dist/cli/experimental/command-options.d.ts.map +1 -0
  112. package/dist/cli/experimental/command-options.js +35 -0
  113. package/dist/cli/experimental/command-options.js.map +1 -0
  114. package/dist/cli/experimental/command.d.ts +63 -0
  115. package/dist/cli/experimental/command.d.ts.map +1 -0
  116. package/dist/cli/experimental/command.js +130 -0
  117. package/dist/cli/experimental/command.js.map +1 -0
  118. package/dist/cli/experimental/commands/client.d.ts +13 -0
  119. package/dist/cli/experimental/commands/client.d.ts.map +1 -0
  120. package/dist/cli/experimental/commands/client.js +25 -0
  121. package/dist/cli/experimental/commands/client.js.map +1 -0
  122. package/dist/cli/experimental/commands/pi.d.ts +15 -0
  123. package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
  124. package/dist/cli/experimental/commands/pi.js +26 -0
  125. package/dist/cli/experimental/commands/pi.js.map +1 -0
  126. package/dist/cli/experimental/commands/server.d.ts +13 -0
  127. package/dist/cli/experimental/commands/server.d.ts.map +1 -0
  128. package/dist/cli/experimental/commands/server.js +25 -0
  129. package/dist/cli/experimental/commands/server.js.map +1 -0
  130. package/dist/cli/experimental/transport-address.d.ts +10 -0
  131. package/dist/cli/experimental/transport-address.d.ts.map +1 -0
  132. package/dist/cli/experimental/transport-address.js +38 -0
  133. package/dist/cli/experimental/transport-address.js.map +1 -0
  134. package/dist/cli/file-processor.d.ts +15 -0
  135. package/dist/cli/file-processor.d.ts.map +1 -0
  136. package/dist/cli/file-processor.js +71 -0
  137. package/dist/cli/file-processor.js.map +1 -0
  138. package/dist/cli/initial-message.d.ts +18 -0
  139. package/dist/cli/initial-message.d.ts.map +1 -0
  140. package/dist/cli/initial-message.js +22 -0
  141. package/dist/cli/initial-message.js.map +1 -0
  142. package/dist/cli/list-models.d.ts +9 -0
  143. package/dist/cli/list-models.d.ts.map +1 -0
  144. package/dist/cli/list-models.js +98 -0
  145. package/dist/cli/list-models.js.map +1 -0
  146. package/dist/cli/plugin-command.d.ts +50 -0
  147. package/dist/cli/plugin-command.d.ts.map +1 -0
  148. package/dist/cli/plugin-command.js +85 -0
  149. package/dist/cli/plugin-command.js.map +1 -0
  150. package/dist/cli/plugin-manager-controller.d.ts +59 -0
  151. package/dist/cli/plugin-manager-controller.d.ts.map +1 -0
  152. package/dist/cli/plugin-manager-controller.js +183 -0
  153. package/dist/cli/plugin-manager-controller.js.map +1 -0
  154. package/dist/cli/plugin-selection-controller.d.ts +57 -0
  155. package/dist/cli/plugin-selection-controller.d.ts.map +1 -0
  156. package/dist/cli/plugin-selection-controller.js +159 -0
  157. package/dist/cli/plugin-selection-controller.js.map +1 -0
  158. package/dist/cli/serve.d.ts +39 -0
  159. package/dist/cli/serve.d.ts.map +1 -0
  160. package/dist/cli/serve.js +124 -0
  161. package/dist/cli/serve.js.map +1 -0
  162. package/dist/cli/session-picker.d.ts +30 -0
  163. package/dist/cli/session-picker.d.ts.map +1 -0
  164. package/dist/cli/session-picker.js +62 -0
  165. package/dist/cli/session-picker.js.map +1 -0
  166. package/dist/cli/startup-ui.d.ts +20 -0
  167. package/dist/cli/startup-ui.d.ts.map +1 -0
  168. package/dist/cli/startup-ui.js +185 -0
  169. package/dist/cli/startup-ui.js.map +1 -0
  170. package/dist/cli/trace-view.d.ts +86 -0
  171. package/dist/cli/trace-view.d.ts.map +1 -0
  172. package/dist/cli/trace-view.js +263 -0
  173. package/dist/cli/trace-view.js.map +1 -0
  174. package/dist/cli.d.ts +3 -0
  175. package/dist/cli.d.ts.map +1 -0
  176. package/dist/cli.js +19 -0
  177. package/dist/cli.js.map +1 -0
  178. package/dist/client/index.d.ts +3 -0
  179. package/dist/client/index.d.ts.map +1 -0
  180. package/dist/client/index.js +3 -0
  181. package/dist/client/index.js.map +1 -0
  182. package/dist/client/remote-session.d.ts +53 -0
  183. package/dist/client/remote-session.d.ts.map +1 -0
  184. package/dist/client/remote-session.js +340 -0
  185. package/dist/client/remote-session.js.map +1 -0
  186. package/dist/client/transcript.d.ts +12 -0
  187. package/dist/client/transcript.d.ts.map +1 -0
  188. package/dist/client/transcript.js +98 -0
  189. package/dist/client/transcript.js.map +1 -0
  190. package/dist/config.d.ts +95 -0
  191. package/dist/config.d.ts.map +1 -0
  192. package/dist/config.js +459 -0
  193. package/dist/config.js.map +1 -0
  194. package/dist/core/agent-capability-contract.d.ts +322 -0
  195. package/dist/core/agent-capability-contract.d.ts.map +1 -0
  196. package/dist/core/agent-capability-contract.js +1154 -0
  197. package/dist/core/agent-capability-contract.js.map +1 -0
  198. package/dist/core/agent-session-bash.d.ts +51 -0
  199. package/dist/core/agent-session-bash.d.ts.map +1 -0
  200. package/dist/core/agent-session-bash.js +138 -0
  201. package/dist/core/agent-session-bash.js.map +1 -0
  202. package/dist/core/agent-session-compaction.d.ts +188 -0
  203. package/dist/core/agent-session-compaction.d.ts.map +1 -0
  204. package/dist/core/agent-session-compaction.js +1071 -0
  205. package/dist/core/agent-session-compaction.js.map +1 -0
  206. package/dist/core/agent-session-context.d.ts +43 -0
  207. package/dist/core/agent-session-context.d.ts.map +1 -0
  208. package/dist/core/agent-session-context.js +170 -0
  209. package/dist/core/agent-session-context.js.map +1 -0
  210. package/dist/core/agent-session-extensions.d.ts +30 -0
  211. package/dist/core/agent-session-extensions.d.ts.map +1 -0
  212. package/dist/core/agent-session-extensions.js +74 -0
  213. package/dist/core/agent-session-extensions.js.map +1 -0
  214. package/dist/core/agent-session-internal.d.ts +290 -0
  215. package/dist/core/agent-session-internal.d.ts.map +1 -0
  216. package/dist/core/agent-session-internal.js +40 -0
  217. package/dist/core/agent-session-internal.js.map +1 -0
  218. package/dist/core/agent-session-lifecycle.d.ts +242 -0
  219. package/dist/core/agent-session-lifecycle.d.ts.map +1 -0
  220. package/dist/core/agent-session-lifecycle.js +699 -0
  221. package/dist/core/agent-session-lifecycle.js.map +1 -0
  222. package/dist/core/agent-session-loop-runner.d.ts +52 -0
  223. package/dist/core/agent-session-loop-runner.d.ts.map +1 -0
  224. package/dist/core/agent-session-loop-runner.js +168 -0
  225. package/dist/core/agent-session-loop-runner.js.map +1 -0
  226. package/dist/core/agent-session-loop.d.ts +39 -0
  227. package/dist/core/agent-session-loop.d.ts.map +1 -0
  228. package/dist/core/agent-session-loop.js +155 -0
  229. package/dist/core/agent-session-loop.js.map +1 -0
  230. package/dist/core/agent-session-model.d.ts +49 -0
  231. package/dist/core/agent-session-model.d.ts.map +1 -0
  232. package/dist/core/agent-session-model.js +155 -0
  233. package/dist/core/agent-session-model.js.map +1 -0
  234. package/dist/core/agent-session-paths.d.ts +3 -0
  235. package/dist/core/agent-session-paths.d.ts.map +1 -0
  236. package/dist/core/agent-session-paths.js +14 -0
  237. package/dist/core/agent-session-paths.js.map +1 -0
  238. package/dist/core/agent-session-projection.d.ts +53 -0
  239. package/dist/core/agent-session-projection.d.ts.map +1 -0
  240. package/dist/core/agent-session-projection.js +195 -0
  241. package/dist/core/agent-session-projection.js.map +1 -0
  242. package/dist/core/agent-session-retry.d.ts +28 -0
  243. package/dist/core/agent-session-retry.d.ts.map +1 -0
  244. package/dist/core/agent-session-retry.js +141 -0
  245. package/dist/core/agent-session-retry.js.map +1 -0
  246. package/dist/core/agent-session-runtime.d.ts +181 -0
  247. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  248. package/dist/core/agent-session-runtime.js +297 -0
  249. package/dist/core/agent-session-runtime.js.map +1 -0
  250. package/dist/core/agent-session-services.d.ts +281 -0
  251. package/dist/core/agent-session-services.d.ts.map +1 -0
  252. package/dist/core/agent-session-services.js +680 -0
  253. package/dist/core/agent-session-services.js.map +1 -0
  254. package/dist/core/agent-session-store.d.ts +47 -0
  255. package/dist/core/agent-session-store.d.ts.map +1 -0
  256. package/dist/core/agent-session-store.js +155 -0
  257. package/dist/core/agent-session-store.js.map +1 -0
  258. package/dist/core/agent-session-tools.d.ts +36 -0
  259. package/dist/core/agent-session-tools.d.ts.map +1 -0
  260. package/dist/core/agent-session-tools.js +305 -0
  261. package/dist/core/agent-session-tools.js.map +1 -0
  262. package/dist/core/agent-session.d.ts +1156 -0
  263. package/dist/core/agent-session.d.ts.map +1 -0
  264. package/dist/core/agent-session.js +2550 -0
  265. package/dist/core/agent-session.js.map +1 -0
  266. package/dist/core/auth-guidance.d.ts +5 -0
  267. package/dist/core/auth-guidance.d.ts.map +1 -0
  268. package/dist/core/auth-guidance.js +21 -0
  269. package/dist/core/auth-guidance.js.map +1 -0
  270. package/dist/core/auth-storage.d.ts +72 -0
  271. package/dist/core/auth-storage.d.ts.map +1 -0
  272. package/dist/core/auth-storage.js +426 -0
  273. package/dist/core/auth-storage.js.map +1 -0
  274. package/dist/core/bash-executor.d.ts +32 -0
  275. package/dist/core/bash-executor.d.ts.map +1 -0
  276. package/dist/core/bash-executor.js +111 -0
  277. package/dist/core/bash-executor.js.map +1 -0
  278. package/dist/core/cache-stats.d.ts +49 -0
  279. package/dist/core/cache-stats.d.ts.map +1 -0
  280. package/dist/core/cache-stats.js +101 -0
  281. package/dist/core/cache-stats.js.map +1 -0
  282. package/dist/core/compaction/branch-summarization.d.ts +88 -0
  283. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  284. package/dist/core/compaction/branch-summarization.js +220 -0
  285. package/dist/core/compaction/branch-summarization.js.map +1 -0
  286. package/dist/core/compaction/compaction.d.ts +178 -0
  287. package/dist/core/compaction/compaction.d.ts.map +1 -0
  288. package/dist/core/compaction/compaction.js +608 -0
  289. package/dist/core/compaction/compaction.js.map +1 -0
  290. package/dist/core/compaction/index.d.ts +7 -0
  291. package/dist/core/compaction/index.d.ts.map +1 -0
  292. package/dist/core/compaction/index.js +7 -0
  293. package/dist/core/compaction/index.js.map +1 -0
  294. package/dist/core/compaction/utils.d.ts +49 -0
  295. package/dist/core/compaction/utils.d.ts.map +1 -0
  296. package/dist/core/compaction/utils.js +170 -0
  297. package/dist/core/compaction/utils.js.map +1 -0
  298. package/dist/core/defaults.d.ts +4 -0
  299. package/dist/core/defaults.d.ts.map +1 -0
  300. package/dist/core/defaults.js +11 -0
  301. package/dist/core/defaults.js.map +1 -0
  302. package/dist/core/diagnostics.d.ts +15 -0
  303. package/dist/core/diagnostics.d.ts.map +1 -0
  304. package/dist/core/diagnostics.js +2 -0
  305. package/dist/core/diagnostics.js.map +1 -0
  306. package/dist/core/embedded-sdk.d.ts +96 -0
  307. package/dist/core/embedded-sdk.d.ts.map +1 -0
  308. package/dist/core/embedded-sdk.js +395 -0
  309. package/dist/core/embedded-sdk.js.map +1 -0
  310. package/dist/core/event-bus.d.ts +9 -0
  311. package/dist/core/event-bus.d.ts.map +1 -0
  312. package/dist/core/event-bus.js +25 -0
  313. package/dist/core/event-bus.js.map +1 -0
  314. package/dist/core/exec.d.ts +29 -0
  315. package/dist/core/exec.d.ts.map +1 -0
  316. package/dist/core/exec.js +75 -0
  317. package/dist/core/exec.js.map +1 -0
  318. package/dist/core/experimental.d.ts +2 -0
  319. package/dist/core/experimental.d.ts.map +1 -0
  320. package/dist/core/experimental.js +6 -0
  321. package/dist/core/experimental.js.map +1 -0
  322. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  323. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  324. package/dist/core/export-html/ansi-to-html.js +249 -0
  325. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  326. package/dist/core/export-html/index.d.ts +37 -0
  327. package/dist/core/export-html/index.d.ts.map +1 -0
  328. package/dist/core/export-html/index.js +226 -0
  329. package/dist/core/export-html/index.js.map +1 -0
  330. package/dist/core/export-html/template.css +1066 -0
  331. package/dist/core/export-html/template.html +55 -0
  332. package/dist/core/export-html/template.js +1864 -0
  333. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  334. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  335. package/dist/core/export-html/tool-renderer.js +108 -0
  336. package/dist/core/export-html/tool-renderer.js.map +1 -0
  337. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  338. package/dist/core/export-html/vendor/marked.min.js +78 -0
  339. package/dist/core/extensions/agent-composition.d.ts +67 -0
  340. package/dist/core/extensions/agent-composition.d.ts.map +1 -0
  341. package/dist/core/extensions/agent-composition.js +785 -0
  342. package/dist/core/extensions/agent-composition.js.map +1 -0
  343. package/dist/core/extensions/bootstrap-agent-loop.d.ts +203 -0
  344. package/dist/core/extensions/bootstrap-agent-loop.d.ts.map +1 -0
  345. package/dist/core/extensions/bootstrap-agent-loop.js +565 -0
  346. package/dist/core/extensions/bootstrap-agent-loop.js.map +1 -0
  347. package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts +7 -0
  348. package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts.map +1 -0
  349. package/dist/core/extensions/bootstrap-branch-summary-policy.js +28 -0
  350. package/dist/core/extensions/bootstrap-branch-summary-policy.js.map +1 -0
  351. package/dist/core/extensions/bootstrap-compaction-policy.d.ts +7 -0
  352. package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +1 -0
  353. package/dist/core/extensions/bootstrap-compaction-policy.js +81 -0
  354. package/dist/core/extensions/bootstrap-compaction-policy.js.map +1 -0
  355. package/dist/core/extensions/bootstrap-lifecycle.d.ts +26 -0
  356. package/dist/core/extensions/bootstrap-lifecycle.d.ts.map +1 -0
  357. package/dist/core/extensions/bootstrap-lifecycle.js +181 -0
  358. package/dist/core/extensions/bootstrap-lifecycle.js.map +1 -0
  359. package/dist/core/extensions/bootstrap-overflow-policy.d.ts +7 -0
  360. package/dist/core/extensions/bootstrap-overflow-policy.d.ts.map +1 -0
  361. package/dist/core/extensions/bootstrap-overflow-policy.js +29 -0
  362. package/dist/core/extensions/bootstrap-overflow-policy.js.map +1 -0
  363. package/dist/core/extensions/bootstrap-retry-policy.d.ts +7 -0
  364. package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +1 -0
  365. package/dist/core/extensions/bootstrap-retry-policy.js +28 -0
  366. package/dist/core/extensions/bootstrap-retry-policy.js.map +1 -0
  367. package/dist/core/extensions/bootstrap-skills.d.ts +16 -0
  368. package/dist/core/extensions/bootstrap-skills.d.ts.map +1 -0
  369. package/dist/core/extensions/bootstrap-skills.js +119 -0
  370. package/dist/core/extensions/bootstrap-skills.js.map +1 -0
  371. package/dist/core/extensions/bootstrap-tools.d.ts +20 -0
  372. package/dist/core/extensions/bootstrap-tools.d.ts.map +1 -0
  373. package/dist/core/extensions/bootstrap-tools.js +35 -0
  374. package/dist/core/extensions/bootstrap-tools.js.map +1 -0
  375. package/dist/core/extensions/capability-exports.d.ts +5 -0
  376. package/dist/core/extensions/capability-exports.d.ts.map +1 -0
  377. package/dist/core/extensions/capability-exports.js +4 -0
  378. package/dist/core/extensions/capability-exports.js.map +1 -0
  379. package/dist/core/extensions/capability-plugin.d.ts +69 -0
  380. package/dist/core/extensions/capability-plugin.d.ts.map +1 -0
  381. package/dist/core/extensions/capability-plugin.js +485 -0
  382. package/dist/core/extensions/capability-plugin.js.map +1 -0
  383. package/dist/core/extensions/capability-runtime-events.d.ts +22 -0
  384. package/dist/core/extensions/capability-runtime-events.d.ts.map +1 -0
  385. package/dist/core/extensions/capability-runtime-events.js +381 -0
  386. package/dist/core/extensions/capability-runtime-events.js.map +1 -0
  387. package/dist/core/extensions/capability-runtime-guards.d.ts +93 -0
  388. package/dist/core/extensions/capability-runtime-guards.d.ts.map +1 -0
  389. package/dist/core/extensions/capability-runtime-guards.js +800 -0
  390. package/dist/core/extensions/capability-runtime-guards.js.map +1 -0
  391. package/dist/core/extensions/capability-runtime-inspect.d.ts +12 -0
  392. package/dist/core/extensions/capability-runtime-inspect.d.ts.map +1 -0
  393. package/dist/core/extensions/capability-runtime-inspect.js +106 -0
  394. package/dist/core/extensions/capability-runtime-inspect.js.map +1 -0
  395. package/dist/core/extensions/capability-runtime-manifest.d.ts +19 -0
  396. package/dist/core/extensions/capability-runtime-manifest.d.ts.map +1 -0
  397. package/dist/core/extensions/capability-runtime-manifest.js +218 -0
  398. package/dist/core/extensions/capability-runtime-manifest.js.map +1 -0
  399. package/dist/core/extensions/capability-runtime-operation.d.ts +26 -0
  400. package/dist/core/extensions/capability-runtime-operation.d.ts.map +1 -0
  401. package/dist/core/extensions/capability-runtime-operation.js +88 -0
  402. package/dist/core/extensions/capability-runtime-operation.js.map +1 -0
  403. package/dist/core/extensions/capability-runtime-snapshot.d.ts +11 -0
  404. package/dist/core/extensions/capability-runtime-snapshot.d.ts.map +1 -0
  405. package/dist/core/extensions/capability-runtime-snapshot.js +81 -0
  406. package/dist/core/extensions/capability-runtime-snapshot.js.map +1 -0
  407. package/dist/core/extensions/capability-runtime-store.d.ts +34 -0
  408. package/dist/core/extensions/capability-runtime-store.d.ts.map +1 -0
  409. package/dist/core/extensions/capability-runtime-store.js +153 -0
  410. package/dist/core/extensions/capability-runtime-store.js.map +1 -0
  411. package/dist/core/extensions/capability-runtime-tool.d.ts +10 -0
  412. package/dist/core/extensions/capability-runtime-tool.d.ts.map +1 -0
  413. package/dist/core/extensions/capability-runtime-tool.js +10 -0
  414. package/dist/core/extensions/capability-runtime-tool.js.map +1 -0
  415. package/dist/core/extensions/capability-runtime-types.d.ts +303 -0
  416. package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -0
  417. package/dist/core/extensions/capability-runtime-types.js +2 -0
  418. package/dist/core/extensions/capability-runtime-types.js.map +1 -0
  419. package/dist/core/extensions/capability-runtime-validation.d.ts +35 -0
  420. package/dist/core/extensions/capability-runtime-validation.d.ts.map +1 -0
  421. package/dist/core/extensions/capability-runtime-validation.js +380 -0
  422. package/dist/core/extensions/capability-runtime-validation.js.map +1 -0
  423. package/dist/core/extensions/capability-runtime.d.ts +7 -0
  424. package/dist/core/extensions/capability-runtime.d.ts.map +1 -0
  425. package/dist/core/extensions/capability-runtime.js +2170 -0
  426. package/dist/core/extensions/capability-runtime.js.map +1 -0
  427. package/dist/core/extensions/compaction-memory-failure-mode.d.ts +43 -0
  428. package/dist/core/extensions/compaction-memory-failure-mode.d.ts.map +1 -0
  429. package/dist/core/extensions/compaction-memory-failure-mode.js +31 -0
  430. package/dist/core/extensions/compaction-memory-failure-mode.js.map +1 -0
  431. package/dist/core/extensions/context-strategy-binding.d.ts +12 -0
  432. package/dist/core/extensions/context-strategy-binding.d.ts.map +1 -0
  433. package/dist/core/extensions/context-strategy-binding.js +54 -0
  434. package/dist/core/extensions/context-strategy-binding.js.map +1 -0
  435. package/dist/core/extensions/index.d.ts +19 -0
  436. package/dist/core/extensions/index.d.ts.map +1 -0
  437. package/dist/core/extensions/index.js +18 -0
  438. package/dist/core/extensions/index.js.map +1 -0
  439. package/dist/core/extensions/lifecycle-catalog.d.ts +584 -0
  440. package/dist/core/extensions/lifecycle-catalog.d.ts.map +1 -0
  441. package/dist/core/extensions/lifecycle-catalog.js +1903 -0
  442. package/dist/core/extensions/lifecycle-catalog.js.map +1 -0
  443. package/dist/core/extensions/lifecycle-delivery-queue.d.ts +48 -0
  444. package/dist/core/extensions/lifecycle-delivery-queue.d.ts.map +1 -0
  445. package/dist/core/extensions/lifecycle-delivery-queue.js +164 -0
  446. package/dist/core/extensions/lifecycle-delivery-queue.js.map +1 -0
  447. package/dist/core/extensions/microcompact.d.ts +71 -0
  448. package/dist/core/extensions/microcompact.d.ts.map +1 -0
  449. package/dist/core/extensions/microcompact.js +123 -0
  450. package/dist/core/extensions/microcompact.js.map +1 -0
  451. package/dist/core/extensions/public-api.d.ts +10 -0
  452. package/dist/core/extensions/public-api.d.ts.map +1 -0
  453. package/dist/core/extensions/public-api.js +9 -0
  454. package/dist/core/extensions/public-api.js.map +1 -0
  455. package/dist/core/facade/coding-agent-facade.d.ts +338 -0
  456. package/dist/core/facade/coding-agent-facade.d.ts.map +1 -0
  457. package/dist/core/facade/coding-agent-facade.js +115 -0
  458. package/dist/core/facade/coding-agent-facade.js.map +1 -0
  459. package/dist/core/facade/coding-agent-runtime-facade.d.ts +115 -0
  460. package/dist/core/facade/coding-agent-runtime-facade.d.ts.map +1 -0
  461. package/dist/core/facade/coding-agent-runtime-facade.js +63 -0
  462. package/dist/core/facade/coding-agent-runtime-facade.js.map +1 -0
  463. package/dist/core/facade/index.d.ts +6 -0
  464. package/dist/core/facade/index.d.ts.map +1 -0
  465. package/dist/core/facade/index.js +3 -0
  466. package/dist/core/facade/index.js.map +1 -0
  467. package/dist/core/footer-data-provider.d.ts +57 -0
  468. package/dist/core/footer-data-provider.d.ts.map +1 -0
  469. package/dist/core/footer-data-provider.js +323 -0
  470. package/dist/core/footer-data-provider.js.map +1 -0
  471. package/dist/core/http-dispatcher.d.ts +22 -0
  472. package/dist/core/http-dispatcher.d.ts.map +1 -0
  473. package/dist/core/http-dispatcher.js +98 -0
  474. package/dist/core/http-dispatcher.js.map +1 -0
  475. package/dist/core/index.d.ts +19 -0
  476. package/dist/core/index.d.ts.map +1 -0
  477. package/dist/core/index.js +13 -0
  478. package/dist/core/index.js.map +1 -0
  479. package/dist/core/input-source.d.ts +9 -0
  480. package/dist/core/input-source.d.ts.map +1 -0
  481. package/dist/core/input-source.js +2 -0
  482. package/dist/core/input-source.js.map +1 -0
  483. package/dist/core/keybindings.d.ts +442 -0
  484. package/dist/core/keybindings.d.ts.map +1 -0
  485. package/dist/core/keybindings.js +329 -0
  486. package/dist/core/keybindings.js.map +1 -0
  487. package/dist/core/logger.d.ts +107 -0
  488. package/dist/core/logger.d.ts.map +1 -0
  489. package/dist/core/logger.js +246 -0
  490. package/dist/core/logger.js.map +1 -0
  491. package/dist/core/messages.d.ts +85 -0
  492. package/dist/core/messages.d.ts.map +1 -0
  493. package/dist/core/messages.js +146 -0
  494. package/dist/core/messages.js.map +1 -0
  495. package/dist/core/model-config.d.ts +586 -0
  496. package/dist/core/model-config.d.ts.map +1 -0
  497. package/dist/core/model-config.js +258 -0
  498. package/dist/core/model-config.js.map +1 -0
  499. package/dist/core/model-registry.d.ts +49 -0
  500. package/dist/core/model-registry.d.ts.map +1 -0
  501. package/dist/core/model-registry.js +115 -0
  502. package/dist/core/model-registry.js.map +1 -0
  503. package/dist/core/model-resolver.d.ts +124 -0
  504. package/dist/core/model-resolver.d.ts.map +1 -0
  505. package/dist/core/model-resolver.js +590 -0
  506. package/dist/core/model-resolver.js.map +1 -0
  507. package/dist/core/model-runtime.d.ts +100 -0
  508. package/dist/core/model-runtime.d.ts.map +1 -0
  509. package/dist/core/model-runtime.js +598 -0
  510. package/dist/core/model-runtime.js.map +1 -0
  511. package/dist/core/models-store.d.ts +22 -0
  512. package/dist/core/models-store.d.ts.map +1 -0
  513. package/dist/core/models-store.js +115 -0
  514. package/dist/core/models-store.js.map +1 -0
  515. package/dist/core/output-guard.d.ts +7 -0
  516. package/dist/core/output-guard.d.ts.map +1 -0
  517. package/dist/core/output-guard.js +90 -0
  518. package/dist/core/output-guard.js.map +1 -0
  519. package/dist/core/package-install-host.d.ts +23 -0
  520. package/dist/core/package-install-host.d.ts.map +1 -0
  521. package/dist/core/package-install-host.js +202 -0
  522. package/dist/core/package-install-host.js.map +1 -0
  523. package/dist/core/package-manager.d.ts +93 -0
  524. package/dist/core/package-manager.d.ts.map +1 -0
  525. package/dist/core/package-manager.js +947 -0
  526. package/dist/core/package-manager.js.map +1 -0
  527. package/dist/core/package-process-runner.d.ts +4 -0
  528. package/dist/core/package-process-runner.d.ts.map +1 -0
  529. package/dist/core/package-process-runner.js +47 -0
  530. package/dist/core/package-process-runner.js.map +1 -0
  531. package/dist/core/package-resource-collection.d.ts +16 -0
  532. package/dist/core/package-resource-collection.d.ts.map +1 -0
  533. package/dist/core/package-resource-collection.js +300 -0
  534. package/dist/core/package-resource-collection.js.map +1 -0
  535. package/dist/core/package-resource-discovery.d.ts +33 -0
  536. package/dist/core/package-resource-discovery.d.ts.map +1 -0
  537. package/dist/core/package-resource-discovery.js +449 -0
  538. package/dist/core/package-resource-discovery.js.map +1 -0
  539. package/dist/core/package-source.d.ts +157 -0
  540. package/dist/core/package-source.d.ts.map +1 -0
  541. package/dist/core/package-source.js +179 -0
  542. package/dist/core/package-source.js.map +1 -0
  543. package/dist/core/pi-manifest.d.ts +7 -0
  544. package/dist/core/pi-manifest.d.ts.map +1 -0
  545. package/dist/core/pi-manifest.js +26 -0
  546. package/dist/core/pi-manifest.js.map +1 -0
  547. package/dist/core/prompt-templates.d.ts +54 -0
  548. package/dist/core/prompt-templates.d.ts.map +1 -0
  549. package/dist/core/prompt-templates.js +236 -0
  550. package/dist/core/prompt-templates.js.map +1 -0
  551. package/dist/core/provider-composer.d.ts +58 -0
  552. package/dist/core/provider-composer.d.ts.map +1 -0
  553. package/dist/core/provider-composer.js +403 -0
  554. package/dist/core/provider-composer.js.map +1 -0
  555. package/dist/core/radius.d.ts +2 -0
  556. package/dist/core/radius.d.ts.map +1 -0
  557. package/dist/core/radius.js +2 -0
  558. package/dist/core/radius.js.map +1 -0
  559. package/dist/core/remote-catalog-provider.d.ts +5 -0
  560. package/dist/core/remote-catalog-provider.d.ts.map +1 -0
  561. package/dist/core/remote-catalog-provider.js +121 -0
  562. package/dist/core/remote-catalog-provider.js.map +1 -0
  563. package/dist/core/resolve-config-value.d.ts +30 -0
  564. package/dist/core/resolve-config-value.d.ts.map +1 -0
  565. package/dist/core/resolve-config-value.js +247 -0
  566. package/dist/core/resolve-config-value.js.map +1 -0
  567. package/dist/core/resource-loader.d.ts +211 -0
  568. package/dist/core/resource-loader.d.ts.map +1 -0
  569. package/dist/core/resource-loader.js +687 -0
  570. package/dist/core/resource-loader.js.map +1 -0
  571. package/dist/core/runtime-credentials.d.ts +15 -0
  572. package/dist/core/runtime-credentials.d.ts.map +1 -0
  573. package/dist/core/runtime-credentials.js +39 -0
  574. package/dist/core/runtime-credentials.js.map +1 -0
  575. package/dist/core/sdk.d.ts +395 -0
  576. package/dist/core/sdk.d.ts.map +1 -0
  577. package/dist/core/sdk.js +1112 -0
  578. package/dist/core/sdk.js.map +1 -0
  579. package/dist/core/session-cwd.d.ts +19 -0
  580. package/dist/core/session-cwd.d.ts.map +1 -0
  581. package/dist/core/session-cwd.js +38 -0
  582. package/dist/core/session-cwd.js.map +1 -0
  583. package/dist/core/session-export.d.ts +7 -0
  584. package/dist/core/session-export.d.ts.map +1 -0
  585. package/dist/core/session-export.js +48 -0
  586. package/dist/core/session-export.js.map +1 -0
  587. package/dist/core/session-manager.d.ts +463 -0
  588. package/dist/core/session-manager.d.ts.map +1 -0
  589. package/dist/core/session-manager.js +1583 -0
  590. package/dist/core/session-manager.js.map +1 -0
  591. package/dist/core/session-start.d.ts +12 -0
  592. package/dist/core/session-start.d.ts.map +1 -0
  593. package/dist/core/session-start.js +2 -0
  594. package/dist/core/session-start.js.map +1 -0
  595. package/dist/core/session-storage.d.ts +130 -0
  596. package/dist/core/session-storage.d.ts.map +1 -0
  597. package/dist/core/session-storage.js +386 -0
  598. package/dist/core/session-storage.js.map +1 -0
  599. package/dist/core/settings-diagnostics.d.ts +9 -0
  600. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  601. package/dist/core/settings-diagnostics.js +21 -0
  602. package/dist/core/settings-diagnostics.js.map +1 -0
  603. package/dist/core/settings-manager.d.ts +352 -0
  604. package/dist/core/settings-manager.d.ts.map +1 -0
  605. package/dist/core/settings-manager.js +987 -0
  606. package/dist/core/settings-manager.js.map +1 -0
  607. package/dist/core/skills.d.ts +60 -0
  608. package/dist/core/skills.d.ts.map +1 -0
  609. package/dist/core/skills.js +382 -0
  610. package/dist/core/skills.js.map +1 -0
  611. package/dist/core/slash-commands.d.ts +15 -0
  612. package/dist/core/slash-commands.d.ts.map +1 -0
  613. package/dist/core/slash-commands.js +33 -0
  614. package/dist/core/slash-commands.js.map +1 -0
  615. package/dist/core/source-info.d.ts +18 -0
  616. package/dist/core/source-info.d.ts.map +1 -0
  617. package/dist/core/source-info.js +19 -0
  618. package/dist/core/source-info.js.map +1 -0
  619. package/dist/core/system-prompt.d.ts +8 -0
  620. package/dist/core/system-prompt.d.ts.map +1 -0
  621. package/dist/core/system-prompt.js +137 -0
  622. package/dist/core/system-prompt.js.map +1 -0
  623. package/dist/core/timings.d.ts +11 -0
  624. package/dist/core/timings.d.ts.map +1 -0
  625. package/dist/core/timings.js +46 -0
  626. package/dist/core/timings.js.map +1 -0
  627. package/dist/core/tools/bash.d.ts +87 -0
  628. package/dist/core/tools/bash.d.ts.map +1 -0
  629. package/dist/core/tools/bash.js +409 -0
  630. package/dist/core/tools/bash.js.map +1 -0
  631. package/dist/core/tools/edit-diff.d.ts +110 -0
  632. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  633. package/dist/core/tools/edit-diff.js +425 -0
  634. package/dist/core/tools/edit-diff.js.map +1 -0
  635. package/dist/core/tools/edit.d.ts +55 -0
  636. package/dist/core/tools/edit.d.ts.map +1 -0
  637. package/dist/core/tools/edit.js +305 -0
  638. package/dist/core/tools/edit.js.map +1 -0
  639. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  640. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  641. package/dist/core/tools/file-mutation-queue.js +52 -0
  642. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  643. package/dist/core/tools/find.d.ts +42 -0
  644. package/dist/core/tools/find.d.ts.map +1 -0
  645. package/dist/core/tools/find.js +303 -0
  646. package/dist/core/tools/find.js.map +1 -0
  647. package/dist/core/tools/grep.d.ts +41 -0
  648. package/dist/core/tools/grep.d.ts.map +1 -0
  649. package/dist/core/tools/grep.js +309 -0
  650. package/dist/core/tools/grep.js.map +1 -0
  651. package/dist/core/tools/index.d.ts +44 -0
  652. package/dist/core/tools/index.d.ts.map +1 -0
  653. package/dist/core/tools/index.js +129 -0
  654. package/dist/core/tools/index.js.map +1 -0
  655. package/dist/core/tools/ls.d.ts +41 -0
  656. package/dist/core/tools/ls.d.ts.map +1 -0
  657. package/dist/core/tools/ls.js +173 -0
  658. package/dist/core/tools/ls.js.map +1 -0
  659. package/dist/core/tools/output-accumulator.d.ts +52 -0
  660. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  661. package/dist/core/tools/output-accumulator.js +184 -0
  662. package/dist/core/tools/output-accumulator.js.map +1 -0
  663. package/dist/core/tools/path-utils.d.ts +10 -0
  664. package/dist/core/tools/path-utils.d.ts.map +1 -0
  665. package/dist/core/tools/path-utils.js +99 -0
  666. package/dist/core/tools/path-utils.js.map +1 -0
  667. package/dist/core/tools/powershell.d.ts +16 -0
  668. package/dist/core/tools/powershell.d.ts.map +1 -0
  669. package/dist/core/tools/powershell.js +39 -0
  670. package/dist/core/tools/powershell.js.map +1 -0
  671. package/dist/core/tools/read.d.ts +39 -0
  672. package/dist/core/tools/read.d.ts.map +1 -0
  673. package/dist/core/tools/read.js +282 -0
  674. package/dist/core/tools/read.js.map +1 -0
  675. package/dist/core/tools/render-utils.d.ts +24 -0
  676. package/dist/core/tools/render-utils.d.ts.map +1 -0
  677. package/dist/core/tools/render-utils.js +65 -0
  678. package/dist/core/tools/render-utils.js.map +1 -0
  679. package/dist/core/tools/tool-definition-wrapper.d.ts +15 -0
  680. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  681. package/dist/core/tools/tool-definition-wrapper.js +36 -0
  682. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  683. package/dist/core/tools/tool-definition.d.ts +123 -0
  684. package/dist/core/tools/tool-definition.d.ts.map +1 -0
  685. package/dist/core/tools/tool-definition.js +20 -0
  686. package/dist/core/tools/tool-definition.js.map +1 -0
  687. package/dist/core/tools/tool-search.d.ts +30 -0
  688. package/dist/core/tools/tool-search.d.ts.map +1 -0
  689. package/dist/core/tools/tool-search.js +99 -0
  690. package/dist/core/tools/tool-search.js.map +1 -0
  691. package/dist/core/tools/truncate.d.ts +70 -0
  692. package/dist/core/tools/truncate.d.ts.map +1 -0
  693. package/dist/core/tools/truncate.js +215 -0
  694. package/dist/core/tools/truncate.js.map +1 -0
  695. package/dist/core/tools/write.d.ts +30 -0
  696. package/dist/core/tools/write.d.ts.map +1 -0
  697. package/dist/core/tools/write.js +202 -0
  698. package/dist/core/tools/write.js.map +1 -0
  699. package/dist/core/trace-retention.d.ts +19 -0
  700. package/dist/core/trace-retention.d.ts.map +1 -0
  701. package/dist/core/trace-retention.js +91 -0
  702. package/dist/core/trace-retention.js.map +1 -0
  703. package/dist/core/usage-totals.d.ts +21 -0
  704. package/dist/core/usage-totals.d.ts.map +1 -0
  705. package/dist/core/usage-totals.js +53 -0
  706. package/dist/core/usage-totals.js.map +1 -0
  707. package/dist/durable/durable-service.d.ts +136 -0
  708. package/dist/durable/durable-service.d.ts.map +1 -0
  709. package/dist/durable/durable-service.js +710 -0
  710. package/dist/durable/durable-service.js.map +1 -0
  711. package/dist/e2e/stdio-launcher.d.ts +25 -0
  712. package/dist/e2e/stdio-launcher.d.ts.map +1 -0
  713. package/dist/e2e/stdio-launcher.js +244 -0
  714. package/dist/e2e/stdio-launcher.js.map +1 -0
  715. package/dist/host/agent-retry-scheduler.d.ts +65 -0
  716. package/dist/host/agent-retry-scheduler.d.ts.map +1 -0
  717. package/dist/host/agent-retry-scheduler.js +52 -0
  718. package/dist/host/agent-retry-scheduler.js.map +1 -0
  719. package/dist/host/auto-compaction.d.ts +56 -0
  720. package/dist/host/auto-compaction.d.ts.map +1 -0
  721. package/dist/host/auto-compaction.js +62 -0
  722. package/dist/host/auto-compaction.js.map +1 -0
  723. package/dist/host/branch-reload.d.ts +56 -0
  724. package/dist/host/branch-reload.d.ts.map +1 -0
  725. package/dist/host/branch-reload.js +39 -0
  726. package/dist/host/branch-reload.js.map +1 -0
  727. package/dist/host/channel-adapter.d.ts +25 -0
  728. package/dist/host/channel-adapter.d.ts.map +1 -0
  729. package/dist/host/channel-adapter.js +45 -0
  730. package/dist/host/channel-adapter.js.map +1 -0
  731. package/dist/host/checkpoint-commit.d.ts +74 -0
  732. package/dist/host/checkpoint-commit.d.ts.map +1 -0
  733. package/dist/host/checkpoint-commit.js +76 -0
  734. package/dist/host/checkpoint-commit.js.map +1 -0
  735. package/dist/host/manual-compaction.d.ts +43 -0
  736. package/dist/host/manual-compaction.d.ts.map +1 -0
  737. package/dist/host/manual-compaction.js +63 -0
  738. package/dist/host/manual-compaction.js.map +1 -0
  739. package/dist/host/output-projection.d.ts +61 -0
  740. package/dist/host/output-projection.d.ts.map +1 -0
  741. package/dist/host/output-projection.js +74 -0
  742. package/dist/host/output-projection.js.map +1 -0
  743. package/dist/host/output-reducer.d.ts +43 -0
  744. package/dist/host/output-reducer.d.ts.map +1 -0
  745. package/dist/host/output-reducer.js +77 -0
  746. package/dist/host/output-reducer.js.map +1 -0
  747. package/dist/host/output-serializer.d.ts +31 -0
  748. package/dist/host/output-serializer.d.ts.map +1 -0
  749. package/dist/host/output-serializer.js +120 -0
  750. package/dist/host/output-serializer.js.map +1 -0
  751. package/dist/host/overflow-recovery.d.ts +55 -0
  752. package/dist/host/overflow-recovery.d.ts.map +1 -0
  753. package/dist/host/overflow-recovery.js +89 -0
  754. package/dist/host/overflow-recovery.js.map +1 -0
  755. package/dist/host/retry-common.d.ts +29 -0
  756. package/dist/host/retry-common.d.ts.map +1 -0
  757. package/dist/host/retry-common.js +12 -0
  758. package/dist/host/retry-common.js.map +1 -0
  759. package/dist/host/session-event-translation.d.ts +26 -0
  760. package/dist/host/session-event-translation.d.ts.map +1 -0
  761. package/dist/host/session-event-translation.js +61 -0
  762. package/dist/host/session-event-translation.js.map +1 -0
  763. package/dist/host/summary-retry.d.ts +54 -0
  764. package/dist/host/summary-retry.d.ts.map +1 -0
  765. package/dist/host/summary-retry.js +66 -0
  766. package/dist/host/summary-retry.js.map +1 -0
  767. package/dist/index.d.ts +105 -0
  768. package/dist/index.d.ts.map +1 -0
  769. package/dist/index.js +176 -0
  770. package/dist/index.js.map +1 -0
  771. package/dist/main.d.ts +36 -0
  772. package/dist/main.d.ts.map +1 -0
  773. package/dist/main.js +1630 -0
  774. package/dist/main.js.map +1 -0
  775. package/dist/migration/migration-tool.d.ts +56 -0
  776. package/dist/migration/migration-tool.d.ts.map +1 -0
  777. package/dist/migration/migration-tool.js +72 -0
  778. package/dist/migration/migration-tool.js.map +1 -0
  779. package/dist/migrations.d.ts +33 -0
  780. package/dist/migrations.d.ts.map +1 -0
  781. package/dist/migrations.js +272 -0
  782. package/dist/migrations.js.map +1 -0
  783. package/dist/modes/index.d.ts +10 -0
  784. package/dist/modes/index.d.ts.map +1 -0
  785. package/dist/modes/index.js +8 -0
  786. package/dist/modes/index.js.map +1 -0
  787. package/dist/modes/interactive/assets/clankolas.png +0 -0
  788. package/dist/modes/interactive/components/armin.d.ts +34 -0
  789. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  790. package/dist/modes/interactive/components/armin.js +336 -0
  791. package/dist/modes/interactive/components/armin.js.map +1 -0
  792. package/dist/modes/interactive/components/assistant-message.d.ts +25 -0
  793. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  794. package/dist/modes/interactive/components/assistant-message.js +151 -0
  795. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  796. package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  797. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  798. package/dist/modes/interactive/components/bash-execution.js +176 -0
  799. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  800. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  801. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  802. package/dist/modes/interactive/components/bordered-loader.js +56 -0
  803. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  804. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  805. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  806. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  807. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  808. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  809. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  810. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  811. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  812. package/dist/modes/interactive/components/config-selector.d.ts +113 -0
  813. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  814. package/dist/modes/interactive/components/config-selector.js +857 -0
  815. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  816. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  817. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  818. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  819. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  820. package/dist/modes/interactive/components/custom-editor.d.ts +19 -0
  821. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  822. package/dist/modes/interactive/components/custom-editor.js +71 -0
  823. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  824. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  825. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  826. package/dist/modes/interactive/components/custom-entry.js +52 -0
  827. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  828. package/dist/modes/interactive/components/custom-message.d.ts +22 -0
  829. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  830. package/dist/modes/interactive/components/custom-message.js +87 -0
  831. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  832. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  833. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  834. package/dist/modes/interactive/components/daxnuts.js +141 -0
  835. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  836. package/dist/modes/interactive/components/dialog-editor.d.ts +21 -0
  837. package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -0
  838. package/dist/modes/interactive/components/dialog-editor.js +98 -0
  839. package/dist/modes/interactive/components/dialog-editor.js.map +1 -0
  840. package/dist/modes/interactive/components/dialog-input.d.ts +23 -0
  841. package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -0
  842. package/dist/modes/interactive/components/dialog-input.js +61 -0
  843. package/dist/modes/interactive/components/dialog-input.js.map +1 -0
  844. package/dist/modes/interactive/components/dialog-selector.d.ts +26 -0
  845. package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -0
  846. package/dist/modes/interactive/components/dialog-selector.js +83 -0
  847. package/dist/modes/interactive/components/dialog-selector.js.map +1 -0
  848. package/dist/modes/interactive/components/diff.d.ts +12 -0
  849. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  850. package/dist/modes/interactive/components/diff.js +133 -0
  851. package/dist/modes/interactive/components/diff.js.map +1 -0
  852. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  853. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  854. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  855. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  856. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  857. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  858. package/dist/modes/interactive/components/first-time-setup.js +103 -0
  859. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  860. package/dist/modes/interactive/components/footer.d.ts +33 -0
  861. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  862. package/dist/modes/interactive/components/footer.js +248 -0
  863. package/dist/modes/interactive/components/footer.js.map +1 -0
  864. package/dist/modes/interactive/components/index.d.ts +34 -0
  865. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  866. package/dist/modes/interactive/components/index.js +35 -0
  867. package/dist/modes/interactive/components/index.js.map +1 -0
  868. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  869. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  870. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  871. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  872. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  873. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  874. package/dist/modes/interactive/components/login-dialog.js +188 -0
  875. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  876. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  877. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  878. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  879. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  880. package/dist/modes/interactive/components/mermaid.d.ts +11 -0
  881. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  882. package/dist/modes/interactive/components/mermaid.js +75 -0
  883. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  884. package/dist/modes/interactive/components/model-selector.d.ts +67 -0
  885. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  886. package/dist/modes/interactive/components/model-selector.js +381 -0
  887. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  888. package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  889. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  890. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  891. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  892. package/dist/modes/interactive/components/plugin-manager-entry.d.ts +62 -0
  893. package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -0
  894. package/dist/modes/interactive/components/plugin-manager-entry.js +294 -0
  895. package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -0
  896. package/dist/modes/interactive/components/plugin-selection-entry.d.ts +82 -0
  897. package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -0
  898. package/dist/modes/interactive/components/plugin-selection-entry.js +228 -0
  899. package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -0
  900. package/dist/modes/interactive/components/render-types.d.ts +26 -0
  901. package/dist/modes/interactive/components/render-types.d.ts.map +1 -0
  902. package/dist/modes/interactive/components/render-types.js +7 -0
  903. package/dist/modes/interactive/components/render-types.js.map +1 -0
  904. package/dist/modes/interactive/components/scoped-models-selector.d.ts +46 -0
  905. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  906. package/dist/modes/interactive/components/scoped-models-selector.js +328 -0
  907. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  908. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  909. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  910. package/dist/modes/interactive/components/session-selector-search.js +158 -0
  911. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  912. package/dist/modes/interactive/components/session-selector.d.ts +143 -0
  913. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  914. package/dist/modes/interactive/components/session-selector.js +1053 -0
  915. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  916. package/dist/modes/interactive/components/settings-selector.d.ts +88 -0
  917. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  918. package/dist/modes/interactive/components/settings-selector.js +677 -0
  919. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  920. package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  921. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  922. package/dist/modes/interactive/components/settings-submenu.js +165 -0
  923. package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  924. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  925. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  926. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  927. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  928. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  929. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  930. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  931. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  932. package/dist/modes/interactive/components/status-indicator.d.ts +34 -0
  933. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  934. package/dist/modes/interactive/components/status-indicator.js +60 -0
  935. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  936. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  937. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  938. package/dist/modes/interactive/components/theme-selector.js +50 -0
  939. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  940. package/dist/modes/interactive/components/thinking-selector.d.ts +23 -0
  941. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  942. package/dist/modes/interactive/components/thinking-selector.js +109 -0
  943. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  944. package/dist/modes/interactive/components/tool-execution.d.ts +59 -0
  945. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  946. package/dist/modes/interactive/components/tool-execution.js +335 -0
  947. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  948. package/dist/modes/interactive/components/tree-list.d.ts +67 -0
  949. package/dist/modes/interactive/components/tree-list.d.ts.map +1 -0
  950. package/dist/modes/interactive/components/tree-list.js +710 -0
  951. package/dist/modes/interactive/components/tree-list.js.map +1 -0
  952. package/dist/modes/interactive/components/tree-render.d.ts +17 -0
  953. package/dist/modes/interactive/components/tree-render.d.ts.map +1 -0
  954. package/dist/modes/interactive/components/tree-render.js +316 -0
  955. package/dist/modes/interactive/components/tree-render.js.map +1 -0
  956. package/dist/modes/interactive/components/tree-selector.d.ts +25 -0
  957. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  958. package/dist/modes/interactive/components/tree-selector.js +235 -0
  959. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  960. package/dist/modes/interactive/components/tree-types.d.ts +35 -0
  961. package/dist/modes/interactive/components/tree-types.d.ts.map +1 -0
  962. package/dist/modes/interactive/components/tree-types.js +2 -0
  963. package/dist/modes/interactive/components/tree-types.js.map +1 -0
  964. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  965. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  966. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  967. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  968. package/dist/modes/interactive/components/user-message.d.ts +16 -0
  969. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  970. package/dist/modes/interactive/components/user-message.js +49 -0
  971. package/dist/modes/interactive/components/user-message.js.map +1 -0
  972. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  973. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  974. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  975. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  976. package/dist/modes/interactive/external-editor.d.ts +12 -0
  977. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  978. package/dist/modes/interactive/external-editor.js +38 -0
  979. package/dist/modes/interactive/external-editor.js.map +1 -0
  980. package/dist/modes/interactive/interactive-auth.d.ts +90 -0
  981. package/dist/modes/interactive/interactive-auth.d.ts.map +1 -0
  982. package/dist/modes/interactive/interactive-auth.js +492 -0
  983. package/dist/modes/interactive/interactive-auth.js.map +1 -0
  984. package/dist/modes/interactive/interactive-commands.d.ts +68 -0
  985. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -0
  986. package/dist/modes/interactive/interactive-commands.js +157 -0
  987. package/dist/modes/interactive/interactive-commands.js.map +1 -0
  988. package/dist/modes/interactive/interactive-dialog-ui.d.ts +73 -0
  989. package/dist/modes/interactive/interactive-dialog-ui.d.ts.map +1 -0
  990. package/dist/modes/interactive/interactive-dialog-ui.js +189 -0
  991. package/dist/modes/interactive/interactive-dialog-ui.js.map +1 -0
  992. package/dist/modes/interactive/interactive-format.d.ts +65 -0
  993. package/dist/modes/interactive/interactive-format.d.ts.map +1 -0
  994. package/dist/modes/interactive/interactive-format.js +268 -0
  995. package/dist/modes/interactive/interactive-format.js.map +1 -0
  996. package/dist/modes/interactive/interactive-helpers.d.ts +25 -0
  997. package/dist/modes/interactive/interactive-helpers.d.ts.map +1 -0
  998. package/dist/modes/interactive/interactive-helpers.js +73 -0
  999. package/dist/modes/interactive/interactive-helpers.js.map +1 -0
  1000. package/dist/modes/interactive/interactive-mode.d.ts +640 -0
  1001. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  1002. package/dist/modes/interactive/interactive-mode.js +4107 -0
  1003. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  1004. package/dist/modes/interactive/interactive-selectors.d.ts +95 -0
  1005. package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -0
  1006. package/dist/modes/interactive/interactive-selectors.js +356 -0
  1007. package/dist/modes/interactive/interactive-selectors.js.map +1 -0
  1008. package/dist/modes/interactive/model-catalog-refresh.d.ts +11 -0
  1009. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  1010. package/dist/modes/interactive/model-catalog-refresh.js +35 -0
  1011. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
  1012. package/dist/modes/interactive/model-search.d.ts +12 -0
  1013. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  1014. package/dist/modes/interactive/model-search.js +15 -0
  1015. package/dist/modes/interactive/model-search.js.map +1 -0
  1016. package/dist/modes/interactive/theme/dark.json +90 -0
  1017. package/dist/modes/interactive/theme/light.json +89 -0
  1018. package/dist/modes/interactive/theme/theme-controller.d.ts +40 -0
  1019. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  1020. package/dist/modes/interactive/theme/theme-controller.js +126 -0
  1021. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  1022. package/dist/modes/interactive/theme/theme-schema.json +352 -0
  1023. package/dist/modes/interactive/theme/theme.d.ts +122 -0
  1024. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  1025. package/dist/modes/interactive/theme/theme.js +1093 -0
  1026. package/dist/modes/interactive/theme/theme.js.map +1 -0
  1027. package/dist/modes/json-event.d.ts +34 -0
  1028. package/dist/modes/json-event.d.ts.map +1 -0
  1029. package/dist/modes/json-event.js +29 -0
  1030. package/dist/modes/json-event.js.map +1 -0
  1031. package/dist/modes/print-mode.d.ts +32 -0
  1032. package/dist/modes/print-mode.d.ts.map +1 -0
  1033. package/dist/modes/print-mode.js +205 -0
  1034. package/dist/modes/print-mode.js.map +1 -0
  1035. package/dist/modes/rpc/jsonl.d.ts +17 -0
  1036. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  1037. package/dist/modes/rpc/jsonl.js +49 -0
  1038. package/dist/modes/rpc/jsonl.js.map +1 -0
  1039. package/dist/modes/rpc/rpc-client.d.ts +254 -0
  1040. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  1041. package/dist/modes/rpc/rpc-client.js +496 -0
  1042. package/dist/modes/rpc/rpc-client.js.map +1 -0
  1043. package/dist/modes/rpc/rpc-mode.d.ts +53 -0
  1044. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  1045. package/dist/modes/rpc/rpc-mode.js +540 -0
  1046. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  1047. package/dist/modes/rpc/rpc-types.d.ts +486 -0
  1048. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1049. package/dist/modes/rpc/rpc-types.js +8 -0
  1050. package/dist/modes/rpc/rpc-types.js.map +1 -0
  1051. package/dist/package-manager-cli.d.ts +18 -0
  1052. package/dist/package-manager-cli.d.ts.map +1 -0
  1053. package/dist/package-manager-cli.js +944 -0
  1054. package/dist/package-manager-cli.js.map +1 -0
  1055. package/dist/plugins/ecosystem/active-bindings.d.ts +92 -0
  1056. package/dist/plugins/ecosystem/active-bindings.d.ts.map +1 -0
  1057. package/dist/plugins/ecosystem/active-bindings.js +198 -0
  1058. package/dist/plugins/ecosystem/active-bindings.js.map +1 -0
  1059. package/dist/plugins/ecosystem/bootstrap-factory-manifest.d.ts +32 -0
  1060. package/dist/plugins/ecosystem/bootstrap-factory-manifest.d.ts.map +1 -0
  1061. package/dist/plugins/ecosystem/bootstrap-factory-manifest.js +32 -0
  1062. package/dist/plugins/ecosystem/bootstrap-factory-manifest.js.map +1 -0
  1063. package/dist/plugins/ecosystem/catalog.d.ts +38 -0
  1064. package/dist/plugins/ecosystem/catalog.d.ts.map +1 -0
  1065. package/dist/plugins/ecosystem/catalog.js +90 -0
  1066. package/dist/plugins/ecosystem/catalog.js.map +1 -0
  1067. package/dist/plugins/ecosystem/cli.d.ts +102 -0
  1068. package/dist/plugins/ecosystem/cli.d.ts.map +1 -0
  1069. package/dist/plugins/ecosystem/cli.js +970 -0
  1070. package/dist/plugins/ecosystem/cli.js.map +1 -0
  1071. package/dist/plugins/ecosystem/default-active-bindings.d.ts +33 -0
  1072. package/dist/plugins/ecosystem/default-active-bindings.d.ts.map +1 -0
  1073. package/dist/plugins/ecosystem/default-active-bindings.js +105 -0
  1074. package/dist/plugins/ecosystem/default-active-bindings.js.map +1 -0
  1075. package/dist/plugins/ecosystem/default-plugin-market.d.ts +68 -0
  1076. package/dist/plugins/ecosystem/default-plugin-market.d.ts.map +1 -0
  1077. package/dist/plugins/ecosystem/default-plugin-market.js +146 -0
  1078. package/dist/plugins/ecosystem/default-plugin-market.js.map +1 -0
  1079. package/dist/plugins/ecosystem/distribution.d.ts +113 -0
  1080. package/dist/plugins/ecosystem/distribution.d.ts.map +1 -0
  1081. package/dist/plugins/ecosystem/distribution.js +371 -0
  1082. package/dist/plugins/ecosystem/distribution.js.map +1 -0
  1083. package/dist/plugins/ecosystem/index.d.ts +56 -0
  1084. package/dist/plugins/ecosystem/index.d.ts.map +1 -0
  1085. package/dist/plugins/ecosystem/index.js +31 -0
  1086. package/dist/plugins/ecosystem/index.js.map +1 -0
  1087. package/dist/plugins/ecosystem/installer.d.ts +130 -0
  1088. package/dist/plugins/ecosystem/installer.d.ts.map +1 -0
  1089. package/dist/plugins/ecosystem/installer.js +316 -0
  1090. package/dist/plugins/ecosystem/installer.js.map +1 -0
  1091. package/dist/plugins/ecosystem/node-disk-registry-source.d.ts +47 -0
  1092. package/dist/plugins/ecosystem/node-disk-registry-source.d.ts.map +1 -0
  1093. package/dist/plugins/ecosystem/node-disk-registry-source.js +208 -0
  1094. package/dist/plugins/ecosystem/node-disk-registry-source.js.map +1 -0
  1095. package/dist/plugins/ecosystem/node-distribution-host.d.ts +55 -0
  1096. package/dist/plugins/ecosystem/node-distribution-host.d.ts.map +1 -0
  1097. package/dist/plugins/ecosystem/node-distribution-host.js +423 -0
  1098. package/dist/plugins/ecosystem/node-distribution-host.js.map +1 -0
  1099. package/dist/plugins/ecosystem/node-local-package-source.d.ts +10 -0
  1100. package/dist/plugins/ecosystem/node-local-package-source.d.ts.map +1 -0
  1101. package/dist/plugins/ecosystem/node-local-package-source.js +97 -0
  1102. package/dist/plugins/ecosystem/node-local-package-source.js.map +1 -0
  1103. package/dist/plugins/ecosystem/node-npm-registry-source.d.ts +58 -0
  1104. package/dist/plugins/ecosystem/node-npm-registry-source.d.ts.map +1 -0
  1105. package/dist/plugins/ecosystem/node-npm-registry-source.js +326 -0
  1106. package/dist/plugins/ecosystem/node-npm-registry-source.js.map +1 -0
  1107. package/dist/plugins/ecosystem/node-package-install-host.d.ts +91 -0
  1108. package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -0
  1109. package/dist/plugins/ecosystem/node-package-install-host.js +857 -0
  1110. package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -0
  1111. package/dist/plugins/ecosystem/node-package-install-persistence.d.ts +34 -0
  1112. package/dist/plugins/ecosystem/node-package-install-persistence.d.ts.map +1 -0
  1113. package/dist/plugins/ecosystem/node-package-install-persistence.js +221 -0
  1114. package/dist/plugins/ecosystem/node-package-install-persistence.js.map +1 -0
  1115. package/dist/plugins/ecosystem/node-package-install-stack.d.ts +28 -0
  1116. package/dist/plugins/ecosystem/node-package-install-stack.d.ts.map +1 -0
  1117. package/dist/plugins/ecosystem/node-package-install-stack.js +65 -0
  1118. package/dist/plugins/ecosystem/node-package-install-stack.js.map +1 -0
  1119. package/dist/plugins/ecosystem/node-package-media.d.ts +14 -0
  1120. package/dist/plugins/ecosystem/node-package-media.d.ts.map +1 -0
  1121. package/dist/plugins/ecosystem/node-package-media.js +36 -0
  1122. package/dist/plugins/ecosystem/node-package-media.js.map +1 -0
  1123. package/dist/plugins/ecosystem/node-plugin-acquisition-host.d.ts +83 -0
  1124. package/dist/plugins/ecosystem/node-plugin-acquisition-host.d.ts.map +1 -0
  1125. package/dist/plugins/ecosystem/node-plugin-acquisition-host.js +423 -0
  1126. package/dist/plugins/ecosystem/node-plugin-acquisition-host.js.map +1 -0
  1127. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +48 -0
  1128. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -0
  1129. package/dist/plugins/ecosystem/node-plugin-bootstrap.js +191 -0
  1130. package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -0
  1131. package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts +26 -0
  1132. package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts.map +1 -0
  1133. package/dist/plugins/ecosystem/node-plugin-trust-root.js +120 -0
  1134. package/dist/plugins/ecosystem/node-plugin-trust-root.js.map +1 -0
  1135. package/dist/plugins/ecosystem/node-registry-source.d.ts +35 -0
  1136. package/dist/plugins/ecosystem/node-registry-source.d.ts.map +1 -0
  1137. package/dist/plugins/ecosystem/node-registry-source.js +286 -0
  1138. package/dist/plugins/ecosystem/node-registry-source.js.map +1 -0
  1139. package/dist/plugins/ecosystem/node-release-package-source.d.ts +47 -0
  1140. package/dist/plugins/ecosystem/node-release-package-source.d.ts.map +1 -0
  1141. package/dist/plugins/ecosystem/node-release-package-source.js +336 -0
  1142. package/dist/plugins/ecosystem/node-release-package-source.js.map +1 -0
  1143. package/dist/plugins/ecosystem/node-tar-package.d.ts +11 -0
  1144. package/dist/plugins/ecosystem/node-tar-package.d.ts.map +1 -0
  1145. package/dist/plugins/ecosystem/node-tar-package.js +294 -0
  1146. package/dist/plugins/ecosystem/node-tar-package.js.map +1 -0
  1147. package/dist/plugins/ecosystem/node-tar-writer.d.ts +16 -0
  1148. package/dist/plugins/ecosystem/node-tar-writer.d.ts.map +1 -0
  1149. package/dist/plugins/ecosystem/node-tar-writer.js +134 -0
  1150. package/dist/plugins/ecosystem/node-tar-writer.js.map +1 -0
  1151. package/dist/plugins/ecosystem/node-url-package-source.d.ts +31 -0
  1152. package/dist/plugins/ecosystem/node-url-package-source.d.ts.map +1 -0
  1153. package/dist/plugins/ecosystem/node-url-package-source.js +159 -0
  1154. package/dist/plugins/ecosystem/node-url-package-source.js.map +1 -0
  1155. package/dist/plugins/ecosystem/plugin-acquisition.d.ts +88 -0
  1156. package/dist/plugins/ecosystem/plugin-acquisition.d.ts.map +1 -0
  1157. package/dist/plugins/ecosystem/plugin-acquisition.js +197 -0
  1158. package/dist/plugins/ecosystem/plugin-acquisition.js.map +1 -0
  1159. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +87 -0
  1160. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -0
  1161. package/dist/plugins/ecosystem/plugin-bootstrap.js +134 -0
  1162. package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -0
  1163. package/dist/plugins/ecosystem/registry-cli-adapter.d.ts +8 -0
  1164. package/dist/plugins/ecosystem/registry-cli-adapter.d.ts.map +1 -0
  1165. package/dist/plugins/ecosystem/registry-cli-adapter.js +16 -0
  1166. package/dist/plugins/ecosystem/registry-cli-adapter.js.map +1 -0
  1167. package/dist/plugins/ecosystem/registry.d.ts +121 -0
  1168. package/dist/plugins/ecosystem/registry.d.ts.map +1 -0
  1169. package/dist/plugins/ecosystem/registry.js +324 -0
  1170. package/dist/plugins/ecosystem/registry.js.map +1 -0
  1171. package/dist/plugins/ecosystem/resolver.d.ts +32 -0
  1172. package/dist/plugins/ecosystem/resolver.d.ts.map +1 -0
  1173. package/dist/plugins/ecosystem/resolver.js +325 -0
  1174. package/dist/plugins/ecosystem/resolver.js.map +1 -0
  1175. package/dist/plugins/ecosystem/selection-store.d.ts +66 -0
  1176. package/dist/plugins/ecosystem/selection-store.d.ts.map +1 -0
  1177. package/dist/plugins/ecosystem/selection-store.js +241 -0
  1178. package/dist/plugins/ecosystem/selection-store.js.map +1 -0
  1179. package/dist/plugins/ecosystem/selection.d.ts +54 -0
  1180. package/dist/plugins/ecosystem/selection.d.ts.map +1 -0
  1181. package/dist/plugins/ecosystem/selection.js +116 -0
  1182. package/dist/plugins/ecosystem/selection.js.map +1 -0
  1183. package/dist/plugins/ecosystem/state.d.ts +96 -0
  1184. package/dist/plugins/ecosystem/state.d.ts.map +1 -0
  1185. package/dist/plugins/ecosystem/state.js +346 -0
  1186. package/dist/plugins/ecosystem/state.js.map +1 -0
  1187. package/dist/plugins/ecosystem/types.d.ts +90 -0
  1188. package/dist/plugins/ecosystem/types.d.ts.map +1 -0
  1189. package/dist/plugins/ecosystem/types.js +8 -0
  1190. package/dist/plugins/ecosystem/types.js.map +1 -0
  1191. package/dist/plugins/ecosystem/updates.d.ts +30 -0
  1192. package/dist/plugins/ecosystem/updates.d.ts.map +1 -0
  1193. package/dist/plugins/ecosystem/updates.js +148 -0
  1194. package/dist/plugins/ecosystem/updates.js.map +1 -0
  1195. package/dist/plugins/integrity-adapter.d.ts +58 -0
  1196. package/dist/plugins/integrity-adapter.d.ts.map +1 -0
  1197. package/dist/plugins/integrity-adapter.js +70 -0
  1198. package/dist/plugins/integrity-adapter.js.map +1 -0
  1199. package/dist/plugins/mcp-http.d.ts +78 -0
  1200. package/dist/plugins/mcp-http.d.ts.map +1 -0
  1201. package/dist/plugins/mcp-http.js +176 -0
  1202. package/dist/plugins/mcp-http.js.map +1 -0
  1203. package/dist/plugins/observability-types.d.ts +9 -0
  1204. package/dist/plugins/observability-types.d.ts.map +1 -0
  1205. package/dist/plugins/observability-types.js +9 -0
  1206. package/dist/plugins/observability-types.js.map +1 -0
  1207. package/dist/plugins/plugin-host.d.ts +46 -0
  1208. package/dist/plugins/plugin-host.d.ts.map +1 -0
  1209. package/dist/plugins/plugin-host.js +80 -0
  1210. package/dist/plugins/plugin-host.js.map +1 -0
  1211. package/dist/plugins/plugin-supervisor.d.ts +77 -0
  1212. package/dist/plugins/plugin-supervisor.d.ts.map +1 -0
  1213. package/dist/plugins/plugin-supervisor.js +82 -0
  1214. package/dist/plugins/plugin-supervisor.js.map +1 -0
  1215. package/dist/plugins/subagent-task/runner-entry.d.ts +35 -0
  1216. package/dist/plugins/subagent-task/runner-entry.d.ts.map +1 -0
  1217. package/dist/plugins/subagent-task/runner-entry.js +39 -0
  1218. package/dist/plugins/subagent-task/runner-entry.js.map +1 -0
  1219. package/dist/plugins/subagent-task/session-factory.d.ts +57 -0
  1220. package/dist/plugins/subagent-task/session-factory.d.ts.map +1 -0
  1221. package/dist/plugins/subagent-task/session-factory.js +51 -0
  1222. package/dist/plugins/subagent-task/session-factory.js.map +1 -0
  1223. package/dist/profile/child-facade.d.ts +44 -0
  1224. package/dist/profile/child-facade.d.ts.map +1 -0
  1225. package/dist/profile/child-facade.js +56 -0
  1226. package/dist/profile/child-facade.js.map +1 -0
  1227. package/dist/profile/dependency-wiring.d.ts +48 -0
  1228. package/dist/profile/dependency-wiring.d.ts.map +1 -0
  1229. package/dist/profile/dependency-wiring.js +56 -0
  1230. package/dist/profile/dependency-wiring.js.map +1 -0
  1231. package/dist/profile/domain-recovery.d.ts +60 -0
  1232. package/dist/profile/domain-recovery.d.ts.map +1 -0
  1233. package/dist/profile/domain-recovery.js +94 -0
  1234. package/dist/profile/domain-recovery.js.map +1 -0
  1235. package/dist/profile/first-roles.d.ts +30 -0
  1236. package/dist/profile/first-roles.d.ts.map +1 -0
  1237. package/dist/profile/first-roles.js +74 -0
  1238. package/dist/profile/first-roles.js.map +1 -0
  1239. package/dist/profile/goal-plugin.d.ts +38 -0
  1240. package/dist/profile/goal-plugin.d.ts.map +1 -0
  1241. package/dist/profile/goal-plugin.js +113 -0
  1242. package/dist/profile/goal-plugin.js.map +1 -0
  1243. package/dist/profile/identity.d.ts +58 -0
  1244. package/dist/profile/identity.d.ts.map +1 -0
  1245. package/dist/profile/identity.js +100 -0
  1246. package/dist/profile/identity.js.map +1 -0
  1247. package/dist/profile/lock.d.ts +59 -0
  1248. package/dist/profile/lock.d.ts.map +1 -0
  1249. package/dist/profile/lock.js +59 -0
  1250. package/dist/profile/lock.js.map +1 -0
  1251. package/dist/profile/plan-plugin.d.ts +44 -0
  1252. package/dist/profile/plan-plugin.d.ts.map +1 -0
  1253. package/dist/profile/plan-plugin.js +144 -0
  1254. package/dist/profile/plan-plugin.js.map +1 -0
  1255. package/dist/profile/plugin-profiles.d.ts +56 -0
  1256. package/dist/profile/plugin-profiles.d.ts.map +1 -0
  1257. package/dist/profile/plugin-profiles.js +192 -0
  1258. package/dist/profile/plugin-profiles.js.map +1 -0
  1259. package/dist/profile/policy-manifest.d.ts +53 -0
  1260. package/dist/profile/policy-manifest.d.ts.map +1 -0
  1261. package/dist/profile/policy-manifest.js +52 -0
  1262. package/dist/profile/policy-manifest.js.map +1 -0
  1263. package/dist/profile/profile-assembly.d.ts +74 -0
  1264. package/dist/profile/profile-assembly.d.ts.map +1 -0
  1265. package/dist/profile/profile-assembly.js +90 -0
  1266. package/dist/profile/profile-assembly.js.map +1 -0
  1267. package/dist/profile/profile-migration.d.ts +56 -0
  1268. package/dist/profile/profile-migration.d.ts.map +1 -0
  1269. package/dist/profile/profile-migration.js +60 -0
  1270. package/dist/profile/profile-migration.js.map +1 -0
  1271. package/dist/profile/profile-registry.d.ts +58 -0
  1272. package/dist/profile/profile-registry.d.ts.map +1 -0
  1273. package/dist/profile/profile-registry.js +74 -0
  1274. package/dist/profile/profile-registry.js.map +1 -0
  1275. package/dist/profile/role-assembly.d.ts +47 -0
  1276. package/dist/profile/role-assembly.d.ts.map +1 -0
  1277. package/dist/profile/role-assembly.js +31 -0
  1278. package/dist/profile/role-assembly.js.map +1 -0
  1279. package/dist/profile/role-catalog.d.ts +44 -0
  1280. package/dist/profile/role-catalog.d.ts.map +1 -0
  1281. package/dist/profile/role-catalog.js +130 -0
  1282. package/dist/profile/role-catalog.js.map +1 -0
  1283. package/dist/profile/role-orchestrator.d.ts +123 -0
  1284. package/dist/profile/role-orchestrator.d.ts.map +1 -0
  1285. package/dist/profile/role-orchestrator.js +194 -0
  1286. package/dist/profile/role-orchestrator.js.map +1 -0
  1287. package/dist/profile/role-runner.d.ts +99 -0
  1288. package/dist/profile/role-runner.d.ts.map +1 -0
  1289. package/dist/profile/role-runner.js +78 -0
  1290. package/dist/profile/role-runner.js.map +1 -0
  1291. package/dist/profile/root-facade.d.ts +36 -0
  1292. package/dist/profile/root-facade.d.ts.map +1 -0
  1293. package/dist/profile/root-facade.js +48 -0
  1294. package/dist/profile/root-facade.js.map +1 -0
  1295. package/dist/profile/skill-discovery-wiring.d.ts +58 -0
  1296. package/dist/profile/skill-discovery-wiring.d.ts.map +1 -0
  1297. package/dist/profile/skill-discovery-wiring.js +75 -0
  1298. package/dist/profile/skill-discovery-wiring.js.map +1 -0
  1299. package/dist/profile/state-store.d.ts +62 -0
  1300. package/dist/profile/state-store.d.ts.map +1 -0
  1301. package/dist/profile/state-store.js +140 -0
  1302. package/dist/profile/state-store.js.map +1 -0
  1303. package/dist/profile/todo-plugin.d.ts +37 -0
  1304. package/dist/profile/todo-plugin.d.ts.map +1 -0
  1305. package/dist/profile/todo-plugin.js +132 -0
  1306. package/dist/profile/todo-plugin.js.map +1 -0
  1307. package/dist/profiles/builtin-suites.d.ts +142 -0
  1308. package/dist/profiles/builtin-suites.d.ts.map +1 -0
  1309. package/dist/profiles/builtin-suites.js +395 -0
  1310. package/dist/profiles/builtin-suites.js.map +1 -0
  1311. package/dist/profiles/resolved-agent-profile.d.ts +83 -0
  1312. package/dist/profiles/resolved-agent-profile.d.ts.map +1 -0
  1313. package/dist/profiles/resolved-agent-profile.js +75 -0
  1314. package/dist/profiles/resolved-agent-profile.js.map +1 -0
  1315. package/dist/profiles/suite-lifecycle.d.ts +158 -0
  1316. package/dist/profiles/suite-lifecycle.d.ts.map +1 -0
  1317. package/dist/profiles/suite-lifecycle.js +447 -0
  1318. package/dist/profiles/suite-lifecycle.js.map +1 -0
  1319. package/dist/profiles/suite-loader.d.ts +410 -0
  1320. package/dist/profiles/suite-loader.d.ts.map +1 -0
  1321. package/dist/profiles/suite-loader.js +823 -0
  1322. package/dist/profiles/suite-loader.js.map +1 -0
  1323. package/dist/remote/server-assembly.d.ts +230 -0
  1324. package/dist/remote/server-assembly.d.ts.map +1 -0
  1325. package/dist/remote/server-assembly.js +1189 -0
  1326. package/dist/remote/server-assembly.js.map +1 -0
  1327. package/dist/remote/server-entry.d.ts +112 -0
  1328. package/dist/remote/server-entry.d.ts.map +1 -0
  1329. package/dist/remote/server-entry.js +239 -0
  1330. package/dist/remote/server-entry.js.map +1 -0
  1331. package/dist/remote/session-source.d.ts +101 -0
  1332. package/dist/remote/session-source.d.ts.map +1 -0
  1333. package/dist/remote/session-source.js +173 -0
  1334. package/dist/remote/session-source.js.map +1 -0
  1335. package/dist/rpc-entry.d.ts +3 -0
  1336. package/dist/rpc-entry.d.ts.map +1 -0
  1337. package/dist/rpc-entry.js +11 -0
  1338. package/dist/rpc-entry.js.map +1 -0
  1339. package/dist/server/create-harness.d.ts +26 -0
  1340. package/dist/server/create-harness.d.ts.map +1 -0
  1341. package/dist/server/create-harness.js +106 -0
  1342. package/dist/server/create-harness.js.map +1 -0
  1343. package/dist/share/session-share.d.ts +98 -0
  1344. package/dist/share/session-share.d.ts.map +1 -0
  1345. package/dist/share/session-share.js +89 -0
  1346. package/dist/share/session-share.js.map +1 -0
  1347. package/dist/share/share-viewer.d.ts +43 -0
  1348. package/dist/share/share-viewer.d.ts.map +1 -0
  1349. package/dist/share/share-viewer.js +103 -0
  1350. package/dist/share/share-viewer.js.map +1 -0
  1351. package/dist/testing/index.d.ts +4 -0
  1352. package/dist/testing/index.d.ts.map +1 -0
  1353. package/dist/testing/index.js +6 -0
  1354. package/dist/testing/index.js.map +1 -0
  1355. package/dist/testing/mock-ai-server.d.ts +77 -0
  1356. package/dist/testing/mock-ai-server.d.ts.map +1 -0
  1357. package/dist/testing/mock-ai-server.js +69 -0
  1358. package/dist/testing/mock-ai-server.js.map +1 -0
  1359. package/dist/testing/plugin-testkit.d.ts +148 -0
  1360. package/dist/testing/plugin-testkit.d.ts.map +1 -0
  1361. package/dist/testing/plugin-testkit.js +493 -0
  1362. package/dist/testing/plugin-testkit.js.map +1 -0
  1363. package/dist/testing/runtime-delivery-queue.d.ts +47 -0
  1364. package/dist/testing/runtime-delivery-queue.d.ts.map +1 -0
  1365. package/dist/testing/runtime-delivery-queue.js +158 -0
  1366. package/dist/testing/runtime-delivery-queue.js.map +1 -0
  1367. package/dist/testing/session-plugin-testkit.d.ts +144 -0
  1368. package/dist/testing/session-plugin-testkit.d.ts.map +1 -0
  1369. package/dist/testing/session-plugin-testkit.js +444 -0
  1370. package/dist/testing/session-plugin-testkit.js.map +1 -0
  1371. package/dist/utils/abort.d.ts +5 -0
  1372. package/dist/utils/abort.d.ts.map +1 -0
  1373. package/dist/utils/abort.js +53 -0
  1374. package/dist/utils/abort.js.map +1 -0
  1375. package/dist/utils/agent-forge-user-agent.d.ts +2 -0
  1376. package/dist/utils/agent-forge-user-agent.d.ts.map +1 -0
  1377. package/dist/utils/agent-forge-user-agent.js +5 -0
  1378. package/dist/utils/agent-forge-user-agent.js.map +1 -0
  1379. package/dist/utils/ansi.d.ts +2 -0
  1380. package/dist/utils/ansi.d.ts.map +1 -0
  1381. package/dist/utils/ansi.js +53 -0
  1382. package/dist/utils/ansi.js.map +1 -0
  1383. package/dist/utils/changelog.d.ts +22 -0
  1384. package/dist/utils/changelog.d.ts.map +1 -0
  1385. package/dist/utils/changelog.js +165 -0
  1386. package/dist/utils/changelog.js.map +1 -0
  1387. package/dist/utils/child-process.d.ts +18 -0
  1388. package/dist/utils/child-process.d.ts.map +1 -0
  1389. package/dist/utils/child-process.js +107 -0
  1390. package/dist/utils/child-process.js.map +1 -0
  1391. package/dist/utils/clipboard-image.d.ts +11 -0
  1392. package/dist/utils/clipboard-image.d.ts.map +1 -0
  1393. package/dist/utils/clipboard-image.js +246 -0
  1394. package/dist/utils/clipboard-image.js.map +1 -0
  1395. package/dist/utils/clipboard-native.d.ts +11 -0
  1396. package/dist/utils/clipboard-native.d.ts.map +1 -0
  1397. package/dist/utils/clipboard-native.js +22 -0
  1398. package/dist/utils/clipboard-native.js.map +1 -0
  1399. package/dist/utils/clipboard.d.ts +4 -0
  1400. package/dist/utils/clipboard.d.ts.map +1 -0
  1401. package/dist/utils/clipboard.js +161 -0
  1402. package/dist/utils/clipboard.js.map +1 -0
  1403. package/dist/utils/deprecation.d.ts +4 -0
  1404. package/dist/utils/deprecation.d.ts.map +1 -0
  1405. package/dist/utils/deprecation.js +13 -0
  1406. package/dist/utils/deprecation.js.map +1 -0
  1407. package/dist/utils/exif-orientation.d.ts +5 -0
  1408. package/dist/utils/exif-orientation.d.ts.map +1 -0
  1409. package/dist/utils/exif-orientation.js +158 -0
  1410. package/dist/utils/exif-orientation.js.map +1 -0
  1411. package/dist/utils/frontmatter.d.ts +8 -0
  1412. package/dist/utils/frontmatter.d.ts.map +1 -0
  1413. package/dist/utils/frontmatter.js +27 -0
  1414. package/dist/utils/frontmatter.js.map +1 -0
  1415. package/dist/utils/fs-watch.d.ts +5 -0
  1416. package/dist/utils/fs-watch.d.ts.map +1 -0
  1417. package/dist/utils/fs-watch.js +25 -0
  1418. package/dist/utils/fs-watch.js.map +1 -0
  1419. package/dist/utils/git.d.ts +26 -0
  1420. package/dist/utils/git.d.ts.map +1 -0
  1421. package/dist/utils/git.js +201 -0
  1422. package/dist/utils/git.js.map +1 -0
  1423. package/dist/utils/html.d.ts +7 -0
  1424. package/dist/utils/html.d.ts.map +1 -0
  1425. package/dist/utils/html.js +40 -0
  1426. package/dist/utils/html.js.map +1 -0
  1427. package/dist/utils/image-convert.d.ts +10 -0
  1428. package/dist/utils/image-convert.d.ts.map +1 -0
  1429. package/dist/utils/image-convert.js +45 -0
  1430. package/dist/utils/image-convert.js.map +1 -0
  1431. package/dist/utils/image-process.d.ts +18 -0
  1432. package/dist/utils/image-process.d.ts.map +1 -0
  1433. package/dist/utils/image-process.js +84 -0
  1434. package/dist/utils/image-process.js.map +1 -0
  1435. package/dist/utils/image-resize-core.d.ts +30 -0
  1436. package/dist/utils/image-resize-core.d.ts.map +1 -0
  1437. package/dist/utils/image-resize-core.js +125 -0
  1438. package/dist/utils/image-resize-core.js.map +1 -0
  1439. package/dist/utils/image-resize-worker.d.ts +2 -0
  1440. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  1441. package/dist/utils/image-resize-worker.js +31 -0
  1442. package/dist/utils/image-resize-worker.js.map +1 -0
  1443. package/dist/utils/image-resize.d.ts +16 -0
  1444. package/dist/utils/image-resize.d.ts.map +1 -0
  1445. package/dist/utils/image-resize.js +100 -0
  1446. package/dist/utils/image-resize.js.map +1 -0
  1447. package/dist/utils/json.d.ts +3 -0
  1448. package/dist/utils/json.d.ts.map +1 -0
  1449. package/dist/utils/json.js +8 -0
  1450. package/dist/utils/json.js.map +1 -0
  1451. package/dist/utils/management-http.d.ts +25 -0
  1452. package/dist/utils/management-http.d.ts.map +1 -0
  1453. package/dist/utils/management-http.js +54 -0
  1454. package/dist/utils/management-http.js.map +1 -0
  1455. package/dist/utils/mime.d.ts +3 -0
  1456. package/dist/utils/mime.d.ts.map +1 -0
  1457. package/dist/utils/mime.js +115 -0
  1458. package/dist/utils/mime.js.map +1 -0
  1459. package/dist/utils/open-browser.d.ts +9 -0
  1460. package/dist/utils/open-browser.d.ts.map +1 -0
  1461. package/dist/utils/open-browser.js +22 -0
  1462. package/dist/utils/open-browser.js.map +1 -0
  1463. package/dist/utils/paths.d.ts +34 -0
  1464. package/dist/utils/paths.d.ts.map +1 -0
  1465. package/dist/utils/paths.js +114 -0
  1466. package/dist/utils/paths.js.map +1 -0
  1467. package/dist/utils/photon.d.ts +21 -0
  1468. package/dist/utils/photon.d.ts.map +1 -0
  1469. package/dist/utils/photon.js +124 -0
  1470. package/dist/utils/photon.js.map +1 -0
  1471. package/dist/utils/shell.d.ts +34 -0
  1472. package/dist/utils/shell.d.ts.map +1 -0
  1473. package/dist/utils/shell.js +216 -0
  1474. package/dist/utils/shell.js.map +1 -0
  1475. package/dist/utils/sleep.d.ts +5 -0
  1476. package/dist/utils/sleep.d.ts.map +1 -0
  1477. package/dist/utils/sleep.js +17 -0
  1478. package/dist/utils/sleep.js.map +1 -0
  1479. package/dist/utils/sync-sleep.d.ts +2 -0
  1480. package/dist/utils/sync-sleep.d.ts.map +1 -0
  1481. package/dist/utils/sync-sleep.js +11 -0
  1482. package/dist/utils/sync-sleep.js.map +1 -0
  1483. package/dist/utils/syntax-highlight.d.ts +13 -0
  1484. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  1485. package/dist/utils/syntax-highlight.js +177 -0
  1486. package/dist/utils/syntax-highlight.js.map +1 -0
  1487. package/dist/utils/text.d.ts +8 -0
  1488. package/dist/utils/text.d.ts.map +1 -0
  1489. package/dist/utils/text.js +9 -0
  1490. package/dist/utils/text.js.map +1 -0
  1491. package/dist/utils/tool-result-images.d.ts +19 -0
  1492. package/dist/utils/tool-result-images.d.ts.map +1 -0
  1493. package/dist/utils/tool-result-images.js +45 -0
  1494. package/dist/utils/tool-result-images.js.map +1 -0
  1495. package/dist/utils/tools-manager.d.ts +24 -0
  1496. package/dist/utils/tools-manager.d.ts.map +1 -0
  1497. package/dist/utils/tools-manager.js +437 -0
  1498. package/dist/utils/tools-manager.js.map +1 -0
  1499. package/dist/utils/version-check.d.ts +21 -0
  1500. package/dist/utils/version-check.d.ts.map +1 -0
  1501. package/dist/utils/version-check.js +86 -0
  1502. package/dist/utils/version-check.js.map +1 -0
  1503. package/dist/utils/windows-self-update.d.ts +3 -0
  1504. package/dist/utils/windows-self-update.d.ts.map +1 -0
  1505. package/dist/utils/windows-self-update.js +77 -0
  1506. package/dist/utils/windows-self-update.js.map +1 -0
  1507. package/docs/compaction.md +348 -0
  1508. package/docs/containerization.md +114 -0
  1509. package/docs/development.md +71 -0
  1510. package/docs/docs.json +148 -0
  1511. package/docs/environment-variables.md +96 -0
  1512. package/docs/images/exy.png +0 -0
  1513. package/docs/images/interactive-mode.png +0 -0
  1514. package/docs/images/tree-view.png +0 -0
  1515. package/docs/index.md +76 -0
  1516. package/docs/json.md +98 -0
  1517. package/docs/keybindings.md +245 -0
  1518. package/docs/llama-cpp.md +101 -0
  1519. package/docs/models.md +576 -0
  1520. package/docs/packages.md +205 -0
  1521. package/docs/prompt-templates.md +96 -0
  1522. package/docs/providers.md +317 -0
  1523. package/docs/quickstart.md +167 -0
  1524. package/docs/rpc.md +1487 -0
  1525. package/docs/sdk.md +1146 -0
  1526. package/docs/security.md +24 -0
  1527. package/docs/session-format.md +438 -0
  1528. package/docs/sessions.md +145 -0
  1529. package/docs/settings.md +355 -0
  1530. package/docs/shell-aliases.md +13 -0
  1531. package/docs/skills.md +231 -0
  1532. package/docs/terminal-setup.md +192 -0
  1533. package/docs/termux.md +127 -0
  1534. package/docs/themes.md +320 -0
  1535. package/docs/tmux.md +63 -0
  1536. package/docs/tui.md +478 -0
  1537. package/docs/usage.md +291 -0
  1538. package/docs/windows.md +39 -0
  1539. package/examples/README.md +21 -0
  1540. package/examples/extensions/README.md +163 -0
  1541. package/examples/extensions/bash-spawn-hook/index.ts +37 -0
  1542. package/examples/extensions/bash-spawn-hook/plugin.json +10 -0
  1543. package/examples/extensions/bookmark/index.ts +67 -0
  1544. package/examples/extensions/bookmark/plugin.json +11 -0
  1545. package/examples/extensions/built-in-tool-renderer/index.ts +262 -0
  1546. package/examples/extensions/built-in-tool-renderer/plugin.json +10 -0
  1547. package/examples/extensions/claude-rules/index.ts +119 -0
  1548. package/examples/extensions/claude-rules/plugin.json +8 -0
  1549. package/examples/extensions/cli-bridge/README.md +27 -0
  1550. package/examples/extensions/cli-bridge/index.ts +320 -0
  1551. package/examples/extensions/cli-bridge/plugin.json +10 -0
  1552. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  1553. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  1554. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  1555. package/examples/extensions/dynamic-resources/index.ts +53 -0
  1556. package/examples/extensions/dynamic-resources/plugin.json +8 -0
  1557. package/examples/extensions/dynamic-tools/index.ts +102 -0
  1558. package/examples/extensions/dynamic-tools/plugin.json +14 -0
  1559. package/examples/extensions/event-bus/index.ts +75 -0
  1560. package/examples/extensions/event-bus/plugin.json +13 -0
  1561. package/examples/extensions/file-trigger/index.ts +65 -0
  1562. package/examples/extensions/file-trigger/plugin.json +13 -0
  1563. package/examples/extensions/goal/README.md +16 -0
  1564. package/examples/extensions/goal/index.ts +134 -0
  1565. package/examples/extensions/goal/plugin.json +12 -0
  1566. package/examples/extensions/hello/index.ts +29 -0
  1567. package/examples/extensions/hello/plugin.json +10 -0
  1568. package/examples/extensions/kimi-deferred-tools/index.ts +93 -0
  1569. package/examples/extensions/kimi-deferred-tools/plugin.json +11 -0
  1570. package/examples/extensions/mcp-stdio/README.md +19 -0
  1571. package/examples/extensions/mcp-stdio/index.d.ts +64 -0
  1572. package/examples/extensions/mcp-stdio/index.d.ts.map +1 -0
  1573. package/examples/extensions/mcp-stdio/index.js +292 -0
  1574. package/examples/extensions/mcp-stdio/index.js.map +1 -0
  1575. package/examples/extensions/mcp-stdio/index.ts +381 -0
  1576. package/examples/extensions/mcp-stdio/plugin.json +10 -0
  1577. package/examples/extensions/memory-backend/index.ts +120 -0
  1578. package/examples/extensions/memory-backend/plugin.json +10 -0
  1579. package/examples/extensions/minimal-mode/index.ts +447 -0
  1580. package/examples/extensions/minimal-mode/plugin.json +10 -0
  1581. package/examples/extensions/multi-agent/README.md +7 -0
  1582. package/examples/extensions/multi-agent/index.ts +592 -0
  1583. package/examples/extensions/multi-agent/plugin.json +13 -0
  1584. package/examples/extensions/notify/index.ts +70 -0
  1585. package/examples/extensions/notify/plugin.json +8 -0
  1586. package/examples/extensions/permission-gate/index.ts +55 -0
  1587. package/examples/extensions/permission-gate/plugin.json +11 -0
  1588. package/examples/extensions/pirate/index.ts +75 -0
  1589. package/examples/extensions/pirate/plugin.json +8 -0
  1590. package/examples/extensions/plan/README.md +16 -0
  1591. package/examples/extensions/plan/index.ts +136 -0
  1592. package/examples/extensions/plan/plugin.json +12 -0
  1593. package/examples/extensions/prompt-customizer/index.ts +117 -0
  1594. package/examples/extensions/prompt-customizer/plugin.json +8 -0
  1595. package/examples/extensions/protected-paths/index.ts +44 -0
  1596. package/examples/extensions/protected-paths/plugin.json +11 -0
  1597. package/examples/extensions/provider-attribution/README.md +12 -0
  1598. package/examples/extensions/provider-attribution/index.ts +86 -0
  1599. package/examples/extensions/provider-attribution/plugin.json +10 -0
  1600. package/examples/extensions/send-user-message/index.ts +118 -0
  1601. package/examples/extensions/send-user-message/plugin.json +11 -0
  1602. package/examples/extensions/session-name/index.ts +31 -0
  1603. package/examples/extensions/session-name/plugin.json +11 -0
  1604. package/examples/extensions/session-share/README.md +15 -0
  1605. package/examples/extensions/session-share/index.ts +170 -0
  1606. package/examples/extensions/session-share/plugin.json +15 -0
  1607. package/examples/extensions/structured-output/index.ts +68 -0
  1608. package/examples/extensions/structured-output/plugin.json +10 -0
  1609. package/examples/extensions/subagent/README.md +177 -0
  1610. package/examples/extensions/subagent/agents/planner.md +37 -0
  1611. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  1612. package/examples/extensions/subagent/agents/scout.md +50 -0
  1613. package/examples/extensions/subagent/agents/worker.md +24 -0
  1614. package/examples/extensions/subagent/agents.ts +157 -0
  1615. package/examples/extensions/subagent/index.ts +1057 -0
  1616. package/examples/extensions/subagent/plugin.json +13 -0
  1617. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  1618. package/examples/extensions/subagent/prompts/implement.md +10 -0
  1619. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  1620. package/examples/extensions/suite-manager/README.md +45 -0
  1621. package/examples/extensions/suite-manager/index.ts +182 -0
  1622. package/examples/extensions/suite-manager/plugin.json +13 -0
  1623. package/examples/extensions/timed-confirm/index.ts +93 -0
  1624. package/examples/extensions/timed-confirm/plugin.json +13 -0
  1625. package/examples/extensions/todo-set/README.md +18 -0
  1626. package/examples/extensions/todo-set/index.ts +133 -0
  1627. package/examples/extensions/todo-set/plugin.json +12 -0
  1628. package/examples/extensions/tool-override/index.ts +159 -0
  1629. package/examples/extensions/tool-override/plugin.json +11 -0
  1630. package/examples/extensions/trigger-compact/index.ts +76 -0
  1631. package/examples/extensions/trigger-compact/plugin.json +14 -0
  1632. package/examples/extensions/truncated-tool/index.ts +204 -0
  1633. package/examples/extensions/truncated-tool/plugin.json +10 -0
  1634. package/examples/extensions/with-deps/index.ts +42 -0
  1635. package/examples/extensions/with-deps/package-lock.json +31 -0
  1636. package/examples/extensions/with-deps/package.json +22 -0
  1637. package/examples/extensions/with-deps/plugin.json +10 -0
  1638. package/examples/remote-client.ts +66 -0
  1639. package/examples/rpc-extension-ui.ts +641 -0
  1640. package/examples/sdk/01-minimal.ts +26 -0
  1641. package/examples/sdk/02-custom-model.ts +49 -0
  1642. package/examples/sdk/03-custom-prompt.ts +70 -0
  1643. package/examples/sdk/04-skills.ts +55 -0
  1644. package/examples/sdk/05-tools.ts +48 -0
  1645. package/examples/sdk/07-context-files.ts +42 -0
  1646. package/examples/sdk/08-prompt-templates.ts +51 -0
  1647. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  1648. package/examples/sdk/10-settings.ts +53 -0
  1649. package/examples/sdk/11-sessions.ts +52 -0
  1650. package/examples/sdk/12-full-control.ts +72 -0
  1651. package/examples/sdk/13-session-runtime.ts +71 -0
  1652. package/examples/sdk/14-custom-session-storage.ts +132 -0
  1653. package/examples/sdk/README.md +139 -0
  1654. package/package.json +111 -0
@@ -0,0 +1,30 @@
1
+ import type { CapabilityRefV1, HostFactsV1, PluginManifestV1, PluginSourceVerifierV1, PluginUpdateRecordV1 } from "./types.ts";
2
+ export declare function pluginManifestDigestV1(manifest: PluginManifestV1): string;
3
+ /** Create an immutable staged update; activation is a separate explicit transition. */
4
+ export declare function stagePluginUpdateV1(input: {
5
+ readonly manifest: PluginManifestV1;
6
+ readonly source: string;
7
+ }): PluginUpdateRecordV1;
8
+ export type UpdateVerificationV1 = {
9
+ readonly status: "verified";
10
+ readonly record: PluginUpdateRecordV1;
11
+ } | {
12
+ readonly status: "rejected";
13
+ readonly record: PluginUpdateRecordV1;
14
+ readonly reason: string;
15
+ };
16
+ /** Verify digest and host compatibility without applying any policy or side effect. */
17
+ export declare function verifyPluginUpdateV1(input: {
18
+ readonly record: PluginUpdateRecordV1;
19
+ readonly host: HostFactsV1;
20
+ readonly expectedDigest?: string;
21
+ readonly availableCapabilities?: readonly CapabilityRefV1[];
22
+ readonly verifier?: PluginSourceVerifierV1;
23
+ }): UpdateVerificationV1;
24
+ export declare function activatePluginUpdateV1(record: PluginUpdateRecordV1): PluginUpdateRecordV1;
25
+ /** Preserve the old record and return it as active after a failed update. */
26
+ export declare function rollbackPluginUpdateV1(input: {
27
+ readonly failed: PluginUpdateRecordV1;
28
+ readonly previous: PluginUpdateRecordV1;
29
+ }): PluginUpdateRecordV1;
30
+ //# sourceMappingURL=updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/updates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAcpB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAEzE;AAoCD,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,oBAAoB,CAUvB;AAED,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GACtE;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAC3C,GAAG,oBAAoB,CAsEvB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAGzF;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CACxC,GAAG,oBAAoB,CAMvB","sourcesContent":["import { VERSION } from \"../../config.ts\";\nimport { stableJsonDigest } from \"../../profile/identity.ts\";\nimport { resolvePluginCompatibilityV1 } from \"./resolver.ts\";\nimport type {\n\tCapabilityRefV1,\n\tHostFactsV1,\n\tPluginManifestV1,\n\tPluginSourceVerifierV1,\n\tPluginUpdateRecordV1,\n} from \"./types.ts\";\n\nfunction manifestPayload(manifest: PluginManifestV1): Record<string, unknown> {\n\treturn {\n\t\tid: manifest.id,\n\t\tpluginVersion: manifest.pluginVersion,\n\t\tapiVersion: manifest.apiVersion,\n\t\t...(manifest.capabilityRefs === undefined ? {} : { capabilityRefs: manifest.capabilityRefs }),\n\t\t...(manifest.requires === undefined ? {} : { requires: manifest.requires }),\n\t\t...(manifest.platform === undefined ? {} : { platform: manifest.platform }),\n\t\ttestOnly: manifest.testOnly ?? false,\n\t};\n}\n\nexport function pluginManifestDigestV1(manifest: PluginManifestV1): string {\n\treturn stableJsonDigest(manifestPayload(manifest) as Parameters<typeof stableJsonDigest>[0]);\n}\n\nfunction snapshotManifest(manifest: PluginManifestV1): PluginManifestV1 {\n\tconst capabilityRefs = manifest.capabilityRefs?.map((ref) => Object.freeze({ ...ref }));\n\tconst requires = manifest.requires?.map((requirement) => Object.freeze({ ...requirement }));\n\tconst platform = manifest.platform;\n\tconst runtime = platform?.runtime?.map((constraint) => Object.freeze({ ...constraint }));\n\tconst adapters = platform?.adapters?.map((adapter) =>\n\t\tObject.freeze({\n\t\t\t...adapter,\n\t\t\tos: Object.freeze([...adapter.os]),\n\t\t\t...(adapter.arch === undefined ? {} : { arch: Object.freeze([...adapter.arch]) }),\n\t\t\t...(adapter.hostFeatures === undefined ? {} : { hostFeatures: Object.freeze([...adapter.hostFeatures]) }),\n\t\t}),\n\t);\n\tconst platformSnapshot =\n\t\tplatform === undefined\n\t\t\t? undefined\n\t\t\t: Object.freeze({\n\t\t\t\t\t...platform,\n\t\t\t\t\tos: Object.freeze([...platform.os]),\n\t\t\t\t\t...(platform.arch === undefined ? {} : { arch: Object.freeze([...platform.arch]) }),\n\t\t\t\t\t...(runtime === undefined ? {} : { runtime: Object.freeze(runtime) }),\n\t\t\t\t\t...(platform.hostFeatures === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { hostFeatures: Object.freeze([...platform.hostFeatures]) }),\n\t\t\t\t\t...(adapters === undefined ? {} : { adapters: Object.freeze(adapters) }),\n\t\t\t\t});\n\treturn Object.freeze({\n\t\t...manifest,\n\t\t...(capabilityRefs === undefined ? {} : { capabilityRefs: Object.freeze(capabilityRefs) }),\n\t\t...(requires === undefined ? {} : { requires: Object.freeze(requires) }),\n\t\t...(platformSnapshot === undefined ? {} : { platform: platformSnapshot }),\n\t});\n}\n\n/** Create an immutable staged update; activation is a separate explicit transition. */\nexport function stagePluginUpdateV1(input: {\n\treadonly manifest: PluginManifestV1;\n\treadonly source: string;\n}): PluginUpdateRecordV1 {\n\tif (input.source.trim().length === 0) throw new Error(\"update source must be a non-empty string\");\n\treturn Object.freeze({\n\t\tpluginId: input.manifest.id,\n\t\tpluginVersion: input.manifest.pluginVersion,\n\t\tsource: input.source,\n\t\tmanifest: snapshotManifest(input.manifest),\n\t\tmanifestDigest: pluginManifestDigestV1(input.manifest),\n\t\tstate: \"staged\",\n\t});\n}\n\nexport type UpdateVerificationV1 =\n\t| { readonly status: \"verified\"; readonly record: PluginUpdateRecordV1 }\n\t| { readonly status: \"rejected\"; readonly record: PluginUpdateRecordV1; readonly reason: string };\n\n/** Verify digest and host compatibility without applying any policy or side effect. */\nexport function verifyPluginUpdateV1(input: {\n\treadonly record: PluginUpdateRecordV1;\n\treadonly host: HostFactsV1;\n\treadonly expectedDigest?: string;\n\treadonly availableCapabilities?: readonly CapabilityRefV1[];\n\treadonly verifier?: PluginSourceVerifierV1;\n}): UpdateVerificationV1 {\n\tconst actualDigest = pluginManifestDigestV1(input.record.manifest);\n\tif (input.record.state !== \"staged\") {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: `Update must be staged before verification: ${input.record.state}`,\n\t\t};\n\t}\n\tif (input.record.pluginId !== input.record.manifest.id) {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: \"Update record plugin ID does not match embedded manifest\",\n\t\t};\n\t}\n\tif (input.record.pluginVersion !== input.record.manifest.pluginVersion) {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: \"Update record plugin version does not match embedded manifest\",\n\t\t};\n\t}\n\tif (input.record.manifestDigest !== actualDigest) {\n\t\treturn { status: \"rejected\", record: input.record, reason: \"Staged manifest digest drifted\" };\n\t}\n\tif (input.expectedDigest !== undefined && input.expectedDigest !== actualDigest) {\n\t\treturn { status: \"rejected\", record: input.record, reason: \"Manifest digest does not match expectation\" };\n\t}\n\tconst resolution = resolvePluginCompatibilityV1({\n\t\tmanifest: input.record.manifest,\n\t\thost: input.host,\n\t\trequired: true,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\t// D-073: update verification enforces the declared host version range;\n\t\t// previously this path skipped the check entirely.\n\t\thostVersion: VERSION,\n\t});\n\tif (resolution.status !== \"installed-ready\") {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: `Plugin is not ready on host: ${resolution.status}`,\n\t\t};\n\t}\n\tif (input.verifier !== undefined) {\n\t\ttry {\n\t\t\tconst sourceVerification = input.verifier({\n\t\t\t\tpluginId: input.record.pluginId,\n\t\t\t\tpluginVersion: input.record.pluginVersion,\n\t\t\t\tsource: input.record.source,\n\t\t\t\tmanifestDigest: actualDigest,\n\t\t\t});\n\t\t\tif (sourceVerification.status !== \"accepted\") {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"rejected\",\n\t\t\t\t\trecord: input.record,\n\t\t\t\t\treason: \"Plugin source was rejected by the configured verifier\",\n\t\t\t\t};\n\t\t\t}\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tstatus: \"rejected\",\n\t\t\t\trecord: input.record,\n\t\t\t\treason: \"Plugin source verifier failed\",\n\t\t\t};\n\t\t}\n\t}\n\tconst record = Object.freeze({ ...input.record, state: \"verified\" as const });\n\treturn { status: \"verified\", record };\n}\n\nexport function activatePluginUpdateV1(record: PluginUpdateRecordV1): PluginUpdateRecordV1 {\n\tif (record.state !== \"verified\") throw new Error(`Only a verified update can become active: ${record.pluginId}`);\n\treturn Object.freeze({ ...record, state: \"active\" as const });\n}\n\n/** Preserve the old record and return it as active after a failed update. */\nexport function rollbackPluginUpdateV1(input: {\n\treadonly failed: PluginUpdateRecordV1;\n\treadonly previous: PluginUpdateRecordV1;\n}): PluginUpdateRecordV1 {\n\tif (input.previous.pluginId !== input.failed.pluginId) {\n\t\tthrow new Error(\"Cannot rollback updates for different plugins\");\n\t}\n\tif (input.previous.state !== \"active\") throw new Error(\"Rollback target must be active\");\n\treturn Object.freeze({ ...input.previous, state: \"active\" as const });\n}\n"]}
@@ -0,0 +1,148 @@
1
+ import { VERSION } from "../../config.js";
2
+ import { stableJsonDigest } from "../../profile/identity.js";
3
+ import { resolvePluginCompatibilityV1 } from "./resolver.js";
4
+ function manifestPayload(manifest) {
5
+ return {
6
+ id: manifest.id,
7
+ pluginVersion: manifest.pluginVersion,
8
+ apiVersion: manifest.apiVersion,
9
+ ...(manifest.capabilityRefs === undefined ? {} : { capabilityRefs: manifest.capabilityRefs }),
10
+ ...(manifest.requires === undefined ? {} : { requires: manifest.requires }),
11
+ ...(manifest.platform === undefined ? {} : { platform: manifest.platform }),
12
+ testOnly: manifest.testOnly ?? false,
13
+ };
14
+ }
15
+ export function pluginManifestDigestV1(manifest) {
16
+ return stableJsonDigest(manifestPayload(manifest));
17
+ }
18
+ function snapshotManifest(manifest) {
19
+ const capabilityRefs = manifest.capabilityRefs?.map((ref) => Object.freeze({ ...ref }));
20
+ const requires = manifest.requires?.map((requirement) => Object.freeze({ ...requirement }));
21
+ const platform = manifest.platform;
22
+ const runtime = platform?.runtime?.map((constraint) => Object.freeze({ ...constraint }));
23
+ const adapters = platform?.adapters?.map((adapter) => Object.freeze({
24
+ ...adapter,
25
+ os: Object.freeze([...adapter.os]),
26
+ ...(adapter.arch === undefined ? {} : { arch: Object.freeze([...adapter.arch]) }),
27
+ ...(adapter.hostFeatures === undefined ? {} : { hostFeatures: Object.freeze([...adapter.hostFeatures]) }),
28
+ }));
29
+ const platformSnapshot = platform === undefined
30
+ ? undefined
31
+ : Object.freeze({
32
+ ...platform,
33
+ os: Object.freeze([...platform.os]),
34
+ ...(platform.arch === undefined ? {} : { arch: Object.freeze([...platform.arch]) }),
35
+ ...(runtime === undefined ? {} : { runtime: Object.freeze(runtime) }),
36
+ ...(platform.hostFeatures === undefined
37
+ ? {}
38
+ : { hostFeatures: Object.freeze([...platform.hostFeatures]) }),
39
+ ...(adapters === undefined ? {} : { adapters: Object.freeze(adapters) }),
40
+ });
41
+ return Object.freeze({
42
+ ...manifest,
43
+ ...(capabilityRefs === undefined ? {} : { capabilityRefs: Object.freeze(capabilityRefs) }),
44
+ ...(requires === undefined ? {} : { requires: Object.freeze(requires) }),
45
+ ...(platformSnapshot === undefined ? {} : { platform: platformSnapshot }),
46
+ });
47
+ }
48
+ /** Create an immutable staged update; activation is a separate explicit transition. */
49
+ export function stagePluginUpdateV1(input) {
50
+ if (input.source.trim().length === 0)
51
+ throw new Error("update source must be a non-empty string");
52
+ return Object.freeze({
53
+ pluginId: input.manifest.id,
54
+ pluginVersion: input.manifest.pluginVersion,
55
+ source: input.source,
56
+ manifest: snapshotManifest(input.manifest),
57
+ manifestDigest: pluginManifestDigestV1(input.manifest),
58
+ state: "staged",
59
+ });
60
+ }
61
+ /** Verify digest and host compatibility without applying any policy or side effect. */
62
+ export function verifyPluginUpdateV1(input) {
63
+ const actualDigest = pluginManifestDigestV1(input.record.manifest);
64
+ if (input.record.state !== "staged") {
65
+ return {
66
+ status: "rejected",
67
+ record: input.record,
68
+ reason: `Update must be staged before verification: ${input.record.state}`,
69
+ };
70
+ }
71
+ if (input.record.pluginId !== input.record.manifest.id) {
72
+ return {
73
+ status: "rejected",
74
+ record: input.record,
75
+ reason: "Update record plugin ID does not match embedded manifest",
76
+ };
77
+ }
78
+ if (input.record.pluginVersion !== input.record.manifest.pluginVersion) {
79
+ return {
80
+ status: "rejected",
81
+ record: input.record,
82
+ reason: "Update record plugin version does not match embedded manifest",
83
+ };
84
+ }
85
+ if (input.record.manifestDigest !== actualDigest) {
86
+ return { status: "rejected", record: input.record, reason: "Staged manifest digest drifted" };
87
+ }
88
+ if (input.expectedDigest !== undefined && input.expectedDigest !== actualDigest) {
89
+ return { status: "rejected", record: input.record, reason: "Manifest digest does not match expectation" };
90
+ }
91
+ const resolution = resolvePluginCompatibilityV1({
92
+ manifest: input.record.manifest,
93
+ host: input.host,
94
+ required: true,
95
+ availableCapabilities: input.availableCapabilities,
96
+ // D-073: update verification enforces the declared host version range;
97
+ // previously this path skipped the check entirely.
98
+ hostVersion: VERSION,
99
+ });
100
+ if (resolution.status !== "installed-ready") {
101
+ return {
102
+ status: "rejected",
103
+ record: input.record,
104
+ reason: `Plugin is not ready on host: ${resolution.status}`,
105
+ };
106
+ }
107
+ if (input.verifier !== undefined) {
108
+ try {
109
+ const sourceVerification = input.verifier({
110
+ pluginId: input.record.pluginId,
111
+ pluginVersion: input.record.pluginVersion,
112
+ source: input.record.source,
113
+ manifestDigest: actualDigest,
114
+ });
115
+ if (sourceVerification.status !== "accepted") {
116
+ return {
117
+ status: "rejected",
118
+ record: input.record,
119
+ reason: "Plugin source was rejected by the configured verifier",
120
+ };
121
+ }
122
+ }
123
+ catch {
124
+ return {
125
+ status: "rejected",
126
+ record: input.record,
127
+ reason: "Plugin source verifier failed",
128
+ };
129
+ }
130
+ }
131
+ const record = Object.freeze({ ...input.record, state: "verified" });
132
+ return { status: "verified", record };
133
+ }
134
+ export function activatePluginUpdateV1(record) {
135
+ if (record.state !== "verified")
136
+ throw new Error(`Only a verified update can become active: ${record.pluginId}`);
137
+ return Object.freeze({ ...record, state: "active" });
138
+ }
139
+ /** Preserve the old record and return it as active after a failed update. */
140
+ export function rollbackPluginUpdateV1(input) {
141
+ if (input.previous.pluginId !== input.failed.pluginId) {
142
+ throw new Error("Cannot rollback updates for different plugins");
143
+ }
144
+ if (input.previous.state !== "active")
145
+ throw new Error("Rollback target must be active");
146
+ return Object.freeze({ ...input.previous, state: "active" });
147
+ }
148
+ //# sourceMappingURL=updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/updates.ts"],"names":[],"mappings":"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","sourcesContent":["import { VERSION } from \"../../config.ts\";\nimport { stableJsonDigest } from \"../../profile/identity.ts\";\nimport { resolvePluginCompatibilityV1 } from \"./resolver.ts\";\nimport type {\n\tCapabilityRefV1,\n\tHostFactsV1,\n\tPluginManifestV1,\n\tPluginSourceVerifierV1,\n\tPluginUpdateRecordV1,\n} from \"./types.ts\";\n\nfunction manifestPayload(manifest: PluginManifestV1): Record<string, unknown> {\n\treturn {\n\t\tid: manifest.id,\n\t\tpluginVersion: manifest.pluginVersion,\n\t\tapiVersion: manifest.apiVersion,\n\t\t...(manifest.capabilityRefs === undefined ? {} : { capabilityRefs: manifest.capabilityRefs }),\n\t\t...(manifest.requires === undefined ? {} : { requires: manifest.requires }),\n\t\t...(manifest.platform === undefined ? {} : { platform: manifest.platform }),\n\t\ttestOnly: manifest.testOnly ?? false,\n\t};\n}\n\nexport function pluginManifestDigestV1(manifest: PluginManifestV1): string {\n\treturn stableJsonDigest(manifestPayload(manifest) as Parameters<typeof stableJsonDigest>[0]);\n}\n\nfunction snapshotManifest(manifest: PluginManifestV1): PluginManifestV1 {\n\tconst capabilityRefs = manifest.capabilityRefs?.map((ref) => Object.freeze({ ...ref }));\n\tconst requires = manifest.requires?.map((requirement) => Object.freeze({ ...requirement }));\n\tconst platform = manifest.platform;\n\tconst runtime = platform?.runtime?.map((constraint) => Object.freeze({ ...constraint }));\n\tconst adapters = platform?.adapters?.map((adapter) =>\n\t\tObject.freeze({\n\t\t\t...adapter,\n\t\t\tos: Object.freeze([...adapter.os]),\n\t\t\t...(adapter.arch === undefined ? {} : { arch: Object.freeze([...adapter.arch]) }),\n\t\t\t...(adapter.hostFeatures === undefined ? {} : { hostFeatures: Object.freeze([...adapter.hostFeatures]) }),\n\t\t}),\n\t);\n\tconst platformSnapshot =\n\t\tplatform === undefined\n\t\t\t? undefined\n\t\t\t: Object.freeze({\n\t\t\t\t\t...platform,\n\t\t\t\t\tos: Object.freeze([...platform.os]),\n\t\t\t\t\t...(platform.arch === undefined ? {} : { arch: Object.freeze([...platform.arch]) }),\n\t\t\t\t\t...(runtime === undefined ? {} : { runtime: Object.freeze(runtime) }),\n\t\t\t\t\t...(platform.hostFeatures === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { hostFeatures: Object.freeze([...platform.hostFeatures]) }),\n\t\t\t\t\t...(adapters === undefined ? {} : { adapters: Object.freeze(adapters) }),\n\t\t\t\t});\n\treturn Object.freeze({\n\t\t...manifest,\n\t\t...(capabilityRefs === undefined ? {} : { capabilityRefs: Object.freeze(capabilityRefs) }),\n\t\t...(requires === undefined ? {} : { requires: Object.freeze(requires) }),\n\t\t...(platformSnapshot === undefined ? {} : { platform: platformSnapshot }),\n\t});\n}\n\n/** Create an immutable staged update; activation is a separate explicit transition. */\nexport function stagePluginUpdateV1(input: {\n\treadonly manifest: PluginManifestV1;\n\treadonly source: string;\n}): PluginUpdateRecordV1 {\n\tif (input.source.trim().length === 0) throw new Error(\"update source must be a non-empty string\");\n\treturn Object.freeze({\n\t\tpluginId: input.manifest.id,\n\t\tpluginVersion: input.manifest.pluginVersion,\n\t\tsource: input.source,\n\t\tmanifest: snapshotManifest(input.manifest),\n\t\tmanifestDigest: pluginManifestDigestV1(input.manifest),\n\t\tstate: \"staged\",\n\t});\n}\n\nexport type UpdateVerificationV1 =\n\t| { readonly status: \"verified\"; readonly record: PluginUpdateRecordV1 }\n\t| { readonly status: \"rejected\"; readonly record: PluginUpdateRecordV1; readonly reason: string };\n\n/** Verify digest and host compatibility without applying any policy or side effect. */\nexport function verifyPluginUpdateV1(input: {\n\treadonly record: PluginUpdateRecordV1;\n\treadonly host: HostFactsV1;\n\treadonly expectedDigest?: string;\n\treadonly availableCapabilities?: readonly CapabilityRefV1[];\n\treadonly verifier?: PluginSourceVerifierV1;\n}): UpdateVerificationV1 {\n\tconst actualDigest = pluginManifestDigestV1(input.record.manifest);\n\tif (input.record.state !== \"staged\") {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: `Update must be staged before verification: ${input.record.state}`,\n\t\t};\n\t}\n\tif (input.record.pluginId !== input.record.manifest.id) {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: \"Update record plugin ID does not match embedded manifest\",\n\t\t};\n\t}\n\tif (input.record.pluginVersion !== input.record.manifest.pluginVersion) {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: \"Update record plugin version does not match embedded manifest\",\n\t\t};\n\t}\n\tif (input.record.manifestDigest !== actualDigest) {\n\t\treturn { status: \"rejected\", record: input.record, reason: \"Staged manifest digest drifted\" };\n\t}\n\tif (input.expectedDigest !== undefined && input.expectedDigest !== actualDigest) {\n\t\treturn { status: \"rejected\", record: input.record, reason: \"Manifest digest does not match expectation\" };\n\t}\n\tconst resolution = resolvePluginCompatibilityV1({\n\t\tmanifest: input.record.manifest,\n\t\thost: input.host,\n\t\trequired: true,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\t// D-073: update verification enforces the declared host version range;\n\t\t// previously this path skipped the check entirely.\n\t\thostVersion: VERSION,\n\t});\n\tif (resolution.status !== \"installed-ready\") {\n\t\treturn {\n\t\t\tstatus: \"rejected\",\n\t\t\trecord: input.record,\n\t\t\treason: `Plugin is not ready on host: ${resolution.status}`,\n\t\t};\n\t}\n\tif (input.verifier !== undefined) {\n\t\ttry {\n\t\t\tconst sourceVerification = input.verifier({\n\t\t\t\tpluginId: input.record.pluginId,\n\t\t\t\tpluginVersion: input.record.pluginVersion,\n\t\t\t\tsource: input.record.source,\n\t\t\t\tmanifestDigest: actualDigest,\n\t\t\t});\n\t\t\tif (sourceVerification.status !== \"accepted\") {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"rejected\",\n\t\t\t\t\trecord: input.record,\n\t\t\t\t\treason: \"Plugin source was rejected by the configured verifier\",\n\t\t\t\t};\n\t\t\t}\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tstatus: \"rejected\",\n\t\t\t\trecord: input.record,\n\t\t\t\treason: \"Plugin source verifier failed\",\n\t\t\t};\n\t\t}\n\t}\n\tconst record = Object.freeze({ ...input.record, state: \"verified\" as const });\n\treturn { status: \"verified\", record };\n}\n\nexport function activatePluginUpdateV1(record: PluginUpdateRecordV1): PluginUpdateRecordV1 {\n\tif (record.state !== \"verified\") throw new Error(`Only a verified update can become active: ${record.pluginId}`);\n\treturn Object.freeze({ ...record, state: \"active\" as const });\n}\n\n/** Preserve the old record and return it as active after a failed update. */\nexport function rollbackPluginUpdateV1(input: {\n\treadonly failed: PluginUpdateRecordV1;\n\treadonly previous: PluginUpdateRecordV1;\n}): PluginUpdateRecordV1 {\n\tif (input.previous.pluginId !== input.failed.pluginId) {\n\t\tthrow new Error(\"Cannot rollback updates for different plugins\");\n\t}\n\tif (input.previous.state !== \"active\") throw new Error(\"Rollback target must be active\");\n\treturn Object.freeze({ ...input.previous, state: \"active\" as const });\n}\n"]}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Integrity and compatibility adapter (7.3) — the seam an external
3
+ * publishing or policy flow uses to ACCEPT or REJECT a plugin manifest:
4
+ * integrity (key-order-stable digest over the manifest), version
5
+ * compatibility (a declared acceptable range), and source provenance.
6
+ *
7
+ * The adapter makes NO safety judgment of its own (that is Agent Core
8
+ * policy, excluded here) — it only computes and compares facts so an
9
+ * external flow can reject tampered or incompatible manifests explicitly.
10
+ */
11
+ import type { JsonValue } from "@agent-forge/ai";
12
+ export interface SealedManifestV1 {
13
+ readonly pluginId: string;
14
+ readonly version: string;
15
+ readonly source: string;
16
+ readonly payload: JsonValue;
17
+ readonly digest: string;
18
+ }
19
+ export interface ManifestExpectationV1 {
20
+ /** The digest the external flow expects; a mismatch means tampering. */
21
+ readonly digest?: string;
22
+ /** Semantic-version range bounds, e.g. {min:"1.0.0", max:"2.0.0"}. */
23
+ readonly versionRange?: {
24
+ readonly min?: string;
25
+ readonly max?: string;
26
+ };
27
+ /** The source the flow is willing to accept. */
28
+ readonly sourceEquals?: string;
29
+ }
30
+ export type ManifestVerdictV1 = {
31
+ readonly status: "accepted";
32
+ readonly pluginId: string;
33
+ readonly version: string;
34
+ readonly digest: string;
35
+ } | {
36
+ readonly status: "tampered";
37
+ readonly expectedDigest?: string;
38
+ readonly actualDigest: string;
39
+ } | {
40
+ readonly status: "incompatible";
41
+ readonly reason: string;
42
+ readonly version: string;
43
+ } | {
44
+ readonly status: "source_rejected";
45
+ readonly reason: string;
46
+ readonly source: string;
47
+ };
48
+ export interface IntegrityAdapterV1 {
49
+ seal(input: {
50
+ readonly pluginId: string;
51
+ readonly version: string;
52
+ readonly source: string;
53
+ readonly payload: JsonValue;
54
+ }): SealedManifestV1;
55
+ verify(manifest: SealedManifestV1, expectation: ManifestExpectationV1): ManifestVerdictV1;
56
+ }
57
+ export declare function createIntegrityAdapter(): IntegrityAdapterV1;
58
+ //# sourceMappingURL=integrity-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity-adapter.d.ts","sourceRoot":"","sources":["../../src/plugins/integrity-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACrC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,gDAAgD;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GAC1B;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,MAAM,WAAW,kBAAkB;IAClC,IAAI,CAAC,KAAK,EAAE;QACX,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;KAC5B,GAAG,gBAAgB,CAAC;IACrB,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,GAAG,iBAAiB,CAAC;CAC1F;AAaD,wBAAgB,sBAAsB,IAAI,kBAAkB,CA8C3D","sourcesContent":["/**\n * Integrity and compatibility adapter (7.3) — the seam an external\n * publishing or policy flow uses to ACCEPT or REJECT a plugin manifest:\n * integrity (key-order-stable digest over the manifest), version\n * compatibility (a declared acceptable range), and source provenance.\n *\n * The adapter makes NO safety judgment of its own (that is Agent Core\n * policy, excluded here) — it only computes and compares facts so an\n * external flow can reject tampered or incompatible manifests explicitly.\n */\n\nimport type { JsonValue } from \"@agent-forge/ai\";\nimport { stableJsonDigest } from \"../profile/identity.ts\";\n\nexport interface SealedManifestV1 {\n\treadonly pluginId: string;\n\treadonly version: string;\n\treadonly source: string;\n\treadonly payload: JsonValue;\n\treadonly digest: string;\n}\n\nexport interface ManifestExpectationV1 {\n\t/** The digest the external flow expects; a mismatch means tampering. */\n\treadonly digest?: string;\n\t/** Semantic-version range bounds, e.g. {min:\"1.0.0\", max:\"2.0.0\"}. */\n\treadonly versionRange?: { readonly min?: string; readonly max?: string };\n\t/** The source the flow is willing to accept. */\n\treadonly sourceEquals?: string;\n}\n\nexport type ManifestVerdictV1 =\n\t| { readonly status: \"accepted\"; readonly pluginId: string; readonly version: string; readonly digest: string }\n\t| { readonly status: \"tampered\"; readonly expectedDigest?: string; readonly actualDigest: string }\n\t| { readonly status: \"incompatible\"; readonly reason: string; readonly version: string }\n\t| { readonly status: \"source_rejected\"; readonly reason: string; readonly source: string };\n\nexport interface IntegrityAdapterV1 {\n\tseal(input: {\n\t\treadonly pluginId: string;\n\t\treadonly version: string;\n\t\treadonly source: string;\n\t\treadonly payload: JsonValue;\n\t}): SealedManifestV1;\n\tverify(manifest: SealedManifestV1, expectation: ManifestExpectationV1): ManifestVerdictV1;\n}\n\nfunction compareVersions(a: string, b: string): number {\n\tconst pa = a.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n\tconst pb = b.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n\tconst length = Math.max(pa.length, pb.length);\n\tfor (let index = 0; index < length; index += 1) {\n\t\tconst diff = (pa[index] ?? 0) - (pb[index] ?? 0);\n\t\tif (diff !== 0) return diff;\n\t}\n\treturn 0;\n}\n\nexport function createIntegrityAdapter(): IntegrityAdapterV1 {\n\treturn {\n\t\tseal(input) {\n\t\t\tconst manifest = {\n\t\t\t\tpluginId: input.pluginId,\n\t\t\t\tversion: input.version,\n\t\t\t\tsource: input.source,\n\t\t\t\tpayload: input.payload,\n\t\t\t};\n\t\t\treturn Object.freeze({ ...manifest, digest: stableJsonDigest(manifest) });\n\t\t},\n\t\tverify(manifest, expectation) {\n\t\t\tconst actualDigest = stableJsonDigest({\n\t\t\t\tpluginId: manifest.pluginId,\n\t\t\t\tversion: manifest.version,\n\t\t\t\tsource: manifest.source,\n\t\t\t\tpayload: manifest.payload,\n\t\t\t});\n\t\t\tif (expectation.digest !== undefined && expectation.digest !== actualDigest) {\n\t\t\t\treturn { status: \"tampered\", expectedDigest: expectation.digest, actualDigest };\n\t\t\t}\n\t\t\tif (expectation.sourceEquals !== undefined && manifest.source !== expectation.sourceEquals) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"source_rejected\",\n\t\t\t\t\treason: `Source \"${manifest.source}\" is not the accepted \"${expectation.sourceEquals}\"`,\n\t\t\t\t\tsource: manifest.source,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst range = expectation.versionRange;\n\t\t\tif (range?.min !== undefined && compareVersions(manifest.version, range.min) < 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"incompatible\",\n\t\t\t\t\treason: `Version ${manifest.version} is below the required ${range.min}`,\n\t\t\t\t\tversion: manifest.version,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (range?.max !== undefined && compareVersions(manifest.version, range.max) > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"incompatible\",\n\t\t\t\t\treason: `Version ${manifest.version} is above the accepted ${range.max}`,\n\t\t\t\t\tversion: manifest.version,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { status: \"accepted\", pluginId: manifest.pluginId, version: manifest.version, digest: actualDigest };\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Integrity and compatibility adapter (7.3) — the seam an external
3
+ * publishing or policy flow uses to ACCEPT or REJECT a plugin manifest:
4
+ * integrity (key-order-stable digest over the manifest), version
5
+ * compatibility (a declared acceptable range), and source provenance.
6
+ *
7
+ * The adapter makes NO safety judgment of its own (that is Agent Core
8
+ * policy, excluded here) — it only computes and compares facts so an
9
+ * external flow can reject tampered or incompatible manifests explicitly.
10
+ */
11
+ import { stableJsonDigest } from "../profile/identity.js";
12
+ function compareVersions(a, b) {
13
+ const pa = a.split(".").map((part) => Number.parseInt(part, 10) || 0);
14
+ const pb = b.split(".").map((part) => Number.parseInt(part, 10) || 0);
15
+ const length = Math.max(pa.length, pb.length);
16
+ for (let index = 0; index < length; index += 1) {
17
+ const diff = (pa[index] ?? 0) - (pb[index] ?? 0);
18
+ if (diff !== 0)
19
+ return diff;
20
+ }
21
+ return 0;
22
+ }
23
+ export function createIntegrityAdapter() {
24
+ return {
25
+ seal(input) {
26
+ const manifest = {
27
+ pluginId: input.pluginId,
28
+ version: input.version,
29
+ source: input.source,
30
+ payload: input.payload,
31
+ };
32
+ return Object.freeze({ ...manifest, digest: stableJsonDigest(manifest) });
33
+ },
34
+ verify(manifest, expectation) {
35
+ const actualDigest = stableJsonDigest({
36
+ pluginId: manifest.pluginId,
37
+ version: manifest.version,
38
+ source: manifest.source,
39
+ payload: manifest.payload,
40
+ });
41
+ if (expectation.digest !== undefined && expectation.digest !== actualDigest) {
42
+ return { status: "tampered", expectedDigest: expectation.digest, actualDigest };
43
+ }
44
+ if (expectation.sourceEquals !== undefined && manifest.source !== expectation.sourceEquals) {
45
+ return {
46
+ status: "source_rejected",
47
+ reason: `Source "${manifest.source}" is not the accepted "${expectation.sourceEquals}"`,
48
+ source: manifest.source,
49
+ };
50
+ }
51
+ const range = expectation.versionRange;
52
+ if (range?.min !== undefined && compareVersions(manifest.version, range.min) < 0) {
53
+ return {
54
+ status: "incompatible",
55
+ reason: `Version ${manifest.version} is below the required ${range.min}`,
56
+ version: manifest.version,
57
+ };
58
+ }
59
+ if (range?.max !== undefined && compareVersions(manifest.version, range.max) > 0) {
60
+ return {
61
+ status: "incompatible",
62
+ reason: `Version ${manifest.version} is above the accepted ${range.max}`,
63
+ version: manifest.version,
64
+ };
65
+ }
66
+ return { status: "accepted", pluginId: manifest.pluginId, version: manifest.version, digest: actualDigest };
67
+ },
68
+ };
69
+ }
70
+ //# sourceMappingURL=integrity-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity-adapter.js","sourceRoot":"","sources":["../../src/plugins/integrity-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Integrity and compatibility adapter (7.3) — the seam an external\n * publishing or policy flow uses to ACCEPT or REJECT a plugin manifest:\n * integrity (key-order-stable digest over the manifest), version\n * compatibility (a declared acceptable range), and source provenance.\n *\n * The adapter makes NO safety judgment of its own (that is Agent Core\n * policy, excluded here) — it only computes and compares facts so an\n * external flow can reject tampered or incompatible manifests explicitly.\n */\n\nimport type { JsonValue } from \"@agent-forge/ai\";\nimport { stableJsonDigest } from \"../profile/identity.ts\";\n\nexport interface SealedManifestV1 {\n\treadonly pluginId: string;\n\treadonly version: string;\n\treadonly source: string;\n\treadonly payload: JsonValue;\n\treadonly digest: string;\n}\n\nexport interface ManifestExpectationV1 {\n\t/** The digest the external flow expects; a mismatch means tampering. */\n\treadonly digest?: string;\n\t/** Semantic-version range bounds, e.g. {min:\"1.0.0\", max:\"2.0.0\"}. */\n\treadonly versionRange?: { readonly min?: string; readonly max?: string };\n\t/** The source the flow is willing to accept. */\n\treadonly sourceEquals?: string;\n}\n\nexport type ManifestVerdictV1 =\n\t| { readonly status: \"accepted\"; readonly pluginId: string; readonly version: string; readonly digest: string }\n\t| { readonly status: \"tampered\"; readonly expectedDigest?: string; readonly actualDigest: string }\n\t| { readonly status: \"incompatible\"; readonly reason: string; readonly version: string }\n\t| { readonly status: \"source_rejected\"; readonly reason: string; readonly source: string };\n\nexport interface IntegrityAdapterV1 {\n\tseal(input: {\n\t\treadonly pluginId: string;\n\t\treadonly version: string;\n\t\treadonly source: string;\n\t\treadonly payload: JsonValue;\n\t}): SealedManifestV1;\n\tverify(manifest: SealedManifestV1, expectation: ManifestExpectationV1): ManifestVerdictV1;\n}\n\nfunction compareVersions(a: string, b: string): number {\n\tconst pa = a.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n\tconst pb = b.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n\tconst length = Math.max(pa.length, pb.length);\n\tfor (let index = 0; index < length; index += 1) {\n\t\tconst diff = (pa[index] ?? 0) - (pb[index] ?? 0);\n\t\tif (diff !== 0) return diff;\n\t}\n\treturn 0;\n}\n\nexport function createIntegrityAdapter(): IntegrityAdapterV1 {\n\treturn {\n\t\tseal(input) {\n\t\t\tconst manifest = {\n\t\t\t\tpluginId: input.pluginId,\n\t\t\t\tversion: input.version,\n\t\t\t\tsource: input.source,\n\t\t\t\tpayload: input.payload,\n\t\t\t};\n\t\t\treturn Object.freeze({ ...manifest, digest: stableJsonDigest(manifest) });\n\t\t},\n\t\tverify(manifest, expectation) {\n\t\t\tconst actualDigest = stableJsonDigest({\n\t\t\t\tpluginId: manifest.pluginId,\n\t\t\t\tversion: manifest.version,\n\t\t\t\tsource: manifest.source,\n\t\t\t\tpayload: manifest.payload,\n\t\t\t});\n\t\t\tif (expectation.digest !== undefined && expectation.digest !== actualDigest) {\n\t\t\t\treturn { status: \"tampered\", expectedDigest: expectation.digest, actualDigest };\n\t\t\t}\n\t\t\tif (expectation.sourceEquals !== undefined && manifest.source !== expectation.sourceEquals) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"source_rejected\",\n\t\t\t\t\treason: `Source \"${manifest.source}\" is not the accepted \"${expectation.sourceEquals}\"`,\n\t\t\t\t\tsource: manifest.source,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst range = expectation.versionRange;\n\t\t\tif (range?.min !== undefined && compareVersions(manifest.version, range.min) < 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"incompatible\",\n\t\t\t\t\treason: `Version ${manifest.version} is below the required ${range.min}`,\n\t\t\t\t\tversion: manifest.version,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (range?.max !== undefined && compareVersions(manifest.version, range.max) > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: \"incompatible\",\n\t\t\t\t\treason: `Version ${manifest.version} is above the accepted ${range.max}`,\n\t\t\t\t\tversion: manifest.version,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { status: \"accepted\", pluginId: manifest.pluginId, version: manifest.version, digest: actualDigest };\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * MCP HTTP transport (4.3) — a streamable-HTTP MCP transport implementing the
3
+ * same transport interface as the stdio plugin, plus observable retry.
4
+ *
5
+ * Retries apply ONLY to requests the server could not have started (connect
6
+ * errors, 5xx, 429) — a completed response (any JSON-RPC reply) is never
7
+ * re-sent, keeping calls idempotent from the caller's perspective. Every
8
+ * transport error, retry attempt, and reconnect is reported through the
9
+ * `onEvent` callback so callers can observe what happened. CLI
10
+ * productization is out of scope.
11
+ */
12
+ /**
13
+ * Per-request options for MCP transports. Defined here rather than imported
14
+ * from the mcp-stdio example so production src never depends on examples/
15
+ * (统一修复轮 C reverse-dependency fix); structurally identical to the
16
+ * example's own declaration, which stays self-contained.
17
+ */
18
+ export interface McpRequestOptions {
19
+ signal?: AbortSignal;
20
+ timeoutMs?: number;
21
+ }
22
+ export interface McpHttpTransportEventV1 {
23
+ readonly kind: "connect" | "transport_error" | "retry" | "reconnect" | "response";
24
+ readonly at: number;
25
+ readonly detail: string;
26
+ readonly attempt?: number;
27
+ }
28
+ export interface McpHttpTransportOptionsV1 {
29
+ readonly url: string;
30
+ readonly timeoutMs?: number;
31
+ readonly retryLimit?: number;
32
+ readonly baseRetryMs?: number;
33
+ readonly maxRetryMs?: number;
34
+ readonly now?: () => number;
35
+ readonly sleep?: (ms: number) => Promise<void> | void;
36
+ readonly onEvent?: (event: McpHttpTransportEventV1) => void;
37
+ /**
38
+ * Extra request headers merged after the transport defaults on every
39
+ * outbound request (initialize / notifications/initialized / tools/list /
40
+ * tools/call), so user values can override the defaults — the
41
+ * `Authorization: Bearer ...` case for hosted remote MCP servers. Values
42
+ * are sent verbatim (never case-normalized). They may carry credentials:
43
+ * the suite MCP pool materializes them into the generated plugin entry
44
+ * below `<agentDir>/mcp/pool/`, which sits inside the same local-machine
45
+ * data boundary as `auth.json` (docs/design/产品价值度量与数据边界登记.md
46
+ * §2.1 本机数据).
47
+ */
48
+ readonly headers?: Readonly<Record<string, string>>;
49
+ }
50
+ /** Structurally compatible with the stdio plugin's transport interface. */
51
+ export interface McpHttpTransportV1 {
52
+ request(method: string, params?: unknown, options?: McpRequestOptions): Promise<unknown>;
53
+ notify(method: string, params?: unknown): Promise<void> | void;
54
+ close(): Promise<void> | void;
55
+ events(): readonly McpHttpTransportEventV1[];
56
+ }
57
+ export declare function createMcpHttpTransport(options: McpHttpTransportOptionsV1): McpHttpTransportV1;
58
+ /** Minimal api surface the HTTP server plugin relies on (capability registerTool). */
59
+ export interface McpHttpServerPluginApiV1 {
60
+ registerTool(definition: unknown): unknown;
61
+ }
62
+ /**
63
+ * Configuration-driven entry for remote MCP servers: wires
64
+ * createMcpHttpTransport into the same plugin shape as the generated stdio
65
+ * bridge (initialize/tools/list handshake, one registerTool per remote tool,
66
+ * dual call convention). Tool call policy stays host-owned; the plugin only
67
+ * forwards requests and maps results. The suite MCP registration pool
68
+ * materializes url-configured servers through this entry; optional `headers`
69
+ * are forwarded verbatim to the transport (credential note there).
70
+ */
71
+ export declare function createMcpHttpServerPlugin(config: {
72
+ url: string;
73
+ /** Forwarded to the transport verbatim; see McpHttpTransportOptionsV1.headers for the credential note. */
74
+ headers?: Readonly<Record<string, string>>;
75
+ }): (api: McpHttpServerPluginApiV1) => Promise<{
76
+ dispose(): void;
77
+ }>;
78
+ //# sourceMappingURL=mcp-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-http.d.ts","sourceRoot":"","sources":["../../src/plugins/mcp-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAClF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,MAAM,IAAI,SAAS,uBAAuB,EAAE,CAAC;CAC7C;AAQD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAsH7F;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACxC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3C;AAWD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,0GAA0G;IAC1G,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C,GAAG,CAAC,GAAG,EAAE,wBAAwB,KAAK,OAAO,CAAC;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CAAC,CAqDlE","sourcesContent":["/**\n * MCP HTTP transport (4.3) — a streamable-HTTP MCP transport implementing the\n * same transport interface as the stdio plugin, plus observable retry.\n *\n * Retries apply ONLY to requests the server could not have started (connect\n * errors, 5xx, 429) — a completed response (any JSON-RPC reply) is never\n * re-sent, keeping calls idempotent from the caller's perspective. Every\n * transport error, retry attempt, and reconnect is reported through the\n * `onEvent` callback so callers can observe what happened. CLI\n * productization is out of scope.\n */\n/**\n * Per-request options for MCP transports. Defined here rather than imported\n * from the mcp-stdio example so production src never depends on examples/\n * (统一修复轮 C reverse-dependency fix); structurally identical to the\n * example's own declaration, which stays self-contained.\n */\nexport interface McpRequestOptions {\n\tsignal?: AbortSignal;\n\ttimeoutMs?: number;\n}\n\nexport interface McpHttpTransportEventV1 {\n\treadonly kind: \"connect\" | \"transport_error\" | \"retry\" | \"reconnect\" | \"response\";\n\treadonly at: number;\n\treadonly detail: string;\n\treadonly attempt?: number;\n}\n\nexport interface McpHttpTransportOptionsV1 {\n\treadonly url: string;\n\treadonly timeoutMs?: number;\n\treadonly retryLimit?: number;\n\treadonly baseRetryMs?: number;\n\treadonly maxRetryMs?: number;\n\treadonly now?: () => number;\n\treadonly sleep?: (ms: number) => Promise<void> | void;\n\treadonly onEvent?: (event: McpHttpTransportEventV1) => void;\n\t/**\n\t * Extra request headers merged after the transport defaults on every\n\t * outbound request (initialize / notifications/initialized / tools/list /\n\t * tools/call), so user values can override the defaults — the\n\t * `Authorization: Bearer ...` case for hosted remote MCP servers. Values\n\t * are sent verbatim (never case-normalized). They may carry credentials:\n\t * the suite MCP pool materializes them into the generated plugin entry\n\t * below `<agentDir>/mcp/pool/`, which sits inside the same local-machine\n\t * data boundary as `auth.json` (docs/design/产品价值度量与数据边界登记.md\n\t * §2.1 本机数据).\n\t */\n\treadonly headers?: Readonly<Record<string, string>>;\n}\n\n/** Structurally compatible with the stdio plugin's transport interface. */\nexport interface McpHttpTransportV1 {\n\trequest(method: string, params?: unknown, options?: McpRequestOptions): Promise<unknown>;\n\tnotify(method: string, params?: unknown): Promise<void> | void;\n\tclose(): Promise<void> | void;\n\tevents(): readonly McpHttpTransportEventV1[];\n}\n\ninterface JsonRpcResponse {\n\tid?: number | string | null;\n\tresult?: unknown;\n\terror?: { code?: number; message?: string };\n}\n\nexport function createMcpHttpTransport(options: McpHttpTransportOptionsV1): McpHttpTransportV1 {\n\tconst timeoutMs = options.timeoutMs ?? 10_000;\n\tconst retryLimit = options.retryLimit ?? 2;\n\tconst baseRetryMs = options.baseRetryMs ?? 100;\n\tconst maxRetryMs = options.maxRetryMs ?? 1_600;\n\tconst now = options.now ?? (() => Date.now());\n\tconst sleep = options.sleep ?? (() => undefined);\n\tconst events: McpHttpTransportEventV1[] = [];\n\tlet nextId = 1;\n\tlet closed = false;\n\n\tconst record = (event: McpHttpTransportEventV1): void => {\n\t\tevents.push(event);\n\t\toptions.onEvent?.(event);\n\t};\n\n\tconst postOnce = async (\n\t\tbody: string,\n\t\trequestOptions: McpRequestOptions | undefined,\n\t): Promise<{ status: number; text: string } | { status: \"connect_error\"; reason: string }> => {\n\t\tconst controller = new AbortController();\n\t\tconst timer = setTimeout(() => controller.abort(), requestOptions?.timeoutMs ?? timeoutMs);\n\t\ttry {\n\t\t\tconst response = await fetch(options.url, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\taccept: \"application/json, text/event-stream\",\n\t\t\t\t\t...(options.headers ?? {}),\n\t\t\t\t},\n\t\t\t\tbody,\n\t\t\t\tsignal: controller.signal,\n\t\t\t});\n\t\t\tconst text = await response.text();\n\t\t\treturn { status: response.status, text };\n\t\t} catch (error) {\n\t\t\tconst reason = error instanceof Error ? `${error.name}: ${error.message}` : String(error);\n\t\t\treturn { status: \"connect_error\", reason };\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t};\n\n\tconst postWithRetry = async (\n\t\tbody: string,\n\t\trequestOptions?: McpRequestOptions,\n\t): Promise<{ status: number; text: string }> => {\n\t\tfor (let attempt = 1; ; attempt += 1) {\n\t\t\tconst response = await postOnce(body, requestOptions);\n\t\t\tif (response.status !== \"connect_error\" && response.status < 500 && response.status !== 429) {\n\t\t\t\trecord({ kind: \"response\", at: now(), detail: `HTTP ${response.status}`, attempt });\n\t\t\t\treturn response;\n\t\t\t}\n\t\t\tconst reason = response.status === \"connect_error\" ? response.reason : `HTTP ${response.status}`;\n\t\t\tif (attempt > retryLimit) {\n\t\t\t\trecord({\n\t\t\t\t\tkind: \"transport_error\",\n\t\t\t\t\tat: now(),\n\t\t\t\t\tdetail: `giving up after ${attempt - 1} retries: ${reason}`,\n\t\t\t\t\tattempt,\n\t\t\t\t});\n\t\t\t\tthrow new Error(`MCP HTTP transport error: ${reason}`);\n\t\t\t}\n\t\t\tconst waitedMs = Math.min(baseRetryMs * 2 ** (attempt - 1), maxRetryMs);\n\t\t\trecord({\n\t\t\t\tkind: \"retry\",\n\t\t\t\tat: now(),\n\t\t\t\tdetail: `attempt ${attempt} failed (${reason}); waiting ${waitedMs}ms`,\n\t\t\t\tattempt,\n\t\t\t});\n\t\t\tawait sleep(waitedMs);\n\t\t\tif (attempt === 1 && response.status === \"connect_error\") {\n\t\t\t\trecord({ kind: \"reconnect\", at: now(), detail: \"re-establishing HTTP connection\", attempt });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst rpc = async (method: string, params?: unknown, requestOptions?: McpRequestOptions): Promise<unknown> => {\n\t\tif (closed) throw new Error(\"MCP HTTP transport is closed\");\n\t\tconst id = nextId;\n\t\tnextId += 1;\n\t\tconst body = JSON.stringify({ jsonrpc: \"2.0\", id, method, ...(params === undefined ? {} : { params }) });\n\t\tconst response = await postWithRetry(body, requestOptions);\n\t\tif (response.status !== 200) {\n\t\t\tthrow new Error(`MCP HTTP transport returned HTTP ${response.status}`);\n\t\t}\n\t\tlet parsed: JsonRpcResponse;\n\t\ttry {\n\t\t\tparsed = JSON.parse(response.text) as JsonRpcResponse;\n\t\t} catch (error) {\n\t\t\tthrow new Error(\n\t\t\t\t// v8 ignore next -- JSON.parse 只会抛出 Error 对象\n\t\t\t\t`MCP HTTP transport returned non-JSON body: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.error !== undefined) {\n\t\t\tthrow new Error(`MCP error ${parsed.error.code ?? \"\"}: ${parsed.error.message ?? \"unknown error\"}`);\n\t\t}\n\t\treturn parsed.result;\n\t};\n\n\treturn {\n\t\tasync request(method, params, requestOptions) {\n\t\t\treturn rpc(method, params, requestOptions);\n\t\t},\n\t\tasync notify(method, params) {\n\t\t\tawait postWithRetry(\n\t\t\t\tJSON.stringify({ jsonrpc: \"2.0\", method, ...(params === undefined ? {} : { params }) }),\n\t\t\t\tundefined,\n\t\t\t);\n\t\t},\n\t\tasync close() {\n\t\t\tclosed = true;\n\t\t},\n\t\tevents() {\n\t\t\treturn Object.freeze([...events]);\n\t\t},\n\t};\n}\n\n/** Minimal api surface the HTTP server plugin relies on (capability registerTool). */\nexport interface McpHttpServerPluginApiV1 {\n\tregisterTool(definition: unknown): unknown;\n}\n\nfunction normalizeToolResult(result: unknown): { content: unknown[]; details?: unknown } {\n\tif (result && typeof result === \"object\" && Array.isArray((result as { content?: unknown }).content)) {\n\t\tconst { content, details } = result as { content: unknown[]; details?: unknown };\n\t\treturn { content, details };\n\t}\n\tif (result === undefined) return { content: [{ type: \"text\", text: \"\" }] };\n\treturn { content: [{ type: \"text\", text: JSON.stringify(result) }] };\n}\n\n/**\n * Configuration-driven entry for remote MCP servers: wires\n * createMcpHttpTransport into the same plugin shape as the generated stdio\n * bridge (initialize/tools/list handshake, one registerTool per remote tool,\n * dual call convention). Tool call policy stays host-owned; the plugin only\n * forwards requests and maps results. The suite MCP registration pool\n * materializes url-configured servers through this entry; optional `headers`\n * are forwarded verbatim to the transport (credential note there).\n */\nexport function createMcpHttpServerPlugin(config: {\n\turl: string;\n\t/** Forwarded to the transport verbatim; see McpHttpTransportOptionsV1.headers for the credential note. */\n\theaders?: Readonly<Record<string, string>>;\n}): (api: McpHttpServerPluginApiV1) => Promise<{ dispose(): void }> {\n\treturn async (api) => {\n\t\tconst transport = createMcpHttpTransport({ url: config.url, headers: config.headers });\n\t\ttry {\n\t\t\tawait transport.request(\"initialize\", {\n\t\t\t\tprotocolVersion: \"2024-11-05\",\n\t\t\t\tcapabilities: {},\n\t\t\t\tclientInfo: { name: \"agent-forge-mcp-pool\", version: \"0.1.0\" },\n\t\t\t});\n\t\t\tawait transport.notify(\"notifications/initialized\");\n\t\t\tconst listing = (await transport.request(\"tools/list\")) as { tools?: unknown };\n\t\t\tif (!listing || !Array.isArray(listing.tools)) {\n\t\t\t\tthrow new Error(\"MCP tools/list result must contain tools[]\");\n\t\t\t}\n\t\t\tfor (const tool of listing.tools) {\n\t\t\t\tconst candidate = tool as { name?: unknown; description?: unknown; inputSchema?: unknown };\n\t\t\t\tif (!candidate || typeof candidate.name !== \"string\" || !candidate.name) {\n\t\t\t\t\tthrow new Error(\"MCP tool requires a non-empty name\");\n\t\t\t\t}\n\t\t\t\tapi.registerTool({\n\t\t\t\t\tname: candidate.name,\n\t\t\t\t\tlabel: candidate.name,\n\t\t\t\t\tdescription:\n\t\t\t\t\t\ttypeof candidate.description === \"string\" ? candidate.description : `MCP tool: ${candidate.name}`,\n\t\t\t\t\tparameters:\n\t\t\t\t\t\tcandidate.inputSchema && typeof candidate.inputSchema === \"object\"\n\t\t\t\t\t\t\t? candidate.inputSchema\n\t\t\t\t\t\t\t: { type: \"object\", properties: {} },\n\t\t\t\t\texecute: async (toolCallId: string, params: unknown, signal?: AbortSignal) => {\n\t\t\t\t\t\t// Dual call convention: the session passes (toolCallId, params,\n\t\t\t\t\t\t// signal); the runtime's invokeTool passes the input as the\n\t\t\t\t\t\t// single first argument.\n\t\t\t\t\t\tconst singleArgCall = params === undefined && typeof toolCallId !== \"string\";\n\t\t\t\t\t\tconst input = singleArgCall ? toolCallId : params;\n\t\t\t\t\t\tconst result = await transport.request(\n\t\t\t\t\t\t\t\"tools/call\",\n\t\t\t\t\t\t\t{ name: candidate.name as string, arguments: input || {} },\n\t\t\t\t\t\t\tsingleArgCall ? undefined : { signal },\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn normalizeToolResult(result);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\ttransport.close();\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (error) {\n\t\t\ttransport.close();\n\t\t\tthrow error;\n\t\t}\n\t};\n}\n"]}