qlogicagent 2.13.3 → 2.13.5

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 (1268) hide show
  1. package/dist/agent/agent.d.ts +48 -0
  2. package/dist/agent/agent.js +197 -0
  3. package/dist/agent/memory-recall-context.d.ts +18 -0
  4. package/dist/agent/memory-recall-context.js +139 -0
  5. package/dist/agent/memory-recall-context.test.d.ts +1 -0
  6. package/dist/agent/memory-recall-context.test.js +58 -0
  7. package/dist/agent/memory-recall-injection.d.ts +34 -0
  8. package/dist/agent/memory-recall-injection.js +66 -0
  9. package/dist/agent/runtime-vars.d.ts +48 -0
  10. package/dist/agent/runtime-vars.js +54 -0
  11. package/dist/agent/tool-access.d.ts +1 -0
  12. package/dist/agent/tool-access.js +1 -0
  13. package/dist/agent/tool-loop/artifact-events.d.ts +17 -0
  14. package/dist/agent/tool-loop/artifact-events.js +75 -0
  15. package/dist/agent/tool-loop/budget-continuation-policy.d.ts +22 -0
  16. package/dist/agent/tool-loop/budget-continuation-policy.js +44 -0
  17. package/dist/agent/tool-loop/completion-action-policy.d.ts +19 -0
  18. package/dist/agent/tool-loop/completion-action-policy.js +68 -0
  19. package/dist/agent/tool-loop/completion-action-policy.test.d.ts +1 -0
  20. package/dist/agent/tool-loop/completion-action-policy.test.js +77 -0
  21. package/dist/agent/tool-loop/completion-stop-policy.d.ts +19 -0
  22. package/dist/agent/tool-loop/completion-stop-policy.js +31 -0
  23. package/dist/agent/tool-loop/compression-pipeline.d.ts +44 -0
  24. package/dist/agent/tool-loop/compression-pipeline.js +68 -0
  25. package/dist/agent/tool-loop/loop-helpers.d.ts +15 -0
  26. package/dist/agent/tool-loop/loop-helpers.js +86 -0
  27. package/dist/agent/tool-loop/recovery-helpers.d.ts +18 -0
  28. package/dist/agent/tool-loop/recovery-helpers.js +42 -0
  29. package/dist/agent/tool-loop/single-round.d.ts +2 -0
  30. package/dist/agent/tool-loop/single-round.js +43 -0
  31. package/dist/agent/tool-loop/skill-instruction-policy.d.ts +7 -0
  32. package/dist/agent/tool-loop/skill-instruction-policy.js +18 -0
  33. package/dist/agent/tool-loop/stream-error-recovery.d.ts +59 -0
  34. package/dist/agent/tool-loop/stream-error-recovery.js +93 -0
  35. package/dist/agent/tool-loop/tool-failure-policy.d.ts +22 -0
  36. package/dist/agent/tool-loop/tool-failure-policy.js +46 -0
  37. package/dist/agent/tool-loop/tool-result-events.d.ts +11 -0
  38. package/dist/agent/tool-loop/tool-result-events.js +59 -0
  39. package/dist/agent/tool-loop/tool-result-events.test.d.ts +1 -0
  40. package/dist/agent/tool-loop/tool-result-events.test.js +30 -0
  41. package/dist/agent/tool-loop.contract.test.d.ts +1 -0
  42. package/dist/agent/tool-loop.contract.test.js +254 -0
  43. package/dist/agent/tool-loop.d.ts +121 -0
  44. package/dist/agent/tool-loop.js +1017 -0
  45. package/dist/agent/tool-loop.policy-architecture.test.d.ts +1 -0
  46. package/dist/agent/tool-loop.policy-architecture.test.js +21 -0
  47. package/dist/agent/tool-loop.states.test.d.ts +1 -0
  48. package/dist/agent/tool-loop.states.test.js +211 -0
  49. package/dist/agent/tunable-defaults.d.ts +1 -0
  50. package/dist/agent/tunable-defaults.js +1 -0
  51. package/dist/agent/types.d.ts +311 -0
  52. package/dist/agent/types.js +8 -0
  53. package/dist/cli/acp-commands.d.ts +32 -0
  54. package/dist/cli/acp-commands.js +145 -0
  55. package/dist/cli/acp-commands.test.d.ts +1 -0
  56. package/dist/cli/acp-commands.test.js +89 -0
  57. package/dist/cli/acp-extended-handlers.d.ts +69 -0
  58. package/dist/cli/acp-extended-handlers.js +484 -0
  59. package/dist/cli/acp-extended-handlers.product-confirm.test.d.ts +1 -0
  60. package/dist/cli/acp-extended-handlers.product-confirm.test.js +56 -0
  61. package/dist/cli/acp-extended-handlers.product-project.test.d.ts +1 -0
  62. package/dist/cli/acp-extended-handlers.product-project.test.js +66 -0
  63. package/dist/cli/acp-extended-handlers.solo-project.test.d.ts +1 -0
  64. package/dist/cli/acp-extended-handlers.solo-project.test.js +51 -0
  65. package/dist/cli/acp-extended-handlers.specchat.test.d.ts +1 -0
  66. package/dist/cli/acp-extended-handlers.specchat.test.js +62 -0
  67. package/dist/cli/acp-extended-handlers.workflowchat.test.d.ts +1 -0
  68. package/dist/cli/acp-extended-handlers.workflowchat.test.js +49 -0
  69. package/dist/cli/acp-extended-host-adapter.d.ts +29 -0
  70. package/dist/cli/acp-extended-host-adapter.js +40 -0
  71. package/dist/cli/acp-extended-host-adapter.test.d.ts +1 -0
  72. package/dist/cli/acp-extended-host-adapter.test.js +63 -0
  73. package/dist/cli/acp-message-router.d.ts +8 -0
  74. package/dist/cli/acp-message-router.js +40 -0
  75. package/dist/cli/acp-message-router.test.d.ts +1 -0
  76. package/dist/cli/acp-message-router.test.js +30 -0
  77. package/dist/cli/acp-session-handlers.d.ts +41 -0
  78. package/dist/cli/acp-session-handlers.js +304 -0
  79. package/dist/cli/acp-session-handlers.test.d.ts +1 -0
  80. package/dist/cli/acp-session-handlers.test.js +346 -0
  81. package/dist/cli/acp-session-host.d.ts +48 -0
  82. package/dist/cli/acp-session-host.js +1 -0
  83. package/dist/cli/agent-config-coordinator.d.ts +16 -0
  84. package/dist/cli/agent-config-coordinator.js +56 -0
  85. package/dist/cli/agent-config-coordinator.test.d.ts +1 -0
  86. package/dist/cli/agent-config-coordinator.test.js +51 -0
  87. package/dist/cli/agent-config-runtime.d.ts +11 -0
  88. package/dist/cli/agent-config-runtime.js +4 -0
  89. package/dist/cli/agent-runner-factory.d.ts +2 -0
  90. package/dist/cli/agent-runner-factory.js +11 -0
  91. package/dist/cli/agent-runtime-bootstrap.d.ts +67 -0
  92. package/dist/cli/agent-runtime-bootstrap.js +104 -0
  93. package/dist/cli/agent-runtime-ports-adapter.d.ts +2 -0
  94. package/dist/cli/agent-runtime-ports-adapter.js +22 -0
  95. package/dist/cli/agent-runtime-session-state.d.ts +24 -0
  96. package/dist/cli/agent-runtime-session-state.js +51 -0
  97. package/dist/cli/agent-status-notifier.d.ts +11 -0
  98. package/dist/cli/agent-status-notifier.js +26 -0
  99. package/dist/cli/agent-status-notifier.test.d.ts +1 -0
  100. package/dist/cli/agent-status-notifier.test.js +33 -0
  101. package/dist/cli/base-tool-bootstrap.d.ts +16 -0
  102. package/dist/cli/base-tool-bootstrap.js +20 -0
  103. package/dist/cli/cli-acp-request-handler.d.ts +11 -0
  104. package/dist/cli/cli-acp-request-handler.js +61 -0
  105. package/dist/cli/cli-acp-request-handler.test.d.ts +1 -0
  106. package/dist/cli/cli-acp-request-handler.test.js +58 -0
  107. package/dist/cli/cli-agent-builder.d.ts +35 -0
  108. package/dist/cli/cli-agent-builder.js +33 -0
  109. package/dist/cli/community-resource-installer.d.ts +30 -0
  110. package/dist/cli/community-resource-installer.js +66 -0
  111. package/dist/cli/community-resource-installer.test.d.ts +1 -0
  112. package/dist/cli/community-resource-installer.test.js +175 -0
  113. package/dist/cli/community-skill-installer.d.ts +12 -0
  114. package/dist/cli/community-skill-installer.js +220 -0
  115. package/dist/cli/community-skill-installer.test.d.ts +1 -0
  116. package/dist/cli/community-skill-installer.test.js +179 -0
  117. package/dist/cli/community-workflow-installer.d.ts +29 -0
  118. package/dist/cli/community-workflow-installer.js +69 -0
  119. package/dist/cli/conversation-context.d.ts +30 -0
  120. package/dist/cli/conversation-context.js +69 -0
  121. package/dist/cli/conversation-context.test.d.ts +1 -0
  122. package/dist/cli/conversation-context.test.js +61 -0
  123. package/dist/cli/core-tool-coordinator.d.ts +41 -0
  124. package/dist/cli/core-tool-coordinator.js +55 -0
  125. package/dist/cli/core-tools/agent-tool-bootstrap.d.ts +12 -0
  126. package/dist/cli/core-tools/agent-tool-bootstrap.js +5 -0
  127. package/dist/cli/core-tools/agent-tool-service.background.test.d.ts +1 -0
  128. package/dist/cli/core-tools/agent-tool-service.background.test.js +212 -0
  129. package/dist/cli/core-tools/agent-tool-service.d.ts +36 -0
  130. package/dist/cli/core-tools/agent-tool-service.js +152 -0
  131. package/dist/cli/core-tools/checkpoint-tool-bootstrap.d.ts +9 -0
  132. package/dist/cli/core-tools/checkpoint-tool-bootstrap.js +8 -0
  133. package/dist/cli/core-tools/checkpoint-tool-service.d.ts +7 -0
  134. package/dist/cli/core-tools/checkpoint-tool-service.js +5 -0
  135. package/dist/cli/core-tools/config-tool-bootstrap.d.ts +5 -0
  136. package/dist/cli/core-tools/config-tool-bootstrap.js +5 -0
  137. package/dist/cli/core-tools/config-tool-service.d.ts +11 -0
  138. package/dist/cli/core-tools/config-tool-service.js +86 -0
  139. package/dist/cli/core-tools/config-tool-service.test.d.ts +1 -0
  140. package/dist/cli/core-tools/config-tool-service.test.js +69 -0
  141. package/dist/cli/core-tools/cron-tool-bootstrap.d.ts +8 -0
  142. package/dist/cli/core-tools/cron-tool-bootstrap.js +8 -0
  143. package/dist/cli/core-tools/cron-workflow-service.d.ts +7 -0
  144. package/dist/cli/core-tools/cron-workflow-service.js +206 -0
  145. package/dist/cli/core-tools/cron-workflow-service.test.d.ts +1 -0
  146. package/dist/cli/core-tools/cron-workflow-service.test.js +78 -0
  147. package/dist/cli/core-tools/fork-system-prompt.d.ts +45 -0
  148. package/dist/cli/core-tools/fork-system-prompt.js +66 -0
  149. package/dist/cli/core-tools/fork-system-prompt.test.d.ts +1 -0
  150. package/dist/cli/core-tools/fork-system-prompt.test.js +77 -0
  151. package/dist/cli/core-tools/monitor-tool-bootstrap.d.ts +7 -0
  152. package/dist/cli/core-tools/monitor-tool-bootstrap.js +8 -0
  153. package/dist/cli/core-tools/monitor-tool-service.d.ts +6 -0
  154. package/dist/cli/core-tools/monitor-tool-service.js +74 -0
  155. package/dist/cli/core-tools/registry.d.ts +8 -0
  156. package/dist/cli/core-tools/registry.js +60 -0
  157. package/dist/cli/core-tools/session-tool-manifest.d.ts +12 -0
  158. package/dist/cli/core-tools/session-tool-manifest.js +19 -0
  159. package/dist/cli/core-tools/team-registry.d.ts +62 -0
  160. package/dist/cli/core-tools/team-registry.js +85 -0
  161. package/dist/cli/core-tools/team-registry.test.d.ts +1 -0
  162. package/dist/cli/core-tools/team-registry.test.js +79 -0
  163. package/dist/cli/core-tools/team-tool-bootstrap.d.ts +11 -0
  164. package/dist/cli/core-tools/team-tool-bootstrap.js +8 -0
  165. package/dist/cli/core-tools/team-tool-service.d.ts +43 -0
  166. package/dist/cli/core-tools/team-tool-service.js +326 -0
  167. package/dist/cli/core-tools/team-tool-service.test.d.ts +1 -0
  168. package/dist/cli/core-tools/team-tool-service.test.js +48 -0
  169. package/dist/cli/credential-vault.d.ts +62 -0
  170. package/dist/cli/credential-vault.js +190 -0
  171. package/dist/cli/credential-vault.test.d.ts +6 -0
  172. package/dist/cli/credential-vault.test.js +130 -0
  173. package/dist/cli/default-project-bootstrap.d.ts +8 -0
  174. package/dist/cli/default-project-bootstrap.js +39 -0
  175. package/dist/cli/dev-tool-bootstrap.d.ts +8 -0
  176. package/dist/cli/dev-tool-bootstrap.js +19 -0
  177. package/dist/cli/dev-tools/dev-tool-bootstrap-service.d.ts +6 -0
  178. package/dist/cli/dev-tools/dev-tool-bootstrap-service.js +6 -0
  179. package/dist/cli/dev-tools/dev-tool-registry.d.ts +6 -0
  180. package/dist/cli/dev-tools/dev-tool-registry.js +7 -0
  181. package/dist/cli/dev-tools/lsp-tool-service.d.ts +5 -0
  182. package/dist/cli/dev-tools/lsp-tool-service.js +30 -0
  183. package/dist/cli/dev-tools/lsp-tool-service.test.d.ts +1 -0
  184. package/dist/cli/dev-tools/lsp-tool-service.test.js +14 -0
  185. package/dist/cli/dream-host-adapter.d.ts +23 -0
  186. package/dist/cli/dream-host-adapter.js +33 -0
  187. package/dist/cli/gateway-rpc-connection.d.ts +50 -0
  188. package/dist/cli/gateway-rpc-connection.js +133 -0
  189. package/dist/cli/handlers/agents-handler.d.ts +51 -0
  190. package/dist/cli/handlers/agents-handler.js +769 -0
  191. package/dist/cli/handlers/community-handler.d.ts +39 -0
  192. package/dist/cli/handlers/community-handler.js +671 -0
  193. package/dist/cli/handlers/community-handler.test.d.ts +1 -0
  194. package/dist/cli/handlers/community-handler.test.js +1602 -0
  195. package/dist/cli/handlers/config-handler.d.ts +28 -0
  196. package/dist/cli/handlers/config-handler.js +438 -0
  197. package/dist/cli/handlers/config-handler.test.d.ts +1 -0
  198. package/dist/cli/handlers/config-handler.test.js +140 -0
  199. package/dist/cli/handlers/config-handler.tools-list.test.d.ts +1 -0
  200. package/dist/cli/handlers/config-handler.tools-list.test.js +93 -0
  201. package/dist/cli/handlers/control-handler.d.ts +23 -0
  202. package/dist/cli/handlers/control-handler.js +88 -0
  203. package/dist/cli/handlers/dream-handler.d.ts +31 -0
  204. package/dist/cli/handlers/dream-handler.js +235 -0
  205. package/dist/cli/handlers/files-handler.d.ts +22 -0
  206. package/dist/cli/handlers/files-handler.instructions.test.d.ts +1 -0
  207. package/dist/cli/handlers/files-handler.instructions.test.js +127 -0
  208. package/dist/cli/handlers/files-handler.js +593 -0
  209. package/dist/cli/handlers/media-handler.d.ts +19 -0
  210. package/dist/cli/handlers/media-handler.js +212 -0
  211. package/dist/cli/handlers/media-handler.test.d.ts +1 -0
  212. package/dist/cli/handlers/media-handler.test.js +107 -0
  213. package/dist/cli/handlers/memory-handler.d.ts +61 -0
  214. package/dist/cli/handlers/memory-handler.js +792 -0
  215. package/dist/cli/handlers/pet-confirm-handler.d.ts +7 -0
  216. package/dist/cli/handlers/pet-confirm-handler.js +6 -0
  217. package/dist/cli/handlers/pet-handler.d.ts +47 -0
  218. package/dist/cli/handlers/pet-handler.js +455 -0
  219. package/dist/cli/handlers/pet-handler.test.d.ts +1 -0
  220. package/dist/cli/handlers/pet-handler.test.js +620 -0
  221. package/dist/cli/handlers/product-handler.d.ts +37 -0
  222. package/dist/cli/handlers/product-handler.js +393 -0
  223. package/dist/cli/handlers/project-handler.d.ts +28 -0
  224. package/dist/cli/handlers/project-handler.js +421 -0
  225. package/dist/cli/handlers/session-handler.channel.test.d.ts +1 -0
  226. package/dist/cli/handlers/session-handler.channel.test.js +157 -0
  227. package/dist/cli/handlers/session-handler.d.ts +58 -0
  228. package/dist/cli/handlers/session-handler.delete.test.d.ts +1 -0
  229. package/dist/cli/handlers/session-handler.delete.test.js +38 -0
  230. package/dist/cli/handlers/session-handler.js +833 -0
  231. package/dist/cli/handlers/session-handler.resume.test.d.ts +1 -0
  232. package/dist/cli/handlers/session-handler.resume.test.js +66 -0
  233. package/dist/cli/handlers/settings-handler.d.ts +19 -0
  234. package/dist/cli/handlers/settings-handler.js +710 -0
  235. package/dist/cli/handlers/settings-handler.remote-catalog.test.d.ts +1 -0
  236. package/dist/cli/handlers/settings-handler.remote-catalog.test.js +1247 -0
  237. package/dist/cli/handlers/skills-handler.d.ts +29 -0
  238. package/dist/cli/handlers/skills-handler.js +368 -0
  239. package/dist/cli/handlers/skills-handler.profile.test.d.ts +1 -0
  240. package/dist/cli/handlers/skills-handler.profile.test.js +70 -0
  241. package/dist/cli/handlers/solo-handler.d.ts +38 -0
  242. package/dist/cli/handlers/solo-handler.js +351 -0
  243. package/dist/cli/handlers/turn-handler.d.ts +52 -0
  244. package/dist/cli/handlers/turn-handler.js +574 -0
  245. package/dist/cli/handlers/turn-handler.test.d.ts +1 -0
  246. package/dist/cli/handlers/turn-handler.test.js +22 -0
  247. package/dist/cli/handlers/workflow-handler.d.ts +181 -0
  248. package/dist/cli/handlers/workflow-handler.events.test.d.ts +1 -0
  249. package/dist/cli/handlers/workflow-handler.events.test.js +113 -0
  250. package/dist/cli/handlers/workflow-handler.js +1449 -0
  251. package/dist/cli/handlers/workflow-handler.multiroot.test.d.ts +12 -0
  252. package/dist/cli/handlers/workflow-handler.multiroot.test.js +745 -0
  253. package/dist/cli/idle-dream-coordinator.d.ts +47 -0
  254. package/dist/cli/idle-dream-coordinator.js +126 -0
  255. package/dist/cli/idle-dream-coordinator.test.d.ts +1 -0
  256. package/dist/cli/idle-dream-coordinator.test.js +125 -0
  257. package/dist/cli/main.d.ts +15 -0
  258. package/dist/cli/main.js +112 -0
  259. package/dist/cli/mcp-bootstrap.d.ts +20 -0
  260. package/dist/cli/mcp-bootstrap.js +66 -0
  261. package/dist/cli/mcp-plugin-bootstrap.d.ts +2 -0
  262. package/dist/cli/mcp-plugin-bootstrap.js +2 -0
  263. package/dist/cli/mcp-plugin-bootstrap.test.d.ts +1 -0
  264. package/dist/cli/mcp-plugin-bootstrap.test.js +38 -0
  265. package/dist/cli/mcp-tool-proxy.d.ts +7 -0
  266. package/dist/cli/mcp-tool-proxy.js +15 -0
  267. package/dist/cli/media-capability-schema.d.ts +49 -0
  268. package/dist/cli/media-capability-schema.js +384 -0
  269. package/dist/cli/media-capability-schema.test.d.ts +1 -0
  270. package/dist/cli/media-capability-schema.test.js +103 -0
  271. package/dist/cli/media-file-api-service.d.ts +73 -0
  272. package/dist/cli/media-file-api-service.js +143 -0
  273. package/dist/cli/media-file-api-service.test.d.ts +1 -0
  274. package/dist/cli/media-file-api-service.test.js +119 -0
  275. package/dist/cli/media-file-tool-service.d.ts +13 -0
  276. package/dist/cli/media-file-tool-service.js +63 -0
  277. package/dist/cli/media-runtime-capability.test.d.ts +1 -0
  278. package/dist/cli/media-runtime-capability.test.js +106 -0
  279. package/dist/cli/media-runtime-facade.d.ts +51 -0
  280. package/dist/cli/media-runtime-facade.js +389 -0
  281. package/dist/cli/media-runtime-facade.test.d.ts +1 -0
  282. package/dist/cli/media-runtime-facade.test.js +42 -0
  283. package/dist/cli/memory-candidate-service.d.ts +83 -0
  284. package/dist/cli/memory-candidate-service.js +341 -0
  285. package/dist/cli/memory-coordinator.d.ts +37 -0
  286. package/dist/cli/memory-coordinator.js +85 -0
  287. package/dist/cli/memory-coordinator.test.d.ts +1 -0
  288. package/dist/cli/memory-coordinator.test.js +78 -0
  289. package/dist/cli/memory-multimodal.test.d.ts +1 -0
  290. package/dist/cli/memory-multimodal.test.js +137 -0
  291. package/dist/cli/model-client-resolver.d.ts +31 -0
  292. package/dist/cli/model-client-resolver.js +173 -0
  293. package/dist/cli/model-client-resolver.test.d.ts +1 -0
  294. package/dist/cli/model-client-resolver.test.js +105 -0
  295. package/dist/cli/multi-agent-handler-host.d.ts +27 -0
  296. package/dist/cli/multi-agent-handler-host.js +55 -0
  297. package/dist/cli/multi-agent-handler-host.test.d.ts +1 -0
  298. package/dist/cli/multi-agent-handler-host.test.js +63 -0
  299. package/dist/cli/multi-agent-state-coordinator.d.ts +11 -0
  300. package/dist/cli/multi-agent-state-coordinator.js +7 -0
  301. package/dist/cli/permission-approval-bridge.d.ts +15 -0
  302. package/dist/cli/permission-approval-bridge.js +66 -0
  303. package/dist/cli/permission-approval-bridge.test.d.ts +1 -0
  304. package/dist/cli/permission-approval-bridge.test.js +100 -0
  305. package/dist/cli/permission-bootstrap.d.ts +40 -0
  306. package/dist/cli/permission-bootstrap.js +58 -0
  307. package/dist/cli/permission-bootstrap.test.d.ts +1 -0
  308. package/dist/cli/permission-bootstrap.test.js +129 -0
  309. package/dist/cli/permission-runtime-service.d.ts +9 -0
  310. package/dist/cli/permission-runtime-service.js +11 -0
  311. package/dist/cli/permission-settings-store.d.ts +1 -0
  312. package/dist/cli/permission-settings-store.js +3 -0
  313. package/dist/cli/permission-settings-store.test.d.ts +1 -0
  314. package/dist/cli/permission-settings-store.test.js +65 -0
  315. package/dist/cli/pet-confirm-coordinator.d.ts +20 -0
  316. package/dist/cli/pet-confirm-coordinator.js +32 -0
  317. package/dist/cli/pet-confirm-coordinator.test.d.ts +1 -0
  318. package/dist/cli/pet-confirm-coordinator.test.js +34 -0
  319. package/dist/cli/pet-runtime.d.ts +55 -0
  320. package/dist/cli/pet-runtime.js +220 -0
  321. package/dist/cli/pet-runtime.test.d.ts +1 -0
  322. package/dist/cli/pet-runtime.test.js +46 -0
  323. package/dist/cli/plugin-bootstrap.d.ts +15 -0
  324. package/dist/cli/plugin-bootstrap.js +63 -0
  325. package/dist/cli/product-coordinator.d.ts +34 -0
  326. package/dist/cli/product-coordinator.js +124 -0
  327. package/dist/cli/product-coordinator.test.d.ts +1 -0
  328. package/dist/cli/product-coordinator.test.js +51 -0
  329. package/dist/cli/project-command-service.d.ts +28 -0
  330. package/dist/cli/project-command-service.js +99 -0
  331. package/dist/cli/project-context.d.ts +1 -0
  332. package/dist/cli/project-context.js +4 -0
  333. package/dist/cli/project-memory-store-factory.d.ts +2 -0
  334. package/dist/cli/project-memory-store-factory.js +11 -0
  335. package/dist/cli/project-template-seeder.d.ts +5 -0
  336. package/dist/cli/project-template-seeder.js +43 -0
  337. package/dist/cli/provider-core-facade.d.ts +31 -0
  338. package/dist/cli/provider-core-facade.js +51 -0
  339. package/dist/cli/provider-core-facade.test.d.ts +1 -0
  340. package/dist/cli/provider-core-facade.test.js +9 -0
  341. package/dist/cli/resolved-agent-cache.d.ts +47 -0
  342. package/dist/cli/resolved-agent-cache.js +38 -0
  343. package/dist/cli/rpc-registry.community.test.d.ts +1 -0
  344. package/dist/cli/rpc-registry.community.test.js +45 -0
  345. package/dist/cli/rpc-registry.d.ts +62 -0
  346. package/dist/cli/rpc-registry.js +243 -0
  347. package/dist/cli/runtime-dependency-catalog.d.ts +56 -0
  348. package/dist/cli/runtime-dependency-catalog.js +110 -0
  349. package/dist/cli/runtime-hook-bootstrap.d.ts +38 -0
  350. package/dist/cli/runtime-hook-bootstrap.js +71 -0
  351. package/dist/cli/runtime-watcher-bootstrap.d.ts +15 -0
  352. package/dist/cli/runtime-watcher-bootstrap.js +30 -0
  353. package/dist/cli/session-context.d.ts +32 -0
  354. package/dist/cli/session-context.js +15 -0
  355. package/dist/cli/session-coordinator.d.ts +22 -0
  356. package/dist/cli/session-coordinator.js +47 -0
  357. package/dist/cli/session-coordinator.test.d.ts +1 -0
  358. package/dist/cli/session-coordinator.test.js +61 -0
  359. package/dist/cli/session-history-coordinator.d.ts +8 -0
  360. package/dist/cli/session-history-coordinator.js +57 -0
  361. package/dist/cli/session-history-coordinator.test.d.ts +1 -0
  362. package/dist/cli/session-history-coordinator.test.js +39 -0
  363. package/dist/cli/session-query-service.d.ts +24 -0
  364. package/dist/cli/session-query-service.js +57 -0
  365. package/dist/cli/skill-meta-subturn-service.d.ts +26 -0
  366. package/dist/cli/skill-meta-subturn-service.js +93 -0
  367. package/dist/cli/skill-meta-tool-bootstrap.d.ts +34 -0
  368. package/dist/cli/skill-meta-tool-bootstrap.js +295 -0
  369. package/dist/cli/skill-meta-tool-bootstrap.test.d.ts +1 -0
  370. package/dist/cli/skill-meta-tool-bootstrap.test.js +42 -0
  371. package/dist/cli/skill-supporting-file.test.d.ts +1 -0
  372. package/dist/cli/skill-supporting-file.test.js +97 -0
  373. package/dist/cli/skills-query-service.d.ts +29 -0
  374. package/dist/cli/skills-query-service.js +38 -0
  375. package/dist/cli/stdio-acp-protocol-coordinator.d.ts +18 -0
  376. package/dist/cli/stdio-acp-protocol-coordinator.js +33 -0
  377. package/dist/cli/stdio-acp-request-host.d.ts +28 -0
  378. package/dist/cli/stdio-acp-request-host.js +82 -0
  379. package/dist/cli/stdio-acp-request-host.test.d.ts +1 -0
  380. package/dist/cli/stdio-acp-request-host.test.js +61 -0
  381. package/dist/cli/stdio-agent-session-bootstrap.d.ts +80 -0
  382. package/dist/cli/stdio-agent-session-bootstrap.js +74 -0
  383. package/dist/cli/stdio-rpc-handler-hosts.d.ts +50 -0
  384. package/dist/cli/stdio-rpc-handler-hosts.js +135 -0
  385. package/dist/cli/stdio-rpc-handler-hosts.test.d.ts +1 -0
  386. package/dist/cli/stdio-rpc-handler-hosts.test.js +10 -0
  387. package/dist/cli/stdio-runtime-bootstrap.d.ts +16 -0
  388. package/dist/cli/stdio-runtime-bootstrap.js +17 -0
  389. package/dist/cli/stdio-runtime-services.d.ts +36 -0
  390. package/dist/cli/stdio-runtime-services.js +53 -0
  391. package/dist/cli/stdio-server.architecture.test.d.ts +1 -0
  392. package/dist/cli/stdio-server.architecture.test.js +18 -0
  393. package/dist/cli/stdio-server.contract.test.d.ts +1 -0
  394. package/dist/cli/stdio-server.contract.test.js +96 -0
  395. package/dist/cli/stdio-server.d.ts +211 -0
  396. package/dist/cli/stdio-server.js +731 -0
  397. package/dist/cli/stdio-session-runtime-coordinator.d.ts +19 -0
  398. package/dist/cli/stdio-session-runtime-coordinator.js +21 -0
  399. package/dist/cli/test-support/tool-catalog-fixture.d.ts +3 -0
  400. package/dist/cli/test-support/tool-catalog-fixture.js +98 -0
  401. package/dist/cli/tool-bootstrap-core-registration.d.ts +30 -0
  402. package/dist/cli/tool-bootstrap-core-registration.js +555 -0
  403. package/dist/cli/tool-bootstrap-media-registration.d.ts +8 -0
  404. package/dist/cli/tool-bootstrap-media-registration.js +348 -0
  405. package/dist/cli/tool-bootstrap-paths.d.ts +7 -0
  406. package/dist/cli/tool-bootstrap-paths.js +17 -0
  407. package/dist/cli/tool-bootstrap-providers.d.ts +3 -0
  408. package/dist/cli/tool-bootstrap-providers.js +10 -0
  409. package/dist/cli/tool-bootstrap-web-registration.d.ts +13 -0
  410. package/dist/cli/tool-bootstrap-web-registration.js +144 -0
  411. package/dist/cli/tool-bootstrap-workflow-registration.d.ts +7 -0
  412. package/dist/cli/tool-bootstrap-workflow-registration.js +65 -0
  413. package/dist/cli/tool-bootstrap.background-exec.test.d.ts +1 -0
  414. package/dist/cli/tool-bootstrap.background-exec.test.js +83 -0
  415. package/dist/cli/tool-bootstrap.cwd.test.d.ts +1 -0
  416. package/dist/cli/tool-bootstrap.cwd.test.js +37 -0
  417. package/dist/cli/tool-bootstrap.d.ts +63 -0
  418. package/dist/cli/tool-bootstrap.instructions.test.d.ts +1 -0
  419. package/dist/cli/tool-bootstrap.instructions.test.js +37 -0
  420. package/dist/cli/tool-bootstrap.js +255 -0
  421. package/dist/cli/tool-bootstrap.media-provider-alias.test.d.ts +1 -0
  422. package/dist/cli/tool-bootstrap.media-provider-alias.test.js +90 -0
  423. package/dist/cli/tool-bootstrap.test.d.ts +1 -0
  424. package/dist/cli/tool-bootstrap.test.js +94 -0
  425. package/dist/cli/tool-catalog.d.ts +4 -0
  426. package/dist/cli/tool-catalog.js +14 -0
  427. package/dist/cli/tool-invoker-factory.d.ts +12 -0
  428. package/dist/cli/tool-invoker-factory.js +45 -0
  429. package/dist/cli/tool-registration-modules.contract.test.d.ts +1 -0
  430. package/dist/cli/tool-registration-modules.contract.test.js +75 -0
  431. package/dist/cli/tool-registry-adapter.d.ts +5 -0
  432. package/dist/cli/tool-registry-adapter.js +27 -0
  433. package/dist/cli/tool-result-processor.d.ts +14 -0
  434. package/dist/cli/tool-result-processor.js +83 -0
  435. package/dist/cli/tool-result-processor.test.d.ts +1 -0
  436. package/dist/cli/tool-result-processor.test.js +69 -0
  437. package/dist/cli/transport.d.ts +30 -0
  438. package/dist/cli/transport.js +68 -0
  439. package/dist/cli/tunable-store.d.ts +26 -0
  440. package/dist/cli/tunable-store.js +105 -0
  441. package/dist/cli/turn-ask-user-setup.d.ts +24 -0
  442. package/dist/cli/turn-ask-user-setup.js +46 -0
  443. package/dist/cli/turn-ask-user-setup.test.d.ts +1 -0
  444. package/dist/cli/turn-ask-user-setup.test.js +39 -0
  445. package/dist/cli/turn-core.d.ts +57 -0
  446. package/dist/cli/turn-core.js +58 -0
  447. package/dist/cli/turn-event-forwarder.d.ts +10 -0
  448. package/dist/cli/turn-event-forwarder.js +136 -0
  449. package/dist/cli/turn-lifecycle.d.ts +19 -0
  450. package/dist/cli/turn-lifecycle.js +53 -0
  451. package/dist/cli/turn-lifecycle.test.d.ts +1 -0
  452. package/dist/cli/turn-lifecycle.test.js +32 -0
  453. package/dist/cli/turn-media-setup.d.ts +19 -0
  454. package/dist/cli/turn-media-setup.js +71 -0
  455. package/dist/cli/turn-media-setup.test.d.ts +1 -0
  456. package/dist/cli/turn-media-setup.test.js +280 -0
  457. package/dist/cli/turn-permission-sync.d.ts +6 -0
  458. package/dist/cli/turn-permission-sync.js +7 -0
  459. package/dist/cli/turn-permission-sync.test.d.ts +1 -0
  460. package/dist/cli/turn-permission-sync.test.js +20 -0
  461. package/dist/cli/turn-project-router.d.ts +22 -0
  462. package/dist/cli/turn-project-router.js +141 -0
  463. package/dist/cli/turn-project-router.test.d.ts +1 -0
  464. package/dist/cli/turn-project-router.test.js +79 -0
  465. package/dist/cli/turn-skill-autopersist.d.ts +47 -0
  466. package/dist/cli/turn-skill-autopersist.js +262 -0
  467. package/dist/cli/turn-skill-autopersist.test.d.ts +1 -0
  468. package/dist/cli/turn-skill-autopersist.test.js +222 -0
  469. package/dist/cli/turn-suggestion-generator.d.ts +15 -0
  470. package/dist/cli/turn-suggestion-generator.js +34 -0
  471. package/dist/cli/workflow-host-adapter.d.ts +29 -0
  472. package/dist/cli/workflow-host-adapter.js +15 -0
  473. package/dist/cli/workflow-host-adapter.test.d.ts +1 -0
  474. package/dist/cli/workflow-host-adapter.test.js +35 -0
  475. package/dist/cli.js +312 -308
  476. package/dist/config/config.d.ts +17 -0
  477. package/dist/config/config.js +21 -0
  478. package/dist/contracts/fire-hook.d.ts +14 -0
  479. package/dist/contracts/fire-hook.js +14 -0
  480. package/dist/contracts/fire-hook.test.d.ts +1 -0
  481. package/dist/contracts/fire-hook.test.js +34 -0
  482. package/dist/contracts/hooks.d.ts +186 -0
  483. package/dist/contracts/hooks.js +7 -0
  484. package/dist/contracts/index.d.ts +4 -0
  485. package/dist/contracts/index.js +4 -0
  486. package/dist/index.d.ts +15 -0
  487. package/dist/index.js +15 -1265
  488. package/dist/orchestration/agent-instance.d.ts +84 -0
  489. package/dist/orchestration/agent-instance.js +535 -0
  490. package/dist/orchestration/context/context-collapse.d.ts +58 -0
  491. package/dist/orchestration/context/context-collapse.js +134 -0
  492. package/dist/orchestration/context/reactive-compact.d.ts +73 -0
  493. package/dist/orchestration/context/reactive-compact.js +78 -0
  494. package/dist/orchestration/context/turn-loop-guard.d.ts +86 -0
  495. package/dist/orchestration/context/turn-loop-guard.js +100 -0
  496. package/dist/orchestration/dag-scheduler.d.ts +167 -0
  497. package/dist/orchestration/dag-scheduler.js +546 -0
  498. package/dist/orchestration/error-handling/error-classification.d.ts +3 -0
  499. package/dist/orchestration/error-handling/error-classification.js +35 -0
  500. package/dist/orchestration/error-handling/failover-classification.d.ts +8 -0
  501. package/dist/orchestration/error-handling/failover-classification.js +381 -0
  502. package/dist/orchestration/error-handling/retry-loop.d.ts +69 -0
  503. package/dist/orchestration/error-handling/retry-loop.js +96 -0
  504. package/dist/orchestration/index.d.ts +15 -0
  505. package/dist/orchestration/index.js +18 -0
  506. package/dist/orchestration/product-budget.d.ts +56 -0
  507. package/dist/orchestration/product-budget.js +112 -0
  508. package/dist/orchestration/product-checkpoint.d.ts +46 -0
  509. package/dist/orchestration/product-checkpoint.js +74 -0
  510. package/dist/orchestration/product-dag-mutation-applier.d.ts +10 -0
  511. package/dist/orchestration/product-dag-mutation-applier.js +91 -0
  512. package/dist/orchestration/product-persistence.d.ts +35 -0
  513. package/dist/orchestration/product-persistence.js +55 -0
  514. package/dist/orchestration/product-planner.d.ts +146 -0
  515. package/dist/orchestration/product-planner.js +379 -0
  516. package/dist/orchestration/product-run-coordinator.d.ts +31 -0
  517. package/dist/orchestration/product-run-coordinator.js +31 -0
  518. package/dist/orchestration/product-worktree.d.ts +12 -0
  519. package/dist/orchestration/product-worktree.js +69 -0
  520. package/dist/orchestration/skill-improvement.d.ts +129 -0
  521. package/dist/orchestration/skill-improvement.js +243 -0
  522. package/dist/orchestration/solo-evaluator.d.ts +124 -0
  523. package/dist/orchestration/solo-evaluator.js +611 -0
  524. package/dist/orchestration/solo-persistence.d.ts +48 -0
  525. package/dist/orchestration/solo-persistence.js +67 -0
  526. package/dist/orchestration/solo-spec-builder.d.ts +48 -0
  527. package/dist/orchestration/solo-spec-builder.js +139 -0
  528. package/dist/orchestration/subagent/agent-registry.d.ts +46 -0
  529. package/dist/orchestration/subagent/agent-registry.js +129 -0
  530. package/dist/orchestration/subagent/fork-subagent.d.ts +100 -0
  531. package/dist/orchestration/subagent/fork-subagent.js +101 -0
  532. package/dist/orchestration/subagent/task-types.d.ts +1 -0
  533. package/dist/orchestration/subagent/task-types.js +1 -0
  534. package/dist/orchestration/tool-cascade.d.ts +49 -0
  535. package/dist/orchestration/tool-cascade.js +86 -0
  536. package/dist/orchestration/tool-loop/conversation-repair.d.ts +61 -0
  537. package/dist/orchestration/tool-loop/conversation-repair.js +429 -0
  538. package/dist/orchestration/tool-loop/tool-choice-policy.d.ts +54 -0
  539. package/dist/orchestration/tool-loop/tool-choice-policy.js +164 -0
  540. package/dist/orchestration/tool-loop/tool-loop-state.d.ts +50 -0
  541. package/dist/orchestration/tool-loop/tool-loop-state.js +133 -0
  542. package/dist/orchestration/tool-loop/tool-schema.d.ts +46 -0
  543. package/dist/orchestration/tool-loop/tool-schema.js +208 -0
  544. package/dist/orchestration/workflow/budget-permission-gate.d.ts +85 -0
  545. package/dist/orchestration/workflow/budget-permission-gate.js +134 -0
  546. package/dist/orchestration/workflow/builtin-executors.d.ts +18 -0
  547. package/dist/orchestration/workflow/builtin-executors.js +191 -0
  548. package/dist/orchestration/workflow/capability-catalog.d.ts +64 -0
  549. package/dist/orchestration/workflow/capability-catalog.js +166 -0
  550. package/dist/orchestration/workflow/cron-schedule.d.ts +37 -0
  551. package/dist/orchestration/workflow/cron-schedule.js +199 -0
  552. package/dist/orchestration/workflow/data-item.d.ts +39 -0
  553. package/dist/orchestration/workflow/data-item.js +52 -0
  554. package/dist/orchestration/workflow/expression.d.ts +60 -0
  555. package/dist/orchestration/workflow/expression.js +474 -0
  556. package/dist/orchestration/workflow/host-executors.d.ts +15 -0
  557. package/dist/orchestration/workflow/host-executors.js +207 -0
  558. package/dist/orchestration/workflow/n8n-expression.d.ts +48 -0
  559. package/dist/orchestration/workflow/n8n-expression.js +95 -0
  560. package/dist/orchestration/workflow/n8n-import.d.ts +68 -0
  561. package/dist/orchestration/workflow/n8n-import.js +319 -0
  562. package/dist/orchestration/workflow/node-registry.d.ts +19 -0
  563. package/dist/orchestration/workflow/node-registry.js +45 -0
  564. package/dist/orchestration/workflow/node-schema.d.ts +232 -0
  565. package/dist/orchestration/workflow/node-schema.js +29 -0
  566. package/dist/orchestration/workflow/qla-executor-host.d.ts +77 -0
  567. package/dist/orchestration/workflow/qla-executor-host.js +124 -0
  568. package/dist/orchestration/workflow/run-checkpoint-store.d.ts +53 -0
  569. package/dist/orchestration/workflow/run-checkpoint-store.js +59 -0
  570. package/dist/orchestration/workflow/run-history-store.d.ts +65 -0
  571. package/dist/orchestration/workflow/run-history-store.js +104 -0
  572. package/dist/orchestration/workflow/trigger-validation.d.ts +22 -0
  573. package/dist/orchestration/workflow/trigger-validation.js +241 -0
  574. package/dist/orchestration/workflow/workflow-audit-store.d.ts +31 -0
  575. package/dist/orchestration/workflow/workflow-audit-store.js +55 -0
  576. package/dist/orchestration/workflow/workflow-bundle.d.ts +65 -0
  577. package/dist/orchestration/workflow/workflow-bundle.js +168 -0
  578. package/dist/orchestration/workflow/workflow-controller.d.ts +219 -0
  579. package/dist/orchestration/workflow/workflow-controller.js +522 -0
  580. package/dist/orchestration/workflow/workflow-patch.d.ts +116 -0
  581. package/dist/orchestration/workflow/workflow-patch.js +369 -0
  582. package/dist/orchestration/workflow/workflow-render.d.ts +41 -0
  583. package/dist/orchestration/workflow/workflow-render.js +108 -0
  584. package/dist/orchestration/workflow/workflow-runtime.d.ts +171 -0
  585. package/dist/orchestration/workflow/workflow-runtime.js +474 -0
  586. package/dist/orchestration/workflow/workflow-scheduler.d.ts +111 -0
  587. package/dist/orchestration/workflow/workflow-scheduler.js +230 -0
  588. package/dist/orchestration/workflow/workflow-service.d.ts +14 -0
  589. package/dist/orchestration/workflow/workflow-service.js +18 -0
  590. package/dist/orchestration/workflow/workflow-store.d.ts +81 -0
  591. package/dist/orchestration/workflow/workflow-store.js +123 -0
  592. package/dist/orchestration/workflow/workflow-trigger.d.ts +35 -0
  593. package/dist/orchestration/workflow/workflow-trigger.js +1 -0
  594. package/dist/orchestration/workflow-chat-builder.d.ts +57 -0
  595. package/dist/orchestration/workflow-chat-builder.js +202 -0
  596. package/dist/permissions.d.ts +2 -0
  597. package/dist/permissions.js +1 -1
  598. package/dist/permissions.public-api.test.d.ts +1 -0
  599. package/dist/permissions.public-api.test.js +32 -0
  600. package/dist/pet-contracts.d.ts +1 -0
  601. package/dist/pet-contracts.js +1 -1
  602. package/dist/protocol/index.d.ts +7 -0
  603. package/dist/protocol/index.js +7 -0
  604. package/dist/protocol/methods.d.ts +1190 -0
  605. package/dist/protocol/methods.js +110 -0
  606. package/dist/protocol/notifications.d.ts +9 -0
  607. package/dist/protocol/notifications.js +9 -0
  608. package/dist/protocol/wire/acp-agent-management.d.ts +456 -0
  609. package/dist/protocol/wire/acp-agent-management.js +7 -0
  610. package/dist/protocol/wire/acp-protocol.d.ts +369 -0
  611. package/dist/protocol/wire/acp-protocol.js +120 -0
  612. package/dist/protocol/wire/agent-events.d.ts +32 -0
  613. package/dist/protocol/wire/agent-events.js +113 -0
  614. package/dist/protocol/wire/agent-methods.d.ts +564 -0
  615. package/dist/protocol/wire/agent-methods.js +11 -0
  616. package/dist/protocol/wire/agent-rpc.d.ts +100 -0
  617. package/dist/protocol/wire/agent-rpc.js +72 -0
  618. package/dist/protocol/wire/capability-manifest.d.ts +112 -0
  619. package/dist/protocol/wire/capability-manifest.js +149 -0
  620. package/dist/protocol/wire/capability-transport.d.ts +207 -0
  621. package/dist/protocol/wire/capability-transport.js +1 -0
  622. package/dist/protocol/wire/channel-ingress.d.ts +29 -0
  623. package/dist/protocol/wire/channel-ingress.js +1 -0
  624. package/dist/protocol/wire/channel.d.ts +89 -0
  625. package/dist/protocol/wire/channel.js +1 -0
  626. package/dist/protocol/wire/chat-types.d.ts +106 -0
  627. package/dist/protocol/wire/chat-types.js +7 -0
  628. package/dist/protocol/wire/checkpoint-runtime.d.ts +61 -0
  629. package/dist/protocol/wire/checkpoint-runtime.js +499 -0
  630. package/dist/protocol/wire/checkpoint.d.ts +72 -0
  631. package/dist/protocol/wire/checkpoint.js +12 -0
  632. package/dist/protocol/wire/execution.d.ts +391 -0
  633. package/dist/protocol/wire/execution.js +1 -0
  634. package/dist/protocol/wire/gateway-contract.d.ts +61 -0
  635. package/dist/protocol/wire/gateway-contract.js +236 -0
  636. package/dist/protocol/wire/gateway-contract.test.d.ts +1 -0
  637. package/dist/protocol/wire/gateway-contract.test.js +123 -0
  638. package/dist/protocol/wire/gateway-rpc.d.ts +652 -0
  639. package/dist/protocol/wire/gateway-rpc.js +58 -0
  640. package/dist/protocol/wire/gateway.d.ts +62 -0
  641. package/dist/protocol/wire/gateway.js +1 -0
  642. package/dist/protocol/wire/hook-protocol.d.ts +37 -0
  643. package/dist/protocol/wire/hook-protocol.js +2 -0
  644. package/dist/protocol/wire/index.d.ts +28 -0
  645. package/dist/protocol/wire/index.js +27 -0
  646. package/dist/protocol/wire/memory-provider-lifecycle.d.ts +82 -0
  647. package/dist/protocol/wire/memory-provider-lifecycle.js +24 -0
  648. package/dist/protocol/wire/notification-payloads.d.ts +918 -0
  649. package/dist/protocol/wire/notification-payloads.js +13 -0
  650. package/dist/protocol/wire/pet-contracts.d.ts +76 -0
  651. package/dist/protocol/wire/pet-contracts.js +23 -0
  652. package/dist/protocol/wire/provider-runtime-contract.d.ts +66 -0
  653. package/dist/protocol/wire/provider-runtime-contract.js +23 -0
  654. package/dist/protocol/wire/provider-runtime-core.d.ts +147 -0
  655. package/dist/protocol/wire/provider-runtime-core.js +488 -0
  656. package/dist/protocol/wire/provider-runtime-io.d.ts +20 -0
  657. package/dist/protocol/wire/provider-runtime-io.js +57 -0
  658. package/dist/protocol/wire/resource-manifest.d.ts +68 -0
  659. package/dist/protocol/wire/resource-manifest.js +174 -0
  660. package/dist/protocol/wire/session.d.ts +32 -0
  661. package/dist/protocol/wire/session.js +1 -0
  662. package/dist/protocol/wire/thread-protocol.d.ts +145 -0
  663. package/dist/protocol/wire/thread-protocol.js +13 -0
  664. package/dist/protocol/wire/transport.d.ts +57 -0
  665. package/dist/protocol/wire/transport.js +1 -0
  666. package/dist/protocol/wire/turn.d.ts +208 -0
  667. package/dist/protocol/wire/turn.js +1 -0
  668. package/dist/protocol/wire/web-capability.d.ts +54 -0
  669. package/dist/protocol/wire/web-capability.js +52 -0
  670. package/dist/runtime/community/community-consent-client.d.ts +142 -0
  671. package/dist/runtime/community/community-consent-client.js +381 -0
  672. package/dist/runtime/community/community-consent-client.test.d.ts +1 -0
  673. package/dist/runtime/community/community-consent-client.test.js +491 -0
  674. package/dist/runtime/community/community-desensitization-red-team-cli.d.ts +7 -0
  675. package/dist/runtime/community/community-desensitization-red-team-cli.js +43 -0
  676. package/dist/runtime/community/community-desensitization-red-team-cli.test.d.ts +1 -0
  677. package/dist/runtime/community/community-desensitization-red-team-cli.test.js +23 -0
  678. package/dist/runtime/community/community-desensitization.d.ts +29 -0
  679. package/dist/runtime/community/community-desensitization.js +81 -0
  680. package/dist/runtime/community/community-desensitization.test.d.ts +1 -0
  681. package/dist/runtime/community/community-desensitization.test.js +43 -0
  682. package/dist/runtime/community/community-discovery-cache.d.ts +24 -0
  683. package/dist/runtime/community/community-discovery-cache.js +52 -0
  684. package/dist/runtime/community/community-discovery-coordinator.d.ts +33 -0
  685. package/dist/runtime/community/community-discovery-coordinator.js +84 -0
  686. package/dist/runtime/community/community-discovery-coordinator.test.d.ts +1 -0
  687. package/dist/runtime/community/community-discovery-coordinator.test.js +97 -0
  688. package/dist/runtime/community/community-pet-publisher.d.ts +30 -0
  689. package/dist/runtime/community/community-pet-publisher.js +53 -0
  690. package/dist/runtime/community/community-pet-publisher.test.d.ts +1 -0
  691. package/dist/runtime/community/community-pet-publisher.test.js +53 -0
  692. package/dist/runtime/community/community-signal-reporter.d.ts +33 -0
  693. package/dist/runtime/community/community-signal-reporter.js +85 -0
  694. package/dist/runtime/community/community-signal-reporter.test.d.ts +1 -0
  695. package/dist/runtime/community/community-signal-reporter.test.js +100 -0
  696. package/dist/runtime/community/community-telemetry-metadata.d.ts +4 -0
  697. package/dist/runtime/community/community-telemetry-metadata.js +42 -0
  698. package/dist/runtime/community/community-telemetry-recorder.d.ts +6 -0
  699. package/dist/runtime/community/community-telemetry-recorder.js +31 -0
  700. package/dist/runtime/community/community-telemetry-types.d.ts +1 -0
  701. package/dist/runtime/community/community-telemetry-types.js +1 -0
  702. package/dist/runtime/config/tunable-defaults.d.ts +255 -0
  703. package/dist/runtime/config/tunable-defaults.js +293 -0
  704. package/dist/runtime/context/context-compression-strategies.d.ts +301 -0
  705. package/dist/runtime/context/context-compression-strategies.js +860 -0
  706. package/dist/runtime/execution/dream-agent.d.ts +260 -0
  707. package/dist/runtime/execution/dream-agent.js +974 -0
  708. package/dist/runtime/execution/dream-category-context.d.ts +47 -0
  709. package/dist/runtime/execution/dream-category-context.js +226 -0
  710. package/dist/runtime/execution/dream-lock.test.d.ts +1 -0
  711. package/dist/runtime/execution/dream-lock.test.js +54 -0
  712. package/dist/runtime/execution/fork-context.d.ts +14 -0
  713. package/dist/runtime/execution/fork-context.js +20 -0
  714. package/dist/runtime/execution/fork-context.test.d.ts +1 -0
  715. package/dist/runtime/execution/fork-context.test.js +101 -0
  716. package/dist/runtime/execution/forked-agent.d.ts +111 -0
  717. package/dist/runtime/execution/forked-agent.js +172 -0
  718. package/dist/runtime/execution/index.d.ts +7 -0
  719. package/dist/runtime/execution/index.js +8 -0
  720. package/dist/runtime/execution/memory-decay.d.ts +69 -0
  721. package/dist/runtime/execution/memory-decay.js +80 -0
  722. package/dist/runtime/execution/progress-tracker.d.ts +78 -0
  723. package/dist/runtime/execution/progress-tracker.js +107 -0
  724. package/dist/runtime/execution/streaming-tool-executor.d.ts +102 -0
  725. package/dist/runtime/execution/streaming-tool-executor.js +345 -0
  726. package/dist/runtime/execution/streaming-tool-executor.test.d.ts +1 -0
  727. package/dist/runtime/execution/streaming-tool-executor.test.js +49 -0
  728. package/dist/runtime/execution/tool-eligibility.d.ts +36 -0
  729. package/dist/runtime/execution/tool-eligibility.js +94 -0
  730. package/dist/runtime/execution/tool-eligibility.test.d.ts +1 -0
  731. package/dist/runtime/execution/tool-eligibility.test.js +96 -0
  732. package/dist/runtime/execution/tool-result-storage.d.ts +87 -0
  733. package/dist/runtime/execution/tool-result-storage.js +274 -0
  734. package/dist/runtime/hooks/context-compression.d.ts +61 -0
  735. package/dist/runtime/hooks/context-compression.js +334 -0
  736. package/dist/runtime/hooks/hook-registry.d.ts +12 -0
  737. package/dist/runtime/hooks/hook-registry.js +61 -0
  738. package/dist/runtime/hooks/hook-registry.test.d.ts +1 -0
  739. package/dist/runtime/hooks/hook-registry.test.js +51 -0
  740. package/dist/runtime/hooks/index.d.ts +4 -0
  741. package/dist/runtime/hooks/index.js +5 -0
  742. package/dist/runtime/hooks/memory-hooks.d.ts +75 -0
  743. package/dist/runtime/hooks/memory-hooks.js +356 -0
  744. package/dist/runtime/hooks/skill-recall-hooks.d.ts +37 -0
  745. package/dist/runtime/hooks/skill-recall-hooks.js +263 -0
  746. package/dist/runtime/hooks/skill-recall-hooks.test.d.ts +1 -0
  747. package/dist/runtime/hooks/skill-recall-hooks.test.js +52 -0
  748. package/dist/runtime/index.d.ts +5 -0
  749. package/dist/runtime/index.js +13 -0
  750. package/dist/runtime/infra/acp-detector.d.ts +133 -0
  751. package/dist/runtime/infra/acp-detector.js +862 -0
  752. package/dist/runtime/infra/acp-detector.test.d.ts +1 -0
  753. package/dist/runtime/infra/acp-detector.test.js +164 -0
  754. package/dist/runtime/infra/acp-host-handler.d.ts +31 -0
  755. package/dist/runtime/infra/acp-host-handler.js +123 -0
  756. package/dist/runtime/infra/acp-host-handler.test.d.ts +1 -0
  757. package/dist/runtime/infra/acp-host-handler.test.js +64 -0
  758. package/dist/runtime/infra/acp-protocol-adapter.d.ts +146 -0
  759. package/dist/runtime/infra/acp-protocol-adapter.js +382 -0
  760. package/dist/runtime/infra/acp-protocol-adapter.test.d.ts +1 -0
  761. package/dist/runtime/infra/acp-protocol-adapter.test.js +180 -0
  762. package/dist/runtime/infra/acp-usage-tracker.d.ts +46 -0
  763. package/dist/runtime/infra/acp-usage-tracker.js +92 -0
  764. package/dist/runtime/infra/agent-catalog.test.d.ts +1 -0
  765. package/dist/runtime/infra/agent-catalog.test.js +174 -0
  766. package/dist/runtime/infra/agent-config-store.d.ts +30 -0
  767. package/dist/runtime/infra/agent-config-store.js +115 -0
  768. package/dist/runtime/infra/agent-install-runner.d.ts +57 -0
  769. package/dist/runtime/infra/agent-install-runner.js +123 -0
  770. package/dist/runtime/infra/agent-install-runner.test.d.ts +1 -0
  771. package/dist/runtime/infra/agent-install-runner.test.js +103 -0
  772. package/dist/runtime/infra/agent-paths.d.ts +67 -0
  773. package/dist/runtime/infra/agent-paths.js +167 -0
  774. package/dist/runtime/infra/agent-paths.test.d.ts +1 -0
  775. package/dist/runtime/infra/agent-paths.test.js +49 -0
  776. package/dist/runtime/infra/agent-process.d.ts +299 -0
  777. package/dist/runtime/infra/agent-process.js +1318 -0
  778. package/dist/runtime/infra/background-tasks.d.ts +115 -0
  779. package/dist/runtime/infra/background-tasks.js +249 -0
  780. package/dist/runtime/infra/background-tasks.test.d.ts +1 -0
  781. package/dist/runtime/infra/background-tasks.test.js +242 -0
  782. package/dist/runtime/infra/checkpoint-backend.d.ts +8 -0
  783. package/dist/runtime/infra/checkpoint-backend.js +110 -0
  784. package/dist/runtime/infra/cleanup-registry.d.ts +23 -0
  785. package/dist/runtime/infra/cleanup-registry.js +34 -0
  786. package/dist/runtime/infra/default-path-service.d.ts +33 -0
  787. package/dist/runtime/infra/default-path-service.js +76 -0
  788. package/dist/runtime/infra/default-path-service.test.d.ts +1 -0
  789. package/dist/runtime/infra/default-path-service.test.js +31 -0
  790. package/dist/runtime/infra/disk-storage.d.ts +20 -0
  791. package/dist/runtime/infra/disk-storage.js +64 -0
  792. package/dist/runtime/infra/external-agent-approvals.d.ts +41 -0
  793. package/dist/runtime/infra/external-agent-approvals.js +101 -0
  794. package/dist/runtime/infra/external-agent-approvals.test.d.ts +1 -0
  795. package/dist/runtime/infra/external-agent-approvals.test.js +99 -0
  796. package/dist/runtime/infra/external-agent-pool.d.ts +54 -0
  797. package/dist/runtime/infra/external-agent-pool.js +0 -0
  798. package/dist/runtime/infra/external-agent-pool.test.d.ts +1 -0
  799. package/dist/runtime/infra/external-agent-pool.test.js +102 -0
  800. package/dist/runtime/infra/file-watcher.d.ts +72 -0
  801. package/dist/runtime/infra/file-watcher.js +154 -0
  802. package/dist/runtime/infra/index.d.ts +19 -0
  803. package/dist/runtime/infra/index.js +19 -0
  804. package/dist/runtime/infra/key-injection.test.d.ts +1 -0
  805. package/dist/runtime/infra/key-injection.test.js +88 -0
  806. package/dist/runtime/infra/key-pool.d.ts +122 -0
  807. package/dist/runtime/infra/key-pool.js +378 -0
  808. package/dist/runtime/infra/key-pool.test.d.ts +1 -0
  809. package/dist/runtime/infra/key-pool.test.js +36 -0
  810. package/dist/runtime/infra/llmrouter-catalog.d.ts +84 -0
  811. package/dist/runtime/infra/llmrouter-catalog.js +287 -0
  812. package/dist/runtime/infra/llmrouter-catalog.test.d.ts +1 -0
  813. package/dist/runtime/infra/llmrouter-catalog.test.js +80 -0
  814. package/dist/runtime/infra/llmrouter-zero-config.test.d.ts +1 -0
  815. package/dist/runtime/infra/llmrouter-zero-config.test.js +64 -0
  816. package/dist/runtime/infra/mcp-bridge.d.ts +166 -0
  817. package/dist/runtime/infra/mcp-bridge.js +161 -0
  818. package/dist/runtime/infra/media-persistence.d.ts +87 -0
  819. package/dist/runtime/infra/media-persistence.js +278 -0
  820. package/dist/runtime/infra/migrate-project-skills.d.ts +21 -0
  821. package/dist/runtime/infra/migrate-project-skills.js +131 -0
  822. package/dist/runtime/infra/migrate-project-skills.test.d.ts +1 -0
  823. package/dist/runtime/infra/migrate-project-skills.test.js +69 -0
  824. package/dist/runtime/infra/model-id-translator.d.ts +22 -0
  825. package/dist/runtime/infra/model-id-translator.js +74 -0
  826. package/dist/runtime/infra/model-registry.d.ts +148 -0
  827. package/dist/runtime/infra/model-registry.js +529 -0
  828. package/dist/runtime/infra/model-registry.test.d.ts +1 -0
  829. package/dist/runtime/infra/model-registry.test.js +253 -0
  830. package/dist/runtime/infra/process-config-port.d.ts +2 -0
  831. package/dist/runtime/infra/process-config-port.js +5 -0
  832. package/dist/runtime/infra/profile-storage.test.d.ts +1 -0
  833. package/dist/runtime/infra/profile-storage.test.js +41 -0
  834. package/dist/runtime/infra/project-instructions-store.d.ts +30 -0
  835. package/dist/runtime/infra/project-instructions-store.js +124 -0
  836. package/dist/runtime/infra/project-skill-manifest.d.ts +32 -0
  837. package/dist/runtime/infra/project-skill-manifest.js +160 -0
  838. package/dist/runtime/infra/project-skill-manifest.test.d.ts +1 -0
  839. package/dist/runtime/infra/project-skill-manifest.test.js +42 -0
  840. package/dist/runtime/infra/project-store.d.ts +48 -0
  841. package/dist/runtime/infra/project-store.js +284 -0
  842. package/dist/runtime/infra/secure-storage.d.ts +81 -0
  843. package/dist/runtime/infra/secure-storage.js +117 -0
  844. package/dist/runtime/infra/skill-injector.d.ts +59 -0
  845. package/dist/runtime/infra/skill-injector.js +155 -0
  846. package/dist/runtime/infra/skill-injector.test.d.ts +1 -0
  847. package/dist/runtime/infra/skill-injector.test.js +9 -0
  848. package/dist/runtime/infra/skill-resolver.d.ts +51 -0
  849. package/dist/runtime/infra/skill-resolver.js +109 -0
  850. package/dist/runtime/infra/skill-resolver.test.d.ts +1 -0
  851. package/dist/runtime/infra/skill-resolver.test.js +72 -0
  852. package/dist/runtime/infra/task-runtime.d.ts +71 -0
  853. package/dist/runtime/infra/task-runtime.js +181 -0
  854. package/dist/runtime/infra/token-budget.d.ts +92 -0
  855. package/dist/runtime/infra/token-budget.js +170 -0
  856. package/dist/runtime/infra/worktree-backend.d.ts +86 -0
  857. package/dist/runtime/infra/worktree-backend.js +522 -0
  858. package/dist/runtime/memory/categories.d.ts +5 -0
  859. package/dist/runtime/memory/categories.js +4 -0
  860. package/dist/runtime/memory/find-relevant-memories.d.ts +70 -0
  861. package/dist/runtime/memory/find-relevant-memories.js +270 -0
  862. package/dist/runtime/memory/implicit-extraction.d.ts +58 -0
  863. package/dist/runtime/memory/implicit-extraction.js +187 -0
  864. package/dist/runtime/memory/recall-category-filter.d.ts +54 -0
  865. package/dist/runtime/memory/recall-category-filter.js +215 -0
  866. package/dist/runtime/permission-model.d.ts +19 -0
  867. package/dist/runtime/permission-model.js +24 -0
  868. package/dist/runtime/permission-model.test.d.ts +1 -0
  869. package/dist/runtime/permission-model.test.js +32 -0
  870. package/dist/runtime/pet/hatch-pet-runner.d.ts +18 -0
  871. package/dist/runtime/pet/hatch-pet-runner.js +120 -0
  872. package/dist/runtime/pet/hatch-pet-runner.test.d.ts +1 -0
  873. package/dist/runtime/pet/hatch-pet-runner.test.js +28 -0
  874. package/dist/runtime/pet/index.d.ts +18 -0
  875. package/dist/runtime/pet/index.js +9 -0
  876. package/dist/runtime/pet/pet-community-assets.d.ts +13 -0
  877. package/dist/runtime/pet/pet-community-assets.js +106 -0
  878. package/dist/runtime/pet/pet-file-loader.d.ts +5 -0
  879. package/dist/runtime/pet/pet-file-loader.js +11 -0
  880. package/dist/runtime/pet/pet-growth-engine.d.ts +2 -0
  881. package/dist/runtime/pet/pet-growth-engine.js +1 -0
  882. package/dist/runtime/pet/pet-profile-service.d.ts +91 -0
  883. package/dist/runtime/pet/pet-profile-service.js +296 -0
  884. package/dist/runtime/pet/pet-profile-service.test.d.ts +1 -0
  885. package/dist/runtime/pet/pet-profile-service.test.js +171 -0
  886. package/dist/runtime/pet/pet-reaction-engine.d.ts +11 -0
  887. package/dist/runtime/pet/pet-reaction-engine.js +11 -0
  888. package/dist/runtime/pet/pet-reaction-engine.test.d.ts +1 -0
  889. package/dist/runtime/pet/pet-reaction-engine.test.js +12 -0
  890. package/dist/runtime/pet/pet-soul-service.d.ts +21 -0
  891. package/dist/runtime/pet/pet-soul-service.js +63 -0
  892. package/dist/runtime/pet/pet-soul-service.test.d.ts +1 -0
  893. package/dist/runtime/pet/pet-soul-service.test.js +115 -0
  894. package/dist/runtime/pet/pet-types.d.ts +1 -0
  895. package/dist/runtime/pet/pet-types.js +1 -0
  896. package/dist/runtime/pet/petdex-asset.d.ts +32 -0
  897. package/dist/runtime/pet/petdex-asset.js +242 -0
  898. package/dist/runtime/pet/petdex-asset.test.d.ts +1 -0
  899. package/dist/runtime/pet/petdex-asset.test.js +257 -0
  900. package/dist/runtime/pet/petdex-forge-service.d.ts +19 -0
  901. package/dist/runtime/pet/petdex-forge-service.js +820 -0
  902. package/dist/runtime/pet/petdex-forge-service.test.d.ts +1 -0
  903. package/dist/runtime/pet/petdex-forge-service.test.js +142 -0
  904. package/dist/runtime/ports/agent-execution-contracts.d.ts +182 -0
  905. package/dist/runtime/ports/agent-execution-contracts.js +1 -0
  906. package/dist/runtime/ports/agent-runtime-ports.d.ts +76 -0
  907. package/dist/runtime/ports/agent-runtime-ports.js +1 -0
  908. package/dist/runtime/ports/checkpoint-contracts.d.ts +19 -0
  909. package/dist/runtime/ports/checkpoint-contracts.js +1 -0
  910. package/dist/runtime/ports/config-port.d.ts +4 -0
  911. package/dist/runtime/ports/config-port.js +5 -0
  912. package/dist/runtime/ports/index.d.ts +19 -0
  913. package/dist/runtime/ports/index.js +5 -0
  914. package/dist/runtime/ports/memory-provider.d.ts +181 -0
  915. package/dist/runtime/ports/memory-provider.js +1 -0
  916. package/dist/runtime/ports/memory-recall-source.d.ts +3 -0
  917. package/dist/runtime/ports/memory-recall-source.js +1 -0
  918. package/dist/runtime/ports/memory-writer.d.ts +21 -0
  919. package/dist/runtime/ports/memory-writer.js +1 -0
  920. package/dist/runtime/ports/model-transport-contracts.d.ts +125 -0
  921. package/dist/runtime/ports/model-transport-contracts.js +9 -0
  922. package/dist/runtime/ports/path-service.d.ts +31 -0
  923. package/dist/runtime/ports/path-service.js +1 -0
  924. package/dist/runtime/ports/permission-contracts.d.ts +128 -0
  925. package/dist/runtime/ports/permission-contracts.js +5 -0
  926. package/dist/runtime/ports/project-memory-store.d.ts +44 -0
  927. package/dist/runtime/ports/project-memory-store.js +1 -0
  928. package/dist/runtime/ports/source-provider.d.ts +39 -0
  929. package/dist/runtime/ports/source-provider.js +4 -0
  930. package/dist/runtime/ports/tool-call-contracts.d.ts +16 -0
  931. package/dist/runtime/ports/tool-call-contracts.js +13 -0
  932. package/dist/runtime/ports/tool-contracts.d.ts +87 -0
  933. package/dist/runtime/ports/tool-contracts.js +3 -0
  934. package/dist/runtime/ports/tool-risk.d.ts +7 -0
  935. package/dist/runtime/ports/tool-risk.js +16 -0
  936. package/dist/runtime/ports/web-search-contracts.d.ts +21 -0
  937. package/dist/runtime/ports/web-search-contracts.js +1 -0
  938. package/dist/runtime/ports/worktree-contracts.d.ts +22 -0
  939. package/dist/runtime/ports/worktree-contracts.js +1 -0
  940. package/dist/runtime/prompt/environment-context.d.ts +60 -0
  941. package/dist/runtime/prompt/environment-context.js +410 -0
  942. package/dist/runtime/prompt/environment-context.test.d.ts +1 -0
  943. package/dist/runtime/prompt/environment-context.test.js +75 -0
  944. package/dist/runtime/prompt/fresh-workspace-evidence.d.ts +21 -0
  945. package/dist/runtime/prompt/fresh-workspace-evidence.js +224 -0
  946. package/dist/runtime/prompt/fresh-workspace-evidence.test.d.ts +1 -0
  947. package/dist/runtime/prompt/fresh-workspace-evidence.test.js +163 -0
  948. package/dist/runtime/prompt/index.d.ts +5 -0
  949. package/dist/runtime/prompt/index.js +6 -0
  950. package/dist/runtime/prompt/instruction-loader.d.ts +70 -0
  951. package/dist/runtime/prompt/instruction-loader.js +515 -0
  952. package/dist/runtime/prompt/instruction-loader.test.d.ts +1 -0
  953. package/dist/runtime/prompt/instruction-loader.test.js +64 -0
  954. package/dist/runtime/prompt/prompt-policy.d.ts +12 -0
  955. package/dist/runtime/prompt/prompt-policy.js +40 -0
  956. package/dist/runtime/prompt/system-prompt-sections.d.ts +65 -0
  957. package/dist/runtime/prompt/system-prompt-sections.js +93 -0
  958. package/dist/runtime/prompt/task-domain.d.ts +82 -0
  959. package/dist/runtime/prompt/task-domain.js +248 -0
  960. package/dist/runtime/sandbox/index.d.ts +2 -0
  961. package/dist/runtime/sandbox/index.js +2 -0
  962. package/dist/runtime/sandbox/skill-sandbox.d.ts +53 -0
  963. package/dist/runtime/sandbox/skill-sandbox.js +93 -0
  964. package/dist/runtime/sandbox/skill-sandbox.test.d.ts +1 -0
  965. package/dist/runtime/sandbox/skill-sandbox.test.js +172 -0
  966. package/dist/runtime/sandbox/windows-skill-sandbox.d.ts +78 -0
  967. package/dist/runtime/sandbox/windows-skill-sandbox.js +128 -0
  968. package/dist/runtime/session/group-session-split.d.ts +38 -0
  969. package/dist/runtime/session/group-session-split.js +99 -0
  970. package/dist/runtime/session/index.d.ts +4 -0
  971. package/dist/runtime/session/index.js +5 -0
  972. package/dist/runtime/session/session-catalog.d.ts +4 -0
  973. package/dist/runtime/session/session-catalog.js +59 -0
  974. package/dist/runtime/session/session-locator.d.ts +26 -0
  975. package/dist/runtime/session/session-locator.js +91 -0
  976. package/dist/runtime/session/session-locator.test.d.ts +1 -0
  977. package/dist/runtime/session/session-locator.test.js +59 -0
  978. package/dist/runtime/session/session-metadata-store.d.ts +8 -0
  979. package/dist/runtime/session/session-metadata-store.js +167 -0
  980. package/dist/runtime/session/session-paths.d.ts +9 -0
  981. package/dist/runtime/session/session-paths.js +27 -0
  982. package/dist/runtime/session/session-persistence.d.ts +16 -0
  983. package/dist/runtime/session/session-persistence.js +16 -0
  984. package/dist/runtime/session/session-persistence.test.d.ts +1 -0
  985. package/dist/runtime/session/session-persistence.test.js +237 -0
  986. package/dist/runtime/session/session-resume.d.ts +4 -0
  987. package/dist/runtime/session/session-resume.js +60 -0
  988. package/dist/runtime/session/session-schema.d.ts +10 -0
  989. package/dist/runtime/session/session-schema.js +35 -0
  990. package/dist/runtime/session/session-state.d.ts +96 -0
  991. package/dist/runtime/session/session-state.js +180 -0
  992. package/dist/runtime/session/session-summary.d.ts +5 -0
  993. package/dist/runtime/session/session-summary.js +67 -0
  994. package/dist/runtime/session/session-transcript-store.d.ts +13 -0
  995. package/dist/runtime/session/session-transcript-store.js +109 -0
  996. package/dist/runtime/session/session-types.d.ts +77 -0
  997. package/dist/runtime/session/session-types.js +1 -0
  998. package/dist/runtime/session/session-write-queue.d.ts +2 -0
  999. package/dist/runtime/session/session-write-queue.js +48 -0
  1000. package/dist/runtime/tasks/task-types.d.ts +166 -0
  1001. package/dist/runtime/tasks/task-types.js +64 -0
  1002. package/dist/server/search-svc.d.ts +1 -0
  1003. package/dist/server/search-svc.js +113 -0
  1004. package/dist/skills/index.d.ts +6 -0
  1005. package/dist/skills/index.js +5 -0
  1006. package/dist/skills/mcp/index.d.ts +1 -0
  1007. package/dist/skills/mcp/index.js +3 -0
  1008. package/dist/skills/mcp/mcp-manager.d.ts +75 -0
  1009. package/dist/skills/mcp/mcp-manager.js +358 -0
  1010. package/dist/skills/mcp/mcp-tool-metadata.d.ts +18 -0
  1011. package/dist/skills/mcp/mcp-tool-metadata.js +48 -0
  1012. package/dist/skills/memory/categories.d.ts +1 -0
  1013. package/dist/skills/memory/categories.js +1 -0
  1014. package/dist/skills/memory/find-relevant-memories.d.ts +1 -0
  1015. package/dist/skills/memory/find-relevant-memories.js +1 -0
  1016. package/dist/skills/memory/implicit-extraction.d.ts +1 -0
  1017. package/dist/skills/memory/implicit-extraction.js +1 -0
  1018. package/dist/skills/memory/local-embedding.d.ts +80 -0
  1019. package/dist/skills/memory/local-embedding.js +210 -0
  1020. package/dist/skills/memory/local-memory-provider.d.ts +257 -0
  1021. package/dist/skills/memory/local-memory-provider.js +486 -0
  1022. package/dist/skills/memory/local-store-records.d.ts +184 -0
  1023. package/dist/skills/memory/local-store-records.js +1 -0
  1024. package/dist/skills/memory/local-store.d.ts +479 -0
  1025. package/dist/skills/memory/local-store.js +1022 -0
  1026. package/dist/skills/memory/memdir.d.ts +93 -0
  1027. package/dist/skills/memory/memdir.js +530 -0
  1028. package/dist/skills/memory/memory-attachment-store.d.ts +62 -0
  1029. package/dist/skills/memory/memory-attachment-store.js +0 -0
  1030. package/dist/skills/memory/memory-consolidation.d.ts +43 -0
  1031. package/dist/skills/memory/memory-consolidation.js +462 -0
  1032. package/dist/skills/memory/memory-db-path.d.ts +13 -0
  1033. package/dist/skills/memory/memory-db-path.js +27 -0
  1034. package/dist/skills/memory/memory-embedding-config.d.ts +31 -0
  1035. package/dist/skills/memory/memory-embedding-config.js +66 -0
  1036. package/dist/skills/memory/memory-provider-factory.d.ts +33 -0
  1037. package/dist/skills/memory/memory-provider-factory.js +79 -0
  1038. package/dist/skills/memory/memory-tool.d.ts +85 -0
  1039. package/dist/skills/memory/memory-tool.js +326 -0
  1040. package/dist/skills/memory/memory-vector-utils.d.ts +2 -0
  1041. package/dist/skills/memory/memory-vector-utils.js +19 -0
  1042. package/dist/skills/memory/recall-category-filter.d.ts +1 -0
  1043. package/dist/skills/memory/recall-category-filter.js +1 -0
  1044. package/dist/skills/memory/sqlite-memory-mappers.d.ts +6 -0
  1045. package/dist/skills/memory/sqlite-memory-mappers.js +104 -0
  1046. package/dist/skills/memory/sqlite-memory-schema.d.ts +3 -0
  1047. package/dist/skills/memory/sqlite-memory-schema.js +152 -0
  1048. package/dist/skills/permissions/bash-classifier.d.ts +30 -0
  1049. package/dist/skills/permissions/bash-classifier.js +174 -0
  1050. package/dist/skills/permissions/classifier-cache.d.ts +51 -0
  1051. package/dist/skills/permissions/classifier-cache.js +103 -0
  1052. package/dist/skills/permissions/community-sandbox-policy.d.ts +3 -0
  1053. package/dist/skills/permissions/community-sandbox-policy.js +233 -0
  1054. package/dist/skills/permissions/community-sandbox-red-team-cli.d.ts +7 -0
  1055. package/dist/skills/permissions/community-sandbox-red-team-cli.js +43 -0
  1056. package/dist/skills/permissions/community-sandbox-red-team.d.ts +32 -0
  1057. package/dist/skills/permissions/community-sandbox-red-team.js +221 -0
  1058. package/dist/skills/permissions/denial-audit-log.d.ts +52 -0
  1059. package/dist/skills/permissions/denial-audit-log.js +80 -0
  1060. package/dist/skills/permissions/denial-tracking.d.ts +42 -0
  1061. package/dist/skills/permissions/denial-tracking.js +60 -0
  1062. package/dist/skills/permissions/group-security-policy.d.ts +15 -0
  1063. package/dist/skills/permissions/group-security-policy.js +60 -0
  1064. package/dist/skills/permissions/hook-runner.d.ts +120 -0
  1065. package/dist/skills/permissions/hook-runner.js +545 -0
  1066. package/dist/skills/permissions/index.d.ts +13 -0
  1067. package/dist/skills/permissions/index.js +8 -0
  1068. package/dist/skills/permissions/operation-classifier.d.ts +43 -0
  1069. package/dist/skills/permissions/operation-classifier.js +251 -0
  1070. package/dist/skills/permissions/permission-classifier.d.ts +41 -0
  1071. package/dist/skills/permissions/permission-classifier.js +186 -0
  1072. package/dist/skills/permissions/rule-engine.d.ts +49 -0
  1073. package/dist/skills/permissions/rule-engine.js +285 -0
  1074. package/dist/skills/permissions/settings-watcher.d.ts +19 -0
  1075. package/dist/skills/permissions/settings-watcher.js +121 -0
  1076. package/dist/skills/permissions/types.d.ts +2 -0
  1077. package/dist/skills/permissions/types.js +1 -0
  1078. package/dist/skills/plugins/index.d.ts +2 -0
  1079. package/dist/skills/plugins/index.js +3 -0
  1080. package/dist/skills/plugins/plugin-api.d.ts +38 -0
  1081. package/dist/skills/plugins/plugin-api.js +18 -0
  1082. package/dist/skills/plugins/plugin-loader.d.ts +57 -0
  1083. package/dist/skills/plugins/plugin-loader.js +254 -0
  1084. package/dist/skills/plugins/plugin-marketplace.d.ts +61 -0
  1085. package/dist/skills/plugins/plugin-marketplace.js +229 -0
  1086. package/dist/skills/portable-tool.d.ts +165 -0
  1087. package/dist/skills/portable-tool.js +34 -0
  1088. package/dist/skills/skill-system/skill-frontmatter.d.ts +19 -0
  1089. package/dist/skills/skill-system/skill-frontmatter.js +344 -0
  1090. package/dist/skills/skill-system/skill-guard.d.ts +23 -0
  1091. package/dist/skills/skill-system/skill-guard.js +229 -0
  1092. package/dist/skills/skill-system/skill-lifecycle.d.ts +93 -0
  1093. package/dist/skills/skill-system/skill-lifecycle.js +236 -0
  1094. package/dist/skills/skill-system/skill-source.d.ts +38 -0
  1095. package/dist/skills/skill-system/skill-source.js +75 -0
  1096. package/dist/skills/skill-system/skill-types.d.ts +140 -0
  1097. package/dist/skills/skill-system/skill-types.js +6 -0
  1098. package/dist/skills/skill-system/skill-validation.d.ts +29 -0
  1099. package/dist/skills/skill-system/skill-validation.js +154 -0
  1100. package/dist/skills/tool-access.d.ts +30 -0
  1101. package/dist/skills/tool-access.js +58 -0
  1102. package/dist/skills/tools/agent-tool.d.ts +102 -0
  1103. package/dist/skills/tools/agent-tool.js +159 -0
  1104. package/dist/skills/tools/ask-user-tool.d.ts +80 -0
  1105. package/dist/skills/tools/ask-user-tool.js +121 -0
  1106. package/dist/skills/tools/brief-tool.d.ts +74 -0
  1107. package/dist/skills/tools/brief-tool.js +95 -0
  1108. package/dist/skills/tools/browser-tool.d.ts +114 -0
  1109. package/dist/skills/tools/browser-tool.js +160 -0
  1110. package/dist/skills/tools/checkpoint-tool.d.ts +66 -0
  1111. package/dist/skills/tools/checkpoint-tool.js +102 -0
  1112. package/dist/skills/tools/config-tool.d.ts +61 -0
  1113. package/dist/skills/tools/config-tool.js +123 -0
  1114. package/dist/skills/tools/cron-tool.d.ts +96 -0
  1115. package/dist/skills/tools/cron-tool.js +165 -0
  1116. package/dist/skills/tools/edit-tool.d.ts +43 -0
  1117. package/dist/skills/tools/edit-tool.js +72 -0
  1118. package/dist/skills/tools/exec-tool.d.ts +117 -0
  1119. package/dist/skills/tools/exec-tool.js +354 -0
  1120. package/dist/skills/tools/file-management-tool.d.ts +90 -0
  1121. package/dist/skills/tools/file-management-tool.js +166 -0
  1122. package/dist/skills/tools/image-generate-tool.d.ts +74 -0
  1123. package/dist/skills/tools/image-generate-tool.js +91 -0
  1124. package/dist/skills/tools/instructions-tool.d.ts +65 -0
  1125. package/dist/skills/tools/instructions-tool.js +209 -0
  1126. package/dist/skills/tools/lsp-tool.d.ts +153 -0
  1127. package/dist/skills/tools/lsp-tool.js +230 -0
  1128. package/dist/skills/tools/media-cancel-tool.d.ts +30 -0
  1129. package/dist/skills/tools/media-cancel-tool.js +46 -0
  1130. package/dist/skills/tools/monitor-tool.d.ts +113 -0
  1131. package/dist/skills/tools/monitor-tool.js +129 -0
  1132. package/dist/skills/tools/music-generate-tool.d.ts +80 -0
  1133. package/dist/skills/tools/music-generate-tool.js +98 -0
  1134. package/dist/skills/tools/notebook-edit-tool.d.ts +15 -0
  1135. package/dist/skills/tools/notebook-edit-tool.js +206 -0
  1136. package/dist/skills/tools/patch-tool.d.ts +52 -0
  1137. package/dist/skills/tools/patch-tool.js +556 -0
  1138. package/dist/skills/tools/petdex-create-tool.d.ts +47 -0
  1139. package/dist/skills/tools/petdex-create-tool.js +95 -0
  1140. package/dist/skills/tools/plan-mode-tool.d.ts +98 -0
  1141. package/dist/skills/tools/plan-mode-tool.js +164 -0
  1142. package/dist/skills/tools/read-tool.d.ts +51 -0
  1143. package/dist/skills/tools/read-tool.js +88 -0
  1144. package/dist/skills/tools/search-tool.d.ts +112 -0
  1145. package/dist/skills/tools/search-tool.js +226 -0
  1146. package/dist/skills/tools/shell/bash-provider.d.ts +26 -0
  1147. package/dist/skills/tools/shell/bash-provider.js +125 -0
  1148. package/dist/skills/tools/shell/command-classification.d.ts +44 -0
  1149. package/dist/skills/tools/shell/command-classification.js +119 -0
  1150. package/dist/skills/tools/shell/command-semantics.d.ts +14 -0
  1151. package/dist/skills/tools/shell/command-semantics.js +87 -0
  1152. package/dist/skills/tools/shell/destructive-command-warning.d.ts +10 -0
  1153. package/dist/skills/tools/shell/destructive-command-warning.js +80 -0
  1154. package/dist/skills/tools/shell/exec-permissions.d.ts +52 -0
  1155. package/dist/skills/tools/shell/exec-permissions.js +277 -0
  1156. package/dist/skills/tools/shell/index.d.ts +18 -0
  1157. package/dist/skills/tools/shell/index.js +18 -0
  1158. package/dist/skills/tools/shell/powershell-provider.d.ts +15 -0
  1159. package/dist/skills/tools/shell/powershell-provider.js +80 -0
  1160. package/dist/skills/tools/shell/sandbox/helper-resolver.d.ts +7 -0
  1161. package/dist/skills/tools/shell/sandbox/helper-resolver.js +20 -0
  1162. package/dist/skills/tools/shell/sandbox/landlock-argv.d.ts +6 -0
  1163. package/dist/skills/tools/shell/sandbox/landlock-argv.js +13 -0
  1164. package/dist/skills/tools/shell/sandbox/platform.d.ts +3 -0
  1165. package/dist/skills/tools/shell/sandbox/platform.js +13 -0
  1166. package/dist/skills/tools/shell/sandbox/sandbox-launcher.d.ts +15 -0
  1167. package/dist/skills/tools/shell/sandbox/sandbox-launcher.js +59 -0
  1168. package/dist/skills/tools/shell/sandbox/sandbox-scope.d.ts +6 -0
  1169. package/dist/skills/tools/shell/sandbox/sandbox-scope.js +17 -0
  1170. package/dist/skills/tools/shell/sandbox/sandbox-types.d.ts +47 -0
  1171. package/dist/skills/tools/shell/sandbox/sandbox-types.js +1 -0
  1172. package/dist/skills/tools/shell/sandbox/seatbelt-profile.d.ts +6 -0
  1173. package/dist/skills/tools/shell/sandbox/seatbelt-profile.js +28 -0
  1174. package/dist/skills/tools/shell/shell-command.d.ts +54 -0
  1175. package/dist/skills/tools/shell/shell-command.js +347 -0
  1176. package/dist/skills/tools/shell/shell-exec.d.ts +38 -0
  1177. package/dist/skills/tools/shell/shell-exec.js +202 -0
  1178. package/dist/skills/tools/shell/shell-provider.d.ts +85 -0
  1179. package/dist/skills/tools/shell/shell-provider.js +38 -0
  1180. package/dist/skills/tools/shell/subprocess-env.d.ts +6 -0
  1181. package/dist/skills/tools/shell/subprocess-env.js +87 -0
  1182. package/dist/skills/tools/shell/task-output.d.ts +44 -0
  1183. package/dist/skills/tools/shell/task-output.js +137 -0
  1184. package/dist/skills/tools/skill-tool.d.ts +106 -0
  1185. package/dist/skills/tools/skill-tool.js +265 -0
  1186. package/dist/skills/tools/sleep-tool.d.ts +49 -0
  1187. package/dist/skills/tools/sleep-tool.js +81 -0
  1188. package/dist/skills/tools/structured-output-tool.d.ts +116 -0
  1189. package/dist/skills/tools/structured-output-tool.js +176 -0
  1190. package/dist/skills/tools/stt-tool.d.ts +33 -0
  1191. package/dist/skills/tools/stt-tool.js +58 -0
  1192. package/dist/skills/tools/task-tool.d.ts +125 -0
  1193. package/dist/skills/tools/task-tool.js +390 -0
  1194. package/dist/skills/tools/team-tool.d.ts +156 -0
  1195. package/dist/skills/tools/team-tool.js +173 -0
  1196. package/dist/skills/tools/three-d-generate-tool.d.ts +46 -0
  1197. package/dist/skills/tools/three-d-generate-tool.js +66 -0
  1198. package/dist/skills/tools/tool-search-tool.d.ts +62 -0
  1199. package/dist/skills/tools/tool-search-tool.js +187 -0
  1200. package/dist/skills/tools/tts-tool.d.ts +50 -0
  1201. package/dist/skills/tools/tts-tool.js +58 -0
  1202. package/dist/skills/tools/video-edit-tool.d.ts +72 -0
  1203. package/dist/skills/tools/video-edit-tool.js +84 -0
  1204. package/dist/skills/tools/video-generate-tool.d.ts +162 -0
  1205. package/dist/skills/tools/video-generate-tool.js +178 -0
  1206. package/dist/skills/tools/video-merge-tool.d.ts +105 -0
  1207. package/dist/skills/tools/video-merge-tool.js +95 -0
  1208. package/dist/skills/tools/video-upscale-tool.d.ts +45 -0
  1209. package/dist/skills/tools/video-upscale-tool.js +57 -0
  1210. package/dist/skills/tools/voice-clone-tool.d.ts +40 -0
  1211. package/dist/skills/tools/voice-clone-tool.js +58 -0
  1212. package/dist/skills/tools/web-answer-tool.d.ts +27 -0
  1213. package/dist/skills/tools/web-answer-tool.js +124 -0
  1214. package/dist/skills/tools/web-fetch-tool.d.ts +80 -0
  1215. package/dist/skills/tools/web-fetch-tool.js +95 -0
  1216. package/dist/skills/tools/web-research-tool.d.ts +48 -0
  1217. package/dist/skills/tools/web-research-tool.js +254 -0
  1218. package/dist/skills/tools/web-search-tool.d.ts +46 -0
  1219. package/dist/skills/tools/web-search-tool.js +95 -0
  1220. package/dist/skills/tools/workflow-tool.d.ts +45 -0
  1221. package/dist/skills/tools/workflow-tool.js +113 -0
  1222. package/dist/skills/tools/worktree-tool.d.ts +69 -0
  1223. package/dist/skills/tools/worktree-tool.js +147 -0
  1224. package/dist/skills/tools/write-tool.d.ts +45 -0
  1225. package/dist/skills/tools/write-tool.js +83 -0
  1226. package/dist/skills/tools.d.ts +45 -0
  1227. package/dist/skills/tools.js +165 -0
  1228. package/dist/skills/web-search/brave-source.d.ts +2 -0
  1229. package/dist/skills/web-search/brave-source.js +36 -0
  1230. package/dist/skills/web-search/crawl4ai-extractor.d.ts +15 -0
  1231. package/dist/skills/web-search/crawl4ai-extractor.js +92 -0
  1232. package/dist/skills/web-search/embedding-rerank.d.ts +13 -0
  1233. package/dist/skills/web-search/embedding-rerank.js +44 -0
  1234. package/dist/skills/web-search/exa-source.d.ts +2 -0
  1235. package/dist/skills/web-search/exa-source.js +43 -0
  1236. package/dist/skills/web-search/multi-source-backend.d.ts +23 -0
  1237. package/dist/skills/web-search/multi-source-backend.js +99 -0
  1238. package/dist/skills/web-search/redis-source-cache.d.ts +6 -0
  1239. package/dist/skills/web-search/redis-source-cache.js +44 -0
  1240. package/dist/skills/web-search/search-svc-source.d.ts +4 -0
  1241. package/dist/skills/web-search/search-svc-source.js +64 -0
  1242. package/dist/skills/web-search/searxng-source.d.ts +2 -0
  1243. package/dist/skills/web-search/searxng-source.js +91 -0
  1244. package/dist/skills/web-search/serper-source.d.ts +2 -0
  1245. package/dist/skills/web-search/serper-source.js +33 -0
  1246. package/dist/skills/web-search/source-factory.d.ts +5 -0
  1247. package/dist/skills/web-search/source-factory.js +15 -0
  1248. package/dist/skills/web-search/stability.d.ts +26 -0
  1249. package/dist/skills/web-search/stability.js +57 -0
  1250. package/dist/transport/acp-event-emitter.d.ts +21 -0
  1251. package/dist/transport/acp-event-emitter.js +142 -0
  1252. package/dist/transport/acp-event-emitter.test.d.ts +1 -0
  1253. package/dist/transport/acp-event-emitter.test.js +87 -0
  1254. package/dist/transport/acp-server.d.ts +169 -0
  1255. package/dist/transport/acp-server.js +480 -0
  1256. package/dist/transport/acp-server.test.d.ts +1 -0
  1257. package/dist/transport/acp-server.test.js +230 -0
  1258. package/dist/transport/index.d.ts +7 -0
  1259. package/dist/transport/index.js +5 -0
  1260. package/dist/transport/io-transport.d.ts +19 -0
  1261. package/dist/transport/io-transport.js +8 -0
  1262. package/dist/types/cli/agent-config-coordinator.d.ts +2 -0
  1263. package/dist/types/cli/handlers/community-handler.d.ts +8 -0
  1264. package/dist/types/cli/runtime-dependency-catalog.d.ts +56 -0
  1265. package/dist/types/protocol/methods.d.ts +35 -0
  1266. package/dist/types/runtime/infra/acp-detector.d.ts +16 -0
  1267. package/dist/types/runtime/infra/project-skill-manifest.d.ts +4 -0
  1268. package/package.json +2 -2
