@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,241 @@
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 { createPluginSelectionV1, MAX_PLUGIN_SELECTION_IDS_V1 } from "./selection.js";
5
+ /** Version of the host-independent user plugin selection snapshot. */
6
+ export const PLUGIN_SELECTION_STORE_VERSION_V1 = 1;
7
+ export const MAX_PLUGIN_SELECTION_PROFILES_V1 = 256;
8
+ export const MAX_PLUGIN_SELECTION_STORE_PATH_CHARS_V1 = 4096;
9
+ const EMPTY_SNAPSHOT = Object.freeze({
10
+ version: PLUGIN_SELECTION_STORE_VERSION_V1,
11
+ selections: Object.freeze([]),
12
+ });
13
+ function diagnostic(code, message, profileId) {
14
+ return Object.freeze(profileId === undefined ? { code, message } : { code, message, profileId });
15
+ }
16
+ function isAbortError(error) {
17
+ return error instanceof Error && (error.name === "AbortError" || error.name === "AbortSignalError");
18
+ }
19
+ function isMissingError(error) {
20
+ return (typeof error === "object" &&
21
+ error !== null &&
22
+ "code" in error &&
23
+ error.code === "ENOENT");
24
+ }
25
+ function validateFilePath(value) {
26
+ if (typeof value !== "string" || value.trim() === "" || value.length > MAX_PLUGIN_SELECTION_STORE_PATH_CHARS_V1)
27
+ throw new Error("invalid plugin selection file path");
28
+ if (value.includes("\0") || /[\u0000-\u001f]/u.test(value))
29
+ throw new Error("invalid plugin selection file path");
30
+ if (/^file:/iu.test(value) || (/^[a-z][a-z\d+.-]*:/iu.test(value) && !/^[a-z]:[\\/]/iu.test(value)))
31
+ throw new Error("invalid plugin selection file path");
32
+ const normalized = isAbsolute(value) ? value : resolve(value);
33
+ if (basename(normalized).length === 0 || basename(normalized) === "." || basename(normalized) === "..")
34
+ throw new Error("invalid plugin selection file path");
35
+ return normalized;
36
+ }
37
+ function isObject(value) {
38
+ return typeof value === "object" && value !== null && !Array.isArray(value);
39
+ }
40
+ function hasExactKeys(value, keys) {
41
+ const expected = new Set(keys);
42
+ return Object.keys(value).length === expected.size && Object.keys(value).every((key) => expected.has(key));
43
+ }
44
+ function validateProfile(value) {
45
+ if (!isObject(value) || !hasExactKeys(value, ["profileId", "selectedPluginIds", "disabledPluginIds"]))
46
+ throw new Error("selection schema is invalid");
47
+ if (!Array.isArray(value.selectedPluginIds) || !Array.isArray(value.disabledPluginIds))
48
+ throw new Error("selection IDs must be arrays");
49
+ if (value.selectedPluginIds.length > MAX_PLUGIN_SELECTION_IDS_V1 ||
50
+ value.disabledPluginIds.length > MAX_PLUGIN_SELECTION_IDS_V1)
51
+ throw new Error("too many plugin IDs");
52
+ return createPluginSelectionV1({
53
+ profileId: value.profileId,
54
+ selectedPluginIds: value.selectedPluginIds,
55
+ disabledPluginIds: value.disabledPluginIds,
56
+ });
57
+ }
58
+ function validateSnapshot(value) {
59
+ if (!isObject(value) || !hasExactKeys(value, ["version", "selections"]))
60
+ throw new Error("snapshot schema is invalid");
61
+ if (value.version !== PLUGIN_SELECTION_STORE_VERSION_V1)
62
+ throw new Error("snapshot version is unsupported");
63
+ if (!Array.isArray(value.selections))
64
+ throw new Error("selections must be an array");
65
+ if (value.selections.length > MAX_PLUGIN_SELECTION_PROFILES_V1)
66
+ throw new Error("too many selection profiles");
67
+ const selections = value.selections.map(validateProfile);
68
+ const profiles = new Set();
69
+ for (const selection of selections) {
70
+ if (profiles.has(selection.profileId))
71
+ throw new Error(`duplicate profile: ${selection.profileId}`);
72
+ profiles.add(selection.profileId);
73
+ }
74
+ selections.sort((left, right) => left.profileId.localeCompare(right.profileId));
75
+ return Object.freeze({ version: PLUGIN_SELECTION_STORE_VERSION_V1, selections: Object.freeze(selections) });
76
+ }
77
+ function invalidFromError(error) {
78
+ const message = error instanceof Error ? error.message : "plugin selection schema is invalid";
79
+ if (message === "too many selection profiles")
80
+ return diagnostic("too_many_profiles", message);
81
+ const duplicatePrefix = "duplicate profile: ";
82
+ if (message.startsWith(duplicatePrefix)) {
83
+ const profileId = message.slice(duplicatePrefix.length);
84
+ return diagnostic("duplicate_profile", message, profileId);
85
+ }
86
+ return diagnostic("invalid_schema", message);
87
+ }
88
+ function defaultFileSystem() {
89
+ return {
90
+ readFile: async (path) => await readFile(path, "utf8"),
91
+ mkdir: async (path) => {
92
+ await mkdir(path, { recursive: true });
93
+ },
94
+ writeFile: async (path, data) => {
95
+ await writeFile(path, data, "utf8");
96
+ },
97
+ rename,
98
+ unlink,
99
+ };
100
+ }
101
+ function cancelledResult() {
102
+ return Object.freeze({
103
+ status: "cancelled",
104
+ diagnostics: Object.freeze([diagnostic("cancelled", "Plugin selection operation was cancelled")]),
105
+ });
106
+ }
107
+ function sortSelections(selections) {
108
+ return Object.freeze([...selections].sort((left, right) => left.profileId.localeCompare(right.profileId)));
109
+ }
110
+ function persistedSelection(selection) {
111
+ return Object.freeze({
112
+ profileId: selection.profileId,
113
+ selectedPluginIds: selection.selectedPluginIds,
114
+ disabledPluginIds: selection.disabledPluginIds,
115
+ });
116
+ }
117
+ export function createPluginSelectionStoreV1(options) {
118
+ const filePath = validateFilePath(options.filePath);
119
+ const fileSystem = options.fileSystem ?? defaultFileSystem();
120
+ async function read(signal) {
121
+ if (signal?.aborted)
122
+ return cancelledResult();
123
+ let content;
124
+ try {
125
+ content = await fileSystem.readFile(filePath);
126
+ }
127
+ catch (error) {
128
+ if (isMissingError(error))
129
+ return Object.freeze({ status: "missing", snapshot: EMPTY_SNAPSHOT });
130
+ if (isAbortError(error) || signal?.aborted)
131
+ return cancelledResult();
132
+ throw error;
133
+ }
134
+ if (signal?.aborted)
135
+ return cancelledResult();
136
+ let parsed;
137
+ try {
138
+ parsed = JSON.parse(content);
139
+ }
140
+ catch {
141
+ return Object.freeze({
142
+ status: "invalid",
143
+ diagnostics: Object.freeze([diagnostic("invalid_json", "plugin selection JSON is invalid")]),
144
+ });
145
+ }
146
+ try {
147
+ return Object.freeze({ status: "ok", snapshot: validateSnapshot(parsed) });
148
+ }
149
+ catch (error) {
150
+ return Object.freeze({ status: "invalid", diagnostics: Object.freeze([invalidFromError(error)]) });
151
+ }
152
+ }
153
+ async function write(snapshot, signal) {
154
+ if (signal?.aborted)
155
+ return cancelledResult();
156
+ const temporaryPath = join(dirname(filePath), `.${basename(filePath)}.${randomUUID()}.tmp`);
157
+ try {
158
+ await fileSystem.mkdir(dirname(filePath));
159
+ if (signal?.aborted)
160
+ return cancelledResult();
161
+ await fileSystem.writeFile(temporaryPath, `${JSON.stringify({
162
+ version: snapshot.version,
163
+ selections: snapshot.selections.map(persistedSelection),
164
+ })}\n`);
165
+ if (signal?.aborted)
166
+ return cancelledResult();
167
+ await fileSystem.rename(temporaryPath, filePath);
168
+ return Object.freeze({ status: "ok", snapshot, changed: true });
169
+ }
170
+ finally {
171
+ try {
172
+ await fileSystem.unlink(temporaryPath);
173
+ }
174
+ catch {
175
+ // Cleanup must not replace the original write/rename error.
176
+ }
177
+ }
178
+ }
179
+ let mutationTail = Promise.resolve();
180
+ function enqueueMutation(operation) {
181
+ const result = mutationTail.then(operation, operation);
182
+ mutationTail = result.then(() => undefined, () => undefined);
183
+ return result;
184
+ }
185
+ return {
186
+ read: async ({ signal } = {}) => await read(signal),
187
+ set: (input) => enqueueMutation(async () => {
188
+ let selection;
189
+ try {
190
+ selection = createPluginSelectionV1(input.selection);
191
+ }
192
+ catch (error) {
193
+ return Object.freeze({ status: "invalid", diagnostics: Object.freeze([invalidFromError(error)]) });
194
+ }
195
+ const current = await read(input.signal);
196
+ if (current.status !== "ok" && current.status !== "missing")
197
+ return current;
198
+ if (input.signal?.aborted)
199
+ return cancelledResult();
200
+ const existing = current.snapshot.selections.find((item) => item.profileId === selection.profileId);
201
+ if (existing !== undefined && JSON.stringify(existing) === JSON.stringify(selection))
202
+ return Object.freeze({ status: "ok", snapshot: current.snapshot, changed: false });
203
+ if (current.snapshot.selections.length >= MAX_PLUGIN_SELECTION_PROFILES_V1 && existing === undefined)
204
+ return Object.freeze({
205
+ status: "invalid",
206
+ diagnostics: Object.freeze([diagnostic("too_many_profiles", "too many selection profiles")]),
207
+ });
208
+ const snapshot = Object.freeze({
209
+ version: PLUGIN_SELECTION_STORE_VERSION_V1,
210
+ selections: sortSelections([
211
+ ...current.snapshot.selections.filter((item) => item.profileId !== selection.profileId),
212
+ selection,
213
+ ]),
214
+ });
215
+ return await write(snapshot, input.signal);
216
+ }),
217
+ clear: (input) => enqueueMutation(async () => {
218
+ let selection;
219
+ try {
220
+ selection = createPluginSelectionV1({
221
+ profileId: input.profileId,
222
+ selectedPluginIds: [],
223
+ disabledPluginIds: [],
224
+ });
225
+ }
226
+ catch (error) {
227
+ return Object.freeze({ status: "invalid", diagnostics: Object.freeze([invalidFromError(error)]) });
228
+ }
229
+ const current = await read(input.signal);
230
+ if (current.status !== "ok" && current.status !== "missing")
231
+ return current;
232
+ if (input.signal?.aborted)
233
+ return cancelledResult();
234
+ const selections = current.snapshot.selections.filter((item) => item.profileId !== selection.profileId);
235
+ if (selections.length === current.snapshot.selections.length)
236
+ return Object.freeze({ status: "ok", snapshot: current.snapshot, changed: false });
237
+ return await write(Object.freeze({ version: PLUGIN_SELECTION_STORE_VERSION_V1, selections: sortSelections(selections) }), input.signal);
238
+ }),
239
+ };
240
+ }
241
+ //# sourceMappingURL=selection-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-store.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/selection-store.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 { createPluginSelectionV1, MAX_PLUGIN_SELECTION_IDS_V1, type PluginSelectionV1 } from \"./selection.ts\";\n\n/** Version of the host-independent user plugin selection snapshot. */\nexport const PLUGIN_SELECTION_STORE_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_SELECTION_PROFILES_V1 = 256;\nexport const MAX_PLUGIN_SELECTION_STORE_PATH_CHARS_V1 = 4096;\n\nexport interface PluginSelectionStoreSnapshotV1 {\n\treadonly version: typeof PLUGIN_SELECTION_STORE_VERSION_V1;\n\treadonly selections: readonly PluginSelectionV1[];\n}\n\nexport type PluginSelectionStoreDiagnosticCodeV1 =\n\t| \"invalid_json\"\n\t| \"invalid_schema\"\n\t| \"duplicate_profile\"\n\t| \"too_many_profiles\"\n\t| \"cancelled\";\n\nexport interface PluginSelectionStoreDiagnosticV1 {\n\treadonly code: PluginSelectionStoreDiagnosticCodeV1;\n\treadonly message: string;\n\treadonly profileId?: string;\n}\n\nexport type PluginSelectionStoreReadResultV1 =\n\t| { readonly status: \"ok\"; readonly snapshot: PluginSelectionStoreSnapshotV1 }\n\t| { readonly status: \"missing\"; readonly snapshot: PluginSelectionStoreSnapshotV1 }\n\t| { readonly status: \"invalid\"; readonly diagnostics: readonly PluginSelectionStoreDiagnosticV1[] }\n\t| { readonly status: \"cancelled\"; readonly diagnostics: readonly PluginSelectionStoreDiagnosticV1[] };\n\nexport type PluginSelectionStoreMutationResultV1 =\n\t| { readonly status: \"ok\"; readonly snapshot: PluginSelectionStoreSnapshotV1; readonly changed: boolean }\n\t| { readonly status: \"invalid\"; readonly diagnostics: readonly PluginSelectionStoreDiagnosticV1[] }\n\t| { readonly status: \"cancelled\"; readonly diagnostics: readonly PluginSelectionStoreDiagnosticV1[] };\n\nexport interface PluginSelectionStoreFileSystemV1 {\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 PluginSelectionStoreOptionsV1 {\n\t/** Absolute path to the host-owned `.plugin-selection.json` file. */\n\treadonly filePath: string;\n\treadonly fileSystem?: PluginSelectionStoreFileSystemV1;\n}\n\nexport interface PluginSelectionStoreV1 {\n\treadonly read: (options?: { readonly signal?: AbortSignal }) => Promise<PluginSelectionStoreReadResultV1>;\n\treadonly set: (input: {\n\t\treadonly selection: PluginSelectionV1;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginSelectionStoreMutationResultV1>;\n\treadonly clear: (input: {\n\t\treadonly profileId: string;\n\t\treadonly signal?: AbortSignal;\n\t}) => Promise<PluginSelectionStoreMutationResultV1>;\n}\n\nconst EMPTY_SNAPSHOT: PluginSelectionStoreSnapshotV1 = Object.freeze({\n\tversion: PLUGIN_SELECTION_STORE_VERSION_V1,\n\tselections: Object.freeze([]),\n});\n\nfunction diagnostic(\n\tcode: PluginSelectionStoreDiagnosticCodeV1,\n\tmessage: string,\n\tprofileId?: string,\n): PluginSelectionStoreDiagnosticV1 {\n\treturn Object.freeze(profileId === undefined ? { code, message } : { code, message, profileId });\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\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"code\" in error &&\n\t\t(error as { readonly code?: unknown }).code === \"ENOENT\"\n\t);\n}\n\nfunction validateFilePath(value: unknown): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\" || value.length > MAX_PLUGIN_SELECTION_STORE_PATH_CHARS_V1)\n\t\tthrow new Error(\"invalid plugin selection file path\");\n\tif (value.includes(\"\\0\") || /[\\u0000-\\u001f]/u.test(value)) throw new Error(\"invalid plugin selection 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 selection 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 selection file path\");\n\treturn normalized;\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 validateProfile(value: unknown): PluginSelectionV1 {\n\tif (!isObject(value) || !hasExactKeys(value, [\"profileId\", \"selectedPluginIds\", \"disabledPluginIds\"]))\n\t\tthrow new Error(\"selection schema is invalid\");\n\tif (!Array.isArray(value.selectedPluginIds) || !Array.isArray(value.disabledPluginIds))\n\t\tthrow new Error(\"selection IDs must be arrays\");\n\tif (\n\t\tvalue.selectedPluginIds.length > MAX_PLUGIN_SELECTION_IDS_V1 ||\n\t\tvalue.disabledPluginIds.length > MAX_PLUGIN_SELECTION_IDS_V1\n\t)\n\t\tthrow new Error(\"too many plugin IDs\");\n\treturn createPluginSelectionV1({\n\t\tprofileId: value.profileId as string,\n\t\tselectedPluginIds: value.selectedPluginIds,\n\t\tdisabledPluginIds: value.disabledPluginIds,\n\t});\n}\n\nfunction validateSnapshot(value: unknown): PluginSelectionStoreSnapshotV1 {\n\tif (!isObject(value) || !hasExactKeys(value, [\"version\", \"selections\"]))\n\t\tthrow new Error(\"snapshot schema is invalid\");\n\tif (value.version !== PLUGIN_SELECTION_STORE_VERSION_V1) throw new Error(\"snapshot version is unsupported\");\n\tif (!Array.isArray(value.selections)) throw new Error(\"selections must be an array\");\n\tif (value.selections.length > MAX_PLUGIN_SELECTION_PROFILES_V1) throw new Error(\"too many selection profiles\");\n\tconst selections = value.selections.map(validateProfile);\n\tconst profiles = new Set<string>();\n\tfor (const selection of selections) {\n\t\tif (profiles.has(selection.profileId)) throw new Error(`duplicate profile: ${selection.profileId}`);\n\t\tprofiles.add(selection.profileId);\n\t}\n\tselections.sort((left, right) => left.profileId.localeCompare(right.profileId));\n\treturn Object.freeze({ version: PLUGIN_SELECTION_STORE_VERSION_V1, selections: Object.freeze(selections) });\n}\n\nfunction invalidFromError(error: unknown): PluginSelectionStoreDiagnosticV1 {\n\tconst message = error instanceof Error ? error.message : \"plugin selection schema is invalid\";\n\tif (message === \"too many selection profiles\") return diagnostic(\"too_many_profiles\", message);\n\tconst duplicatePrefix = \"duplicate profile: \";\n\tif (message.startsWith(duplicatePrefix)) {\n\t\tconst profileId = message.slice(duplicatePrefix.length);\n\t\treturn diagnostic(\"duplicate_profile\", message, profileId);\n\t}\n\treturn diagnostic(\"invalid_schema\", message);\n}\n\nfunction defaultFileSystem(): PluginSelectionStoreFileSystemV1 {\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 PluginSelectionStoreDiagnosticV1[];\n} {\n\treturn Object.freeze({\n\t\tstatus: \"cancelled\",\n\t\tdiagnostics: Object.freeze([diagnostic(\"cancelled\", \"Plugin selection operation was cancelled\")]),\n\t});\n}\n\nfunction sortSelections(selections: readonly PluginSelectionV1[]): readonly PluginSelectionV1[] {\n\treturn Object.freeze([...selections].sort((left, right) => left.profileId.localeCompare(right.profileId)));\n}\n\nfunction persistedSelection(selection: PluginSelectionV1): Readonly<Record<string, unknown>> {\n\treturn Object.freeze({\n\t\tprofileId: selection.profileId,\n\t\tselectedPluginIds: selection.selectedPluginIds,\n\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t});\n}\n\nexport function createPluginSelectionStoreV1(options: PluginSelectionStoreOptionsV1): PluginSelectionStoreV1 {\n\tconst filePath = validateFilePath(options.filePath);\n\tconst fileSystem = options.fileSystem ?? defaultFileSystem();\n\n\tasync function read(signal?: AbortSignal): Promise<PluginSelectionStoreReadResultV1> {\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 selection JSON is invalid\")]),\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\treturn Object.freeze({ status: \"ok\", snapshot: validateSnapshot(parsed) });\n\t\t} catch (error) {\n\t\t\treturn Object.freeze({ status: \"invalid\", diagnostics: Object.freeze([invalidFromError(error)]) });\n\t\t}\n\t}\n\n\tasync function write(\n\t\tsnapshot: PluginSelectionStoreSnapshotV1,\n\t\tsignal?: AbortSignal,\n\t): Promise<PluginSelectionStoreMutationResultV1> {\n\t\tif (signal?.aborted) return cancelledResult();\n\t\tconst temporaryPath = join(dirname(filePath), `.${basename(filePath)}.${randomUUID()}.tmp`);\n\t\ttry {\n\t\t\tawait fileSystem.mkdir(dirname(filePath));\n\t\t\tif (signal?.aborted) return cancelledResult();\n\t\t\tawait fileSystem.writeFile(\n\t\t\t\ttemporaryPath,\n\t\t\t\t`${JSON.stringify({\n\t\t\t\t\tversion: snapshot.version,\n\t\t\t\t\tselections: snapshot.selections.map(persistedSelection),\n\t\t\t\t})}\\n`,\n\t\t\t);\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\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\tset: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet selection: PluginSelectionV1;\n\t\t\t\ttry {\n\t\t\t\t\tselection = createPluginSelectionV1(input.selection);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({ status: \"invalid\", diagnostics: Object.freeze([invalidFromError(error)]) });\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 existing = current.snapshot.selections.find((item) => item.profileId === selection.profileId);\n\t\t\t\tif (existing !== undefined && JSON.stringify(existing) === JSON.stringify(selection))\n\t\t\t\t\treturn Object.freeze({ status: \"ok\", snapshot: current.snapshot, changed: false });\n\t\t\t\tif (current.snapshot.selections.length >= MAX_PLUGIN_SELECTION_PROFILES_V1 && existing === undefined)\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_profiles\", \"too many selection profiles\")]),\n\t\t\t\t\t});\n\t\t\t\tconst snapshot = Object.freeze({\n\t\t\t\t\tversion: PLUGIN_SELECTION_STORE_VERSION_V1,\n\t\t\t\t\tselections: sortSelections([\n\t\t\t\t\t\t...current.snapshot.selections.filter((item) => item.profileId !== selection.profileId),\n\t\t\t\t\t\tselection,\n\t\t\t\t\t]),\n\t\t\t\t});\n\t\t\t\treturn await write(snapshot, input.signal);\n\t\t\t}),\n\t\tclear: (input) =>\n\t\t\tenqueueMutation(async () => {\n\t\t\t\tlet selection: PluginSelectionV1;\n\t\t\t\ttry {\n\t\t\t\t\tselection = createPluginSelectionV1({\n\t\t\t\t\t\tprofileId: input.profileId,\n\t\t\t\t\t\tselectedPluginIds: [],\n\t\t\t\t\t\tdisabledPluginIds: [],\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Object.freeze({ status: \"invalid\", diagnostics: Object.freeze([invalidFromError(error)]) });\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 selections = current.snapshot.selections.filter((item) => item.profileId !== selection.profileId);\n\t\t\t\tif (selections.length === current.snapshot.selections.length)\n\t\t\t\t\treturn Object.freeze({ status: \"ok\", snapshot: current.snapshot, changed: false });\n\t\t\t\treturn await write(\n\t\t\t\t\tObject.freeze({ version: PLUGIN_SELECTION_STORE_VERSION_V1, selections: sortSelections(selections) }),\n\t\t\t\t\tinput.signal,\n\t\t\t\t);\n\t\t\t}),\n\t};\n}\n"]}
@@ -0,0 +1,54 @@
1
+ import { type PluginCatalogEntryV1, type PluginCatalogSnapshotV1 } from "./catalog.ts";
2
+ import type { CapabilityRefV1, HostFactsV1, PluginDiagnosticV1, PluginManifestV1 } from "./types.ts";
3
+ /** Version of the user-owned, host-independent plugin selection snapshot. */
4
+ export declare const PLUGIN_SELECTION_VERSION_V1: 1;
5
+ export declare const MAX_PLUGIN_SELECTION_ID_CHARS_V1 = 128;
6
+ export declare const MAX_PLUGIN_SELECTION_IDS_V1 = 128;
7
+ export interface PluginSelectionV1 {
8
+ readonly version: typeof PLUGIN_SELECTION_VERSION_V1;
9
+ readonly profileId: string;
10
+ readonly selectedPluginIds: readonly string[];
11
+ readonly disabledPluginIds: readonly string[];
12
+ }
13
+ export type PluginSelectionErrorCodeV1 = "invalid_profile_id" | "profile_id_too_long" | "invalid_plugin_id" | "plugin_id_too_long" | "too_many_plugin_ids" | "duplicate_plugin_id" | "unknown_plugin_id" | "catalog_truncated";
14
+ export declare class PluginSelectionErrorV1 extends Error {
15
+ readonly code: PluginSelectionErrorCodeV1;
16
+ readonly pluginId?: string;
17
+ constructor(code: PluginSelectionErrorCodeV1, message: string, pluginId?: string);
18
+ }
19
+ /**
20
+ * A pure catalog projection for a user selection. It never downloads,
21
+ * writes, installs, activates, or mutates a plugin. The host owns those
22
+ * operations through the separate installer contract.
23
+ */
24
+ export interface PluginSelectionResolutionV1 {
25
+ readonly selection: PluginSelectionV1;
26
+ /** The bounded catalog of every discovered manifest. */
27
+ readonly catalog: PluginCatalogSnapshotV1;
28
+ /** Entries requested by the selection, in catalog order. */
29
+ readonly entries: readonly PluginCatalogEntryV1[];
30
+ readonly diagnostics: readonly PluginDiagnosticV1[];
31
+ }
32
+ export interface PluginSelectionInputV1 {
33
+ readonly profileId: string;
34
+ /** Omitted means all discovered plugin IDs; [] means no plugin. */
35
+ readonly selectedPluginIds?: readonly string[];
36
+ readonly disabledPluginIds?: readonly string[];
37
+ }
38
+ /** Validate and freeze a selection without resolving or touching a host. */
39
+ export declare function createPluginSelectionV1(input: PluginSelectionInputV1): PluginSelectionV1;
40
+ /**
41
+ * Resolve a selection to bounded catalog entries and diagnostics. This is a
42
+ * read-only planning operation; it does not imply that any plugin is enabled.
43
+ */
44
+ export declare function resolvePluginSelectionV1(input: {
45
+ readonly selection: PluginSelectionInputV1;
46
+ readonly manifests: readonly PluginManifestV1[];
47
+ readonly host: HostFactsV1;
48
+ readonly required?: boolean;
49
+ readonly availableCapabilities?: readonly CapabilityRefV1[];
50
+ readonly maxEntries?: number;
51
+ }): PluginSelectionResolutionV1;
52
+ /** Serialize only the stable selection data; no manifest, host, or payload is included. */
53
+ export declare function serializePluginSelectionV1(selection: PluginSelectionV1): string;
54
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/plugins/ecosystem/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErG,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,GAAa,CAAC;AACtD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,2BAA2B,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,0BAA0B,GACnC,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,CAAC;AAEvB,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,YAAY,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAK/E;CACD;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAqDD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,iBAAiB,CAUxF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,2BAA2B,CAkD9B;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAG/E","sourcesContent":["import { buildPluginCatalogV1, type PluginCatalogEntryV1, type PluginCatalogSnapshotV1 } from \"./catalog.ts\";\nimport type { CapabilityRefV1, HostFactsV1, PluginDiagnosticV1, PluginManifestV1 } from \"./types.ts\";\n\n/** Version of the user-owned, host-independent plugin selection snapshot. */\nexport const PLUGIN_SELECTION_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_SELECTION_ID_CHARS_V1 = 128;\nexport const MAX_PLUGIN_SELECTION_IDS_V1 = 128;\n\nexport interface PluginSelectionV1 {\n\treadonly version: typeof PLUGIN_SELECTION_VERSION_V1;\n\treadonly profileId: string;\n\treadonly selectedPluginIds: readonly string[];\n\treadonly disabledPluginIds: readonly string[];\n}\n\nexport type PluginSelectionErrorCodeV1 =\n\t| \"invalid_profile_id\"\n\t| \"profile_id_too_long\"\n\t| \"invalid_plugin_id\"\n\t| \"plugin_id_too_long\"\n\t| \"too_many_plugin_ids\"\n\t| \"duplicate_plugin_id\"\n\t| \"unknown_plugin_id\"\n\t| \"catalog_truncated\";\n\nexport class PluginSelectionErrorV1 extends Error {\n\treadonly code: PluginSelectionErrorCodeV1;\n\treadonly pluginId?: string;\n\n\tconstructor(code: PluginSelectionErrorCodeV1, message: string, pluginId?: string) {\n\t\tsuper(message);\n\t\tthis.name = \"PluginSelectionErrorV1\";\n\t\tthis.code = code;\n\t\tthis.pluginId = pluginId;\n\t}\n}\n\n/**\n * A pure catalog projection for a user selection. It never downloads,\n * writes, installs, activates, or mutates a plugin. The host owns those\n * operations through the separate installer contract.\n */\nexport interface PluginSelectionResolutionV1 {\n\treadonly selection: PluginSelectionV1;\n\t/** The bounded catalog of every discovered manifest. */\n\treadonly catalog: PluginCatalogSnapshotV1;\n\t/** Entries requested by the selection, in catalog order. */\n\treadonly entries: readonly PluginCatalogEntryV1[];\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n}\n\nexport interface PluginSelectionInputV1 {\n\treadonly profileId: string;\n\t/** Omitted means all discovered plugin IDs; [] means no plugin. */\n\treadonly selectedPluginIds?: readonly string[];\n\treadonly disabledPluginIds?: readonly string[];\n}\n\nfunction validateId(value: unknown, label: \"profileId\" | \"pluginId\"): string {\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\tlabel === \"profileId\" ? \"invalid_profile_id\" : \"invalid_plugin_id\",\n\t\t\t`${label} must be a non-empty string`,\n\t\t\ttypeof value === \"string\" ? value : undefined,\n\t\t);\n\t}\n\tif (value.length > MAX_PLUGIN_SELECTION_ID_CHARS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\tlabel === \"profileId\" ? \"profile_id_too_long\" : \"plugin_id_too_long\",\n\t\t\t`${label} must be at most ${MAX_PLUGIN_SELECTION_ID_CHARS_V1} characters`,\n\t\t\tvalue,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction normalizeIds(\n\tids: readonly string[] | undefined,\n\tlabel: \"selectedPluginIds\" | \"disabledPluginIds\",\n): readonly string[] {\n\tif (ids === undefined) return [];\n\tif (!Array.isArray(ids) || ids.length > MAX_PLUGIN_SELECTION_IDS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\"too_many_plugin_ids\",\n\t\t\t`${label} must contain at most ${MAX_PLUGIN_SELECTION_IDS_V1} plugin IDs`,\n\t\t);\n\t}\n\tconst seen = new Set<string>();\n\tconst normalized: string[] = [];\n\tfor (const candidate of ids) {\n\t\tconst id = validateId(candidate, \"pluginId\");\n\t\tif (seen.has(id)) {\n\t\t\tthrow new PluginSelectionErrorV1(\"duplicate_plugin_id\", `${label} contains duplicate plugin ID: ${id}`, id);\n\t\t}\n\t\tseen.add(id);\n\t\tnormalized.push(id);\n\t}\n\tnormalized.sort((left, right) => left.localeCompare(right));\n\treturn Object.freeze(normalized);\n}\n\nfunction assertKnownIds(ids: readonly string[], knownIds: ReadonlySet<string>): void {\n\tfor (const id of ids) {\n\t\tif (!knownIds.has(id)) {\n\t\t\tthrow new PluginSelectionErrorV1(\"unknown_plugin_id\", `Selection references unknown plugin ID: ${id}`, id);\n\t\t}\n\t}\n}\n\n/** Validate and freeze a selection without resolving or touching a host. */\nexport function createPluginSelectionV1(input: PluginSelectionInputV1): PluginSelectionV1 {\n\tconst profileId = validateId(input.profileId, \"profileId\");\n\tconst selectedPluginIds = normalizeIds(input.selectedPluginIds, \"selectedPluginIds\");\n\tconst disabledPluginIds = normalizeIds(input.disabledPluginIds, \"disabledPluginIds\");\n\treturn Object.freeze({\n\t\tversion: PLUGIN_SELECTION_VERSION_V1,\n\t\tprofileId,\n\t\tselectedPluginIds,\n\t\tdisabledPluginIds,\n\t});\n}\n\n/**\n * Resolve a selection to bounded catalog entries and diagnostics. This is a\n * read-only planning operation; it does not imply that any plugin is enabled.\n */\nexport function resolvePluginSelectionV1(input: {\n\treadonly selection: PluginSelectionInputV1;\n\treadonly manifests: readonly PluginManifestV1[];\n\treadonly host: HostFactsV1;\n\treadonly required?: boolean;\n\treadonly availableCapabilities?: readonly CapabilityRefV1[];\n\treadonly maxEntries?: number;\n}): PluginSelectionResolutionV1 {\n\tfor (const manifest of input.manifests) validateId(manifest.id, \"pluginId\");\n\tconst knownIds = new Set(input.manifests.map((manifest) => manifest.id));\n\tconst provisional = createPluginSelectionV1(input.selection);\n\tif (input.selection.selectedPluginIds === undefined && knownIds.size > MAX_PLUGIN_SELECTION_IDS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\"too_many_plugin_ids\",\n\t\t\t`discovered plugin IDs exceed the selection limit of ${MAX_PLUGIN_SELECTION_IDS_V1}`,\n\t\t);\n\t}\n\tconst selectedPluginIds =\n\t\tinput.selection.selectedPluginIds === undefined\n\t\t\t? Object.freeze([...knownIds].sort((a, b) => a.localeCompare(b)))\n\t\t\t: provisional.selectedPluginIds;\n\tconst selection = Object.freeze({ ...provisional, selectedPluginIds });\n\tassertKnownIds(selection.selectedPluginIds, knownIds);\n\tassertKnownIds(selection.disabledPluginIds, knownIds);\n\tconst catalog = buildPluginCatalogV1({\n\t\tmanifests: input.manifests,\n\t\thost: input.host,\n\t\trequired: input.required,\n\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\tmaxEntries: input.maxEntries,\n\t});\n\tconst selected = new Set(selection.selectedPluginIds);\n\t// Resolve selected manifests separately so a bounded/truncated all-manifest\n\t// catalog cannot silently hide an explicitly selected plugin.\n\tconst selectedCatalog = buildPluginCatalogV1({\n\t\tmanifests: input.manifests.filter((manifest) => selected.has(manifest.id)),\n\t\thost: input.host,\n\t\trequired: input.required,\n\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\tmaxEntries: Math.max(input.maxEntries ?? MAX_PLUGIN_SELECTION_IDS_V1, selection.selectedPluginIds.length),\n\t});\n\tif (selectedCatalog.truncated) {\n\t\tconst selectedEntryIds = new Set(selectedCatalog.entries.map((entry) => entry.pluginId));\n\t\tconst omitted = selection.selectedPluginIds.find((id) => !selectedEntryIds.has(id));\n\t\tif (omitted !== undefined) {\n\t\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\t\"catalog_truncated\",\n\t\t\t\t`Catalog truncation omitted selected plugin ID: ${omitted}`,\n\t\t\t\tomitted,\n\t\t\t);\n\t\t}\n\t}\n\tconst entries = Object.freeze(selectedCatalog.entries);\n\tconst diagnostics = Object.freeze(entries.flatMap((entry) => entry.resolution.diagnostics));\n\treturn Object.freeze({ selection, catalog, entries, diagnostics });\n}\n\n/** Serialize only the stable selection data; no manifest, host, or payload is included. */\nexport function serializePluginSelectionV1(selection: PluginSelectionV1): string {\n\tconst normalized = createPluginSelectionV1(selection);\n\treturn JSON.stringify(normalized);\n}\n"]}
@@ -0,0 +1,116 @@
1
+ import { buildPluginCatalogV1 } from "./catalog.js";
2
+ /** Version of the user-owned, host-independent plugin selection snapshot. */
3
+ export const PLUGIN_SELECTION_VERSION_V1 = 1;
4
+ export const MAX_PLUGIN_SELECTION_ID_CHARS_V1 = 128;
5
+ export const MAX_PLUGIN_SELECTION_IDS_V1 = 128;
6
+ export class PluginSelectionErrorV1 extends Error {
7
+ code;
8
+ pluginId;
9
+ constructor(code, message, pluginId) {
10
+ super(message);
11
+ this.name = "PluginSelectionErrorV1";
12
+ this.code = code;
13
+ this.pluginId = pluginId;
14
+ }
15
+ }
16
+ function validateId(value, label) {
17
+ if (typeof value !== "string" || value.trim().length === 0) {
18
+ throw new PluginSelectionErrorV1(label === "profileId" ? "invalid_profile_id" : "invalid_plugin_id", `${label} must be a non-empty string`, typeof value === "string" ? value : undefined);
19
+ }
20
+ if (value.length > MAX_PLUGIN_SELECTION_ID_CHARS_V1) {
21
+ throw new PluginSelectionErrorV1(label === "profileId" ? "profile_id_too_long" : "plugin_id_too_long", `${label} must be at most ${MAX_PLUGIN_SELECTION_ID_CHARS_V1} characters`, value);
22
+ }
23
+ return value;
24
+ }
25
+ function normalizeIds(ids, label) {
26
+ if (ids === undefined)
27
+ return [];
28
+ if (!Array.isArray(ids) || ids.length > MAX_PLUGIN_SELECTION_IDS_V1) {
29
+ throw new PluginSelectionErrorV1("too_many_plugin_ids", `${label} must contain at most ${MAX_PLUGIN_SELECTION_IDS_V1} plugin IDs`);
30
+ }
31
+ const seen = new Set();
32
+ const normalized = [];
33
+ for (const candidate of ids) {
34
+ const id = validateId(candidate, "pluginId");
35
+ if (seen.has(id)) {
36
+ throw new PluginSelectionErrorV1("duplicate_plugin_id", `${label} contains duplicate plugin ID: ${id}`, id);
37
+ }
38
+ seen.add(id);
39
+ normalized.push(id);
40
+ }
41
+ normalized.sort((left, right) => left.localeCompare(right));
42
+ return Object.freeze(normalized);
43
+ }
44
+ function assertKnownIds(ids, knownIds) {
45
+ for (const id of ids) {
46
+ if (!knownIds.has(id)) {
47
+ throw new PluginSelectionErrorV1("unknown_plugin_id", `Selection references unknown plugin ID: ${id}`, id);
48
+ }
49
+ }
50
+ }
51
+ /** Validate and freeze a selection without resolving or touching a host. */
52
+ export function createPluginSelectionV1(input) {
53
+ const profileId = validateId(input.profileId, "profileId");
54
+ const selectedPluginIds = normalizeIds(input.selectedPluginIds, "selectedPluginIds");
55
+ const disabledPluginIds = normalizeIds(input.disabledPluginIds, "disabledPluginIds");
56
+ return Object.freeze({
57
+ version: PLUGIN_SELECTION_VERSION_V1,
58
+ profileId,
59
+ selectedPluginIds,
60
+ disabledPluginIds,
61
+ });
62
+ }
63
+ /**
64
+ * Resolve a selection to bounded catalog entries and diagnostics. This is a
65
+ * read-only planning operation; it does not imply that any plugin is enabled.
66
+ */
67
+ export function resolvePluginSelectionV1(input) {
68
+ for (const manifest of input.manifests)
69
+ validateId(manifest.id, "pluginId");
70
+ const knownIds = new Set(input.manifests.map((manifest) => manifest.id));
71
+ const provisional = createPluginSelectionV1(input.selection);
72
+ if (input.selection.selectedPluginIds === undefined && knownIds.size > MAX_PLUGIN_SELECTION_IDS_V1) {
73
+ throw new PluginSelectionErrorV1("too_many_plugin_ids", `discovered plugin IDs exceed the selection limit of ${MAX_PLUGIN_SELECTION_IDS_V1}`);
74
+ }
75
+ const selectedPluginIds = input.selection.selectedPluginIds === undefined
76
+ ? Object.freeze([...knownIds].sort((a, b) => a.localeCompare(b)))
77
+ : provisional.selectedPluginIds;
78
+ const selection = Object.freeze({ ...provisional, selectedPluginIds });
79
+ assertKnownIds(selection.selectedPluginIds, knownIds);
80
+ assertKnownIds(selection.disabledPluginIds, knownIds);
81
+ const catalog = buildPluginCatalogV1({
82
+ manifests: input.manifests,
83
+ host: input.host,
84
+ required: input.required,
85
+ disabledPluginIds: selection.disabledPluginIds,
86
+ availableCapabilities: input.availableCapabilities,
87
+ maxEntries: input.maxEntries,
88
+ });
89
+ const selected = new Set(selection.selectedPluginIds);
90
+ // Resolve selected manifests separately so a bounded/truncated all-manifest
91
+ // catalog cannot silently hide an explicitly selected plugin.
92
+ const selectedCatalog = buildPluginCatalogV1({
93
+ manifests: input.manifests.filter((manifest) => selected.has(manifest.id)),
94
+ host: input.host,
95
+ required: input.required,
96
+ disabledPluginIds: selection.disabledPluginIds,
97
+ availableCapabilities: input.availableCapabilities,
98
+ maxEntries: Math.max(input.maxEntries ?? MAX_PLUGIN_SELECTION_IDS_V1, selection.selectedPluginIds.length),
99
+ });
100
+ if (selectedCatalog.truncated) {
101
+ const selectedEntryIds = new Set(selectedCatalog.entries.map((entry) => entry.pluginId));
102
+ const omitted = selection.selectedPluginIds.find((id) => !selectedEntryIds.has(id));
103
+ if (omitted !== undefined) {
104
+ throw new PluginSelectionErrorV1("catalog_truncated", `Catalog truncation omitted selected plugin ID: ${omitted}`, omitted);
105
+ }
106
+ }
107
+ const entries = Object.freeze(selectedCatalog.entries);
108
+ const diagnostics = Object.freeze(entries.flatMap((entry) => entry.resolution.diagnostics));
109
+ return Object.freeze({ selection, catalog, entries, diagnostics });
110
+ }
111
+ /** Serialize only the stable selection data; no manifest, host, or payload is included. */
112
+ export function serializePluginSelectionV1(selection) {
113
+ const normalized = createPluginSelectionV1(selection);
114
+ return JSON.stringify(normalized);
115
+ }
116
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/plugins/ecosystem/selection.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildPluginCatalogV1, type PluginCatalogEntryV1, type PluginCatalogSnapshotV1 } from \"./catalog.ts\";\nimport type { CapabilityRefV1, HostFactsV1, PluginDiagnosticV1, PluginManifestV1 } from \"./types.ts\";\n\n/** Version of the user-owned, host-independent plugin selection snapshot. */\nexport const PLUGIN_SELECTION_VERSION_V1 = 1 as const;\nexport const MAX_PLUGIN_SELECTION_ID_CHARS_V1 = 128;\nexport const MAX_PLUGIN_SELECTION_IDS_V1 = 128;\n\nexport interface PluginSelectionV1 {\n\treadonly version: typeof PLUGIN_SELECTION_VERSION_V1;\n\treadonly profileId: string;\n\treadonly selectedPluginIds: readonly string[];\n\treadonly disabledPluginIds: readonly string[];\n}\n\nexport type PluginSelectionErrorCodeV1 =\n\t| \"invalid_profile_id\"\n\t| \"profile_id_too_long\"\n\t| \"invalid_plugin_id\"\n\t| \"plugin_id_too_long\"\n\t| \"too_many_plugin_ids\"\n\t| \"duplicate_plugin_id\"\n\t| \"unknown_plugin_id\"\n\t| \"catalog_truncated\";\n\nexport class PluginSelectionErrorV1 extends Error {\n\treadonly code: PluginSelectionErrorCodeV1;\n\treadonly pluginId?: string;\n\n\tconstructor(code: PluginSelectionErrorCodeV1, message: string, pluginId?: string) {\n\t\tsuper(message);\n\t\tthis.name = \"PluginSelectionErrorV1\";\n\t\tthis.code = code;\n\t\tthis.pluginId = pluginId;\n\t}\n}\n\n/**\n * A pure catalog projection for a user selection. It never downloads,\n * writes, installs, activates, or mutates a plugin. The host owns those\n * operations through the separate installer contract.\n */\nexport interface PluginSelectionResolutionV1 {\n\treadonly selection: PluginSelectionV1;\n\t/** The bounded catalog of every discovered manifest. */\n\treadonly catalog: PluginCatalogSnapshotV1;\n\t/** Entries requested by the selection, in catalog order. */\n\treadonly entries: readonly PluginCatalogEntryV1[];\n\treadonly diagnostics: readonly PluginDiagnosticV1[];\n}\n\nexport interface PluginSelectionInputV1 {\n\treadonly profileId: string;\n\t/** Omitted means all discovered plugin IDs; [] means no plugin. */\n\treadonly selectedPluginIds?: readonly string[];\n\treadonly disabledPluginIds?: readonly string[];\n}\n\nfunction validateId(value: unknown, label: \"profileId\" | \"pluginId\"): string {\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\tlabel === \"profileId\" ? \"invalid_profile_id\" : \"invalid_plugin_id\",\n\t\t\t`${label} must be a non-empty string`,\n\t\t\ttypeof value === \"string\" ? value : undefined,\n\t\t);\n\t}\n\tif (value.length > MAX_PLUGIN_SELECTION_ID_CHARS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\tlabel === \"profileId\" ? \"profile_id_too_long\" : \"plugin_id_too_long\",\n\t\t\t`${label} must be at most ${MAX_PLUGIN_SELECTION_ID_CHARS_V1} characters`,\n\t\t\tvalue,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction normalizeIds(\n\tids: readonly string[] | undefined,\n\tlabel: \"selectedPluginIds\" | \"disabledPluginIds\",\n): readonly string[] {\n\tif (ids === undefined) return [];\n\tif (!Array.isArray(ids) || ids.length > MAX_PLUGIN_SELECTION_IDS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\"too_many_plugin_ids\",\n\t\t\t`${label} must contain at most ${MAX_PLUGIN_SELECTION_IDS_V1} plugin IDs`,\n\t\t);\n\t}\n\tconst seen = new Set<string>();\n\tconst normalized: string[] = [];\n\tfor (const candidate of ids) {\n\t\tconst id = validateId(candidate, \"pluginId\");\n\t\tif (seen.has(id)) {\n\t\t\tthrow new PluginSelectionErrorV1(\"duplicate_plugin_id\", `${label} contains duplicate plugin ID: ${id}`, id);\n\t\t}\n\t\tseen.add(id);\n\t\tnormalized.push(id);\n\t}\n\tnormalized.sort((left, right) => left.localeCompare(right));\n\treturn Object.freeze(normalized);\n}\n\nfunction assertKnownIds(ids: readonly string[], knownIds: ReadonlySet<string>): void {\n\tfor (const id of ids) {\n\t\tif (!knownIds.has(id)) {\n\t\t\tthrow new PluginSelectionErrorV1(\"unknown_plugin_id\", `Selection references unknown plugin ID: ${id}`, id);\n\t\t}\n\t}\n}\n\n/** Validate and freeze a selection without resolving or touching a host. */\nexport function createPluginSelectionV1(input: PluginSelectionInputV1): PluginSelectionV1 {\n\tconst profileId = validateId(input.profileId, \"profileId\");\n\tconst selectedPluginIds = normalizeIds(input.selectedPluginIds, \"selectedPluginIds\");\n\tconst disabledPluginIds = normalizeIds(input.disabledPluginIds, \"disabledPluginIds\");\n\treturn Object.freeze({\n\t\tversion: PLUGIN_SELECTION_VERSION_V1,\n\t\tprofileId,\n\t\tselectedPluginIds,\n\t\tdisabledPluginIds,\n\t});\n}\n\n/**\n * Resolve a selection to bounded catalog entries and diagnostics. This is a\n * read-only planning operation; it does not imply that any plugin is enabled.\n */\nexport function resolvePluginSelectionV1(input: {\n\treadonly selection: PluginSelectionInputV1;\n\treadonly manifests: readonly PluginManifestV1[];\n\treadonly host: HostFactsV1;\n\treadonly required?: boolean;\n\treadonly availableCapabilities?: readonly CapabilityRefV1[];\n\treadonly maxEntries?: number;\n}): PluginSelectionResolutionV1 {\n\tfor (const manifest of input.manifests) validateId(manifest.id, \"pluginId\");\n\tconst knownIds = new Set(input.manifests.map((manifest) => manifest.id));\n\tconst provisional = createPluginSelectionV1(input.selection);\n\tif (input.selection.selectedPluginIds === undefined && knownIds.size > MAX_PLUGIN_SELECTION_IDS_V1) {\n\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\"too_many_plugin_ids\",\n\t\t\t`discovered plugin IDs exceed the selection limit of ${MAX_PLUGIN_SELECTION_IDS_V1}`,\n\t\t);\n\t}\n\tconst selectedPluginIds =\n\t\tinput.selection.selectedPluginIds === undefined\n\t\t\t? Object.freeze([...knownIds].sort((a, b) => a.localeCompare(b)))\n\t\t\t: provisional.selectedPluginIds;\n\tconst selection = Object.freeze({ ...provisional, selectedPluginIds });\n\tassertKnownIds(selection.selectedPluginIds, knownIds);\n\tassertKnownIds(selection.disabledPluginIds, knownIds);\n\tconst catalog = buildPluginCatalogV1({\n\t\tmanifests: input.manifests,\n\t\thost: input.host,\n\t\trequired: input.required,\n\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\tmaxEntries: input.maxEntries,\n\t});\n\tconst selected = new Set(selection.selectedPluginIds);\n\t// Resolve selected manifests separately so a bounded/truncated all-manifest\n\t// catalog cannot silently hide an explicitly selected plugin.\n\tconst selectedCatalog = buildPluginCatalogV1({\n\t\tmanifests: input.manifests.filter((manifest) => selected.has(manifest.id)),\n\t\thost: input.host,\n\t\trequired: input.required,\n\t\tdisabledPluginIds: selection.disabledPluginIds,\n\t\tavailableCapabilities: input.availableCapabilities,\n\t\tmaxEntries: Math.max(input.maxEntries ?? MAX_PLUGIN_SELECTION_IDS_V1, selection.selectedPluginIds.length),\n\t});\n\tif (selectedCatalog.truncated) {\n\t\tconst selectedEntryIds = new Set(selectedCatalog.entries.map((entry) => entry.pluginId));\n\t\tconst omitted = selection.selectedPluginIds.find((id) => !selectedEntryIds.has(id));\n\t\tif (omitted !== undefined) {\n\t\t\tthrow new PluginSelectionErrorV1(\n\t\t\t\t\"catalog_truncated\",\n\t\t\t\t`Catalog truncation omitted selected plugin ID: ${omitted}`,\n\t\t\t\tomitted,\n\t\t\t);\n\t\t}\n\t}\n\tconst entries = Object.freeze(selectedCatalog.entries);\n\tconst diagnostics = Object.freeze(entries.flatMap((entry) => entry.resolution.diagnostics));\n\treturn Object.freeze({ selection, catalog, entries, diagnostics });\n}\n\n/** Serialize only the stable selection data; no manifest, host, or payload is included. */\nexport function serializePluginSelectionV1(selection: PluginSelectionV1): string {\n\tconst normalized = createPluginSelectionV1(selection);\n\treturn JSON.stringify(normalized);\n}\n"]}
@@ -0,0 +1,96 @@
1
+ import { type PluginInstallationV1 } from "./installer.ts";
2
+ export declare const PLUGIN_STATE_SNAPSHOT_VERSION_V1: 1;
3
+ export declare const MAX_PLUGIN_STATE_RECORDS_V1 = 256;
4
+ export declare const MAX_PLUGIN_STATE_STRING_CHARS_V1 = 4096;
5
+ export declare const MAX_PLUGIN_STATE_ID_CHARS_V1 = 256;
6
+ export declare const MAX_PLUGIN_STATE_INSTALLATION_REF_CHARS_V1 = 2048;
7
+ /** Optional acquisition source label (`npm:<host>`, `url:<host>`, `local:dir`, `local:file`). */
8
+ export declare const MAX_PLUGIN_STATE_SOURCE_CHARS_V1 = 128;
9
+ export type PluginStateScopeV1 = "global" | "project";
10
+ export type PluginStateLifecycleV1 = PluginInstallationV1["state"];
11
+ /** Persisted identity, enablement, scope, and recoverable installation lifecycle. */
12
+ export interface PluginStateRecordV1 {
13
+ readonly pluginId: string;
14
+ readonly pluginVersion: string;
15
+ readonly manifestDigest: string;
16
+ /** Opaque host handle. It must never be a local path or file URI. */
17
+ readonly installationRef: string;
18
+ /** Optional acquisition source label; absent on records written before S1-b. */
19
+ readonly source?: string;
20
+ readonly state: {
21
+ readonly scope: PluginStateScopeV1;
22
+ /** Opaque concrete installation namespace; never a local path. */
23
+ readonly scopeRef: string;
24
+ readonly enabled: boolean;
25
+ readonly lifecycle: PluginStateLifecycleV1;
26
+ };
27
+ }
28
+ export interface PluginStateSnapshotV1 {
29
+ readonly version: typeof PLUGIN_STATE_SNAPSHOT_VERSION_V1;
30
+ readonly records: readonly PluginStateRecordV1[];
31
+ }
32
+ export type PluginStateDiagnosticCodeV1 = "invalid_path" | "invalid_json" | "invalid_schema" | "duplicate_identity" | "too_many_records" | "invalid_installation_ref" | "cancelled";
33
+ export interface PluginStateDiagnosticV1 {
34
+ readonly code: PluginStateDiagnosticCodeV1;
35
+ readonly message: string;
36
+ readonly identity?: string;
37
+ }
38
+ export type PluginStateReadResultV1 = {
39
+ readonly status: "ok";
40
+ readonly snapshot: PluginStateSnapshotV1;
41
+ } | {
42
+ readonly status: "missing";
43
+ readonly snapshot: PluginStateSnapshotV1;
44
+ } | {
45
+ readonly status: "invalid";
46
+ readonly diagnostics: readonly PluginStateDiagnosticV1[];
47
+ } | {
48
+ readonly status: "cancelled";
49
+ readonly diagnostics: readonly PluginStateDiagnosticV1[];
50
+ };
51
+ export type PluginStateMutationResultV1 = {
52
+ readonly status: "ok";
53
+ readonly snapshot: PluginStateSnapshotV1;
54
+ readonly changed: boolean;
55
+ } | {
56
+ readonly status: "invalid";
57
+ readonly diagnostics: readonly PluginStateDiagnosticV1[];
58
+ } | {
59
+ readonly status: "cancelled";
60
+ readonly diagnostics: readonly PluginStateDiagnosticV1[];
61
+ };
62
+ export interface PluginStateFileSystemV1 {
63
+ readonly readFile: (path: string) => Promise<string>;
64
+ readonly mkdir: (path: string) => Promise<void>;
65
+ readonly writeFile: (path: string, data: string) => Promise<void>;
66
+ readonly rename: (oldPath: string, newPath: string) => Promise<void>;
67
+ readonly unlink: (path: string) => Promise<void>;
68
+ }
69
+ export interface PluginStateStoreOptionsV1 {
70
+ /** Absolute path to the host-owned plugin-state.json file. */
71
+ readonly filePath: string;
72
+ /** Injectable filesystem for deterministic tests and alternate hosts. */
73
+ readonly fileSystem?: PluginStateFileSystemV1;
74
+ }
75
+ export interface PluginStateStoreV1 {
76
+ readonly read: (options?: {
77
+ readonly signal?: AbortSignal;
78
+ }) => Promise<PluginStateReadResultV1>;
79
+ readonly upsert: (input: {
80
+ readonly installation: PluginInstallationV1;
81
+ readonly scope: PluginStateScopeV1;
82
+ readonly enabled: boolean;
83
+ /** Optional acquisition source label persisted with the record. */
84
+ readonly source?: string;
85
+ readonly signal?: AbortSignal;
86
+ }) => Promise<PluginStateMutationResultV1>;
87
+ readonly remove: (input: {
88
+ readonly pluginId: string;
89
+ readonly pluginVersion: string;
90
+ readonly scope: PluginStateScopeV1;
91
+ readonly scopeRef: string;
92
+ readonly signal?: AbortSignal;
93
+ }) => Promise<PluginStateMutationResultV1>;
94
+ }
95
+ export declare function createPluginStateStoreV1(options: PluginStateStoreOptionsV1): PluginStateStoreV1;
96
+ //# sourceMappingURL=state.d.ts.map