@zhin.js/agent 0.1.30 → 0.1.32

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 (371) hide show
  1. package/README.md +89 -24
  2. package/lib/builtin/memory-search-tool.d.ts +2 -0
  3. package/lib/builtin/memory-search-tool.d.ts.map +1 -0
  4. package/lib/builtin/memory-search-tool.js +61 -0
  5. package/lib/builtin/memory-search-tool.js.map +1 -0
  6. package/lib/builtin/memory-upsert-tool.d.ts +2 -0
  7. package/lib/builtin/memory-upsert-tool.d.ts.map +1 -0
  8. package/lib/builtin/memory-upsert-tool.js +75 -0
  9. package/lib/builtin/memory-upsert-tool.js.map +1 -0
  10. package/lib/builtin/orchestration-tools.d.ts +7 -0
  11. package/lib/builtin/orchestration-tools.d.ts.map +1 -0
  12. package/lib/builtin/orchestration-tools.js +283 -0
  13. package/lib/builtin/orchestration-tools.js.map +1 -0
  14. package/lib/builtin/run-deferred-task-tool.d.ts +1 -1
  15. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
  16. package/lib/builtin/run-deferred-task-tool.js +1 -1
  17. package/lib/builtin/run-deferred-task-tool.js.map +1 -1
  18. package/lib/builtin/run-spec-dry-run-tool.d.ts +6 -0
  19. package/lib/builtin/run-spec-dry-run-tool.d.ts.map +1 -0
  20. package/lib/builtin/run-spec-dry-run-tool.js +51 -0
  21. package/lib/builtin/run-spec-dry-run-tool.js.map +1 -0
  22. package/lib/builtin/run-validation-spec-tool.d.ts +8 -0
  23. package/lib/builtin/run-validation-spec-tool.d.ts.map +1 -0
  24. package/lib/builtin/run-validation-spec-tool.js +44 -0
  25. package/lib/builtin/run-validation-spec-tool.js.map +1 -0
  26. package/lib/builtin/spawn-task-tool.d.ts +1 -1
  27. package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
  28. package/lib/builtin/spawn-task-tool.js +53 -1
  29. package/lib/builtin/spawn-task-tool.js.map +1 -1
  30. package/lib/builtin-tools.d.ts +2 -0
  31. package/lib/builtin-tools.d.ts.map +1 -1
  32. package/lib/builtin-tools.js +6 -0
  33. package/lib/builtin-tools.js.map +1 -1
  34. package/lib/config/normalize-ai-config.d.ts +4 -0
  35. package/lib/config/normalize-ai-config.d.ts.map +1 -1
  36. package/lib/config/normalize-ai-config.js +23 -6
  37. package/lib/config/normalize-ai-config.js.map +1 -1
  38. package/lib/config/provider-instance.d.ts.map +1 -1
  39. package/lib/config/provider-instance.js +26 -7
  40. package/lib/config/provider-instance.js.map +1 -1
  41. package/lib/config/types.d.ts +2 -1
  42. package/lib/config/types.d.ts.map +1 -1
  43. package/lib/config/types.js.map +1 -1
  44. package/lib/config/validate-ai-config.d.ts.map +1 -1
  45. package/lib/config/validate-ai-config.js +5 -0
  46. package/lib/config/validate-ai-config.js.map +1 -1
  47. package/lib/create-agent-session.d.ts +16 -0
  48. package/lib/create-agent-session.d.ts.map +1 -0
  49. package/lib/create-agent-session.js +15 -0
  50. package/lib/create-agent-session.js.map +1 -0
  51. package/lib/deferred-worker-runner.d.ts +2 -0
  52. package/lib/deferred-worker-runner.d.ts.map +1 -1
  53. package/lib/deferred-worker-runner.js +17 -34
  54. package/lib/deferred-worker-runner.js.map +1 -1
  55. package/lib/discovery/agents.d.ts +5 -0
  56. package/lib/discovery/agents.d.ts.map +1 -1
  57. package/lib/discovery/agents.js +7 -0
  58. package/lib/discovery/agents.js.map +1 -1
  59. package/lib/discovery/skills.d.ts +1 -1
  60. package/lib/discovery/skills.d.ts.map +1 -1
  61. package/lib/discovery/skills.js +2 -9
  62. package/lib/discovery/skills.js.map +1 -1
  63. package/lib/discovery/utils.d.ts +7 -1
  64. package/lib/discovery/utils.d.ts.map +1 -1
  65. package/lib/discovery/utils.js +66 -5
  66. package/lib/discovery/utils.js.map +1 -1
  67. package/lib/index.d.ts +19 -2
  68. package/lib/index.d.ts.map +1 -1
  69. package/lib/index.js +12 -2
  70. package/lib/index.js.map +1 -1
  71. package/lib/init/activate-ai-database-storage.d.ts +1 -1
  72. package/lib/init/activate-ai-database-storage.d.ts.map +1 -1
  73. package/lib/init/activate-ai-database-storage.js +38 -13
  74. package/lib/init/activate-ai-database-storage.js.map +1 -1
  75. package/lib/init/create-zhin-agent.d.ts.map +1 -1
  76. package/lib/init/create-zhin-agent.js +86 -9
  77. package/lib/init/create-zhin-agent.js.map +1 -1
  78. package/lib/init/introspection-args.d.ts +34 -0
  79. package/lib/init/introspection-args.d.ts.map +1 -0
  80. package/lib/init/introspection-args.js +71 -0
  81. package/lib/init/introspection-args.js.map +1 -0
  82. package/lib/init/introspection-collectors.d.ts +21 -0
  83. package/lib/init/introspection-collectors.d.ts.map +1 -0
  84. package/lib/init/introspection-collectors.js +74 -0
  85. package/lib/init/introspection-collectors.js.map +1 -0
  86. package/lib/init/introspection-commands-format.d.ts +1 -1
  87. package/lib/init/introspection-commands-format.js +4 -4
  88. package/lib/init/introspection-commands-format.js.map +1 -1
  89. package/lib/init/introspection-output.d.ts +6 -0
  90. package/lib/init/introspection-output.d.ts.map +1 -0
  91. package/lib/init/introspection-output.js +52 -0
  92. package/lib/init/introspection-output.js.map +1 -0
  93. package/lib/init/introspection-pagination.d.ts +14 -0
  94. package/lib/init/introspection-pagination.d.ts.map +1 -0
  95. package/lib/init/introspection-pagination.js +33 -0
  96. package/lib/init/introspection-pagination.js.map +1 -0
  97. package/lib/init/introspection-rest.d.ts +24 -0
  98. package/lib/init/introspection-rest.d.ts.map +1 -0
  99. package/lib/init/introspection-rest.js +65 -0
  100. package/lib/init/introspection-rest.js.map +1 -0
  101. package/lib/init/register-agent-mesh-mcp.d.ts +2 -0
  102. package/lib/init/register-agent-mesh-mcp.d.ts.map +1 -0
  103. package/lib/init/register-agent-mesh-mcp.js +13 -0
  104. package/lib/init/register-agent-mesh-mcp.js.map +1 -0
  105. package/lib/init/register-ai-trigger.d.ts.map +1 -1
  106. package/lib/init/register-ai-trigger.js +29 -4
  107. package/lib/init/register-ai-trigger.js.map +1 -1
  108. package/lib/init/register-builtin-tools.d.ts.map +1 -1
  109. package/lib/init/register-builtin-tools.js +4 -0
  110. package/lib/init/register-builtin-tools.js.map +1 -1
  111. package/lib/init/register-db-models.d.ts.map +1 -1
  112. package/lib/init/register-db-models.js +10 -8
  113. package/lib/init/register-db-models.js.map +1 -1
  114. package/lib/init/register-db-upgrade.d.ts +1 -1
  115. package/lib/init/register-db-upgrade.d.ts.map +1 -1
  116. package/lib/init/register-db-upgrade.js +22 -3
  117. package/lib/init/register-db-upgrade.js.map +1 -1
  118. package/lib/init/register-group-session-passive.d.ts +3 -0
  119. package/lib/init/register-group-session-passive.d.ts.map +1 -0
  120. package/lib/init/register-group-session-passive.js +55 -0
  121. package/lib/init/register-group-session-passive.js.map +1 -0
  122. package/lib/init/register-introspection-commands.d.ts.map +1 -1
  123. package/lib/init/register-introspection-commands.js +5 -6
  124. package/lib/init/register-introspection-commands.js.map +1 -1
  125. package/lib/init/register-management-tools.d.ts +1 -1
  126. package/lib/init/register-management-tools.d.ts.map +1 -1
  127. package/lib/init/register-management-tools.js +57 -36
  128. package/lib/init/register-management-tools.js.map +1 -1
  129. package/lib/init/upgrade-agent-db-schema.d.ts +41 -0
  130. package/lib/init/upgrade-agent-db-schema.d.ts.map +1 -0
  131. package/lib/init/upgrade-agent-db-schema.js +170 -0
  132. package/lib/init/upgrade-agent-db-schema.js.map +1 -0
  133. package/lib/init.d.ts.map +1 -1
  134. package/lib/init.js +4 -0
  135. package/lib/init.js.map +1 -1
  136. package/lib/mcp-server/agent-mesh-tools.d.ts +8 -0
  137. package/lib/mcp-server/agent-mesh-tools.d.ts.map +1 -0
  138. package/lib/mcp-server/agent-mesh-tools.js +138 -0
  139. package/lib/mcp-server/agent-mesh-tools.js.map +1 -0
  140. package/lib/media/deliver-subagent-result.d.ts +7 -0
  141. package/lib/media/deliver-subagent-result.d.ts.map +1 -1
  142. package/lib/media/deliver-subagent-result.js +3 -1
  143. package/lib/media/deliver-subagent-result.js.map +1 -1
  144. package/lib/media/media-normalize.d.ts +2 -0
  145. package/lib/media/media-normalize.d.ts.map +1 -1
  146. package/lib/media/media-normalize.js +89 -0
  147. package/lib/media/media-normalize.js.map +1 -1
  148. package/lib/media/subagent-user-delivery.d.ts +2 -9
  149. package/lib/media/subagent-user-delivery.d.ts.map +1 -1
  150. package/lib/media/subagent-user-delivery.js.map +1 -1
  151. package/lib/memory-entry-registry.d.ts +7 -0
  152. package/lib/memory-entry-registry.d.ts.map +1 -0
  153. package/lib/memory-entry-registry.js +8 -0
  154. package/lib/memory-entry-registry.js.map +1 -0
  155. package/lib/orchestration-memory-hook.d.ts +3 -0
  156. package/lib/orchestration-memory-hook.d.ts.map +1 -0
  157. package/lib/orchestration-memory-hook.js +22 -0
  158. package/lib/orchestration-memory-hook.js.map +1 -0
  159. package/lib/orchestration-runtime-registry.d.ts +14 -0
  160. package/lib/orchestration-runtime-registry.d.ts.map +1 -0
  161. package/lib/orchestration-runtime-registry.js +15 -0
  162. package/lib/orchestration-runtime-registry.js.map +1 -0
  163. package/lib/orchestrator/agent-dispatcher.d.ts +36 -3
  164. package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -1
  165. package/lib/orchestrator/agent-dispatcher.js +203 -13
  166. package/lib/orchestrator/agent-dispatcher.js.map +1 -1
  167. package/lib/orchestrator/delegation-processor.d.ts +33 -0
  168. package/lib/orchestrator/delegation-processor.d.ts.map +1 -0
  169. package/lib/orchestrator/delegation-processor.js +140 -0
  170. package/lib/orchestrator/delegation-processor.js.map +1 -0
  171. package/lib/orchestrator/mission-milestone-notify.d.ts +17 -0
  172. package/lib/orchestrator/mission-milestone-notify.d.ts.map +1 -0
  173. package/lib/orchestrator/mission-milestone-notify.js +49 -0
  174. package/lib/orchestrator/mission-milestone-notify.js.map +1 -0
  175. package/lib/orchestrator/mission-negotiation.d.ts +17 -0
  176. package/lib/orchestrator/mission-negotiation.d.ts.map +1 -0
  177. package/lib/orchestrator/mission-negotiation.js +89 -0
  178. package/lib/orchestrator/mission-negotiation.js.map +1 -0
  179. package/lib/orchestrator/mission-patch-acl.d.ts +9 -0
  180. package/lib/orchestrator/mission-patch-acl.d.ts.map +1 -0
  181. package/lib/orchestrator/mission-patch-acl.js +29 -0
  182. package/lib/orchestrator/mission-patch-acl.js.map +1 -0
  183. package/lib/orchestrator/mission-runner.d.ts +24 -0
  184. package/lib/orchestrator/mission-runner.d.ts.map +1 -0
  185. package/lib/orchestrator/mission-runner.js +179 -0
  186. package/lib/orchestrator/mission-runner.js.map +1 -0
  187. package/lib/orchestrator/mission-spec.d.ts +44 -0
  188. package/lib/orchestrator/mission-spec.d.ts.map +1 -0
  189. package/lib/orchestrator/mission-spec.js +121 -0
  190. package/lib/orchestrator/mission-spec.js.map +1 -0
  191. package/lib/orchestrator/mission-state.d.ts +48 -0
  192. package/lib/orchestrator/mission-state.d.ts.map +1 -0
  193. package/lib/orchestrator/mission-state.js +66 -0
  194. package/lib/orchestrator/mission-state.js.map +1 -0
  195. package/lib/orchestrator/orchestration-repository.d.ts +85 -0
  196. package/lib/orchestrator/orchestration-repository.d.ts.map +1 -0
  197. package/lib/orchestrator/orchestration-repository.js +325 -0
  198. package/lib/orchestrator/orchestration-repository.js.map +1 -0
  199. package/lib/orchestrator/orchestration-service.d.ts +58 -0
  200. package/lib/orchestrator/orchestration-service.d.ts.map +1 -0
  201. package/lib/orchestrator/orchestration-service.js +221 -0
  202. package/lib/orchestrator/orchestration-service.js.map +1 -0
  203. package/lib/orchestrator/remote-agent-registry.d.ts +32 -0
  204. package/lib/orchestrator/remote-agent-registry.d.ts.map +1 -0
  205. package/lib/orchestrator/remote-agent-registry.js +120 -0
  206. package/lib/orchestrator/remote-agent-registry.js.map +1 -0
  207. package/lib/orchestrator/remote-task-executor.d.ts +10 -0
  208. package/lib/orchestrator/remote-task-executor.d.ts.map +1 -0
  209. package/lib/orchestrator/remote-task-executor.js +142 -0
  210. package/lib/orchestrator/remote-task-executor.js.map +1 -0
  211. package/lib/orchestrator/remote-task-poller.d.ts +16 -0
  212. package/lib/orchestrator/remote-task-poller.d.ts.map +1 -0
  213. package/lib/orchestrator/remote-task-poller.js +75 -0
  214. package/lib/orchestrator/remote-task-poller.js.map +1 -0
  215. package/lib/plugin-loop-hooks.d.ts +32 -0
  216. package/lib/plugin-loop-hooks.d.ts.map +1 -0
  217. package/lib/plugin-loop-hooks.js +69 -0
  218. package/lib/plugin-loop-hooks.js.map +1 -0
  219. package/lib/service.d.ts +38 -22
  220. package/lib/service.d.ts.map +1 -1
  221. package/lib/service.js +61 -19
  222. package/lib/service.js.map +1 -1
  223. package/lib/session-tree-runtime-registry.d.ts +20 -0
  224. package/lib/session-tree-runtime-registry.d.ts.map +1 -0
  225. package/lib/session-tree-runtime-registry.js +25 -0
  226. package/lib/session-tree-runtime-registry.js.map +1 -0
  227. package/lib/subagent-ai-events.d.ts +2 -2
  228. package/lib/subagent-ai-events.d.ts.map +1 -1
  229. package/lib/subagent-ai-events.js +17 -21
  230. package/lib/subagent-ai-events.js.map +1 -1
  231. package/lib/subagent-artifact.d.ts +7 -0
  232. package/lib/subagent-artifact.d.ts.map +1 -0
  233. package/lib/subagent-artifact.js +26 -0
  234. package/lib/subagent-artifact.js.map +1 -0
  235. package/lib/subagent-parent-context.d.ts +9 -0
  236. package/lib/subagent-parent-context.d.ts.map +1 -0
  237. package/lib/subagent-parent-context.js +50 -0
  238. package/lib/subagent-parent-context.js.map +1 -0
  239. package/lib/subagent-preset.d.ts +10 -0
  240. package/lib/subagent-preset.d.ts.map +1 -0
  241. package/lib/subagent-preset.js +44 -0
  242. package/lib/subagent-preset.js.map +1 -0
  243. package/lib/subagent-prompt.d.ts +7 -0
  244. package/lib/subagent-prompt.d.ts.map +1 -0
  245. package/lib/subagent-prompt.js +14 -0
  246. package/lib/subagent-prompt.js.map +1 -0
  247. package/lib/subagent.d.ts +19 -0
  248. package/lib/subagent.d.ts.map +1 -1
  249. package/lib/subagent.js +175 -92
  250. package/lib/subagent.js.map +1 -1
  251. package/lib/typing-indicator/adapter-integration.d.ts +7 -3
  252. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -1
  253. package/lib/typing-indicator/adapter-integration.js +30 -6
  254. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  255. package/lib/typing-indicator/index.d.ts +26 -3
  256. package/lib/typing-indicator/index.d.ts.map +1 -1
  257. package/lib/typing-indicator/index.js +94 -6
  258. package/lib/typing-indicator/index.js.map +1 -1
  259. package/lib/typing-indicator/integration.d.ts.map +1 -1
  260. package/lib/typing-indicator/integration.js +7 -2
  261. package/lib/typing-indicator/integration.js.map +1 -1
  262. package/lib/zhin-agent/agent-loop-standalone.d.ts +32 -0
  263. package/lib/zhin-agent/agent-loop-standalone.d.ts.map +1 -0
  264. package/lib/zhin-agent/agent-loop-standalone.js +144 -0
  265. package/lib/zhin-agent/agent-loop-standalone.js.map +1 -0
  266. package/lib/zhin-agent/agent-loop-turn.d.ts +52 -0
  267. package/lib/zhin-agent/agent-loop-turn.d.ts.map +1 -0
  268. package/lib/zhin-agent/agent-loop-turn.js +328 -0
  269. package/lib/zhin-agent/agent-loop-turn.js.map +1 -0
  270. package/lib/zhin-agent/branch-summarization-runtime.d.ts +16 -0
  271. package/lib/zhin-agent/branch-summarization-runtime.d.ts.map +1 -0
  272. package/lib/zhin-agent/branch-summarization-runtime.js +58 -0
  273. package/lib/zhin-agent/branch-summarization-runtime.js.map +1 -0
  274. package/lib/zhin-agent/builtin-tools.d.ts +3 -2
  275. package/lib/zhin-agent/builtin-tools.d.ts.map +1 -1
  276. package/lib/zhin-agent/builtin-tools.js +15 -16
  277. package/lib/zhin-agent/builtin-tools.js.map +1 -1
  278. package/lib/zhin-agent/compaction-runtime.d.ts +25 -0
  279. package/lib/zhin-agent/compaction-runtime.d.ts.map +1 -0
  280. package/lib/zhin-agent/compaction-runtime.js +78 -0
  281. package/lib/zhin-agent/compaction-runtime.js.map +1 -0
  282. package/lib/zhin-agent/config.d.ts +22 -2
  283. package/lib/zhin-agent/config.d.ts.map +1 -1
  284. package/lib/zhin-agent/config.js +25 -2
  285. package/lib/zhin-agent/config.js.map +1 -1
  286. package/lib/zhin-agent/deferred-auto-continue.d.ts +11 -0
  287. package/lib/zhin-agent/deferred-auto-continue.d.ts.map +1 -0
  288. package/lib/zhin-agent/deferred-auto-continue.js +41 -0
  289. package/lib/zhin-agent/deferred-auto-continue.js.map +1 -0
  290. package/lib/zhin-agent/deferred-delivery.d.ts +9 -0
  291. package/lib/zhin-agent/deferred-delivery.d.ts.map +1 -0
  292. package/lib/zhin-agent/deferred-delivery.js +35 -0
  293. package/lib/zhin-agent/deferred-delivery.js.map +1 -0
  294. package/lib/zhin-agent/index.d.ts +60 -11
  295. package/lib/zhin-agent/index.d.ts.map +1 -1
  296. package/lib/zhin-agent/index.js +264 -22
  297. package/lib/zhin-agent/index.js.map +1 -1
  298. package/lib/zhin-agent/model-resolver.d.ts +0 -1
  299. package/lib/zhin-agent/model-resolver.d.ts.map +1 -1
  300. package/lib/zhin-agent/model-resolver.js.map +1 -1
  301. package/lib/zhin-agent/multimodal-message.d.ts +9 -0
  302. package/lib/zhin-agent/multimodal-message.d.ts.map +1 -0
  303. package/lib/zhin-agent/multimodal-message.js +69 -0
  304. package/lib/zhin-agent/multimodal-message.js.map +1 -0
  305. package/lib/zhin-agent/persist-deferred-context.d.ts +5 -0
  306. package/lib/zhin-agent/persist-deferred-context.d.ts.map +1 -0
  307. package/lib/zhin-agent/persist-deferred-context.js +40 -0
  308. package/lib/zhin-agent/persist-deferred-context.js.map +1 -0
  309. package/lib/zhin-agent/prompt-access.d.ts +4 -0
  310. package/lib/zhin-agent/prompt-access.d.ts.map +1 -0
  311. package/lib/zhin-agent/prompt-access.js +7 -0
  312. package/lib/zhin-agent/prompt-access.js.map +1 -0
  313. package/lib/zhin-agent/prompt-builder.d.ts.map +1 -1
  314. package/lib/zhin-agent/prompt-builder.js +5 -0
  315. package/lib/zhin-agent/prompt-builder.js.map +1 -1
  316. package/lib/zhin-agent/prompt-controller.d.ts +53 -0
  317. package/lib/zhin-agent/prompt-controller.d.ts.map +1 -0
  318. package/lib/zhin-agent/prompt-controller.js +165 -0
  319. package/lib/zhin-agent/prompt-controller.js.map +1 -0
  320. package/lib/zhin-agent/prompt-input.d.ts +3 -0
  321. package/lib/zhin-agent/prompt-input.d.ts.map +1 -0
  322. package/lib/zhin-agent/prompt-input.js +8 -0
  323. package/lib/zhin-agent/prompt-input.js.map +1 -0
  324. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  325. package/lib/zhin-agent/prompt.js +4 -0
  326. package/lib/zhin-agent/prompt.js.map +1 -1
  327. package/lib/zhin-agent/session-io.d.ts +28 -11
  328. package/lib/zhin-agent/session-io.d.ts.map +1 -1
  329. package/lib/zhin-agent/session-io.js +64 -28
  330. package/lib/zhin-agent/session-io.js.map +1 -1
  331. package/lib/zhin-agent/session-message-queue.d.ts +20 -0
  332. package/lib/zhin-agent/session-message-queue.d.ts.map +1 -0
  333. package/lib/zhin-agent/session-message-queue.js +52 -0
  334. package/lib/zhin-agent/session-message-queue.js.map +1 -0
  335. package/lib/zhin-agent/session-tree-commands.d.ts +5 -0
  336. package/lib/zhin-agent/session-tree-commands.d.ts.map +1 -0
  337. package/lib/zhin-agent/session-tree-commands.js +44 -0
  338. package/lib/zhin-agent/session-tree-commands.js.map +1 -0
  339. package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
  340. package/lib/zhin-agent/tool-calls-user-format.js +3 -0
  341. package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
  342. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -1
  343. package/lib/zhin-agent/tool-orchestration.js +25 -6
  344. package/lib/zhin-agent/tool-orchestration.js.map +1 -1
  345. package/lib/zhin-agent/tool-runtime.d.ts +2 -2
  346. package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
  347. package/lib/zhin-agent/tool-runtime.js +4 -4
  348. package/lib/zhin-agent/tool-runtime.js.map +1 -1
  349. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
  350. package/lib/zhin-agent/tool-search-orchestrator.js +13 -0
  351. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
  352. package/lib/zhin-agent/turn-context.d.ts +9 -0
  353. package/lib/zhin-agent/turn-context.d.ts.map +1 -0
  354. package/lib/zhin-agent/turn-context.js +12 -0
  355. package/lib/zhin-agent/turn-context.js.map +1 -0
  356. package/lib/zhin-agent/turn-pipeline.d.ts +7 -1
  357. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -1
  358. package/lib/zhin-agent/turn-pipeline.js +136 -450
  359. package/lib/zhin-agent/turn-pipeline.js.map +1 -1
  360. package/lib/zhin-agent/turn-user-message.d.ts +8 -0
  361. package/lib/zhin-agent/turn-user-message.d.ts.map +1 -0
  362. package/lib/zhin-agent/turn-user-message.js +10 -0
  363. package/lib/zhin-agent/turn-user-message.js.map +1 -0
  364. package/lib/zhin-agent/zhin-agent-private.d.ts +17 -4
  365. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -1
  366. package/lib/zhin-agent/zhin-agent-private.js.map +1 -1
  367. package/package.json +4 -3
  368. package/lib/zhin-agent/llm-runner.d.ts +0 -18
  369. package/lib/zhin-agent/llm-runner.d.ts.map +0 -1
  370. package/lib/zhin-agent/llm-runner.js +0 -163
  371. package/lib/zhin-agent/llm-runner.js.map +0 -1