@@ -0,0 +1,974 @@
1
+ /**
2
+ * Dream Sub-agent — CC autoDream parity.
3
+ *
4
+ * Memory consolidation runs as a restricted sub-agent:
5
+ * - Read-only tool access (bash: ls/grep/cat/find/stat/wc/head/tail)
6
+ * - File writes restricted to memory directory
7
+ * - 4-phase system prompt: Orient → Gather → Consolidate → Prune
8
+ * - Trigger gates: time (24h) + session count (5)
9
+ * - PID-based consolidation lock
10
+ *
11
+ * Reference: claude-code src/services/autoDream/
12
+ */
13
+ import { readFile, writeFile, stat, unlink, mkdir } from "node:fs/promises";
14
+ import { join, resolve, isAbsolute, normalize } from "node:path";
15
+ import { randomUUID } from "node:crypto";
16
+ import { runForkedAgent } from "./forked-agent.js";
17
+ import { scanCategoryManifest, formatCategoryContextBlock } from "./dream-category-context.js";
18
+ // ── Defaults ────────────────────────────────────────────────
19
+ const DEFAULT_TRIGGER = {
20
+ minHours: 24,
21
+ minSessions: 5,
22
+ minTurnsInSession: 20,
23
+ scanIntervalMs: 600_000, // 10 min
24
+ };
25
+ // Liveness lock: held only WHILE a dream runs. Separate from the gate marker
26
+ // below, so reclaiming a dead lock never corrupts the "last consolidated" time.
27
+ const LOCK_FILE = ".consolidate-lock";
28
+ // Hard run ceiling: a real dream completes in minutes. If the lock mtime is
29
+ // older than this, the holder is presumed dead (crash / PID reuse) and the lock
30
+ // is reclaimable regardless of the recorded PID. A running dream heartbeats the
31
+ // lock mtime, so a legitimate long dream is NOT reclaimed.
32
+ const MAX_DREAM_RUN_MS = 15 * 60 * 1000;
33
+ // Heartbeat cadence — keeps a live dream's lock fresh well within MAX_DREAM_RUN_MS.
34
+ const LOCK_HEARTBEAT_MS = 60 * 1000;
35
+ // Gate marker: mtime = time of the last SUCCESSFUL consolidation. Drives the
36
+ // 24h/session trigger gates. Only markConsolidationComplete touches it.
37
+ const LAST_CONSOLIDATED_FILE = ".last-consolidated";
38
+ const ENTRYPOINT_NAME = "CLAUDE.md";
39
+ const MAX_ENTRYPOINT_LINES = 100;
40
+ // ── Read-only command detection (CC BashTool.isReadOnly parity) ──
41
+ const READ_ONLY_COMMANDS = new Set([
42
+ "ls", "find", "grep", "cat", "stat", "wc", "head", "tail",
43
+ "file", "which", "whereis", "type", "echo", "printf", "test",
44
+ "diff", "sort", "uniq", "tr", "cut", "awk", "sed", // sed -n only
45
+ "du", "df", "date", "pwd", "hostname", "uname",
46
+ "git", // read-only git subcommands checked separately
47
+ ]);
48
+ const GIT_READ_ONLY_SUBCOMMANDS = new Set([
49
+ "log", "show", "diff", "status", "branch", "tag", "remote",
50
+ "rev-parse", "rev-list", "ls-files", "ls-tree", "describe",
51
+ "blame", "shortlog", "name-rev", "cat-file",
52
+ ]);
53
+ /** Dangerous patterns that indicate a write operation. */
54
+ const WRITE_INDICATORS = /[|>&]|>>|>\s|rm\s|mv\s|cp\s|chmod\s|chown\s|mkdir\s|touch\s/;
55
+ /**
56
+ * Check if a bash command string is read-only.
57
+ * Conservative: denies anything with pipes, redirects, or unknown commands.
58
+ */
59
+ function isReadOnlyBashCommand(command) {
60
+ const trimmed = command.trim();
61
+ // Deny empty
62
+ if (!trimmed)
63
+ return false;
64
+ // Deny anything with obvious write indicators
65
+ if (WRITE_INDICATORS.test(trimmed))
66
+ return false;
67
+ // Parse first word as the command
68
+ const parts = trimmed.split(/\s+/);
69
+ const cmd = parts[0]?.replace(/^(\/usr\/bin\/|\/bin\/|\/usr\/local\/bin\/)/, "") ?? "";
70
+ if (!READ_ONLY_COMMANDS.has(cmd))
71
+ return false;
72
+ // Special case: git needs subcommand check
73
+ if (cmd === "git") {
74
+ const subCmd = parts[1];
75
+ if (!subCmd || !GIT_READ_ONLY_SUBCOMMANDS.has(subCmd))
76
+ return false;
77
+ }
78
+ return true;
79
+ }
80
+ async function persistDreamSummaryArtifact(params) {
81
+ await mkdir(params.memoryRoot, { recursive: true });
82
+ const summaryPath = join(params.memoryRoot, "fact-dream-summary.md");
83
+ let finalContent;
84
+ for (const event of params.events) {
85
+ if (event.type !== "end")
86
+ continue;
87
+ const content = event.content.trim();
88
+ if (content.length > 0)
89
+ finalContent = content;
90
+ }
91
+ const touched = [...new Set(params.filesTouched)];
92
+ const lines = [
93
+ "# Dream Consolidation Summary",
94
+ "",
95
+ `- completedAt: ${new Date().toISOString()}`,
96
+ `- sessionsReviewed: ${params.sessionsReviewed}`,
97
+ `- durationMs: ${params.durationMs}`,
98
+ "",
99
+ "## Agent Summary",
100
+ "",
101
+ finalContent || "Dream completed without a textual model summary.",
102
+ ...(params.sessionDigest ? [
103
+ "",
104
+ "## Recent Session Digest",
105
+ "",
106
+ params.sessionDigest,
107
+ ] : []),
108
+ "",
109
+ "## Files Touched",
110
+ "",
111
+ ...(touched.length > 0 ? touched.map((file) => `- ${file}`) : ["- none"]),
112
+ "",
113
+ ];
114
+ await writeFile(summaryPath, lines.join("\n"), "utf8");
115
+ return summaryPath;
116
+ }
117
+ function safeSessionId(sessionId) {
118
+ return sessionId.replace(/[^a-zA-Z0-9_-]/g, "_");
119
+ }
120
+ async function readSessionDigest(transcriptDir, sessionIds) {
121
+ const sections = [];
122
+ for (const sessionId of sessionIds.slice(0, 8)) {
123
+ const transcriptPath = join(transcriptDir, safeSessionId(sessionId), "transcript.jsonl");
124
+ let raw = "";
125
+ try {
126
+ raw = await readFile(transcriptPath, "utf8");
127
+ }
128
+ catch {
129
+ continue;
130
+ }
131
+ const entries = [];
132
+ for (const line of raw.trim().split(/\r?\n/).slice(-24)) {
133
+ try {
134
+ const record = JSON.parse(line);
135
+ if (typeof record.content !== "string" || record.content.trim().length === 0)
136
+ continue;
137
+ const role = typeof record.role === "string" ? record.role : "message";
138
+ entries.push(`${role}: ${record.content.replace(/\s+/g, " ").slice(0, 900)}`);
139
+ }
140
+ catch {
141
+ continue;
142
+ }
143
+ }
144
+ if (entries.length > 0) {
145
+ sections.push(`### Session ${sessionId}\n${entries.join("\n")}`);
146
+ }
147
+ }
148
+ return sections.join("\n\n").slice(0, 16_000);
149
+ }
150
+ // ── Tool restriction (CC createAutoMemCanUseTool parity) ────
151
+ /**
152
+ * Check if a tool invocation is allowed during dream consolidation.
153
+ *
154
+ * Allowed:
155
+ * - read_file, grep, glob, search — unrestricted read-only tools
156
+ * - bash — only read-only commands (ls, grep, cat, find, stat, wc, head, tail)
157
+ * - file_edit, file_write — only within memoryRoot
158
+ * - Everything else — denied
159
+ */
160
+ export function canUseDreamTool(memoryRoot, restriction) {
161
+ const { toolName, input } = restriction;
162
+ // Always-allow: read-only tools (qlogicagent canonical names)
163
+ const readOnlyTools = new Set([
164
+ "read", "search",
165
+ // LLM tool name variants (models may emit these instead of canonical names)
166
+ "read_file", "grep", "glob", "list_dir", "file_read", "Grep", "Glob",
167
+ ]);
168
+ if (readOnlyTools.has(toolName)) {
169
+ return { allowed: true };
170
+ }
171
+ // QMemory tools: allowed during dream (hippocampus bridge)
172
+ const qmemoryTools = new Set([
173
+ "qmemory_search", "qmemory_store", "qmemory_feedback", "qmemory_temporal", "qmemory_profile",
174
+ ]);
175
+ if (qmemoryTools.has(toolName)) {
176
+ return { allowed: true };
177
+ }
178
+ // Shell exec: only read-only commands (qlogicagent name: "exec")
179
+ if (toolName === "exec" || toolName === "bash" || toolName === "execute_command" || toolName === "Bash") {
180
+ const command = (input.command ?? input.cmd ?? "");
181
+ if (isReadOnlyBashCommand(command)) {
182
+ return { allowed: true };
183
+ }
184
+ return {
185
+ allowed: false,
186
+ reason: "Only read-only shell commands are permitted during dream consolidation "
187
+ + "(ls, find, grep, cat, stat, wc, head, tail, and similar)",
188
+ };
189
+ }
190
+ // File write/edit/patch: only within memory directory (qlogicagent names: "write", "edit", "patch")
191
+ if (toolName === "write" || toolName === "edit" || toolName === "patch"
192
+ || toolName === "file_edit" || toolName === "file_write" || toolName === "FileEdit" || toolName === "FileWrite") {
193
+ const filePath = (input.file_path ?? input.path ?? input.filePath ?? "");
194
+ if (typeof filePath === "string" && isWithinMemoryDir(filePath, memoryRoot)) {
195
+ return { allowed: true };
196
+ }
197
+ return {
198
+ allowed: false,
199
+ reason: `File writes are only allowed within the memory directory: ${memoryRoot}`,
200
+ };
201
+ }
202
+ // Everything else: denied
203
+ return {
204
+ allowed: false,
205
+ reason: `Tool "${toolName}" is not permitted during dream consolidation. `
206
+ + "Only read, search, read-only exec, and memory-scoped write/edit/patch are allowed.",
207
+ };
208
+ }
209
+ function isWithinMemoryDir(filePath, memoryRoot) {
210
+ const absPath = isAbsolute(filePath) ? filePath : resolve(filePath);
211
+ const absMemory = isAbsolute(memoryRoot) ? memoryRoot : resolve(memoryRoot);
212
+ const normalized = normalize(absPath);
213
+ const normalizedRoot = normalize(absMemory);
214
+ return normalized.startsWith(normalizedRoot);
215
+ }
216
+ // ── Consolidation Prompt (CC 4-phase parity) ────────────────
217
+ /**
218
+ * Build the 4-phase memory consolidation prompt.
219
+ *
220
+ * Adapted from CC's consolidationPrompt.ts with our project context.
221
+ * P5: Enhanced with category-aware merge rules from write gate taxonomy.
222
+ */
223
+ export function buildConsolidationPrompt(memoryRoot, transcriptDir, sessionIds, opts) {
224
+ const qmemorySection = opts?.hasQMemory ? `
225
+
226
+ ## Phase 2.5 — Long-term memory triage (QMemory)
227
+
228
+ You have access to the long-term memory service via these tools:
229
+ - \`qmemory_search\` — recall existing long-term memories (check before storing duplicates)
230
+ - \`qmemory_store\` — submit a low-priority candidate to the memory consolidation pipeline
231
+ - \`qmemory_feedback\` — mark recalled memories as outdated/wrong/useful
232
+
233
+ For each insight worth long-term persistence:
234
+ 1. Search QMemory first to check for duplicates or contradictions
235
+ 2. If a contradiction is found, use qmemory_feedback to mark the old memory as "outdated"
236
+ 3. Submit the corrected/new candidate via qmemory_store; the consolidator decides whether it becomes an active claim, a merge, or a conflict
237
+
238
+ Classify memories into:
239
+ - **Project memory** → write to local memoryRoot/*.md (fast KV access, project-scoped)
240
+ - **User long-term memory** → submit via qmemory_store (semantic search, persists across projects; not a direct final write)
241
+ - **Noise** → discard (do not store)
242
+
243
+ Examples of user long-term memories: preferences, personal facts, recurring patterns, important decisions.
244
+ Examples of project memories: architecture decisions, file conventions, build patterns, known issues.
245
+ ` : "";
246
+ return `# Dream: Memory Consolidation
247
+
248
+ You are performing a dream — a reflective pass over your memory files. Synthesize what you've learned recently into durable, well-organized memories so that future sessions can orient quickly.
249
+
250
+ Memory directory: \`${memoryRoot}\`
251
+ If the directory doesn't exist yet, create it with the necessary structure.
252
+
253
+ Session transcripts: \`${transcriptDir}\` (large JSONL files — grep narrowly, don't read whole files)
254
+
255
+ ---
256
+
257
+ ## Phase 1 — Orient
258
+
259
+ - \`ls\` the memory directory to see what already exists
260
+ - Read \`${ENTRYPOINT_NAME}\` to understand the current index
261
+ - Skim existing topic files so you improve them rather than creating duplicates
262
+ - If \`logs/\` or \`sessions/\` subdirectories exist, review recent entries there
263
+
264
+ ## Phase 2 — Gather recent signal
265
+
266
+ Look for new information worth persisting. Sources in rough priority order:
267
+
268
+ 1. **Session logs** if present — these are the append-only stream
269
+ 2. **Existing memories that drifted** — facts that contradict something in the codebase now
270
+ 3. **Transcript search** — if you need specific context, grep the JSONL transcripts for narrow terms:
271
+ \`grep -rn "<narrow term>" ${transcriptDir}/include="*.jsonl" | tail -50\`
272
+
273
+ Don't exhaustively read transcripts. Look only for things you already suspect matter.
274
+ ${qmemorySection}${opts?.categoryContext ?? ""}${opts?.temporalContext ?? ""}${opts?.profileContext ?? ""}${opts?.sessionDigest ? `## Recent Session Digest
275
+
276
+ The runtime already extracted this bounded digest from project transcripts. Treat it as primary evidence for consolidation:
277
+
278
+ ${opts.sessionDigest}
279
+
280
+ ` : ""}
281
+ ## Phase 2.8 — User Profile Update
282
+
283
+ Analyze recent sessions for user preferences, habits, and personal context. Use two mechanisms:
284
+
285
+ **Structured profile** (key-value, queryable): Use \`qmemory_profile\` with action "set" for discrete facts:
286
+ - \`qmemory_profile(action="set", key="communication_style", value="concise, no fluff")\`
287
+ - \`qmemory_profile(action="set", key="tech_stack", value="TypeScript, Node.js, Electron, SQLite")\`
288
+ - \`qmemory_profile(action="set", key="work_schedule", value="late night coder, Asia/Shanghai")\`
289
+ - \`qmemory_profile(action="set", key="project_context", value="AI desktop assistant monorepo")\`
290
+
291
+ **Narrative memory candidates** (semantic search): Use \`qmemory_store\` with source "profile-extraction" for richer observations:
292
+ - "User strongly dislikes over-engineering and unnecessary abstractions"
293
+ - "User requires all code changes to compile before committing"
294
+
295
+ Profile extraction rules:
296
+ 1. Read the existing profile first: \`qmemory_profile(action="get")\`
297
+ 2. Only update if you observe NEW or CHANGED information (don't duplicate)
298
+ 3. If an existing profile entry contradicts current behavior, update it
299
+ 4. Be specific and factual — avoid vague entries like "user is smart"
300
+ 5. Categories for profile keys: communication_style, tech_stack, work_schedule, project_context, coding_preferences, tools_used
301
+
302
+ ## Phase 3 — Consolidate
303
+
304
+ For each thing worth remembering, write or update a memory file at the top level of the memory directory.
305
+
306
+ Focus on:
307
+ - Merging new signal into existing topic files rather than creating near-duplicates
308
+ - Converting relative dates ("yesterday", "last week") to absolute dates so they remain interpretable after time passes
309
+ - Deleting contradicted facts — if today's investigation disproves an old memory, fix it at the source
310
+
311
+ ## Phase 4 — Prune and index
312
+
313
+ Update \`${ENTRYPOINT_NAME}\` so it stays under ${MAX_ENTRYPOINT_LINES} lines AND under ~25KB. It's an **index**, not a dump — each entry should be one line under ~150 characters: \`- [Title](file.md) — one-line hook\`. Never write memory content directly into it.
314
+
315
+ - Remove pointers to memories that are now stale, wrong, or superseded
316
+ - Demote verbose entries: if an index line is over ~200 chars, it's carrying content that belongs in the topic file — shorten the line, move the detail
317
+ - Add pointers to newly important memories
318
+ - Resolve contradictions — if two files disagree, fix the wrong one
319
+
320
+ ---
321
+
322
+ **Tool constraints for this run:** Bash is restricted to read-only commands (\`ls\`, \`find\`, \`grep\`, \`cat\`, \`stat\`, \`wc\`, \`head\`, \`tail\`, and similar). Anything that writes, redirects to a file, or modifies state will be denied. Plan your exploration with this in mind — no need to probe.
323
+
324
+ Sessions since last consolidation (${sessionIds.length}):
325
+ ${sessionIds.map(id => `- ${id}`).join("\n")}
326
+
327
+ Return a brief summary of what you consolidated, updated, or pruned. If nothing changed (memories are already tight), say so.`;
328
+ }
329
+ // ── Trigger Gate Logic (CC autoDream parity) ─────────────────
330
+ let lastSessionScanAt = 0;
331
+ /**
332
+ * Check whether dream consolidation should run.
333
+ *
334
+ * Gate order (cheapest first):
335
+ * 1. Time gate — hours since lastConsolidatedAt >= minHours
336
+ * 2. Scan throttle — 10-minute interval to suppress redundant scans
337
+ * 3. Session gate — session count since lastConsolidatedAt >= minSessions
338
+ *
339
+ * @returns Session IDs to review, or null if gates failed.
340
+ */
341
+ export async function shouldTriggerDream(ctx, config = {}) {
342
+ const cfg = { ...DEFAULT_TRIGGER, ...config };
343
+ // Read last consolidation timestamp from lock file mtime
344
+ let lastAt;
345
+ try {
346
+ lastAt = await readLastConsolidatedAt(ctx.memoryRoot);
347
+ }
348
+ catch {
349
+ // No lock file = never consolidated = trigger
350
+ lastAt = 0;
351
+ }
352
+ // ── Time gate (required for all trigger paths) ──
353
+ const hoursSince = (Date.now() - lastAt) / 3_600_000;
354
+ if (!cfg.force && hoursSince < cfg.minHours)
355
+ return null;
356
+ // ── Scan throttle ──
357
+ const sinceScanMs = Date.now() - lastSessionScanAt;
358
+ if (!cfg.force && sinceScanMs < cfg.scanIntervalMs)
359
+ return null;
360
+ lastSessionScanAt = Date.now();
361
+ // ── Session gate (with turn-count alternative for single-session users) ──
362
+ let sessionIds;
363
+ try {
364
+ sessionIds = await ctx.listSessionsSince(lastAt);
365
+ }
366
+ catch {
367
+ return null;
368
+ }
369
+ // Exclude current session
370
+ sessionIds = sessionIds.filter(id => id !== ctx.currentSessionId);
371
+ // Gate: pass if EITHER enough sessions OR enough turns in current session
372
+ const sessionGatePass = sessionIds.length >= cfg.minSessions;
373
+ const turnGatePass = (ctx.currentSessionTurnCount ?? 0) >= cfg.minTurnsInSession;
374
+ if (!cfg.force && !sessionGatePass && !turnGatePass)
375
+ return null;
376
+ // If triggered by turn count (single-session user), include current session for review
377
+ if (!sessionGatePass && turnGatePass) {
378
+ sessionIds = [ctx.currentSessionId];
379
+ }
380
+ return { sessionIds };
381
+ }
382
+ // ── Consolidation Lock (CC consolidationLock parity) ─────────
383
+ async function readLastConsolidatedAt(memoryRoot) {
384
+ // Gate marker is the source of truth for "last successful consolidation".
385
+ try {
386
+ const s = await stat(join(memoryRoot, LAST_CONSOLIDATED_FILE));
387
+ return s.mtimeMs;
388
+ }
389
+ catch {
390
+ // Legacy fallback: pre-split installs recorded last-consolidated as the lock
391
+ // mtime. Read it once so the gate doesn't suddenly think it never ran.
392
+ const s = await stat(join(memoryRoot, LOCK_FILE));
393
+ return s.mtimeMs;
394
+ }
395
+ }
396
+ function isProcessRunning(pid) {
397
+ try {
398
+ process.kill(pid, 0);
399
+ return true;
400
+ }
401
+ catch {
402
+ return false;
403
+ }
404
+ }
405
+ /**
406
+ * Attempt to acquire the consolidation liveness lock.
407
+ *
408
+ * A held lock is "live" only if its mtime is fresh (< MAX_DREAM_RUN_MS) AND the
409
+ * recorded PID is alive. A stale mtime reclaims unconditionally — this defends
410
+ * against a crashed holder whose PID was reused by an unrelated process (the old
411
+ * pure-PID check would falsely see it as alive and deadlock for up to an hour).
412
+ *
413
+ * @returns 0 on acquisition, or null if blocked by a live holder.
414
+ */
415
+ export async function tryAcquireConsolidationLock(memoryRoot) {
416
+ const lockPath = join(memoryRoot, LOCK_FILE);
417
+ let mtimeMs;
418
+ let holderPid;
419
+ try {
420
+ const [s, raw] = await Promise.all([stat(lockPath), readFile(lockPath, "utf8")]);
421
+ mtimeMs = s.mtimeMs;
422
+ const parsed = parseInt(raw.trim(), 10);
423
+ holderPid = Number.isFinite(parsed) ? parsed : undefined;
424
+ }
425
+ catch {
426
+ // ENOENT — no prior lock, proceed
427
+ }
428
+ const fresh = mtimeMs !== undefined && Date.now() - mtimeMs < MAX_DREAM_RUN_MS;
429
+ if (fresh && holderPid !== undefined && isProcessRunning(holderPid)) {
430
+ return null; // Blocked by a live, heart-beating holder
431
+ }
432
+ await mkdir(memoryRoot, { recursive: true });
433
+ await writeFile(lockPath, String(process.pid));
434
+ // Verify we own the lock (race guard)
435
+ try {
436
+ const verify = await readFile(lockPath, "utf8");
437
+ if (parseInt(verify.trim(), 10) !== process.pid)
438
+ return null;
439
+ }
440
+ catch {
441
+ return null;
442
+ }
443
+ return 0;
444
+ }
445
+ /**
446
+ * Refresh the lock mtime so a long-but-legitimate dream is not reclaimed.
447
+ * Called periodically by the dream runner. No-op if we no longer own the lock.
448
+ */
449
+ export async function heartbeatConsolidationLock(memoryRoot) {
450
+ const lockPath = join(memoryRoot, LOCK_FILE);
451
+ try {
452
+ const raw = await readFile(lockPath, "utf8");
453
+ if (parseInt(raw.trim(), 10) !== process.pid)
454
+ return; // not ours anymore
455
+ const now = Date.now() / 1000;
456
+ const { utimes } = await import("node:fs/promises");
457
+ await utimes(lockPath, now, now);
458
+ }
459
+ catch {
460
+ // Best-effort — a missed heartbeat only risks early reclaim near the ceiling.
461
+ }
462
+ }
463
+ /** Release the liveness lock explicitly (on failure, abort, or shutdown). */
464
+ export async function releaseConsolidationLock(memoryRoot) {
465
+ try {
466
+ await unlink(join(memoryRoot, LOCK_FILE));
467
+ }
468
+ catch {
469
+ // Already gone.
470
+ }
471
+ }
472
+ /**
473
+ * Rollback after a FAILED dream run: release the lock. The gate marker is NOT
474
+ * touched (only success advances it), so a failed run never delays the next gate.
475
+ * `_priorMtime` is retained for call-site compatibility and ignored.
476
+ */
477
+ export async function rollbackConsolidationLock(memoryRoot, _priorMtime) {
478
+ await releaseConsolidationLock(memoryRoot);
479
+ }
480
+ /**
481
+ * Record a SUCCESSFUL consolidation: advance the gate marker (mtime = now) and
482
+ * release the liveness lock.
483
+ */
484
+ export async function markConsolidationComplete(memoryRoot) {
485
+ // Advance the gate marker (its mtime = last successful consolidation)...
486
+ await mkdir(memoryRoot, { recursive: true });
487
+ await writeFile(join(memoryRoot, LAST_CONSOLIDATED_FILE), String(Date.now()));
488
+ // ...and release the liveness lock so the next dream can acquire it.
489
+ await releaseConsolidationLock(memoryRoot);
490
+ }
491
+ // ── Dream Task State Helpers ─────────────────────────────────
492
+ /** Create initial DreamTaskState. */
493
+ export function createDreamTaskState(opts) {
494
+ return {
495
+ taskId: `dream-${randomUUID().slice(0, 8)}`,
496
+ type: "dream",
497
+ label: "Memory consolidation",
498
+ permissionRole: "worker",
499
+ isolation: "shared",
500
+ lifecycle: "running",
501
+ depth: 1,
502
+ maxTurns: 0, // CC parity: dream runs to completion, no turn cap (0 = unlimited)
503
+ tokenBudget: 0, // Dreams use their own budget
504
+ startedAt: Date.now(),
505
+ parentTaskId: opts.parentTaskId,
506
+ sessionId: opts.sessionId,
507
+ phase: "starting",
508
+ sessionsReviewing: opts.sessionsReviewing,
509
+ filesTouched: [],
510
+ turns: [],
511
+ priorLockMtime: opts.priorLockMtime,
512
+ };
513
+ }
514
+ /** Add a turn to the dream state. */
515
+ export function addDreamTurn(state, turn, touchedPaths) {
516
+ const seen = new Set(state.filesTouched);
517
+ const newTouched = touchedPaths.filter(p => !seen.has(p));
518
+ // Skip no-op updates
519
+ if (turn.text === "" && turn.toolUseCount === 0 && newTouched.length === 0) {
520
+ return state;
521
+ }
522
+ return {
523
+ ...state,
524
+ phase: newTouched.length > 0 ? "updating" : state.phase,
525
+ filesTouched: newTouched.length > 0
526
+ ? [...state.filesTouched, ...newTouched]
527
+ : state.filesTouched,
528
+ turns: [...state.turns, turn],
529
+ };
530
+ }
531
+ /** Mark dream as completed. */
532
+ export function completeDreamState(state) {
533
+ return {
534
+ ...state,
535
+ lifecycle: "completed",
536
+ phase: "completed",
537
+ endedAt: Date.now(),
538
+ };
539
+ }
540
+ /** Mark dream as failed. */
541
+ export function failDreamState(state) {
542
+ return {
543
+ ...state,
544
+ lifecycle: "failed",
545
+ phase: "failed",
546
+ endedAt: Date.now(),
547
+ };
548
+ }
549
+ // ── Orchestrator ─────────────────────────────────────────────
550
+ /**
551
+ * Full dream orchestration entry point.
552
+ *
553
+ * This coordinates the entire dream lifecycle:
554
+ * 1. Check trigger gates
555
+ * 2. Acquire consolidation lock
556
+ * 3. Build consolidation prompt
557
+ * 4. Return dream context for the caller to run through agent loop
558
+ *
559
+ * The caller (stdio-server) is responsible for:
560
+ * - Running the prompt through the agent's tool loop
561
+ * - Applying canUseDreamTool() restrictions via tool.before_invoke hook
562
+ * - Calling markConsolidationComplete() on success
563
+ * - Calling rollbackConsolidationLock() on failure
564
+ */
565
+ export async function prepareDreamRun(ctx, config = {}) {
566
+ const cfg = { ...DEFAULT_TRIGGER, ...config };
567
+ // ── Gate check ──
568
+ const gateResult = await shouldTriggerDream(ctx, cfg);
569
+ if (!gateResult)
570
+ return null;
571
+ // ── Acquire lock ──
572
+ // Both forced (on-demand) and idle dreams acquire the liveness lock — force
573
+ // bypasses the trigger GATES (handled in shouldTriggerDream), not the lock,
574
+ // so two dreams never consolidate the same memory concurrently.
575
+ const acquired = await tryAcquireConsolidationLock(ctx.memoryRoot);
576
+ if (acquired === null)
577
+ return null; // Blocked by a live dream
578
+ const priorMtime = 0;
579
+ // ── Build prompt ──
580
+ const prompt = buildConsolidationPrompt(ctx.memoryRoot, ctx.transcriptDir, gateResult.sessionIds);
581
+ // ── Create task state ──
582
+ const taskState = createDreamTaskState({
583
+ sessionId: ctx.currentSessionId,
584
+ sessionsReviewing: gateResult.sessionIds.length,
585
+ priorLockMtime: priorMtime,
586
+ });
587
+ return {
588
+ prompt,
589
+ taskState,
590
+ sessionIds: gateResult.sessionIds,
591
+ };
592
+ }
593
+ /**
594
+ * Run a complete dream consolidation using an isolated forked agent.
595
+ *
596
+ * CC parity: This uses runForkedAgent() for true isolation instead of
597
+ * hook-based tool restriction on the shared agent loop. The dream runs
598
+ * in its own message history with its own AbortController.
599
+ *
600
+ * Full lifecycle:
601
+ * 1. Check trigger gates
602
+ * 2. Acquire consolidation lock
603
+ * 3. Build consolidation prompt
604
+ * 4. Fork sub-agent with restricted tools
605
+ * 5. Run to completion
606
+ * 6. Mark consolidation complete (or rollback on failure)
607
+ */
608
+ export async function runDream(deps) {
609
+ const startTime = Date.now();
610
+ // ── Prepare (gates + lock + prompt) ──
611
+ const prepared = await prepareDreamRun(deps.context, deps.triggerConfig);
612
+ if (!prepared) {
613
+ return {
614
+ ok: true,
615
+ sessionsReviewed: 0,
616
+ filesTouched: [],
617
+ turns: [],
618
+ durationMs: Date.now() - startTime,
619
+ };
620
+ }
621
+ const { taskState, sessionIds } = prepared;
622
+ // Register in the unified task store so dream lifecycle is observable
623
+ // (task.updated notifications + task tool queries).
624
+ deps.taskStore?.registerTask(taskState);
625
+ const settleDreamTask = (ok, output, error) => {
626
+ deps.taskStore?.updateTask(taskState.taskId, (t) => ({
627
+ ...t,
628
+ lifecycle: ok ? "completed" : "failed",
629
+ phase: ok ? "completed" : "failed",
630
+ output,
631
+ error,
632
+ endedAt: Date.now(),
633
+ }));
634
+ };
635
+ // P5: Scan category manifest for category-aware merge rules
636
+ let categoryContext = "";
637
+ try {
638
+ const manifest = await scanCategoryManifest(deps.context.memoryRoot);
639
+ if (manifest.totalFiles > 0) {
640
+ categoryContext = formatCategoryContextBlock(manifest);
641
+ }
642
+ }
643
+ catch {
644
+ // Non-fatal: dream proceeds without category context
645
+ }
646
+ // Rebuild prompt with memory awareness + category context + temporal context
647
+ const hasMemory = !!(deps.memoryProvider && deps.memoryUserId);
648
+ // ── Temporal context: inject recent activity summary into Dream ──
649
+ let temporalContext = "";
650
+ if (hasMemory && deps.memoryProvider?.getActivitySummary) {
651
+ try {
652
+ const summary = deps.memoryProvider.getActivitySummary(deps.memoryUserId, 7);
653
+ if (summary.dailyCounts.length > 0) {
654
+ const lines = ["## Recent Memory Activity (last 7 days)"];
655
+ lines.push("");
656
+ for (const day of summary.dailyCounts) {
657
+ lines.push(`- ${day.date}: ${day.count} memories recorded`);
658
+ }
659
+ if (summary.highlights.length > 0) {
660
+ lines.push("");
661
+ lines.push("**High-importance entries:**");
662
+ for (const h of summary.highlights.slice(0, 10)) {
663
+ lines.push(`- [${h.category}] ${h.text.slice(0, 100)}${h.text.length > 100 ? "..." : ""} (${h.date})`);
664
+ }
665
+ }
666
+ temporalContext = "\n" + lines.join("\n") + "\n";
667
+ }
668
+ }
669
+ catch {
670
+ // Non-fatal
671
+ }
672
+ }
673
+ // ── User Profile context: inject known preferences for continuity ──
674
+ let profileContext = "";
675
+ if (hasMemory && deps.memoryProvider?.getAllProfiles) {
676
+ try {
677
+ const profiles = deps.memoryProvider.getAllProfiles(deps.memoryUserId);
678
+ const entries = Object.entries(profiles);
679
+ if (entries.length > 0) {
680
+ const lines = ["## Known User Profile"];
681
+ lines.push("");
682
+ for (const [key, value] of entries.slice(0, 20)) {
683
+ lines.push(`- **${key}**: ${value}`);
684
+ }
685
+ profileContext = "\n" + lines.join("\n") + "\n";
686
+ }
687
+ }
688
+ catch {
689
+ // Non-fatal
690
+ }
691
+ }
692
+ let sessionDigest = "";
693
+ try {
694
+ sessionDigest = await readSessionDigest(deps.context.transcriptDir, sessionIds);
695
+ }
696
+ catch {
697
+ sessionDigest = "";
698
+ }
699
+ const prompt = buildConsolidationPrompt(deps.context.memoryRoot, deps.context.transcriptDir, sessionIds, {
700
+ hasQMemory: hasMemory,
701
+ categoryContext: categoryContext || undefined,
702
+ temporalContext: temporalContext || undefined,
703
+ profileContext: profileContext || undefined,
704
+ sessionDigest: sessionDigest || undefined,
705
+ });
706
+ deps.log.info(`[dream] starting consolidation — ${sessionIds.length} sessions, ` +
707
+ `memoryRoot=${deps.context.memoryRoot}` +
708
+ (hasMemory ? ", memory=enabled" : ""));
709
+ // Fire subagent.started hook
710
+ deps.hooks?.invoke("subagent.started", {
711
+ sessionId: deps.context.currentSessionId,
712
+ turnId: taskState.taskId,
713
+ subagentId: taskState.taskId,
714
+ agentType: "dream",
715
+ }).catch(() => { });
716
+ // ── Build tool restriction function ──
717
+ const canUse = (toolName, input) => canUseDreamTool(deps.context.memoryRoot, { toolName, input });
718
+ // ── Memory virtual tools (injected when provider present) ──
719
+ const qmemoryToolDefs = hasMemory ? [
720
+ {
721
+ type: "function",
722
+ function: {
723
+ name: "qmemory_search",
724
+ description: "Search the user's long-term memory (QMemory). Returns relevant memories sorted by relevance.",
725
+ parameters: {
726
+ type: "object",
727
+ properties: {
728
+ query: { type: "string", description: "Semantic search query" },
729
+ limit: { type: "number", description: "Max results (default: 10)" },
730
+ },
731
+ required: ["query"],
732
+ },
733
+ },
734
+ },
735
+ {
736
+ type: "function",
737
+ function: {
738
+ name: "qmemory_store",
739
+ description: "Submit a low-priority candidate to the memory consolidation pipeline. Use for user preferences, facts, and cross-project knowledge; it may merge, conflict, or wait for confirmation.",
740
+ parameters: {
741
+ type: "object",
742
+ properties: {
743
+ text: { type: "string", description: "The candidate memory text to submit" },
744
+ source: { type: "string", description: "Source label (e.g. 'dream-consolidation')" },
745
+ },
746
+ required: ["text"],
747
+ },
748
+ },
749
+ },
750
+ {
751
+ type: "function",
752
+ function: {
753
+ name: "qmemory_feedback",
754
+ description: "Submit feedback on recalled memories (e.g. mark as outdated or wrong).",
755
+ parameters: {
756
+ type: "object",
757
+ properties: {
758
+ memoryIds: { type: "array", items: { type: "string" }, description: "IDs of memories to give feedback on" },
759
+ signal: { type: "string", enum: ["useful", "irrelevant", "outdated", "wrong"], description: "Feedback signal" },
760
+ },
761
+ required: ["memoryIds", "signal"],
762
+ },
763
+ },
764
+ },
765
+ {
766
+ type: "function",
767
+ function: {
768
+ name: "qmemory_temporal",
769
+ description: "Query memories by time range. Use for temporal synthesis ('what happened last week', 'recent decisions').",
770
+ parameters: {
771
+ type: "object",
772
+ properties: {
773
+ days: { type: "number", description: "Look back N days from today (default: 7)" },
774
+ category: { type: "string", description: "Filter by category (optional)" },
775
+ },
776
+ },
777
+ },
778
+ },
779
+ {
780
+ type: "function",
781
+ function: {
782
+ name: "qmemory_profile",
783
+ description: "Read or write user profile entries. Use 'get' to read all, 'set' to update a key.",
784
+ parameters: {
785
+ type: "object",
786
+ properties: {
787
+ action: { type: "string", enum: ["get", "set"], description: "Action to perform" },
788
+ key: { type: "string", description: "Profile key (required for 'set')" },
789
+ value: { type: "string", description: "Profile value (required for 'set')" },
790
+ },
791
+ required: ["action"],
792
+ },
793
+ },
794
+ },
795
+ ] : [];
796
+ // ── Wrap tool invoker to handle memory tool calls ──
797
+ const wrappedToolInvoker = hasMemory
798
+ ? {
799
+ invoke: async (turnId, name, args, signal) => {
800
+ const provider = deps.memoryProvider;
801
+ const userId = deps.memoryUserId;
802
+ if (name === "qmemory_search") {
803
+ const { query, limit } = JSON.parse(args);
804
+ const results = await provider.search(query, userId, { limit: limit ?? 10 });
805
+ return { result: JSON.stringify(results) };
806
+ }
807
+ if (name === "qmemory_store") {
808
+ if (!provider.proposeExtracted)
809
+ return { result: "", error: "memory proposals are not supported" };
810
+ const { text, source } = JSON.parse(args);
811
+ const result = await provider.proposeExtracted([{ text, category: "insight", importance: 0.45 }], userId, {
812
+ sessionId: deps.context.currentSessionId,
813
+ source: source ?? "dream-consolidation",
814
+ });
815
+ return { result: JSON.stringify(result) };
816
+ }
817
+ if (name === "qmemory_feedback") {
818
+ if (!provider.feedback)
819
+ return { result: "Feedback noted (no handler)." };
820
+ const { memoryIds, signal } = JSON.parse(args);
821
+ const result = await provider.feedback(memoryIds, signal);
822
+ return { result: `Feedback applied to ${result.affected} memories.` };
823
+ }
824
+ if (name === "qmemory_temporal") {
825
+ if (!provider.synthesizeTimeline)
826
+ return { result: "Temporal synthesis not available." };
827
+ const { days, category } = JSON.parse(args);
828
+ const lookbackDays = days ?? 7;
829
+ const startMs = Date.now() - lookbackDays * 86_400_000;
830
+ const timeline = provider.synthesizeTimeline(userId, startMs, Date.now());
831
+ return { result: timeline };
832
+ }
833
+ if (name === "qmemory_profile") {
834
+ const { action, key, value } = JSON.parse(args);
835
+ if (action === "get") {
836
+ if (!provider.getAllProfiles)
837
+ return { result: "{}" };
838
+ const profiles = provider.getAllProfiles(userId);
839
+ return { result: JSON.stringify(profiles) };
840
+ }
841
+ if (action === "set" && key && value) {
842
+ if (!provider.setProfile)
843
+ return { result: "Profile write not available." };
844
+ provider.setProfile(userId, key, value);
845
+ return { result: `Profile updated: ${key} = ${value}` };
846
+ }
847
+ return { result: "Invalid profile action. Use 'get' or 'set' with key/value." };
848
+ }
849
+ return deps.toolInvoker.invoke(turnId, name, args, signal);
850
+ },
851
+ }
852
+ : deps.toolInvoker;
853
+ // Filter tools to only those allowed by canUseDreamTool.
854
+ // This dramatically reduces token count — the full manifest has dozens of
855
+ // tools (video, image, tts, team, cron...) irrelevant to dream.
856
+ const DREAM_ALLOWED_TOOLS = new Set([
857
+ "read", "write", "edit", "patch", "exec", "search",
858
+ "qmemory_search", "qmemory_store", "qmemory_feedback", "qmemory_temporal", "qmemory_profile",
859
+ ]);
860
+ const filteredTools = deps.tools.filter((t) => DREAM_ALLOWED_TOOLS.has(t.function.name));
861
+ const allTools = [...filteredTools, ...qmemoryToolDefs];
862
+ // Heartbeat the liveness lock while the dream runs so a legitimately long
863
+ // consolidation isn't reclaimed at the MAX_DREAM_RUN_MS ceiling.
864
+ const heartbeat = setInterval(() => {
865
+ void heartbeatConsolidationLock(deps.context.memoryRoot);
866
+ }, LOCK_HEARTBEAT_MS);
867
+ heartbeat.unref?.();
868
+ try {
869
+ // ── Run forked agent ──
870
+ const result = await runForkedAgent({
871
+ promptMessages: [
872
+ { role: "user", content: "Begin memory consolidation." },
873
+ ],
874
+ systemPrompt: prompt,
875
+ tools: allTools,
876
+ canUseTool: canUse,
877
+ transport: deps.transport,
878
+ toolInvoker: wrappedToolInvoker,
879
+ createAgentRunner: deps.createAgentRunner,
880
+ apiKey: deps.apiKey,
881
+ model: deps.model,
882
+ log: deps.log,
883
+ // Do NOT pass parent hooks — the parent's PermissionChecker hook would
884
+ // send tool.approval.request notifications that no host can respond to
885
+ // (dream runs autonomously). Security is enforced by canUseDreamTool.
886
+ hooks: undefined,
887
+ forkLabel: "dream-consolidation",
888
+ // Safety cap: dream typically completes in <10 rounds. Cap at 15 to
889
+ // prevent runaway loops with slower models while still allowing
890
+ // thorough consolidation.
891
+ maxTurns: 15,
892
+ parentSignal: deps.parentSignal,
893
+ skipTranscript: true,
894
+ });
895
+ // ── Extract touched files from events ──
896
+ const filesTouched = [];
897
+ for (const event of result.events) {
898
+ if (event.type === "tool_call") {
899
+ try {
900
+ const args = JSON.parse(event.arguments);
901
+ const path = (args.file_path ?? args.path ?? args.filePath);
902
+ if (path && isWithinMemoryDir(path, deps.context.memoryRoot)) {
903
+ filesTouched.push(path);
904
+ }
905
+ }
906
+ catch { /* ignore */ }
907
+ }
908
+ }
909
+ // ── Mark complete or rollback ──
910
+ if (result.ok) {
911
+ const summaryPath = await persistDreamSummaryArtifact({
912
+ memoryRoot: deps.context.memoryRoot,
913
+ sessionsReviewed: sessionIds.length,
914
+ durationMs: result.durationMs,
915
+ events: result.events,
916
+ filesTouched,
917
+ sessionDigest: sessionDigest || undefined,
918
+ });
919
+ filesTouched.push(summaryPath);
920
+ await markConsolidationComplete(deps.context.memoryRoot);
921
+ deps.log.info(`[dream] consolidation complete — ${filesTouched.length} files touched, ` +
922
+ `${result.durationMs}ms`);
923
+ }
924
+ else {
925
+ await rollbackConsolidationLock(deps.context.memoryRoot, taskState.priorLockMtime);
926
+ deps.log.warn(`[dream] consolidation failed: ${result.error}`);
927
+ }
928
+ // Fire subagent.stopped hook
929
+ deps.hooks?.invoke("subagent.stopped", {
930
+ sessionId: deps.context.currentSessionId,
931
+ turnId: taskState.taskId,
932
+ subagentId: taskState.taskId,
933
+ agentType: "dream",
934
+ reason: result.ok ? "normal" : "error",
935
+ error: result.error,
936
+ }).catch(() => { });
937
+ const uniqueFiles = [...new Set(filesTouched)];
938
+ settleDreamTask(result.ok, `Reviewed ${sessionIds.length} sessions, touched ${uniqueFiles.length} memory files.`, result.error);
939
+ return {
940
+ ok: result.ok,
941
+ sessionsReviewed: sessionIds.length,
942
+ filesTouched: uniqueFiles,
943
+ turns: [], // Turns are tracked internally by the forked agent
944
+ durationMs: Date.now() - startTime,
945
+ error: result.error,
946
+ };
947
+ }
948
+ catch (err) {
949
+ // Rollback lock on crash
950
+ await rollbackConsolidationLock(deps.context.memoryRoot, taskState.priorLockMtime).catch(() => { });
951
+ const errorMsg = err instanceof Error ? err.message : String(err);
952
+ deps.log.warn(`[dream] consolidation error: ${errorMsg}`);
953
+ deps.hooks?.invoke("subagent.stopped", {
954
+ sessionId: deps.context.currentSessionId,
955
+ turnId: taskState.taskId,
956
+ subagentId: taskState.taskId,
957
+ agentType: "dream",
958
+ reason: "error",
959
+ error: errorMsg,
960
+ }).catch(() => { });
961
+ settleDreamTask(false, "", errorMsg);
962
+ return {
963
+ ok: false,
964
+ sessionsReviewed: 0,
965
+ filesTouched: [],
966
+ turns: [],
967
+ durationMs: Date.now() - startTime,
968
+ error: errorMsg,
969
+ };
970
+ }
971
+ finally {
972
+ clearInterval(heartbeat);
973
+ }
974
+ }