@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 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport { buildPluginCatalogV1 } from \"./catalog.ts\";\nimport type { PluginDistributionDescriptorV1, PluginDistributionV1 } from \"./distribution.ts\";\nimport { DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1, type PluginInstallerV1 } from \"./installer.ts\";\nimport {\n\tisPluginAcquisitionRefTargetV1,\n\tPluginAcquisitionErrorV1,\n\ttype PluginAcquisitionPackageV1,\n} from \"./plugin-acquisition.ts\";\nimport { createPluginSelectionV1, MAX_PLUGIN_SELECTION_IDS_V1, type PluginSelectionV1 } from \"./selection.ts\";\nimport type { PluginSelectionStoreV1 } from \"./selection-store.ts\";\nimport type { PluginStateRecordV1, PluginStateScopeV1, PluginStateStoreV1 } from \"./state.ts\";\nimport type { HostFactsV1, PluginManifestV1 } from \"./types.ts\";\n\nexport const PLUGIN_ECOSYSTEM_CLI_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_ECOSYSTEM_CLI_OUTPUT_BYTES_V1 = 64 * 1024;\nexport const MAX_PLUGIN_ECOSYSTEM_CLI_LIST_ENTRIES_V1 = 128;\nexport const MAX_PLUGIN_ECOSYSTEM_CLI_ARGS_V1 = MAX_PLUGIN_SELECTION_IDS_V1 + 8;\n\nexport type PluginEcosystemCliOutputFormatV1 = \"json\" | \"text\";\nexport type PluginEcosystemCliCommandNameV1 =\n\t| \"catalog-list\"\n\t| \"state-list\"\n\t| \"selection-list\"\n\t| \"selection-set\"\n\t| \"selection-clear\"\n\t| \"enable\"\n\t| \"disable\"\n\t| \"remove\"\n\t| \"install\"\n\t| \"update\";\n\nexport interface PluginRegistryPackageV1 {\n\treadonly manifest: PluginManifestV1;\n\treadonly source: string;\n\treadonly expectedDigest?: string;\n\t/** Optional signed package acquisition descriptor. It never contains package bytes or paths. */\n\treadonly distribution?: PluginDistributionDescriptorV1;\n}\n\n/** Registry access is intentionally host-injected; this CLI never downloads itself. */\nexport interface PluginEcosystemRegistryV1 {\n\treadonly list?: (input: {\n\t\treadonly signal?: AbortSignal;\n\t}) => readonly PluginManifestV1[] | Promise<readonly PluginManifestV1[]>;\n\treadonly resolve: (input: {\n\t\treadonly pluginId: string;\n\t\treadonly pluginVersion?: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => PluginRegistryPackageV1 | undefined | Promise<PluginRegistryPackageV1 | undefined>;\n}\n\n/**\n * Host-injected multi-source acquisition boundary for `plugin install <ref>`\n * (npm / custom URL / local). Like registry access it is host-owned; the CLI\n * never downloads by itself.\n */\nexport interface PluginEcosystemCliAcquisitionV1 {\n\treadonly resolvePackage: (input: {\n\t\treadonly ref: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginAcquisitionPackageV1>;\n}\n\nexport interface PluginEcosystemCliOptionsV1 {\n\treadonly host?: HostFactsV1;\n\treadonly manifests?: readonly PluginManifestV1[];\n\treadonly registry?: PluginEcosystemRegistryV1;\n\t/** Optional multi-source acquisition boundary for `install <ref>` targets. */\n\treadonly acquisition?: PluginEcosystemCliAcquisitionV1;\n\treadonly installer?: PluginInstallerV1;\n\t/** Host-owned descriptor verifier and artifact acquisition boundary. */\n\treadonly distribution?: PluginDistributionV1;\n\treadonly stateStore?: PluginStateStoreV1;\n\t/** Alias for hosts that expose the persistence boundary as a state host. */\n\treadonly stateHost?: PluginStateStoreV1;\n\t/** Optional project-local state store. Global state remains the default. */\n\treadonly projectStateStore?: PluginStateStoreV1;\n\t/** Opaque concrete host namespace for project-scoped installations. */\n\treadonly projectScopeRef?: string;\n\treadonly selectionStore?: PluginSelectionStoreV1;\n\t/** Alias for hosts that expose the persistence boundary as a selection host. */\n\treadonly selectionHost?: PluginSelectionStoreV1;\n\t/** Optional project-local selection store. Global selection remains the default. */\n\treadonly projectSelectionStore?: PluginSelectionStoreV1;\n}\n\nexport interface PluginEcosystemCliRequestV1 {\n\treadonly argv: readonly string[];\n\treadonly format?: PluginEcosystemCliOutputFormatV1;\n\treadonly signal?: AbortSignal;\n}\n\nexport interface PluginEcosystemCliParsedCommandV1 {\n\treadonly version: typeof PLUGIN_ECOSYSTEM_CLI_VERSION_V1;\n\treadonly command: PluginEcosystemCliCommandNameV1;\n\treadonly format: PluginEcosystemCliOutputFormatV1;\n\treadonly pluginId?: string;\n\treadonly pluginVersion?: string;\n\t/** Raw install/update target; kept so ref forms survive the identity split. */\n\treadonly target?: string;\n\treadonly profileId?: string;\n\treadonly selectedPluginIds?: readonly string[];\n\treadonly scope?: PluginStateScopeV1;\n}\n\nexport type PluginEcosystemCliErrorCodeV1 =\n\t| \"invalid_command\"\n\t| \"unsupported_dependencies\"\n\t| \"not_found\"\n\t| \"not_installed\"\n\t| \"selection_failed\"\n\t| \"registry_failed\"\n\t| \"acquisition_failed\"\n\t| \"distribution_failed\"\n\t| \"incompatible\"\n\t| \"already_installed\"\n\t| \"installer_failed\"\n\t| \"uninstall_failed\"\n\t| \"state_failed\"\n\t| \"cancelled\";\n\nexport interface PluginEcosystemCliErrorV1 {\n\treadonly code: PluginEcosystemCliErrorCodeV1;\n\treadonly message: string;\n}\n\nexport interface PluginEcosystemCliResponseV1 {\n\treadonly version: typeof PLUGIN_ECOSYSTEM_CLI_VERSION_V1;\n\treadonly command: PluginEcosystemCliCommandNameV1 | \"invalid\";\n\treadonly format: PluginEcosystemCliOutputFormatV1;\n\treadonly status: \"succeeded\" | \"failed\" | \"unsupported\" | \"cancelled\";\n\treadonly data?: Readonly<Record<string, unknown>>;\n\treadonly text: string;\n\treadonly error?: PluginEcosystemCliErrorV1;\n}\n\nexport interface PluginEcosystemCliV1 {\n\treadonly execute: (input: PluginEcosystemCliRequestV1) => Promise<PluginEcosystemCliResponseV1>;\n}\n\ntype ResultData = Readonly<Record<string, unknown>>;\n\nfunction invalidInput(message: string): never {\n\tthrow new Error(message);\n}\n\nfunction validateToken(value: string, label: string): string {\n\tif (value.length === 0 || value.length > 256 || /[\\u0000-\\u001f\\s]/u.test(value))\n\t\tinvalidInput(`${label} is invalid`);\n\treturn value;\n}\n\nfunction parseIdentity(value: string): {\n\treadonly pluginId: string;\n\treadonly pluginVersion?: string;\n} {\n\tconst token = validateToken(value, \"plugin identity\");\n\tconst at = token.lastIndexOf(\"@\");\n\tif (at <= 0) return { pluginId: token };\n\tconst pluginId = token.slice(0, at);\n\tconst pluginVersion = token.slice(at + 1);\n\tif (pluginVersion.length === 0) invalidInput(\"plugin version is invalid\");\n\treturn {\n\t\tpluginId: validateToken(pluginId, \"plugin ID\"),\n\t\tpluginVersion: validateToken(pluginVersion, \"plugin version\"),\n\t};\n}\n\n/** Parse only the ecosystem command grammar; legacy package commands are not accepted. */\nexport function parsePluginEcosystemCliCommandV1(\n\targv: readonly string[],\n\tdefaultFormat: PluginEcosystemCliOutputFormatV1 = \"text\",\n): PluginEcosystemCliParsedCommandV1 {\n\tif (!Array.isArray(argv) || argv.length === 0 || argv.length > MAX_PLUGIN_ECOSYSTEM_CLI_ARGS_V1)\n\t\tinvalidInput(\"ecosystem command is invalid\");\n\tlet format = defaultFormat;\n\tif (format !== \"json\" && format !== \"text\") invalidInput(\"output format is invalid\");\n\tconst args = [...argv];\n\tlet explicitFormat: PluginEcosystemCliOutputFormatV1 | undefined;\n\tlet scope: PluginStateScopeV1 | undefined;\n\tlet pluginIdsOption: readonly string[] | undefined;\n\tfor (let index = args.length - 1; index >= 0; index -= 1) {\n\t\tconst token = args[index];\n\t\tconst inlineScope = token.startsWith(\"--scope=\") ? token.slice(\"--scope=\".length) : undefined;\n\t\tconst selectedScope = inlineScope ?? (token === \"--scope\" ? args[index + 1] : undefined);\n\t\tif (selectedScope !== undefined) {\n\t\t\tif (selectedScope !== \"global\" && selectedScope !== \"project\") invalidInput(\"state scope is invalid\");\n\t\t\tif (scope !== undefined && scope !== selectedScope) invalidInput(\"state scope is specified more than once\");\n\t\t\tscope = selectedScope;\n\t\t\targs.splice(index, token === \"--scope\" ? 2 : 1);\n\t\t\tcontinue;\n\t\t}\n\t\tconst inlineFormat = token.startsWith(\"--format=\") ? token.slice(\"--format=\".length) : undefined;\n\t\tconst selected =\n\t\t\ttoken === \"--json\" || token === \"--text\"\n\t\t\t\t? token === \"--json\"\n\t\t\t\t\t? \"json\"\n\t\t\t\t\t: \"text\"\n\t\t\t\t: (inlineFormat ?? (token === \"--format\" ? args[index + 1] : undefined));\n\t\tif (selected !== undefined) {\n\t\t\tif (selected !== \"json\" && selected !== \"text\") invalidInput(\"output format is invalid\");\n\t\t\tif (explicitFormat !== undefined && explicitFormat !== selected)\n\t\t\t\tinvalidInput(\"output format is specified more than once\");\n\t\t\texplicitFormat = selected as PluginEcosystemCliOutputFormatV1;\n\t\t\tformat = explicitFormat;\n\t\t\targs.splice(index, token === \"--format\" ? 2 : 1);\n\t\t\tcontinue;\n\t\t}\n\t\tconst inlinePlugins = token.startsWith(\"--plugins=\") ? token.slice(\"--plugins=\".length) : undefined;\n\t\tconst selectedPlugins = inlinePlugins ?? (token === \"--plugins\" ? args[index + 1] : undefined);\n\t\tif (selectedPlugins !== undefined) {\n\t\t\tif (pluginIdsOption !== undefined) invalidInput(\"plugin IDs are specified more than once\");\n\t\t\tconst ids = selectedPlugins.split(\",\");\n\t\t\tif (ids.length > MAX_PLUGIN_SELECTION_IDS_V1) invalidInput(\"too many plugin IDs\");\n\t\t\tpluginIdsOption = Object.freeze(ids.map((id: string) => validateToken(id, \"plugin ID\")));\n\t\t\targs.splice(index, token === \"--plugins\" ? 2 : 1);\n\t\t}\n\t}\n\tif (args.length === 0) invalidInput(\"ecosystem command is invalid\");\n\tconst [group, action, target, ...rest] = args;\n\tif (group === \"selection\" && action === \"set\" && target !== undefined) {\n\t\tif (pluginIdsOption !== undefined && rest.length > 0) invalidInput(\"plugin IDs must use one input form\");\n\t\tconst selectedPluginIds = pluginIdsOption ?? Object.freeze(rest.map((id) => validateToken(id, \"plugin ID\")));\n\t\tif (selectedPluginIds.length > MAX_PLUGIN_SELECTION_IDS_V1) invalidInput(\"too many plugin IDs\");\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: \"selection-set\",\n\t\t\tformat,\n\t\t\tprofileId: validateToken(target, \"profile ID\"),\n\t\t\tselectedPluginIds,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t});\n\t}\n\tif (rest.length > 0) invalidInput(\"ecosystem command has unsupported arguments\");\n\tif (group === \"catalog\" && action === \"list\" && target === undefined)\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: \"catalog-list\",\n\t\t\tformat,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t});\n\tif (group === \"state\" && action === \"list\" && target === undefined)\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: \"state-list\",\n\t\t\tformat,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t});\n\tif (group === \"selection\" && action === \"list\" && target === undefined)\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: \"selection-list\",\n\t\t\tformat,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t});\n\tif (group === \"selection\" && action === \"clear\" && target !== undefined)\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: \"selection-clear\",\n\t\t\tformat,\n\t\t\tprofileId: validateToken(target, \"profile ID\"),\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t});\n\tif (group === \"state\" && (action === \"enable\" || action === \"disable\" || action === \"remove\") && target) {\n\t\tconst identity = parseIdentity(target);\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: action,\n\t\t\tformat,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t\t...identity,\n\t\t});\n\t}\n\t// Top-level aliases keep the common install/remove workflow concise while\n\t// preserving the explicit `state <action>` grammar for scripts.\n\tif ((group === \"enable\" || group === \"disable\" || group === \"remove\") && action) {\n\t\tconst identity = parseIdentity(action);\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: group,\n\t\t\tformat,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t\t...identity,\n\t\t});\n\t}\n\t// Install/update keeps the legacy `pluginId[@version]` identity grammar and\n\t// additionally preserves the raw target: refs with npm/path/URL markers\n\t// (`/`, `:`, `#`, leading `@`, `@^…`/`@~…`/`@latest`) route to the\n\t// acquisition boundary; bare IDs and exact-version identities keep the\n\t// registry resolve path unchanged.\n\tif ((group === \"install\" || group === \"update\") && action) {\n\t\tconst identity = parseIdentity(action);\n\t\treturn Object.freeze({\n\t\t\tversion: 1,\n\t\t\tcommand: group,\n\t\t\tformat,\n\t\t\ttarget: action,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t\t...identity,\n\t\t});\n\t}\n\tinvalidInput(\"ecosystem command is invalid\");\n}\n\nfunction response(\n\tcommand: PluginEcosystemCliResponseV1[\"command\"],\n\tformat: PluginEcosystemCliOutputFormatV1,\n\tstatus: PluginEcosystemCliResponseV1[\"status\"],\n\terror?: PluginEcosystemCliErrorV1,\n\tdata?: ResultData,\n): PluginEcosystemCliResponseV1 {\n\tlet safeData = data === undefined ? undefined : boundData(data);\n\tif (safeData !== undefined && Array.isArray(safeData.entries)) {\n\t\tlet entries = [...safeData.entries];\n\t\tconst originalEntryCount = entries.length;\n\t\twhile (entries.length > 0) {\n\t\t\tconst candidate = {\n\t\t\t\t...safeData,\n\t\t\t\tentries,\n\t\t\t\t...(entries.length < safeData.entries.length ? { truncated: true } : {}),\n\t\t\t};\n\t\t\tif (responseWithinBudget(command, format, status, error, candidate)) {\n\t\t\t\tsafeData = Object.freeze(candidate);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tentries = entries.slice(0, -1);\n\t\t}\n\t\tif (entries.length === 0 && originalEntryCount > 0)\n\t\t\tsafeData = Object.freeze({\n\t\t\t\tentries: Object.freeze([]),\n\t\t\t\ttruncated: true,\n\t\t\t});\n\t}\n\tif (!responseWithinBudget(command, format, status, error, safeData)) safeData = Object.freeze({ truncated: true });\n\tconst base = responseBase(command, format, status, error, safeData);\n\tconst humanText = error ? `${status}: ${error.message}` : formatText(command, status, safeData);\n\tconst text = format === \"json\" ? JSON.stringify(base) : humanText;\n\treturn Object.freeze({\n\t\t...base,\n\t\ttext: boundText(text),\n\t});\n}\n\nfunction responseWithinBudget(\n\tcommand: PluginEcosystemCliResponseV1[\"command\"],\n\tformat: PluginEcosystemCliOutputFormatV1,\n\tstatus: PluginEcosystemCliResponseV1[\"status\"],\n\terror: PluginEcosystemCliErrorV1 | undefined,\n\tdata: ResultData | undefined,\n): boolean {\n\tconst base = responseBase(command, format, status, error, data);\n\tconst humanText = error ? `${status}: ${error.message}` : formatText(command, status, data);\n\tconst text = format === \"json\" ? JSON.stringify(base) : humanText;\n\treturn responseByteLength({ ...base, text: boundText(text) }) <= MAX_PLUGIN_ECOSYSTEM_CLI_OUTPUT_BYTES_V1;\n}\n\nfunction responseBase(\n\tcommand: PluginEcosystemCliResponseV1[\"command\"],\n\tformat: PluginEcosystemCliOutputFormatV1,\n\tstatus: PluginEcosystemCliResponseV1[\"status\"],\n\terror: PluginEcosystemCliErrorV1 | undefined,\n\tdata: ResultData | undefined,\n): Omit<PluginEcosystemCliResponseV1, \"text\"> {\n\treturn {\n\t\tversion: PLUGIN_ECOSYSTEM_CLI_VERSION_V1,\n\t\tcommand,\n\t\tformat,\n\t\tstatus,\n\t\t...(data === undefined ? {} : { data }),\n\t\t...(error === undefined ? {} : { error }),\n\t};\n}\n\nfunction responseByteLength(value: unknown): number {\n\treturn Buffer.byteLength(JSON.stringify(value), \"utf8\");\n}\n\nfunction boundText(value: string): string {\n\tif (Buffer.byteLength(value, \"utf8\") <= MAX_PLUGIN_ECOSYSTEM_CLI_OUTPUT_BYTES_V1) return value;\n\tconst suffix = \"\\n[output truncated]\";\n\tlet lower = 0;\n\tlet upper = value.length;\n\twhile (lower < upper) {\n\t\tconst middle = Math.ceil((lower + upper) / 2);\n\t\tif (Buffer.byteLength(`${value.slice(0, middle)}${suffix}`, \"utf8\") <= MAX_PLUGIN_ECOSYSTEM_CLI_OUTPUT_BYTES_V1)\n\t\t\tlower = middle;\n\t\telse upper = middle - 1;\n\t}\n\treturn `${value.slice(0, lower)}${suffix}`;\n}\n\nfunction boundData(data: ResultData): ResultData {\n\tconst list = data.entries;\n\tif (!Array.isArray(list) || list.length <= MAX_PLUGIN_ECOSYSTEM_CLI_LIST_ENTRIES_V1)\n\t\treturn Object.freeze({ ...data });\n\treturn Object.freeze({\n\t\t...data,\n\t\tentries: Object.freeze(list.slice(0, MAX_PLUGIN_ECOSYSTEM_CLI_LIST_ENTRIES_V1)),\n\t\ttruncated: true,\n\t});\n}\n\nfunction formatText(command: string, status: string, data?: ResultData): string {\n\tif (data === undefined) return `${status}: ${command}`;\n\tconst entries = data.entries;\n\tif (Array.isArray(entries)) {\n\t\tconst lines = entries.map((entry) => {\n\t\t\tif (typeof entry !== \"object\" || entry === null) return String(entry);\n\t\t\tconst item = entry as Record<string, unknown>;\n\t\t\tconst id =\n\t\t\t\ttypeof item.profileId === \"string\"\n\t\t\t\t\t? `profile:${item.profileId}`\n\t\t\t\t\t: typeof item.pluginId === \"string\"\n\t\t\t\t\t\t? item.pluginId\n\t\t\t\t\t\t: \"plugin\";\n\t\t\tconst version = typeof item.pluginVersion === \"string\" ? `@${item.pluginVersion}` : \"\";\n\t\t\tconst state =\n\t\t\t\ttypeof item.status === \"string\"\n\t\t\t\t\t? ` ${item.status}`\n\t\t\t\t\t: typeof item.lifecycle === \"string\"\n\t\t\t\t\t\t? ` ${item.lifecycle}`\n\t\t\t\t\t\t: \"\";\n\t\t\treturn `${id}${version}${state}`;\n\t\t});\n\t\treturn [`${status}: ${command}`, ...lines, ...(data.truncated === true ? [\"[output truncated]\"] : [])].join(\"\\n\");\n\t}\n\tif (typeof data.profileId === \"string\") {\n\t\tconst selected = Array.isArray(data.selectedPluginIds) ? ` selected=${data.selectedPluginIds.join(\",\")}` : \"\";\n\t\tconst disabled = Array.isArray(data.disabledPluginIds) ? ` disabled=${data.disabledPluginIds.join(\",\")}` : \"\";\n\t\treturn `${status}: ${command} profile:${data.profileId}${selected}${disabled}`;\n\t}\n\treturn `${status}: ${command}`;\n}\n\nfunction safeError(code: PluginEcosystemCliErrorCodeV1): PluginEcosystemCliErrorV1 {\n\tconst messages: Record<PluginEcosystemCliErrorCodeV1, string> = {\n\t\tinvalid_command: \"The plugin ecosystem command is invalid\",\n\t\tunsupported_dependencies: \"The plugin ecosystem operation is unavailable on this host\",\n\t\tnot_found: \"The requested plugin was not found\",\n\t\tnot_installed: \"The requested plugin is not installed\",\n\t\tregistry_failed: \"The plugin registry operation failed\",\n\t\tacquisition_failed: \"The plugin package acquisition failed\",\n\t\tdistribution_failed: \"The plugin distribution operation failed\",\n\t\tincompatible: \"The requested plugin is incompatible with this host\",\n\t\talready_installed: \"This plugin version is already installed in the requested scope\",\n\t\tinstaller_failed: \"The plugin installer operation failed\",\n\t\tuninstall_failed: \"The host plugin uninstall operation failed\",\n\t\tstate_failed: \"The plugin state operation failed\",\n\t\tselection_failed: \"The plugin selection operation failed\",\n\t\tcancelled: \"Plugin ecosystem operation was cancelled\",\n\t};\n\treturn Object.freeze({ code, message: messages[code] });\n}\n\nfunction isCancelled(signal: AbortSignal | undefined): boolean {\n\treturn signal?.aborted === true;\n}\n\nfunction stateStoreOf(\n\toptions: PluginEcosystemCliOptionsV1,\n\tscope: PluginStateScopeV1 | undefined,\n): PluginStateStoreV1 | undefined {\n\tif (scope === \"project\") return options.projectStateStore;\n\treturn options.stateStore ?? options.stateHost;\n}\n\nfunction operationScope(scope: PluginStateScopeV1 | undefined): PluginStateScopeV1 {\n\treturn scope ?? \"global\";\n}\n\nfunction scopeRefOf(options: PluginEcosystemCliOptionsV1, scope: PluginStateScopeV1): string | undefined {\n\treturn scope === \"global\" ? DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1 : options.projectScopeRef;\n}\n\nfunction installerSupportsScope(installer: PluginInstallerV1 | undefined, scope: PluginStateScopeV1): boolean {\n\treturn installer?.supportedScopes?.includes(scope) === true;\n}\n\nfunction selectionStoreOf(\n\toptions: PluginEcosystemCliOptionsV1,\n\tscope: PluginStateScopeV1 | undefined,\n): PluginSelectionStoreV1 | undefined {\n\tif (scope === \"project\") return options.projectSelectionStore;\n\treturn options.selectionStore ?? options.selectionHost;\n}\n\nfunction stateEntry(record: PluginStateRecordV1): Readonly<Record<string, unknown>> {\n\treturn Object.freeze({\n\t\tpluginId: record.pluginId,\n\t\tpluginVersion: record.pluginVersion,\n\t\tmanifestDigest: record.manifestDigest,\n\t\tscope: record.state.scope,\n\t\tscopeRef: record.state.scopeRef,\n\t\tenabled: record.state.enabled,\n\t\tlifecycle: record.state.lifecycle,\n\t\t...(record.source === undefined ? {} : { source: record.source }),\n\t});\n}\n\nfunction selectionEntry(selection: {\n\treadonly profileId: string;\n\treadonly selectedPluginIds: readonly string[];\n\treadonly disabledPluginIds: readonly string[];\n}): Readonly<Record<string, unknown>> {\n\treturn Object.freeze({\n\t\tprofileId: selection.profileId,\n\t\tselectedPluginIds: Object.freeze([...selection.selectedPluginIds]),\n\t\tdisabledPluginIds: Object.freeze([...selection.disabledPluginIds]),\n\t});\n}\n\nfunction catalogEntry(entry: {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly manifestDigest: string;\n\treadonly resolution: {\n\t\treadonly status: string;\n\t\treadonly diagnostics: readonly { readonly code: string }[];\n\t};\n}): Readonly<Record<string, unknown>> {\n\treturn Object.freeze({\n\t\tpluginId: entry.pluginId,\n\t\tpluginVersion: entry.pluginVersion,\n\t\tmanifestDigest: entry.manifestDigest,\n\t\tstatus: entry.resolution.status,\n\t\tdiagnosticCodes: Object.freeze(entry.resolution.diagnostics.map((item) => item.code).slice(0, 16)),\n\t});\n}\n\nfunction findStateRecord(\n\trecords: readonly PluginStateRecordV1[],\n\tpluginId: string,\n\tpluginVersion?: string,\n\tscope?: PluginStateScopeV1,\n\tscopeRef?: string,\n): PluginStateRecordV1 | undefined {\n\treturn records.find(\n\t\t(record) =>\n\t\t\trecord.pluginId === pluginId &&\n\t\t\t(pluginVersion === undefined || record.pluginVersion === pluginVersion) &&\n\t\t\t(scope === undefined || record.state.scope === scope) &&\n\t\t\t(scopeRef === undefined || record.state.scopeRef === scopeRef),\n\t);\n}\n\nfunction findCurrentStateRecord(\n\trecords: readonly PluginStateRecordV1[],\n\tpluginId: string,\n\tscope?: PluginStateScopeV1,\n\tscopeRef?: string,\n): PluginStateRecordV1 | undefined {\n\treturn (\n\t\trecords.find(\n\t\t\t(record) =>\n\t\t\t\trecord.pluginId === pluginId &&\n\t\t\t\t(scope === undefined || record.state.scope === scope) &&\n\t\t\t\t(scopeRef === undefined || record.state.scopeRef === scopeRef) &&\n\t\t\t\trecord.state.lifecycle === \"active\",\n\t\t) ?? findStateRecord(records, pluginId, undefined, scope, scopeRef)\n\t);\n}\n\nfunction requireDependencies(\n\toptions: PluginEcosystemCliOptionsV1,\n\tscope: PluginStateScopeV1 | undefined,\n\tscopeRef: string | undefined,\n): asserts options is PluginEcosystemCliOptionsV1 & {\n\treadonly registry: PluginEcosystemRegistryV1;\n\treadonly installer: PluginInstallerV1;\n\treadonly host: HostFactsV1;\n} {\n\tconst requestedScope = operationScope(scope);\n\tif (\n\t\t!options.registry ||\n\t\t!options.installer ||\n\t\tscopeRef === undefined ||\n\t\t!installerSupportsScope(options.installer, requestedScope) ||\n\t\t!stateStoreOf(options, requestedScope) ||\n\t\t!options.host\n\t)\n\t\tthrow new Error(\"unsupported dependencies\");\n}\n\nasync function listManifests(\n\toptions: PluginEcosystemCliOptionsV1,\n\tsignal?: AbortSignal,\n): Promise<readonly PluginManifestV1[]> {\n\tif (options.registry?.list) return await options.registry.list({ signal });\n\tif (options.manifests) return options.manifests;\n\tthrow new Error(\"unsupported dependencies\");\n}\n\nfunction checkSignal(signal?: AbortSignal): void {\n\tif (isCancelled(signal)) throw new Error(\"cancelled\");\n}\n\nexport function createPluginEcosystemCliV1(options: PluginEcosystemCliOptionsV1): PluginEcosystemCliV1 {\n\t// Host installation and state persistence are a single logical transaction.\n\t// Serializing them prevents two same-version requests from both passing the\n\t// preflight state read and orphaning one physical installation.\n\tlet installTransactionTail: Promise<void> = Promise.resolve();\n\tasync function acquireInstallTransaction(): Promise<() => void> {\n\t\tlet release!: () => void;\n\t\tconst turn = new Promise<void>((resolve) => {\n\t\t\trelease = resolve;\n\t\t});\n\t\tconst previous = installTransactionTail;\n\t\tinstallTransactionTail = previous.then(\n\t\t\t() => turn,\n\t\t\t() => turn,\n\t\t);\n\t\tawait previous;\n\t\treturn release;\n\t}\n\n\tasync function execute(input: PluginEcosystemCliRequestV1): Promise<PluginEcosystemCliResponseV1> {\n\t\tlet parsed: PluginEcosystemCliParsedCommandV1;\n\t\ttry {\n\t\t\tparsed = parsePluginEcosystemCliCommandV1(input.argv, input.format ?? \"text\");\n\t\t} catch {\n\t\t\treturn response(\"invalid\", input.format === \"json\" ? \"json\" : \"text\", \"failed\", safeError(\"invalid_command\"));\n\t\t}\n\t\tconst releaseInstallTransaction =\n\t\t\tparsed.command === \"install\" || parsed.command === \"update\" ? await acquireInstallTransaction() : undefined;\n\t\ttry {\n\t\t\tconst signal = input.signal;\n\t\t\tconst requestedScope = operationScope(parsed.scope);\n\t\t\tconst scopeRef = scopeRefOf(options, requestedScope);\n\t\t\tif (isCancelled(signal)) return response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\tif (scopeRef === undefined)\n\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\tlet phase: \"registry\" | \"distribution\" | \"state\" | \"selection\" | \"installer\" = \"registry\";\n\t\t\ttry {\n\t\t\t\tif (parsed.command === \"catalog-list\") {\n\t\t\t\t\tif (!options.host)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst manifests = await listManifests(options, signal);\n\t\t\t\t\tcheckSignal(signal);\n\t\t\t\t\tconst snapshot = buildPluginCatalogV1({\n\t\t\t\t\t\tmanifests,\n\t\t\t\t\t\thost: options.host,\n\t\t\t\t\t\tmaxEntries: MAX_PLUGIN_ECOSYSTEM_CLI_LIST_ENTRIES_V1,\n\t\t\t\t\t});\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tversion: snapshot.version,\n\t\t\t\t\t\tentries: snapshot.entries.map(catalogEntry),\n\t\t\t\t\t\ttruncated: snapshot.truncated,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (parsed.command === \"selection-list\") {\n\t\t\t\t\tphase = \"selection\";\n\t\t\t\t\tconst selectionStore = selectionStoreOf(options, parsed.scope);\n\t\t\t\t\tif (!selectionStore)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst result = await selectionStore.read({ signal });\n\t\t\t\t\tif (result.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (result.status === \"invalid\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"selection_failed\"));\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tversion: result.snapshot.version,\n\t\t\t\t\t\tscope: parsed.scope ?? \"global\",\n\t\t\t\t\t\tentries: result.snapshot.selections.map(selectionEntry),\n\t\t\t\t\t\ttruncated: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (parsed.command === \"selection-set\") {\n\t\t\t\t\tphase = \"selection\";\n\t\t\t\t\tconst selectionStore = selectionStoreOf(options, parsed.scope);\n\t\t\t\t\tif (!selectionStore)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tlet selection: PluginSelectionV1;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tselection = createPluginSelectionV1({\n\t\t\t\t\t\t\tprofileId: parsed.profileId as string,\n\t\t\t\t\t\t\tselectedPluginIds: parsed.selectedPluginIds ?? [],\n\t\t\t\t\t\t\tdisabledPluginIds: [],\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch {\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"selection_failed\"));\n\t\t\t\t\t}\n\t\t\t\t\tconst result = await selectionStore.set({ selection, signal });\n\t\t\t\t\tif (result.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (result.status !== \"ok\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"selection_failed\"));\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tprofileId: selection.profileId,\n\t\t\t\t\t\tscope: parsed.scope ?? \"global\",\n\t\t\t\t\t\tselectedPluginIds: selection.selectedPluginIds,\n\t\t\t\t\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t\t\t\t\t\tchanged: result.changed,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (parsed.command === \"selection-clear\") {\n\t\t\t\t\tphase = \"selection\";\n\t\t\t\t\tconst selectionStore = selectionStoreOf(options, parsed.scope);\n\t\t\t\t\tif (!selectionStore)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst result = await selectionStore.clear({\n\t\t\t\t\t\tprofileId: parsed.profileId as string,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t});\n\t\t\t\t\tif (result.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (result.status !== \"ok\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"selection_failed\"));\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tprofileId: parsed.profileId,\n\t\t\t\t\t\tscope: parsed.scope ?? \"global\",\n\t\t\t\t\t\tchanged: result.changed,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (parsed.command === \"state-list\") {\n\t\t\t\t\tphase = \"state\";\n\t\t\t\t\tconst stateStore = stateStoreOf(options, requestedScope);\n\t\t\t\t\tif (!stateStore)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst result = await stateStore.read({ signal });\n\t\t\t\t\tif (result.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (result.status === \"invalid\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"state_failed\"));\n\t\t\t\t\tconst records = result.snapshot.records.filter(\n\t\t\t\t\t\t(record) => record.state.scope === requestedScope && record.state.scopeRef === scopeRef,\n\t\t\t\t\t);\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tversion: result.snapshot.version,\n\t\t\t\t\t\tentries: records.map(stateEntry),\n\t\t\t\t\t\ttruncated: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (parsed.command === \"enable\" || parsed.command === \"disable\" || parsed.command === \"remove\") {\n\t\t\t\t\tphase = \"state\";\n\t\t\t\t\tif (\n\t\t\t\t\t\tparsed.command === \"remove\" &&\n\t\t\t\t\t\trequestedScope === \"project\" &&\n\t\t\t\t\t\t!installerSupportsScope(options.installer, requestedScope)\n\t\t\t\t\t)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst stateStore = stateStoreOf(options, requestedScope);\n\t\t\t\t\tif (!stateStore)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tconst current = await stateStore.read({ signal });\n\t\t\t\t\tif (current.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (current.status === \"invalid\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"state_failed\"));\n\t\t\t\t\tconst record =\n\t\t\t\t\t\tparsed.pluginVersion === undefined\n\t\t\t\t\t\t\t? findCurrentStateRecord(\n\t\t\t\t\t\t\t\t\tcurrent.snapshot.records,\n\t\t\t\t\t\t\t\t\tparsed.pluginId as string,\n\t\t\t\t\t\t\t\t\trequestedScope,\n\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: findStateRecord(\n\t\t\t\t\t\t\t\t\tcurrent.snapshot.records,\n\t\t\t\t\t\t\t\t\tparsed.pluginId as string,\n\t\t\t\t\t\t\t\t\tparsed.pluginVersion,\n\t\t\t\t\t\t\t\t\trequestedScope,\n\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\tif (!record) return response(parsed.command, parsed.format, \"failed\", safeError(\"not_installed\"));\n\t\t\t\t\tif (parsed.command === \"remove\") {\n\t\t\t\t\t\t// Global state-only removal remains available for repairing stale records.\n\t\t\t\t\t\t// Project removal requires a scope-capable installer and host cleanup first.\n\t\t\t\t\t\tif (options.installer !== undefined) {\n\t\t\t\t\t\t\tlet removedFromHost: Awaited<ReturnType<PluginInstallerV1[\"remove\"]>>;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tremovedFromHost = await options.installer.remove({\n\t\t\t\t\t\t\t\t\tinstallation: {\n\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\tpluginId: record.pluginId,\n\t\t\t\t\t\t\t\t\t\tpluginVersion: record.pluginVersion,\n\t\t\t\t\t\t\t\t\t\tmanifestDigest: record.manifestDigest,\n\t\t\t\t\t\t\t\t\t\tscope: record.state.scope,\n\t\t\t\t\t\t\t\t\t\tscopeRef: record.state.scopeRef,\n\t\t\t\t\t\t\t\t\t\tinstallationRef: record.installationRef,\n\t\t\t\t\t\t\t\t\t\tstate: record.state.lifecycle,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"uninstall_failed\"));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (removedFromHost.status !== \"succeeded\")\n\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\tremovedFromHost.status === \"cancelled\" ? \"cancelled\" : \"failed\",\n\t\t\t\t\t\t\t\t\tsafeError(removedFromHost.status === \"cancelled\" ? \"cancelled\" : \"uninstall_failed\"),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst removed = await stateStore.remove({\n\t\t\t\t\t\t\tpluginId: record.pluginId,\n\t\t\t\t\t\t\tpluginVersion: record.pluginVersion,\n\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (removed.status === \"cancelled\")\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\t\tif (removed.status !== \"ok\")\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"state_failed\"));\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\t\tpluginId: record.pluginId,\n\t\t\t\t\t\t\tpluginVersion: record.pluginVersion,\n\t\t\t\t\t\t\t...(options.installer === undefined ? {} : { hostRemoved: true }),\n\t\t\t\t\t\t\tchanged: removed.changed,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst enabled = parsed.command === \"enable\";\n\t\t\t\t\tconst updated = await stateStore.upsert({\n\t\t\t\t\t\tinstallation: {\n\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\tpluginId: record.pluginId,\n\t\t\t\t\t\t\tpluginVersion: record.pluginVersion,\n\t\t\t\t\t\t\tmanifestDigest: record.manifestDigest,\n\t\t\t\t\t\t\tscope: record.state.scope,\n\t\t\t\t\t\t\tscopeRef: record.state.scopeRef,\n\t\t\t\t\t\t\tinstallationRef: record.installationRef,\n\t\t\t\t\t\t\tstate: record.state.lifecycle,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\tenabled,\n\t\t\t\t\t\t...(record.source === undefined ? {} : { source: record.source }),\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t});\n\t\t\t\t\tif (updated.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (updated.status !== \"ok\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"state_failed\"));\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\tpluginId: record.pluginId,\n\t\t\t\t\t\tpluginVersion: record.pluginVersion,\n\t\t\t\t\t\tenabled,\n\t\t\t\t\t\tchanged: updated.changed,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// install/update must have every host boundary injected. They never claim success with partial services.\n\t\t\t\tconst stateStore = stateStoreOf(options, requestedScope);\n\t\t\t\t// Const locals keep the narrowing alive inside the shared install flow closure.\n\t\t\t\tconst installer = options.installer;\n\t\t\t\tconst host = options.host;\n\t\t\t\tconst acquisitionTarget =\n\t\t\t\t\tparsed.command === \"install\" &&\n\t\t\t\t\tparsed.target !== undefined &&\n\t\t\t\t\tisPluginAcquisitionRefTargetV1(parsed.target)\n\t\t\t\t\t\t? parsed.target\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (\n\t\t\t\t\t!stateStore ||\n\t\t\t\t\t!installer ||\n\t\t\t\t\t!host ||\n\t\t\t\t\t!installerSupportsScope(installer, requestedScope) ||\n\t\t\t\t\t(acquisitionTarget === undefined && !options.registry)\n\t\t\t\t)\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t// One shared install transaction serves both resolutions: the legacy\n\t\t\t\t// registry resolve path and the multi-source acquisition ref path.\n\t\t\t\tconst runInstallFlow = async (resolved: {\n\t\t\t\t\treadonly manifest: PluginManifestV1;\n\t\t\t\t\treadonly source: string;\n\t\t\t\t\treadonly expectedDigest?: string;\n\t\t\t\t\treadonly distribution?: PluginDistributionDescriptorV1;\n\t\t\t\t\treadonly acquired?: PluginAcquisitionPackageV1;\n\t\t\t\t}): Promise<PluginEcosystemCliResponseV1> => {\n\t\t\t\t\tphase = \"state\";\n\t\t\t\t\tconst current = await stateStore.read({ signal });\n\t\t\t\t\tif (current.status === \"cancelled\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\tif (current.status === \"invalid\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"state_failed\"));\n\t\t\t\t\tconst previous = findCurrentStateRecord(\n\t\t\t\t\t\tcurrent.snapshot.records,\n\t\t\t\t\t\tresolved.manifest.id,\n\t\t\t\t\t\trequestedScope,\n\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t);\n\t\t\t\t\tconst installedVersion = findStateRecord(\n\t\t\t\t\t\tcurrent.snapshot.records,\n\t\t\t\t\t\tresolved.manifest.id,\n\t\t\t\t\t\tresolved.manifest.pluginVersion,\n\t\t\t\t\t\trequestedScope,\n\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t);\n\t\t\t\t\tif (installedVersion !== undefined)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"already_installed\"));\n\t\t\t\t\tif (parsed.command === \"update\" && (!previous || previous.state.lifecycle !== \"active\"))\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"not_installed\"));\n\t\t\t\t\tphase = \"installer\";\n\t\t\t\t\tconst verified = installer.prepare({\n\t\t\t\t\t\tmanifest: resolved.manifest,\n\t\t\t\t\t\tsource: resolved.source,\n\t\t\t\t\t\thost,\n\t\t\t\t\t\t...(resolved.expectedDigest === undefined ? {} : { expectedDigest: resolved.expectedDigest }),\n\t\t\t\t\t});\n\t\t\t\t\tif (verified.status !== \"verified\")\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"incompatible\"));\n\t\t\t\t\tlet artifact: Awaited<ReturnType<PluginDistributionV1[\"acquireArtifact\"]>> | undefined =\n\t\t\t\t\t\tresolved.acquired?.artifact;\n\t\t\t\t\tif (resolved.distribution !== undefined) {\n\t\t\t\t\t\tif (options.distribution === undefined)\n\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\"unsupported\",\n\t\t\t\t\t\t\t\tsafeError(\"unsupported_dependencies\"),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tphase = \"distribution\";\n\t\t\t\t\t\tconst descriptor = options.distribution.validateDescriptor(resolved.distribution);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdescriptor.pluginId !== verified.record.pluginId ||\n\t\t\t\t\t\t\tdescriptor.pluginVersion !== verified.record.pluginVersion ||\n\t\t\t\t\t\t\tdescriptor.manifestDigest !== verified.record.manifestDigest\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"incompatible\"));\n\t\t\t\t\t\tartifact = await options.distribution.acquireArtifact({\n\t\t\t\t\t\t\tdescriptor,\n\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tlet artifactReleased = false;\n\t\t\t\t\tconst releaseArtifact = async (): Promise<boolean> => {\n\t\t\t\t\t\tif (artifact === undefined || artifactReleased) return true;\n\t\t\t\t\t\tconst previousPhase = phase;\n\t\t\t\t\t\tphase = \"distribution\";\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (resolved.acquired !== undefined) {\n\t\t\t\t\t\t\t\t// Acquisition artifacts are owned by the acquisition boundary.\n\t\t\t\t\t\t\t\tconst released = await resolved.acquired.release();\n\t\t\t\t\t\t\t\tif (!released) return false;\n\t\t\t\t\t\t\t\tartifactReleased = true;\n\t\t\t\t\t\t\t\tphase = previousPhase;\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Cleanup must complete even after the caller has cancelled the workflow.\n\t\t\t\t\t\t\tif (options.distribution === undefined) return false;\n\t\t\t\t\t\t\tawait options.distribution.releaseArtifact({ artifact });\n\t\t\t\t\t\t\tartifactReleased = true;\n\t\t\t\t\t\t\tphase = previousPhase;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tlet transactionResponse: PluginEcosystemCliResponseV1 | undefined;\n\t\t\t\t\tlet transactionError: unknown;\n\t\t\t\t\tlet artifactCleanupFailed = false;\n\t\t\t\t\ttry {\n\t\t\t\t\t\ttransactionResponse = await (async (): Promise<PluginEcosystemCliResponseV1> => {\n\t\t\t\t\t\t\tcheckSignal(signal);\n\t\t\t\t\t\t\tphase = \"installer\";\n\t\t\t\t\t\t\tconst installed = await installer.install({\n\t\t\t\t\t\t\t\trecord: verified.record,\n\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t...(artifact === undefined ? {} : { artifact }),\n\t\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (installed.status !== \"succeeded\") {\n\t\t\t\t\t\t\t\tif (!(await releaseArtifact()))\n\t\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\t\tisCancelled(signal) ? \"cancelled\" : \"failed\",\n\t\t\t\t\t\t\t\t\t\tsafeError(isCancelled(signal) ? \"cancelled\" : \"distribution_failed\"),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\tinstalled.status === \"cancelled\" ? \"cancelled\" : \"failed\",\n\t\t\t\t\t\t\t\t\tsafeError(installed.status === \"cancelled\" ? \"cancelled\" : \"installer_failed\"),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst activated = await installer.activate({\n\t\t\t\t\t\t\t\tinstallation: installed.installation,\n\t\t\t\t\t\t\t\trecord: verified.record,\n\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (activated.status !== \"succeeded\") {\n\t\t\t\t\t\t\t\tif (previous && previous.state.lifecycle === \"active\") {\n\t\t\t\t\t\t\t\t\tconst rollback = await installer.rollback({\n\t\t\t\t\t\t\t\t\t\tfailed: installed.installation,\n\t\t\t\t\t\t\t\t\t\tprevious: {\n\t\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\t\tpluginId: previous.pluginId,\n\t\t\t\t\t\t\t\t\t\t\tpluginVersion: previous.pluginVersion,\n\t\t\t\t\t\t\t\t\t\t\tmanifestDigest: previous.manifestDigest,\n\t\t\t\t\t\t\t\t\t\t\tscope: previous.state.scope,\n\t\t\t\t\t\t\t\t\t\t\tscopeRef: previous.state.scopeRef,\n\t\t\t\t\t\t\t\t\t\t\tinstallationRef: previous.installationRef,\n\t\t\t\t\t\t\t\t\t\t\tstate: \"active\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t\t\tsignal: undefined,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif (rollback.status !== \"succeeded\")\n\t\t\t\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"installer_failed\"));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst removed = await installer.remove({\n\t\t\t\t\t\t\t\t\tinstallation: installed.installation,\n\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (removed.status !== \"succeeded\")\n\t\t\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"installer_failed\"));\n\t\t\t\t\t\t\t\tif (!(await releaseArtifact()))\n\t\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\t\tisCancelled(signal) ? \"cancelled\" : \"failed\",\n\t\t\t\t\t\t\t\t\t\tsafeError(isCancelled(signal) ? \"cancelled\" : \"distribution_failed\"),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\tactivated.status === \"cancelled\" ? \"cancelled\" : \"failed\",\n\t\t\t\t\t\t\t\t\tsafeError(activated.status === \"cancelled\" ? \"cancelled\" : \"installer_failed\"),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst restoreActivatedInstallation = async (): Promise<boolean> => {\n\t\t\t\t\t\t\t\tconst replacesPrevious =\n\t\t\t\t\t\t\t\t\tprevious !== undefined &&\n\t\t\t\t\t\t\t\t\t`${previous.pluginId}@${previous.pluginVersion}` !==\n\t\t\t\t\t\t\t\t\t\t`${activated.installation.pluginId}@${activated.installation.pluginVersion}`;\n\t\t\t\t\t\t\t\tif (replacesPrevious && previous.state.lifecycle === \"active\") {\n\t\t\t\t\t\t\t\t\tconst rollback = await installer.rollback({\n\t\t\t\t\t\t\t\t\t\tfailed: activated.installation,\n\t\t\t\t\t\t\t\t\t\tprevious: {\n\t\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\t\tpluginId: previous.pluginId,\n\t\t\t\t\t\t\t\t\t\t\tpluginVersion: previous.pluginVersion,\n\t\t\t\t\t\t\t\t\t\t\tmanifestDigest: previous.manifestDigest,\n\t\t\t\t\t\t\t\t\t\t\tscope: previous.state.scope,\n\t\t\t\t\t\t\t\t\t\t\tscopeRef: previous.state.scopeRef,\n\t\t\t\t\t\t\t\t\t\t\tinstallationRef: previous.installationRef,\n\t\t\t\t\t\t\t\t\t\t\tstate: \"active\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif (rollback.status !== \"succeeded\") return false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (previous !== undefined && !replacesPrevious) return true;\n\t\t\t\t\t\t\t\tconst removed = await installer.remove({\n\t\t\t\t\t\t\t\t\tinstallation: activated.installation,\n\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn removed.status === \"succeeded\";\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst restoreState = async (): Promise<boolean> => {\n\t\t\t\t\t\t\t\tconst replacesPrevious =\n\t\t\t\t\t\t\t\t\tprevious !== undefined &&\n\t\t\t\t\t\t\t\t\t`${previous.pluginId}@${previous.pluginVersion}` !==\n\t\t\t\t\t\t\t\t\t\t`${activated.installation.pluginId}@${activated.installation.pluginVersion}`;\n\t\t\t\t\t\t\t\tlet restored = true;\n\t\t\t\t\t\t\t\tif (previous === undefined || replacesPrevious) {\n\t\t\t\t\t\t\t\t\tconst removed = await stateStore\n\t\t\t\t\t\t\t\t\t\t.remove({\n\t\t\t\t\t\t\t\t\t\t\tpluginId: activated.installation.pluginId,\n\t\t\t\t\t\t\t\t\t\t\tpluginVersion: activated.installation.pluginVersion,\n\t\t\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\t\t\tscopeRef,\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.catch(() => undefined);\n\t\t\t\t\t\t\t\t\trestored = removed?.status === \"ok\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (previous !== undefined) {\n\t\t\t\t\t\t\t\t\tconst restoredPrevious = await stateStore\n\t\t\t\t\t\t\t\t\t\t.upsert({\n\t\t\t\t\t\t\t\t\t\t\tinstallation: {\n\t\t\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tpluginId: previous.pluginId,\n\t\t\t\t\t\t\t\t\t\t\t\tpluginVersion: previous.pluginVersion,\n\t\t\t\t\t\t\t\t\t\t\t\tmanifestDigest: previous.manifestDigest,\n\t\t\t\t\t\t\t\t\t\t\t\tscope: previous.state.scope,\n\t\t\t\t\t\t\t\t\t\t\t\tscopeRef: previous.state.scopeRef,\n\t\t\t\t\t\t\t\t\t\t\t\tinstallationRef: previous.installationRef,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: \"active\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\t\t\tenabled: previous.state.enabled,\n\t\t\t\t\t\t\t\t\t\t\t...(previous.source === undefined ? {} : { source: previous.source }),\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.catch(() => undefined);\n\t\t\t\t\t\t\t\t\trestored = restored && restoredPrevious?.status === \"ok\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn restored;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst stateFailure = async (\n\t\t\t\t\t\t\t\tstatus: \"failed\" | \"cancelled\",\n\t\t\t\t\t\t\t): Promise<PluginEcosystemCliResponseV1> => {\n\t\t\t\t\t\t\t\tconst [hostRestored, stateRestored] = await Promise.all([\n\t\t\t\t\t\t\t\t\trestoreActivatedInstallation().catch(() => false),\n\t\t\t\t\t\t\t\t\trestoreState().catch(() => false),\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\thostRestored && stateRestored ? status : \"failed\",\n\t\t\t\t\t\t\t\t\tsafeError(\n\t\t\t\t\t\t\t\t\t\thostRestored && stateRestored\n\t\t\t\t\t\t\t\t\t\t\t? status === \"cancelled\"\n\t\t\t\t\t\t\t\t\t\t\t\t? \"cancelled\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"state_failed\"\n\t\t\t\t\t\t\t\t\t\t\t: \"installer_failed\",\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (!(await releaseArtifact())) {\n\t\t\t\t\t\t\t\tphase = \"installer\";\n\t\t\t\t\t\t\t\tconst restored = await restoreActivatedInstallation().catch(() => false);\n\t\t\t\t\t\t\t\treturn response(\n\t\t\t\t\t\t\t\t\tparsed.command,\n\t\t\t\t\t\t\t\t\tparsed.format,\n\t\t\t\t\t\t\t\t\t\"failed\",\n\t\t\t\t\t\t\t\t\tsafeError(restored ? \"distribution_failed\" : \"installer_failed\"),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tphase = \"state\";\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tprevious &&\n\t\t\t\t\t\t\t\t`${previous.pluginId}@${previous.pluginVersion}` !==\n\t\t\t\t\t\t\t\t\t`${installed.installation.pluginId}@${installed.installation.pluginVersion}`\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst retained = await stateStore.upsert({\n\t\t\t\t\t\t\t\t\tinstallation: {\n\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\tpluginId: previous.pluginId,\n\t\t\t\t\t\t\t\t\t\tpluginVersion: previous.pluginVersion,\n\t\t\t\t\t\t\t\t\t\tmanifestDigest: previous.manifestDigest,\n\t\t\t\t\t\t\t\t\t\tscope: previous.state.scope,\n\t\t\t\t\t\t\t\t\t\tscopeRef: previous.state.scopeRef,\n\t\t\t\t\t\t\t\t\t\tinstallationRef: previous.installationRef,\n\t\t\t\t\t\t\t\t\t\tstate: \"retained\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\t\tenabled: previous.state.enabled,\n\t\t\t\t\t\t\t\t\t...(previous.source === undefined ? {} : { source: previous.source }),\n\t\t\t\t\t\t\t\t\tsignal: undefined,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (retained.status !== \"ok\") return await stateFailure(\"failed\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst persisted = await stateStore.upsert({\n\t\t\t\t\t\t\t\tinstallation: activated.installation,\n\t\t\t\t\t\t\t\tscope: requestedScope,\n\t\t\t\t\t\t\t\tenabled: previous?.state.enabled ?? true,\n\t\t\t\t\t\t\t\t...(resolved.acquired === undefined ? {} : { source: resolved.source }),\n\t\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (persisted.status === \"cancelled\") return await stateFailure(\"cancelled\");\n\t\t\t\t\t\t\tif (persisted.status !== \"ok\") return await stateFailure(\"failed\");\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"succeeded\", undefined, {\n\t\t\t\t\t\t\t\tpluginId: activated.installation.pluginId,\n\t\t\t\t\t\t\t\tpluginVersion: activated.installation.pluginVersion,\n\t\t\t\t\t\t\t\tlifecycle: \"active\",\n\t\t\t\t\t\t\t\tchanged: persisted.changed,\n\t\t\t\t\t\t\t\t...(resolved.acquired === undefined ? {} : { source: resolved.source }),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})();\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\ttransactionError = error;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tartifactCleanupFailed = !(await releaseArtifact());\n\t\t\t\t\t}\n\t\t\t\t\tif (artifactCleanupFailed)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"distribution_failed\"));\n\t\t\t\t\tif (transactionError !== undefined) throw transactionError;\n\t\t\t\t\tif (transactionResponse === undefined)\n\t\t\t\t\t\tthrow new Error(\"plugin installation transaction did not complete\");\n\t\t\t\t\treturn transactionResponse;\n\t\t\t\t};\n\t\t\t\tif (acquisitionTarget !== undefined) {\n\t\t\t\t\t// Ref installs consult the acquisition boundary instead of the\n\t\t\t\t\t// registry; the shared guard above already verified installer,\n\t\t\t\t\t// host, state store, and scope support.\n\t\t\t\t\tif (options.acquisition === undefined)\n\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t\tphase = \"distribution\";\n\t\t\t\t\tlet acquired: PluginAcquisitionPackageV1;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tacquired = await options.acquisition.resolvePackage({ ref: acquisitionTarget, signal });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (isCancelled(signal) || (error instanceof PluginAcquisitionErrorV1 && error.code === \"cancelled\"))\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\t\t\tif (error instanceof PluginAcquisitionErrorV1)\n\t\t\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", {\n\t\t\t\t\t\t\t\tcode: \"acquisition_failed\",\n\t\t\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tcheckSignal(signal);\n\t\t\t\t\treturn await runInstallFlow({\n\t\t\t\t\t\tmanifest: acquired.manifest,\n\t\t\t\t\t\tsource: acquired.source,\n\t\t\t\t\t\tacquired,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\trequireDependencies(options, requestedScope, scopeRef);\n\t\t\t\t} catch {\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\t}\n\t\t\t\tconst identity = parsed.pluginId as string;\n\t\t\t\tconst packageValue = await options.registry.resolve({\n\t\t\t\t\tpluginId: identity,\n\t\t\t\t\tpluginVersion: parsed.pluginVersion,\n\t\t\t\t\tsignal,\n\t\t\t\t});\n\t\t\t\tcheckSignal(signal);\n\t\t\t\tif (!packageValue) return response(parsed.command, parsed.format, \"failed\", safeError(\"not_found\"));\n\t\t\t\tif (\n\t\t\t\t\tpackageValue.manifest.id !== identity ||\n\t\t\t\t\t(parsed.pluginVersion !== undefined && packageValue.manifest.pluginVersion !== parsed.pluginVersion)\n\t\t\t\t)\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"failed\", safeError(\"not_found\"));\n\t\t\t\treturn await runInstallFlow({\n\t\t\t\t\tmanifest: packageValue.manifest,\n\t\t\t\t\tsource: packageValue.source,\n\t\t\t\t\t...(packageValue.expectedDigest === undefined ? {} : { expectedDigest: packageValue.expectedDigest }),\n\t\t\t\t\t...(packageValue.distribution === undefined ? {} : { distribution: packageValue.distribution }),\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (isCancelled(signal) || (error instanceof Error && error.message === \"cancelled\"))\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"cancelled\", safeError(\"cancelled\"));\n\t\t\t\tif (error instanceof Error && error.message === \"unsupported dependencies\")\n\t\t\t\t\treturn response(parsed.command, parsed.format, \"unsupported\", safeError(\"unsupported_dependencies\"));\n\t\t\t\treturn response(\n\t\t\t\t\tparsed.command,\n\t\t\t\t\tparsed.format,\n\t\t\t\t\t\"failed\",\n\t\t\t\t\tsafeError(\n\t\t\t\t\t\tphase === \"registry\"\n\t\t\t\t\t\t\t? \"registry_failed\"\n\t\t\t\t\t\t\t: phase === \"distribution\"\n\t\t\t\t\t\t\t\t? \"distribution_failed\"\n\t\t\t\t\t\t\t\t: phase === \"state\"\n\t\t\t\t\t\t\t\t\t? \"state_failed\"\n\t\t\t\t\t\t\t\t\t: phase === \"selection\"\n\t\t\t\t\t\t\t\t\t\t? \"selection_failed\"\n\t\t\t\t\t\t\t\t\t\t: \"installer_failed\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\treleaseInstallTransaction?.();\n\t\t}\n\t}\n\treturn { execute };\n}\n\nexport async function runPluginEcosystemCliV1(\n\toptions: PluginEcosystemCliOptionsV1,\n\tinput: PluginEcosystemCliRequestV1,\n): Promise<PluginEcosystemCliResponseV1> {\n\treturn await createPluginEcosystemCliV1(options).execute(input);\n}\n"]}
@@ -0,0 +1,33 @@
1
+ import type { ActivePluginBindingResolverV1 } from "./active-bindings.ts";
2
+ import type { HostFactsV1 } from "./types.ts";
3
+ /** Directory name of the default install store below the agent directory. */
4
+ export declare const DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1 = "plugin-install-store-v1";
5
+ /** File name of the global/project plugin-state.json stores shared by the CLI and the default resolver. */
6
+ export declare const DEFAULT_PLUGIN_STATE_FILE_V1 = "plugin-state.json";
7
+ /**
8
+ * Deterministic scope reference for the project scope: a sha256 of the
9
+ * canonical cwd, so project selection cannot be inferred from a raw path.
10
+ */
11
+ export declare function projectPluginScopeRefV1(cwd: string): string;
12
+ /** Opaque install-store directory below the agent directory; shared with the default install flow. */
13
+ export declare function defaultPluginInstallStoreDirectoryV1(agentDir: string): string;
14
+ /**
15
+ * Persistent install-store instance root: the install host with
16
+ * `persistence: "persistent"` keeps its index and installation directories
17
+ * below this fixed subdirectory of the store directory. Disk registry sources
18
+ * must read here to observe real installs.
19
+ */
20
+ export declare function defaultPluginInstallStoreInstanceRootV1(agentDir: string): string;
21
+ /** Host facts observed from the current runtime; shared by the CLI and the default resolver. */
22
+ export declare function defaultPluginHostFactsV1(): HostFactsV1;
23
+ /**
24
+ * Built-in active plugin bindings resolver for the default CLI.
25
+ *
26
+ * Given {cwd, agentDir} it reads the global and project plugin-state.json
27
+ * stores and the agentDir install store through a digest-only disk registry;
28
+ * it never touches the network and fails closed when any scope cannot be
29
+ * verified. The factory returns a closure only: no file or directory is
30
+ * created unless the resolver is actually invoked.
31
+ */
32
+ export declare function createDefaultActivePluginBindingsResolverV1(): ActivePluginBindingResolverV1;
33
+ //# sourceMappingURL=default-active-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-active-bindings.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/default-active-bindings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAA0B,MAAM,sBAAsB,CAAC;AAMlG,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,YAAY,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,mCAAmC,4BAA4B,CAAC;AAE7E,2GAA2G;AAC3G,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,sGAAsG;AACtG,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,IAAI,WAAW,CAQtD;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,2CAA2C,IAAI,6BAA6B,CAsC3F","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { join, resolve } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../config.ts\";\nimport type { ActivePluginBindingResolverV1, ActivePluginBindingsV1 } from \"./active-bindings.ts\";\nimport { resolveActivePluginBindingsForScopesV1 } from \"./active-bindings.ts\";\nimport { DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1 } from \"./installer.ts\";\nimport { createNodeDiskPluginRegistrySourceV1 } from \"./node-disk-registry-source.ts\";\nimport { createPluginRegistryV1, type PluginRegistryDigestVerifierV1 } from \"./registry.ts\";\nimport { createPluginStateStoreV1 } from \"./state.ts\";\nimport type { HostFactsV1, PluginSourceVerifierV1 } from \"./types.ts\";\n\n/** Directory name of the default install store below the agent directory. */\nexport const DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1 = \"plugin-install-store-v1\";\n\n/** File name of the global/project plugin-state.json stores shared by the CLI and the default resolver. */\nexport const DEFAULT_PLUGIN_STATE_FILE_V1 = \"plugin-state.json\";\n\n/**\n * Deterministic scope reference for the project scope: a sha256 of the\n * canonical cwd, so project selection cannot be inferred from a raw path.\n */\nexport function projectPluginScopeRefV1(cwd: string): string {\n\tconst canonicalPath = resolve(cwd);\n\tconst identityPath = process.platform === \"win32\" ? canonicalPath.toLowerCase() : canonicalPath;\n\treturn `project:sha256:${createHash(\"sha256\").update(identityPath).digest(\"hex\")}`;\n}\n\n/** Opaque install-store directory below the agent directory; shared with the default install flow. */\nexport function defaultPluginInstallStoreDirectoryV1(agentDir: string): string {\n\treturn join(agentDir, DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1);\n}\n\n/**\n * Persistent install-store instance root: the install host with\n * `persistence: \"persistent\"` keeps its index and installation directories\n * below this fixed subdirectory of the store directory. Disk registry sources\n * must read here to observe real installs.\n */\nexport function defaultPluginInstallStoreInstanceRootV1(agentDir: string): string {\n\treturn join(defaultPluginInstallStoreDirectoryV1(agentDir), \"agent-forge-plugin-install-store-v1\");\n}\n\n/** Host facts observed from the current runtime; shared by the CLI and the default resolver. */\nexport function defaultPluginHostFactsV1(): HostFactsV1 {\n\treturn {\n\t\tos: process.platform === \"win32\" ? \"windows\" : process.platform === \"darwin\" ? \"macos\" : process.platform,\n\t\tarch: process.arch,\n\t\truntime: [{ name: \"node\", version: process.versions.node }],\n\t\tapiVersion: \"1\",\n\t\thostFeatures: [],\n\t};\n}\n\n/** Digest-only verifier: accepts manifests whose digest matches the source projection; no signature trust root. */\nfunction digestOnlyVerifierV1(): PluginRegistryDigestVerifierV1 {\n\treturn {\n\t\tverify: ({ manifestDigest, expectedDigest }) =>\n\t\t\texpectedDigest === undefined || expectedDigest === manifestDigest\n\t\t\t\t? { status: \"accepted\" }\n\t\t\t\t: { status: \"rejected\", reason: \"Manifest digest does not match the expected digest\" },\n\t};\n}\n\n/** Explicit no-op source verifier: the disk source carries no signature trust root. */\nfunction installStoreSourceVerifierV1(): PluginSourceVerifierV1 {\n\treturn () => ({ status: \"accepted\" });\n}\n\n/**\n * Built-in active plugin bindings resolver for the default CLI.\n *\n * Given {cwd, agentDir} it reads the global and project plugin-state.json\n * stores and the agentDir install store through a digest-only disk registry;\n * it never touches the network and fails closed when any scope cannot be\n * verified. The factory returns a closure only: no file or directory is\n * created unless the resolver is actually invoked.\n */\nexport function createDefaultActivePluginBindingsResolverV1(): ActivePluginBindingResolverV1 {\n\treturn async (input): Promise<ActivePluginBindingsV1> => {\n\t\tconst registrySource = createNodeDiskPluginRegistrySourceV1({\n\t\t\t// Real installs persist below the fixed instance root (same layout\n\t\t\t// the default market wiring reads); the store directory itself holds\n\t\t\t// only the store subsystem's own subdirectories.\n\t\t\trootDirectory: defaultPluginInstallStoreInstanceRootV1(input.agentDir),\n\t\t});\n\t\tconst registry = createPluginRegistryV1({\n\t\t\tsource: registrySource,\n\t\t\thost: defaultPluginHostFactsV1(),\n\t\t\tverify: digestOnlyVerifierV1(),\n\t\t\tsourceVerifier: installStoreSourceVerifierV1(),\n\t\t});\n\t\treturn await resolveActivePluginBindingsForScopesV1({\n\t\t\tregistry,\n\t\t\t// Installed-code-loading channel (D-075 S2): the same disk source\n\t\t\t// that projects the manifests also exposes the installation\n\t\t\t// directory's plugin.json path for the sdk's explicit candidate pool.\n\t\t\t...(registrySource.resolveCapabilityManifestPath === undefined\n\t\t\t\t? {}\n\t\t\t\t: { resolveInstallationManifestPath: registrySource.resolveCapabilityManifestPath }),\n\t\t\tproject: {\n\t\t\t\tstateStore: createPluginStateStoreV1({\n\t\t\t\t\tfilePath: join(input.cwd, CONFIG_DIR_NAME, DEFAULT_PLUGIN_STATE_FILE_V1),\n\t\t\t\t}),\n\t\t\t\tscope: \"project\",\n\t\t\t\tscopeRef: projectPluginScopeRefV1(input.cwd),\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tstateStore: createPluginStateStoreV1({\n\t\t\t\t\tfilePath: join(input.agentDir, DEFAULT_PLUGIN_STATE_FILE_V1),\n\t\t\t\t}),\n\t\t\t\tscope: \"global\",\n\t\t\t\tscopeRef: DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1,\n\t\t\t},\n\t\t});\n\t};\n}\n"]}
@@ -0,0 +1,105 @@
1
+ import { createHash } from "node:crypto";
2
+ import { join, resolve } from "node:path";
3
+ import { CONFIG_DIR_NAME } from "../../config.js";
4
+ import { resolveActivePluginBindingsForScopesV1 } from "./active-bindings.js";
5
+ import { DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1 } from "./installer.js";
6
+ import { createNodeDiskPluginRegistrySourceV1 } from "./node-disk-registry-source.js";
7
+ import { createPluginRegistryV1 } from "./registry.js";
8
+ import { createPluginStateStoreV1 } from "./state.js";
9
+ /** Directory name of the default install store below the agent directory. */
10
+ export const DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1 = "plugin-install-store-v1";
11
+ /** File name of the global/project plugin-state.json stores shared by the CLI and the default resolver. */
12
+ export const DEFAULT_PLUGIN_STATE_FILE_V1 = "plugin-state.json";
13
+ /**
14
+ * Deterministic scope reference for the project scope: a sha256 of the
15
+ * canonical cwd, so project selection cannot be inferred from a raw path.
16
+ */
17
+ export function projectPluginScopeRefV1(cwd) {
18
+ const canonicalPath = resolve(cwd);
19
+ const identityPath = process.platform === "win32" ? canonicalPath.toLowerCase() : canonicalPath;
20
+ return `project:sha256:${createHash("sha256").update(identityPath).digest("hex")}`;
21
+ }
22
+ /** Opaque install-store directory below the agent directory; shared with the default install flow. */
23
+ export function defaultPluginInstallStoreDirectoryV1(agentDir) {
24
+ return join(agentDir, DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1);
25
+ }
26
+ /**
27
+ * Persistent install-store instance root: the install host with
28
+ * `persistence: "persistent"` keeps its index and installation directories
29
+ * below this fixed subdirectory of the store directory. Disk registry sources
30
+ * must read here to observe real installs.
31
+ */
32
+ export function defaultPluginInstallStoreInstanceRootV1(agentDir) {
33
+ return join(defaultPluginInstallStoreDirectoryV1(agentDir), "agent-forge-plugin-install-store-v1");
34
+ }
35
+ /** Host facts observed from the current runtime; shared by the CLI and the default resolver. */
36
+ export function defaultPluginHostFactsV1() {
37
+ return {
38
+ os: process.platform === "win32" ? "windows" : process.platform === "darwin" ? "macos" : process.platform,
39
+ arch: process.arch,
40
+ runtime: [{ name: "node", version: process.versions.node }],
41
+ apiVersion: "1",
42
+ hostFeatures: [],
43
+ };
44
+ }
45
+ /** Digest-only verifier: accepts manifests whose digest matches the source projection; no signature trust root. */
46
+ function digestOnlyVerifierV1() {
47
+ return {
48
+ verify: ({ manifestDigest, expectedDigest }) => expectedDigest === undefined || expectedDigest === manifestDigest
49
+ ? { status: "accepted" }
50
+ : { status: "rejected", reason: "Manifest digest does not match the expected digest" },
51
+ };
52
+ }
53
+ /** Explicit no-op source verifier: the disk source carries no signature trust root. */
54
+ function installStoreSourceVerifierV1() {
55
+ return () => ({ status: "accepted" });
56
+ }
57
+ /**
58
+ * Built-in active plugin bindings resolver for the default CLI.
59
+ *
60
+ * Given {cwd, agentDir} it reads the global and project plugin-state.json
61
+ * stores and the agentDir install store through a digest-only disk registry;
62
+ * it never touches the network and fails closed when any scope cannot be
63
+ * verified. The factory returns a closure only: no file or directory is
64
+ * created unless the resolver is actually invoked.
65
+ */
66
+ export function createDefaultActivePluginBindingsResolverV1() {
67
+ return async (input) => {
68
+ const registrySource = createNodeDiskPluginRegistrySourceV1({
69
+ // Real installs persist below the fixed instance root (same layout
70
+ // the default market wiring reads); the store directory itself holds
71
+ // only the store subsystem's own subdirectories.
72
+ rootDirectory: defaultPluginInstallStoreInstanceRootV1(input.agentDir),
73
+ });
74
+ const registry = createPluginRegistryV1({
75
+ source: registrySource,
76
+ host: defaultPluginHostFactsV1(),
77
+ verify: digestOnlyVerifierV1(),
78
+ sourceVerifier: installStoreSourceVerifierV1(),
79
+ });
80
+ return await resolveActivePluginBindingsForScopesV1({
81
+ registry,
82
+ // Installed-code-loading channel (D-075 S2): the same disk source
83
+ // that projects the manifests also exposes the installation
84
+ // directory's plugin.json path for the sdk's explicit candidate pool.
85
+ ...(registrySource.resolveCapabilityManifestPath === undefined
86
+ ? {}
87
+ : { resolveInstallationManifestPath: registrySource.resolveCapabilityManifestPath }),
88
+ project: {
89
+ stateStore: createPluginStateStoreV1({
90
+ filePath: join(input.cwd, CONFIG_DIR_NAME, DEFAULT_PLUGIN_STATE_FILE_V1),
91
+ }),
92
+ scope: "project",
93
+ scopeRef: projectPluginScopeRefV1(input.cwd),
94
+ },
95
+ global: {
96
+ stateStore: createPluginStateStoreV1({
97
+ filePath: join(input.agentDir, DEFAULT_PLUGIN_STATE_FILE_V1),
98
+ }),
99
+ scope: "global",
100
+ scopeRef: DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1,
101
+ },
102
+ });
103
+ };
104
+ }
105
+ //# sourceMappingURL=default-active-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-active-bindings.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/default-active-bindings.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { join, resolve } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../config.ts\";\nimport type { ActivePluginBindingResolverV1, ActivePluginBindingsV1 } from \"./active-bindings.ts\";\nimport { resolveActivePluginBindingsForScopesV1 } from \"./active-bindings.ts\";\nimport { DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1 } from \"./installer.ts\";\nimport { createNodeDiskPluginRegistrySourceV1 } from \"./node-disk-registry-source.ts\";\nimport { createPluginRegistryV1, type PluginRegistryDigestVerifierV1 } from \"./registry.ts\";\nimport { createPluginStateStoreV1 } from \"./state.ts\";\nimport type { HostFactsV1, PluginSourceVerifierV1 } from \"./types.ts\";\n\n/** Directory name of the default install store below the agent directory. */\nexport const DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1 = \"plugin-install-store-v1\";\n\n/** File name of the global/project plugin-state.json stores shared by the CLI and the default resolver. */\nexport const DEFAULT_PLUGIN_STATE_FILE_V1 = \"plugin-state.json\";\n\n/**\n * Deterministic scope reference for the project scope: a sha256 of the\n * canonical cwd, so project selection cannot be inferred from a raw path.\n */\nexport function projectPluginScopeRefV1(cwd: string): string {\n\tconst canonicalPath = resolve(cwd);\n\tconst identityPath = process.platform === \"win32\" ? canonicalPath.toLowerCase() : canonicalPath;\n\treturn `project:sha256:${createHash(\"sha256\").update(identityPath).digest(\"hex\")}`;\n}\n\n/** Opaque install-store directory below the agent directory; shared with the default install flow. */\nexport function defaultPluginInstallStoreDirectoryV1(agentDir: string): string {\n\treturn join(agentDir, DEFAULT_PLUGIN_INSTALL_STORE_DIR_V1);\n}\n\n/**\n * Persistent install-store instance root: the install host with\n * `persistence: \"persistent\"` keeps its index and installation directories\n * below this fixed subdirectory of the store directory. Disk registry sources\n * must read here to observe real installs.\n */\nexport function defaultPluginInstallStoreInstanceRootV1(agentDir: string): string {\n\treturn join(defaultPluginInstallStoreDirectoryV1(agentDir), \"agent-forge-plugin-install-store-v1\");\n}\n\n/** Host facts observed from the current runtime; shared by the CLI and the default resolver. */\nexport function defaultPluginHostFactsV1(): HostFactsV1 {\n\treturn {\n\t\tos: process.platform === \"win32\" ? \"windows\" : process.platform === \"darwin\" ? \"macos\" : process.platform,\n\t\tarch: process.arch,\n\t\truntime: [{ name: \"node\", version: process.versions.node }],\n\t\tapiVersion: \"1\",\n\t\thostFeatures: [],\n\t};\n}\n\n/** Digest-only verifier: accepts manifests whose digest matches the source projection; no signature trust root. */\nfunction digestOnlyVerifierV1(): PluginRegistryDigestVerifierV1 {\n\treturn {\n\t\tverify: ({ manifestDigest, expectedDigest }) =>\n\t\t\texpectedDigest === undefined || expectedDigest === manifestDigest\n\t\t\t\t? { status: \"accepted\" }\n\t\t\t\t: { status: \"rejected\", reason: \"Manifest digest does not match the expected digest\" },\n\t};\n}\n\n/** Explicit no-op source verifier: the disk source carries no signature trust root. */\nfunction installStoreSourceVerifierV1(): PluginSourceVerifierV1 {\n\treturn () => ({ status: \"accepted\" });\n}\n\n/**\n * Built-in active plugin bindings resolver for the default CLI.\n *\n * Given {cwd, agentDir} it reads the global and project plugin-state.json\n * stores and the agentDir install store through a digest-only disk registry;\n * it never touches the network and fails closed when any scope cannot be\n * verified. The factory returns a closure only: no file or directory is\n * created unless the resolver is actually invoked.\n */\nexport function createDefaultActivePluginBindingsResolverV1(): ActivePluginBindingResolverV1 {\n\treturn async (input): Promise<ActivePluginBindingsV1> => {\n\t\tconst registrySource = createNodeDiskPluginRegistrySourceV1({\n\t\t\t// Real installs persist below the fixed instance root (same layout\n\t\t\t// the default market wiring reads); the store directory itself holds\n\t\t\t// only the store subsystem's own subdirectories.\n\t\t\trootDirectory: defaultPluginInstallStoreInstanceRootV1(input.agentDir),\n\t\t});\n\t\tconst registry = createPluginRegistryV1({\n\t\t\tsource: registrySource,\n\t\t\thost: defaultPluginHostFactsV1(),\n\t\t\tverify: digestOnlyVerifierV1(),\n\t\t\tsourceVerifier: installStoreSourceVerifierV1(),\n\t\t});\n\t\treturn await resolveActivePluginBindingsForScopesV1({\n\t\t\tregistry,\n\t\t\t// Installed-code-loading channel (D-075 S2): the same disk source\n\t\t\t// that projects the manifests also exposes the installation\n\t\t\t// directory's plugin.json path for the sdk's explicit candidate pool.\n\t\t\t...(registrySource.resolveCapabilityManifestPath === undefined\n\t\t\t\t? {}\n\t\t\t\t: { resolveInstallationManifestPath: registrySource.resolveCapabilityManifestPath }),\n\t\t\tproject: {\n\t\t\t\tstateStore: createPluginStateStoreV1({\n\t\t\t\t\tfilePath: join(input.cwd, CONFIG_DIR_NAME, DEFAULT_PLUGIN_STATE_FILE_V1),\n\t\t\t\t}),\n\t\t\t\tscope: \"project\",\n\t\t\t\tscopeRef: projectPluginScopeRefV1(input.cwd),\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tstateStore: createPluginStateStoreV1({\n\t\t\t\t\tfilePath: join(input.agentDir, DEFAULT_PLUGIN_STATE_FILE_V1),\n\t\t\t\t}),\n\t\t\t\tscope: \"global\",\n\t\t\t\tscopeRef: DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1,\n\t\t\t},\n\t\t});\n\t};\n}\n"]}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Default CLI wiring for the plugin marketplace write side (P1-5): one
3
+ * factory composes the disk install store, an optional HTTP registry origin,
4
+ * the HTTP distribution host, and the persistent package install host into
5
+ * the registry/installer/distribution surfaces the ecosystem CLI and the TUI
6
+ * manager consume. Nothing here discovers keys or origins implicitly: the
7
+ * registry origin comes from an explicit option or the
8
+ * AGENT_FORGE_PLUGIN_REGISTRY_ORIGIN environment variable, and its absence
9
+ * keeps disk-only semantics (install resolves to not_found, remove/rollback
10
+ * and state management stay fully usable). Host injection always wins; the
11
+ * factory is only invoked when no host-supplied boundary exists.
12
+ */
13
+ import type { PluginEcosystemRegistryV1 } from "./cli.ts";
14
+ import { type PluginDistributionV1 } from "./distribution.ts";
15
+ import { type PluginInstallerV1 } from "./installer.ts";
16
+ import { type NodeZipPackageLimitsV1 } from "./node-package-install-host.ts";
17
+ import { type NodePluginAcquisitionHostV1 } from "./node-plugin-acquisition-host.ts";
18
+ import { type NodePluginTrustRootKeyV1 } from "./node-plugin-trust-root.ts";
19
+ import { type PluginRegistryV1 } from "./registry.ts";
20
+ import { type PluginStateStoreV1 } from "./state.ts";
21
+ /** Environment variable carrying the exact http(s) marketplace origin. */
22
+ export declare const DEFAULT_PLUGIN_REGISTRY_ORIGIN_ENV_V1 = "AGENT_FORGE_PLUGIN_REGISTRY_ORIGIN";
23
+ /**
24
+ * Environment variable carrying the Ed25519 trust root as a JSON array of
25
+ * `{keyId, publicKeyPem}` entries. Downloads never verify without an explicit
26
+ * trust root; there is no implicit key discovery.
27
+ */
28
+ export declare const DEFAULT_PLUGIN_TRUST_KEYS_ENV_V1 = "AGENT_FORGE_PLUGIN_TRUST_KEYS";
29
+ /** Registry document path below the configured origin. */
30
+ export declare const DEFAULT_PLUGIN_REGISTRY_PATH_V1 = "/v1/plugin-registry.json";
31
+ export interface DefaultPluginMarketOptionsV1 {
32
+ readonly agentDir: string;
33
+ readonly cwd: string;
34
+ /** Exact http(s) registry origin; defaults to the environment variable. */
35
+ readonly registryOrigin?: string;
36
+ /** Explicit Ed25519 trust root; defaults to the environment variable. */
37
+ readonly trustKeys?: readonly NodePluginTrustRootKeyV1[];
38
+ /** Optional acquisition host override (tests); defaults to a real Node host. */
39
+ readonly acquisition?: NodePluginAcquisitionHostV1;
40
+ /** Optional package limits shared by acquisition and the install host; defaults apply. */
41
+ readonly limits?: NodeZipPackageLimitsV1;
42
+ /** Deterministic fetch replacement for tests. */
43
+ readonly fetch?: typeof globalThis.fetch;
44
+ }
45
+ export interface DefaultPluginMarketWiringV1 {
46
+ /** Verified registry for the manager controller snapshot. */
47
+ readonly registry: PluginRegistryV1;
48
+ /** CLI-facing adapter over the same verified registry. */
49
+ readonly cliRegistry: PluginEcosystemRegistryV1;
50
+ /** Multi-source acquisition boundary for `plugin install <ref>`. */
51
+ readonly acquisition: NodePluginAcquisitionHostV1;
52
+ readonly installer: PluginInstallerV1;
53
+ /** Present only when a registry origin is configured. */
54
+ readonly distribution?: PluginDistributionV1;
55
+ readonly stateStore: PluginStateStoreV1;
56
+ readonly projectStateStore: PluginStateStoreV1;
57
+ /** Releases the distribution host's cached artifacts when present. */
58
+ readonly close: () => Promise<void>;
59
+ }
60
+ /**
61
+ * Compose the default marketplace boundaries over one agent directory. The
62
+ * disk install store is always part of the registry so installed plugins can
63
+ * be listed, updated, and removed offline; a configured origin adds the HTTP
64
+ * registry and package download. Installation failures surface structured
65
+ * errors, never synthetic success.
66
+ */
67
+ export declare function createDefaultPluginMarketWiringV1(options: DefaultPluginMarketOptionsV1): Promise<DefaultPluginMarketWiringV1>;
68
+ //# sourceMappingURL=default-plugin-market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-plugin-market.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/default-plugin-market.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAO1D,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMjF,OAAO,EAGN,KAAK,sBAAsB,EAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAqC,KAAK,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACxH,OAAO,EAA+B,KAAK,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEzG,OAAO,EAAuD,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE3G,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/E,0EAA0E;AAC1E,eAAO,MAAM,qCAAqC,uCAAuC,CAAC;AAE1F;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,kCAAkC,CAAC;AAEhF,0DAA0D;AAC1D,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAE1E,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD,gFAAgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IACnD,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IACzC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACzC;AAED,MAAM,WAAW,2BAA2B;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC/C,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,CACtD,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CAqGtC","sourcesContent":["/**\n * Default CLI wiring for the plugin marketplace write side (P1-5): one\n * factory composes the disk install store, an optional HTTP registry origin,\n * the HTTP distribution host, and the persistent package install host into\n * the registry/installer/distribution surfaces the ecosystem CLI and the TUI\n * manager consume. Nothing here discovers keys or origins implicitly: the\n * registry origin comes from an explicit option or the\n * AGENT_FORGE_PLUGIN_REGISTRY_ORIGIN environment variable, and its absence\n * keeps disk-only semantics (install resolves to not_found, remove/rollback\n * and state management stay fully usable). Host injection always wins; the\n * factory is only invoked when no host-supplied boundary exists.\n */\n\nimport { join } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../config.ts\";\nimport type { PluginEcosystemRegistryV1 } from \"./cli.ts\";\nimport {\n\tDEFAULT_PLUGIN_STATE_FILE_V1,\n\tdefaultPluginHostFactsV1,\n\tdefaultPluginInstallStoreDirectoryV1,\n\tdefaultPluginInstallStoreInstanceRootV1,\n} from \"./default-active-bindings.ts\";\nimport { createPluginDistributionV1, type PluginDistributionV1 } from \"./distribution.ts\";\nimport { createPluginInstallerV1, type PluginInstallerV1 } from \"./installer.ts\";\nimport { createNodeDiskPluginRegistrySourceV1 } from \"./node-disk-registry-source.ts\";\nimport {\n\tcreateNodeHttpPluginDistributionHostV1,\n\ttype NodeHttpPluginDistributionHostV1,\n} from \"./node-distribution-host.ts\";\nimport {\n\tcreateNodePackageInstallHostV1,\n\tNodePackageInstallErrorV1,\n\ttype NodeZipPackageLimitsV1,\n} from \"./node-package-install-host.ts\";\nimport { createNodePluginAcquisitionHostV1, type NodePluginAcquisitionHostV1 } from \"./node-plugin-acquisition-host.ts\";\nimport { createNodePluginTrustRootV1, type NodePluginTrustRootKeyV1 } from \"./node-plugin-trust-root.ts\";\nimport { createNodeHttpPluginRegistrySourceV1 } from \"./node-registry-source.ts\";\nimport { createPluginRegistryV1, type PluginRegistrySourceV1, type PluginRegistryV1 } from \"./registry.ts\";\nimport { createPluginEcosystemRegistryAdapterV1 } from \"./registry-cli-adapter.ts\";\nimport { createPluginStateStoreV1, type PluginStateStoreV1 } from \"./state.ts\";\n\n/** Environment variable carrying the exact http(s) marketplace origin. */\nexport const DEFAULT_PLUGIN_REGISTRY_ORIGIN_ENV_V1 = \"AGENT_FORGE_PLUGIN_REGISTRY_ORIGIN\";\n\n/**\n * Environment variable carrying the Ed25519 trust root as a JSON array of\n * `{keyId, publicKeyPem}` entries. Downloads never verify without an explicit\n * trust root; there is no implicit key discovery.\n */\nexport const DEFAULT_PLUGIN_TRUST_KEYS_ENV_V1 = \"AGENT_FORGE_PLUGIN_TRUST_KEYS\";\n\n/** Registry document path below the configured origin. */\nexport const DEFAULT_PLUGIN_REGISTRY_PATH_V1 = \"/v1/plugin-registry.json\";\n\nexport interface DefaultPluginMarketOptionsV1 {\n\treadonly agentDir: string;\n\treadonly cwd: string;\n\t/** Exact http(s) registry origin; defaults to the environment variable. */\n\treadonly registryOrigin?: string;\n\t/** Explicit Ed25519 trust root; defaults to the environment variable. */\n\treadonly trustKeys?: readonly NodePluginTrustRootKeyV1[];\n\t/** Optional acquisition host override (tests); defaults to a real Node host. */\n\treadonly acquisition?: NodePluginAcquisitionHostV1;\n\t/** Optional package limits shared by acquisition and the install host; defaults apply. */\n\treadonly limits?: NodeZipPackageLimitsV1;\n\t/** Deterministic fetch replacement for tests. */\n\treadonly fetch?: typeof globalThis.fetch;\n}\n\nexport interface DefaultPluginMarketWiringV1 {\n\t/** Verified registry for the manager controller snapshot. */\n\treadonly registry: PluginRegistryV1;\n\t/** CLI-facing adapter over the same verified registry. */\n\treadonly cliRegistry: PluginEcosystemRegistryV1;\n\t/** Multi-source acquisition boundary for `plugin install <ref>`. */\n\treadonly acquisition: NodePluginAcquisitionHostV1;\n\treadonly installer: PluginInstallerV1;\n\t/** Present only when a registry origin is configured. */\n\treadonly distribution?: PluginDistributionV1;\n\treadonly stateStore: PluginStateStoreV1;\n\treadonly projectStateStore: PluginStateStoreV1;\n\t/** Releases the distribution host's cached artifacts when present. */\n\treadonly close: () => Promise<void>;\n}\n\n/**\n * Compose the default marketplace boundaries over one agent directory. The\n * disk install store is always part of the registry so installed plugins can\n * be listed, updated, and removed offline; a configured origin adds the HTTP\n * registry and package download. Installation failures surface structured\n * errors, never synthetic success.\n */\nexport async function createDefaultPluginMarketWiringV1(\n\toptions: DefaultPluginMarketOptionsV1,\n): Promise<DefaultPluginMarketWiringV1> {\n\tconst origin = (options.registryOrigin ?? process.env[DEFAULT_PLUGIN_REGISTRY_ORIGIN_ENV_V1])?.trim();\n\tconst effectiveOrigin = origin === \"\" ? undefined : origin;\n\tconst storeParent = defaultPluginInstallStoreDirectoryV1(options.agentDir);\n\t// The install host persists under this fixed subdirectory; the disk\n\t// registry source must read the same instance root to observe installs.\n\tconst instanceRoot = defaultPluginInstallStoreInstanceRootV1(options.agentDir);\n\tconst diskSource = createNodeDiskPluginRegistrySourceV1({ rootDirectory: instanceRoot });\n\tconst httpSource =\n\t\teffectiveOrigin === undefined\n\t\t\t? undefined\n\t\t\t: createNodeHttpPluginRegistrySourceV1({\n\t\t\t\t\turl: new URL(effectiveOrigin + DEFAULT_PLUGIN_REGISTRY_PATH_V1),\n\t\t\t\t\tallowedOrigins: [effectiveOrigin],\n\t\t\t\t\t...(options.fetch === undefined ? {} : { fetch: options.fetch }),\n\t\t\t\t});\n\tconst source: PluginRegistrySourceV1 = {\n\t\t...(httpSource === undefined ? {} : { source: httpSource.source }),\n\t\tlist: async ({ signal } = {}) => {\n\t\t\tconst disk = await diskSource.list({ signal });\n\t\t\tif (httpSource === undefined) return disk;\n\t\t\tconst remote = await httpSource.list({ signal });\n\t\t\treturn Object.freeze([...remote, ...disk]);\n\t\t},\n\t};\n\tconst distributionHost =\n\t\teffectiveOrigin === undefined\n\t\t\t? undefined\n\t\t\t: await createNodeHttpPluginDistributionHostV1({\n\t\t\t\t\tallowedOrigins: [effectiveOrigin],\n\t\t\t\t\tartifactDirectory: join(storeParent, \"distribution-cache-v1\"),\n\t\t\t\t\t...(options.fetch === undefined ? {} : { fetch: options.fetch }),\n\t\t\t\t});\n\tlet trustKeys = options.trustKeys;\n\tif (trustKeys === undefined && effectiveOrigin !== undefined) {\n\t\tconst raw = process.env[DEFAULT_PLUGIN_TRUST_KEYS_ENV_V1];\n\t\tif (raw !== undefined && raw.trim() !== \"\") {\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = JSON.parse(raw);\n\t\t\t} catch {\n\t\t\t\tthrow new Error(`${DEFAULT_PLUGIN_TRUST_KEYS_ENV_V1} must be a JSON array of {keyId, publicKeyPem}`);\n\t\t\t}\n\t\t\tif (!Array.isArray(parsed)) throw new Error(`${DEFAULT_PLUGIN_TRUST_KEYS_ENV_V1} must be a JSON array`);\n\t\t\ttrustKeys = parsed as NodePluginTrustRootKeyV1[];\n\t\t}\n\t}\n\tconst trustRoot =\n\t\ttrustKeys === undefined || distributionHost === undefined\n\t\t\t? undefined\n\t\t\t: createNodePluginTrustRootV1({ keys: trustKeys });\n\t// Acquisition artifacts (npm/URL/local refs) and signed distribution\n\t// artifacts share one install host; ownership decides which reader serves.\n\tconst acquisitionHost =\n\t\toptions.acquisition ??\n\t\tcreateNodePluginAcquisitionHostV1({\n\t\t\t...(options.limits === undefined ? {} : { limits: options.limits }),\n\t\t\t...(options.fetch === undefined ? {} : { fetch: options.fetch }),\n\t\t});\n\tconst openArtifact: NodeHttpPluginDistributionHostV1[\"openArtifact\"] = (input) => {\n\t\tif (acquisitionHost.ownsArtifact(input.artifact)) return acquisitionHost.openArtifact(input);\n\t\tconst reader = distributionHost?.openArtifact;\n\t\tif (reader === undefined) throw new NodePackageInstallErrorV1(\"invalid_artifact\");\n\t\treturn reader(input);\n\t};\n\tconst installHost = await createNodePackageInstallHostV1({\n\t\topenArtifact,\n\t\tinstallationDirectory: storeParent,\n\t\tpersistence: \"persistent\",\n\t\tsupportedScopes: [\"global\", \"project\"],\n\t\t...(options.limits === undefined ? {} : { ...options.limits }),\n\t});\n\tconst registry = createPluginRegistryV1({\n\t\tsource,\n\t\thost: defaultPluginHostFactsV1(),\n\t\tverify: {\n\t\t\tverify: ({ manifestDigest, expectedDigest }) =>\n\t\t\t\texpectedDigest === undefined || expectedDigest === manifestDigest\n\t\t\t\t\t? { status: \"accepted\" }\n\t\t\t\t\t: { status: \"rejected\", reason: \"Manifest digest does not match the expected digest\" },\n\t\t},\n\t\tsourceVerifier: () => ({ status: \"accepted\" }),\n\t});\n\treturn {\n\t\tregistry,\n\t\tcliRegistry: createPluginEcosystemRegistryAdapterV1(registry),\n\t\tacquisition: acquisitionHost,\n\t\tinstaller: createPluginInstallerV1({ host: installHost }),\n\t\t...(distributionHost === undefined || trustRoot === undefined\n\t\t\t? {}\n\t\t\t: { distribution: createPluginDistributionV1({ host: distributionHost.host, verifySignature: trustRoot }) }),\n\t\tstateStore: createPluginStateStoreV1({ filePath: join(options.agentDir, DEFAULT_PLUGIN_STATE_FILE_V1) }),\n\t\tprojectStateStore: createPluginStateStoreV1({\n\t\t\tfilePath: join(options.cwd, CONFIG_DIR_NAME, DEFAULT_PLUGIN_STATE_FILE_V1),\n\t\t}),\n\t\tclose: async () => {\n\t\t\tawait installHost.close();\n\t\t\tawait acquisitionHost.close();\n\t\t\tawait distributionHost?.close();\n\t\t},\n\t};\n}\n"]}