@@ -0,0 +1,283 @@
1
+ import { resolveIMSessionIdFromToolContext } from '@zhin.js/ai';
2
+ import { BuiltinBaseTool } from './builtin-base-tool.js';
3
+ import { getOrchestrationService, } from '../orchestrator/orchestration-service.js';
4
+ import { writeOrchestrationRunSummaryToMemory } from '../orchestration-memory-hook.js';
5
+ function sessionKeyFromContext(ctx) {
6
+ return resolveIMSessionIdFromToolContext({
7
+ platform: ctx.platform || '',
8
+ botId: ctx.botId || '',
9
+ scope: ctx.scope,
10
+ sceneId: ctx.sceneId || '',
11
+ senderId: ctx.senderId || '',
12
+ });
13
+ }
14
+ function requireService() {
15
+ const svc = getOrchestrationService();
16
+ if (!svc)
17
+ throw new Error('OrchestrationService 未初始化');
18
+ return svc;
19
+ }
20
+ function formatRunStatus(runId, snapshot) {
21
+ if (!snapshot)
22
+ return `Run ${runId} 不存在`;
23
+ const lines = [
24
+ `# Run ${snapshot.run.id}`,
25
+ `status: ${snapshot.run.status}`,
26
+ `title: ${snapshot.run.title}`,
27
+ `template: ${snapshot.run.template || '(none)'}`,
28
+ `session: ${snapshot.run.session_key}`,
29
+ '',
30
+ '## Tasks',
31
+ ];
32
+ for (const t of snapshot.tasks) {
33
+ lines.push(`- [${t.status}] ${t.id} (${t.role}) ${t.name}`
34
+ + (t.executor_kind === 'remote' ? ` remote:${t.remote_agent_id}` : '')
35
+ + (t.depends_on && t.depends_on !== '[]' ? ` deps:${t.depends_on}` : ''));
36
+ if (t.result_summary)
37
+ lines.push(` result: ${t.result_summary.slice(0, 200)}`);
38
+ if (t.error)
39
+ lines.push(` error: ${t.error.slice(0, 200)}`);
40
+ }
41
+ if (snapshot.run.mission_state_json?.trim()) {
42
+ try {
43
+ const ms = JSON.parse(snapshot.run.mission_state_json);
44
+ lines.push('', '## Mission State');
45
+ lines.push(`phase: ${ms.phase}`);
46
+ if (ms.validation_spec_paths?.length) {
47
+ lines.push(`spec_paths: ${ms.validation_spec_paths.join(', ')}`);
48
+ }
49
+ if (ms.last_validation) {
50
+ lines.push(`last_validation: passed=${ms.last_validation.passed} failed=${ms.last_validation.failed}`);
51
+ }
52
+ }
53
+ catch {
54
+ // ignore invalid mission state
55
+ }
56
+ }
57
+ return lines.join('\n');
58
+ }
59
+ const START_PARAMS = {
60
+ type: 'object',
61
+ properties: {
62
+ title: { type: 'string', description: 'Run 标题' },
63
+ remote_validator: {
64
+ type: 'string',
65
+ description: '可选:Validate 跑在 remote:<agentId>',
66
+ },
67
+ },
68
+ };
69
+ const ADD_TASK_PARAMS = {
70
+ type: 'object',
71
+ properties: {
72
+ run_id: { type: 'string', description: '编排 run ID' },
73
+ name: { type: 'string', description: '任务名称' },
74
+ description: { type: 'string', description: '任务描述' },
75
+ role: {
76
+ type: 'string',
77
+ enum: ['planner', 'subtask', 'reviewer', 'researcher', 'executor', 'worker', 'validator'],
78
+ description: 'Agent 角色',
79
+ },
80
+ goal: { type: 'string', description: '任务目标' },
81
+ depends_on: {
82
+ type: 'array',
83
+ items: { type: 'string' },
84
+ description: '依赖任务 ID 列表',
85
+ },
86
+ executor: {
87
+ type: 'string',
88
+ description: 'local 或 remote:<agentId>',
89
+ },
90
+ context: { type: 'object', description: '结构化上下文(JSON)' },
91
+ },
92
+ required: ['run_id', 'name'],
93
+ };
94
+ const RUN_ID_PARAMS = {
95
+ type: 'object',
96
+ properties: {
97
+ run_id: { type: 'string', description: '编排 run ID' },
98
+ force: { type: 'boolean', description: '强制关闭(忽略未完成节点)' },
99
+ },
100
+ required: ['run_id'],
101
+ };
102
+ const TASK_ID_PARAMS = {
103
+ type: 'object',
104
+ properties: {
105
+ task_id: { type: 'string', description: '任务 ID' },
106
+ reason: { type: 'string', description: 'skip 原因' },
107
+ },
108
+ required: ['task_id'],
109
+ };
110
+ const PATCH_STATE_PARAMS = {
111
+ type: 'object',
112
+ properties: {
113
+ run_id: { type: 'string', description: '编排 run ID' },
114
+ patch: { type: 'object', description: 'Mission State 部分更新(JSON)' },
115
+ },
116
+ required: ['run_id', 'patch'],
117
+ };
118
+ class OrchestrationPatchStateTool extends BuiltinBaseTool {
119
+ name = 'orchestration_patch_state';
120
+ description = '更新 Mission State(missions Broadcast 共享状态;按 phase ACL 校验)。';
121
+ parameters = PATCH_STATE_PARAMS;
122
+ async run(args) {
123
+ const svc = requireService();
124
+ const runId = String(args.run_id ?? '');
125
+ if (!runId)
126
+ return '请提供 run_id';
127
+ const patch = args.patch;
128
+ if (!patch || typeof patch !== 'object')
129
+ return '请提供 patch 对象';
130
+ try {
131
+ const next = await svc.patchMissionState(runId, patch);
132
+ if (!next)
133
+ return `Run ${runId} 不存在`;
134
+ return `Mission State 已更新:phase=${next.phase} spec_paths=${next.validation_spec_paths.length}`;
135
+ }
136
+ catch (err) {
137
+ return err instanceof Error ? err.message : String(err);
138
+ }
139
+ }
140
+ }
141
+ class OrchestrationStartTool extends BuiltinBaseTool {
142
+ sessionContext;
143
+ name = 'orchestration_start';
144
+ description = '创建 Mission 编排 run(missions 五阶段 DAG);MissionRunner 自动推进。';
145
+ parameters = START_PARAMS;
146
+ constructor(sessionContext) {
147
+ super();
148
+ this.sessionContext = sessionContext;
149
+ this.tags.push('orchestration', 'director');
150
+ }
151
+ async run(args) {
152
+ const svc = requireService();
153
+ const sessionKey = sessionKeyFromContext(this.sessionContext);
154
+ const title = typeof args.title === 'string' ? args.title : undefined;
155
+ const remoteValidator = typeof args.remote_validator === 'string'
156
+ ? args.remote_validator.replace(/^remote:/, '')
157
+ : undefined;
158
+ const snapshot = await svc.startRun({ sessionKey, title, remoteValidator });
159
+ const { isMissionsTemplate } = await import('../orchestrator/mission-state.js');
160
+ if (isMissionsTemplate({ template: snapshot.run.template })) {
161
+ const { getMissionRunner } = await import('../orchestrator/mission-runner.js');
162
+ const runner = getMissionRunner();
163
+ if (runner) {
164
+ void runner.notifyRunStarted(snapshot.run.id, sessionKey);
165
+ void runner.advanceRun(snapshot.run.id);
166
+ }
167
+ }
168
+ const tpl = snapshot.run.template || '(custom)';
169
+ return (`编排 run 已创建:${snapshot.run.id}\n`
170
+ + `template: ${tpl}\n`
171
+ + `session: ${sessionKey}\n`
172
+ + `tasks: ${snapshot.tasks.map((t) => `${t.id}(${t.role})`).join(', ') || '(empty)'}\n`
173
+ + (snapshot.tasks.length
174
+ ? 'MissionRunner 将自动推进;无需手动 spawn_task。'
175
+ : '使用 orchestration_add_task 添加节点。'));
176
+ }
177
+ }
178
+ class OrchestrationAddTaskTool extends BuiltinBaseTool {
179
+ name = 'orchestration_add_task';
180
+ description = '向 run 添加 DAG 节点(role、depends_on、executor)。';
181
+ parameters = ADD_TASK_PARAMS;
182
+ async run(args) {
183
+ const svc = requireService();
184
+ const runId = String(args.run_id ?? '');
185
+ if (!runId)
186
+ return '请提供 run_id';
187
+ const input = {
188
+ runId,
189
+ name: String(args.name ?? 'task'),
190
+ description: typeof args.description === 'string' ? args.description : undefined,
191
+ role: typeof args.role === 'string' ? args.role : undefined,
192
+ goal: typeof args.goal === 'string' ? args.goal : undefined,
193
+ dependsOn: Array.isArray(args.depends_on) ? args.depends_on.map(String) : undefined,
194
+ executor: typeof args.executor === 'string'
195
+ ? args.executor
196
+ : undefined,
197
+ context: args.context && typeof args.context === 'object'
198
+ ? args.context
199
+ : undefined,
200
+ };
201
+ const task = await svc.addTask(input);
202
+ return `任务已添加:${task.id} (${task.role}) status=${task.status}`;
203
+ }
204
+ }
205
+ class OrchestrationStatusTool extends BuiltinBaseTool {
206
+ name = 'orchestration_status';
207
+ description = '查询 run 及 DAG 任务状态。';
208
+ parameters = RUN_ID_PARAMS;
209
+ async run(args) {
210
+ const svc = requireService();
211
+ const runId = String(args.run_id ?? '');
212
+ if (!runId)
213
+ return '请提供 run_id';
214
+ const snapshot = await svc.getStatus(runId);
215
+ return formatRunStatus(runId, snapshot);
216
+ }
217
+ }
218
+ class OrchestrationCompleteTool extends BuiltinBaseTool {
219
+ name = 'orchestration_complete';
220
+ description = '关闭编排 run(默认要求无 pending/running 节点)。';
221
+ parameters = RUN_ID_PARAMS;
222
+ async run(args) {
223
+ const svc = requireService();
224
+ const runId = String(args.run_id ?? '');
225
+ if (!runId)
226
+ return '请提供 run_id';
227
+ const result = await svc.completeRun(runId, args.force === true);
228
+ if (result.ok) {
229
+ const snapshot = await svc.getStatus(runId);
230
+ if (snapshot)
231
+ await writeOrchestrationRunSummaryToMemory(snapshot);
232
+ }
233
+ return result.message;
234
+ }
235
+ }
236
+ class OrchestrationRetryTaskTool extends BuiltinBaseTool {
237
+ name = 'orchestration_retry_task';
238
+ description = '将 failed 任务重置为 pending,解锁下游。';
239
+ parameters = TASK_ID_PARAMS;
240
+ async run(args) {
241
+ const svc = requireService();
242
+ const taskId = String(args.task_id ?? '');
243
+ if (!taskId)
244
+ return '请提供 task_id';
245
+ const result = await svc.retryTask(taskId);
246
+ return result.message;
247
+ }
248
+ }
249
+ class OrchestrationSkipTaskTool extends BuiltinBaseTool {
250
+ name = 'orchestration_skip_task';
251
+ description = '跳过 failed/pending 任务(记录 reason),解锁下游。';
252
+ parameters = TASK_ID_PARAMS;
253
+ async run(args) {
254
+ const svc = requireService();
255
+ const taskId = String(args.task_id ?? '');
256
+ if (!taskId)
257
+ return '请提供 task_id';
258
+ const reason = typeof args.reason === 'string' ? args.reason : 'skipped by director';
259
+ const result = await svc.skipTask(taskId, reason);
260
+ return result.message;
261
+ }
262
+ }
263
+ export function createOrchestrationTools(context) {
264
+ return [
265
+ new OrchestrationStartTool(context).toTool(),
266
+ new OrchestrationAddTaskTool().toTool(),
267
+ new OrchestrationStatusTool().toTool(),
268
+ new OrchestrationCompleteTool().toTool(),
269
+ new OrchestrationRetryTaskTool().toTool(),
270
+ new OrchestrationSkipTaskTool().toTool(),
271
+ new OrchestrationPatchStateTool().toTool(),
272
+ ];
273
+ }
274
+ export const ORCHESTRATION_TOOL_NAMES = [
275
+ 'orchestration_start',
276
+ 'orchestration_add_task',
277
+ 'orchestration_status',
278
+ 'orchestration_complete',
279
+ 'orchestration_retry_task',
280
+ 'orchestration_skip_task',
281
+ 'orchestration_patch_state',
282
+ ];
283
+ //# sourceMappingURL=orchestration-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-tools.js","sourceRoot":"","sources":["../../src/builtin/orchestration-tools.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface RunDeferredTaskToolOptions {
12
12
  export declare class RunDeferredTaskBuiltinTool extends BuiltinBaseTool {
13
13
  private readonly opts;
14
14
  readonly name = "run_deferred_task";
15
- readonly description = "\u5728\u9694\u79BB\u7684 Worker \u5B50 Agent \u4E2D\u6267\u884C deferred \u5DE5\u5177\u4EFB\u52A1\uFF08github/mcp/\u63D2\u4EF6\u7B49\uFF09\u3002\u8FD9\u662F\u8C03\u7528 deferred \u80FD\u529B\u7684\u552F\u4E00\u5165\u53E3";
15
+ readonly description = "\u5728\u9694\u79BB\u7684 Worker \u5B50 Agent \u4E2D\u540C\u6B65\u6267\u884C deferred \u5DE5\u5177\u4EFB\u52A1\uFF08github/mcp/\u63D2\u4EF6\u7B49\uFF09\u3002Worker \u5B8C\u6210\u540E\u5C06\u7ED3\u679C\u4F5C\u4E3A\u5DE5\u5177\u8FD4\u56DE\u503C\u4EA4\u8FD8\u4E3B Agent\uFF0C\u7531\u4E3B Agent \u5728\u540C\u4E00\u8F6E\u5BF9\u8BDD\u4E2D\u7EE7\u7EED\u7F16\u6392\u6216\u603B\u7ED3\u56DE\u590D\u7528\u6237\u3002\u8FD9\u662F\u8C03\u7528 deferred \u80FD\u529B\u7684\u552F\u4E00\u5165\u53E3";
16
16
  readonly parameters: ToolParametersSchema<Record<string, any>>;
17
17
  readonly kind = "meta";
18
18
  readonly executionTimeoutMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"run-deferred-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,EAAE,oBAa1C,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,0BAA2B,SAAQ,eAAe;IAQjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,kOAC4D;IAChF,QAAQ,CAAC,UAAU,4CAAgC;IACnD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,0BAA0B;IAOvD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAM9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAEhF"}
