@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":"state.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/state.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, unlink, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, isAbsolute, join, resolve } from \"node:path\";\n\nimport {\n\tDEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1,\n\tMAX_PLUGIN_SCOPE_REF_CHARS_V1,\n\ttype PluginInstallationV1,\n} from \"./installer.ts\";\n\nexport const PLUGIN_STATE_SNAPSHOT_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_STATE_RECORDS_V1 = 256;\nexport const MAX_PLUGIN_STATE_STRING_CHARS_V1 = 4096;\nexport const MAX_PLUGIN_STATE_ID_CHARS_V1 = 256;\nexport const MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1 = 2048;\n/** Optional acquisition source label (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`). */\nexport const MAX_PLUGIN_STATE_SOURCE_CHARS_V1 = 128;\n\nexport type PluginStateScopeV1 = \"global\" | \"project\";\nexport type PluginStateLifecycleV1 = PluginInstallationV1[\"state\"];\n\n/** Persisted identity, enablement, scope, and recoverable installation lifecycle. */\nexport interface PluginStateRecordV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly manifestDigest: string;\n\t/** Opaque host handle. It must never be a local path or file URI. */\n\treadonly installationRef: string;\n\t/** Optional acquisition source label; absent on records written before S1-b. */\n\treadonly source?: string;\n\treadonly state: {\n\t\treadonly scope: PluginStateScopeV1;\n\t\t/** Opaque concrete installation namespace; never a local path. */\n\t\treadonly scopeRef: string;\n\t\treadonly enabled: boolean;\n\t\treadonly lifecycle: PluginStateLifecycleV1;\n\t};\n}\n\nexport interface PluginStateSnapshotV1 {\n\treadonly version: typeof PLUGIN_STATE_SNAPSHOT_VERSION_V1;\n\treadonly records: readonly PluginStateRecordV1[];\n}\n\nexport type PluginStateDiagnosticCodeV1 =\n\t| \"invalid_path\"\n\t| \"invalid_json\"\n\t| \"invalid_schema\"\n\t| \"duplicate_identity\"\n\t| \"too_many_records\"\n\t| \"invalid_installation_ref\"\n\t| \"cancelled\";\n\nexport interface PluginStateDiagnosticV1 {\n\treadonly code: PluginStateDiagnosticCodeV1;\n\treadonly message: string;\n\treadonly identity?: string;\n}\n\nexport type PluginStateReadResultV1 =\n\t| { readonly status: \"ok\"; readonly snapshot: PluginStateSnapshotV1 }\n\t| { readonly status: \"missing\"; readonly snapshot: PluginStateSnapshotV1 }\n\t| {\n\t\t\treadonly status: \"invalid\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t }\n\t| {\n\t\t\treadonly status: \"cancelled\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t };\n\nexport type PluginStateMutationResultV1 =\n\t| {\n\t\t\treadonly status: \"ok\";\n\t\t\treadonly snapshot: PluginStateSnapshotV1;\n\t\t\treadonly changed: boolean;\n\t }\n\t| {\n\t\t\treadonly status: \"invalid\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t }\n\t| {\n\t\t\treadonly status: \"cancelled\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t };\n\nexport interface PluginStateFileSystemV1 {\n\treadonly readFile: (path: string) => Promise<string>;\n\treadonly mkdir: (path: string) => Promise<void>;\n\treadonly writeFile: (path: string, data: string) => Promise<void>;\n\treadonly rename: (oldPath: string, newPath: string) => Promise<void>;\n\treadonly unlink: (path: string) => Promise<void>;\n}\n\nexport interface PluginStateStoreOptionsV1 {\n\t/** Absolute path to the host-owned plugin-state.json file. */\n\treadonly filePath: string;\n\t/** Injectable filesystem for deterministic tests and alternate hosts. */\n\treadonly fileSystem?: PluginStateFileSystemV1;\n}\n\nexport interface PluginStateStoreV1 {\n\treadonly read: (options?: { readonly signal?: AbortSignal }) => Promise<PluginStateReadResultV1>;\n\treadonly upsert: (input: {\n\t\treadonly installation: PluginInstallationV1;\n\t\treadonly scope: PluginStateScopeV1;\n\t\treadonly enabled: boolean;\n\t\t/** Optional acquisition source label persisted with the record. */\n\t\treadonly source?: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginStateMutationResultV1>;\n\treadonly remove: (input: {\n\t\treadonly pluginId: string;\n\t\treadonly pluginVersion: string;\n\t\treadonly scope: PluginStateScopeV1;\n\t\treadonly scopeRef: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginStateMutationResultV1>;\n}\n\nconst EMPTY_SNAPSHOT: PluginStateSnapshotV1 = Object.freeze({\n\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\trecords: Object.freeze([]),\n});\n\nfunction diagnostic(code: PluginStateDiagnosticCodeV1, message: string, identity?: string): PluginStateDiagnosticV1 {\n\treturn Object.freeze(identity === undefined ? { code, message } : { code, message, identity });\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && (error.name === \"AbortError\" || error.name === \"AbortSignalError\");\n}\n\nfunction isMissingError(error: unknown): boolean {\n\tif (typeof error !== \"object\" || error === null) return false;\n\treturn \"code\" in error && (error as { readonly code?: unknown }).code === \"ENOENT\";\n}\n\nfunction validateFilePath(value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_STATE_STRING_CHARS_V1)\n\t\tthrow new Error(\"invalid plugin state file path\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid plugin state file path\");\n\tif (/^file:/iu.test(value) || (/^[a-z][a-z\\d+.-]*:/iu.test(value) && !/^[a-z]:[\\\\/]/iu.test(value)))\n\t\tthrow new Error(\"invalid plugin state file path\");\n\tconst normalized = isAbsolute(value) ? value : resolve(value);\n\tif (basename(normalized).length === 0 || basename(normalized) === \".\" || basename(normalized) === \"..\")\n\t\tthrow new Error(\"invalid plugin state file path\");\n\treturn normalized;\n}\n\nfunction validateOpaqueInstallationRef(value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1)\n\t\tthrow new Error(\"invalid installation reference\");\n\tif (/^(?:file:|[a-zA-Z]:[\\\\/]|[\\\\/]{1,2}|\\\\\\\\)/u.test(value) || /\\s/u.test(value))\n\t\tthrow new Error(\"invalid installation reference\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid installation reference\");\n\treturn value;\n}\n\nfunction validateScopeRef(scope: PluginStateScopeV1, value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_SCOPE_REF_CHARS_V1)\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\tif (/^(?:file:|[a-zA-Z]:[\\\\/]|[\\\\/]{1,2}|\\\\\\\\)/u.test(value) || /\\s/u.test(value))\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid plugin scope reference\");\n\tif (scope === \"global\" && value !== DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1)\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\treturn value;\n}\n\nfunction validateString(value: unknown, label: string, max = MAX_PLUGIN_STATE_STRING_CHARS_V1): string {\n\tif (typeof value !== \"string\" || value.trim().length === 0 || value.length > max || /[\\u0000-\\u001f]/u.test(value))\n\t\tthrow new Error(`${label} is invalid`);\n\treturn value;\n}\n\n/** Acquisition source labels (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`, `github:<owner>/<repo>@<tag|latest>`). */\nfunction validateSourceLabel(value: unknown): string {\n\tif (\n\t\ttypeof value !== \"string\" ||\n\t\tvalue.length === 0 ||\n\t\tvalue.length > MAX_PLUGIN_STATE_SOURCE_CHARS_V1 ||\n\t\t!/^[a-z][a-z0-9.:[\\]_/@-]*$/u.test(value)\n\t)\n\t\tthrow new Error(\"record source label is invalid\");\n\treturn value;\n}\n\nfunction identityOf(record: PluginStateRecordV1): string {\n\treturn `${record.state.scope}:${record.state.scopeRef}:${record.pluginId}@${record.pluginVersion}`;\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction hasExactKeys(value: Record<string, unknown>, keys: readonly string[]): boolean {\n\tconst expected = new Set(keys);\n\treturn Object.keys(value).length === expected.size && Object.keys(value).every((key) => expected.has(key));\n}\n\nfunction validateRecord(value: unknown): PluginStateRecordV1 {\n\tconst requiredKeys = [\"pluginId\", \"pluginVersion\", \"manifestDigest\", \"installationRef\", \"state\"];\n\tconst allowedKeys = new Set([...requiredKeys, \"source\"]);\n\tif (!isObject(value) || Object.keys(value).some((key) => !allowedKeys.has(key)))\n\t\tthrow new Error(\"record schema is invalid\");\n\tfor (const key of requiredKeys) if (!(key in value)) throw new Error(\"record schema is invalid\");\n\tconst pluginId = validateString(value.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst pluginVersion = validateString(value.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst manifestDigest = validateString(value.manifestDigest, \"manifestDigest\");\n\tconst installationRef = validateOpaqueInstallationRef(value.installationRef);\n\tconst source = value.source === undefined ? undefined : validateSourceLabel(value.source);\n\tif (!isObject(value.state) || !hasExactKeys(value.state, [\"scope\", \"scopeRef\", \"enabled\", \"lifecycle\"]))\n\t\tthrow new Error(\"state schema is invalid\");\n\tif (value.state.scope !== \"global\" && value.state.scope !== \"project\") throw new Error(\"state scope is invalid\");\n\tconst scopeRef = validateScopeRef(value.state.scope, value.state.scopeRef);\n\tif (typeof value.state.enabled !== \"boolean\") throw new Error(\"state enabled flag is invalid\");\n\tif (\n\t\tvalue.state.lifecycle !== \"installed\" &&\n\t\tvalue.state.lifecycle !== \"active\" &&\n\t\tvalue.state.lifecycle !== \"retained\"\n\t)\n\t\tthrow new Error(\"state lifecycle is invalid\");\n\treturn Object.freeze({\n\t\tpluginId,\n\t\tpluginVersion,\n\t\tmanifestDigest,\n\t\tinstallationRef,\n\t\t...(source === undefined ? {} : { source }),\n\t\tstate: Object.freeze({\n\t\t\tscope: value.state.scope,\n\t\t\tscopeRef,\n\t\t\tenabled: value.state.enabled,\n\t\t\tlifecycle: value.state.lifecycle,\n\t\t}),\n\t});\n}\n\nfunction validateSnapshot(value: unknown): PluginStateSnapshotV1 {\n\tif (!isObject(value) || !hasExactKeys(value, [\"version\", \"records\"])) throw new Error(\"snapshot schema is invalid\");\n\tif (value.version !== PLUGIN_STATE_SNAPSHOT_VERSION_V1) throw new Error(\"snapshot version is unsupported\");\n\tif (!Array.isArray(value.records)) throw new Error(\"records must be an array\");\n\tif (value.records.length > MAX_PLUGIN_STATE_RECORDS_V1) throw new Error(\"too many plugin state records\");\n\tconst records = value.records.map(validateRecord);\n\tconst identities = new Set<string>();\n\tfor (const record of records) {\n\t\tconst identity = identityOf(record);\n\t\tif (identities.has(identity)) throw new Error(`duplicate identity: ${identity}`);\n\t\tidentities.add(identity);\n\t}\n\trecords.sort((left, right) => identityOf(left).localeCompare(identityOf(right)));\n\treturn Object.freeze({\n\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\trecords: Object.freeze(records),\n\t});\n}\n\nfunction invalidFromError(error: unknown): PluginStateDiagnosticV1 {\n\tconst message = error instanceof Error ? error.message : \"plugin state schema is invalid\";\n\tconst duplicatePrefix = \"duplicate identity: \";\n\tif (message.startsWith(duplicatePrefix))\n\t\treturn diagnostic(\"duplicate_identity\", message, message.slice(duplicatePrefix.length));\n\tif (message === \"too many plugin state records\") return diagnostic(\"too_many_records\", message);\n\tif (message === \"invalid installation reference\") return diagnostic(\"invalid_installation_ref\", message);\n\treturn diagnostic(\"invalid_schema\", message);\n}\n\nfunction defaultFileSystem(): PluginStateFileSystemV1 {\n\treturn {\n\t\treadFile: async (path) => await readFile(path, \"utf8\"),\n\t\tmkdir: async (path) => {\n\t\t\tawait mkdir(path, { recursive: true });\n\t\t},\n\t\twriteFile: async (path, data) => {\n\t\t\tawait writeFile(path, data, \"utf8\");\n\t\t},\n\t\trename,\n\t\tunlink,\n\t};\n}\n\nfunction cancelledResult(): {\n\treadonly status: \"cancelled\";\n\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n} {\n\treturn Object.freeze({\n\t\tstatus: \"cancelled\",\n\t\tdiagnostics: Object.freeze([diagnostic(\"cancelled\", \"Plugin state operation was cancelled\")]),\n\t});\n}\n\nfunction sortRecords(records: readonly PluginStateRecordV1[]): readonly PluginStateRecordV1[] {\n\treturn Object.freeze([...records].sort((left, right) => identityOf(left).localeCompare(identityOf(right))));\n}\n\nfunction makeRecord(\n\tinstallation: PluginInstallationV1,\n\tscope: PluginStateScopeV1,\n\tenabled: boolean,\n\tsource?: string,\n): PluginStateRecordV1 {\n\tif (installation.version !== 1) throw new Error(\"plugin installation handle is invalid\");\n\tconst pluginId = validateString(installation.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst pluginVersion = validateString(installation.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst manifestDigest = validateString(installation.manifestDigest, \"manifestDigest\");\n\tconst installationRef = validateOpaqueInstallationRef(installation.installationRef);\n\tif (scope !== \"global\" && scope !== \"project\") throw new Error(\"state scope is invalid\");\n\tif (installation.scope !== scope) throw new Error(\"installation scope does not match state scope\");\n\tconst scopeRef = validateScopeRef(\n\t\tscope,\n\t\tscope === \"global\" ? (installation.scopeRef ?? DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1) : installation.scopeRef,\n\t);\n\tif (typeof enabled !== \"boolean\") throw new Error(\"state enabled flag is invalid\");\n\tconst sourceLabel = source === undefined ? undefined : validateSourceLabel(source);\n\treturn Object.freeze({\n\t\tpluginId,\n\t\tpluginVersion,\n\t\tmanifestDigest,\n\t\tinstallationRef,\n\t\t...(sourceLabel === undefined ? {} : { source: sourceLabel }),\n\t\tstate: Object.freeze({ scope, scopeRef, enabled, lifecycle: installation.state }),\n\t});\n}\n\nexport function createPluginStateStoreV1(options: PluginStateStoreOptionsV1): PluginStateStoreV1 {\n\tconst filePath = validateFilePath(options.filePath);\n\tconst fileSystem = options.fileSystem ?? defaultFileSystem();\n\n\tasync function read(signal?: AbortSignal): Promise<PluginStateReadResultV1> {\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = await fileSystem.readFile(filePath);\n\t\t} catch (error) {\n\t\t\tif (isMissingError(error)) return Object.freeze({ status: \"missing\", snapshot: EMPTY_SNAPSHOT });\n\t\t\tif (isAbortError(error) || signal?.aborted) return cancelledResult();\n\t\t\tthrow error;\n\t\t}\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(content) as unknown;\n\t\t} catch {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"invalid\",\n\t\t\t\tdiagnostics: Object.freeze([diagnostic(\"invalid_json\", \"plugin state JSON is invalid\")]),\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"ok\",\n\t\t\t\tsnapshot: validateSnapshot(parsed),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"invalid\",\n\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t});\n\t\t}\n\t}\n\n\tasync function write(snapshot: PluginStateSnapshotV1, signal?: AbortSignal): Promise<PluginStateMutationResultV1> {\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tconst parent = dirname(filePath);\n\t\tconst temporaryPath = join(parent, `.${basename(filePath)}.${randomUUID()}.tmp`);\n\t\ttry {\n\t\t\tawait fileSystem.mkdir(parent);\n\t\t\tif (signal?.aborted) return cancelledResult();\n\t\t\tawait fileSystem.writeFile(temporaryPath, `${JSON.stringify(snapshot)}\\n`);\n\t\t\tif (signal?.aborted) return cancelledResult();\n\t\t\tawait fileSystem.rename(temporaryPath, filePath);\n\t\t\treturn Object.freeze({ status: \"ok\", snapshot, changed: true });\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait fileSystem.unlink(temporaryPath);\n\t\t\t} catch {\n\t\t\t\t// Cleanup must not replace the original write/rename error.\n\t\t\t}\n\t\t}\n\t}\n\n\t// Serialize mutations made through one store instance so concurrent CLI/UI\n\t// actions cannot lose each other's read-modify-write updates.\n\tlet mutationTail: Promise<void> = Promise.resolve();\n\tfunction enqueueMutation<T>(operation: () => Promise<T>): Promise<T> {\n\t\tconst result = mutationTail.then(operation, operation);\n\t\tmutationTail = result.then(\n\t\t\t() => undefined,\n\t\t\t() => undefined,\n\t\t);\n\t\treturn result;\n\t}\n\n\treturn {\n\t\tread: async ({ signal } = {}) => await read(signal),\n\t\tupsert: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet record: PluginStateRecordV1;\n\t\t\t\ttry {\n\t\t\t\t\trecord = makeRecord(input.installation, input.scope, input.enabled, input.source);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst current = await read(input.signal);\n\t\t\t\tif (current.status !== \"ok\" && current.status !== \"missing\") return current;\n\t\t\t\tif (input.signal?.aborted) return cancelledResult();\n\t\t\t\tconst records = current.snapshot.records.filter(\n\t\t\t\t\t(candidate) => identityOf(candidate) !== identityOf(record),\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\trecords.length >= MAX_PLUGIN_STATE_RECORDS_V1 &&\n\t\t\t\t\t!current.snapshot.records.some((candidate) => identityOf(candidate) === identityOf(record))\n\t\t\t\t)\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([diagnostic(\"too_many_records\", \"too many plugin state records\")]),\n\t\t\t\t\t});\n\t\t\t\tconst snapshot = Object.freeze({\n\t\t\t\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\t\t\t\trecords: sortRecords([...records, record]),\n\t\t\t\t});\n\t\t\t\treturn await write(snapshot, input.signal);\n\t\t\t}),\n\t\tremove: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet pluginId: string;\n\t\t\t\tlet pluginVersion: string;\n\t\t\t\tlet scope: PluginStateScopeV1;\n\t\t\t\tlet scopeRef: string;\n\t\t\t\ttry {\n\t\t\t\t\tpluginId = validateString(input.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\t\t\t\t\tpluginVersion = validateString(input.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\t\t\t\t\tif (input.scope !== \"global\" && input.scope !== \"project\") throw new Error(\"state scope is invalid\");\n\t\t\t\t\tscope = input.scope;\n\t\t\t\t\tscopeRef = validateScopeRef(scope, input.scopeRef);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst current = await read(input.signal);\n\t\t\t\tif (current.status !== \"ok\" && current.status !== \"missing\") return current;\n\t\t\t\tif (input.signal?.aborted) return cancelledResult();\n\t\t\t\tconst identity = `${scope}:${scopeRef}:${pluginId}@${pluginVersion}`;\n\t\t\t\tconst records = current.snapshot.records.filter((candidate) => identityOf(candidate) !== identity);\n\t\t\t\tif (records.length === current.snapshot.records.length)\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"ok\",\n\t\t\t\t\t\tsnapshot: current.snapshot,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\tconst snapshot = Object.freeze({\n\t\t\t\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\t\t\t\trecords: sortRecords(records),\n\t\t\t\t});\n\t\t\t\treturn await write(snapshot, input.signal);\n\t\t\t}),\n\t};\n}\n"]}
@@ -0,0 +1,346 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { mkdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
3
+ import { basename, dirname, isAbsolute, join, resolve } from "node:path";
4
+ import { DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1, MAX_PLUGIN_SCOPE_REF_CHARS_V1, } from "./installer.js";
5
+ export const PLUGIN_STATE_SNAPSHOT_VERSION_V1 = 1;
6
+ export const MAX_PLUGIN_STATE_RECORDS_V1 = 256;
7
+ export const MAX_PLUGIN_STATE_STRING_CHARS_V1 = 4096;
8
+ export const MAX_PLUGIN_STATE_ID_CHARS_V1 = 256;
9
+ export const MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1 = 2048;
10
+ /** Optional acquisition source label (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`). */
11
+ export const MAX_PLUGIN_STATE_SOURCE_CHARS_V1 = 128;
12
+ const EMPTY_SNAPSHOT = Object.freeze({
13
+ version: PLUGIN_STATE_SNAPSHOT_VERSION_V1,
14
+ records: Object.freeze([]),
15
+ });
16
+ function diagnostic(code, message, identity) {
17
+ return Object.freeze(identity === undefined ? { code, message } : { code, message, identity });
18
+ }
19
+ function isAbortError(error) {
20
+ return error instanceof Error && (error.name === "AbortError" || error.name === "AbortSignalError");
21
+ }
22
+ function isMissingError(error) {
23
+ if (typeof error !== "object" || error === null)
24
+ return false;
25
+ return "code" in error && error.code === "ENOENT";
26
+ }
27
+ function validateFilePath(value) {
28
+ if (typeof value !== "string" || value.trim() === "" || value.length > MAX_PLUGIN_STATE_STRING_CHARS_V1)
29
+ throw new Error("invalid plugin state file path");
30
+ if (value.includes("\0") || /[\u0000-\u001f]/u.test(value))
31
+ throw new Error("invalid plugin state file path");
32
+ if (/^file:/iu.test(value) || (/^[a-z][a-z\d+.-]*:/iu.test(value) && !/^[a-z]:[\\/]/iu.test(value)))
33
+ throw new Error("invalid plugin state file path");
34
+ const normalized = isAbsolute(value) ? value : resolve(value);
35
+ if (basename(normalized).length === 0 || basename(normalized) === "." || basename(normalized) === "..")
36
+ throw new Error("invalid plugin state file path");
37
+ return normalized;
38
+ }
39
+ function validateOpaqueInstallationRef(value) {
40
+ if (typeof value !== "string" || value.trim() === "" || value.length > MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1)
41
+ throw new Error("invalid installation reference");
42
+ if (/^(?:file:|[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/u.test(value) || /\s/u.test(value))
43
+ throw new Error("invalid installation reference");
44
+ if (value.includes("\0") || /[\u0000-\u001f]/u.test(value))
45
+ throw new Error("invalid installation reference");
46
+ return value;
47
+ }
48
+ function validateScopeRef(scope, value) {
49
+ if (typeof value !== "string" || value.trim() === "" || value.length > MAX_PLUGIN_SCOPE_REF_CHARS_V1)
50
+ throw new Error("invalid plugin scope reference");
51
+ if (/^(?:file:|[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/u.test(value) || /\s/u.test(value))
52
+ throw new Error("invalid plugin scope reference");
53
+ if (value.includes("\0") || /[\u0000-\u001f]/u.test(value))
54
+ throw new Error("invalid plugin scope reference");
55
+ if (scope === "global" && value !== DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1)
56
+ throw new Error("invalid plugin scope reference");
57
+ return value;
58
+ }
59
+ function validateString(value, label, max = MAX_PLUGIN_STATE_STRING_CHARS_V1) {
60
+ if (typeof value !== "string" || value.trim().length === 0 || value.length > max || /[\u0000-\u001f]/u.test(value))
61
+ throw new Error(`${label} is invalid`);
62
+ return value;
63
+ }
64
+ /** Acquisition source labels (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`, `github:<owner>/<repo>@<tag|latest>`). */
65
+ function validateSourceLabel(value) {
66
+ if (typeof value !== "string" ||
67
+ value.length === 0 ||
68
+ value.length > MAX_PLUGIN_STATE_SOURCE_CHARS_V1 ||
69
+ !/^[a-z][a-z0-9.:[\]_/@-]*$/u.test(value))
70
+ throw new Error("record source label is invalid");
71
+ return value;
72
+ }
73
+ function identityOf(record) {
74
+ return `${record.state.scope}:${record.state.scopeRef}:${record.pluginId}@${record.pluginVersion}`;
75
+ }
76
+ function isObject(value) {
77
+ return typeof value === "object" && value !== null && !Array.isArray(value);
78
+ }
79
+ function hasExactKeys(value, keys) {
80
+ const expected = new Set(keys);
81
+ return Object.keys(value).length === expected.size && Object.keys(value).every((key) => expected.has(key));
82
+ }
83
+ function validateRecord(value) {
84
+ const requiredKeys = ["pluginId", "pluginVersion", "manifestDigest", "installationRef", "state"];
85
+ const allowedKeys = new Set([...requiredKeys, "source"]);
86
+ if (!isObject(value) || Object.keys(value).some((key) => !allowedKeys.has(key)))
87
+ throw new Error("record schema is invalid");
88
+ for (const key of requiredKeys)
89
+ if (!(key in value))
90
+ throw new Error("record schema is invalid");
91
+ const pluginId = validateString(value.pluginId, "pluginId", MAX_PLUGIN_STATE_ID_CHARS_V1);
92
+ const pluginVersion = validateString(value.pluginVersion, "pluginVersion", MAX_PLUGIN_STATE_ID_CHARS_V1);
93
+ const manifestDigest = validateString(value.manifestDigest, "manifestDigest");
94
+ const installationRef = validateOpaqueInstallationRef(value.installationRef);
95
+ const source = value.source === undefined ? undefined : validateSourceLabel(value.source);
96
+ if (!isObject(value.state) || !hasExactKeys(value.state, ["scope", "scopeRef", "enabled", "lifecycle"]))
97
+ throw new Error("state schema is invalid");
98
+ if (value.state.scope !== "global" && value.state.scope !== "project")
99
+ throw new Error("state scope is invalid");
100
+ const scopeRef = validateScopeRef(value.state.scope, value.state.scopeRef);
101
+ if (typeof value.state.enabled !== "boolean")
102
+ throw new Error("state enabled flag is invalid");
103
+ if (value.state.lifecycle !== "installed" &&
104
+ value.state.lifecycle !== "active" &&
105
+ value.state.lifecycle !== "retained")
106
+ throw new Error("state lifecycle is invalid");
107
+ return Object.freeze({
108
+ pluginId,
109
+ pluginVersion,
110
+ manifestDigest,
111
+ installationRef,
112
+ ...(source === undefined ? {} : { source }),
113
+ state: Object.freeze({
114
+ scope: value.state.scope,
115
+ scopeRef,
116
+ enabled: value.state.enabled,
117
+ lifecycle: value.state.lifecycle,
118
+ }),
119
+ });
120
+ }
121
+ function validateSnapshot(value) {
122
+ if (!isObject(value) || !hasExactKeys(value, ["version", "records"]))
123
+ throw new Error("snapshot schema is invalid");
124
+ if (value.version !== PLUGIN_STATE_SNAPSHOT_VERSION_V1)
125
+ throw new Error("snapshot version is unsupported");
126
+ if (!Array.isArray(value.records))
127
+ throw new Error("records must be an array");
128
+ if (value.records.length > MAX_PLUGIN_STATE_RECORDS_V1)
129
+ throw new Error("too many plugin state records");
130
+ const records = value.records.map(validateRecord);
131
+ const identities = new Set();
132
+ for (const record of records) {
133
+ const identity = identityOf(record);
134
+ if (identities.has(identity))
135
+ throw new Error(`duplicate identity: ${identity}`);
136
+ identities.add(identity);
137
+ }
138
+ records.sort((left, right) => identityOf(left).localeCompare(identityOf(right)));
139
+ return Object.freeze({
140
+ version: PLUGIN_STATE_SNAPSHOT_VERSION_V1,
141
+ records: Object.freeze(records),
142
+ });
143
+ }
144
+ function invalidFromError(error) {
145
+ const message = error instanceof Error ? error.message : "plugin state schema is invalid";
146
+ const duplicatePrefix = "duplicate identity: ";
147
+ if (message.startsWith(duplicatePrefix))
148
+ return diagnostic("duplicate_identity", message, message.slice(duplicatePrefix.length));
149
+ if (message === "too many plugin state records")
150
+ return diagnostic("too_many_records", message);
151
+ if (message === "invalid installation reference")
152
+ return diagnostic("invalid_installation_ref", message);
153
+ return diagnostic("invalid_schema", message);
154
+ }
155
+ function defaultFileSystem() {
156
+ return {
157
+ readFile: async (path) => await readFile(path, "utf8"),
158
+ mkdir: async (path) => {
159
+ await mkdir(path, { recursive: true });
160
+ },
161
+ writeFile: async (path, data) => {
162
+ await writeFile(path, data, "utf8");
163
+ },
164
+ rename,
165
+ unlink,
166
+ };
167
+ }
168
+ function cancelledResult() {
169
+ return Object.freeze({
170
+ status: "cancelled",
171
+ diagnostics: Object.freeze([diagnostic("cancelled", "Plugin state operation was cancelled")]),
172
+ });
173
+ }
174
+ function sortRecords(records) {
175
+ return Object.freeze([...records].sort((left, right) => identityOf(left).localeCompare(identityOf(right))));
176
+ }
177
+ function makeRecord(installation, scope, enabled, source) {
178
+ if (installation.version !== 1)
179
+ throw new Error("plugin installation handle is invalid");
180
+ const pluginId = validateString(installation.pluginId, "pluginId", MAX_PLUGIN_STATE_ID_CHARS_V1);
181
+ const pluginVersion = validateString(installation.pluginVersion, "pluginVersion", MAX_PLUGIN_STATE_ID_CHARS_V1);
182
+ const manifestDigest = validateString(installation.manifestDigest, "manifestDigest");
183
+ const installationRef = validateOpaqueInstallationRef(installation.installationRef);
184
+ if (scope !== "global" && scope !== "project")
185
+ throw new Error("state scope is invalid");
186
+ if (installation.scope !== scope)
187
+ throw new Error("installation scope does not match state scope");
188
+ const scopeRef = validateScopeRef(scope, scope === "global" ? (installation.scopeRef ?? DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1) : installation.scopeRef);
189
+ if (typeof enabled !== "boolean")
190
+ throw new Error("state enabled flag is invalid");
191
+ const sourceLabel = source === undefined ? undefined : validateSourceLabel(source);
192
+ return Object.freeze({
193
+ pluginId,
194
+ pluginVersion,
195
+ manifestDigest,
196
+ installationRef,
197
+ ...(sourceLabel === undefined ? {} : { source: sourceLabel }),
198
+ state: Object.freeze({ scope, scopeRef, enabled, lifecycle: installation.state }),
199
+ });
200
+ }
201
+ export function createPluginStateStoreV1(options) {
202
+ const filePath = validateFilePath(options.filePath);
203
+ const fileSystem = options.fileSystem ?? defaultFileSystem();
204
+ async function read(signal) {
205
+ if (signal?.aborted)
206
+ return cancelledResult();
207
+ let content;
208
+ try {
209
+ content = await fileSystem.readFile(filePath);
210
+ }
211
+ catch (error) {
212
+ if (isMissingError(error))
213
+ return Object.freeze({ status: "missing", snapshot: EMPTY_SNAPSHOT });
214
+ if (isAbortError(error) || signal?.aborted)
215
+ return cancelledResult();
216
+ throw error;
217
+ }
218
+ if (signal?.aborted)
219
+ return cancelledResult();
220
+ let parsed;
221
+ try {
222
+ parsed = JSON.parse(content);
223
+ }
224
+ catch {
225
+ return Object.freeze({
226
+ status: "invalid",
227
+ diagnostics: Object.freeze([diagnostic("invalid_json", "plugin state JSON is invalid")]),
228
+ });
229
+ }
230
+ try {
231
+ return Object.freeze({
232
+ status: "ok",
233
+ snapshot: validateSnapshot(parsed),
234
+ });
235
+ }
236
+ catch (error) {
237
+ return Object.freeze({
238
+ status: "invalid",
239
+ diagnostics: Object.freeze([invalidFromError(error)]),
240
+ });
241
+ }
242
+ }
243
+ async function write(snapshot, signal) {
244
+ if (signal?.aborted)
245
+ return cancelledResult();
246
+ const parent = dirname(filePath);
247
+ const temporaryPath = join(parent, `.${basename(filePath)}.${randomUUID()}.tmp`);
248
+ try {
249
+ await fileSystem.mkdir(parent);
250
+ if (signal?.aborted)
251
+ return cancelledResult();
252
+ await fileSystem.writeFile(temporaryPath, `${JSON.stringify(snapshot)}\n`);
253
+ if (signal?.aborted)
254
+ return cancelledResult();
255
+ await fileSystem.rename(temporaryPath, filePath);
256
+ return Object.freeze({ status: "ok", snapshot, changed: true });
257
+ }
258
+ finally {
259
+ try {
260
+ await fileSystem.unlink(temporaryPath);
261
+ }
262
+ catch {
263
+ // Cleanup must not replace the original write/rename error.
264
+ }
265
+ }
266
+ }
267
+ // Serialize mutations made through one store instance so concurrent CLI/UI
268
+ // actions cannot lose each other's read-modify-write updates.
269
+ let mutationTail = Promise.resolve();
270
+ function enqueueMutation(operation) {
271
+ const result = mutationTail.then(operation, operation);
272
+ mutationTail = result.then(() => undefined, () => undefined);
273
+ return result;
274
+ }
275
+ return {
276
+ read: async ({ signal } = {}) => await read(signal),
277
+ upsert: (input) => enqueueMutation(async () => {
278
+ let record;
279
+ try {
280
+ record = makeRecord(input.installation, input.scope, input.enabled, input.source);
281
+ }
282
+ catch (error) {
283
+ return Object.freeze({
284
+ status: "invalid",
285
+ diagnostics: Object.freeze([invalidFromError(error)]),
286
+ });
287
+ }
288
+ const current = await read(input.signal);
289
+ if (current.status !== "ok" && current.status !== "missing")
290
+ return current;
291
+ if (input.signal?.aborted)
292
+ return cancelledResult();
293
+ const records = current.snapshot.records.filter((candidate) => identityOf(candidate) !== identityOf(record));
294
+ if (records.length >= MAX_PLUGIN_STATE_RECORDS_V1 &&
295
+ !current.snapshot.records.some((candidate) => identityOf(candidate) === identityOf(record)))
296
+ return Object.freeze({
297
+ status: "invalid",
298
+ diagnostics: Object.freeze([diagnostic("too_many_records", "too many plugin state records")]),
299
+ });
300
+ const snapshot = Object.freeze({
301
+ version: PLUGIN_STATE_SNAPSHOT_VERSION_V1,
302
+ records: sortRecords([...records, record]),
303
+ });
304
+ return await write(snapshot, input.signal);
305
+ }),
306
+ remove: (input) => enqueueMutation(async () => {
307
+ let pluginId;
308
+ let pluginVersion;
309
+ let scope;
310
+ let scopeRef;
311
+ try {
312
+ pluginId = validateString(input.pluginId, "pluginId", MAX_PLUGIN_STATE_ID_CHARS_V1);
313
+ pluginVersion = validateString(input.pluginVersion, "pluginVersion", MAX_PLUGIN_STATE_ID_CHARS_V1);
314
+ if (input.scope !== "global" && input.scope !== "project")
315
+ throw new Error("state scope is invalid");
316
+ scope = input.scope;
317
+ scopeRef = validateScopeRef(scope, input.scopeRef);
318
+ }
319
+ catch (error) {
320
+ return Object.freeze({
321
+ status: "invalid",
322
+ diagnostics: Object.freeze([invalidFromError(error)]),
323
+ });
324
+ }
325
+ const current = await read(input.signal);
326
+ if (current.status !== "ok" && current.status !== "missing")
327
+ return current;
328
+ if (input.signal?.aborted)
329
+ return cancelledResult();
330
+ const identity = `${scope}:${scopeRef}:${pluginId}@${pluginVersion}`;
331
+ const records = current.snapshot.records.filter((candidate) => identityOf(candidate) !== identity);
332
+ if (records.length === current.snapshot.records.length)
333
+ return Object.freeze({
334
+ status: "ok",
335
+ snapshot: current.snapshot,
336
+ changed: false,
337
+ });
338
+ const snapshot = Object.freeze({
339
+ version: PLUGIN_STATE_SNAPSHOT_VERSION_V1,
340
+ records: sortRecords(records),
341
+ });
342
+ return await write(snapshot, input.signal);
343
+ }),
344
+ };
345
+ }
346
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/state.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, unlink, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, isAbsolute, join, resolve } from \"node:path\";\n\nimport {\n\tDEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1,\n\tMAX_PLUGIN_SCOPE_REF_CHARS_V1,\n\ttype PluginInstallationV1,\n} from \"./installer.ts\";\n\nexport const PLUGIN_STATE_SNAPSHOT_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_STATE_RECORDS_V1 = 256;\nexport const MAX_PLUGIN_STATE_STRING_CHARS_V1 = 4096;\nexport const MAX_PLUGIN_STATE_ID_CHARS_V1 = 256;\nexport const MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1 = 2048;\n/** Optional acquisition source label (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`). */\nexport const MAX_PLUGIN_STATE_SOURCE_CHARS_V1 = 128;\n\nexport type PluginStateScopeV1 = \"global\" | \"project\";\nexport type PluginStateLifecycleV1 = PluginInstallationV1[\"state\"];\n\n/** Persisted identity, enablement, scope, and recoverable installation lifecycle. */\nexport interface PluginStateRecordV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly manifestDigest: string;\n\t/** Opaque host handle. It must never be a local path or file URI. */\n\treadonly installationRef: string;\n\t/** Optional acquisition source label; absent on records written before S1-b. */\n\treadonly source?: string;\n\treadonly state: {\n\t\treadonly scope: PluginStateScopeV1;\n\t\t/** Opaque concrete installation namespace; never a local path. */\n\t\treadonly scopeRef: string;\n\t\treadonly enabled: boolean;\n\t\treadonly lifecycle: PluginStateLifecycleV1;\n\t};\n}\n\nexport interface PluginStateSnapshotV1 {\n\treadonly version: typeof PLUGIN_STATE_SNAPSHOT_VERSION_V1;\n\treadonly records: readonly PluginStateRecordV1[];\n}\n\nexport type PluginStateDiagnosticCodeV1 =\n\t| \"invalid_path\"\n\t| \"invalid_json\"\n\t| \"invalid_schema\"\n\t| \"duplicate_identity\"\n\t| \"too_many_records\"\n\t| \"invalid_installation_ref\"\n\t| \"cancelled\";\n\nexport interface PluginStateDiagnosticV1 {\n\treadonly code: PluginStateDiagnosticCodeV1;\n\treadonly message: string;\n\treadonly identity?: string;\n}\n\nexport type PluginStateReadResultV1 =\n\t| { readonly status: \"ok\"; readonly snapshot: PluginStateSnapshotV1 }\n\t| { readonly status: \"missing\"; readonly snapshot: PluginStateSnapshotV1 }\n\t| {\n\t\t\treadonly status: \"invalid\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t }\n\t| {\n\t\t\treadonly status: \"cancelled\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t };\n\nexport type PluginStateMutationResultV1 =\n\t| {\n\t\t\treadonly status: \"ok\";\n\t\t\treadonly snapshot: PluginStateSnapshotV1;\n\t\t\treadonly changed: boolean;\n\t }\n\t| {\n\t\t\treadonly status: \"invalid\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t }\n\t| {\n\t\t\treadonly status: \"cancelled\";\n\t\t\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n\t };\n\nexport interface PluginStateFileSystemV1 {\n\treadonly readFile: (path: string) => Promise<string>;\n\treadonly mkdir: (path: string) => Promise<void>;\n\treadonly writeFile: (path: string, data: string) => Promise<void>;\n\treadonly rename: (oldPath: string, newPath: string) => Promise<void>;\n\treadonly unlink: (path: string) => Promise<void>;\n}\n\nexport interface PluginStateStoreOptionsV1 {\n\t/** Absolute path to the host-owned plugin-state.json file. */\n\treadonly filePath: string;\n\t/** Injectable filesystem for deterministic tests and alternate hosts. */\n\treadonly fileSystem?: PluginStateFileSystemV1;\n}\n\nexport interface PluginStateStoreV1 {\n\treadonly read: (options?: { readonly signal?: AbortSignal }) => Promise<PluginStateReadResultV1>;\n\treadonly upsert: (input: {\n\t\treadonly installation: PluginInstallationV1;\n\t\treadonly scope: PluginStateScopeV1;\n\t\treadonly enabled: boolean;\n\t\t/** Optional acquisition source label persisted with the record. */\n\t\treadonly source?: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginStateMutationResultV1>;\n\treadonly remove: (input: {\n\t\treadonly pluginId: string;\n\t\treadonly pluginVersion: string;\n\t\treadonly scope: PluginStateScopeV1;\n\t\treadonly scopeRef: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginStateMutationResultV1>;\n}\n\nconst EMPTY_SNAPSHOT: PluginStateSnapshotV1 = Object.freeze({\n\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\trecords: Object.freeze([]),\n});\n\nfunction diagnostic(code: PluginStateDiagnosticCodeV1, message: string, identity?: string): PluginStateDiagnosticV1 {\n\treturn Object.freeze(identity === undefined ? { code, message } : { code, message, identity });\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && (error.name === \"AbortError\" || error.name === \"AbortSignalError\");\n}\n\nfunction isMissingError(error: unknown): boolean {\n\tif (typeof error !== \"object\" || error === null) return false;\n\treturn \"code\" in error && (error as { readonly code?: unknown }).code === \"ENOENT\";\n}\n\nfunction validateFilePath(value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_STATE_STRING_CHARS_V1)\n\t\tthrow new Error(\"invalid plugin state file path\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid plugin state file path\");\n\tif (/^file:/iu.test(value) || (/^[a-z][a-z\\d+.-]*:/iu.test(value) && !/^[a-z]:[\\\\/]/iu.test(value)))\n\t\tthrow new Error(\"invalid plugin state file path\");\n\tconst normalized = isAbsolute(value) ? value : resolve(value);\n\tif (basename(normalized).length === 0 || basename(normalized) === \".\" || basename(normalized) === \"..\")\n\t\tthrow new Error(\"invalid plugin state file path\");\n\treturn normalized;\n}\n\nfunction validateOpaqueInstallationRef(value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1)\n\t\tthrow new Error(\"invalid installation reference\");\n\tif (/^(?:file:|[a-zA-Z]:[\\\\/]|[\\\\/]{1,2}|\\\\\\\\)/u.test(value) || /\\s/u.test(value))\n\t\tthrow new Error(\"invalid installation reference\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid installation reference\");\n\treturn value;\n}\n\nfunction validateScopeRef(scope: PluginStateScopeV1, value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_SCOPE_REF_CHARS_V1)\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\tif (/^(?:file:|[a-zA-Z]:[\\\\/]|[\\\\/]{1,2}|\\\\\\\\)/u.test(value) || /\\s/u.test(value))\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid plugin scope reference\");\n\tif (scope === \"global\" && value !== DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1)\n\t\tthrow new Error(\"invalid plugin scope reference\");\n\treturn value;\n}\n\nfunction validateString(value: unknown, label: string, max = MAX_PLUGIN_STATE_STRING_CHARS_V1): string {\n\tif (typeof value !== \"string\" || value.trim().length === 0 || value.length > max || /[\\u0000-\\u001f]/u.test(value))\n\t\tthrow new Error(`${label} is invalid`);\n\treturn value;\n}\n\n/** Acquisition source labels (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`, `github:<owner>/<repo>@<tag|latest>`). */\nfunction validateSourceLabel(value: unknown): string {\n\tif (\n\t\ttypeof value !== \"string\" ||\n\t\tvalue.length === 0 ||\n\t\tvalue.length > MAX_PLUGIN_STATE_SOURCE_CHARS_V1 ||\n\t\t!/^[a-z][a-z0-9.:[\\]_/@-]*$/u.test(value)\n\t)\n\t\tthrow new Error(\"record source label is invalid\");\n\treturn value;\n}\n\nfunction identityOf(record: PluginStateRecordV1): string {\n\treturn `${record.state.scope}:${record.state.scopeRef}:${record.pluginId}@${record.pluginVersion}`;\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction hasExactKeys(value: Record<string, unknown>, keys: readonly string[]): boolean {\n\tconst expected = new Set(keys);\n\treturn Object.keys(value).length === expected.size && Object.keys(value).every((key) => expected.has(key));\n}\n\nfunction validateRecord(value: unknown): PluginStateRecordV1 {\n\tconst requiredKeys = [\"pluginId\", \"pluginVersion\", \"manifestDigest\", \"installationRef\", \"state\"];\n\tconst allowedKeys = new Set([...requiredKeys, \"source\"]);\n\tif (!isObject(value) || Object.keys(value).some((key) => !allowedKeys.has(key)))\n\t\tthrow new Error(\"record schema is invalid\");\n\tfor (const key of requiredKeys) if (!(key in value)) throw new Error(\"record schema is invalid\");\n\tconst pluginId = validateString(value.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst pluginVersion = validateString(value.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst manifestDigest = validateString(value.manifestDigest, \"manifestDigest\");\n\tconst installationRef = validateOpaqueInstallationRef(value.installationRef);\n\tconst source = value.source === undefined ? undefined : validateSourceLabel(value.source);\n\tif (!isObject(value.state) || !hasExactKeys(value.state, [\"scope\", \"scopeRef\", \"enabled\", \"lifecycle\"]))\n\t\tthrow new Error(\"state schema is invalid\");\n\tif (value.state.scope !== \"global\" && value.state.scope !== \"project\") throw new Error(\"state scope is invalid\");\n\tconst scopeRef = validateScopeRef(value.state.scope, value.state.scopeRef);\n\tif (typeof value.state.enabled !== \"boolean\") throw new Error(\"state enabled flag is invalid\");\n\tif (\n\t\tvalue.state.lifecycle !== \"installed\" &&\n\t\tvalue.state.lifecycle !== \"active\" &&\n\t\tvalue.state.lifecycle !== \"retained\"\n\t)\n\t\tthrow new Error(\"state lifecycle is invalid\");\n\treturn Object.freeze({\n\t\tpluginId,\n\t\tpluginVersion,\n\t\tmanifestDigest,\n\t\tinstallationRef,\n\t\t...(source === undefined ? {} : { source }),\n\t\tstate: Object.freeze({\n\t\t\tscope: value.state.scope,\n\t\t\tscopeRef,\n\t\t\tenabled: value.state.enabled,\n\t\t\tlifecycle: value.state.lifecycle,\n\t\t}),\n\t});\n}\n\nfunction validateSnapshot(value: unknown): PluginStateSnapshotV1 {\n\tif (!isObject(value) || !hasExactKeys(value, [\"version\", \"records\"])) throw new Error(\"snapshot schema is invalid\");\n\tif (value.version !== PLUGIN_STATE_SNAPSHOT_VERSION_V1) throw new Error(\"snapshot version is unsupported\");\n\tif (!Array.isArray(value.records)) throw new Error(\"records must be an array\");\n\tif (value.records.length > MAX_PLUGIN_STATE_RECORDS_V1) throw new Error(\"too many plugin state records\");\n\tconst records = value.records.map(validateRecord);\n\tconst identities = new Set<string>();\n\tfor (const record of records) {\n\t\tconst identity = identityOf(record);\n\t\tif (identities.has(identity)) throw new Error(`duplicate identity: ${identity}`);\n\t\tidentities.add(identity);\n\t}\n\trecords.sort((left, right) => identityOf(left).localeCompare(identityOf(right)));\n\treturn Object.freeze({\n\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\trecords: Object.freeze(records),\n\t});\n}\n\nfunction invalidFromError(error: unknown): PluginStateDiagnosticV1 {\n\tconst message = error instanceof Error ? error.message : \"plugin state schema is invalid\";\n\tconst duplicatePrefix = \"duplicate identity: \";\n\tif (message.startsWith(duplicatePrefix))\n\t\treturn diagnostic(\"duplicate_identity\", message, message.slice(duplicatePrefix.length));\n\tif (message === \"too many plugin state records\") return diagnostic(\"too_many_records\", message);\n\tif (message === \"invalid installation reference\") return diagnostic(\"invalid_installation_ref\", message);\n\treturn diagnostic(\"invalid_schema\", message);\n}\n\nfunction defaultFileSystem(): PluginStateFileSystemV1 {\n\treturn {\n\t\treadFile: async (path) => await readFile(path, \"utf8\"),\n\t\tmkdir: async (path) => {\n\t\t\tawait mkdir(path, { recursive: true });\n\t\t},\n\t\twriteFile: async (path, data) => {\n\t\t\tawait writeFile(path, data, \"utf8\");\n\t\t},\n\t\trename,\n\t\tunlink,\n\t};\n}\n\nfunction cancelledResult(): {\n\treadonly status: \"cancelled\";\n\treadonly diagnostics: readonly PluginStateDiagnosticV1[];\n} {\n\treturn Object.freeze({\n\t\tstatus: \"cancelled\",\n\t\tdiagnostics: Object.freeze([diagnostic(\"cancelled\", \"Plugin state operation was cancelled\")]),\n\t});\n}\n\nfunction sortRecords(records: readonly PluginStateRecordV1[]): readonly PluginStateRecordV1[] {\n\treturn Object.freeze([...records].sort((left, right) => identityOf(left).localeCompare(identityOf(right))));\n}\n\nfunction makeRecord(\n\tinstallation: PluginInstallationV1,\n\tscope: PluginStateScopeV1,\n\tenabled: boolean,\n\tsource?: string,\n): PluginStateRecordV1 {\n\tif (installation.version !== 1) throw new Error(\"plugin installation handle is invalid\");\n\tconst pluginId = validateString(installation.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst pluginVersion = validateString(installation.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\tconst manifestDigest = validateString(installation.manifestDigest, \"manifestDigest\");\n\tconst installationRef = validateOpaqueInstallationRef(installation.installationRef);\n\tif (scope !== \"global\" && scope !== \"project\") throw new Error(\"state scope is invalid\");\n\tif (installation.scope !== scope) throw new Error(\"installation scope does not match state scope\");\n\tconst scopeRef = validateScopeRef(\n\t\tscope,\n\t\tscope === \"global\" ? (installation.scopeRef ?? DEFAULT_GLOBAL_PLUGIN_SCOPE_REF_V1) : installation.scopeRef,\n\t);\n\tif (typeof enabled !== \"boolean\") throw new Error(\"state enabled flag is invalid\");\n\tconst sourceLabel = source === undefined ? undefined : validateSourceLabel(source);\n\treturn Object.freeze({\n\t\tpluginId,\n\t\tpluginVersion,\n\t\tmanifestDigest,\n\t\tinstallationRef,\n\t\t...(sourceLabel === undefined ? {} : { source: sourceLabel }),\n\t\tstate: Object.freeze({ scope, scopeRef, enabled, lifecycle: installation.state }),\n\t});\n}\n\nexport function createPluginStateStoreV1(options: PluginStateStoreOptionsV1): PluginStateStoreV1 {\n\tconst filePath = validateFilePath(options.filePath);\n\tconst fileSystem = options.fileSystem ?? defaultFileSystem();\n\n\tasync function read(signal?: AbortSignal): Promise<PluginStateReadResultV1> {\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = await fileSystem.readFile(filePath);\n\t\t} catch (error) {\n\t\t\tif (isMissingError(error)) return Object.freeze({ status: \"missing\", snapshot: EMPTY_SNAPSHOT });\n\t\t\tif (isAbortError(error) || signal?.aborted) return cancelledResult();\n\t\t\tthrow error;\n\t\t}\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(content) as unknown;\n\t\t} catch {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"invalid\",\n\t\t\t\tdiagnostics: Object.freeze([diagnostic(\"invalid_json\", \"plugin state JSON is invalid\")]),\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"ok\",\n\t\t\t\tsnapshot: validateSnapshot(parsed),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn Object.freeze({\n\t\t\t\tstatus: \"invalid\",\n\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t});\n\t\t}\n\t}\n\n\tasync function write(snapshot: PluginStateSnapshotV1, signal?: AbortSignal): Promise<PluginStateMutationResultV1> {\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tconst parent = dirname(filePath);\n\t\tconst temporaryPath = join(parent, `.${basename(filePath)}.${randomUUID()}.tmp`);\n\t\ttry {\n\t\t\tawait fileSystem.mkdir(parent);\n\t\t\tif (signal?.aborted) return cancelledResult();\n\t\t\tawait fileSystem.writeFile(temporaryPath, `${JSON.stringify(snapshot)}\\n`);\n\t\t\tif (signal?.aborted) return cancelledResult();\n\t\t\tawait fileSystem.rename(temporaryPath, filePath);\n\t\t\treturn Object.freeze({ status: \"ok\", snapshot, changed: true });\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait fileSystem.unlink(temporaryPath);\n\t\t\t} catch {\n\t\t\t\t// Cleanup must not replace the original write/rename error.\n\t\t\t}\n\t\t}\n\t}\n\n\t// Serialize mutations made through one store instance so concurrent CLI/UI\n\t// actions cannot lose each other's read-modify-write updates.\n\tlet mutationTail: Promise<void> = Promise.resolve();\n\tfunction enqueueMutation<T>(operation: () => Promise<T>): Promise<T> {\n\t\tconst result = mutationTail.then(operation, operation);\n\t\tmutationTail = result.then(\n\t\t\t() => undefined,\n\t\t\t() => undefined,\n\t\t);\n\t\treturn result;\n\t}\n\n\treturn {\n\t\tread: async ({ signal } = {}) => await read(signal),\n\t\tupsert: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet record: PluginStateRecordV1;\n\t\t\t\ttry {\n\t\t\t\t\trecord = makeRecord(input.installation, input.scope, input.enabled, input.source);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst current = await read(input.signal);\n\t\t\t\tif (current.status !== \"ok\" && current.status !== \"missing\") return current;\n\t\t\t\tif (input.signal?.aborted) return cancelledResult();\n\t\t\t\tconst records = current.snapshot.records.filter(\n\t\t\t\t\t(candidate) => identityOf(candidate) !== identityOf(record),\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\trecords.length >= MAX_PLUGIN_STATE_RECORDS_V1 &&\n\t\t\t\t\t!current.snapshot.records.some((candidate) => identityOf(candidate) === identityOf(record))\n\t\t\t\t)\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([diagnostic(\"too_many_records\", \"too many plugin state records\")]),\n\t\t\t\t\t});\n\t\t\t\tconst snapshot = Object.freeze({\n\t\t\t\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\t\t\t\trecords: sortRecords([...records, record]),\n\t\t\t\t});\n\t\t\t\treturn await write(snapshot, input.signal);\n\t\t\t}),\n\t\tremove: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet pluginId: string;\n\t\t\t\tlet pluginVersion: string;\n\t\t\t\tlet scope: PluginStateScopeV1;\n\t\t\t\tlet scopeRef: string;\n\t\t\t\ttry {\n\t\t\t\t\tpluginId = validateString(input.pluginId, \"pluginId\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\t\t\t\t\tpluginVersion = validateString(input.pluginVersion, \"pluginVersion\", MAX_PLUGIN_STATE_ID_CHARS_V1);\n\t\t\t\t\tif (input.scope !== \"global\" && input.scope !== \"project\") throw new Error(\"state scope is invalid\");\n\t\t\t\t\tscope = input.scope;\n\t\t\t\t\tscopeRef = validateScopeRef(scope, input.scopeRef);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"invalid\",\n\t\t\t\t\t\tdiagnostics: Object.freeze([invalidFromError(error)]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst current = await read(input.signal);\n\t\t\t\tif (current.status !== \"ok\" && current.status !== \"missing\") return current;\n\t\t\t\tif (input.signal?.aborted) return cancelledResult();\n\t\t\t\tconst identity = `${scope}:${scopeRef}:${pluginId}@${pluginVersion}`;\n\t\t\t\tconst records = current.snapshot.records.filter((candidate) => identityOf(candidate) !== identity);\n\t\t\t\tif (records.length === current.snapshot.records.length)\n\t\t\t\t\treturn Object.freeze({\n\t\t\t\t\t\tstatus: \"ok\",\n\t\t\t\t\t\tsnapshot: current.snapshot,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\tconst snapshot = Object.freeze({\n\t\t\t\t\tversion: PLUGIN_STATE_SNAPSHOT_VERSION_V1,\n\t\t\t\t\trecords: sortRecords(records),\n\t\t\t\t});\n\t\t\t\treturn await write(snapshot, input.signal);\n\t\t\t}),\n\t};\n}\n"]}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Host-independent plugin ecosystem contracts.
3
+ *
4
+ * These types describe compatibility facts only. They intentionally do not
5
+ * contain approval, sandbox, credential, or domain-specific policy.
6
+ */
7
+ import type { CapabilityRefV1, PluginArchitecture, PluginManifestV1, PluginOperatingSystem } from "@agent-forge/plugin-sdk";
8
+ export type { CapabilityRefV1, CapabilityRequirementV1, PluginAdapterManifestV1, PluginArchitecture, PluginManifestV1, PluginOperatingSystem, PluginPlatformBindingV1, RuntimeConstraintV1, } from "@agent-forge/plugin-sdk";
9
+ export interface HostRuntimeFactV1 {
10
+ readonly name: string;
11
+ readonly version: string;
12
+ }
13
+ export interface HostAdapterFactV1 {
14
+ readonly id: string;
15
+ readonly version: string;
16
+ readonly os?: PluginOperatingSystem;
17
+ readonly arch?: PluginArchitecture;
18
+ readonly hostFeatures?: readonly string[];
19
+ }
20
+ /** Concrete facts observed by the host; no security judgement is implied. */
21
+ export interface HostFactsV1 {
22
+ readonly os: Exclude<PluginOperatingSystem, "any"> | string;
23
+ readonly arch: Exclude<PluginArchitecture, "any"> | string;
24
+ readonly runtime: readonly HostRuntimeFactV1[];
25
+ readonly apiVersion: string;
26
+ readonly hostFeatures: readonly string[];
27
+ readonly adapters?: readonly HostAdapterFactV1[];
28
+ }
29
+ export type PluginResolutionStatusV1 = "installed-ready" | "installed-unavailable" | "dependency-unavailable" | "version-incompatible" | "disabled" | "manifest-missing";
30
+ export type PluginDiagnosticCodeV1 = "unsupported-platform" | "unsupported-architecture" | "missing-runtime" | "runtime-version-incompatible" | "missing-host-feature" | "api-version-incompatible" | "host-version-incompatible" | "adapter-unavailable" | "missing-capability" | "optional-capability-unavailable" | "plugin-disabled" | "test-only-plugin" | "manifest_missing";
31
+ export interface PluginDiagnosticV1 {
32
+ readonly code: PluginDiagnosticCodeV1;
33
+ readonly message: string;
34
+ readonly details?: Readonly<Record<string, string>>;
35
+ }
36
+ export interface SelectedAdapterV1 {
37
+ readonly id: string;
38
+ readonly version: string;
39
+ }
40
+ export interface ResolvedPluginV1 {
41
+ readonly pluginId: string;
42
+ readonly pluginVersion: string;
43
+ readonly capabilityRefs: readonly CapabilityRefV1[];
44
+ readonly selectedAdapter?: SelectedAdapterV1;
45
+ }
46
+ export interface PluginResolutionV1 {
47
+ readonly pluginId: string;
48
+ readonly pluginVersion: string;
49
+ readonly required: boolean;
50
+ readonly status: PluginResolutionStatusV1;
51
+ readonly diagnostics: readonly PluginDiagnosticV1[];
52
+ readonly selectedAdapter?: SelectedAdapterV1;
53
+ readonly resolved?: ResolvedPluginV1;
54
+ }
55
+ export interface ResolvedManifestV1 {
56
+ readonly profileId: string;
57
+ readonly profileVersion: string;
58
+ readonly plugins: readonly ResolvedPluginV1[];
59
+ readonly capabilityRefs: readonly CapabilityRefV1[];
60
+ readonly manifestDigest: string;
61
+ }
62
+ export interface ProfileResolutionV1 {
63
+ readonly profileId: string;
64
+ readonly profileVersion: string;
65
+ readonly status: "ready" | "blocked";
66
+ readonly plugins: readonly PluginResolutionV1[];
67
+ readonly diagnostics: readonly PluginDiagnosticV1[];
68
+ readonly resolvedManifest: ResolvedManifestV1;
69
+ }
70
+ export type PluginUpdateStateV1 = "staged" | "verified" | "active";
71
+ export interface PluginUpdateRecordV1 {
72
+ readonly pluginId: string;
73
+ readonly pluginVersion: string;
74
+ readonly source: string;
75
+ readonly manifest: PluginManifestV1;
76
+ readonly manifestDigest: string;
77
+ readonly state: PluginUpdateStateV1;
78
+ }
79
+ export type PluginSourceVerifierV1 = (input: {
80
+ readonly pluginId: string;
81
+ readonly pluginVersion: string;
82
+ readonly source: string;
83
+ readonly manifestDigest: string;
84
+ }) => {
85
+ readonly status: "accepted";
86
+ } | {
87
+ readonly status: "rejected";
88
+ readonly reason?: string;
89
+ };
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/types.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Host-independent plugin ecosystem contracts.\n *\n * These types describe compatibility facts only. They intentionally do not\n * contain approval, sandbox, credential, or domain-specific policy.\n */\n\nimport type {\n\tCapabilityRefV1,\n\tPluginArchitecture,\n\tPluginManifestV1,\n\tPluginOperatingSystem,\n} from \"@agent-forge/plugin-sdk\";\n\n// agent-forge.json manifest schema types moved to @agent-forge/plugin-sdk\n// (D-075 S2); re-exported here so existing consumers keep resolving.\nexport type {\n\tCapabilityRefV1,\n\tCapabilityRequirementV1,\n\tPluginAdapterManifestV1,\n\tPluginArchitecture,\n\tPluginManifestV1,\n\tPluginOperatingSystem,\n\tPluginPlatformBindingV1,\n\tRuntimeConstraintV1,\n} from \"@agent-forge/plugin-sdk\";\n\nexport interface HostRuntimeFactV1 {\n\treadonly name: string;\n\treadonly version: string;\n}\n\nexport interface HostAdapterFactV1 {\n\treadonly id: string;\n\treadonly version: string;\n\treadonly os?: PluginOperatingSystem;\n\treadonly arch?: PluginArchitecture;\n\treadonly hostFeatures?: readonly string[];\n}\n\n/** Concrete facts observed by the host; no security judgement is implied. */\nexport interface HostFactsV1 {\n\treadonly os: Exclude<PluginOperatingSystem, \"any\"> | string;\n\treadonly arch: Exclude<PluginArchitecture, \"any\"> | string;\n\treadonly runtime: readonly HostRuntimeFactV1[];\n\treadonly apiVersion: string;\n\treadonly hostFeatures: readonly string[];\n\treadonly adapters?: readonly HostAdapterFactV1[];\n}\n\nexport type PluginResolutionStatusV1 =\n\t| \"installed-ready\"\n\t| \"installed-unavailable\"\n\t| \"dependency-unavailable\"\n\t| \"version-incompatible\"\n\t| \"disabled\"\n\t| \"manifest-missing\";\n\nexport type PluginDiagnosticCodeV1 =\n\t| \"unsupported-platform\"\n\t| \"unsupported-architecture\"\n\t| \"missing-runtime\"\n\t| \"runtime-version-incompatible\"\n\t| \"missing-host-feature\"\n\t| \"api-version-incompatible\"\n\t| \"host-version-incompatible\"\n\t| \"adapter-unavailable\"\n\t| \"missing-capability\"\n\t| \"optional-capability-unavailable\"\n\t| \"plugin-disabled\"\n\t| \"test-only-plugin\"\n\t| \"manifest_missing\";\n\nexport interface PluginDiagnosticV1 {\n\treadonly code: PluginDiagnosticCodeV1;\n\treadonly message: string;\n\treadonly details?: Readonly<Record<string, string>>;\n}\n\nexport interface SelectedAdapterV1 {\n\treadonly id: string;\n\treadonly version: string;\n}\n\nexport interface ResolvedPluginV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly capabilityRefs: readonly CapabilityRefV1[];\n\treadonly selectedAdapter?: SelectedAdapterV1;\n}\n\nexport interface PluginResolutionV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly required: boolean;\n\treadonly status: PluginResolutionStatusV1;\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n\treadonly selectedAdapter?: SelectedAdapterV1;\n\treadonly resolved?: ResolvedPluginV1;\n}\n\nexport interface ResolvedManifestV1 {\n\treadonly profileId: string;\n\treadonly profileVersion: string;\n\treadonly plugins: readonly ResolvedPluginV1[];\n\treadonly capabilityRefs: readonly CapabilityRefV1[];\n\treadonly manifestDigest: string;\n}\n\nexport interface ProfileResolutionV1 {\n\treadonly profileId: string;\n\treadonly profileVersion: string;\n\treadonly status: \"ready\" | \"blocked\";\n\treadonly plugins: readonly PluginResolutionV1[];\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n\treadonly resolvedManifest: ResolvedManifestV1;\n}\n\nexport type PluginUpdateStateV1 = \"staged\" | \"verified\" | \"active\";\n\nexport interface PluginUpdateRecordV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly source: string;\n\treadonly manifest: PluginManifestV1;\n\treadonly manifestDigest: string;\n\treadonly state: PluginUpdateStateV1;\n}\n\nexport type PluginSourceVerifierV1 = (input: {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly source: string;\n\treadonly manifestDigest: string;\n}) => { readonly status: \"accepted\" } | { readonly status: \"rejected\"; readonly reason?: string };\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Host-independent plugin ecosystem contracts.
3
+ *
4
+ * These types describe compatibility facts only. They intentionally do not
5
+ * contain approval, sandbox, credential, or domain-specific policy.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Host-independent plugin ecosystem contracts.\n *\n * These types describe compatibility facts only. They intentionally do not\n * contain approval, sandbox, credential, or domain-specific policy.\n */\n\nimport type {\n\tCapabilityRefV1,\n\tPluginArchitecture,\n\tPluginManifestV1,\n\tPluginOperatingSystem,\n} from \"@agent-forge/plugin-sdk\";\n\n// agent-forge.json manifest schema types moved to @agent-forge/plugin-sdk\n// (D-075 S2); re-exported here so existing consumers keep resolving.\nexport type {\n\tCapabilityRefV1,\n\tCapabilityRequirementV1,\n\tPluginAdapterManifestV1,\n\tPluginArchitecture,\n\tPluginManifestV1,\n\tPluginOperatingSystem,\n\tPluginPlatformBindingV1,\n\tRuntimeConstraintV1,\n} from \"@agent-forge/plugin-sdk\";\n\nexport interface HostRuntimeFactV1 {\n\treadonly name: string;\n\treadonly version: string;\n}\n\nexport interface HostAdapterFactV1 {\n\treadonly id: string;\n\treadonly version: string;\n\treadonly os?: PluginOperatingSystem;\n\treadonly arch?: PluginArchitecture;\n\treadonly hostFeatures?: readonly string[];\n}\n\n/** Concrete facts observed by the host; no security judgement is implied. */\nexport interface HostFactsV1 {\n\treadonly os: Exclude<PluginOperatingSystem, \"any\"> | string;\n\treadonly arch: Exclude<PluginArchitecture, \"any\"> | string;\n\treadonly runtime: readonly HostRuntimeFactV1[];\n\treadonly apiVersion: string;\n\treadonly hostFeatures: readonly string[];\n\treadonly adapters?: readonly HostAdapterFactV1[];\n}\n\nexport type PluginResolutionStatusV1 =\n\t| \"installed-ready\"\n\t| \"installed-unavailable\"\n\t| \"dependency-unavailable\"\n\t| \"version-incompatible\"\n\t| \"disabled\"\n\t| \"manifest-missing\";\n\nexport type PluginDiagnosticCodeV1 =\n\t| \"unsupported-platform\"\n\t| \"unsupported-architecture\"\n\t| \"missing-runtime\"\n\t| \"runtime-version-incompatible\"\n\t| \"missing-host-feature\"\n\t| \"api-version-incompatible\"\n\t| \"host-version-incompatible\"\n\t| \"adapter-unavailable\"\n\t| \"missing-capability\"\n\t| \"optional-capability-unavailable\"\n\t| \"plugin-disabled\"\n\t| \"test-only-plugin\"\n\t| \"manifest_missing\";\n\nexport interface PluginDiagnosticV1 {\n\treadonly code: PluginDiagnosticCodeV1;\n\treadonly message: string;\n\treadonly details?: Readonly<Record<string, string>>;\n}\n\nexport interface SelectedAdapterV1 {\n\treadonly id: string;\n\treadonly version: string;\n}\n\nexport interface ResolvedPluginV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly capabilityRefs: readonly CapabilityRefV1[];\n\treadonly selectedAdapter?: SelectedAdapterV1;\n}\n\nexport interface PluginResolutionV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly required: boolean;\n\treadonly status: PluginResolutionStatusV1;\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n\treadonly selectedAdapter?: SelectedAdapterV1;\n\treadonly resolved?: ResolvedPluginV1;\n}\n\nexport interface ResolvedManifestV1 {\n\treadonly profileId: string;\n\treadonly profileVersion: string;\n\treadonly plugins: readonly ResolvedPluginV1[];\n\treadonly capabilityRefs: readonly CapabilityRefV1[];\n\treadonly manifestDigest: string;\n}\n\nexport interface ProfileResolutionV1 {\n\treadonly profileId: string;\n\treadonly profileVersion: string;\n\treadonly status: \"ready\" | \"blocked\";\n\treadonly plugins: readonly PluginResolutionV1[];\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n\treadonly resolvedManifest: ResolvedManifestV1;\n}\n\nexport type PluginUpdateStateV1 = \"staged\" | \"verified\" | \"active\";\n\nexport interface PluginUpdateRecordV1 {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly source: string;\n\treadonly manifest: PluginManifestV1;\n\treadonly manifestDigest: string;\n\treadonly state: PluginUpdateStateV1;\n}\n\nexport type PluginSourceVerifierV1 = (input: {\n\treadonly pluginId: string;\n\treadonly pluginVersion: string;\n\treadonly source: string;\n\treadonly manifestDigest: string;\n}) => { readonly status: \"accepted\" } | { readonly status: \"rejected\"; readonly reason?: string };\n"]}