qlogicagent 2.13.5 → 2.13.6

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 (1277) hide show
  1. package/dist/cli.js +303 -304
  2. package/dist/index.js +1268 -15
  3. package/dist/permissions.js +1 -1
  4. package/dist/pet-contracts.js +1 -1
  5. package/dist/types/cli/community-skill-installer.d.ts +2 -0
  6. package/dist/types/cli/handlers/community-handler.d.ts +6 -0
  7. package/dist/types/cli/runtime-dependency-catalog.d.ts +38 -12
  8. package/dist/types/cli/skills-query-service.d.ts +4 -0
  9. package/dist/types/config/cn-mirror.d.ts +23 -0
  10. package/dist/types/index.d.ts +1 -0
  11. package/dist/types/protocol/methods.d.ts +27 -3
  12. package/dist/types/runtime/community/community-consent-client.d.ts +58 -1
  13. package/dist/types/runtime/community/community-telemetry-types.d.ts +1 -1
  14. package/dist/types/runtime/community/package-materialize.d.ts +19 -0
  15. package/dist/types/runtime/community/ranged-download.d.ts +15 -0
  16. package/dist/types/runtime/community/registry-signature.d.ts +41 -0
  17. package/dist/types/runtime/infra/llmrouter-catalog.d.ts +3 -3
  18. package/dist/types/runtime/infra/model-registry.d.ts +17 -2
  19. package/dist/types/runtime/pet/pet-community-assets.d.ts +14 -1
  20. package/package.json +110 -110
  21. package/dist/agent/agent.d.ts +0 -48
  22. package/dist/agent/agent.js +0 -197
  23. package/dist/agent/memory-recall-context.d.ts +0 -18
  24. package/dist/agent/memory-recall-context.js +0 -139
  25. package/dist/agent/memory-recall-context.test.d.ts +0 -1
  26. package/dist/agent/memory-recall-context.test.js +0 -58
  27. package/dist/agent/memory-recall-injection.d.ts +0 -34
  28. package/dist/agent/memory-recall-injection.js +0 -66
  29. package/dist/agent/runtime-vars.d.ts +0 -48
  30. package/dist/agent/runtime-vars.js +0 -54
  31. package/dist/agent/tool-access.d.ts +0 -1
  32. package/dist/agent/tool-access.js +0 -1
  33. package/dist/agent/tool-loop/artifact-events.d.ts +0 -17
  34. package/dist/agent/tool-loop/artifact-events.js +0 -75
  35. package/dist/agent/tool-loop/budget-continuation-policy.d.ts +0 -22
  36. package/dist/agent/tool-loop/budget-continuation-policy.js +0 -44
  37. package/dist/agent/tool-loop/completion-action-policy.d.ts +0 -19
  38. package/dist/agent/tool-loop/completion-action-policy.js +0 -68
  39. package/dist/agent/tool-loop/completion-action-policy.test.d.ts +0 -1
  40. package/dist/agent/tool-loop/completion-action-policy.test.js +0 -77
  41. package/dist/agent/tool-loop/completion-stop-policy.d.ts +0 -19
  42. package/dist/agent/tool-loop/completion-stop-policy.js +0 -31
  43. package/dist/agent/tool-loop/compression-pipeline.d.ts +0 -44
  44. package/dist/agent/tool-loop/compression-pipeline.js +0 -68
  45. package/dist/agent/tool-loop/loop-helpers.d.ts +0 -15
  46. package/dist/agent/tool-loop/loop-helpers.js +0 -86
  47. package/dist/agent/tool-loop/recovery-helpers.d.ts +0 -18
  48. package/dist/agent/tool-loop/recovery-helpers.js +0 -42
  49. package/dist/agent/tool-loop/single-round.d.ts +0 -2
  50. package/dist/agent/tool-loop/single-round.js +0 -43
  51. package/dist/agent/tool-loop/skill-instruction-policy.d.ts +0 -7
  52. package/dist/agent/tool-loop/skill-instruction-policy.js +0 -18
  53. package/dist/agent/tool-loop/stream-error-recovery.d.ts +0 -59
  54. package/dist/agent/tool-loop/stream-error-recovery.js +0 -93
  55. package/dist/agent/tool-loop/tool-failure-policy.d.ts +0 -22
  56. package/dist/agent/tool-loop/tool-failure-policy.js +0 -46
  57. package/dist/agent/tool-loop/tool-result-events.d.ts +0 -11
  58. package/dist/agent/tool-loop/tool-result-events.js +0 -59
  59. package/dist/agent/tool-loop/tool-result-events.test.d.ts +0 -1
  60. package/dist/agent/tool-loop/tool-result-events.test.js +0 -30
  61. package/dist/agent/tool-loop.contract.test.d.ts +0 -1
  62. package/dist/agent/tool-loop.contract.test.js +0 -254
  63. package/dist/agent/tool-loop.d.ts +0 -121
  64. package/dist/agent/tool-loop.js +0 -1017
  65. package/dist/agent/tool-loop.policy-architecture.test.d.ts +0 -1
  66. package/dist/agent/tool-loop.policy-architecture.test.js +0 -21
  67. package/dist/agent/tool-loop.states.test.d.ts +0 -1
  68. package/dist/agent/tool-loop.states.test.js +0 -211
  69. package/dist/agent/tunable-defaults.d.ts +0 -1
  70. package/dist/agent/tunable-defaults.js +0 -1
  71. package/dist/agent/types.d.ts +0 -311
  72. package/dist/agent/types.js +0 -8
  73. package/dist/cli/acp-commands.d.ts +0 -32
  74. package/dist/cli/acp-commands.js +0 -145
  75. package/dist/cli/acp-commands.test.d.ts +0 -1
  76. package/dist/cli/acp-commands.test.js +0 -89
  77. package/dist/cli/acp-extended-handlers.d.ts +0 -69
  78. package/dist/cli/acp-extended-handlers.js +0 -484
  79. package/dist/cli/acp-extended-handlers.product-confirm.test.d.ts +0 -1
  80. package/dist/cli/acp-extended-handlers.product-confirm.test.js +0 -56
  81. package/dist/cli/acp-extended-handlers.product-project.test.d.ts +0 -1
  82. package/dist/cli/acp-extended-handlers.product-project.test.js +0 -66
  83. package/dist/cli/acp-extended-handlers.solo-project.test.d.ts +0 -1
  84. package/dist/cli/acp-extended-handlers.solo-project.test.js +0 -51
  85. package/dist/cli/acp-extended-handlers.specchat.test.d.ts +0 -1
  86. package/dist/cli/acp-extended-handlers.specchat.test.js +0 -62
  87. package/dist/cli/acp-extended-handlers.workflowchat.test.d.ts +0 -1
  88. package/dist/cli/acp-extended-handlers.workflowchat.test.js +0 -49
  89. package/dist/cli/acp-extended-host-adapter.d.ts +0 -29
  90. package/dist/cli/acp-extended-host-adapter.js +0 -40
  91. package/dist/cli/acp-extended-host-adapter.test.d.ts +0 -1
  92. package/dist/cli/acp-extended-host-adapter.test.js +0 -63
  93. package/dist/cli/acp-message-router.d.ts +0 -8
  94. package/dist/cli/acp-message-router.js +0 -40
  95. package/dist/cli/acp-message-router.test.d.ts +0 -1
  96. package/dist/cli/acp-message-router.test.js +0 -30
  97. package/dist/cli/acp-session-handlers.d.ts +0 -41
  98. package/dist/cli/acp-session-handlers.js +0 -304
  99. package/dist/cli/acp-session-handlers.test.d.ts +0 -1
  100. package/dist/cli/acp-session-handlers.test.js +0 -346
  101. package/dist/cli/acp-session-host.d.ts +0 -48
  102. package/dist/cli/acp-session-host.js +0 -1
  103. package/dist/cli/agent-config-coordinator.d.ts +0 -16
  104. package/dist/cli/agent-config-coordinator.js +0 -56
  105. package/dist/cli/agent-config-coordinator.test.d.ts +0 -1
  106. package/dist/cli/agent-config-coordinator.test.js +0 -51
  107. package/dist/cli/agent-config-runtime.d.ts +0 -11
  108. package/dist/cli/agent-config-runtime.js +0 -4
  109. package/dist/cli/agent-runner-factory.d.ts +0 -2
  110. package/dist/cli/agent-runner-factory.js +0 -11
  111. package/dist/cli/agent-runtime-bootstrap.d.ts +0 -67
  112. package/dist/cli/agent-runtime-bootstrap.js +0 -104
  113. package/dist/cli/agent-runtime-ports-adapter.d.ts +0 -2
  114. package/dist/cli/agent-runtime-ports-adapter.js +0 -22
  115. package/dist/cli/agent-runtime-session-state.d.ts +0 -24
  116. package/dist/cli/agent-runtime-session-state.js +0 -51
  117. package/dist/cli/agent-status-notifier.d.ts +0 -11
  118. package/dist/cli/agent-status-notifier.js +0 -26
  119. package/dist/cli/agent-status-notifier.test.d.ts +0 -1
  120. package/dist/cli/agent-status-notifier.test.js +0 -33
  121. package/dist/cli/base-tool-bootstrap.d.ts +0 -16
  122. package/dist/cli/base-tool-bootstrap.js +0 -20
  123. package/dist/cli/cli-acp-request-handler.d.ts +0 -11
  124. package/dist/cli/cli-acp-request-handler.js +0 -61
  125. package/dist/cli/cli-acp-request-handler.test.d.ts +0 -1
  126. package/dist/cli/cli-acp-request-handler.test.js +0 -58
  127. package/dist/cli/cli-agent-builder.d.ts +0 -35
  128. package/dist/cli/cli-agent-builder.js +0 -33
  129. package/dist/cli/community-resource-installer.d.ts +0 -30
  130. package/dist/cli/community-resource-installer.js +0 -66
  131. package/dist/cli/community-resource-installer.test.d.ts +0 -1
  132. package/dist/cli/community-resource-installer.test.js +0 -175
  133. package/dist/cli/community-skill-installer.d.ts +0 -12
  134. package/dist/cli/community-skill-installer.js +0 -220
  135. package/dist/cli/community-skill-installer.test.d.ts +0 -1
  136. package/dist/cli/community-skill-installer.test.js +0 -179
  137. package/dist/cli/community-workflow-installer.d.ts +0 -29
  138. package/dist/cli/community-workflow-installer.js +0 -69
  139. package/dist/cli/conversation-context.d.ts +0 -30
  140. package/dist/cli/conversation-context.js +0 -69
  141. package/dist/cli/conversation-context.test.d.ts +0 -1
  142. package/dist/cli/conversation-context.test.js +0 -61
  143. package/dist/cli/core-tool-coordinator.d.ts +0 -41
  144. package/dist/cli/core-tool-coordinator.js +0 -55
  145. package/dist/cli/core-tools/agent-tool-bootstrap.d.ts +0 -12
  146. package/dist/cli/core-tools/agent-tool-bootstrap.js +0 -5
  147. package/dist/cli/core-tools/agent-tool-service.background.test.d.ts +0 -1
  148. package/dist/cli/core-tools/agent-tool-service.background.test.js +0 -212
  149. package/dist/cli/core-tools/agent-tool-service.d.ts +0 -36
  150. package/dist/cli/core-tools/agent-tool-service.js +0 -152
  151. package/dist/cli/core-tools/checkpoint-tool-bootstrap.d.ts +0 -9
  152. package/dist/cli/core-tools/checkpoint-tool-bootstrap.js +0 -8
  153. package/dist/cli/core-tools/checkpoint-tool-service.d.ts +0 -7
  154. package/dist/cli/core-tools/checkpoint-tool-service.js +0 -5
  155. package/dist/cli/core-tools/config-tool-bootstrap.d.ts +0 -5
  156. package/dist/cli/core-tools/config-tool-bootstrap.js +0 -5
  157. package/dist/cli/core-tools/config-tool-service.d.ts +0 -11
  158. package/dist/cli/core-tools/config-tool-service.js +0 -86
  159. package/dist/cli/core-tools/config-tool-service.test.d.ts +0 -1
  160. package/dist/cli/core-tools/config-tool-service.test.js +0 -69
  161. package/dist/cli/core-tools/cron-tool-bootstrap.d.ts +0 -8
  162. package/dist/cli/core-tools/cron-tool-bootstrap.js +0 -8
  163. package/dist/cli/core-tools/cron-workflow-service.d.ts +0 -7
  164. package/dist/cli/core-tools/cron-workflow-service.js +0 -206
  165. package/dist/cli/core-tools/cron-workflow-service.test.d.ts +0 -1
  166. package/dist/cli/core-tools/cron-workflow-service.test.js +0 -78
  167. package/dist/cli/core-tools/fork-system-prompt.d.ts +0 -45
  168. package/dist/cli/core-tools/fork-system-prompt.js +0 -66
  169. package/dist/cli/core-tools/fork-system-prompt.test.d.ts +0 -1
  170. package/dist/cli/core-tools/fork-system-prompt.test.js +0 -77
  171. package/dist/cli/core-tools/monitor-tool-bootstrap.d.ts +0 -7
  172. package/dist/cli/core-tools/monitor-tool-bootstrap.js +0 -8
  173. package/dist/cli/core-tools/monitor-tool-service.d.ts +0 -6
  174. package/dist/cli/core-tools/monitor-tool-service.js +0 -74
  175. package/dist/cli/core-tools/registry.d.ts +0 -8
  176. package/dist/cli/core-tools/registry.js +0 -60
  177. package/dist/cli/core-tools/session-tool-manifest.d.ts +0 -12
  178. package/dist/cli/core-tools/session-tool-manifest.js +0 -19
  179. package/dist/cli/core-tools/team-registry.d.ts +0 -62
  180. package/dist/cli/core-tools/team-registry.js +0 -85
  181. package/dist/cli/core-tools/team-registry.test.d.ts +0 -1
  182. package/dist/cli/core-tools/team-registry.test.js +0 -79
  183. package/dist/cli/core-tools/team-tool-bootstrap.d.ts +0 -11
  184. package/dist/cli/core-tools/team-tool-bootstrap.js +0 -8
  185. package/dist/cli/core-tools/team-tool-service.d.ts +0 -43
  186. package/dist/cli/core-tools/team-tool-service.js +0 -326
  187. package/dist/cli/core-tools/team-tool-service.test.d.ts +0 -1
  188. package/dist/cli/core-tools/team-tool-service.test.js +0 -48
  189. package/dist/cli/credential-vault.d.ts +0 -62
  190. package/dist/cli/credential-vault.js +0 -190
  191. package/dist/cli/credential-vault.test.d.ts +0 -6
  192. package/dist/cli/credential-vault.test.js +0 -130
  193. package/dist/cli/default-project-bootstrap.d.ts +0 -8
  194. package/dist/cli/default-project-bootstrap.js +0 -39
  195. package/dist/cli/dev-tool-bootstrap.d.ts +0 -8
  196. package/dist/cli/dev-tool-bootstrap.js +0 -19
  197. package/dist/cli/dev-tools/dev-tool-bootstrap-service.d.ts +0 -6
  198. package/dist/cli/dev-tools/dev-tool-bootstrap-service.js +0 -6
  199. package/dist/cli/dev-tools/dev-tool-registry.d.ts +0 -6
  200. package/dist/cli/dev-tools/dev-tool-registry.js +0 -7
  201. package/dist/cli/dev-tools/lsp-tool-service.d.ts +0 -5
  202. package/dist/cli/dev-tools/lsp-tool-service.js +0 -30
  203. package/dist/cli/dev-tools/lsp-tool-service.test.d.ts +0 -1
  204. package/dist/cli/dev-tools/lsp-tool-service.test.js +0 -14
  205. package/dist/cli/dream-host-adapter.d.ts +0 -23
  206. package/dist/cli/dream-host-adapter.js +0 -33
  207. package/dist/cli/gateway-rpc-connection.d.ts +0 -50
  208. package/dist/cli/gateway-rpc-connection.js +0 -133
  209. package/dist/cli/handlers/agents-handler.d.ts +0 -51
  210. package/dist/cli/handlers/agents-handler.js +0 -769
  211. package/dist/cli/handlers/community-handler.d.ts +0 -39
  212. package/dist/cli/handlers/community-handler.js +0 -671
  213. package/dist/cli/handlers/community-handler.test.d.ts +0 -1
  214. package/dist/cli/handlers/community-handler.test.js +0 -1602
  215. package/dist/cli/handlers/config-handler.d.ts +0 -28
  216. package/dist/cli/handlers/config-handler.js +0 -438
  217. package/dist/cli/handlers/config-handler.test.d.ts +0 -1
  218. package/dist/cli/handlers/config-handler.test.js +0 -140
  219. package/dist/cli/handlers/config-handler.tools-list.test.d.ts +0 -1
  220. package/dist/cli/handlers/config-handler.tools-list.test.js +0 -93
  221. package/dist/cli/handlers/control-handler.d.ts +0 -23
  222. package/dist/cli/handlers/control-handler.js +0 -88
  223. package/dist/cli/handlers/dream-handler.d.ts +0 -31
  224. package/dist/cli/handlers/dream-handler.js +0 -235
  225. package/dist/cli/handlers/files-handler.d.ts +0 -22
  226. package/dist/cli/handlers/files-handler.instructions.test.d.ts +0 -1
  227. package/dist/cli/handlers/files-handler.instructions.test.js +0 -127
  228. package/dist/cli/handlers/files-handler.js +0 -593
  229. package/dist/cli/handlers/media-handler.d.ts +0 -19
  230. package/dist/cli/handlers/media-handler.js +0 -212
  231. package/dist/cli/handlers/media-handler.test.d.ts +0 -1
  232. package/dist/cli/handlers/media-handler.test.js +0 -107
  233. package/dist/cli/handlers/memory-handler.d.ts +0 -61
  234. package/dist/cli/handlers/memory-handler.js +0 -792
  235. package/dist/cli/handlers/pet-confirm-handler.d.ts +0 -7
  236. package/dist/cli/handlers/pet-confirm-handler.js +0 -6
  237. package/dist/cli/handlers/pet-handler.d.ts +0 -47
  238. package/dist/cli/handlers/pet-handler.js +0 -455
  239. package/dist/cli/handlers/pet-handler.test.d.ts +0 -1
  240. package/dist/cli/handlers/pet-handler.test.js +0 -620
  241. package/dist/cli/handlers/product-handler.d.ts +0 -37
  242. package/dist/cli/handlers/product-handler.js +0 -393
  243. package/dist/cli/handlers/project-handler.d.ts +0 -28
  244. package/dist/cli/handlers/project-handler.js +0 -421
  245. package/dist/cli/handlers/session-handler.channel.test.d.ts +0 -1
  246. package/dist/cli/handlers/session-handler.channel.test.js +0 -157
  247. package/dist/cli/handlers/session-handler.d.ts +0 -58
  248. package/dist/cli/handlers/session-handler.delete.test.d.ts +0 -1
  249. package/dist/cli/handlers/session-handler.delete.test.js +0 -38
  250. package/dist/cli/handlers/session-handler.js +0 -833
  251. package/dist/cli/handlers/session-handler.resume.test.d.ts +0 -1
  252. package/dist/cli/handlers/session-handler.resume.test.js +0 -66
  253. package/dist/cli/handlers/settings-handler.d.ts +0 -19
  254. package/dist/cli/handlers/settings-handler.js +0 -710
  255. package/dist/cli/handlers/settings-handler.remote-catalog.test.d.ts +0 -1
  256. package/dist/cli/handlers/settings-handler.remote-catalog.test.js +0 -1247
  257. package/dist/cli/handlers/skills-handler.d.ts +0 -29
  258. package/dist/cli/handlers/skills-handler.js +0 -368
  259. package/dist/cli/handlers/skills-handler.profile.test.d.ts +0 -1
  260. package/dist/cli/handlers/skills-handler.profile.test.js +0 -70
  261. package/dist/cli/handlers/solo-handler.d.ts +0 -38
  262. package/dist/cli/handlers/solo-handler.js +0 -351
  263. package/dist/cli/handlers/turn-handler.d.ts +0 -52
  264. package/dist/cli/handlers/turn-handler.js +0 -574
  265. package/dist/cli/handlers/turn-handler.test.d.ts +0 -1
  266. package/dist/cli/handlers/turn-handler.test.js +0 -22
  267. package/dist/cli/handlers/workflow-handler.d.ts +0 -181
  268. package/dist/cli/handlers/workflow-handler.events.test.d.ts +0 -1
  269. package/dist/cli/handlers/workflow-handler.events.test.js +0 -113
  270. package/dist/cli/handlers/workflow-handler.js +0 -1449
  271. package/dist/cli/handlers/workflow-handler.multiroot.test.d.ts +0 -12
  272. package/dist/cli/handlers/workflow-handler.multiroot.test.js +0 -745
  273. package/dist/cli/idle-dream-coordinator.d.ts +0 -47
  274. package/dist/cli/idle-dream-coordinator.js +0 -126
  275. package/dist/cli/idle-dream-coordinator.test.d.ts +0 -1
  276. package/dist/cli/idle-dream-coordinator.test.js +0 -125
  277. package/dist/cli/main.d.ts +0 -15
  278. package/dist/cli/main.js +0 -112
  279. package/dist/cli/mcp-bootstrap.d.ts +0 -20
  280. package/dist/cli/mcp-bootstrap.js +0 -66
  281. package/dist/cli/mcp-plugin-bootstrap.d.ts +0 -2
  282. package/dist/cli/mcp-plugin-bootstrap.js +0 -2
  283. package/dist/cli/mcp-plugin-bootstrap.test.d.ts +0 -1
  284. package/dist/cli/mcp-plugin-bootstrap.test.js +0 -38
  285. package/dist/cli/mcp-tool-proxy.d.ts +0 -7
  286. package/dist/cli/mcp-tool-proxy.js +0 -15
  287. package/dist/cli/media-capability-schema.d.ts +0 -49
  288. package/dist/cli/media-capability-schema.js +0 -384
  289. package/dist/cli/media-capability-schema.test.d.ts +0 -1
  290. package/dist/cli/media-capability-schema.test.js +0 -103
  291. package/dist/cli/media-file-api-service.d.ts +0 -73
  292. package/dist/cli/media-file-api-service.js +0 -143
  293. package/dist/cli/media-file-api-service.test.d.ts +0 -1
  294. package/dist/cli/media-file-api-service.test.js +0 -119
  295. package/dist/cli/media-file-tool-service.d.ts +0 -13
  296. package/dist/cli/media-file-tool-service.js +0 -63
  297. package/dist/cli/media-runtime-capability.test.d.ts +0 -1
  298. package/dist/cli/media-runtime-capability.test.js +0 -106
  299. package/dist/cli/media-runtime-facade.d.ts +0 -51
  300. package/dist/cli/media-runtime-facade.js +0 -389
  301. package/dist/cli/media-runtime-facade.test.d.ts +0 -1
  302. package/dist/cli/media-runtime-facade.test.js +0 -42
  303. package/dist/cli/memory-candidate-service.d.ts +0 -83
  304. package/dist/cli/memory-candidate-service.js +0 -341
  305. package/dist/cli/memory-coordinator.d.ts +0 -37
  306. package/dist/cli/memory-coordinator.js +0 -85
  307. package/dist/cli/memory-coordinator.test.d.ts +0 -1
  308. package/dist/cli/memory-coordinator.test.js +0 -78
  309. package/dist/cli/memory-multimodal.test.d.ts +0 -1
  310. package/dist/cli/memory-multimodal.test.js +0 -137
  311. package/dist/cli/model-client-resolver.d.ts +0 -31
  312. package/dist/cli/model-client-resolver.js +0 -173
  313. package/dist/cli/model-client-resolver.test.d.ts +0 -1
  314. package/dist/cli/model-client-resolver.test.js +0 -105
  315. package/dist/cli/multi-agent-handler-host.d.ts +0 -27
  316. package/dist/cli/multi-agent-handler-host.js +0 -55
  317. package/dist/cli/multi-agent-handler-host.test.d.ts +0 -1
  318. package/dist/cli/multi-agent-handler-host.test.js +0 -63
  319. package/dist/cli/multi-agent-state-coordinator.d.ts +0 -11
  320. package/dist/cli/multi-agent-state-coordinator.js +0 -7
  321. package/dist/cli/permission-approval-bridge.d.ts +0 -15
  322. package/dist/cli/permission-approval-bridge.js +0 -66
  323. package/dist/cli/permission-approval-bridge.test.d.ts +0 -1
  324. package/dist/cli/permission-approval-bridge.test.js +0 -100
  325. package/dist/cli/permission-bootstrap.d.ts +0 -40
  326. package/dist/cli/permission-bootstrap.js +0 -58
  327. package/dist/cli/permission-bootstrap.test.d.ts +0 -1
  328. package/dist/cli/permission-bootstrap.test.js +0 -129
  329. package/dist/cli/permission-runtime-service.d.ts +0 -9
  330. package/dist/cli/permission-runtime-service.js +0 -11
  331. package/dist/cli/permission-settings-store.d.ts +0 -1
  332. package/dist/cli/permission-settings-store.js +0 -3
  333. package/dist/cli/permission-settings-store.test.d.ts +0 -1
  334. package/dist/cli/permission-settings-store.test.js +0 -65
  335. package/dist/cli/pet-confirm-coordinator.d.ts +0 -20
  336. package/dist/cli/pet-confirm-coordinator.js +0 -32
  337. package/dist/cli/pet-confirm-coordinator.test.d.ts +0 -1
  338. package/dist/cli/pet-confirm-coordinator.test.js +0 -34
  339. package/dist/cli/pet-runtime.d.ts +0 -55
  340. package/dist/cli/pet-runtime.js +0 -220
  341. package/dist/cli/pet-runtime.test.d.ts +0 -1
  342. package/dist/cli/pet-runtime.test.js +0 -46
  343. package/dist/cli/plugin-bootstrap.d.ts +0 -15
  344. package/dist/cli/plugin-bootstrap.js +0 -63
  345. package/dist/cli/product-coordinator.d.ts +0 -34
  346. package/dist/cli/product-coordinator.js +0 -124
  347. package/dist/cli/product-coordinator.test.d.ts +0 -1
  348. package/dist/cli/product-coordinator.test.js +0 -51
  349. package/dist/cli/project-command-service.d.ts +0 -28
  350. package/dist/cli/project-command-service.js +0 -99
  351. package/dist/cli/project-context.d.ts +0 -1
  352. package/dist/cli/project-context.js +0 -4
  353. package/dist/cli/project-memory-store-factory.d.ts +0 -2
  354. package/dist/cli/project-memory-store-factory.js +0 -11
  355. package/dist/cli/project-template-seeder.d.ts +0 -5
  356. package/dist/cli/project-template-seeder.js +0 -43
  357. package/dist/cli/provider-core-facade.d.ts +0 -31
  358. package/dist/cli/provider-core-facade.js +0 -51
  359. package/dist/cli/provider-core-facade.test.d.ts +0 -1
  360. package/dist/cli/provider-core-facade.test.js +0 -9
  361. package/dist/cli/resolved-agent-cache.d.ts +0 -47
  362. package/dist/cli/resolved-agent-cache.js +0 -38
  363. package/dist/cli/rpc-registry.community.test.d.ts +0 -1
  364. package/dist/cli/rpc-registry.community.test.js +0 -45
  365. package/dist/cli/rpc-registry.d.ts +0 -62
  366. package/dist/cli/rpc-registry.js +0 -243
  367. package/dist/cli/runtime-dependency-catalog.d.ts +0 -56
  368. package/dist/cli/runtime-dependency-catalog.js +0 -110
  369. package/dist/cli/runtime-hook-bootstrap.d.ts +0 -38
  370. package/dist/cli/runtime-hook-bootstrap.js +0 -71
  371. package/dist/cli/runtime-watcher-bootstrap.d.ts +0 -15
  372. package/dist/cli/runtime-watcher-bootstrap.js +0 -30
  373. package/dist/cli/session-context.d.ts +0 -32
  374. package/dist/cli/session-context.js +0 -15
  375. package/dist/cli/session-coordinator.d.ts +0 -22
  376. package/dist/cli/session-coordinator.js +0 -47
  377. package/dist/cli/session-coordinator.test.d.ts +0 -1
  378. package/dist/cli/session-coordinator.test.js +0 -61
  379. package/dist/cli/session-history-coordinator.d.ts +0 -8
  380. package/dist/cli/session-history-coordinator.js +0 -57
  381. package/dist/cli/session-history-coordinator.test.d.ts +0 -1
  382. package/dist/cli/session-history-coordinator.test.js +0 -39
  383. package/dist/cli/session-query-service.d.ts +0 -24
  384. package/dist/cli/session-query-service.js +0 -57
  385. package/dist/cli/skill-meta-subturn-service.d.ts +0 -26
  386. package/dist/cli/skill-meta-subturn-service.js +0 -93
  387. package/dist/cli/skill-meta-tool-bootstrap.d.ts +0 -34
  388. package/dist/cli/skill-meta-tool-bootstrap.js +0 -295
  389. package/dist/cli/skill-meta-tool-bootstrap.test.d.ts +0 -1
  390. package/dist/cli/skill-meta-tool-bootstrap.test.js +0 -42
  391. package/dist/cli/skill-supporting-file.test.d.ts +0 -1
  392. package/dist/cli/skill-supporting-file.test.js +0 -97
  393. package/dist/cli/skills-query-service.d.ts +0 -29
  394. package/dist/cli/skills-query-service.js +0 -38
  395. package/dist/cli/stdio-acp-protocol-coordinator.d.ts +0 -18
  396. package/dist/cli/stdio-acp-protocol-coordinator.js +0 -33
  397. package/dist/cli/stdio-acp-request-host.d.ts +0 -28
  398. package/dist/cli/stdio-acp-request-host.js +0 -82
  399. package/dist/cli/stdio-acp-request-host.test.d.ts +0 -1
  400. package/dist/cli/stdio-acp-request-host.test.js +0 -61
  401. package/dist/cli/stdio-agent-session-bootstrap.d.ts +0 -80
  402. package/dist/cli/stdio-agent-session-bootstrap.js +0 -74
  403. package/dist/cli/stdio-rpc-handler-hosts.d.ts +0 -50
  404. package/dist/cli/stdio-rpc-handler-hosts.js +0 -135
  405. package/dist/cli/stdio-rpc-handler-hosts.test.d.ts +0 -1
  406. package/dist/cli/stdio-rpc-handler-hosts.test.js +0 -10
  407. package/dist/cli/stdio-runtime-bootstrap.d.ts +0 -16
  408. package/dist/cli/stdio-runtime-bootstrap.js +0 -17
  409. package/dist/cli/stdio-runtime-services.d.ts +0 -36
  410. package/dist/cli/stdio-runtime-services.js +0 -53
  411. package/dist/cli/stdio-server.architecture.test.d.ts +0 -1
  412. package/dist/cli/stdio-server.architecture.test.js +0 -18
  413. package/dist/cli/stdio-server.contract.test.d.ts +0 -1
  414. package/dist/cli/stdio-server.contract.test.js +0 -96
  415. package/dist/cli/stdio-server.d.ts +0 -211
  416. package/dist/cli/stdio-server.js +0 -731
  417. package/dist/cli/stdio-session-runtime-coordinator.d.ts +0 -19
  418. package/dist/cli/stdio-session-runtime-coordinator.js +0 -21
  419. package/dist/cli/test-support/tool-catalog-fixture.d.ts +0 -3
  420. package/dist/cli/test-support/tool-catalog-fixture.js +0 -98
  421. package/dist/cli/tool-bootstrap-core-registration.d.ts +0 -30
  422. package/dist/cli/tool-bootstrap-core-registration.js +0 -555
  423. package/dist/cli/tool-bootstrap-media-registration.d.ts +0 -8
  424. package/dist/cli/tool-bootstrap-media-registration.js +0 -348
  425. package/dist/cli/tool-bootstrap-paths.d.ts +0 -7
  426. package/dist/cli/tool-bootstrap-paths.js +0 -17
  427. package/dist/cli/tool-bootstrap-providers.d.ts +0 -3
  428. package/dist/cli/tool-bootstrap-providers.js +0 -10
  429. package/dist/cli/tool-bootstrap-web-registration.d.ts +0 -13
  430. package/dist/cli/tool-bootstrap-web-registration.js +0 -144
  431. package/dist/cli/tool-bootstrap-workflow-registration.d.ts +0 -7
  432. package/dist/cli/tool-bootstrap-workflow-registration.js +0 -65
  433. package/dist/cli/tool-bootstrap.background-exec.test.d.ts +0 -1
  434. package/dist/cli/tool-bootstrap.background-exec.test.js +0 -83
  435. package/dist/cli/tool-bootstrap.cwd.test.d.ts +0 -1
  436. package/dist/cli/tool-bootstrap.cwd.test.js +0 -37
  437. package/dist/cli/tool-bootstrap.d.ts +0 -63
  438. package/dist/cli/tool-bootstrap.instructions.test.d.ts +0 -1
  439. package/dist/cli/tool-bootstrap.instructions.test.js +0 -37
  440. package/dist/cli/tool-bootstrap.js +0 -255
  441. package/dist/cli/tool-bootstrap.media-provider-alias.test.d.ts +0 -1
  442. package/dist/cli/tool-bootstrap.media-provider-alias.test.js +0 -90
  443. package/dist/cli/tool-bootstrap.test.d.ts +0 -1
  444. package/dist/cli/tool-bootstrap.test.js +0 -94
  445. package/dist/cli/tool-catalog.d.ts +0 -4
  446. package/dist/cli/tool-catalog.js +0 -14
  447. package/dist/cli/tool-invoker-factory.d.ts +0 -12
  448. package/dist/cli/tool-invoker-factory.js +0 -45
  449. package/dist/cli/tool-registration-modules.contract.test.d.ts +0 -1
  450. package/dist/cli/tool-registration-modules.contract.test.js +0 -75
  451. package/dist/cli/tool-registry-adapter.d.ts +0 -5
  452. package/dist/cli/tool-registry-adapter.js +0 -27
  453. package/dist/cli/tool-result-processor.d.ts +0 -14
  454. package/dist/cli/tool-result-processor.js +0 -83
  455. package/dist/cli/tool-result-processor.test.d.ts +0 -1
  456. package/dist/cli/tool-result-processor.test.js +0 -69
  457. package/dist/cli/transport.d.ts +0 -30
  458. package/dist/cli/transport.js +0 -68
  459. package/dist/cli/tunable-store.d.ts +0 -26
  460. package/dist/cli/tunable-store.js +0 -105
  461. package/dist/cli/turn-ask-user-setup.d.ts +0 -24
  462. package/dist/cli/turn-ask-user-setup.js +0 -46
  463. package/dist/cli/turn-ask-user-setup.test.d.ts +0 -1
  464. package/dist/cli/turn-ask-user-setup.test.js +0 -39
  465. package/dist/cli/turn-core.d.ts +0 -57
  466. package/dist/cli/turn-core.js +0 -58
  467. package/dist/cli/turn-event-forwarder.d.ts +0 -10
  468. package/dist/cli/turn-event-forwarder.js +0 -136
  469. package/dist/cli/turn-lifecycle.d.ts +0 -19
  470. package/dist/cli/turn-lifecycle.js +0 -53
  471. package/dist/cli/turn-lifecycle.test.d.ts +0 -1
  472. package/dist/cli/turn-lifecycle.test.js +0 -32
  473. package/dist/cli/turn-media-setup.d.ts +0 -19
  474. package/dist/cli/turn-media-setup.js +0 -71
  475. package/dist/cli/turn-media-setup.test.d.ts +0 -1
  476. package/dist/cli/turn-media-setup.test.js +0 -280
  477. package/dist/cli/turn-permission-sync.d.ts +0 -6
  478. package/dist/cli/turn-permission-sync.js +0 -7
  479. package/dist/cli/turn-permission-sync.test.d.ts +0 -1
  480. package/dist/cli/turn-permission-sync.test.js +0 -20
  481. package/dist/cli/turn-project-router.d.ts +0 -22
  482. package/dist/cli/turn-project-router.js +0 -141
  483. package/dist/cli/turn-project-router.test.d.ts +0 -1
  484. package/dist/cli/turn-project-router.test.js +0 -79
  485. package/dist/cli/turn-skill-autopersist.d.ts +0 -47
  486. package/dist/cli/turn-skill-autopersist.js +0 -262
  487. package/dist/cli/turn-skill-autopersist.test.d.ts +0 -1
  488. package/dist/cli/turn-skill-autopersist.test.js +0 -222
  489. package/dist/cli/turn-suggestion-generator.d.ts +0 -15
  490. package/dist/cli/turn-suggestion-generator.js +0 -34
  491. package/dist/cli/workflow-host-adapter.d.ts +0 -29
  492. package/dist/cli/workflow-host-adapter.js +0 -15
  493. package/dist/cli/workflow-host-adapter.test.d.ts +0 -1
  494. package/dist/cli/workflow-host-adapter.test.js +0 -35
  495. package/dist/config/config.d.ts +0 -17
  496. package/dist/config/config.js +0 -21
  497. package/dist/contracts/fire-hook.d.ts +0 -14
  498. package/dist/contracts/fire-hook.js +0 -14
  499. package/dist/contracts/fire-hook.test.d.ts +0 -1
  500. package/dist/contracts/fire-hook.test.js +0 -34
  501. package/dist/contracts/hooks.d.ts +0 -186
  502. package/dist/contracts/hooks.js +0 -7
  503. package/dist/contracts/index.d.ts +0 -4
  504. package/dist/contracts/index.js +0 -4
  505. package/dist/index.d.ts +0 -15
  506. package/dist/orchestration/agent-instance.d.ts +0 -84
  507. package/dist/orchestration/agent-instance.js +0 -535
  508. package/dist/orchestration/context/context-collapse.d.ts +0 -58
  509. package/dist/orchestration/context/context-collapse.js +0 -134
  510. package/dist/orchestration/context/reactive-compact.d.ts +0 -73
  511. package/dist/orchestration/context/reactive-compact.js +0 -78
  512. package/dist/orchestration/context/turn-loop-guard.d.ts +0 -86
  513. package/dist/orchestration/context/turn-loop-guard.js +0 -100
  514. package/dist/orchestration/dag-scheduler.d.ts +0 -167
  515. package/dist/orchestration/dag-scheduler.js +0 -546
  516. package/dist/orchestration/error-handling/error-classification.d.ts +0 -3
  517. package/dist/orchestration/error-handling/error-classification.js +0 -35
  518. package/dist/orchestration/error-handling/failover-classification.d.ts +0 -8
  519. package/dist/orchestration/error-handling/failover-classification.js +0 -381
  520. package/dist/orchestration/error-handling/retry-loop.d.ts +0 -69
  521. package/dist/orchestration/error-handling/retry-loop.js +0 -96
  522. package/dist/orchestration/index.d.ts +0 -15
  523. package/dist/orchestration/index.js +0 -18
  524. package/dist/orchestration/product-budget.d.ts +0 -56
  525. package/dist/orchestration/product-budget.js +0 -112
  526. package/dist/orchestration/product-checkpoint.d.ts +0 -46
  527. package/dist/orchestration/product-checkpoint.js +0 -74
  528. package/dist/orchestration/product-dag-mutation-applier.d.ts +0 -10
  529. package/dist/orchestration/product-dag-mutation-applier.js +0 -91
  530. package/dist/orchestration/product-persistence.d.ts +0 -35
  531. package/dist/orchestration/product-persistence.js +0 -55
  532. package/dist/orchestration/product-planner.d.ts +0 -146
  533. package/dist/orchestration/product-planner.js +0 -379
  534. package/dist/orchestration/product-run-coordinator.d.ts +0 -31
  535. package/dist/orchestration/product-run-coordinator.js +0 -31
  536. package/dist/orchestration/product-worktree.d.ts +0 -12
  537. package/dist/orchestration/product-worktree.js +0 -69
  538. package/dist/orchestration/skill-improvement.d.ts +0 -129
  539. package/dist/orchestration/skill-improvement.js +0 -243
  540. package/dist/orchestration/solo-evaluator.d.ts +0 -124
  541. package/dist/orchestration/solo-evaluator.js +0 -611
  542. package/dist/orchestration/solo-persistence.d.ts +0 -48
  543. package/dist/orchestration/solo-persistence.js +0 -67
  544. package/dist/orchestration/solo-spec-builder.d.ts +0 -48
  545. package/dist/orchestration/solo-spec-builder.js +0 -139
  546. package/dist/orchestration/subagent/agent-registry.d.ts +0 -46
  547. package/dist/orchestration/subagent/agent-registry.js +0 -129
  548. package/dist/orchestration/subagent/fork-subagent.d.ts +0 -100
  549. package/dist/orchestration/subagent/fork-subagent.js +0 -101
  550. package/dist/orchestration/subagent/task-types.d.ts +0 -1
  551. package/dist/orchestration/subagent/task-types.js +0 -1
  552. package/dist/orchestration/tool-cascade.d.ts +0 -49
  553. package/dist/orchestration/tool-cascade.js +0 -86
  554. package/dist/orchestration/tool-loop/conversation-repair.d.ts +0 -61
  555. package/dist/orchestration/tool-loop/conversation-repair.js +0 -429
  556. package/dist/orchestration/tool-loop/tool-choice-policy.d.ts +0 -54
  557. package/dist/orchestration/tool-loop/tool-choice-policy.js +0 -164
  558. package/dist/orchestration/tool-loop/tool-loop-state.d.ts +0 -50
  559. package/dist/orchestration/tool-loop/tool-loop-state.js +0 -133
  560. package/dist/orchestration/tool-loop/tool-schema.d.ts +0 -46
  561. package/dist/orchestration/tool-loop/tool-schema.js +0 -208
  562. package/dist/orchestration/workflow/budget-permission-gate.d.ts +0 -85
  563. package/dist/orchestration/workflow/budget-permission-gate.js +0 -134
  564. package/dist/orchestration/workflow/builtin-executors.d.ts +0 -18
  565. package/dist/orchestration/workflow/builtin-executors.js +0 -191
  566. package/dist/orchestration/workflow/capability-catalog.d.ts +0 -64
  567. package/dist/orchestration/workflow/capability-catalog.js +0 -166
  568. package/dist/orchestration/workflow/cron-schedule.d.ts +0 -37
  569. package/dist/orchestration/workflow/cron-schedule.js +0 -199
  570. package/dist/orchestration/workflow/data-item.d.ts +0 -39
  571. package/dist/orchestration/workflow/data-item.js +0 -52
  572. package/dist/orchestration/workflow/expression.d.ts +0 -60
  573. package/dist/orchestration/workflow/expression.js +0 -474
  574. package/dist/orchestration/workflow/host-executors.d.ts +0 -15
  575. package/dist/orchestration/workflow/host-executors.js +0 -207
  576. package/dist/orchestration/workflow/n8n-expression.d.ts +0 -48
  577. package/dist/orchestration/workflow/n8n-expression.js +0 -95
  578. package/dist/orchestration/workflow/n8n-import.d.ts +0 -68
  579. package/dist/orchestration/workflow/n8n-import.js +0 -319
  580. package/dist/orchestration/workflow/node-registry.d.ts +0 -19
  581. package/dist/orchestration/workflow/node-registry.js +0 -45
  582. package/dist/orchestration/workflow/node-schema.d.ts +0 -232
  583. package/dist/orchestration/workflow/node-schema.js +0 -29
  584. package/dist/orchestration/workflow/qla-executor-host.d.ts +0 -77
  585. package/dist/orchestration/workflow/qla-executor-host.js +0 -124
  586. package/dist/orchestration/workflow/run-checkpoint-store.d.ts +0 -53
  587. package/dist/orchestration/workflow/run-checkpoint-store.js +0 -59
  588. package/dist/orchestration/workflow/run-history-store.d.ts +0 -65
  589. package/dist/orchestration/workflow/run-history-store.js +0 -104
  590. package/dist/orchestration/workflow/trigger-validation.d.ts +0 -22
  591. package/dist/orchestration/workflow/trigger-validation.js +0 -241
  592. package/dist/orchestration/workflow/workflow-audit-store.d.ts +0 -31
  593. package/dist/orchestration/workflow/workflow-audit-store.js +0 -55
  594. package/dist/orchestration/workflow/workflow-bundle.d.ts +0 -65
  595. package/dist/orchestration/workflow/workflow-bundle.js +0 -168
  596. package/dist/orchestration/workflow/workflow-controller.d.ts +0 -219
  597. package/dist/orchestration/workflow/workflow-controller.js +0 -522
  598. package/dist/orchestration/workflow/workflow-patch.d.ts +0 -116
  599. package/dist/orchestration/workflow/workflow-patch.js +0 -369
  600. package/dist/orchestration/workflow/workflow-render.d.ts +0 -41
  601. package/dist/orchestration/workflow/workflow-render.js +0 -108
  602. package/dist/orchestration/workflow/workflow-runtime.d.ts +0 -171
  603. package/dist/orchestration/workflow/workflow-runtime.js +0 -474
  604. package/dist/orchestration/workflow/workflow-scheduler.d.ts +0 -111
  605. package/dist/orchestration/workflow/workflow-scheduler.js +0 -230
  606. package/dist/orchestration/workflow/workflow-service.d.ts +0 -14
  607. package/dist/orchestration/workflow/workflow-service.js +0 -18
  608. package/dist/orchestration/workflow/workflow-store.d.ts +0 -81
  609. package/dist/orchestration/workflow/workflow-store.js +0 -123
  610. package/dist/orchestration/workflow/workflow-trigger.d.ts +0 -35
  611. package/dist/orchestration/workflow/workflow-trigger.js +0 -1
  612. package/dist/orchestration/workflow-chat-builder.d.ts +0 -57
  613. package/dist/orchestration/workflow-chat-builder.js +0 -202
  614. package/dist/permissions.d.ts +0 -2
  615. package/dist/permissions.public-api.test.d.ts +0 -1
  616. package/dist/permissions.public-api.test.js +0 -32
  617. package/dist/pet-contracts.d.ts +0 -1
  618. package/dist/protocol/index.d.ts +0 -7
  619. package/dist/protocol/index.js +0 -7
  620. package/dist/protocol/methods.d.ts +0 -1190
  621. package/dist/protocol/methods.js +0 -110
  622. package/dist/protocol/notifications.d.ts +0 -9
  623. package/dist/protocol/notifications.js +0 -9
  624. package/dist/protocol/wire/acp-agent-management.d.ts +0 -456
  625. package/dist/protocol/wire/acp-agent-management.js +0 -7
  626. package/dist/protocol/wire/acp-protocol.d.ts +0 -369
  627. package/dist/protocol/wire/acp-protocol.js +0 -120
  628. package/dist/protocol/wire/agent-events.d.ts +0 -32
  629. package/dist/protocol/wire/agent-events.js +0 -113
  630. package/dist/protocol/wire/agent-methods.d.ts +0 -564
  631. package/dist/protocol/wire/agent-methods.js +0 -11
  632. package/dist/protocol/wire/agent-rpc.d.ts +0 -100
  633. package/dist/protocol/wire/agent-rpc.js +0 -72
  634. package/dist/protocol/wire/capability-manifest.d.ts +0 -112
  635. package/dist/protocol/wire/capability-manifest.js +0 -149
  636. package/dist/protocol/wire/capability-transport.d.ts +0 -207
  637. package/dist/protocol/wire/capability-transport.js +0 -1
  638. package/dist/protocol/wire/channel-ingress.d.ts +0 -29
  639. package/dist/protocol/wire/channel-ingress.js +0 -1
  640. package/dist/protocol/wire/channel.d.ts +0 -89
  641. package/dist/protocol/wire/channel.js +0 -1
  642. package/dist/protocol/wire/chat-types.d.ts +0 -106
  643. package/dist/protocol/wire/chat-types.js +0 -7
  644. package/dist/protocol/wire/checkpoint-runtime.d.ts +0 -61
  645. package/dist/protocol/wire/checkpoint-runtime.js +0 -499
  646. package/dist/protocol/wire/checkpoint.d.ts +0 -72
  647. package/dist/protocol/wire/checkpoint.js +0 -12
  648. package/dist/protocol/wire/execution.d.ts +0 -391
  649. package/dist/protocol/wire/execution.js +0 -1
  650. package/dist/protocol/wire/gateway-contract.d.ts +0 -61
  651. package/dist/protocol/wire/gateway-contract.js +0 -236
  652. package/dist/protocol/wire/gateway-contract.test.d.ts +0 -1
  653. package/dist/protocol/wire/gateway-contract.test.js +0 -123
  654. package/dist/protocol/wire/gateway-rpc.d.ts +0 -652
  655. package/dist/protocol/wire/gateway-rpc.js +0 -58
  656. package/dist/protocol/wire/gateway.d.ts +0 -62
  657. package/dist/protocol/wire/gateway.js +0 -1
  658. package/dist/protocol/wire/hook-protocol.d.ts +0 -37
  659. package/dist/protocol/wire/hook-protocol.js +0 -2
  660. package/dist/protocol/wire/index.d.ts +0 -28
  661. package/dist/protocol/wire/index.js +0 -27
  662. package/dist/protocol/wire/memory-provider-lifecycle.d.ts +0 -82
  663. package/dist/protocol/wire/memory-provider-lifecycle.js +0 -24
  664. package/dist/protocol/wire/notification-payloads.d.ts +0 -918
  665. package/dist/protocol/wire/notification-payloads.js +0 -13
  666. package/dist/protocol/wire/pet-contracts.d.ts +0 -76
  667. package/dist/protocol/wire/pet-contracts.js +0 -23
  668. package/dist/protocol/wire/provider-runtime-contract.d.ts +0 -66
  669. package/dist/protocol/wire/provider-runtime-contract.js +0 -23
  670. package/dist/protocol/wire/provider-runtime-core.d.ts +0 -147
  671. package/dist/protocol/wire/provider-runtime-core.js +0 -488
  672. package/dist/protocol/wire/provider-runtime-io.d.ts +0 -20
  673. package/dist/protocol/wire/provider-runtime-io.js +0 -57
  674. package/dist/protocol/wire/resource-manifest.d.ts +0 -68
  675. package/dist/protocol/wire/resource-manifest.js +0 -174
  676. package/dist/protocol/wire/session.d.ts +0 -32
  677. package/dist/protocol/wire/session.js +0 -1
  678. package/dist/protocol/wire/thread-protocol.d.ts +0 -145
  679. package/dist/protocol/wire/thread-protocol.js +0 -13
  680. package/dist/protocol/wire/transport.d.ts +0 -57
  681. package/dist/protocol/wire/transport.js +0 -1
  682. package/dist/protocol/wire/turn.d.ts +0 -208
  683. package/dist/protocol/wire/turn.js +0 -1
  684. package/dist/protocol/wire/web-capability.d.ts +0 -54
  685. package/dist/protocol/wire/web-capability.js +0 -52
  686. package/dist/runtime/community/community-consent-client.d.ts +0 -142
  687. package/dist/runtime/community/community-consent-client.js +0 -381
  688. package/dist/runtime/community/community-consent-client.test.d.ts +0 -1
  689. package/dist/runtime/community/community-consent-client.test.js +0 -491
  690. package/dist/runtime/community/community-desensitization-red-team-cli.d.ts +0 -7
  691. package/dist/runtime/community/community-desensitization-red-team-cli.js +0 -43
  692. package/dist/runtime/community/community-desensitization-red-team-cli.test.d.ts +0 -1
  693. package/dist/runtime/community/community-desensitization-red-team-cli.test.js +0 -23
  694. package/dist/runtime/community/community-desensitization.d.ts +0 -29
  695. package/dist/runtime/community/community-desensitization.js +0 -81
  696. package/dist/runtime/community/community-desensitization.test.d.ts +0 -1
  697. package/dist/runtime/community/community-desensitization.test.js +0 -43
  698. package/dist/runtime/community/community-discovery-cache.d.ts +0 -24
  699. package/dist/runtime/community/community-discovery-cache.js +0 -52
  700. package/dist/runtime/community/community-discovery-coordinator.d.ts +0 -33
  701. package/dist/runtime/community/community-discovery-coordinator.js +0 -84
  702. package/dist/runtime/community/community-discovery-coordinator.test.d.ts +0 -1
  703. package/dist/runtime/community/community-discovery-coordinator.test.js +0 -97
  704. package/dist/runtime/community/community-pet-publisher.d.ts +0 -30
  705. package/dist/runtime/community/community-pet-publisher.js +0 -53
  706. package/dist/runtime/community/community-pet-publisher.test.d.ts +0 -1
  707. package/dist/runtime/community/community-pet-publisher.test.js +0 -53
  708. package/dist/runtime/community/community-signal-reporter.d.ts +0 -33
  709. package/dist/runtime/community/community-signal-reporter.js +0 -85
  710. package/dist/runtime/community/community-signal-reporter.test.d.ts +0 -1
  711. package/dist/runtime/community/community-signal-reporter.test.js +0 -100
  712. package/dist/runtime/community/community-telemetry-metadata.d.ts +0 -4
  713. package/dist/runtime/community/community-telemetry-metadata.js +0 -42
  714. package/dist/runtime/community/community-telemetry-recorder.d.ts +0 -6
  715. package/dist/runtime/community/community-telemetry-recorder.js +0 -31
  716. package/dist/runtime/community/community-telemetry-types.d.ts +0 -1
  717. package/dist/runtime/community/community-telemetry-types.js +0 -1
  718. package/dist/runtime/config/tunable-defaults.d.ts +0 -255
  719. package/dist/runtime/config/tunable-defaults.js +0 -293
  720. package/dist/runtime/context/context-compression-strategies.d.ts +0 -301
  721. package/dist/runtime/context/context-compression-strategies.js +0 -860
  722. package/dist/runtime/execution/dream-agent.d.ts +0 -260
  723. package/dist/runtime/execution/dream-agent.js +0 -974
  724. package/dist/runtime/execution/dream-category-context.d.ts +0 -47
  725. package/dist/runtime/execution/dream-category-context.js +0 -226
  726. package/dist/runtime/execution/dream-lock.test.d.ts +0 -1
  727. package/dist/runtime/execution/dream-lock.test.js +0 -54
  728. package/dist/runtime/execution/fork-context.d.ts +0 -14
  729. package/dist/runtime/execution/fork-context.js +0 -20
  730. package/dist/runtime/execution/fork-context.test.d.ts +0 -1
  731. package/dist/runtime/execution/fork-context.test.js +0 -101
  732. package/dist/runtime/execution/forked-agent.d.ts +0 -111
  733. package/dist/runtime/execution/forked-agent.js +0 -172
  734. package/dist/runtime/execution/index.d.ts +0 -7
  735. package/dist/runtime/execution/index.js +0 -8
  736. package/dist/runtime/execution/memory-decay.d.ts +0 -69
  737. package/dist/runtime/execution/memory-decay.js +0 -80
  738. package/dist/runtime/execution/progress-tracker.d.ts +0 -78
  739. package/dist/runtime/execution/progress-tracker.js +0 -107
  740. package/dist/runtime/execution/streaming-tool-executor.d.ts +0 -102
  741. package/dist/runtime/execution/streaming-tool-executor.js +0 -345
  742. package/dist/runtime/execution/streaming-tool-executor.test.d.ts +0 -1
  743. package/dist/runtime/execution/streaming-tool-executor.test.js +0 -49
  744. package/dist/runtime/execution/tool-eligibility.d.ts +0 -36
  745. package/dist/runtime/execution/tool-eligibility.js +0 -94
  746. package/dist/runtime/execution/tool-eligibility.test.d.ts +0 -1
  747. package/dist/runtime/execution/tool-eligibility.test.js +0 -96
  748. package/dist/runtime/execution/tool-result-storage.d.ts +0 -87
  749. package/dist/runtime/execution/tool-result-storage.js +0 -274
  750. package/dist/runtime/hooks/context-compression.d.ts +0 -61
  751. package/dist/runtime/hooks/context-compression.js +0 -334
  752. package/dist/runtime/hooks/hook-registry.d.ts +0 -12
  753. package/dist/runtime/hooks/hook-registry.js +0 -61
  754. package/dist/runtime/hooks/hook-registry.test.d.ts +0 -1
  755. package/dist/runtime/hooks/hook-registry.test.js +0 -51
  756. package/dist/runtime/hooks/index.d.ts +0 -4
  757. package/dist/runtime/hooks/index.js +0 -5
  758. package/dist/runtime/hooks/memory-hooks.d.ts +0 -75
  759. package/dist/runtime/hooks/memory-hooks.js +0 -356
  760. package/dist/runtime/hooks/skill-recall-hooks.d.ts +0 -37
  761. package/dist/runtime/hooks/skill-recall-hooks.js +0 -263
  762. package/dist/runtime/hooks/skill-recall-hooks.test.d.ts +0 -1
  763. package/dist/runtime/hooks/skill-recall-hooks.test.js +0 -52
  764. package/dist/runtime/index.d.ts +0 -5
  765. package/dist/runtime/index.js +0 -13
  766. package/dist/runtime/infra/acp-detector.d.ts +0 -133
  767. package/dist/runtime/infra/acp-detector.js +0 -862
  768. package/dist/runtime/infra/acp-detector.test.d.ts +0 -1
  769. package/dist/runtime/infra/acp-detector.test.js +0 -164
  770. package/dist/runtime/infra/acp-host-handler.d.ts +0 -31
  771. package/dist/runtime/infra/acp-host-handler.js +0 -123
  772. package/dist/runtime/infra/acp-host-handler.test.d.ts +0 -1
  773. package/dist/runtime/infra/acp-host-handler.test.js +0 -64
  774. package/dist/runtime/infra/acp-protocol-adapter.d.ts +0 -146
  775. package/dist/runtime/infra/acp-protocol-adapter.js +0 -382
  776. package/dist/runtime/infra/acp-protocol-adapter.test.d.ts +0 -1
  777. package/dist/runtime/infra/acp-protocol-adapter.test.js +0 -180
  778. package/dist/runtime/infra/acp-usage-tracker.d.ts +0 -46
  779. package/dist/runtime/infra/acp-usage-tracker.js +0 -92
  780. package/dist/runtime/infra/agent-catalog.test.d.ts +0 -1
  781. package/dist/runtime/infra/agent-catalog.test.js +0 -174
  782. package/dist/runtime/infra/agent-config-store.d.ts +0 -30
  783. package/dist/runtime/infra/agent-config-store.js +0 -115
  784. package/dist/runtime/infra/agent-install-runner.d.ts +0 -57
  785. package/dist/runtime/infra/agent-install-runner.js +0 -123
  786. package/dist/runtime/infra/agent-install-runner.test.d.ts +0 -1
  787. package/dist/runtime/infra/agent-install-runner.test.js +0 -103
  788. package/dist/runtime/infra/agent-paths.d.ts +0 -67
  789. package/dist/runtime/infra/agent-paths.js +0 -167
  790. package/dist/runtime/infra/agent-paths.test.d.ts +0 -1
  791. package/dist/runtime/infra/agent-paths.test.js +0 -49
  792. package/dist/runtime/infra/agent-process.d.ts +0 -299
  793. package/dist/runtime/infra/agent-process.js +0 -1318
  794. package/dist/runtime/infra/background-tasks.d.ts +0 -115
  795. package/dist/runtime/infra/background-tasks.js +0 -249
  796. package/dist/runtime/infra/background-tasks.test.d.ts +0 -1
  797. package/dist/runtime/infra/background-tasks.test.js +0 -242
  798. package/dist/runtime/infra/checkpoint-backend.d.ts +0 -8
  799. package/dist/runtime/infra/checkpoint-backend.js +0 -110
  800. package/dist/runtime/infra/cleanup-registry.d.ts +0 -23
  801. package/dist/runtime/infra/cleanup-registry.js +0 -34
  802. package/dist/runtime/infra/default-path-service.d.ts +0 -33
  803. package/dist/runtime/infra/default-path-service.js +0 -76
  804. package/dist/runtime/infra/default-path-service.test.d.ts +0 -1
  805. package/dist/runtime/infra/default-path-service.test.js +0 -31
  806. package/dist/runtime/infra/disk-storage.d.ts +0 -20
  807. package/dist/runtime/infra/disk-storage.js +0 -64
  808. package/dist/runtime/infra/external-agent-approvals.d.ts +0 -41
  809. package/dist/runtime/infra/external-agent-approvals.js +0 -101
  810. package/dist/runtime/infra/external-agent-approvals.test.d.ts +0 -1
  811. package/dist/runtime/infra/external-agent-approvals.test.js +0 -99
  812. package/dist/runtime/infra/external-agent-pool.d.ts +0 -54
  813. package/dist/runtime/infra/external-agent-pool.js +0 -0
  814. package/dist/runtime/infra/external-agent-pool.test.d.ts +0 -1
  815. package/dist/runtime/infra/external-agent-pool.test.js +0 -102
  816. package/dist/runtime/infra/file-watcher.d.ts +0 -72
  817. package/dist/runtime/infra/file-watcher.js +0 -154
  818. package/dist/runtime/infra/index.d.ts +0 -19
  819. package/dist/runtime/infra/index.js +0 -19
  820. package/dist/runtime/infra/key-injection.test.d.ts +0 -1
  821. package/dist/runtime/infra/key-injection.test.js +0 -88
  822. package/dist/runtime/infra/key-pool.d.ts +0 -122
  823. package/dist/runtime/infra/key-pool.js +0 -378
  824. package/dist/runtime/infra/key-pool.test.d.ts +0 -1
  825. package/dist/runtime/infra/key-pool.test.js +0 -36
  826. package/dist/runtime/infra/llmrouter-catalog.d.ts +0 -84
  827. package/dist/runtime/infra/llmrouter-catalog.js +0 -287
  828. package/dist/runtime/infra/llmrouter-catalog.test.d.ts +0 -1
  829. package/dist/runtime/infra/llmrouter-catalog.test.js +0 -80
  830. package/dist/runtime/infra/llmrouter-zero-config.test.d.ts +0 -1
  831. package/dist/runtime/infra/llmrouter-zero-config.test.js +0 -64
  832. package/dist/runtime/infra/mcp-bridge.d.ts +0 -166
  833. package/dist/runtime/infra/mcp-bridge.js +0 -161
  834. package/dist/runtime/infra/media-persistence.d.ts +0 -87
  835. package/dist/runtime/infra/media-persistence.js +0 -278
  836. package/dist/runtime/infra/migrate-project-skills.d.ts +0 -21
  837. package/dist/runtime/infra/migrate-project-skills.js +0 -131
  838. package/dist/runtime/infra/migrate-project-skills.test.d.ts +0 -1
  839. package/dist/runtime/infra/migrate-project-skills.test.js +0 -69
  840. package/dist/runtime/infra/model-id-translator.d.ts +0 -22
  841. package/dist/runtime/infra/model-id-translator.js +0 -74
  842. package/dist/runtime/infra/model-registry.d.ts +0 -148
  843. package/dist/runtime/infra/model-registry.js +0 -529
  844. package/dist/runtime/infra/model-registry.test.d.ts +0 -1
  845. package/dist/runtime/infra/model-registry.test.js +0 -253
  846. package/dist/runtime/infra/process-config-port.d.ts +0 -2
  847. package/dist/runtime/infra/process-config-port.js +0 -5
  848. package/dist/runtime/infra/profile-storage.test.d.ts +0 -1
  849. package/dist/runtime/infra/profile-storage.test.js +0 -41
  850. package/dist/runtime/infra/project-instructions-store.d.ts +0 -30
  851. package/dist/runtime/infra/project-instructions-store.js +0 -124
  852. package/dist/runtime/infra/project-skill-manifest.d.ts +0 -32
  853. package/dist/runtime/infra/project-skill-manifest.js +0 -160
  854. package/dist/runtime/infra/project-skill-manifest.test.d.ts +0 -1
  855. package/dist/runtime/infra/project-skill-manifest.test.js +0 -42
  856. package/dist/runtime/infra/project-store.d.ts +0 -48
  857. package/dist/runtime/infra/project-store.js +0 -284
  858. package/dist/runtime/infra/secure-storage.d.ts +0 -81
  859. package/dist/runtime/infra/secure-storage.js +0 -117
  860. package/dist/runtime/infra/skill-injector.d.ts +0 -59
  861. package/dist/runtime/infra/skill-injector.js +0 -155
  862. package/dist/runtime/infra/skill-injector.test.d.ts +0 -1
  863. package/dist/runtime/infra/skill-injector.test.js +0 -9
  864. package/dist/runtime/infra/skill-resolver.d.ts +0 -51
  865. package/dist/runtime/infra/skill-resolver.js +0 -109
  866. package/dist/runtime/infra/skill-resolver.test.d.ts +0 -1
  867. package/dist/runtime/infra/skill-resolver.test.js +0 -72
  868. package/dist/runtime/infra/task-runtime.d.ts +0 -71
  869. package/dist/runtime/infra/task-runtime.js +0 -181
  870. package/dist/runtime/infra/token-budget.d.ts +0 -92
  871. package/dist/runtime/infra/token-budget.js +0 -170
  872. package/dist/runtime/infra/worktree-backend.d.ts +0 -86
  873. package/dist/runtime/infra/worktree-backend.js +0 -522
  874. package/dist/runtime/memory/categories.d.ts +0 -5
  875. package/dist/runtime/memory/categories.js +0 -4
  876. package/dist/runtime/memory/find-relevant-memories.d.ts +0 -70
  877. package/dist/runtime/memory/find-relevant-memories.js +0 -270
  878. package/dist/runtime/memory/implicit-extraction.d.ts +0 -58
  879. package/dist/runtime/memory/implicit-extraction.js +0 -187
  880. package/dist/runtime/memory/recall-category-filter.d.ts +0 -54
  881. package/dist/runtime/memory/recall-category-filter.js +0 -215
  882. package/dist/runtime/permission-model.d.ts +0 -19
  883. package/dist/runtime/permission-model.js +0 -24
  884. package/dist/runtime/permission-model.test.d.ts +0 -1
  885. package/dist/runtime/permission-model.test.js +0 -32
  886. package/dist/runtime/pet/hatch-pet-runner.d.ts +0 -18
  887. package/dist/runtime/pet/hatch-pet-runner.js +0 -120
  888. package/dist/runtime/pet/hatch-pet-runner.test.d.ts +0 -1
  889. package/dist/runtime/pet/hatch-pet-runner.test.js +0 -28
  890. package/dist/runtime/pet/index.d.ts +0 -18
  891. package/dist/runtime/pet/index.js +0 -9
  892. package/dist/runtime/pet/pet-community-assets.d.ts +0 -13
  893. package/dist/runtime/pet/pet-community-assets.js +0 -106
  894. package/dist/runtime/pet/pet-file-loader.d.ts +0 -5
  895. package/dist/runtime/pet/pet-file-loader.js +0 -11
  896. package/dist/runtime/pet/pet-growth-engine.d.ts +0 -2
  897. package/dist/runtime/pet/pet-growth-engine.js +0 -1
  898. package/dist/runtime/pet/pet-profile-service.d.ts +0 -91
  899. package/dist/runtime/pet/pet-profile-service.js +0 -296
  900. package/dist/runtime/pet/pet-profile-service.test.d.ts +0 -1
  901. package/dist/runtime/pet/pet-profile-service.test.js +0 -171
  902. package/dist/runtime/pet/pet-reaction-engine.d.ts +0 -11
  903. package/dist/runtime/pet/pet-reaction-engine.js +0 -11
  904. package/dist/runtime/pet/pet-reaction-engine.test.d.ts +0 -1
  905. package/dist/runtime/pet/pet-reaction-engine.test.js +0 -12
  906. package/dist/runtime/pet/pet-soul-service.d.ts +0 -21
  907. package/dist/runtime/pet/pet-soul-service.js +0 -63
  908. package/dist/runtime/pet/pet-soul-service.test.d.ts +0 -1
  909. package/dist/runtime/pet/pet-soul-service.test.js +0 -115
  910. package/dist/runtime/pet/pet-types.d.ts +0 -1
  911. package/dist/runtime/pet/pet-types.js +0 -1
  912. package/dist/runtime/pet/petdex-asset.d.ts +0 -32
  913. package/dist/runtime/pet/petdex-asset.js +0 -242
  914. package/dist/runtime/pet/petdex-asset.test.d.ts +0 -1
  915. package/dist/runtime/pet/petdex-asset.test.js +0 -257
  916. package/dist/runtime/pet/petdex-forge-service.d.ts +0 -19
  917. package/dist/runtime/pet/petdex-forge-service.js +0 -820
  918. package/dist/runtime/pet/petdex-forge-service.test.d.ts +0 -1
  919. package/dist/runtime/pet/petdex-forge-service.test.js +0 -142
  920. package/dist/runtime/ports/agent-execution-contracts.d.ts +0 -182
  921. package/dist/runtime/ports/agent-execution-contracts.js +0 -1
  922. package/dist/runtime/ports/agent-runtime-ports.d.ts +0 -76
  923. package/dist/runtime/ports/agent-runtime-ports.js +0 -1
  924. package/dist/runtime/ports/checkpoint-contracts.d.ts +0 -19
  925. package/dist/runtime/ports/checkpoint-contracts.js +0 -1
  926. package/dist/runtime/ports/config-port.d.ts +0 -4
  927. package/dist/runtime/ports/config-port.js +0 -5
  928. package/dist/runtime/ports/index.d.ts +0 -19
  929. package/dist/runtime/ports/index.js +0 -5
  930. package/dist/runtime/ports/memory-provider.d.ts +0 -181
  931. package/dist/runtime/ports/memory-provider.js +0 -1
  932. package/dist/runtime/ports/memory-recall-source.d.ts +0 -3
  933. package/dist/runtime/ports/memory-recall-source.js +0 -1
  934. package/dist/runtime/ports/memory-writer.d.ts +0 -21
  935. package/dist/runtime/ports/memory-writer.js +0 -1
  936. package/dist/runtime/ports/model-transport-contracts.d.ts +0 -125
  937. package/dist/runtime/ports/model-transport-contracts.js +0 -9
  938. package/dist/runtime/ports/path-service.d.ts +0 -31
  939. package/dist/runtime/ports/path-service.js +0 -1
  940. package/dist/runtime/ports/permission-contracts.d.ts +0 -128
  941. package/dist/runtime/ports/permission-contracts.js +0 -5
  942. package/dist/runtime/ports/project-memory-store.d.ts +0 -44
  943. package/dist/runtime/ports/project-memory-store.js +0 -1
  944. package/dist/runtime/ports/source-provider.d.ts +0 -39
  945. package/dist/runtime/ports/source-provider.js +0 -4
  946. package/dist/runtime/ports/tool-call-contracts.d.ts +0 -16
  947. package/dist/runtime/ports/tool-call-contracts.js +0 -13
  948. package/dist/runtime/ports/tool-contracts.d.ts +0 -87
  949. package/dist/runtime/ports/tool-contracts.js +0 -3
  950. package/dist/runtime/ports/tool-risk.d.ts +0 -7
  951. package/dist/runtime/ports/tool-risk.js +0 -16
  952. package/dist/runtime/ports/web-search-contracts.d.ts +0 -21
  953. package/dist/runtime/ports/web-search-contracts.js +0 -1
  954. package/dist/runtime/ports/worktree-contracts.d.ts +0 -22
  955. package/dist/runtime/ports/worktree-contracts.js +0 -1
  956. package/dist/runtime/prompt/environment-context.d.ts +0 -60
  957. package/dist/runtime/prompt/environment-context.js +0 -410
  958. package/dist/runtime/prompt/environment-context.test.d.ts +0 -1
  959. package/dist/runtime/prompt/environment-context.test.js +0 -75
  960. package/dist/runtime/prompt/fresh-workspace-evidence.d.ts +0 -21
  961. package/dist/runtime/prompt/fresh-workspace-evidence.js +0 -224
  962. package/dist/runtime/prompt/fresh-workspace-evidence.test.d.ts +0 -1
  963. package/dist/runtime/prompt/fresh-workspace-evidence.test.js +0 -163
  964. package/dist/runtime/prompt/index.d.ts +0 -5
  965. package/dist/runtime/prompt/index.js +0 -6
  966. package/dist/runtime/prompt/instruction-loader.d.ts +0 -70
  967. package/dist/runtime/prompt/instruction-loader.js +0 -515
  968. package/dist/runtime/prompt/instruction-loader.test.d.ts +0 -1
  969. package/dist/runtime/prompt/instruction-loader.test.js +0 -64
  970. package/dist/runtime/prompt/prompt-policy.d.ts +0 -12
  971. package/dist/runtime/prompt/prompt-policy.js +0 -40
  972. package/dist/runtime/prompt/system-prompt-sections.d.ts +0 -65
  973. package/dist/runtime/prompt/system-prompt-sections.js +0 -93
  974. package/dist/runtime/prompt/task-domain.d.ts +0 -82
  975. package/dist/runtime/prompt/task-domain.js +0 -248
  976. package/dist/runtime/sandbox/index.d.ts +0 -2
  977. package/dist/runtime/sandbox/index.js +0 -2
  978. package/dist/runtime/sandbox/skill-sandbox.d.ts +0 -53
  979. package/dist/runtime/sandbox/skill-sandbox.js +0 -93
  980. package/dist/runtime/sandbox/skill-sandbox.test.d.ts +0 -1
  981. package/dist/runtime/sandbox/skill-sandbox.test.js +0 -172
  982. package/dist/runtime/sandbox/windows-skill-sandbox.d.ts +0 -78
  983. package/dist/runtime/sandbox/windows-skill-sandbox.js +0 -128
  984. package/dist/runtime/session/group-session-split.d.ts +0 -38
  985. package/dist/runtime/session/group-session-split.js +0 -99
  986. package/dist/runtime/session/index.d.ts +0 -4
  987. package/dist/runtime/session/index.js +0 -5
  988. package/dist/runtime/session/session-catalog.d.ts +0 -4
  989. package/dist/runtime/session/session-catalog.js +0 -59
  990. package/dist/runtime/session/session-locator.d.ts +0 -26
  991. package/dist/runtime/session/session-locator.js +0 -91
  992. package/dist/runtime/session/session-locator.test.d.ts +0 -1
  993. package/dist/runtime/session/session-locator.test.js +0 -59
  994. package/dist/runtime/session/session-metadata-store.d.ts +0 -8
  995. package/dist/runtime/session/session-metadata-store.js +0 -167
  996. package/dist/runtime/session/session-paths.d.ts +0 -9
  997. package/dist/runtime/session/session-paths.js +0 -27
  998. package/dist/runtime/session/session-persistence.d.ts +0 -16
  999. package/dist/runtime/session/session-persistence.js +0 -16
  1000. package/dist/runtime/session/session-persistence.test.d.ts +0 -1
  1001. package/dist/runtime/session/session-persistence.test.js +0 -237
  1002. package/dist/runtime/session/session-resume.d.ts +0 -4
  1003. package/dist/runtime/session/session-resume.js +0 -60
  1004. package/dist/runtime/session/session-schema.d.ts +0 -10
  1005. package/dist/runtime/session/session-schema.js +0 -35
  1006. package/dist/runtime/session/session-state.d.ts +0 -96
  1007. package/dist/runtime/session/session-state.js +0 -180
  1008. package/dist/runtime/session/session-summary.d.ts +0 -5
  1009. package/dist/runtime/session/session-summary.js +0 -67
  1010. package/dist/runtime/session/session-transcript-store.d.ts +0 -13
  1011. package/dist/runtime/session/session-transcript-store.js +0 -109
  1012. package/dist/runtime/session/session-types.d.ts +0 -77
  1013. package/dist/runtime/session/session-types.js +0 -1
  1014. package/dist/runtime/session/session-write-queue.d.ts +0 -2
  1015. package/dist/runtime/session/session-write-queue.js +0 -48
  1016. package/dist/runtime/tasks/task-types.d.ts +0 -166
  1017. package/dist/runtime/tasks/task-types.js +0 -64
  1018. package/dist/server/search-svc.d.ts +0 -1
  1019. package/dist/server/search-svc.js +0 -113
  1020. package/dist/skills/index.d.ts +0 -6
  1021. package/dist/skills/index.js +0 -5
  1022. package/dist/skills/mcp/index.d.ts +0 -1
  1023. package/dist/skills/mcp/index.js +0 -3
  1024. package/dist/skills/mcp/mcp-manager.d.ts +0 -75
  1025. package/dist/skills/mcp/mcp-manager.js +0 -358
  1026. package/dist/skills/mcp/mcp-tool-metadata.d.ts +0 -18
  1027. package/dist/skills/mcp/mcp-tool-metadata.js +0 -48
  1028. package/dist/skills/memory/categories.d.ts +0 -1
  1029. package/dist/skills/memory/categories.js +0 -1
  1030. package/dist/skills/memory/find-relevant-memories.d.ts +0 -1
  1031. package/dist/skills/memory/find-relevant-memories.js +0 -1
  1032. package/dist/skills/memory/implicit-extraction.d.ts +0 -1
  1033. package/dist/skills/memory/implicit-extraction.js +0 -1
  1034. package/dist/skills/memory/local-embedding.d.ts +0 -80
  1035. package/dist/skills/memory/local-embedding.js +0 -210
  1036. package/dist/skills/memory/local-memory-provider.d.ts +0 -257
  1037. package/dist/skills/memory/local-memory-provider.js +0 -486
  1038. package/dist/skills/memory/local-store-records.d.ts +0 -184
  1039. package/dist/skills/memory/local-store-records.js +0 -1
  1040. package/dist/skills/memory/local-store.d.ts +0 -479
  1041. package/dist/skills/memory/local-store.js +0 -1022
  1042. package/dist/skills/memory/memdir.d.ts +0 -93
  1043. package/dist/skills/memory/memdir.js +0 -530
  1044. package/dist/skills/memory/memory-attachment-store.d.ts +0 -62
  1045. package/dist/skills/memory/memory-attachment-store.js +0 -0
  1046. package/dist/skills/memory/memory-consolidation.d.ts +0 -43
  1047. package/dist/skills/memory/memory-consolidation.js +0 -462
  1048. package/dist/skills/memory/memory-db-path.d.ts +0 -13
  1049. package/dist/skills/memory/memory-db-path.js +0 -27
  1050. package/dist/skills/memory/memory-embedding-config.d.ts +0 -31
  1051. package/dist/skills/memory/memory-embedding-config.js +0 -66
  1052. package/dist/skills/memory/memory-provider-factory.d.ts +0 -33
  1053. package/dist/skills/memory/memory-provider-factory.js +0 -79
  1054. package/dist/skills/memory/memory-tool.d.ts +0 -85
  1055. package/dist/skills/memory/memory-tool.js +0 -326
  1056. package/dist/skills/memory/memory-vector-utils.d.ts +0 -2
  1057. package/dist/skills/memory/memory-vector-utils.js +0 -19
  1058. package/dist/skills/memory/recall-category-filter.d.ts +0 -1
  1059. package/dist/skills/memory/recall-category-filter.js +0 -1
  1060. package/dist/skills/memory/sqlite-memory-mappers.d.ts +0 -6
  1061. package/dist/skills/memory/sqlite-memory-mappers.js +0 -104
  1062. package/dist/skills/memory/sqlite-memory-schema.d.ts +0 -3
  1063. package/dist/skills/memory/sqlite-memory-schema.js +0 -152
  1064. package/dist/skills/permissions/bash-classifier.d.ts +0 -30
  1065. package/dist/skills/permissions/bash-classifier.js +0 -174
  1066. package/dist/skills/permissions/classifier-cache.d.ts +0 -51
  1067. package/dist/skills/permissions/classifier-cache.js +0 -103
  1068. package/dist/skills/permissions/community-sandbox-policy.d.ts +0 -3
  1069. package/dist/skills/permissions/community-sandbox-policy.js +0 -233
  1070. package/dist/skills/permissions/community-sandbox-red-team-cli.d.ts +0 -7
  1071. package/dist/skills/permissions/community-sandbox-red-team-cli.js +0 -43
  1072. package/dist/skills/permissions/community-sandbox-red-team.d.ts +0 -32
  1073. package/dist/skills/permissions/community-sandbox-red-team.js +0 -221
  1074. package/dist/skills/permissions/denial-audit-log.d.ts +0 -52
  1075. package/dist/skills/permissions/denial-audit-log.js +0 -80
  1076. package/dist/skills/permissions/denial-tracking.d.ts +0 -42
  1077. package/dist/skills/permissions/denial-tracking.js +0 -60
  1078. package/dist/skills/permissions/group-security-policy.d.ts +0 -15
  1079. package/dist/skills/permissions/group-security-policy.js +0 -60
  1080. package/dist/skills/permissions/hook-runner.d.ts +0 -120
  1081. package/dist/skills/permissions/hook-runner.js +0 -545
  1082. package/dist/skills/permissions/index.d.ts +0 -13
  1083. package/dist/skills/permissions/index.js +0 -8
  1084. package/dist/skills/permissions/operation-classifier.d.ts +0 -43
  1085. package/dist/skills/permissions/operation-classifier.js +0 -251
  1086. package/dist/skills/permissions/permission-classifier.d.ts +0 -41
  1087. package/dist/skills/permissions/permission-classifier.js +0 -186
  1088. package/dist/skills/permissions/rule-engine.d.ts +0 -49
  1089. package/dist/skills/permissions/rule-engine.js +0 -285
  1090. package/dist/skills/permissions/settings-watcher.d.ts +0 -19
  1091. package/dist/skills/permissions/settings-watcher.js +0 -121
  1092. package/dist/skills/permissions/types.d.ts +0 -2
  1093. package/dist/skills/permissions/types.js +0 -1
  1094. package/dist/skills/plugins/index.d.ts +0 -2
  1095. package/dist/skills/plugins/index.js +0 -3
  1096. package/dist/skills/plugins/plugin-api.d.ts +0 -38
  1097. package/dist/skills/plugins/plugin-api.js +0 -18
  1098. package/dist/skills/plugins/plugin-loader.d.ts +0 -57
  1099. package/dist/skills/plugins/plugin-loader.js +0 -254
  1100. package/dist/skills/plugins/plugin-marketplace.d.ts +0 -61
  1101. package/dist/skills/plugins/plugin-marketplace.js +0 -229
  1102. package/dist/skills/portable-tool.d.ts +0 -165
  1103. package/dist/skills/portable-tool.js +0 -34
  1104. package/dist/skills/skill-system/skill-frontmatter.d.ts +0 -19
  1105. package/dist/skills/skill-system/skill-frontmatter.js +0 -344
  1106. package/dist/skills/skill-system/skill-guard.d.ts +0 -23
  1107. package/dist/skills/skill-system/skill-guard.js +0 -229
  1108. package/dist/skills/skill-system/skill-lifecycle.d.ts +0 -93
  1109. package/dist/skills/skill-system/skill-lifecycle.js +0 -236
  1110. package/dist/skills/skill-system/skill-source.d.ts +0 -38
  1111. package/dist/skills/skill-system/skill-source.js +0 -75
  1112. package/dist/skills/skill-system/skill-types.d.ts +0 -140
  1113. package/dist/skills/skill-system/skill-types.js +0 -6
  1114. package/dist/skills/skill-system/skill-validation.d.ts +0 -29
  1115. package/dist/skills/skill-system/skill-validation.js +0 -154
  1116. package/dist/skills/tool-access.d.ts +0 -30
  1117. package/dist/skills/tool-access.js +0 -58
  1118. package/dist/skills/tools/agent-tool.d.ts +0 -102
  1119. package/dist/skills/tools/agent-tool.js +0 -159
  1120. package/dist/skills/tools/ask-user-tool.d.ts +0 -80
  1121. package/dist/skills/tools/ask-user-tool.js +0 -121
  1122. package/dist/skills/tools/brief-tool.d.ts +0 -74
  1123. package/dist/skills/tools/brief-tool.js +0 -95
  1124. package/dist/skills/tools/browser-tool.d.ts +0 -114
  1125. package/dist/skills/tools/browser-tool.js +0 -160
  1126. package/dist/skills/tools/checkpoint-tool.d.ts +0 -66
  1127. package/dist/skills/tools/checkpoint-tool.js +0 -102
  1128. package/dist/skills/tools/config-tool.d.ts +0 -61
  1129. package/dist/skills/tools/config-tool.js +0 -123
  1130. package/dist/skills/tools/cron-tool.d.ts +0 -96
  1131. package/dist/skills/tools/cron-tool.js +0 -165
  1132. package/dist/skills/tools/edit-tool.d.ts +0 -43
  1133. package/dist/skills/tools/edit-tool.js +0 -72
  1134. package/dist/skills/tools/exec-tool.d.ts +0 -117
  1135. package/dist/skills/tools/exec-tool.js +0 -354
  1136. package/dist/skills/tools/file-management-tool.d.ts +0 -90
  1137. package/dist/skills/tools/file-management-tool.js +0 -166
  1138. package/dist/skills/tools/image-generate-tool.d.ts +0 -74
  1139. package/dist/skills/tools/image-generate-tool.js +0 -91
  1140. package/dist/skills/tools/instructions-tool.d.ts +0 -65
  1141. package/dist/skills/tools/instructions-tool.js +0 -209
  1142. package/dist/skills/tools/lsp-tool.d.ts +0 -153
  1143. package/dist/skills/tools/lsp-tool.js +0 -230
  1144. package/dist/skills/tools/media-cancel-tool.d.ts +0 -30
  1145. package/dist/skills/tools/media-cancel-tool.js +0 -46
  1146. package/dist/skills/tools/monitor-tool.d.ts +0 -113
  1147. package/dist/skills/tools/monitor-tool.js +0 -129
  1148. package/dist/skills/tools/music-generate-tool.d.ts +0 -80
  1149. package/dist/skills/tools/music-generate-tool.js +0 -98
  1150. package/dist/skills/tools/notebook-edit-tool.d.ts +0 -15
  1151. package/dist/skills/tools/notebook-edit-tool.js +0 -206
  1152. package/dist/skills/tools/patch-tool.d.ts +0 -52
  1153. package/dist/skills/tools/patch-tool.js +0 -556
  1154. package/dist/skills/tools/petdex-create-tool.d.ts +0 -47
  1155. package/dist/skills/tools/petdex-create-tool.js +0 -95
  1156. package/dist/skills/tools/plan-mode-tool.d.ts +0 -98
  1157. package/dist/skills/tools/plan-mode-tool.js +0 -164
  1158. package/dist/skills/tools/read-tool.d.ts +0 -51
  1159. package/dist/skills/tools/read-tool.js +0 -88
  1160. package/dist/skills/tools/search-tool.d.ts +0 -112
  1161. package/dist/skills/tools/search-tool.js +0 -226
  1162. package/dist/skills/tools/shell/bash-provider.d.ts +0 -26
  1163. package/dist/skills/tools/shell/bash-provider.js +0 -125
  1164. package/dist/skills/tools/shell/command-classification.d.ts +0 -44
  1165. package/dist/skills/tools/shell/command-classification.js +0 -119
  1166. package/dist/skills/tools/shell/command-semantics.d.ts +0 -14
  1167. package/dist/skills/tools/shell/command-semantics.js +0 -87
  1168. package/dist/skills/tools/shell/destructive-command-warning.d.ts +0 -10
  1169. package/dist/skills/tools/shell/destructive-command-warning.js +0 -80
  1170. package/dist/skills/tools/shell/exec-permissions.d.ts +0 -52
  1171. package/dist/skills/tools/shell/exec-permissions.js +0 -277
  1172. package/dist/skills/tools/shell/index.d.ts +0 -18
  1173. package/dist/skills/tools/shell/index.js +0 -18
  1174. package/dist/skills/tools/shell/powershell-provider.d.ts +0 -15
  1175. package/dist/skills/tools/shell/powershell-provider.js +0 -80
  1176. package/dist/skills/tools/shell/sandbox/helper-resolver.d.ts +0 -7
  1177. package/dist/skills/tools/shell/sandbox/helper-resolver.js +0 -20
  1178. package/dist/skills/tools/shell/sandbox/landlock-argv.d.ts +0 -6
  1179. package/dist/skills/tools/shell/sandbox/landlock-argv.js +0 -13
  1180. package/dist/skills/tools/shell/sandbox/platform.d.ts +0 -3
  1181. package/dist/skills/tools/shell/sandbox/platform.js +0 -13
  1182. package/dist/skills/tools/shell/sandbox/sandbox-launcher.d.ts +0 -15
  1183. package/dist/skills/tools/shell/sandbox/sandbox-launcher.js +0 -59
  1184. package/dist/skills/tools/shell/sandbox/sandbox-scope.d.ts +0 -6
  1185. package/dist/skills/tools/shell/sandbox/sandbox-scope.js +0 -17
  1186. package/dist/skills/tools/shell/sandbox/sandbox-types.d.ts +0 -47
  1187. package/dist/skills/tools/shell/sandbox/sandbox-types.js +0 -1
  1188. package/dist/skills/tools/shell/sandbox/seatbelt-profile.d.ts +0 -6
  1189. package/dist/skills/tools/shell/sandbox/seatbelt-profile.js +0 -28
  1190. package/dist/skills/tools/shell/shell-command.d.ts +0 -54
  1191. package/dist/skills/tools/shell/shell-command.js +0 -347
  1192. package/dist/skills/tools/shell/shell-exec.d.ts +0 -38
  1193. package/dist/skills/tools/shell/shell-exec.js +0 -202
  1194. package/dist/skills/tools/shell/shell-provider.d.ts +0 -85
  1195. package/dist/skills/tools/shell/shell-provider.js +0 -38
  1196. package/dist/skills/tools/shell/subprocess-env.d.ts +0 -6
  1197. package/dist/skills/tools/shell/subprocess-env.js +0 -87
  1198. package/dist/skills/tools/shell/task-output.d.ts +0 -44
  1199. package/dist/skills/tools/shell/task-output.js +0 -137
  1200. package/dist/skills/tools/skill-tool.d.ts +0 -106
  1201. package/dist/skills/tools/skill-tool.js +0 -265
  1202. package/dist/skills/tools/sleep-tool.d.ts +0 -49
  1203. package/dist/skills/tools/sleep-tool.js +0 -81
  1204. package/dist/skills/tools/structured-output-tool.d.ts +0 -116
  1205. package/dist/skills/tools/structured-output-tool.js +0 -176
  1206. package/dist/skills/tools/stt-tool.d.ts +0 -33
  1207. package/dist/skills/tools/stt-tool.js +0 -58
  1208. package/dist/skills/tools/task-tool.d.ts +0 -125
  1209. package/dist/skills/tools/task-tool.js +0 -390
  1210. package/dist/skills/tools/team-tool.d.ts +0 -156
  1211. package/dist/skills/tools/team-tool.js +0 -173
  1212. package/dist/skills/tools/three-d-generate-tool.d.ts +0 -46
  1213. package/dist/skills/tools/three-d-generate-tool.js +0 -66
  1214. package/dist/skills/tools/tool-search-tool.d.ts +0 -62
  1215. package/dist/skills/tools/tool-search-tool.js +0 -187
  1216. package/dist/skills/tools/tts-tool.d.ts +0 -50
  1217. package/dist/skills/tools/tts-tool.js +0 -58
  1218. package/dist/skills/tools/video-edit-tool.d.ts +0 -72
  1219. package/dist/skills/tools/video-edit-tool.js +0 -84
  1220. package/dist/skills/tools/video-generate-tool.d.ts +0 -162
  1221. package/dist/skills/tools/video-generate-tool.js +0 -178
  1222. package/dist/skills/tools/video-merge-tool.d.ts +0 -105
  1223. package/dist/skills/tools/video-merge-tool.js +0 -95
  1224. package/dist/skills/tools/video-upscale-tool.d.ts +0 -45
  1225. package/dist/skills/tools/video-upscale-tool.js +0 -57
  1226. package/dist/skills/tools/voice-clone-tool.d.ts +0 -40
  1227. package/dist/skills/tools/voice-clone-tool.js +0 -58
  1228. package/dist/skills/tools/web-answer-tool.d.ts +0 -27
  1229. package/dist/skills/tools/web-answer-tool.js +0 -124
  1230. package/dist/skills/tools/web-fetch-tool.d.ts +0 -80
  1231. package/dist/skills/tools/web-fetch-tool.js +0 -95
  1232. package/dist/skills/tools/web-research-tool.d.ts +0 -48
  1233. package/dist/skills/tools/web-research-tool.js +0 -254
  1234. package/dist/skills/tools/web-search-tool.d.ts +0 -46
  1235. package/dist/skills/tools/web-search-tool.js +0 -95
  1236. package/dist/skills/tools/workflow-tool.d.ts +0 -45
  1237. package/dist/skills/tools/workflow-tool.js +0 -113
  1238. package/dist/skills/tools/worktree-tool.d.ts +0 -69
  1239. package/dist/skills/tools/worktree-tool.js +0 -147
  1240. package/dist/skills/tools/write-tool.d.ts +0 -45
  1241. package/dist/skills/tools/write-tool.js +0 -83
  1242. package/dist/skills/tools.d.ts +0 -45
  1243. package/dist/skills/tools.js +0 -165
  1244. package/dist/skills/web-search/brave-source.d.ts +0 -2
  1245. package/dist/skills/web-search/brave-source.js +0 -36
  1246. package/dist/skills/web-search/crawl4ai-extractor.d.ts +0 -15
  1247. package/dist/skills/web-search/crawl4ai-extractor.js +0 -92
  1248. package/dist/skills/web-search/embedding-rerank.d.ts +0 -13
  1249. package/dist/skills/web-search/embedding-rerank.js +0 -44
  1250. package/dist/skills/web-search/exa-source.d.ts +0 -2
  1251. package/dist/skills/web-search/exa-source.js +0 -43
  1252. package/dist/skills/web-search/multi-source-backend.d.ts +0 -23
  1253. package/dist/skills/web-search/multi-source-backend.js +0 -99
  1254. package/dist/skills/web-search/redis-source-cache.d.ts +0 -6
  1255. package/dist/skills/web-search/redis-source-cache.js +0 -44
  1256. package/dist/skills/web-search/search-svc-source.d.ts +0 -4
  1257. package/dist/skills/web-search/search-svc-source.js +0 -64
  1258. package/dist/skills/web-search/searxng-source.d.ts +0 -2
  1259. package/dist/skills/web-search/searxng-source.js +0 -91
  1260. package/dist/skills/web-search/serper-source.d.ts +0 -2
  1261. package/dist/skills/web-search/serper-source.js +0 -33
  1262. package/dist/skills/web-search/source-factory.d.ts +0 -5
  1263. package/dist/skills/web-search/source-factory.js +0 -15
  1264. package/dist/skills/web-search/stability.d.ts +0 -26
  1265. package/dist/skills/web-search/stability.js +0 -57
  1266. package/dist/transport/acp-event-emitter.d.ts +0 -21
  1267. package/dist/transport/acp-event-emitter.js +0 -142
  1268. package/dist/transport/acp-event-emitter.test.d.ts +0 -1
  1269. package/dist/transport/acp-event-emitter.test.js +0 -87
  1270. package/dist/transport/acp-server.d.ts +0 -169
  1271. package/dist/transport/acp-server.js +0 -480
  1272. package/dist/transport/acp-server.test.d.ts +0 -1
  1273. package/dist/transport/acp-server.test.js +0 -230
  1274. package/dist/transport/index.d.ts +0 -7
  1275. package/dist/transport/index.js +0 -5
  1276. package/dist/transport/io-transport.d.ts +0 -19
  1277. package/dist/transport/io-transport.js +0 -8
