@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,63 @@
1
+ export function createManualCompactionExecutor(options) {
2
+ const coordinator = options.coordinator;
3
+ let state = "idle";
4
+ let currentOperationId;
5
+ return {
6
+ get state() {
7
+ return state;
8
+ },
9
+ requestCompaction(input) {
10
+ if (state === "in_progress") {
11
+ // v8 ignore next -- state 与 currentOperationId 同步赋值,busy 时必有 operationId
12
+ return { status: "busy", currentOperationId: currentOperationId ?? "unknown" };
13
+ }
14
+ if (input.pluginId.trim().length === 0) {
15
+ throw new Error("Compaction pluginId must be a non-empty string");
16
+ }
17
+ state = "in_progress";
18
+ currentOperationId = input.operationId;
19
+ try {
20
+ // Stage against the current revision; a concurrent commit makes this stale.
21
+ const staged = coordinator.stage({
22
+ operationId: input.operationId,
23
+ expectedRevision: coordinator.currentRevision,
24
+ payload: null,
25
+ });
26
+ if (staged.status === "stale") {
27
+ return { status: "stale", currentRevision: staged.currentRevision };
28
+ }
29
+ if (staged.status === "duplicate") {
30
+ return { status: "completed", revision: staged.revision, summary: { duplicate: true } };
31
+ }
32
+ // Plugin-owned summarization; the executor knows nothing of the content.
33
+ let summary;
34
+ try {
35
+ summary = input.summarize();
36
+ }
37
+ catch (error) {
38
+ coordinator.cancelStage(staged.staged.token);
39
+ return { status: "summary_failed", reason: error instanceof Error ? error.message : String(error) };
40
+ }
41
+ const outcome = coordinator.commitStage({
42
+ token: staged.staged.token,
43
+ apply: (payload, revision) => {
44
+ void payload;
45
+ void revision;
46
+ },
47
+ });
48
+ if (outcome.status === "stale") {
49
+ return { status: "stale", currentRevision: outcome.currentRevision };
50
+ }
51
+ if (outcome.status === "committed") {
52
+ return { status: "completed", revision: outcome.revision, summary };
53
+ }
54
+ return { status: "summary_failed", reason: `Unexpected checkpoint outcome: ${outcome.status}` };
55
+ }
56
+ finally {
57
+ state = "idle";
58
+ currentOperationId = undefined;
59
+ }
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=manual-compaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-compaction.js","sourceRoot":"","sources":["../../src/host/manual-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Manual compaction executor (2A.2) — the host primitive that lets a PLUGIN\n * decide when compaction happens and what the summary contains, while the\n * kernel side only provides the model/session/commit primitives (here: the\n * 2A.1 checkpoint coordinator).\n *\n * The executor owns no summarization policy: the requesting plugin supplies\n * the deterministic `summarize` callback. The executor sequences the\n * operation through the checkpoint coordinator (stage → summarize → commit),\n * so a stale revision, a failing summary, or a concurrent compaction can\n * never produce a half commit. Auto compaction, overflow recovery, retry,\n * and tree/branch migration are later 2A slices.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\nimport type { HostCheckpointCoordinatorV1 } from \"./checkpoint-commit.ts\";\n\nexport type ManualCompactionStateV1 = \"idle\" | \"in_progress\";\n\nexport type ManualCompactionOutcomeV1 =\n\t| { readonly status: \"completed\"; readonly revision: number; readonly summary: JsonValue }\n\t| { readonly status: \"stale\"; readonly currentRevision: number }\n\t| { readonly status: \"summary_failed\"; readonly reason: string }\n\t| { readonly status: \"busy\"; readonly currentOperationId: string };\n\nexport interface ManualCompactionExecutorV1 {\n\t/** Plugin-driven entry point: the plugin decides timing AND the summary. */\n\trequestCompaction(input: {\n\t\treadonly pluginId: string;\n\t\treadonly operationId: string;\n\t\treadonly summarize: () => JsonValue;\n\t}): ManualCompactionOutcomeV1;\n\treadonly state: ManualCompactionStateV1;\n}\n\nexport function createManualCompactionExecutor(options: {\n\treadonly coordinator: HostCheckpointCoordinatorV1;\n}): ManualCompactionExecutorV1 {\n\tconst coordinator = options.coordinator;\n\tlet state: ManualCompactionStateV1 = \"idle\";\n\tlet currentOperationId: string | undefined;\n\n\treturn {\n\t\tget state() {\n\t\t\treturn state;\n\t\t},\n\t\trequestCompaction(input) {\n\t\t\tif (state === \"in_progress\") {\n\t\t\t\t// v8 ignore next -- state 与 currentOperationId 同步赋值,busy 时必有 operationId\n\t\t\t\treturn { status: \"busy\", currentOperationId: currentOperationId ?? \"unknown\" };\n\t\t\t}\n\t\t\tif (input.pluginId.trim().length === 0) {\n\t\t\t\tthrow new Error(\"Compaction pluginId must be a non-empty string\");\n\t\t\t}\n\t\t\tstate = \"in_progress\";\n\t\t\tcurrentOperationId = input.operationId;\n\t\t\ttry {\n\t\t\t\t// Stage against the current revision; a concurrent commit makes this stale.\n\t\t\t\tconst staged = coordinator.stage({\n\t\t\t\t\toperationId: input.operationId,\n\t\t\t\t\texpectedRevision: coordinator.currentRevision,\n\t\t\t\t\tpayload: null,\n\t\t\t\t});\n\t\t\t\tif (staged.status === \"stale\") {\n\t\t\t\t\treturn { status: \"stale\", currentRevision: staged.currentRevision };\n\t\t\t\t}\n\t\t\t\tif (staged.status === \"duplicate\") {\n\t\t\t\t\treturn { status: \"completed\", revision: staged.revision, summary: { duplicate: true } };\n\t\t\t\t}\n\t\t\t\t// Plugin-owned summarization; the executor knows nothing of the content.\n\t\t\t\tlet summary: JsonValue;\n\t\t\t\ttry {\n\t\t\t\t\tsummary = input.summarize();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcoordinator.cancelStage(staged.staged.token);\n\t\t\t\t\treturn { status: \"summary_failed\", reason: error instanceof Error ? error.message : String(error) };\n\t\t\t\t}\n\t\t\t\tconst outcome = coordinator.commitStage({\n\t\t\t\t\ttoken: staged.staged.token,\n\t\t\t\t\tapply: (payload, revision) => {\n\t\t\t\t\t\tvoid payload;\n\t\t\t\t\t\tvoid revision;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tif (outcome.status === \"stale\") {\n\t\t\t\t\treturn { status: \"stale\", currentRevision: outcome.currentRevision };\n\t\t\t\t}\n\t\t\t\tif (outcome.status === \"committed\") {\n\t\t\t\t\treturn { status: \"completed\", revision: outcome.revision, summary };\n\t\t\t\t}\n\t\t\t\treturn { status: \"summary_failed\", reason: `Unexpected checkpoint outcome: ${outcome.status}` };\n\t\t\t} finally {\n\t\t\t\tstate = \"idle\";\n\t\t\t\tcurrentOperationId = undefined;\n\t\t\t}\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Host output projection (2.6b) — projects kernel events into consistent
3
+ * host-facing output records with trace/correlation identity and structured
4
+ * errors.
5
+ *
6
+ * Every projected record carries the turn's `traceId`; tool calls and their
7
+ * results share the call's `correlationId`; errors become structured
8
+ * diagnostics (channel, severity, code) instead of raw throws; and the
9
+ * record order matches the event order. Events without a traceId are
10
+ * rejected explicitly — an unattributable output can never reach the host.
11
+ * The projection is deterministic and replayable. The TUI renderer itself
12
+ * is out of scope.
13
+ */
14
+ export type HostOutputChannelV1 = "message" | "tool" | "diagnostic" | "lifecycle";
15
+ export type HostOutputSeverityV1 = "info" | "ok" | "warn" | "error";
16
+ export interface HostOutputRecordV1 {
17
+ readonly channel: HostOutputChannelV1;
18
+ readonly severity: HostOutputSeverityV1;
19
+ readonly traceId: string;
20
+ readonly correlationId?: string;
21
+ readonly at: number;
22
+ readonly summary: string;
23
+ readonly code?: string;
24
+ readonly detail?: string;
25
+ }
26
+ export type HostEventV1 = {
27
+ readonly kind: "model_output";
28
+ readonly traceId: string;
29
+ readonly at: number;
30
+ readonly text: string;
31
+ } | {
32
+ readonly kind: "tool_call";
33
+ readonly traceId: string;
34
+ readonly at: number;
35
+ readonly callId: string;
36
+ readonly toolName: string;
37
+ } | {
38
+ readonly kind: "tool_result";
39
+ readonly traceId: string;
40
+ readonly at: number;
41
+ readonly callId: string;
42
+ readonly toolName: string;
43
+ readonly ok: boolean;
44
+ readonly detail?: string;
45
+ } | {
46
+ readonly kind: "error";
47
+ readonly traceId: string;
48
+ readonly at: number;
49
+ readonly name: string;
50
+ readonly message: string;
51
+ } | {
52
+ readonly kind: "phase";
53
+ readonly traceId: string;
54
+ readonly at: number;
55
+ readonly phase: string;
56
+ };
57
+ export interface HostOutputProjectorV1 {
58
+ project(events: readonly HostEventV1[]): readonly HostOutputRecordV1[];
59
+ }
60
+ export declare function createHostOutputProjector(): HostOutputProjectorV1;
61
+ //# sourceMappingURL=output-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-projection.d.ts","sourceRoot":"","sources":["../../src/host/output-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AAClF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvG;IACA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CACzB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACxB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErG,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,kBAAkB,EAAE,CAAC;CACvE;AAaD,wBAAgB,yBAAyB,IAAI,qBAAqB,CA8DjE","sourcesContent":["/**\n * Host output projection (2.6b) — projects kernel events into consistent\n * host-facing output records with trace/correlation identity and structured\n * errors.\n *\n * Every projected record carries the turn's `traceId`; tool calls and their\n * results share the call's `correlationId`; errors become structured\n * diagnostics (channel, severity, code) instead of raw throws; and the\n * record order matches the event order. Events without a traceId are\n * rejected explicitly — an unattributable output can never reach the host.\n * The projection is deterministic and replayable. The TUI renderer itself\n * is out of scope.\n */\nexport type HostOutputChannelV1 = \"message\" | \"tool\" | \"diagnostic\" | \"lifecycle\";\nexport type HostOutputSeverityV1 = \"info\" | \"ok\" | \"warn\" | \"error\";\n\nexport interface HostOutputRecordV1 {\n\treadonly channel: HostOutputChannelV1;\n\treadonly severity: HostOutputSeverityV1;\n\treadonly traceId: string;\n\treadonly correlationId?: string;\n\treadonly at: number;\n\treadonly summary: string;\n\treadonly code?: string;\n\treadonly detail?: string;\n}\n\nexport type HostEventV1 =\n\t| { readonly kind: \"model_output\"; readonly traceId: string; readonly at: number; readonly text: string }\n\t| {\n\t\t\treadonly kind: \"tool_call\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly callId: string;\n\t\t\treadonly toolName: string;\n\t }\n\t| {\n\t\t\treadonly kind: \"tool_result\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly callId: string;\n\t\t\treadonly toolName: string;\n\t\t\treadonly ok: boolean;\n\t\t\treadonly detail?: string;\n\t }\n\t| {\n\t\t\treadonly kind: \"error\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly name: string;\n\t\t\treadonly message: string;\n\t }\n\t| { readonly kind: \"phase\"; readonly traceId: string; readonly at: number; readonly phase: string };\n\nexport interface HostOutputProjectorV1 {\n\tproject(events: readonly HostEventV1[]): readonly HostOutputRecordV1[];\n}\n\n/** Deterministic error-code mapping for diagnostics. */\nfunction diagnosticCode(name: string): string {\n\tconst table: readonly (readonly [string, string])[] = [\n\t\t[\"AbortError\", \"cancelled\"],\n\t\t[\"TimeoutError\", \"timeout\"],\n\t\t[\"TypeError\", \"invalid_input\"],\n\t\t[\"RangeError\", \"out_of_range\"],\n\t];\n\treturn table.find(([matching]) => matching === name)?.[1] ?? \"internal_error\";\n}\n\nexport function createHostOutputProjector(): HostOutputProjectorV1 {\n\treturn {\n\t\tproject(events) {\n\t\t\treturn events.map((event) => {\n\t\t\t\tif (!event.traceId) {\n\t\t\t\t\tthrow new Error(\"Host output projection requires a traceId on every event\");\n\t\t\t\t}\n\t\t\t\tswitch (event.kind) {\n\t\t\t\t\tcase \"model_output\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"message\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: event.text,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"tool_call\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"tool\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tcorrelationId: event.callId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `tool ${event.toolName} called`,\n\t\t\t\t\t\t\tcode: event.toolName,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"tool_result\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"tool\" as const,\n\t\t\t\t\t\t\tseverity: event.ok ? (\"ok\" as const) : (\"error\" as const),\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tcorrelationId: event.callId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `tool ${event.toolName} ${event.ok ? \"succeeded\" : \"failed\"}`,\n\t\t\t\t\t\t\tcode: event.toolName,\n\t\t\t\t\t\t\t...(event.detail === undefined ? {} : { detail: event.detail }),\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"error\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"diagnostic\" as const,\n\t\t\t\t\t\t\tseverity: \"error\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: event.message,\n\t\t\t\t\t\t\tcode: diagnosticCode(event.name),\n\t\t\t\t\t\t\tdetail: event.name,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"phase\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"lifecycle\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `phase: ${event.phase}`,\n\t\t\t\t\t\t\tcode: event.phase,\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(\"Unsupported host event reached the projector\");\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,74 @@
1
+ /** Deterministic error-code mapping for diagnostics. */
2
+ function diagnosticCode(name) {
3
+ const table = [
4
+ ["AbortError", "cancelled"],
5
+ ["TimeoutError", "timeout"],
6
+ ["TypeError", "invalid_input"],
7
+ ["RangeError", "out_of_range"],
8
+ ];
9
+ return table.find(([matching]) => matching === name)?.[1] ?? "internal_error";
10
+ }
11
+ export function createHostOutputProjector() {
12
+ return {
13
+ project(events) {
14
+ return events.map((event) => {
15
+ if (!event.traceId) {
16
+ throw new Error("Host output projection requires a traceId on every event");
17
+ }
18
+ switch (event.kind) {
19
+ case "model_output":
20
+ return {
21
+ channel: "message",
22
+ severity: "info",
23
+ traceId: event.traceId,
24
+ at: event.at,
25
+ summary: event.text,
26
+ };
27
+ case "tool_call":
28
+ return {
29
+ channel: "tool",
30
+ severity: "info",
31
+ traceId: event.traceId,
32
+ correlationId: event.callId,
33
+ at: event.at,
34
+ summary: `tool ${event.toolName} called`,
35
+ code: event.toolName,
36
+ };
37
+ case "tool_result":
38
+ return {
39
+ channel: "tool",
40
+ severity: event.ok ? "ok" : "error",
41
+ traceId: event.traceId,
42
+ correlationId: event.callId,
43
+ at: event.at,
44
+ summary: `tool ${event.toolName} ${event.ok ? "succeeded" : "failed"}`,
45
+ code: event.toolName,
46
+ ...(event.detail === undefined ? {} : { detail: event.detail }),
47
+ };
48
+ case "error":
49
+ return {
50
+ channel: "diagnostic",
51
+ severity: "error",
52
+ traceId: event.traceId,
53
+ at: event.at,
54
+ summary: event.message,
55
+ code: diagnosticCode(event.name),
56
+ detail: event.name,
57
+ };
58
+ case "phase":
59
+ return {
60
+ channel: "lifecycle",
61
+ severity: "info",
62
+ traceId: event.traceId,
63
+ at: event.at,
64
+ summary: `phase: ${event.phase}`,
65
+ code: event.phase,
66
+ };
67
+ default:
68
+ throw new Error("Unsupported host event reached the projector");
69
+ }
70
+ });
71
+ },
72
+ };
73
+ }
74
+ //# sourceMappingURL=output-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-projection.js","sourceRoot":"","sources":["../../src/host/output-projection.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Host output projection (2.6b) — projects kernel events into consistent\n * host-facing output records with trace/correlation identity and structured\n * errors.\n *\n * Every projected record carries the turn's `traceId`; tool calls and their\n * results share the call's `correlationId`; errors become structured\n * diagnostics (channel, severity, code) instead of raw throws; and the\n * record order matches the event order. Events without a traceId are\n * rejected explicitly — an unattributable output can never reach the host.\n * The projection is deterministic and replayable. The TUI renderer itself\n * is out of scope.\n */\nexport type HostOutputChannelV1 = \"message\" | \"tool\" | \"diagnostic\" | \"lifecycle\";\nexport type HostOutputSeverityV1 = \"info\" | \"ok\" | \"warn\" | \"error\";\n\nexport interface HostOutputRecordV1 {\n\treadonly channel: HostOutputChannelV1;\n\treadonly severity: HostOutputSeverityV1;\n\treadonly traceId: string;\n\treadonly correlationId?: string;\n\treadonly at: number;\n\treadonly summary: string;\n\treadonly code?: string;\n\treadonly detail?: string;\n}\n\nexport type HostEventV1 =\n\t| { readonly kind: \"model_output\"; readonly traceId: string; readonly at: number; readonly text: string }\n\t| {\n\t\t\treadonly kind: \"tool_call\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly callId: string;\n\t\t\treadonly toolName: string;\n\t }\n\t| {\n\t\t\treadonly kind: \"tool_result\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly callId: string;\n\t\t\treadonly toolName: string;\n\t\t\treadonly ok: boolean;\n\t\t\treadonly detail?: string;\n\t }\n\t| {\n\t\t\treadonly kind: \"error\";\n\t\t\treadonly traceId: string;\n\t\t\treadonly at: number;\n\t\t\treadonly name: string;\n\t\t\treadonly message: string;\n\t }\n\t| { readonly kind: \"phase\"; readonly traceId: string; readonly at: number; readonly phase: string };\n\nexport interface HostOutputProjectorV1 {\n\tproject(events: readonly HostEventV1[]): readonly HostOutputRecordV1[];\n}\n\n/** Deterministic error-code mapping for diagnostics. */\nfunction diagnosticCode(name: string): string {\n\tconst table: readonly (readonly [string, string])[] = [\n\t\t[\"AbortError\", \"cancelled\"],\n\t\t[\"TimeoutError\", \"timeout\"],\n\t\t[\"TypeError\", \"invalid_input\"],\n\t\t[\"RangeError\", \"out_of_range\"],\n\t];\n\treturn table.find(([matching]) => matching === name)?.[1] ?? \"internal_error\";\n}\n\nexport function createHostOutputProjector(): HostOutputProjectorV1 {\n\treturn {\n\t\tproject(events) {\n\t\t\treturn events.map((event) => {\n\t\t\t\tif (!event.traceId) {\n\t\t\t\t\tthrow new Error(\"Host output projection requires a traceId on every event\");\n\t\t\t\t}\n\t\t\t\tswitch (event.kind) {\n\t\t\t\t\tcase \"model_output\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"message\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: event.text,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"tool_call\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"tool\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tcorrelationId: event.callId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `tool ${event.toolName} called`,\n\t\t\t\t\t\t\tcode: event.toolName,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"tool_result\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"tool\" as const,\n\t\t\t\t\t\t\tseverity: event.ok ? (\"ok\" as const) : (\"error\" as const),\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tcorrelationId: event.callId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `tool ${event.toolName} ${event.ok ? \"succeeded\" : \"failed\"}`,\n\t\t\t\t\t\t\tcode: event.toolName,\n\t\t\t\t\t\t\t...(event.detail === undefined ? {} : { detail: event.detail }),\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"error\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"diagnostic\" as const,\n\t\t\t\t\t\t\tseverity: \"error\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: event.message,\n\t\t\t\t\t\t\tcode: diagnosticCode(event.name),\n\t\t\t\t\t\t\tdetail: event.name,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"phase\":\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchannel: \"lifecycle\" as const,\n\t\t\t\t\t\t\tseverity: \"info\" as const,\n\t\t\t\t\t\t\ttraceId: event.traceId,\n\t\t\t\t\t\t\tat: event.at,\n\t\t\t\t\t\t\tsummary: `phase: ${event.phase}`,\n\t\t\t\t\t\t\tcode: event.phase,\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(\"Unsupported host event reached the projector\");\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Output reducer (3.5a) — deterministic fold/unfold over projected host
3
+ * output records (2.6b), for viewer-friendly summaries.
4
+ *
5
+ * Folding is a PURE VIEW operation: consecutive tool call/result pairs are
6
+ * grouped by correlationId into fold summaries (counts only), while
7
+ * message, diagnostic, and lifecycle records — including any terminal
8
+ * phase — always stay unfolded. The original records are kept by reference
9
+ * inside each group, so unfolding reproduces the exact input sequence:
10
+ * folding and unfolding never change events, revisions, artifact
11
+ * references, or terminal states. TUI interaction and persistent renderers
12
+ * are out of scope.
13
+ */
14
+ import type { HostOutputRecordV1 } from "./output-projection.ts";
15
+ export type FoldedOutputGroupV1 = {
16
+ readonly kind: "records";
17
+ readonly detailsRef: string;
18
+ readonly records: readonly HostOutputRecordV1[];
19
+ } | {
20
+ readonly kind: "tool";
21
+ readonly toolName: string;
22
+ readonly correlationId: string;
23
+ readonly detailsRef: string;
24
+ readonly calls: number;
25
+ readonly ok: number;
26
+ readonly failed: number;
27
+ /** Wall time from the first to the last record of the group (终端输出模式设计 §3 必显耗时). */
28
+ readonly durationMs: number;
29
+ /** The original records, kept by reference for exact unfolding. */
30
+ readonly records: readonly HostOutputRecordV1[];
31
+ };
32
+ export interface FoldedOutputV1 {
33
+ readonly groups: readonly FoldedOutputGroupV1[];
34
+ readonly totalRecords: number;
35
+ readonly foldedToolGroups: number;
36
+ }
37
+ export interface OutputReducerV1 {
38
+ fold(records: readonly HostOutputRecordV1[]): FoldedOutputV1;
39
+ /** Exact inverse: unfold(fold(records)) deep-equals records, order included. */
40
+ unfold(folded: FoldedOutputV1): readonly HostOutputRecordV1[];
41
+ }
42
+ export declare function createOutputReducer(): OutputReducerV1;
43
+ //# sourceMappingURL=output-reducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-reducer.d.ts","sourceRoot":"","sources":["../../src/host/output-reducer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,mBAAmB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,GAC1G;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4GAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC/C,CAAC;AAEL,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,cAAc,CAAC;IAC7D,gFAAgF;IAChF,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AAmBD,wBAAgB,mBAAmB,IAAI,eAAe,CAyErD","sourcesContent":["/**\n * Output reducer (3.5a) — deterministic fold/unfold over projected host\n * output records (2.6b), for viewer-friendly summaries.\n *\n * Folding is a PURE VIEW operation: consecutive tool call/result pairs are\n * grouped by correlationId into fold summaries (counts only), while\n * message, diagnostic, and lifecycle records — including any terminal\n * phase — always stay unfolded. The original records are kept by reference\n * inside each group, so unfolding reproduces the exact input sequence:\n * folding and unfolding never change events, revisions, artifact\n * references, or terminal states. TUI interaction and persistent renderers\n * are out of scope.\n */\nimport type { HostOutputRecordV1 } from \"./output-projection.ts\";\n\nexport type FoldedOutputGroupV1 =\n\t| { readonly kind: \"records\"; readonly detailsRef: string; readonly records: readonly HostOutputRecordV1[] }\n\t| {\n\t\t\treadonly kind: \"tool\";\n\t\t\treadonly toolName: string;\n\t\t\treadonly correlationId: string;\n\t\t\treadonly detailsRef: string;\n\t\t\treadonly calls: number;\n\t\t\treadonly ok: number;\n\t\t\treadonly failed: number;\n\t\t\t/** Wall time from the first to the last record of the group (终端输出模式设计 §3 必显耗时). */\n\t\t\treadonly durationMs: number;\n\t\t\t/** The original records, kept by reference for exact unfolding. */\n\t\t\treadonly records: readonly HostOutputRecordV1[];\n\t };\n\nexport interface FoldedOutputV1 {\n\treadonly groups: readonly FoldedOutputGroupV1[];\n\treadonly totalRecords: number;\n\treadonly foldedToolGroups: number;\n}\n\nexport interface OutputReducerV1 {\n\tfold(records: readonly HostOutputRecordV1[]): FoldedOutputV1;\n\t/** Exact inverse: unfold(fold(records)) deep-equals records, order included. */\n\tunfold(folded: FoldedOutputV1): readonly HostOutputRecordV1[];\n}\n\ninterface MutableRecordsGroup {\n\treadonly kind: \"records\";\n\tdetailsRef: string;\n\treadonly records: HostOutputRecordV1[];\n}\n\ninterface MutableToolGroup {\n\treadonly kind: \"tool\";\n\treadonly toolName: string;\n\treadonly correlationId: string;\n\treadonly detailsRef: string;\n\tcalls: number;\n\tok: number;\n\tfailed: number;\n\treadonly records: HostOutputRecordV1[];\n}\n\nexport function createOutputReducer(): OutputReducerV1 {\n\treturn {\n\t\tfold(records) {\n\t\t\tconst groups: Array<MutableRecordsGroup | MutableToolGroup> = [];\n\n\t\t\tlet pendingTool: MutableToolGroup | null = null;\n\t\t\tconst flushTool = (): void => {\n\t\t\t\tif (pendingTool) {\n\t\t\t\t\tgroups.push(pendingTool);\n\t\t\t\t\tpendingTool = null;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfor (const record of records) {\n\t\t\t\tif (record.channel === \"tool\" && record.correlationId !== undefined) {\n\t\t\t\t\tconst isCall = record.severity === \"info\" && record.summary.endsWith(\"called\");\n\t\t\t\t\tif (pendingTool && pendingTool.correlationId !== record.correlationId) flushTool();\n\t\t\t\t\tif (!pendingTool) {\n\t\t\t\t\t\tpendingTool = {\n\t\t\t\t\t\t\tkind: \"tool\",\n\t\t\t\t\t\t\ttoolName: record.code ?? record.summary,\n\t\t\t\t\t\t\tcorrelationId: record.correlationId,\n\t\t\t\t\t\t\tdetailsRef: `trace:${record.traceId}#call:${record.correlationId}`,\n\t\t\t\t\t\t\tcalls: 0,\n\t\t\t\t\t\t\tok: 0,\n\t\t\t\t\t\t\tfailed: 0,\n\t\t\t\t\t\t\trecords: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tpendingTool.records.push(record);\n\t\t\t\t\tif (isCall) pendingTool.calls += 1;\n\t\t\t\t\telse if (record.severity === \"ok\") pendingTool.ok += 1;\n\t\t\t\t\telse if (record.severity === \"error\") pendingTool.failed += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tflushTool();\n\t\t\t\tconst last = groups.at(-1);\n\t\t\t\tif (last?.kind === \"records\") {\n\t\t\t\t\tlast.records.push(record);\n\t\t\t\t\tlast.detailsRef = `trace:${record.traceId}#records:${last.records.length}`;\n\t\t\t\t} else {\n\t\t\t\t\tgroups.push({\n\t\t\t\t\t\tkind: \"records\",\n\t\t\t\t\t\tdetailsRef: `trace:${record.traceId}#records:1`,\n\t\t\t\t\t\trecords: [record],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tflushTool();\n\n\t\t\tlet foldedToolGroups = 0;\n\t\t\tconst frozenGroups = groups.map((group): FoldedOutputGroupV1 => {\n\t\t\t\tconst base = { ...group, records: Object.freeze([...group.records]) };\n\t\t\t\tif (base.kind === \"tool\") {\n\t\t\t\t\tfoldedToolGroups += 1;\n\t\t\t\t\t// v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空\n\t\t\t\t\tconst firstAt = base.records[0]?.at ?? 0;\n\t\t\t\t\t// v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空\n\t\t\t\t\tconst lastAt = base.records.at(-1)?.at ?? firstAt;\n\t\t\t\t\treturn Object.freeze({ ...base, durationMs: Math.max(lastAt - firstAt, 0) });\n\t\t\t\t}\n\t\t\t\treturn Object.freeze(base);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tgroups: Object.freeze(frozenGroups),\n\t\t\t\ttotalRecords: records.length,\n\t\t\t\tfoldedToolGroups,\n\t\t\t};\n\t\t},\n\t\tunfold(folded) {\n\t\t\treturn Object.freeze(folded.groups.flatMap((group) => [...group.records]));\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,77 @@
1
+ export function createOutputReducer() {
2
+ return {
3
+ fold(records) {
4
+ const groups = [];
5
+ let pendingTool = null;
6
+ const flushTool = () => {
7
+ if (pendingTool) {
8
+ groups.push(pendingTool);
9
+ pendingTool = null;
10
+ }
11
+ };
12
+ for (const record of records) {
13
+ if (record.channel === "tool" && record.correlationId !== undefined) {
14
+ const isCall = record.severity === "info" && record.summary.endsWith("called");
15
+ if (pendingTool && pendingTool.correlationId !== record.correlationId)
16
+ flushTool();
17
+ if (!pendingTool) {
18
+ pendingTool = {
19
+ kind: "tool",
20
+ toolName: record.code ?? record.summary,
21
+ correlationId: record.correlationId,
22
+ detailsRef: `trace:${record.traceId}#call:${record.correlationId}`,
23
+ calls: 0,
24
+ ok: 0,
25
+ failed: 0,
26
+ records: [],
27
+ };
28
+ }
29
+ pendingTool.records.push(record);
30
+ if (isCall)
31
+ pendingTool.calls += 1;
32
+ else if (record.severity === "ok")
33
+ pendingTool.ok += 1;
34
+ else if (record.severity === "error")
35
+ pendingTool.failed += 1;
36
+ continue;
37
+ }
38
+ flushTool();
39
+ const last = groups.at(-1);
40
+ if (last?.kind === "records") {
41
+ last.records.push(record);
42
+ last.detailsRef = `trace:${record.traceId}#records:${last.records.length}`;
43
+ }
44
+ else {
45
+ groups.push({
46
+ kind: "records",
47
+ detailsRef: `trace:${record.traceId}#records:1`,
48
+ records: [record],
49
+ });
50
+ }
51
+ }
52
+ flushTool();
53
+ let foldedToolGroups = 0;
54
+ const frozenGroups = groups.map((group) => {
55
+ const base = { ...group, records: Object.freeze([...group.records]) };
56
+ if (base.kind === "tool") {
57
+ foldedToolGroups += 1;
58
+ // v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空
59
+ const firstAt = base.records[0]?.at ?? 0;
60
+ // v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空
61
+ const lastAt = base.records.at(-1)?.at ?? firstAt;
62
+ return Object.freeze({ ...base, durationMs: Math.max(lastAt - firstAt, 0) });
63
+ }
64
+ return Object.freeze(base);
65
+ });
66
+ return {
67
+ groups: Object.freeze(frozenGroups),
68
+ totalRecords: records.length,
69
+ foldedToolGroups,
70
+ };
71
+ },
72
+ unfold(folded) {
73
+ return Object.freeze(folded.groups.flatMap((group) => [...group.records]));
74
+ },
75
+ };
76
+ }
77
+ //# sourceMappingURL=output-reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-reducer.js","sourceRoot":"","sources":["../../src/host/output-reducer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Output reducer (3.5a) — deterministic fold/unfold over projected host\n * output records (2.6b), for viewer-friendly summaries.\n *\n * Folding is a PURE VIEW operation: consecutive tool call/result pairs are\n * grouped by correlationId into fold summaries (counts only), while\n * message, diagnostic, and lifecycle records — including any terminal\n * phase — always stay unfolded. The original records are kept by reference\n * inside each group, so unfolding reproduces the exact input sequence:\n * folding and unfolding never change events, revisions, artifact\n * references, or terminal states. TUI interaction and persistent renderers\n * are out of scope.\n */\nimport type { HostOutputRecordV1 } from \"./output-projection.ts\";\n\nexport type FoldedOutputGroupV1 =\n\t| { readonly kind: \"records\"; readonly detailsRef: string; readonly records: readonly HostOutputRecordV1[] }\n\t| {\n\t\t\treadonly kind: \"tool\";\n\t\t\treadonly toolName: string;\n\t\t\treadonly correlationId: string;\n\t\t\treadonly detailsRef: string;\n\t\t\treadonly calls: number;\n\t\t\treadonly ok: number;\n\t\t\treadonly failed: number;\n\t\t\t/** Wall time from the first to the last record of the group (终端输出模式设计 §3 必显耗时). */\n\t\t\treadonly durationMs: number;\n\t\t\t/** The original records, kept by reference for exact unfolding. */\n\t\t\treadonly records: readonly HostOutputRecordV1[];\n\t };\n\nexport interface FoldedOutputV1 {\n\treadonly groups: readonly FoldedOutputGroupV1[];\n\treadonly totalRecords: number;\n\treadonly foldedToolGroups: number;\n}\n\nexport interface OutputReducerV1 {\n\tfold(records: readonly HostOutputRecordV1[]): FoldedOutputV1;\n\t/** Exact inverse: unfold(fold(records)) deep-equals records, order included. */\n\tunfold(folded: FoldedOutputV1): readonly HostOutputRecordV1[];\n}\n\ninterface MutableRecordsGroup {\n\treadonly kind: \"records\";\n\tdetailsRef: string;\n\treadonly records: HostOutputRecordV1[];\n}\n\ninterface MutableToolGroup {\n\treadonly kind: \"tool\";\n\treadonly toolName: string;\n\treadonly correlationId: string;\n\treadonly detailsRef: string;\n\tcalls: number;\n\tok: number;\n\tfailed: number;\n\treadonly records: HostOutputRecordV1[];\n}\n\nexport function createOutputReducer(): OutputReducerV1 {\n\treturn {\n\t\tfold(records) {\n\t\t\tconst groups: Array<MutableRecordsGroup | MutableToolGroup> = [];\n\n\t\t\tlet pendingTool: MutableToolGroup | null = null;\n\t\t\tconst flushTool = (): void => {\n\t\t\t\tif (pendingTool) {\n\t\t\t\t\tgroups.push(pendingTool);\n\t\t\t\t\tpendingTool = null;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfor (const record of records) {\n\t\t\t\tif (record.channel === \"tool\" && record.correlationId !== undefined) {\n\t\t\t\t\tconst isCall = record.severity === \"info\" && record.summary.endsWith(\"called\");\n\t\t\t\t\tif (pendingTool && pendingTool.correlationId !== record.correlationId) flushTool();\n\t\t\t\t\tif (!pendingTool) {\n\t\t\t\t\t\tpendingTool = {\n\t\t\t\t\t\t\tkind: \"tool\",\n\t\t\t\t\t\t\ttoolName: record.code ?? record.summary,\n\t\t\t\t\t\t\tcorrelationId: record.correlationId,\n\t\t\t\t\t\t\tdetailsRef: `trace:${record.traceId}#call:${record.correlationId}`,\n\t\t\t\t\t\t\tcalls: 0,\n\t\t\t\t\t\t\tok: 0,\n\t\t\t\t\t\t\tfailed: 0,\n\t\t\t\t\t\t\trecords: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tpendingTool.records.push(record);\n\t\t\t\t\tif (isCall) pendingTool.calls += 1;\n\t\t\t\t\telse if (record.severity === \"ok\") pendingTool.ok += 1;\n\t\t\t\t\telse if (record.severity === \"error\") pendingTool.failed += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tflushTool();\n\t\t\t\tconst last = groups.at(-1);\n\t\t\t\tif (last?.kind === \"records\") {\n\t\t\t\t\tlast.records.push(record);\n\t\t\t\t\tlast.detailsRef = `trace:${record.traceId}#records:${last.records.length}`;\n\t\t\t\t} else {\n\t\t\t\t\tgroups.push({\n\t\t\t\t\t\tkind: \"records\",\n\t\t\t\t\t\tdetailsRef: `trace:${record.traceId}#records:1`,\n\t\t\t\t\t\trecords: [record],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tflushTool();\n\n\t\t\tlet foldedToolGroups = 0;\n\t\t\tconst frozenGroups = groups.map((group): FoldedOutputGroupV1 => {\n\t\t\t\tconst base = { ...group, records: Object.freeze([...group.records]) };\n\t\t\t\tif (base.kind === \"tool\") {\n\t\t\t\t\tfoldedToolGroups += 1;\n\t\t\t\t\t// v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空\n\t\t\t\t\tconst firstAt = base.records[0]?.at ?? 0;\n\t\t\t\t\t// v8 ignore next -- tool 组至少包含触发分组的那条记录,恒非空\n\t\t\t\t\tconst lastAt = base.records.at(-1)?.at ?? firstAt;\n\t\t\t\t\treturn Object.freeze({ ...base, durationMs: Math.max(lastAt - firstAt, 0) });\n\t\t\t\t}\n\t\t\t\treturn Object.freeze(base);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tgroups: Object.freeze(frozenGroups),\n\t\t\t\ttotalRecords: records.length,\n\t\t\t\tfoldedToolGroups,\n\t\t\t};\n\t\t},\n\t\tunfold(folded) {\n\t\t\treturn Object.freeze(folded.groups.flatMap((group) => [...group.records]));\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,31 @@
1
+ export type HostOutputSurfaceV1 = "tui" | "cli-text" | "inspector";
2
+ export interface HostOutputSerializerContextV1 {
3
+ readonly surface: HostOutputSurfaceV1;
4
+ readonly policyVersion: string;
5
+ readonly inspectorAuthorized: boolean;
6
+ }
7
+ export interface OutputArtifactRefV1 {
8
+ readonly sessionId: string;
9
+ readonly operationId: string;
10
+ readonly artifactId: string;
11
+ readonly kind: string;
12
+ readonly mediaType: string;
13
+ readonly sizeBytes?: number;
14
+ readonly truncated: boolean;
15
+ readonly createdAt: number;
16
+ }
17
+ export interface HostOutputProjectionV1 {
18
+ readonly text: string;
19
+ readonly artifacts?: readonly OutputArtifactRefV1[];
20
+ readonly redactions?: readonly string[];
21
+ readonly diagnostics?: readonly string[];
22
+ readonly rejected?: {
23
+ readonly code: "output_projection_rejected";
24
+ readonly reason: string;
25
+ };
26
+ }
27
+ export interface HostOutputSerializerV1 {
28
+ project(input: Readonly<Record<string, unknown>>, context: HostOutputSerializerContextV1): HostOutputProjectionV1;
29
+ }
30
+ export declare function createHostOutputSerializer(): HostOutputSerializerV1;
31
+ //# sourceMappingURL=output-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-serializer.d.ts","sourceRoot":"","sources":["../../src/host/output-serializer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7F;AAoBD,MAAM,WAAW,sBAAsB;IACtC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,6BAA6B,GAAG,sBAAsB,CAAC;CAClH;AA2CD,wBAAgB,0BAA0B,IAAI,sBAAsB,CA6EnE","sourcesContent":["export type HostOutputSurfaceV1 = \"tui\" | \"cli-text\" | \"inspector\";\n\nexport interface HostOutputSerializerContextV1 {\n\treadonly surface: HostOutputSurfaceV1;\n\treadonly policyVersion: string;\n\treadonly inspectorAuthorized: boolean;\n}\n\nexport interface OutputArtifactRefV1 {\n\treadonly sessionId: string;\n\treadonly operationId: string;\n\treadonly artifactId: string;\n\treadonly kind: string;\n\treadonly mediaType: string;\n\treadonly sizeBytes?: number;\n\treadonly truncated: boolean;\n\treadonly createdAt: number;\n}\n\nexport interface HostOutputProjectionV1 {\n\treadonly text: string;\n\treadonly artifacts?: readonly OutputArtifactRefV1[];\n\treadonly redactions?: readonly string[];\n\treadonly diagnostics?: readonly string[];\n\treadonly rejected?: { readonly code: \"output_projection_rejected\"; readonly reason: string };\n}\n\n/** Field keys that may never reach tui/cli-text surfaces at any depth. */\nconst INTERNAL_FIELD_KEYS: readonly string[] = [\n\t\"memoryId\",\n\t\"memoryIds\",\n\t\"score\",\n\t\"scores\",\n\t\"ranking\",\n\t\"queryPlan\",\n\t\"budget\",\n\t\"budgets\",\n\t\"agentRole\",\n\t\"pluginRole\",\n\t\"lease\",\n\t\"leaseId\",\n\t\"purgeState\",\n\t\"rawSources\",\n];\n\nexport interface HostOutputSerializerV1 {\n\tproject(input: Readonly<Record<string, unknown>>, context: HostOutputSerializerContextV1): HostOutputProjectionV1;\n}\n\ninterface ArtifactLike {\n\treadonly sessionId?: unknown;\n\treadonly operationId?: unknown;\n\treadonly artifactId?: unknown;\n\treadonly kind?: unknown;\n\treadonly mediaType?: unknown;\n\treadonly sizeBytes?: unknown;\n\treadonly truncated?: unknown;\n\treadonly createdAt?: unknown;\n}\n\nfunction isArtifactLike(value: unknown): value is ArtifactLike {\n\treturn (\n\t\ttypeof value === \"object\" && value !== null && \"artifactId\" in value && \"sessionId\" in value && \"kind\" in value\n\t);\n}\n\nfunction toArtifactRef(value: ArtifactLike): OutputArtifactRefV1 | undefined {\n\tif (\n\t\ttypeof value.sessionId !== \"string\" ||\n\t\ttypeof value.operationId !== \"string\" ||\n\t\ttypeof value.artifactId !== \"string\" ||\n\t\ttypeof value.kind !== \"string\" ||\n\t\ttypeof value.mediaType !== \"string\" ||\n\t\ttypeof value.truncated !== \"boolean\" ||\n\t\ttypeof value.createdAt !== \"number\"\n\t) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tsessionId: value.sessionId,\n\t\toperationId: value.operationId,\n\t\tartifactId: value.artifactId,\n\t\tkind: value.kind,\n\t\tmediaType: value.mediaType,\n\t\t...(typeof value.sizeBytes === \"number\" ? { sizeBytes: value.sizeBytes } : {}),\n\t\ttruncated: value.truncated,\n\t\tcreatedAt: value.createdAt,\n\t};\n}\n\nexport function createHostOutputSerializer(): HostOutputSerializerV1 {\n\treturn {\n\t\tproject(input, context) {\n\t\t\tif (context.policyVersion.trim().length === 0) {\n\t\t\t\treturn {\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\tdiagnostics: [\"output_projection_rejected: policyVersion must be a non-empty string\"],\n\t\t\t\t\trejected: { code: \"output_projection_rejected\", reason: \"policyVersion must be a non-empty string\" },\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst redactions: string[] = [];\n\t\t\tconst diagnostics: string[] = [];\n\t\t\tconst artifacts: OutputArtifactRefV1[] = [];\n\t\t\tconst showInternal = context.surface === \"inspector\" && context.inspectorAuthorized;\n\t\t\t// §5.4 requires building the field allowlist FIRST — the renderer can\n\t\t\t// only ever see allowlisted facts, so no fallback path can leak.\n\t\t\tconst isAllowedKey = (key: string): boolean => !INTERNAL_FIELD_KEYS.includes(key) || showInternal;\n\n\t\t\tconst renderValue = (key: string, value: unknown, path: string): string => {\n\t\t\t\tif (!isAllowedKey(key)) {\n\t\t\t\t\tredactions.push(`${path}.${key}`);\n\t\t\t\t\treturn `[redacted:${key}]`;\n\t\t\t\t}\n\t\t\t\tif (isArtifactLike(value)) {\n\t\t\t\t\tconst ref = toArtifactRef(value);\n\t\t\t\t\tif (ref) {\n\t\t\t\t\t\tartifacts.push(ref);\n\t\t\t\t\t\treturn `[artifact:${ref.artifactId}]`;\n\t\t\t\t\t}\n\t\t\t\t\tdiagnostics.push(`output_projection_rejected: ${path}.${key} is a malformed artifact reference`);\n\t\t\t\t\treturn `[unrenderable:${key}]`;\n\t\t\t\t}\n\t\t\t\tif (typeof value === \"string\") return value;\n\t\t\t\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\t\t\t\tif (value === null) return \"null\";\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst rendered = value.map((item) => renderValue(key, item, path));\n\t\t\t\t\treturn `[${rendered.join(\", \")}]`;\n\t\t\t\t}\n\t\t\t\tif (typeof value === \"object\") {\n\t\t\t\t\tconst rendered = Object.entries(value)\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t([nestedKey, nestedValue]) =>\n\t\t\t\t\t\t\t\t`${nestedKey}:${renderValue(nestedKey, nestedValue, `${path}.${key}`)}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\", \");\n\t\t\t\t\treturn `{${rendered}}`;\n\t\t\t\t}\n\t\t\t\tdiagnostics.push(`output_projection_rejected: ${path}.${key} cannot be serialized`);\n\t\t\t\treturn `[unrenderable:${key}]`;\n\t\t\t};\n\n\t\t\tconst textParts: string[] = [];\n\t\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\t\tif (key === \"artifacts\" && Array.isArray(value)) {\n\t\t\t\t\tfor (const entry of value) {\n\t\t\t\t\t\tif (isArtifactLike(entry)) {\n\t\t\t\t\t\t\tconst ref = toArtifactRef(entry);\n\t\t\t\t\t\t\tif (ref) artifacts.push(ref);\n\t\t\t\t\t\t\telse diagnostics.push(\"output_projection_rejected: artifacts entry is malformed\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdiagnostics.push(\"output_projection_rejected: artifacts entry is malformed\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttextParts.push(`${key}=${renderValue(key, value, \"root\")}`);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttext: textParts.join(\"\\n\"),\n\t\t\t\t...(artifacts.length > 0 ? { artifacts: Object.freeze(artifacts) } : {}),\n\t\t\t\t...(redactions.length > 0 ? { redactions: Object.freeze([...redactions]) } : {}),\n\t\t\t\t...(diagnostics.length > 0 ? { diagnostics: Object.freeze([...diagnostics]) } : {}),\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,120 @@
1
+ /** Field keys that may never reach tui/cli-text surfaces at any depth. */
2
+ const INTERNAL_FIELD_KEYS = [
3
+ "memoryId",
4
+ "memoryIds",
5
+ "score",
6
+ "scores",
7
+ "ranking",
8
+ "queryPlan",
9
+ "budget",
10
+ "budgets",
11
+ "agentRole",
12
+ "pluginRole",
13
+ "lease",
14
+ "leaseId",
15
+ "purgeState",
16
+ "rawSources",
17
+ ];
18
+ function isArtifactLike(value) {
19
+ return (typeof value === "object" && value !== null && "artifactId" in value && "sessionId" in value && "kind" in value);
20
+ }
21
+ function toArtifactRef(value) {
22
+ if (typeof value.sessionId !== "string" ||
23
+ typeof value.operationId !== "string" ||
24
+ typeof value.artifactId !== "string" ||
25
+ typeof value.kind !== "string" ||
26
+ typeof value.mediaType !== "string" ||
27
+ typeof value.truncated !== "boolean" ||
28
+ typeof value.createdAt !== "number") {
29
+ return undefined;
30
+ }
31
+ return {
32
+ sessionId: value.sessionId,
33
+ operationId: value.operationId,
34
+ artifactId: value.artifactId,
35
+ kind: value.kind,
36
+ mediaType: value.mediaType,
37
+ ...(typeof value.sizeBytes === "number" ? { sizeBytes: value.sizeBytes } : {}),
38
+ truncated: value.truncated,
39
+ createdAt: value.createdAt,
40
+ };
41
+ }
42
+ export function createHostOutputSerializer() {
43
+ return {
44
+ project(input, context) {
45
+ if (context.policyVersion.trim().length === 0) {
46
+ return {
47
+ text: "",
48
+ diagnostics: ["output_projection_rejected: policyVersion must be a non-empty string"],
49
+ rejected: { code: "output_projection_rejected", reason: "policyVersion must be a non-empty string" },
50
+ };
51
+ }
52
+ const redactions = [];
53
+ const diagnostics = [];
54
+ const artifacts = [];
55
+ const showInternal = context.surface === "inspector" && context.inspectorAuthorized;
56
+ // §5.4 requires building the field allowlist FIRST — the renderer can
57
+ // only ever see allowlisted facts, so no fallback path can leak.
58
+ const isAllowedKey = (key) => !INTERNAL_FIELD_KEYS.includes(key) || showInternal;
59
+ const renderValue = (key, value, path) => {
60
+ if (!isAllowedKey(key)) {
61
+ redactions.push(`${path}.${key}`);
62
+ return `[redacted:${key}]`;
63
+ }
64
+ if (isArtifactLike(value)) {
65
+ const ref = toArtifactRef(value);
66
+ if (ref) {
67
+ artifacts.push(ref);
68
+ return `[artifact:${ref.artifactId}]`;
69
+ }
70
+ diagnostics.push(`output_projection_rejected: ${path}.${key} is a malformed artifact reference`);
71
+ return `[unrenderable:${key}]`;
72
+ }
73
+ if (typeof value === "string")
74
+ return value;
75
+ if (typeof value === "number" || typeof value === "boolean")
76
+ return String(value);
77
+ if (value === null)
78
+ return "null";
79
+ if (Array.isArray(value)) {
80
+ const rendered = value.map((item) => renderValue(key, item, path));
81
+ return `[${rendered.join(", ")}]`;
82
+ }
83
+ if (typeof value === "object") {
84
+ const rendered = Object.entries(value)
85
+ .map(([nestedKey, nestedValue]) => `${nestedKey}:${renderValue(nestedKey, nestedValue, `${path}.${key}`)}`)
86
+ .join(", ");
87
+ return `{${rendered}}`;
88
+ }
89
+ diagnostics.push(`output_projection_rejected: ${path}.${key} cannot be serialized`);
90
+ return `[unrenderable:${key}]`;
91
+ };
92
+ const textParts = [];
93
+ for (const [key, value] of Object.entries(input)) {
94
+ if (key === "artifacts" && Array.isArray(value)) {
95
+ for (const entry of value) {
96
+ if (isArtifactLike(entry)) {
97
+ const ref = toArtifactRef(entry);
98
+ if (ref)
99
+ artifacts.push(ref);
100
+ else
101
+ diagnostics.push("output_projection_rejected: artifacts entry is malformed");
102
+ }
103
+ else {
104
+ diagnostics.push("output_projection_rejected: artifacts entry is malformed");
105
+ }
106
+ }
107
+ continue;
108
+ }
109
+ textParts.push(`${key}=${renderValue(key, value, "root")}`);
110
+ }
111
+ return {
112
+ text: textParts.join("\n"),
113
+ ...(artifacts.length > 0 ? { artifacts: Object.freeze(artifacts) } : {}),
114
+ ...(redactions.length > 0 ? { redactions: Object.freeze([...redactions]) } : {}),
115
+ ...(diagnostics.length > 0 ? { diagnostics: Object.freeze([...diagnostics]) } : {}),
116
+ };
117
+ },
118
+ };
119
+ }
120
+ //# sourceMappingURL=output-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-serializer.js","sourceRoot":"","sources":["../../src/host/output-serializer.ts"],"names":[],"mappings":"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","sourcesContent":["export type HostOutputSurfaceV1 = \"tui\" | \"cli-text\" | \"inspector\";\n\nexport interface HostOutputSerializerContextV1 {\n\treadonly surface: HostOutputSurfaceV1;\n\treadonly policyVersion: string;\n\treadonly inspectorAuthorized: boolean;\n}\n\nexport interface OutputArtifactRefV1 {\n\treadonly sessionId: string;\n\treadonly operationId: string;\n\treadonly artifactId: string;\n\treadonly kind: string;\n\treadonly mediaType: string;\n\treadonly sizeBytes?: number;\n\treadonly truncated: boolean;\n\treadonly createdAt: number;\n}\n\nexport interface HostOutputProjectionV1 {\n\treadonly text: string;\n\treadonly artifacts?: readonly OutputArtifactRefV1[];\n\treadonly redactions?: readonly string[];\n\treadonly diagnostics?: readonly string[];\n\treadonly rejected?: { readonly code: \"output_projection_rejected\"; readonly reason: string };\n}\n\n/** Field keys that may never reach tui/cli-text surfaces at any depth. */\nconst INTERNAL_FIELD_KEYS: readonly string[] = [\n\t\"memoryId\",\n\t\"memoryIds\",\n\t\"score\",\n\t\"scores\",\n\t\"ranking\",\n\t\"queryPlan\",\n\t\"budget\",\n\t\"budgets\",\n\t\"agentRole\",\n\t\"pluginRole\",\n\t\"lease\",\n\t\"leaseId\",\n\t\"purgeState\",\n\t\"rawSources\",\n];\n\nexport interface HostOutputSerializerV1 {\n\tproject(input: Readonly<Record<string, unknown>>, context: HostOutputSerializerContextV1): HostOutputProjectionV1;\n}\n\ninterface ArtifactLike {\n\treadonly sessionId?: unknown;\n\treadonly operationId?: unknown;\n\treadonly artifactId?: unknown;\n\treadonly kind?: unknown;\n\treadonly mediaType?: unknown;\n\treadonly sizeBytes?: unknown;\n\treadonly truncated?: unknown;\n\treadonly createdAt?: unknown;\n}\n\nfunction isArtifactLike(value: unknown): value is ArtifactLike {\n\treturn (\n\t\ttypeof value === \"object\" && value !== null && \"artifactId\" in value && \"sessionId\" in value && \"kind\" in value\n\t);\n}\n\nfunction toArtifactRef(value: ArtifactLike): OutputArtifactRefV1 | undefined {\n\tif (\n\t\ttypeof value.sessionId !== \"string\" ||\n\t\ttypeof value.operationId !== \"string\" ||\n\t\ttypeof value.artifactId !== \"string\" ||\n\t\ttypeof value.kind !== \"string\" ||\n\t\ttypeof value.mediaType !== \"string\" ||\n\t\ttypeof value.truncated !== \"boolean\" ||\n\t\ttypeof value.createdAt !== \"number\"\n\t) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tsessionId: value.sessionId,\n\t\toperationId: value.operationId,\n\t\tartifactId: value.artifactId,\n\t\tkind: value.kind,\n\t\tmediaType: value.mediaType,\n\t\t...(typeof value.sizeBytes === \"number\" ? { sizeBytes: value.sizeBytes } : {}),\n\t\ttruncated: value.truncated,\n\t\tcreatedAt: value.createdAt,\n\t};\n}\n\nexport function createHostOutputSerializer(): HostOutputSerializerV1 {\n\treturn {\n\t\tproject(input, context) {\n\t\t\tif (context.policyVersion.trim().length === 0) {\n\t\t\t\treturn {\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\tdiagnostics: [\"output_projection_rejected: policyVersion must be a non-empty string\"],\n\t\t\t\t\trejected: { code: \"output_projection_rejected\", reason: \"policyVersion must be a non-empty string\" },\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst redactions: string[] = [];\n\t\t\tconst diagnostics: string[] = [];\n\t\t\tconst artifacts: OutputArtifactRefV1[] = [];\n\t\t\tconst showInternal = context.surface === \"inspector\" && context.inspectorAuthorized;\n\t\t\t// §5.4 requires building the field allowlist FIRST — the renderer can\n\t\t\t// only ever see allowlisted facts, so no fallback path can leak.\n\t\t\tconst isAllowedKey = (key: string): boolean => !INTERNAL_FIELD_KEYS.includes(key) || showInternal;\n\n\t\t\tconst renderValue = (key: string, value: unknown, path: string): string => {\n\t\t\t\tif (!isAllowedKey(key)) {\n\t\t\t\t\tredactions.push(`${path}.${key}`);\n\t\t\t\t\treturn `[redacted:${key}]`;\n\t\t\t\t}\n\t\t\t\tif (isArtifactLike(value)) {\n\t\t\t\t\tconst ref = toArtifactRef(value);\n\t\t\t\t\tif (ref) {\n\t\t\t\t\t\tartifacts.push(ref);\n\t\t\t\t\t\treturn `[artifact:${ref.artifactId}]`;\n\t\t\t\t\t}\n\t\t\t\t\tdiagnostics.push(`output_projection_rejected: ${path}.${key} is a malformed artifact reference`);\n\t\t\t\t\treturn `[unrenderable:${key}]`;\n\t\t\t\t}\n\t\t\t\tif (typeof value === \"string\") return value;\n\t\t\t\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\t\t\t\tif (value === null) return \"null\";\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst rendered = value.map((item) => renderValue(key, item, path));\n\t\t\t\t\treturn `[${rendered.join(\", \")}]`;\n\t\t\t\t}\n\t\t\t\tif (typeof value === \"object\") {\n\t\t\t\t\tconst rendered = Object.entries(value)\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t([nestedKey, nestedValue]) =>\n\t\t\t\t\t\t\t\t`${nestedKey}:${renderValue(nestedKey, nestedValue, `${path}.${key}`)}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\", \");\n\t\t\t\t\treturn `{${rendered}}`;\n\t\t\t\t}\n\t\t\t\tdiagnostics.push(`output_projection_rejected: ${path}.${key} cannot be serialized`);\n\t\t\t\treturn `[unrenderable:${key}]`;\n\t\t\t};\n\n\t\t\tconst textParts: string[] = [];\n\t\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\t\tif (key === \"artifacts\" && Array.isArray(value)) {\n\t\t\t\t\tfor (const entry of value) {\n\t\t\t\t\t\tif (isArtifactLike(entry)) {\n\t\t\t\t\t\t\tconst ref = toArtifactRef(entry);\n\t\t\t\t\t\t\tif (ref) artifacts.push(ref);\n\t\t\t\t\t\t\telse diagnostics.push(\"output_projection_rejected: artifacts entry is malformed\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdiagnostics.push(\"output_projection_rejected: artifacts entry is malformed\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttextParts.push(`${key}=${renderValue(key, value, \"root\")}`);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttext: textParts.join(\"\\n\"),\n\t\t\t\t...(artifacts.length > 0 ? { artifacts: Object.freeze(artifacts) } : {}),\n\t\t\t\t...(redactions.length > 0 ? { redactions: Object.freeze([...redactions]) } : {}),\n\t\t\t\t...(diagnostics.length > 0 ? { diagnostics: Object.freeze([...diagnostics]) } : {}),\n\t\t\t};\n\t\t},\n\t};\n}\n"]}