1
+ {"version":3,"file":"run-deferred-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,EAAE,oBAa1C,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,0BAA2B,SAAQ,eAAe;IAQjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,seACwH;IAC5I,QAAQ,CAAC,UAAU,4CAAgC;IACnD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,0BAA0B;IAOvD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAM9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAEhF"}
@@ -16,7 +16,7 @@ export const RUN_DEFERRED_TASK_PARAMETERS = {
16
16
  export class RunDeferredTaskBuiltinTool extends BuiltinBaseTool {
17
17
  opts;
18
18
  name = 'run_deferred_task';
19
- description = '在隔离的 Worker 子 Agent 中执行 deferred 工具任务(github/mcp/插件等)。这是调用 deferred 能力的唯一入口';
19
+ description = '在隔离的 Worker 子 Agent 中同步执行 deferred 工具任务(github/mcp/插件等)。Worker 完成后将结果作为工具返回值交还主 Agent,由主 Agent 在同一轮对话中继续编排或总结回复用户。这是调用 deferred 能力的唯一入口';
20
20
  parameters = RUN_DEFERRED_TASK_PARAMETERS;
21
21
  kind = 'meta';
22
22
  executionTimeoutMs;
@@ -1 +1 @@
1
- {"version":3,"file":"run-deferred-task-tool.js","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,4BAA4B,GAAyB;IAChE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAQF,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAQhC;IAPpB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,6EAA6E,CAAC;IACvE,UAAU,GAAG,4BAA4B,CAAC;IAC1C,IAAI,GAAG,MAAM,CAAC;IACd,kBAAkB,CAAS;IAEpC,YAA6B,IAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,SAAI,GAAJ,IAAI,CAA4B;QAE3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,aAAa,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAgC;IACxE,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"run-deferred-task-tool.js","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,4BAA4B,GAAyB;IAChE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAQF,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAQhC;IAPpB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,yIAAyI,CAAC;IACnI,UAAU,GAAG,4BAA4B,CAAC;IAC1C,IAAI,GAAG,MAAM,CAAC;IACd,kBAAkB,CAAS;IAEpC,YAA6B,IAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,SAAI,GAAJ,IAAI,CAA4B;QAE3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,aAAa,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAgC;IACxE,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * run_spec_dry_run — Planner tool: manifest + vitest dry-run.
3
+ */
4
+ import type { AgentTool } from '@zhin.js/core';
5
+ export declare function createRunSpecDryRunTool(): AgentTool;
6
+ //# sourceMappingURL=run-spec-dry-run-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-spec-dry-run-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-spec-dry-run-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAoC,MAAM,eAAe,CAAC;AA6DjF,wBAAgB,uBAAuB,IAAI,SAAS,CAEnD"}
@@ -0,0 +1,51 @@
1
+ import { BuiltinBaseTool } from './builtin-base-tool.js';
2
+ import { getOrchestrationService } from '../orchestrator/orchestration-service.js';
3
+ import { defaultMissionSpecPaths, validateMissionSpecBundle, } from '../orchestrator/mission-spec.js';
4
+ const PARAMS = {
5
+ type: 'object',
6
+ properties: {
7
+ run_id: { type: 'string', description: '编排 run ID' },
8
+ spec_paths: {
9
+ type: 'array',
10
+ items: { type: 'string' },
11
+ description: '可选;默认 .zhin/missions/<runId>/spec.test.ts',
12
+ },
13
+ },
14
+ required: ['run_id'],
15
+ };
16
+ class RunSpecDryRunTool extends BuiltinBaseTool {
17
+ name = 'run_spec_dry_run';
18
+ description = '运行 Validation Spec dry-run(manifest + vitest)。Planner/Spec 阶段使用;通过后写入 spec_dry_run_passed。';
19
+ parameters = PARAMS;
20
+ async run(args) {
21
+ const runId = String(args.run_id ?? '').trim();
22
+ if (!runId)
23
+ return '请提供 run_id';
24
+ const svc = getOrchestrationService();
25
+ if (!svc)
26
+ return 'OrchestrationService 未初始化';
27
+ const run = await svc.repositoryHandle.getRun(runId);
28
+ if (!run)
29
+ return `Run ${runId} 不存在`;
30
+ const defaults = defaultMissionSpecPaths(runId);
31
+ const specPaths = Array.isArray(args.spec_paths)
32
+ ? args.spec_paths.map(String)
33
+ : [defaults.specTestPath, defaults.manifestPath];
34
+ const result = await validateMissionSpecBundle(runId, specPaths, true);
35
+ if (!result.ok) {
36
+ return `Spec dry-run 失败:${result.reason ?? 'unknown'}`;
37
+ }
38
+ await svc.patchMissionState(runId, {
39
+ validation_spec_paths: specPaths.filter((p) => p.endsWith('.test.ts') || p.includes('spec')),
40
+ assertion_count: result.assertionCount,
41
+ spec_dry_run_passed: true,
42
+ phase: 'develop',
43
+ });
44
+ return (`Spec dry-run 通过:assertions=${result.assertionCount}\n`
45
+ + `paths=${specPaths.join(', ')}`);
46
+ }
47
+ }
48
+ export function createRunSpecDryRunTool() {
49
+ return new RunSpecDryRunTool().toTool();
50
+ }
51
+ //# sourceMappingURL=run-spec-dry-run-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-spec-dry-run-tool.js","sourceRoot":"","sources":["../../src/builtin/run-spec-dry-run-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,GAAyB;IACnC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;QACpD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,2CAA2C;SACzD;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,iBAAkB,SAAQ,eAAe;IACpC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAClB,4FAA4F,CAAC;IACtF,UAAU,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAC;QAEhC,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,2BAA2B,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,KAAK,MAAM,CAAC;QAEpC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,mBAAmB,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE;YACjC,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5F,eAAe,EAAE,MAAM,CAAC,cAAc;YACtC,mBAAmB,EAAE,IAAI;YACzB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,OAAO,CACL,8BAA8B,MAAM,CAAC,cAAc,IAAI;cACrD,SAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,iBAAiB,EAAE,CAAC,MAAM,EAAe,CAAC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * run_validation_spec — Validator-only tool (ADR 0011 D3).
3
+ */
4
+ import type { AgentTool } from '@zhin.js/core';
5
+ export type { ValidationSpecRunner } from '../orchestrator/mission-spec.js';
6
+ export { defaultValidationSpecRunner, setValidationSpecRunnerForTests, resetValidationSpecRunner, getValidationSpecRunner, } from '../orchestrator/mission-spec.js';
7
+ export declare function createRunValidationSpecTool(): AgentTool;
8
+ //# sourceMappingURL=run-validation-spec-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-validation-spec-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-validation-spec-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAoC,MAAM,eAAe,CAAC;AAQjF,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAiDzC,wBAAgB,2BAA2B,IAAI,SAAS,CAEvD"}
@@ -0,0 +1,44 @@
1
+ import { BuiltinBaseTool } from './builtin-base-tool.js';
2
+ import { getOrchestrationService } from '../orchestrator/orchestration-service.js';
3
+ import { getValidationSpecRunner, parseValidationOutput, } from '../orchestrator/mission-spec.js';
4
+ export { defaultValidationSpecRunner, setValidationSpecRunnerForTests, resetValidationSpecRunner, getValidationSpecRunner, } from '../orchestrator/mission-spec.js';
5
+ const PARAMS = {
6
+ type: 'object',
7
+ properties: {
8
+ run_id: { type: 'string', description: '编排 run ID' },
9
+ },
10
+ required: ['run_id'],
11
+ };
12
+ class RunValidationSpecTool extends BuiltinBaseTool {
13
+ name = 'run_validation_spec';
14
+ description = '运行 Mission Validation Spec(vitest)。Validator 专用;不得配合 read_file 查看实现。';
15
+ parameters = PARAMS;
16
+ async run(args) {
17
+ const runId = String(args.run_id ?? '').trim();
18
+ if (!runId)
19
+ return '请提供 run_id';
20
+ const svc = getOrchestrationService();
21
+ if (!svc)
22
+ return 'OrchestrationService 未初始化';
23
+ const state = await svc.getMissionState(runId);
24
+ if (!state || state.validation_spec_paths.length === 0) {
25
+ return 'Mission State 中无 validation_spec_paths';
26
+ }
27
+ const execResult = await getValidationSpecRunner()(state.validation_spec_paths);
28
+ const validation = parseValidationOutput(execResult.stdout, execResult.stderr, execResult.ok);
29
+ await svc.patchMissionState(runId, {
30
+ last_validation: validation,
31
+ phase: validation.failed === 0 ? 'done' : 'validate',
32
+ });
33
+ if (execResult.ok && validation.failed === 0) {
34
+ return (`Validation Spec 通过:passed=${validation.passed}\n`
35
+ + execResult.stdout.slice(0, 2000));
36
+ }
37
+ return (`Validation Spec 失败:passed=${validation.passed} failed=${validation.failed}\n`
38
+ + execResult.stderr.slice(0, 2000));
39
+ }
40
+ }
41
+ export function createRunValidationSpecTool() {
42
+ return new RunValidationSpecTool().toTool();
43
+ }
44
+ //# sourceMappingURL=run-validation-spec-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-validation-spec-tool.js","sourceRoot":"","sources":["../../src/builtin/run-validation-spec-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,GAAyB;IACnC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;KACrD;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,qBAAsB,SAAQ,eAAe;IACxC,IAAI,GAAG,qBAAqB,CAAC;IAC7B,WAAW,GAClB,sEAAsE,CAAC;IAChE,UAAU,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAC;QAEhC,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,2BAA2B,CAAC;QAE7C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,wCAAwC,CAAC;QAClD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAE9F,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE;YACjC,eAAe,EAAE,UAAU;YAC3B,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;SACrD,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,CACL,6BAA6B,UAAU,CAAC,MAAM,IAAI;kBAChD,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CACnC,CAAC;QACJ,CAAC;QACD,OAAO,CACL,6BAA6B,UAAU,CAAC,MAAM,WAAW,UAAU,CAAC,MAAM,IAAI;cAC5E,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CACnC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,qBAAqB,EAAE,CAAC,MAAM,EAAe,CAAC;AAC3D,CAAC"}
@@ -10,7 +10,7 @@ export declare class SpawnTaskBuiltinTool extends BuiltinBaseTool {
10
10
  private readonly sessionContext;
11
11
  private readonly manager;
12
12
  readonly name = "spawn_task";
13
- readonly description = "\u5C06\u590D\u6742\u6216\u8017\u65F6\u7684\u4EFB\u52A1\u4EA4\u7ED9\u5B50 agent\u3002\u9ED8\u8BA4\u5F02\u6B65\uFF08\u5B8C\u6210\u540E\u53E6\u6761\u63A8\u9001\uFF09\uFF1B\u9700\u540C\u6B65\u7B49\u5F85\u7ED3\u679C\u65F6\u8BBE wait=true\u3002\u6587\u751F\u56FE\u7528 draw\uFF0C\u8BC6\u56FE\u7528 vision\u3002\u542B\u56FE\u7ED3\u679C\u65E5\u5FD7 preview \u4E3A {image}\uFF1Bwait=true \u65F6\u52FF\u518D\u53D1\u300C\u7A0D\u7B49\u300D\u3002";
13
+ readonly description = "\u5C06\u590D\u6742\u6216\u8017\u65F6\u7684\u4EFB\u52A1\u4EA4\u7ED9\u5B50 agent\u3002\u9ED8\u8BA4\u5F02\u6B65\uFF08\u5B8C\u6210\u540E\u53E6\u6761\u63A8\u9001\uFF09\uFF1B\u9700\u540C\u6B65\u7B49\u5F85\u7ED3\u679C\u65F6\u8BBE wait=true\u3002\u786C\u7F16\u6392\u6A21\u5F0F\u4E0B\u987B\u4F20 run_id+task_id\u3002\u6587\u751F\u56FE\u7528 draw\uFF0C\u8BC6\u56FE\u7528 vision\u3002\u542B\u56FE\u7ED3\u679C\u65E5\u5FD7 preview \u4E3A {image}\uFF1Bwait=true \u65F6\u52FF\u518D\u53D1\u300C\u7A0D\u7B49\u300D\u3002";
14
14
  readonly parameters: ToolParametersSchema<Record<string, any>>;
15
15
  constructor(sessionContext: ToolContext, manager: SubagentManager);
16
16
  toTool(): Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/spawn-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,qBAAqB,EAAE,oBAsBnC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAS1E;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAOrD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,ubACuG;IAC3H,QAAQ,CAAC,UAAU,4CAAyB;gBAGzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,eAAe;IAO3C,MAAM,IAAI,IAAI;IAMR,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CA6BtF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAE7F"}
1
+ {"version":3,"file":"spawn-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/spawn-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,qBAAqB,EAAE,oBAoCnC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAS1E;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAOrD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,4fAC+H;IACnJ,QAAQ,CAAC,UAAU,4CAAyB;gBAGzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,eAAe;IAO3C,MAAM,IAAI,IAAI;IAMR,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAqEtF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,eAAe,GACvB,SAAS,CAEX"}
@@ -1,3 +1,6 @@
1
+ import { getAgentDispatcher } from '../orchestrator/agent-dispatcher.js';
2
+ import { getOrchestrationService } from '../orchestrator/orchestration-service.js';
3
+ import { executeRemoteOrchestrationTask } from '../orchestrator/remote-task-executor.js';
1
4
  import { BuiltinBaseTool } from './builtin-base-tool.js';
2
5
  export const SPAWN_TASK_PARAMETERS = {
3
6
  type: 'object',
@@ -18,6 +21,19 @@ export const SPAWN_TASK_PARAMETERS = {
18
21
  type: 'boolean',
19
22
  description: '为 true 时同步等待子 agent 完成并将结果返回给你',
20
23
  },
24
+ context: {
25
+ type: 'string',
26
+ enum: ['fork', 'fresh'],
27
+ description: '上下文模式:fork 注入主会话最近消息快照;fresh 空上下文。缺省按 *.agent.md 或角色默认',
28
+ },
29
+ run_id: {
30
+ type: 'string',
31
+ description: '硬编排 run ID(与 task_id 配合使用)',
32
+ },
33
+ task_id: {
34
+ type: 'string',
35
+ description: '硬编排任务 ID(须先 orchestration_add_task 或 template 预置)',
36
+ },
21
37
  },
22
38
  required: ['task'],
23
39
  };
@@ -35,7 +51,7 @@ export class SpawnTaskBuiltinTool extends BuiltinBaseTool {
35
51
  sessionContext;
36
52
  manager;
37
53
  name = 'spawn_task';
38
- description = '将复杂或耗时的任务交给子 agent。默认异步(完成后另条推送);需同步等待结果时设 wait=true。文生图用 draw,识图用 vision。含图结果日志 preview 为 {image};wait=true 时勿再发「稍等」。';
54
+ description = '将复杂或耗时的任务交给子 agent。默认异步(完成后另条推送);需同步等待结果时设 wait=true。硬编排模式下须传 run_id+task_id。文生图用 draw,识图用 vision。含图结果日志 preview 为 {image};wait=true 时勿再发「稍等」。';
39
55
  parameters = SPAWN_TASK_PARAMETERS;
40
56
  constructor(sessionContext, manager) {
41
57
  super();
@@ -56,15 +72,51 @@ export class SpawnTaskBuiltinTool extends BuiltinBaseTool {
56
72
  if (typeof task !== 'string' || !task) {
57
73
  return '请提供任务描述';
58
74
  }
75
+ const runId = typeof args.run_id === 'string' ? args.run_id.trim() : '';
76
+ const orchestrationTaskId = typeof args.task_id === 'string' ? args.task_id.trim() : '';
77
+ if (runId && !orchestrationTaskId) {
78
+ return 'spawn_task 须同时提供 run_id 与 task_id';
79
+ }
80
+ if (orchestrationTaskId) {
81
+ const dispatcher = getAgentDispatcher();
82
+ const orch = getOrchestrationService();
83
+ if (orch && runId) {
84
+ await dispatcher.hydrateRun(runId);
85
+ const run = await orch.repositoryHandle.getRun(runId);
86
+ const { isMissionsTemplate } = await import('../orchestrator/mission-state.js');
87
+ if (run && isMissionsTemplate(run)) {
88
+ return `${run.template} 由 MissionRunner 自动推进,请勿手动 spawn_task`;
89
+ }
90
+ }
91
+ const gate = await dispatcher.canExecuteMissions(orchestrationTaskId);
92
+ if (!gate.canExecute) {
93
+ return `无法执行 task ${orchestrationTaskId}:${gate.reason ?? '门禁未通过'}`;
94
+ }
95
+ const agentTask = dispatcher.getTask(orchestrationTaskId);
96
+ if (agentTask?.executorKind === 'remote') {
97
+ const remoteResult = await executeRemoteOrchestrationTask(orchestrationTaskId);
98
+ if (args.wait === true) {
99
+ return remoteResult.message;
100
+ }
101
+ return remoteResult.message;
102
+ }
103
+ }
59
104
  const origin = originFromToolContext(this.sessionContext);
60
105
  const labelStr = typeof label === 'string' ? label : undefined;
61
106
  const agentOpt = typeof agentName === 'string' && agentName.trim() ? agentName.trim() : undefined;
107
+ const contextMode = args.context === 'fork' || args.context === 'fresh' ? args.context : undefined;
108
+ const orchestrationRole = orchestrationTaskId
109
+ ? getAgentDispatcher().getTask(orchestrationTaskId)?.role
110
+ : undefined;
62
111
  const opts = {
63
112
  task,
64
113
  label: labelStr,
65
114
  origin,
66
115
  agent: agentOpt,
116
+ role: orchestrationRole,
67
117
  notifyContext: this.sessionContext,
118
+ contextMode,
119
+ orchestrationTaskId: orchestrationTaskId || undefined,
68
120
  };
69
121
  if (args.wait === true) {
70
122
  const result = await this.manager.spawnSync(opts);
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-task-tool.js","sourceRoot":"","sources":["../../src/builtin/spawn-task-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-task-tool.js","sourceRoot":"","sources":["../../src/builtin/spawn-task-tool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uCAAuC;SACrD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qEAAqE;SACnF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EACT,gCAAgC;SACnC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACvB,WAAW,EACT,wDAAwD;SAC3D;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4BAA4B;SAC1C;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mDAAmD;SACjE;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS;QACvD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAOpC;IACA;IAPV,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAClB,gJAAgJ,CAAC;IAC1I,UAAU,GAAG,qBAAqB,CAAC;IAE5C,YACmB,cAA2B,EAC3B,OAAwB;QAEzC,KAAK,EAAE,CAAC;QAHS,mBAAc,GAAd,cAAc,CAAa;QAC3B,YAAO,GAAP,OAAO,CAAiB;QAGzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B,EAAE,QAAsB;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,mBAAmB,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAExF,IAAI,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClC,OAAO,mCAAmC,CAAC;QAC7C,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,uBAAuB,EAAE,CAAC;YACvC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBAClB,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;gBAChF,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,GAAG,GAAG,CAAC,QAAQ,uCAAuC,CAAC;gBAChE,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,aAAa,mBAAmB,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;YACtE,CAAC;YACD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,mBAAmB,CAAC,CAAC;gBAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,YAAY,CAAC,OAAO,CAAC;gBAC9B,CAAC;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,iBAAiB,GAAG,mBAAmB;YAC3C,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,IAAI;YACzD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,MAAM;YACN,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,iBAAiB;YACvB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,WAAW;YACX,mBAAmB,EAAE,mBAAmB,IAAI,SAAS;SACtD,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,CACL,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,MAAM,MAAM;kBAChE,gBAAgB,CACnB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAoB,EACpB,OAAwB;IAExB,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAe,CAAC;AAC1E,CAAC"}
@@ -15,6 +15,8 @@ import type { Plugin, ToolInput } from '@zhin.js/core';
15
15
  export interface BuiltinToolsOptions {
16
16
  /** 插件实例,用于 ask_user 工具创建 Prompt 交互 */
17
17
  plugin: Plugin;
18
+ /** L4 语义记忆:注册 memory_search / memory_upsert */
19
+ semanticMemory?: boolean;
18
20
  /** Max chars for skill instruction extraction (model-size-aware) */
19
21
  skillInstructionMaxChars?: number;
20
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../src/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAkBvD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAkC5E"}
1
+ {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../src/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAoBvD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAuC5E"}
@@ -27,6 +27,8 @@ import { createActivateSkillTool } from './builtin/activate-skill-tool.js';
27
27
  import { createInstallSkillTool } from './builtin/install-skill-tool.js';
28
28
  import { createAskUserTool } from './builtin/ask-user-tool.js';
29
29
  import { createAnalyzeMediaTool } from './builtin/analyze-media-tool.js';
30
+ import { createMemorySearchTool } from './builtin/memory-search-tool.js';
31
+ import { createMemoryUpsertTool } from './builtin/memory-upsert-tool.js';
30
32
  /**
31
33
  * 创建所有内置系统工具
32
34
  */
@@ -56,6 +58,10 @@ export function createBuiltinTools(options) {
56
58
  }));
57
59
  tools.push(createInstallSkillTool());
58
60
  tools.push(createAskUserTool(pluginRef));
61
+ if (options?.semanticMemory) {
62
+ tools.push(createMemorySearchTool());
63
+ tools.push(createMemoryUpsertTool());
64
+ }
59
65
  return tools;
60
66
  }
61
67
  //# sourceMappingURL=builtin-tools.js.map