@@ -1,1449 +0,0 @@
1
- /**
2
- * Workflow mode handlers — ACP surface for the automation workflow engine (plan M2 接入).
3
- * Exposes workflow.create/get/describe/patch/run/setActive/list/delete over the same RPC host
4
- * as product/solo. The engine (WorkflowController) lives in qlogicagent (D12); triggers live in
5
- * the gateway (D7/B) and drive `workflow.run` over ACP.
6
- *
7
- * fail-loud throughout (plan §1.5): unknown id / illegal patch / missing capability all throw.
8
- */
9
- import * as fs from "node:fs";
10
- import * as path from "node:path";
11
- import { randomUUID } from "node:crypto";
12
- import { gzipSync } from "node:zlib";
13
- import { AgentProcessManager } from "../../runtime/infra/agent-process.js";
14
- import { getUserAgentHome } from "../../runtime/infra/agent-paths.js";
15
- import * as projectStore from "../../runtime/infra/project-store.js";
16
- import { AGENT_RPC_ERROR_CODES } from "../../protocol/wire/index.js";
17
- import { WorkflowController, defaultRuntimeFactory } from "../../orchestration/workflow/workflow-controller.js";
18
- import { WorkflowStore } from "../../orchestration/workflow/workflow-store.js";
19
- import { WorkflowRunHistoryStore } from "../../orchestration/workflow/run-history-store.js";
20
- import { FileRunCheckpoint } from "../../orchestration/workflow/run-checkpoint-store.js";
21
- import { NodeRegistry } from "../../orchestration/workflow/node-registry.js";
22
- import { hostExecutors } from "../../orchestration/workflow/host-executors.js";
23
- import { createQlaExecutorHost } from "../../orchestration/workflow/qla-executor-host.js";
24
- import { setWorkflowController } from "../../orchestration/workflow/workflow-service.js";
25
- import { WorkflowScheduler } from "../../orchestration/workflow/workflow-scheduler.js";
26
- import { toWorkflowBundle, fromWorkflowBundle } from "../../orchestration/workflow/workflow-bundle.js";
27
- import { WorkflowAuditStore } from "../../orchestration/workflow/workflow-audit-store.js";
28
- import { workflowsDir } from "../../orchestration/workflow/workflow-store.js";
29
- import { resolveActiveOwnerUserId } from "../../runtime/infra/agent-paths.js";
30
- import { convertN8nWorkflow } from "../../orchestration/workflow/n8n-import.js";
31
- import { buildCapabilityCatalog } from "../../orchestration/workflow/capability-catalog.js";
32
- import { item } from "../../orchestration/workflow/data-item.js";
33
- import { Memdir } from "../../skills/memory/memdir.js";
34
- import { CredentialVault, credentialToHeaders } from "../credential-vault.js";
35
- import { SENSITIVE_KINDS } from "../../orchestration/workflow/budget-permission-gate.js";
36
- import { classifyOperation } from "../../skills/permissions/operation-classifier.js";
37
- import { createDefaultCommunityConsentClient } from "../../runtime/community/community-consent-client.js";
38
- import { createFileCommunityConsentStore, hasMethodSharingConsent, METHOD_CONSENT_REQUIRED_MESSAGE } from "./community-handler.js";
39
- /** D15: per-run node-execution hard cap (plan §1.5 / D15 "循环硬上限 1000"). */
40
- const MAX_NODE_EXECUTIONS = 1000;
41
- /**
42
- * Resolve the project root an RPC addresses. `projectId` routes to that project's workspace
43
- * (fail-loud on unknown ids); without it the active project root is used — the legitimate
44
- * path for agent-tool/chat-built workflows in the current project (not a compat shim).
45
- */
46
- function resolveWorkflowTarget(p) {
47
- if (p.projectId !== undefined && p.projectId !== null && p.projectId !== "") {
48
- const project = projectStore.getProjectById(String(p.projectId));
49
- if (!project)
50
- throw new Error(`workflow: unknown projectId "${String(p.projectId)}"`);
51
- return { cwd: project.workspaceDir, projectId: project.id };
52
- }
53
- const active = projectStore.getActiveProject();
54
- return { cwd: this.getActiveProjectRoot(), projectId: active?.id };
55
- }
56
- /** Build (or fetch) the engine bundle for one project root, wired to real capabilities (§1.5). */
57
- export function ensureWorkflowRoot(target) {
58
- if (!this.workflowRoots)
59
- this.workflowRoots = new Map();
60
- const key = path.resolve(target.cwd);
61
- const existing = this.workflowRoots.get(key);
62
- if (existing) {
63
- // Project ids are stable per dir; backfill when a later call learns it.
64
- if (!existing.projectId && target.projectId)
65
- existing.projectId = target.projectId;
66
- return existing;
67
- }
68
- const cwd = target.cwd;
69
- const store = new WorkflowStore(cwd);
70
- const pm = new AgentProcessManager({
71
- log: {
72
- info: (msg) => process.stderr.write(`[workflow:pm] ${msg}\n`),
73
- warn: (msg) => process.stderr.write(`[workflow:pm] WARN ${msg}\n`),
74
- },
75
- onMcpToolCall: (memberId, tool, args) => this.handleMcpToolCall(memberId, tool, args),
76
- sessionDir: path.join(getUserAgentHome(), "agent-logs"),
77
- });
78
- const execHost = createQlaExecutorHost({
79
- findTool: (name) => this.toolCatalog.findTool(name),
80
- // R5 multi-root:tool 节点(exec)钉在本根工作区,不跟随进程级活动项目 cwd。
81
- workspaceCwd: cwd,
82
- // D29: vault credential → headers, decrypted at execution time only (owner-scoped vault).
83
- resolveCredentialHeaders: (credentialId) => {
84
- const { summary, data } = new CredentialVault().get(credentialId);
85
- return credentialToHeaders(summary.type, data);
86
- },
87
- // IT-7b 无人值守细粒度审计:统一权限引擎的 operation-classifier。D30 的授予是"种类级"
88
- // (允许 tool 这一类),这里在"操作级"补刀 —— 破坏性 shell / 递归删除 / 写出工作区外,
89
- // 即使种类被授予也一律拒(无人在场不冒这险;改 attended 跑或拆步骤)。
90
- auditUnattendedTool: ({ tool, args }) => {
91
- const c = classifyOperation({ toolName: tool, arguments: args }, { workspaceRoot: cwd });
92
- if (c.isDestructive || c.isRecursiveDelete) {
93
- throw new Error(`无人值守运行拒绝破坏性操作:工具「${tool}」被判定为破坏性(递归删除/危险 shell)。请改为手动/口令/表单触发执行,或拆掉该步骤。`);
94
- }
95
- if (c.crossWorkspace) {
96
- throw new Error(`无人值守运行拒绝越界操作:工具「${tool}」的目标路径在项目工作区之外(${c.targetPaths.slice(0, 3).join("、")})。无人值守只允许操作本项目目录。`);
97
- }
98
- },
99
- runAgent: async ({ agentId, prompt, signal }) => {
100
- // Missing / "self" → run on 小智(qlogicagent)本体:buildExternalDescriptor("qlogicagent")
101
- // 返回 self-descriptor(R1 自供给路径,从 owner profile 自解析模型),无需配置外部 agent。
102
- const id = (!agentId || agentId === "self") ? "qlogicagent" : agentId;
103
- const descriptor = this.acpDetector.buildExternalDescriptor(id);
104
- if (!descriptor)
105
- throw new Error(`workflow agent node: agent "${id}" is not available`);
106
- const memberId = `workflow-agent-${randomUUID().slice(0, 8)}`;
107
- if (signal?.aborted)
108
- throw new Error("workflow agent node aborted before dispatch");
109
- // Agent nodes execute inside the owning project's workspace (automation 产物归项目).
110
- await pm.spawn({ memberId, name: `workflow-${id}`, cwd, prompt, external: descriptor });
111
- try {
112
- const result = await pm.sendTask(memberId, prompt);
113
- // The reply payload is {content, stopReason} — downstream nodes want the TEXT,
114
- // not a double-encoded JSON string (the old shape made `.json.text` undefined).
115
- if (typeof result === "string")
116
- return result;
117
- const content = result?.content;
118
- return typeof content === "string" ? content : JSON.stringify(result);
119
- }
120
- finally {
121
- // fail-loud cleanup: surface (not swallow) unexpected teardown errors (§1.5).
122
- try {
123
- pm.kill(memberId);
124
- pm.remove(memberId);
125
- }
126
- catch (e) {
127
- process.stderr.write(`[workflow:pm] WARN cleanup of ${memberId} failed: ${e instanceof Error ? e.message : String(e)}\n`);
128
- }
129
- }
130
- },
131
- invokeMcp: ({ server, tool, args }) => this.handleMcpToolCall(`workflow-mcp:${server}`, tool, args),
132
- // Channel send is fire-and-forget (plan §2.1 A): emit a one-way notification; the openclaw
133
- // gateway (onLifecycleNotification) delivers via the channel layer. Many IM platforms have no
134
- // delivery receipt, so the node does not wait for one — returns {queued} immediately.
135
- sendChannel: async ({ channel, target: to, payload }) => {
136
- this.sendNotification("workflow.channel.send", { channel, target: to, payload });
137
- return { queued: true };
138
- },
139
- // D34 subworkflow:跨根可调;同步调用栈防环(A→B→A 立即拒,深度上限 8)。
140
- // 顶层 run 不经此处,所以把 CALLER 也补入链 —— 否则 A↔B 的第二次 run(A) 会卡在
141
- // controller 并发槽排队(死锁),而不是被守卫立即拒绝。
142
- runSubworkflow: async ({ workflowId, callerWorkflowId, projectId, payload, signal }) => {
143
- const target = projectId
144
- ? ensureWorkflowRoot.call(this, resolveWorkflowTarget.call(this, { projectId }))
145
- : bundle;
146
- const callerFrame = callerWorkflowId ? `${path.resolve(bundle.cwd)}::${callerWorkflowId}` : null;
147
- const addedCallerFrame = callerFrame !== null && !subworkflowStack.has(callerFrame);
148
- if (addedCallerFrame)
149
- subworkflowStack.add(callerFrame);
150
- const frame = `${path.resolve(target.cwd)}::${workflowId}`;
151
- try {
152
- if (subworkflowStack.has(frame)) {
153
- throw new Error(`subworkflow cycle detected: "${workflowId}" is already running in this call chain`);
154
- }
155
- if (subworkflowStack.size >= 8) {
156
- throw new Error(`subworkflow depth limit (8) exceeded`);
157
- }
158
- subworkflowStack.add(frame);
159
- try {
160
- if (signal?.aborted)
161
- throw new Error("subworkflow aborted before dispatch");
162
- const outcome = await target.controller.run(workflowId, { type: "manual", payload });
163
- if (outcome.status !== "completed") {
164
- throw new Error(`subworkflow "${workflowId}" ended with status "${outcome.status}"`);
165
- }
166
- const outputs = {};
167
- for (const [nodeId, portMap] of Object.entries(outcome.result?.outputs ?? {})) {
168
- outputs[nodeId] = Object.fromEntries(Object.entries(portMap).map(([port, items]) => [port, items.map((i) => i.json)]));
169
- }
170
- return [item({ status: outcome.status, runId: outcome.runId ?? null, outputs })];
171
- }
172
- finally {
173
- subworkflowStack.delete(frame);
174
- }
175
- }
176
- finally {
177
- if (addedCallerFrame)
178
- subworkflowStack.delete(callerFrame);
179
- }
180
- },
181
- // D34 human-in-the-loop:通知 owner 并在内存中等待决定(run 保持 running)。
182
- // 登记表带元数据,workflow.approvals 可随时拉取 —— 推送是快路径,拉取保证刷新/重连后仍可见。
183
- // R2-E 跨重启:挂起同时持久登记到 pending-approvals.json;决定/超时/取消即删。重启后
184
- // ensureWorkflowRoot 发现遗留 → 通知 owner「重启中断,重新运行即恢复(前置节点
185
- // checkpoint 缓存命中秒过,审批会重新弹)」—— 恢复语义复用既有重放机制,无第二轨。
186
- approval: ({ nodeId, workflowId, prompt, timeoutMs, signal }) => {
187
- return new Promise((resolve, reject) => {
188
- const key = randomUUID();
189
- const meta = {
190
- approvalId: key,
191
- workflowId: workflowId ?? "",
192
- nodeId,
193
- prompt: prompt ?? "继续执行?",
194
- requestedAt: new Date().toISOString(),
195
- ...projectTag(bundle),
196
- };
197
- persistPendingSuspension(cwd, { kind: "approval", ...meta });
198
- const settle = () => removePendingSuspension(cwd, key);
199
- const deadline = setTimeout(() => {
200
- pendingApprovals.delete(key);
201
- settle();
202
- resolve({ approved: false, decidedAt: new Date().toISOString(), note: "超时未审批,自动拒绝" });
203
- }, timeoutMs ?? 24 * 3600_000);
204
- const onAbort = () => {
205
- clearTimeout(deadline);
206
- pendingApprovals.delete(key);
207
- settle();
208
- reject(new Error("approval wait canceled"));
209
- };
210
- signal?.addEventListener("abort", onAbort, { once: true });
211
- pendingApprovals.set(key, {
212
- meta,
213
- resolve: (approved, note) => {
214
- clearTimeout(deadline);
215
- signal?.removeEventListener("abort", onAbort);
216
- pendingApprovals.delete(key);
217
- settle();
218
- resolve({ approved, decidedAt: new Date().toISOString(), ...(note ? { note } : {}) });
219
- },
220
- });
221
- this.sendNotification("workflow.approvalRequested", meta);
222
- });
223
- },
224
- // D34 wait-until-webhook:挂起分支直到 path 被调用(approval 同款 await-in-memory 单轨;
225
- // 持久登记同 R2-E,重启遗留同样提示重放恢复)。唤醒在 handleWorkflowOnWebhook。
226
- waitWebhook: ({ path: hookPath, nodeId, workflowId, timeoutMs, signal }) => {
227
- return new Promise((resolve, reject) => {
228
- const key = randomUUID();
229
- persistPendingSuspension(cwd, {
230
- kind: "webhook-wait", approvalId: key, workflowId: workflowId ?? "", nodeId,
231
- prompt: `等待 Webhook ${hookPath}`, requestedAt: new Date().toISOString(), ...projectTag(bundle),
232
- });
233
- const settle = () => removePendingSuspension(cwd, key);
234
- const deadline = setTimeout(() => {
235
- dropWebhookWaiter(hookPath, key);
236
- settle();
237
- reject(new Error(`wait(until=webhook) 超时:${hookPath} 在限期内未被调用`));
238
- }, timeoutMs ?? 24 * 3600_000);
239
- const onAbort = () => {
240
- clearTimeout(deadline);
241
- dropWebhookWaiter(hookPath, key);
242
- settle();
243
- reject(new Error("webhook wait canceled"));
244
- };
245
- signal?.addEventListener("abort", onAbort, { once: true });
246
- const waiters = pendingWebhookWaits.get(hookPath) ?? new Map();
247
- waiters.set(key, (payload) => {
248
- clearTimeout(deadline);
249
- signal?.removeEventListener("abort", onAbort);
250
- dropWebhookWaiter(hookPath, key);
251
- settle();
252
- resolve(payload);
253
- });
254
- pendingWebhookWaits.set(hookPath, waiters);
255
- });
256
- },
257
- // Project-scoped memdir backend for `memory` nodes (spec D25): the owning project's
258
- // .qlogicagent/memory. Real store, fail-loud on op errors (§1.5). Topic keys are
259
- // normalized to memdir's `.md` naming (storage detail users shouldn't have to know).
260
- memory: async ({ op, key, value, query }) => {
261
- const memdir = new Memdir(cwd);
262
- memdir.ensureInitialized();
263
- const fileKey = key && !key.endsWith(".md") ? `${key}.md` : key;
264
- if (op === "read") {
265
- if (fileKey) {
266
- const r = await memdir.readFile(fileKey);
267
- if (!r.ok)
268
- throw new Error(`memory read "${fileKey}": ${r.message}`);
269
- return [item({ key: fileKey, content: r.content ?? "" })];
270
- }
271
- return [item({ key: "INDEX", content: memdir.getIndexRaw() })];
272
- }
273
- if (op === "write") {
274
- const text = typeof value === "string" ? value : value !== undefined ? JSON.stringify(value) : "";
275
- if (!text)
276
- throw new Error(`memory write: empty value (provide params.value or upstream input)`);
277
- const r = fileKey ? await memdir.writeFile(fileKey, text) : await memdir.addToIndex(text);
278
- if (!r.ok)
279
- throw new Error(`memory write${fileKey ? ` "${fileKey}"` : ""}: ${r.message}`);
280
- return [item({ ok: true, key: fileKey ?? "INDEX", bytes: text.length })];
281
- }
282
- if (!query)
283
- throw new Error(`memory search requires "query"`);
284
- const hits = await memdir.searchLocal(query);
285
- return [item({ hits: hits })];
286
- },
287
- });
288
- const registry = new NodeRegistry();
289
- for (const [kind, exec] of Object.entries(hostExecutors)) {
290
- registry.register(kind, exec);
291
- }
292
- const bundle = {
293
- cwd,
294
- projectId: target.projectId,
295
- store,
296
- pm,
297
- runHistory: new WorkflowRunHistoryStore(cwd),
298
- audit: new WorkflowAuditStore(workflowsDir(cwd)),
299
- // controller/scheduler assigned below (need the bundle reference for projectId-tagged events).
300
- controller: undefined,
301
- scheduler: undefined,
302
- };
303
- const runtimeFactory = defaultRuntimeFactory({
304
- registry,
305
- host: execHost,
306
- budget: { maxNodeExecutions: MAX_NODE_EXECUTIONS },
307
- checkpoint: (workflowId, runId) => new FileRunCheckpoint(cwd, workflowId, runId),
308
- // Per-node live status → canvas coloring (gateway auto-forwards via ALL_WS_EVENT_NAMES).
309
- emitNodeStatus: (workflowId, nodeId, status) => this.sendNotification("workflow.nodeStatus", { workflowId, nodeId, status, ...projectTag(bundle) }),
310
- });
311
- bundle.controller = new WorkflowController(store, runtimeFactory, bundle.runHistory);
312
- // Trigger layer (M3): reuse the tested scheduler in-process. The gateway owns activation
313
- // (workflow.setActive) + IM/webhook sources; cron timing fires here via the existing scheduler.
314
- bundle.scheduler = new WorkflowScheduler({
315
- controller: bundle.controller,
316
- onError: (err, workflowId) => {
317
- // fail-loud: a timer-driven (cron) run has no caller to throw back to (§1.5).
318
- const message = err instanceof Error ? err.message : String(err);
319
- process.stderr.write(`[workflow:scheduler] run error for ${workflowId}: ${message}\n`);
320
- },
321
- onRunStarted: (workflowId, triggerType) => this.sendNotification("workflow.runStarted", { workflowId, triggerType, ...projectTag(bundle) }),
322
- onRunCompleted: (outcome, triggerType) => emitWorkflowRunCompleted.call(this, bundle, outcome, triggerType),
323
- onRunFailed: (workflowId, triggerType, err) => this.sendNotification("workflow.runFailed", { workflowId, triggerType, error: errorMessage(err), ...projectTag(bundle) }),
324
- // D32 防洪:同一工作流的无人值守触发(webhook/IM/cron)最小间隔(生产装配点显式开)。
325
- minTriggerIntervalMs: 5_000,
326
- // D32 防洪死信:被限流丢弃的触发必须可见(通知 + stderr),绝不静默丢。
327
- onTriggerDropped: (workflowId, triggerType, detail) => {
328
- process.stderr.write(`[workflow:scheduler] trigger dropped (rate-limit) wf=${workflowId} type=${triggerType} sinceLast=${detail.sinceLastMs}ms\n`);
329
- this.sendNotification("workflow.triggerDropped", { workflowId, triggerType, ...detail, ...projectTag(bundle) });
330
- },
331
- });
332
- this.workflowRoots.set(key, bundle);
333
- // The agent-facing `workflow` tool operates on the ACTIVE project (single-track sharing):
334
- // publish (and re-publish on later active-root ensures) only that root's controller.
335
- if (path.resolve(this.getActiveProjectRoot()) === key) {
336
- setWorkflowController(bundle.controller);
337
- }
338
- // Arm active workflows (spec §B4 restart re-registration). fail-loud on startup failure.
339
- bundle.scheduler.start().catch(e => {
340
- process.stderr.write(`[workflow:scheduler] start failed for ${cwd}: ${e instanceof Error ? e.message : String(e)}\n`);
341
- });
342
- // R2-E 重启遗留:上个进程留下的挂起(审批/等 webhook)等待者已死——告警引导重放恢复
343
- // (重新运行时 checkpoint 让已完成节点缓存命中秒过,审批/等待会重新发起),并留审计痕。
344
- const lost = readPendingSuspensions(cwd);
345
- if (lost.length > 0) {
346
- for (const rec of lost) {
347
- this.sendNotification("workflow.alert", {
348
- workflowId: rec.workflowId,
349
- kind: "suspension-lost-on-restart",
350
- suspensionKind: rec.kind,
351
- nodeId: rec.nodeId,
352
- prompt: rec.prompt,
353
- ...projectTag(bundle),
354
- });
355
- bundle.audit.append({
356
- ts: new Date().toISOString(),
357
- actor: "system",
358
- action: "suspensionLostOnRestart",
359
- workflowId: rec.workflowId,
360
- detail: { kind: rec.kind, nodeId: rec.nodeId, requestedAt: rec.requestedAt },
361
- });
362
- }
363
- writePendingSuspensions(cwd, []);
364
- }
365
- return bundle;
366
- }
367
- /**
368
- * Ensure engine roots for the active project AND every automation project (spec D21).
369
- * Called by aggregate surfaces (list / IM / webhook): the gateway's arm-on-connect
370
- * workflow.list therefore arms cron triggers across ALL automation projects (§B4).
371
- */
372
- function ensureAllWorkflowRoots() {
373
- const bundles = new Map();
374
- const active = ensureWorkflowRoot.call(this, resolveWorkflowTarget.call(this, {}));
375
- bundles.set(path.resolve(active.cwd), active);
376
- for (const project of projectStore.listProjects()) {
377
- if (project.type !== "automation")
378
- continue;
379
- const bundle = ensureWorkflowRoot.call(this, { cwd: project.workspaceDir, projectId: project.id });
380
- bundles.set(path.resolve(bundle.cwd), bundle);
381
- }
382
- return [...bundles.values()];
383
- }
384
- /** Notification tag: which project a workflow event belongs to (multi-root routing for the UI). */
385
- /** D38 audit helper: stamp WHO (active owner) did WHAT to WHICH workflow. */
386
- function audit(bundle, action, workflowId, detail) {
387
- bundle.audit.append({
388
- ts: new Date().toISOString(),
389
- actor: resolveActiveOwnerUserId(),
390
- action,
391
- workflowId,
392
- ...(detail ? { detail } : {}),
393
- });
394
- }
395
- function projectTag(bundle) {
396
- return bundle.projectId ? { projectId: bundle.projectId } : {};
397
- }
398
- function params(msg) {
399
- return msg.params ?? {};
400
- }
401
- function fail(msg, message) {
402
- if (msg.id !== undefined) {
403
- this.sendResponse(msg.id, undefined, { code: AGENT_RPC_ERROR_CODES.INVALID_PARAMS, message });
404
- }
405
- }
406
- /** Resolve target root for an RPC, surfacing bad projectIds as INVALID_PARAMS (fail-loud). */
407
- function targetBundle(msg, p) {
408
- try {
409
- return ensureWorkflowRoot.call(this, resolveWorkflowTarget.call(this, p));
410
- }
411
- catch (err) {
412
- fail.call(this, msg, errorMessage(err));
413
- return undefined;
414
- }
415
- }
416
- function workflowSnapshot(record, bundle) {
417
- return {
418
- id: record.id,
419
- name: record.name,
420
- ...(record.owner ? { owner: record.owner } : {}),
421
- active: record.active,
422
- concurrency: record.concurrency,
423
- rev: record.rev,
424
- createdAt: record.createdAt,
425
- updatedAt: record.updatedAt,
426
- ...(record.trigger !== undefined ? { trigger: record.trigger } : {}),
427
- ...(record.permissionScope !== undefined ? { permissionScope: record.permissionScope } : {}),
428
- ...(bundle?.projectId ? { projectId: bundle.projectId } : {}),
429
- // D31 versioning: status is DERIVED (single truth = publishedDef/active/archived fields).
430
- status: record.archived ? "archived" : record.active ? "active" : record.publishedDef ? "paused" : "draft",
431
- ...(record.publishedRev !== undefined ? { publishedRev: record.publishedRev } : {}),
432
- draftAhead: record.publishedRev !== undefined ? record.rev > record.publishedRev : record.publishedDef == null,
433
- def: record.def,
434
- };
435
- }
436
- function emitWorkflowRecord(method, record, bundle) {
437
- this.sendNotification(method, { workflow: workflowSnapshot(record, bundle), ...projectTag(bundle) });
438
- }
439
- /** D33 连败告警:同一工作流连续失败计数(成功清零);阈值即告警(loud,经 inbox/活动日志可见)。 */
440
- const CONSECUTIVE_FAILURE_ALERT_THRESHOLD = 3;
441
- const consecutiveFailures = new Map();
442
- /** D34 子流程同步调用栈(防环/限深;同进程内跨根共享)。 */
443
- const subworkflowStack = new Set();
444
- /** D34 审批挂起表:approvalId → resolver + 展示元数据(workflow.approve 消费;重启即丢=run fail loud)。 */
445
- const pendingApprovals = new Map();
446
- /** D34 wait-until-webhook 唤醒表:path → (suspensionId → wake(payload))。 */
447
- const pendingWebhookWaits = new Map();
448
- function dropWebhookWaiter(hookPath, id) {
449
- const waiters = pendingWebhookWaits.get(hookPath);
450
- waiters?.delete(id);
451
- if (waiters && waiters.size === 0)
452
- pendingWebhookWaits.delete(hookPath);
453
- }
454
- function pendingSuspensionsFile(cwd) {
455
- return path.join(workflowsDir(cwd), "pending-suspensions.json");
456
- }
457
- function readPendingSuspensions(cwd) {
458
- try {
459
- const raw = JSON.parse(fs.readFileSync(pendingSuspensionsFile(cwd), "utf8"));
460
- return Array.isArray(raw) ? raw : [];
461
- }
462
- catch {
463
- return [];
464
- }
465
- }
466
- function writePendingSuspensions(cwd, list) {
467
- try {
468
- const file = pendingSuspensionsFile(cwd);
469
- fs.mkdirSync(path.dirname(file), { recursive: true });
470
- fs.writeFileSync(file, JSON.stringify(list, null, 2), "utf8");
471
- }
472
- catch (err) {
473
- process.stderr.write(`[workflow:suspension] WRITE FAILED: ${err instanceof Error ? err.message : String(err)}\n`);
474
- }
475
- }
476
- function persistPendingSuspension(cwd, rec) {
477
- writePendingSuspensions(cwd, [...readPendingSuspensions(cwd), rec]);
478
- }
479
- function removePendingSuspension(cwd, approvalId) {
480
- writePendingSuspensions(cwd, readPendingSuspensions(cwd).filter((r) => r.approvalId !== approvalId));
481
- }
482
- /** `workflow.approvals` — 列出全部挂起审批(刷新/重连后的拉取恢复路径;推送通知是快路径)。 */
483
- export async function handleWorkflowApprovals(msg) {
484
- if (msg.id !== undefined) {
485
- this.sendResponse(msg.id, { approvals: [...pendingApprovals.values()].map((p) => p.meta) });
486
- }
487
- }
488
- /** `workflow.approve` — 人工审批决定(approved=false 即拒绝);未知/过期 id fail-loud。 */
489
- export async function handleWorkflowApprove(msg) {
490
- const p = params(msg);
491
- if (typeof p.approvalId !== "string" || typeof p.approved !== "boolean") {
492
- return fail.call(this, msg, "workflow.approve requires `approvalId` and boolean `approved`");
493
- }
494
- const pending = pendingApprovals.get(p.approvalId);
495
- if (!pending)
496
- return fail.call(this, msg, `approval "${p.approvalId}" not found (已决定/超时/重启丢失)`);
497
- pending.resolve(p.approved, typeof p.note === "string" && p.note ? p.note : undefined);
498
- if (msg.id !== undefined)
499
- this.sendResponse(msg.id, { ok: true });
500
- }
501
- /**
502
- * `workflow.onForm` — form 触发(D34):校验活跃 form 触发 + 必填字段,以表单值为 $trigger 起 run。
503
- * attended(用户亲手填表提交)。
504
- */
505
- export async function handleWorkflowOnForm(msg) {
506
- const p = params(msg);
507
- if (!p.workflowId || typeof p.values !== "object" || p.values === null) {
508
- return fail.call(this, msg, "workflow.onForm requires `workflowId` and `values` object");
509
- }
510
- const bundle = targetBundle.call(this, msg, p);
511
- if (!bundle)
512
- return;
513
- const workflowId = String(p.workflowId);
514
- const record = await bundle.controller.get(workflowId);
515
- // attended(用户亲手填表)= 跑草稿(D31),所以不要求 active —— 只要求表单定义在。
516
- if (record.trigger?.type !== "form") {
517
- return fail.call(this, msg, `workflow "${workflowId}" has no form trigger`);
518
- }
519
- const values = p.values;
520
- for (const field of record.trigger.fields) {
521
- if (field.required && (values[field.key] === undefined || values[field.key] === "")) {
522
- return fail.call(this, msg, `表单缺少必填项「${field.label ?? field.key}」`);
523
- }
524
- }
525
- this.sendNotification("workflow.runStarted", { workflowId, triggerType: "form", ...projectTag(bundle) });
526
- let outcome;
527
- try {
528
- outcome = await bundle.controller.run(workflowId, { type: "form", payload: { type: "form", ...values } });
529
- emitWorkflowRunCompleted.call(this, bundle, outcome, "form");
530
- }
531
- catch (err) {
532
- this.sendNotification("workflow.runFailed", { workflowId, triggerType: "form", error: errorMessage(err), ...projectTag(bundle) });
533
- throw err;
534
- }
535
- if (msg.id !== undefined)
536
- this.sendResponse(msg.id, outcome);
537
- }
538
- function emitWorkflowRunCompleted(bundle, outcome, triggerType) {
539
- if (outcome.status === "failed" || outcome.status === "canceled") {
540
- this.sendNotification("workflow.runFailed", {
541
- workflowId: outcome.workflowId,
542
- triggerType,
543
- error: outcome.status === "canceled" ? "Workflow run canceled" : "Workflow run failed",
544
- outcome,
545
- ...projectTag(bundle),
546
- });
547
- if (outcome.status === "failed") {
548
- const n = (consecutiveFailures.get(outcome.workflowId) ?? 0) + 1;
549
- consecutiveFailures.set(outcome.workflowId, n);
550
- if (n >= CONSECUTIVE_FAILURE_ALERT_THRESHOLD) {
551
- process.stderr.write(`[workflow:alert] "${outcome.workflowId}" failed ${n} consecutive runs\n`);
552
- this.sendNotification("workflow.alert", {
553
- workflowId: outcome.workflowId,
554
- kind: "consecutive-failures",
555
- count: n,
556
- triggerType,
557
- ...projectTag(bundle),
558
- });
559
- }
560
- }
561
- return;
562
- }
563
- consecutiveFailures.delete(outcome.workflowId);
564
- this.sendNotification("workflow.runCompleted", {
565
- workflowId: outcome.workflowId,
566
- status: outcome.status,
567
- triggerType,
568
- outcome,
569
- ...projectTag(bundle),
570
- });
571
- }
572
- function errorMessage(err) {
573
- return err instanceof Error ? err.message : String(err);
574
- }
575
- export async function handleWorkflowCreate(msg) {
576
- const p = params(msg);
577
- if (!p.def)
578
- return fail.call(this, msg, "workflow.create requires `def`");
579
- const bundle = targetBundle.call(this, msg, p);
580
- if (!bundle)
581
- return;
582
- const id = String(p.id ?? `wf_${randomUUID().slice(0, 8)}`);
583
- const record = await bundle.controller.create({
584
- id,
585
- name: String(p.name ?? id),
586
- owner: resolveActiveOwnerUserId(),
587
- def: p.def,
588
- concurrency: p.concurrency,
589
- active: p.active === true,
590
- });
591
- if (record.active)
592
- await bundle.scheduler.refresh(record.id);
593
- audit(bundle, "created", record.id, { name: record.name });
594
- emitWorkflowRecord.call(this, "workflow.created", record, bundle);
595
- if (msg.id !== undefined)
596
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
597
- }
598
- export async function handleWorkflowGet(msg) {
599
- const p = params(msg);
600
- if (!p.id)
601
- return fail.call(this, msg, "workflow.get requires `id`");
602
- const bundle = targetBundle.call(this, msg, p);
603
- if (!bundle)
604
- return;
605
- const record = await bundle.controller.get(String(p.id));
606
- const snap = workflowSnapshot(record, bundle);
607
- // D31: the published snapshot is opt-in (diff preview) — list/update payloads stay lean.
608
- if (p.includePublished === true && record.publishedDef)
609
- snap.publishedDef = record.publishedDef;
610
- if (msg.id !== undefined)
611
- this.sendResponse(msg.id, snap);
612
- }
613
- export async function handleWorkflowDescribe(msg) {
614
- const p = params(msg);
615
- if (!p.id)
616
- return fail.call(this, msg, "workflow.describe requires `id`");
617
- const bundle = targetBundle.call(this, msg, p);
618
- if (!bundle)
619
- return;
620
- const rendered = await bundle.controller.describe(String(p.id));
621
- if (msg.id !== undefined)
622
- this.sendResponse(msg.id, { rendered });
623
- }
624
- export async function handleWorkflowPatch(msg) {
625
- const p = params(msg);
626
- if (!p.id || !p.patch)
627
- return fail.call(this, msg, "workflow.patch requires `id` and `patch`");
628
- const bundle = targetBundle.call(this, msg, p);
629
- if (!bundle)
630
- return;
631
- const env = {
632
- patch: p.patch,
633
- baseRev: p.baseRev,
634
- scope: p.scope,
635
- };
636
- const outcome = await bundle.controller.patch(String(p.id), env);
637
- // A patch may set/clear the trigger or activation → re-arm the scheduler.
638
- await bundle.scheduler.refresh(String(p.id));
639
- if (outcome.ok) {
640
- audit(bundle, "patched", String(p.id), { ops: (env.patch ?? []).map((op) => op.op) });
641
- emitWorkflowRecord.call(this, "workflow.updated", await bundle.controller.get(String(p.id)), bundle);
642
- }
643
- if (msg.id !== undefined)
644
- this.sendResponse(msg.id, outcome);
645
- }
646
- export async function handleWorkflowRun(msg) {
647
- const p = params(msg);
648
- if (!p.id)
649
- return fail.call(this, msg, "workflow.run requires `id`");
650
- const bundle = targetBundle.call(this, msg, p);
651
- if (!bundle)
652
- return;
653
- const trigger = p.trigger ?? { type: "manual" };
654
- const workflowId = String(p.id);
655
- this.sendNotification("workflow.runStarted", { workflowId, triggerType: trigger.type, ...projectTag(bundle) });
656
- let outcome;
657
- try {
658
- // R5 reuseCache(D44):工作室画布显式跨 run 缓存(改参数只重跑下游);默认关。
659
- outcome = await bundle.controller.run(workflowId, trigger, { reuseCache: p.reuseCache === true });
660
- emitWorkflowRunCompleted.call(this, bundle, outcome, trigger.type);
661
- }
662
- catch (err) {
663
- this.sendNotification("workflow.runFailed", { workflowId, triggerType: trigger.type, error: errorMessage(err), ...projectTag(bundle) });
664
- throw err;
665
- }
666
- if (msg.id !== undefined)
667
- this.sendResponse(msg.id, outcome);
668
- }
669
- /**
670
- * `workflow.update` — record-level meta/def update (rename, whole-def replacement from the
671
- * chat builder, concurrency). Graph micro-edits stay on workflow.patch; trigger stays a
672
- * set_trigger patch op (single track each).
673
- */
674
- export async function handleWorkflowUpdate(msg) {
675
- const p = params(msg);
676
- if (!p.id)
677
- return fail.call(this, msg, "workflow.update requires `id`");
678
- if (p.name === undefined && p.def === undefined && p.concurrency === undefined) {
679
- return fail.call(this, msg, "workflow.update requires at least one of `name`/`def`/`concurrency`");
680
- }
681
- const bundle = targetBundle.call(this, msg, p);
682
- if (!bundle)
683
- return;
684
- const record = await bundle.controller.update(String(p.id), {
685
- ...(p.name !== undefined ? { name: String(p.name) } : {}),
686
- ...(p.def !== undefined ? { def: p.def } : {}),
687
- ...(p.concurrency !== undefined ? { concurrency: p.concurrency } : {}),
688
- });
689
- await bundle.scheduler.refresh(record.id);
690
- audit(bundle, "updated", record.id, { fields: ["name", "def", "concurrency"].filter((f) => p[f] !== undefined) });
691
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
692
- if (msg.id !== undefined)
693
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
694
- }
695
- export async function handleWorkflowSetActive(msg) {
696
- const p = params(msg);
697
- if (!p.id || typeof p.active !== "boolean")
698
- return fail.call(this, msg, "workflow.setActive requires `id` and boolean `active`");
699
- const bundle = targetBundle.call(this, msg, p);
700
- if (!bundle)
701
- return;
702
- let record;
703
- try {
704
- record = await bundle.controller.setActive(String(p.id), p.active);
705
- }
706
- catch (err) {
707
- // D31 lifecycle refusals (unpublished/archived) are caller-fixable → error response, not a crash.
708
- return fail.call(this, msg, errorMessage(err));
709
- }
710
- await bundle.scheduler.refresh(record.id);
711
- audit(bundle, p.active ? "activated" : "deactivated", record.id);
712
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
713
- if (msg.id !== undefined)
714
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
715
- }
716
- export async function handleWorkflowList(msg) {
717
- const p = params(msg);
718
- if (p.projectId) {
719
- const bundle = targetBundle.call(this, msg, p);
720
- if (!bundle)
721
- return;
722
- const records = await bundle.store.list();
723
- if (msg.id !== undefined)
724
- this.sendResponse(msg.id, { workflows: records.map(r => workflowSnapshot(r, bundle)) });
725
- return;
726
- }
727
- // Aggregate across the active root + every automation project (spec D21). The gateway's
728
- // arm-on-connect workflow.list lands here, which also arms every root's scheduler (§B4).
729
- const bundles = ensureAllWorkflowRoots.call(this);
730
- const workflows = [];
731
- for (const bundle of bundles) {
732
- const records = await bundle.store.list();
733
- workflows.push(...records.map(r => workflowSnapshot(r, bundle)));
734
- }
735
- if (msg.id !== undefined)
736
- this.sendResponse(msg.id, { workflows });
737
- }
738
- export async function handleWorkflowDelete(msg) {
739
- const p = params(msg);
740
- if (!p.id)
741
- return fail.call(this, msg, "workflow.delete requires `id`");
742
- const bundle = targetBundle.call(this, msg, p);
743
- if (!bundle)
744
- return;
745
- await bundle.controller.delete(String(p.id));
746
- await bundle.scheduler.refresh(String(p.id)); // drop any armed trigger for the deleted workflow
747
- audit(bundle, "deleted", String(p.id));
748
- this.sendNotification("workflow.deleted", { workflowId: String(p.id), ...projectTag(bundle) });
749
- if (msg.id !== undefined)
750
- this.sendResponse(msg.id, { ok: true });
751
- }
752
- /**
753
- * `workflow.cancelRun` — stop an in-flight run (D32; engine support landed with the teammate's
754
- * runId/AbortController work, this exposes it on the RPC face + a UI stop button). Cancels the
755
- * newest active run when runId is omitted. fail-loud when nothing is running.
756
- */
757
- export async function handleWorkflowCancelRun(msg) {
758
- const p = params(msg);
759
- if (!p.id)
760
- return fail.call(this, msg, "workflow.cancelRun requires `id`");
761
- const bundle = targetBundle.call(this, msg, p);
762
- if (!bundle)
763
- return;
764
- let outcome;
765
- try {
766
- outcome = await bundle.controller.cancelRun(String(p.id), {
767
- ...(typeof p.runId === "string" && p.runId ? { runId: p.runId } : {}),
768
- reason: typeof p.reason === "string" && p.reason ? p.reason : "用户停止了运行",
769
- });
770
- }
771
- catch (err) {
772
- return fail.call(this, msg, errorMessage(err));
773
- }
774
- emitWorkflowRunCompleted.call(this, bundle, outcome, "manual");
775
- if (msg.id !== undefined)
776
- this.sendResponse(msg.id, outcome);
777
- }
778
- // ── Observability (spec D33/D36, IT-9) ─────────────────────────────────────────
779
- /**
780
- * `workflow.dryRun` — test-run the DRAFT with an optional simulated trigger payload, WITHOUT
781
- * recording into run history (D36: test runs stay out of production stats). Returns the full
782
- * outcome incl. per-node trace for inspection.
783
- */
784
- export async function handleWorkflowDryRun(msg) {
785
- const p = params(msg);
786
- if (!p.id)
787
- return fail.call(this, msg, "workflow.dryRun requires `id`");
788
- const bundle = targetBundle.call(this, msg, p);
789
- if (!bundle)
790
- return;
791
- const workflowId = String(p.id);
792
- this.sendNotification("workflow.runStarted", { workflowId, triggerType: "manual", ...projectTag(bundle) });
793
- let outcome;
794
- try {
795
- outcome = await bundle.controller.run(workflowId, { type: "manual", payload: p.payload }, { recordHistory: false });
796
- emitWorkflowRunCompleted.call(this, bundle, outcome, "manual");
797
- }
798
- catch (err) {
799
- this.sendNotification("workflow.runFailed", { workflowId, triggerType: "manual", error: errorMessage(err), ...projectTag(bundle) });
800
- return fail.call(this, msg, errorMessage(err));
801
- }
802
- if (msg.id !== undefined)
803
- this.sendResponse(msg.id, { ...outcome, dryRun: true });
804
- }
805
- /** `workflow.metrics` — aggregate run history into success-rate/duration/trigger stats (D33). */
806
- export async function handleWorkflowMetrics(msg) {
807
- const p = params(msg);
808
- if (!p.id)
809
- return fail.call(this, msg, "workflow.metrics requires `id`");
810
- const bundle = targetBundle.call(this, msg, p);
811
- if (!bundle)
812
- return;
813
- const runs = await bundle.runHistory.list(String(p.id));
814
- const settled = runs.filter((r) => r.status !== "running");
815
- const completed = settled.filter((r) => r.status === "completed");
816
- const failed = settled.filter((r) => r.status === "failed");
817
- const durations = settled.map((r) => r.durationMs).filter((d) => typeof d === "number");
818
- let consecutiveFailures = 0;
819
- for (const r of settled) {
820
- if (r.status === "failed")
821
- consecutiveFailures++;
822
- else
823
- break;
824
- }
825
- const byTrigger = {};
826
- for (const r of settled)
827
- byTrigger[r.triggerType] = (byTrigger[r.triggerType] ?? 0) + 1;
828
- if (msg.id !== undefined) {
829
- this.sendResponse(msg.id, {
830
- metrics: {
831
- totalRuns: settled.length,
832
- completed: completed.length,
833
- failed: failed.length,
834
- canceled: settled.filter((r) => r.status === "canceled").length,
835
- successRate: settled.length > 0 ? completed.length / settled.length : null,
836
- avgDurationMs: durations.length > 0 ? Math.round(durations.reduce((a, b) => a + b, 0) / durations.length) : null,
837
- lastRunAt: settled[0]?.startedAt ?? null,
838
- consecutiveFailures,
839
- byTrigger,
840
- windowSize: runs.length,
841
- },
842
- });
843
- }
844
- }
845
- // ── Versioning lifecycle (spec D31, IT-8) ──────────────────────────────────────
846
- /** `workflow.publish` — snapshot the draft as the trigger-run version (D31). */
847
- export async function handleWorkflowPublish(msg) {
848
- const p = params(msg);
849
- if (!p.id)
850
- return fail.call(this, msg, "workflow.publish requires `id`");
851
- const bundle = targetBundle.call(this, msg, p);
852
- if (!bundle)
853
- return;
854
- let record;
855
- try {
856
- record = await bundle.controller.publish(String(p.id));
857
- }
858
- catch (err) {
859
- return fail.call(this, msg, errorMessage(err));
860
- }
861
- audit(bundle, "published", record.id, { rev: record.publishedRev });
862
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
863
- if (msg.id !== undefined)
864
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
865
- }
866
- /** `workflow.archive` — keep the data, kill the lifecycle (deactivate + refuse runs). */
867
- export async function handleWorkflowArchive(msg) {
868
- const p = params(msg);
869
- if (!p.id || typeof p.archived !== "boolean")
870
- return fail.call(this, msg, "workflow.archive requires `id` and boolean `archived`");
871
- const bundle = targetBundle.call(this, msg, p);
872
- if (!bundle)
873
- return;
874
- const record = await bundle.controller.archive(String(p.id), p.archived);
875
- await bundle.scheduler.refresh(record.id); // archived ⇒ inactive ⇒ disarm
876
- audit(bundle, p.archived ? "archived" : "unarchived", record.id);
877
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
878
- if (msg.id !== undefined)
879
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
880
- }
881
- // ── Credential vault (spec D29, IT-7) ──────────────────────────────────────────
882
- // Owner-scoped; list is secret-free; decrypted payloads NEVER cross the RPC face.
883
- export async function handleCredentialList(msg) {
884
- const credentials = new CredentialVault().list();
885
- if (msg.id !== undefined)
886
- this.sendResponse(msg.id, { credentials });
887
- }
888
- export async function handleCredentialCreate(msg) {
889
- const p = params(msg);
890
- if (!p.type || !p.label || typeof p.data !== "object" || p.data === null) {
891
- return fail.call(this, msg, "credential.create requires `type`, `label`, and `data` object");
892
- }
893
- try {
894
- const summary = new CredentialVault().create({
895
- type: p.type,
896
- label: String(p.label),
897
- data: p.data,
898
- meta: p.meta ?? undefined,
899
- });
900
- if (msg.id !== undefined)
901
- this.sendResponse(msg.id, summary);
902
- }
903
- catch (err) {
904
- return fail.call(this, msg, errorMessage(err));
905
- }
906
- }
907
- export async function handleCredentialDelete(msg) {
908
- const p = params(msg);
909
- if (!p.id)
910
- return fail.call(this, msg, "credential.delete requires `id`");
911
- const deleted = new CredentialVault().delete(String(p.id));
912
- if (msg.id !== undefined)
913
- this.sendResponse(msg.id, { ok: deleted });
914
- }
915
- /** Pending OAuth dances keyed by `state` (single-process; entries expire after 10 minutes). */
916
- const pendingOAuth = new Map();
917
- /**
918
- * `credential.oauthStart` — create an oauth2 credential (config persisted, token pending) and
919
- * return the authorize URL the UI opens in the browser. The gateway's /api/oauth/callback lands
920
- * the code on credential.oauthComplete.
921
- */
922
- export async function handleCredentialOauthStart(msg) {
923
- const p = params(msg);
924
- for (const key of ["label", "authUrl", "tokenUrl", "clientId", "redirectUri"]) {
925
- if (typeof p[key] !== "string" || !p[key])
926
- return fail.call(this, msg, `credential.oauthStart requires \`${key}\``);
927
- }
928
- try {
929
- const vault = new CredentialVault();
930
- const scopes = typeof p.scopes === "string" ? p.scopes : "";
931
- const summary = vault.create({
932
- type: "oauth2",
933
- label: String(p.label),
934
- data: {
935
- tokenUrl: String(p.tokenUrl),
936
- clientId: String(p.clientId),
937
- ...(typeof p.clientSecret === "string" && p.clientSecret ? { clientSecret: p.clientSecret } : {}),
938
- ...(scopes ? { scopes } : {}),
939
- },
940
- meta: { ...(scopes ? { scopes } : {}), pending: true },
941
- });
942
- const state = randomUUID();
943
- // Expire stale dances so an abandoned state can't be replayed much later.
944
- const now = Date.now();
945
- for (const [s, entry] of pendingOAuth)
946
- if (entry.expiresAt < now)
947
- pendingOAuth.delete(s);
948
- pendingOAuth.set(state, {
949
- credentialId: summary.id,
950
- tokenUrl: String(p.tokenUrl),
951
- clientId: String(p.clientId),
952
- ...(typeof p.clientSecret === "string" && p.clientSecret ? { clientSecret: p.clientSecret } : {}),
953
- redirectUri: String(p.redirectUri),
954
- expiresAt: now + 10 * 60_000,
955
- });
956
- const u = new URL(String(p.authUrl));
957
- u.searchParams.set("response_type", "code");
958
- u.searchParams.set("client_id", String(p.clientId));
959
- u.searchParams.set("redirect_uri", String(p.redirectUri));
960
- u.searchParams.set("state", state);
961
- if (scopes)
962
- u.searchParams.set("scope", scopes);
963
- if (msg.id !== undefined)
964
- this.sendResponse(msg.id, { credentialId: summary.id, authorizeUrl: u.toString(), state });
965
- }
966
- catch (err) {
967
- return fail.call(this, msg, errorMessage(err));
968
- }
969
- }
970
- /** `credential.oauthComplete` — exchange the authorization code and store tokens in the vault. */
971
- export async function handleCredentialOauthComplete(msg) {
972
- const p = params(msg);
973
- if (typeof p.state !== "string" || typeof p.code !== "string" || !p.state || !p.code) {
974
- return fail.call(this, msg, "credential.oauthComplete requires `state` and `code`");
975
- }
976
- const pending = pendingOAuth.get(p.state);
977
- if (!pending || pending.expiresAt < Date.now()) {
978
- pendingOAuth.delete(p.state);
979
- return fail.call(this, msg, "OAuth state unknown or expired — restart the authorization");
980
- }
981
- pendingOAuth.delete(p.state);
982
- try {
983
- const body = new URLSearchParams({
984
- grant_type: "authorization_code",
985
- code: p.code,
986
- redirect_uri: pending.redirectUri,
987
- client_id: pending.clientId,
988
- ...(pending.clientSecret ? { client_secret: pending.clientSecret } : {}),
989
- });
990
- const res = await fetch(pending.tokenUrl, {
991
- method: "POST",
992
- headers: { "Content-Type": "application/x-www-form-urlencoded", Accept: "application/json" },
993
- body: body.toString(),
994
- });
995
- const text = await res.text();
996
- if (!res.ok)
997
- throw new Error(`token exchange failed (${res.status}): ${text.slice(0, 200)}`);
998
- const tok = JSON.parse(text);
999
- if (!tok.access_token)
1000
- throw new Error(`token endpoint returned no access_token: ${text.slice(0, 200)}`);
1001
- const vault = new CredentialVault();
1002
- const { data } = vault.get(pending.credentialId);
1003
- vault.updateData(pending.credentialId, {
1004
- ...data,
1005
- accessToken: tok.access_token,
1006
- ...(tok.refresh_token ? { refreshToken: tok.refresh_token } : {}),
1007
- ...(tok.expires_in ? { expiresAt: new Date(Date.now() + tok.expires_in * 1000).toISOString() } : {}),
1008
- }, { pending: undefined }); // token 落地 → 不再「待授权」
1009
- if (msg.id !== undefined)
1010
- this.sendResponse(msg.id, { ok: true, credentialId: pending.credentialId });
1011
- }
1012
- catch (err) {
1013
- return fail.call(this, msg, errorMessage(err));
1014
- }
1015
- }
1016
- /**
1017
- * `workflow.setPermissionScope` — the owner's explicit unattended capability grant (D30):
1018
- * which sensitive kinds this workflow may run under schedule/im/webhook triggers.
1019
- */
1020
- export async function handleWorkflowSetPermissionScope(msg) {
1021
- const p = params(msg);
1022
- if (!p.id)
1023
- return fail.call(this, msg, "workflow.setPermissionScope requires `id`");
1024
- if (p.allowUnattendedKinds !== null && !Array.isArray(p.allowUnattendedKinds)) {
1025
- return fail.call(this, msg, "workflow.setPermissionScope requires `allowUnattendedKinds` array (or null to revoke)");
1026
- }
1027
- const bundle = targetBundle.call(this, msg, p);
1028
- if (!bundle)
1029
- return;
1030
- const scope = p.allowUnattendedKinds === null
1031
- ? null
1032
- : {
1033
- allowUnattendedKinds: p.allowUnattendedKinds.filter((k) => typeof k === "string"),
1034
- grantedAt: new Date().toISOString(),
1035
- };
1036
- const record = await bundle.controller.update(String(p.id), { permissionScope: scope });
1037
- audit(bundle, scope ? "permissionGranted" : "permissionRevoked", record.id, scope ? { kinds: scope.allowUnattendedKinds } : undefined);
1038
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
1039
- if (msg.id !== undefined)
1040
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
1041
- }
1042
- // ── Capability catalog (spec D24, IT-3) ────────────────────────────────────────
1043
- /**
1044
- * `workflow.capabilities` — enumerate the real agents/tools/skills/mcp/memory a workflow in the
1045
- * target project can reference (single source of truth, five consumers: AI builder prompt,
1046
- * "+" suggestions, advanced node library, config dropdowns, Hub requires checks). Channels are
1047
- * gateway-owned: the gateway merges its channel registry into this response in ws-server.
1048
- */
1049
- export async function handleWorkflowCapabilities(msg) {
1050
- const p = params(msg);
1051
- let projectRoot;
1052
- try {
1053
- projectRoot = resolveWorkflowTarget.call(this, p).cwd;
1054
- }
1055
- catch (err) {
1056
- return fail.call(this, msg, errorMessage(err));
1057
- }
1058
- const capabilities = buildCapabilityCatalog({
1059
- getToolManifest: () => this.toolCatalog.getToolManifest(),
1060
- listAgentIds: () => [
1061
- { id: "qlogicagent", name: "小智(默认)" },
1062
- ...this.acpDetector.list().filter((a) => a.status === "available" && a.id !== "qlogicagent").map((a) => ({ id: a.id, name: a.name })),
1063
- ],
1064
- projectRoot,
1065
- });
1066
- if (msg.id !== undefined)
1067
- this.sendResponse(msg.id, { capabilities });
1068
- }
1069
- // ── Portable bundles: export / import / duplicate (spec D23, IT-1) ─────────────
1070
- /** `workflow.export` — serialize one workflow as a sanitized portable bundle (no credentials). */
1071
- export async function handleWorkflowExport(msg) {
1072
- const p = params(msg);
1073
- if (!p.id)
1074
- return fail.call(this, msg, "workflow.export requires `id`");
1075
- const bundle = targetBundle.call(this, msg, p);
1076
- if (!bundle)
1077
- return;
1078
- const record = await bundle.controller.get(String(p.id));
1079
- const exported = toWorkflowBundle(record);
1080
- if (msg.id !== undefined)
1081
- this.sendResponse(msg.id, { bundle: exported });
1082
- }
1083
- /** Human trigger summary for the Hub gallery card (mirrors the UI's list summary). */
1084
- function summarizeTriggerForHub(trigger) {
1085
- switch (trigger?.type) {
1086
- case "schedule": return trigger.cron ? `定时 ${trigger.cron}` : "定时";
1087
- case "intent": return trigger.phrases?.length ? `口令「${trigger.phrases[0]}」` : "口令触发";
1088
- case "im-message": return trigger.channel ? `IM 消息 · ${trigger.channel}` : "IM 消息";
1089
- case "webhook": return trigger.path ? `Webhook ${trigger.path}` : "Webhook";
1090
- case "form": return "表单触发";
1091
- case "manual": return "手动触发";
1092
- default: return undefined;
1093
- }
1094
- }
1095
- /**
1096
- * `workflow.publishHub` — publish a workflow to the community Hub (IT-5, spec D35):
1097
- * sanitized bundle (D23 — credential values already stripped) becomes the gzip payload;
1098
- * the WorkflowManifest is DERIVED from the record (trigger summary, node count, sensitive
1099
- * capability kinds as declaredPermissions, credential/capability requirements), so the
1100
- * publisher only supplies presentation fields. Same consent + review pipeline as skills.
1101
- */
1102
- export async function handleWorkflowPublishHub(msg) {
1103
- const p = params(msg);
1104
- if (!p.id || typeof p.slug !== "string" || !p.slug || typeof p.summary !== "string" || !p.summary.trim()) {
1105
- return fail.call(this, msg, "workflow.publishHub requires `id`, `slug`, `summary`");
1106
- }
1107
- const bundle = targetBundle.call(this, msg, p);
1108
- if (!bundle)
1109
- return;
1110
- const record = await bundle.controller.get(String(p.id));
1111
- const store = this.resolveCommunityConsentStore?.() ?? createFileCommunityConsentStore();
1112
- const consent = await store.read();
1113
- if (!hasMethodSharingConsent(consent)) {
1114
- return fail.call(this, msg, METHOD_CONSENT_REQUIRED_MESSAGE);
1115
- }
1116
- const client = this.resolveCommunityConsentClient ? this.resolveCommunityConsentClient() : createDefaultCommunityConsentClient();
1117
- if (!client) {
1118
- return fail.call(this, msg, "Community hub is unavailable (登录后才能发布).");
1119
- }
1120
- const exported = toWorkflowBundle(record);
1121
- const usedKinds = new Set(record.def.nodes.map((n) => n.kind));
1122
- const manifest = {
1123
- schema_version: 15,
1124
- kind: "executable",
1125
- name: record.name,
1126
- summary: String(p.summary).trim(),
1127
- description: typeof p.description === "string" && p.description.trim() ? p.description.trim() : String(p.summary).trim(),
1128
- entry: "bundle.json",
1129
- declaredPermissions: [...usedKinds].filter((k) => SENSITIVE_KINDS.has(k)).sort(),
1130
- ...(summarizeTriggerForHub(record.trigger) ? { triggerSummary: summarizeTriggerForHub(record.trigger) } : {}),
1131
- nodeCount: record.def.nodes.length,
1132
- ...(exported.credentialsRequired.length > 0 ? { credentialsRequired: exported.credentialsRequired.map((c) => c.label) } : {}),
1133
- ...(exported.requires.length > 0 ? { capabilityRequires: exported.requires.map((r) => `${r.category}:${r.ref}`) } : {}),
1134
- ...(Array.isArray(p.tags) && p.tags.length > 0 ? { tags: p.tags.filter((t) => typeof t === "string") } : {}),
1135
- };
1136
- try {
1137
- const result = await client.publishWorkflow({
1138
- id: String(p.slug),
1139
- title: record.name,
1140
- summary: String(p.summary).trim(),
1141
- visibility: p.visibility === "private" ? "private" : "public",
1142
- ...(typeof p.category === "string" && p.category ? { category: p.category } : {}),
1143
- ...(Array.isArray(p.tags) ? { tags: p.tags.filter((t) => typeof t === "string") } : {}),
1144
- manifest,
1145
- version: typeof p.version === "string" && p.version.trim() ? p.version.trim() : "1.0.0",
1146
- packageGzipBase64: gzipSync(Buffer.from(JSON.stringify(exported), "utf8")).toString("base64"),
1147
- });
1148
- audit(bundle, "publishedToHub", record.id, { slug: String(p.slug), visibility: p.visibility === "private" ? "private" : "public" });
1149
- if (msg.id !== undefined)
1150
- this.sendResponse(msg.id, { ok: true, ...result });
1151
- }
1152
- catch (err) {
1153
- return fail.call(this, msg, `workflow.publishHub: ${errorMessage(err)}`);
1154
- }
1155
- }
1156
- /**
1157
- * `workflow.import` — materialize a portable bundle (or raw n8n JSON, format:"n8n") into a target
1158
- * project. The caller creates/owns the project (frontend: WorkspaceStep → POST /api/projects);
1159
- * this RPC only lands the workflow. fail-loud on malformed payloads (§1.5).
1160
- */
1161
- export async function handleWorkflowImport(msg) {
1162
- const p = params(msg);
1163
- if (!p.payload)
1164
- return fail.call(this, msg, "workflow.import requires `payload`");
1165
- const bundle = targetBundle.call(this, msg, p);
1166
- if (!bundle)
1167
- return;
1168
- // targetWorkflowId lands the import ONTO an existing record (an automation project's primary
1169
- // workflow, seeded empty at project birth) instead of creating a sibling — keeps "one
1170
- // automation = one project = one primary workflow" (D21) without orphaned empties.
1171
- const targetWorkflowId = typeof p.targetWorkflowId === "string" && p.targetWorkflowId ? p.targetWorkflowId : undefined;
1172
- const id = targetWorkflowId ?? String(p.id ?? `wf_${randomUUID().slice(0, 8)}`);
1173
- let record;
1174
- // IT-11:n8n 导入产转换报告(完全/部分/需人工,逐项降级明细)随响应返回给导入向导。
1175
- let n8nReport;
1176
- // Malformed payloads are caller input → INVALID_PARAMS response, not a dispatcher crash.
1177
- try {
1178
- if (p.format === "n8n") {
1179
- if (targetWorkflowId) {
1180
- const converted = convertN8nWorkflow(p.payload, id);
1181
- n8nReport = converted.report;
1182
- record = await bundle.controller.update(id, { name: String(p.name ?? converted.name), def: converted.def });
1183
- }
1184
- else {
1185
- const imported = await bundle.controller.importN8n(id, p.payload, { owner: resolveActiveOwnerUserId() });
1186
- record = imported.record;
1187
- n8nReport = imported.report;
1188
- if (p.name)
1189
- record = await bundle.controller.update(id, { name: String(p.name) });
1190
- }
1191
- }
1192
- else {
1193
- const parsed = fromWorkflowBundle(p.payload);
1194
- if (targetWorkflowId) {
1195
- record = await bundle.controller.update(id, {
1196
- name: String(p.name ?? parsed.name),
1197
- def: { ...parsed.def, id },
1198
- ...(parsed.concurrency ? { concurrency: parsed.concurrency } : {}),
1199
- });
1200
- }
1201
- else {
1202
- record = await bundle.controller.create({
1203
- id,
1204
- name: String(p.name ?? parsed.name),
1205
- owner: resolveActiveOwnerUserId(),
1206
- def: { ...parsed.def, id },
1207
- concurrency: parsed.concurrency,
1208
- });
1209
- }
1210
- if (parsed.trigger) {
1211
- const outcome = await bundle.controller.patch(id, { patch: [{ op: "set_trigger", trigger: parsed.trigger }] });
1212
- if (!outcome.ok)
1213
- throw new Error(`trigger rejected: ${JSON.stringify("errors" in outcome ? outcome.errors : outcome)}`);
1214
- record = await bundle.controller.get(id);
1215
- }
1216
- }
1217
- }
1218
- catch (err) {
1219
- return fail.call(this, msg, `workflow.import: ${errorMessage(err)}`);
1220
- }
1221
- audit(bundle, "imported", record.id, { format: p.format === "n8n" ? "n8n" : "bundle", ...(n8nReport ? { conversion: n8nReport.status } : {}) });
1222
- emitWorkflowRecord.call(this, targetWorkflowId ? "workflow.updated" : "workflow.created", record, bundle);
1223
- if (msg.id !== undefined) {
1224
- this.sendResponse(msg.id, { ...workflowSnapshot(record, bundle), ...(n8nReport ? { conversionReport: n8nReport } : {}) });
1225
- }
1226
- }
1227
- /**
1228
- * `workflow.duplicate` — copy a workflow (same graph/trigger, fresh id, inactive) into a target
1229
- * project: export→import in-process (one serialization path, spec D23). 复制/另存为 both land here.
1230
- */
1231
- export async function handleWorkflowDuplicate(msg) {
1232
- const p = params(msg);
1233
- if (!p.id)
1234
- return fail.call(this, msg, "workflow.duplicate requires `id`");
1235
- const source = targetBundle.call(this, msg, p);
1236
- if (!source)
1237
- return;
1238
- let target;
1239
- try {
1240
- target = p.targetProjectId
1241
- ? ensureWorkflowRoot.call(this, resolveWorkflowTarget.call(this, { projectId: p.targetProjectId }))
1242
- : source;
1243
- }
1244
- catch (err) {
1245
- return fail.call(this, msg, errorMessage(err));
1246
- }
1247
- const record = await source.controller.get(String(p.id));
1248
- const exported = toWorkflowBundle(record);
1249
- const newId = `wf_${randomUUID().slice(0, 8)}`;
1250
- let created = await target.controller.create({
1251
- id: newId,
1252
- name: String(p.name ?? `${record.name} 副本`),
1253
- owner: resolveActiveOwnerUserId(),
1254
- def: { ...exported.def, id: newId },
1255
- concurrency: record.concurrency,
1256
- });
1257
- if (exported.trigger) {
1258
- const outcome = await target.controller.patch(newId, { patch: [{ op: "set_trigger", trigger: exported.trigger }] });
1259
- if (!outcome.ok)
1260
- throw new Error(`workflow.duplicate: trigger rejected: ${JSON.stringify("errors" in outcome ? outcome.errors : outcome)}`);
1261
- created = await target.controller.get(newId);
1262
- }
1263
- audit(target, "duplicated", newId, { sourceWorkflowId: String(p.id) });
1264
- emitWorkflowRecord.call(this, "workflow.created", created, target);
1265
- if (msg.id !== undefined)
1266
- this.sendResponse(msg.id, workflowSnapshot(created, target));
1267
- }
1268
- // ── Trigger entry points (M3): driven by the openclaw gateway over ACP (D7/B) ──
1269
- // The gateway owns the event sources (IM inbound pipeline, webhook HTTP routes) and forwards them
1270
- // here; every root's scheduler runs its active workflows whose trigger matches (multi-root, D21).
1271
- // Outcomes are returned for observability (the gateway does not block on them for delivery).
1272
- export async function handleWorkflowOnImMessage(msg) {
1273
- const p = params(msg);
1274
- if (!p.channel || typeof p.text !== "string")
1275
- return fail.call(this, msg, "workflow.onImMessage requires `channel` and string `text`");
1276
- const bundles = ensureAllWorkflowRoots.call(this);
1277
- const outcomes = [];
1278
- const errors = [];
1279
- for (const bundle of bundles) {
1280
- // 单个 run 的失败(权限拒/图错)fail-loud 进响应 errors,绝不挂死整个分发 RPC。
1281
- try {
1282
- outcomes.push(...await bundle.scheduler.onImMessage(String(p.channel), p.text, p.payload));
1283
- }
1284
- catch (err) {
1285
- errors.push({ ...projectTag(bundle), error: errorMessage(err) });
1286
- }
1287
- }
1288
- if (msg.id !== undefined)
1289
- this.sendResponse(msg.id, { outcomes, ...(errors.length > 0 ? { errors } : {}) });
1290
- }
1291
- export async function handleWorkflowOnWebhook(msg) {
1292
- const p = params(msg);
1293
- if (!p.path)
1294
- return fail.call(this, msg, "workflow.onWebhook requires `path`");
1295
- const hookPath = String(p.path).startsWith("/") ? String(p.path) : `/${String(p.path)}`;
1296
- const payload = p.payload ?? {};
1297
- // D34 wait-until-webhook:先唤醒挂起的等待分支(同一个 path 既能唤醒在飞 run,也能触发新 run
1298
- // —— 两个语义并存不冲突;唤醒数随响应返回供观测)。
1299
- const waiters = pendingWebhookWaits.get(hookPath);
1300
- const woken = waiters ? waiters.size : 0;
1301
- if (waiters)
1302
- for (const wake of [...waiters.values()])
1303
- wake(payload);
1304
- const bundles = ensureAllWorkflowRoots.call(this);
1305
- const outcomes = [];
1306
- const errors = [];
1307
- for (const bundle of bundles) {
1308
- // 单个 run 的失败(IT-7b 权限拒/图错)fail-loud 进响应 errors,绝不挂死整个分发 RPC。
1309
- try {
1310
- outcomes.push(...await bundle.scheduler.onWebhook(hookPath, p.payload));
1311
- }
1312
- catch (err) {
1313
- errors.push({ ...projectTag(bundle), error: errorMessage(err) });
1314
- }
1315
- }
1316
- if (msg.id !== undefined) {
1317
- this.sendResponse(msg.id, { outcomes, ...(errors.length > 0 ? { errors } : {}), ...(woken > 0 ? { wokenWaits: woken } : {}) });
1318
- }
1319
- }
1320
- /**
1321
- * `workflow.onIntent` — fire an intent-triggered run (spec D22). The MATCH already happened
1322
- * (deterministic phrases client-side; semantic fallback via x/workflow.matchIntent) and the user
1323
- * confirmed; this entry point only verifies the workflow really has an ACTIVE intent trigger
1324
- * (fail-loud otherwise — a stale client must not run a disarmed workflow) and starts the run with
1325
- * the utterance as `$trigger` payload.
1326
- */
1327
- export async function handleWorkflowOnIntent(msg) {
1328
- const p = params(msg);
1329
- if (!p.workflowId || typeof p.text !== "string")
1330
- return fail.call(this, msg, "workflow.onIntent requires `workflowId` and string `text`");
1331
- const bundle = targetBundle.call(this, msg, p);
1332
- if (!bundle)
1333
- return;
1334
- const workflowId = String(p.workflowId);
1335
- const record = await bundle.controller.get(workflowId);
1336
- if (!record.active || record.trigger?.type !== "intent") {
1337
- return fail.call(this, msg, `workflow "${workflowId}" has no active intent trigger (active=${record.active}, trigger=${record.trigger?.type ?? "none"})`);
1338
- }
1339
- const payload = {
1340
- type: "intent",
1341
- text: p.text,
1342
- ...(typeof p.surface === "string" ? { surface: p.surface } : {}),
1343
- ...(typeof p.matchedPhrase === "string" ? { matchedPhrase: p.matchedPhrase } : {}),
1344
- };
1345
- this.sendNotification("workflow.runStarted", { workflowId, triggerType: "intent", ...projectTag(bundle) });
1346
- let outcome;
1347
- try {
1348
- outcome = await bundle.controller.run(workflowId, { type: "intent", payload });
1349
- emitWorkflowRunCompleted.call(this, bundle, outcome, "intent");
1350
- }
1351
- catch (err) {
1352
- this.sendNotification("workflow.runFailed", { workflowId, triggerType: "intent", error: errorMessage(err), ...projectTag(bundle) });
1353
- throw err;
1354
- }
1355
- if (msg.id !== undefined)
1356
- this.sendResponse(msg.id, outcome);
1357
- }
1358
- /** All ACTIVE intent-triggered workflows across the active root + automation projects (D22 索引源). */
1359
- export async function collectActiveIntentWorkflows() {
1360
- const bundles = ensureAllWorkflowRoots.call(this);
1361
- const out = [];
1362
- for (const bundle of bundles) {
1363
- for (const rec of await bundle.store.listActive()) {
1364
- if (rec.trigger?.type === "intent") {
1365
- out.push({ workflowId: rec.id, projectId: bundle.projectId, name: rec.name, trigger: rec.trigger });
1366
- }
1367
- }
1368
- }
1369
- return out;
1370
- }
1371
- /**
1372
- * `workflow.intentIndex` — the deterministic-match index the CLIENT consumes (phrases/aliases/
1373
- * confirm/surfaces per active intent workflow). The frontend matches utterances locally with zero
1374
- * latency (spec D22); semantic fallback goes through x/workflow.matchIntent.
1375
- */
1376
- export async function handleWorkflowIntentIndex(msg) {
1377
- const intents = await collectActiveIntentWorkflows.call(this);
1378
- if (msg.id !== undefined)
1379
- this.sendResponse(msg.id, { intents });
1380
- }
1381
- // ── Revision history + run history (闭环 "察/退" 半场) ──────────────────────
1382
- /** `workflow.revisions` — newest-first def-revision summaries for the undo/history UI. */
1383
- export async function handleWorkflowRevisions(msg) {
1384
- const p = params(msg);
1385
- if (!p.id)
1386
- return fail.call(this, msg, "workflow.revisions requires `id`");
1387
- const bundle = targetBundle.call(this, msg, p);
1388
- if (!bundle)
1389
- return;
1390
- const revisions = await bundle.store.listRevisions(String(p.id));
1391
- if (msg.id !== undefined)
1392
- this.sendResponse(msg.id, { revisions });
1393
- }
1394
- /** `workflow.revert` — re-apply a stored revision as a NEW rev (git-revert semantics). */
1395
- export async function handleWorkflowRevert(msg) {
1396
- const p = params(msg);
1397
- if (!p.id || typeof p.rev !== "number")
1398
- return fail.call(this, msg, "workflow.revert requires `id` and numeric `rev`");
1399
- const bundle = targetBundle.call(this, msg, p);
1400
- if (!bundle)
1401
- return;
1402
- const record = await bundle.controller.revertTo(String(p.id), p.rev);
1403
- // The reverted snapshot may carry a different trigger/active state → re-arm the scheduler.
1404
- await bundle.scheduler.refresh(record.id);
1405
- audit(bundle, "reverted", record.id, { toRev: p.rev });
1406
- emitWorkflowRecord.call(this, "workflow.updated", record, bundle);
1407
- if (msg.id !== undefined)
1408
- this.sendResponse(msg.id, workflowSnapshot(record, bundle));
1409
- }
1410
- /**
1411
- * `workflow.audit` — newest-first config/lifecycle audit entries (D38: who did what when).
1412
- * Runs are NOT here (runHistory is the run audit); a timeline UI merges both.
1413
- */
1414
- export async function handleWorkflowAudit(msg) {
1415
- const p = params(msg);
1416
- const bundle = targetBundle.call(this, msg, p);
1417
- if (!bundle)
1418
- return;
1419
- const limit = typeof p.limit === "number" && p.limit > 0 ? Math.min(p.limit, 500) : 100;
1420
- const entries = bundle.audit.list(p.id ? String(p.id) : undefined, limit);
1421
- if (msg.id !== undefined)
1422
- this.sendResponse(msg.id, { entries });
1423
- }
1424
- /** `workflow.runs` — newest-first run summaries (status/trigger/timing; outputs stay behind runDetail). */
1425
- export async function handleWorkflowRuns(msg) {
1426
- const p = params(msg);
1427
- if (!p.id)
1428
- return fail.call(this, msg, "workflow.runs requires `id`");
1429
- const bundle = targetBundle.call(this, msg, p);
1430
- if (!bundle)
1431
- return;
1432
- const runs = await bundle.runHistory.list(String(p.id));
1433
- if (msg.id !== undefined)
1434
- this.sendResponse(msg.id, { runs });
1435
- }
1436
- /** `workflow.runDetail` — one run incl. per-node output previews (画布点节点看产出). */
1437
- export async function handleWorkflowRunDetail(msg) {
1438
- const p = params(msg);
1439
- if (!p.id || !p.runId)
1440
- return fail.call(this, msg, "workflow.runDetail requires `id` and `runId`");
1441
- const bundle = targetBundle.call(this, msg, p);
1442
- if (!bundle)
1443
- return;
1444
- const run = await bundle.runHistory.get(String(p.id), String(p.runId));
1445
- if (!run)
1446
- return fail.call(this, msg, `run "${String(p.runId)}" not found for workflow "${String(p.id)}"`);
1447
- if (msg.id !== undefined)
1448
- this.sendResponse(msg.id, { run });
1449
- }