@zhin.js/agent 0.1.24 → 0.1.26

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 (308) hide show
  1. package/README.md +1 -1
  2. package/lib/agent-prompt/registry.js +1 -1
  3. package/lib/agent-prompt/registry.js.map +1 -1
  4. package/lib/ai-event-bus.d.ts +19 -0
  5. package/lib/ai-event-bus.d.ts.map +1 -0
  6. package/lib/ai-event-bus.js +75 -0
  7. package/lib/ai-event-bus.js.map +1 -0
  8. package/lib/ai-event-subscriber.d.ts +38 -0
  9. package/lib/ai-event-subscriber.d.ts.map +1 -0
  10. package/lib/ai-event-subscriber.js +61 -0
  11. package/lib/ai-event-subscriber.js.map +1 -0
  12. package/lib/builtin/ask-user-tool.d.ts +2 -0
  13. package/lib/builtin/ask-user-tool.d.ts.map +1 -1
  14. package/lib/builtin/ask-user-tool.js +2 -0
  15. package/lib/builtin/ask-user-tool.js.map +1 -1
  16. package/lib/builtin/bash-tool.d.ts +7 -3
  17. package/lib/builtin/bash-tool.d.ts.map +1 -1
  18. package/lib/builtin/bash-tool.js +51 -9
  19. package/lib/builtin/bash-tool.js.map +1 -1
  20. package/lib/builtin/bing-search-html.d.ts.map +1 -1
  21. package/lib/builtin/bing-search-html.js +14 -7
  22. package/lib/builtin/bing-search-html.js.map +1 -1
  23. package/lib/builtin/builtin-base-tool.d.ts +2 -0
  24. package/lib/builtin/builtin-base-tool.d.ts.map +1 -1
  25. package/lib/builtin/builtin-base-tool.js +5 -0
  26. package/lib/builtin/builtin-base-tool.js.map +1 -1
  27. package/lib/builtin/edit-file-tool.d.ts +1 -1
  28. package/lib/builtin/edit-file-tool.d.ts.map +1 -1
  29. package/lib/builtin/edit-file-tool.js +33 -1
  30. package/lib/builtin/edit-file-tool.js.map +1 -1
  31. package/lib/builtin/file-edit-quote-utils.d.ts +1 -3
  32. package/lib/builtin/file-edit-quote-utils.d.ts.map +1 -1
  33. package/lib/builtin/file-edit-quote-utils.js +1 -3
  34. package/lib/builtin/file-edit-quote-utils.js.map +1 -1
  35. package/lib/builtin/glob-tool.d.ts +1 -1
  36. package/lib/builtin/glob-tool.d.ts.map +1 -1
  37. package/lib/builtin/glob-tool.js +15 -3
  38. package/lib/builtin/glob-tool.js.map +1 -1
  39. package/lib/builtin/grep-tool.d.ts +1 -1
  40. package/lib/builtin/grep-tool.d.ts.map +1 -1
  41. package/lib/builtin/grep-tool.js +16 -3
  42. package/lib/builtin/grep-tool.js.map +1 -1
  43. package/lib/builtin/list-dir-tool.d.ts +1 -1
  44. package/lib/builtin/list-dir-tool.d.ts.map +1 -1
  45. package/lib/builtin/list-dir-tool.js +14 -3
  46. package/lib/builtin/list-dir-tool.js.map +1 -1
  47. package/lib/builtin/read-file-tool.d.ts +1 -1
  48. package/lib/builtin/read-file-tool.d.ts.map +1 -1
  49. package/lib/builtin/read-file-tool.js +24 -3
  50. package/lib/builtin/read-file-tool.js.map +1 -1
  51. package/lib/builtin/run-deferred-task-tool.d.ts +3 -0
  52. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
  53. package/lib/builtin/run-deferred-task-tool.js +2 -0
  54. package/lib/builtin/run-deferred-task-tool.js.map +1 -1
  55. package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
  56. package/lib/builtin/spawn-task-tool.js +2 -0
  57. package/lib/builtin/spawn-task-tool.js.map +1 -1
  58. package/lib/builtin/web-fetch-tool.d.ts +2 -2
  59. package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
  60. package/lib/builtin/web-fetch-tool.js +12 -18
  61. package/lib/builtin/web-fetch-tool.js.map +1 -1
  62. package/lib/builtin/write-file-tool.d.ts +1 -1
  63. package/lib/builtin/write-file-tool.d.ts.map +1 -1
  64. package/lib/builtin/write-file-tool.js +33 -1
  65. package/lib/builtin/write-file-tool.js.map +1 -1
  66. package/lib/common-adapter-tools.d.ts +8 -41
  67. package/lib/common-adapter-tools.d.ts.map +1 -1
  68. package/lib/common-adapter-tools.js +23 -182
  69. package/lib/common-adapter-tools.js.map +1 -1
  70. package/lib/deferred-worker-runner.d.ts +13 -2
  71. package/lib/deferred-worker-runner.d.ts.map +1 -1
  72. package/lib/deferred-worker-runner.js +91 -13
  73. package/lib/deferred-worker-runner.js.map +1 -1
  74. package/lib/discovery/agents.js +1 -1
  75. package/lib/discovery/agents.js.map +1 -1
  76. package/lib/discovery/skills.js +1 -1
  77. package/lib/discovery/skills.js.map +1 -1
  78. package/lib/discovery/tools.d.ts +1 -1
  79. package/lib/discovery/tools.d.ts.map +1 -1
  80. package/lib/discovery/tools.js +17 -4
  81. package/lib/discovery/tools.js.map +1 -1
  82. package/lib/discovery/utils.js +1 -1
  83. package/lib/discovery/utils.js.map +1 -1
  84. package/lib/hooks.d.ts.map +1 -1
  85. package/lib/hooks.js +2 -0
  86. package/lib/hooks.js.map +1 -1
  87. package/lib/index.d.ts +9 -1
  88. package/lib/index.d.ts.map +1 -1
  89. package/lib/index.js +6 -0
  90. package/lib/index.js.map +1 -1
  91. package/lib/init/message-media.d.ts +3 -1
  92. package/lib/init/message-media.d.ts.map +1 -1
  93. package/lib/init/message-media.js +20 -0
  94. package/lib/init/message-media.js.map +1 -1
  95. package/lib/init/register-ai-service.js.map +1 -1
  96. package/lib/init/register-ai-trigger.d.ts.map +1 -1
  97. package/lib/init/register-ai-trigger.js +71 -10
  98. package/lib/init/register-ai-trigger.js.map +1 -1
  99. package/lib/init/register-builtin-tools.js +7 -7
  100. package/lib/init/register-builtin-tools.js.map +1 -1
  101. package/lib/init/register-typing-indicator.d.ts +9 -0
  102. package/lib/init/register-typing-indicator.d.ts.map +1 -0
  103. package/lib/init/register-typing-indicator.js +206 -0
  104. package/lib/init/register-typing-indicator.js.map +1 -0
  105. package/lib/init.d.ts.map +1 -1
  106. package/lib/init.js +2 -0
  107. package/lib/init.js.map +1 -1
  108. package/lib/mcp-client/connection.d.ts +2 -0
  109. package/lib/mcp-client/connection.d.ts.map +1 -1
  110. package/lib/mcp-client/connection.js +7 -0
  111. package/lib/mcp-client/connection.js.map +1 -1
  112. package/lib/mcp-client/index.d.ts +2 -0
  113. package/lib/mcp-client/index.d.ts.map +1 -1
  114. package/lib/mcp-client/index.js +19 -2
  115. package/lib/mcp-client/index.js.map +1 -1
  116. package/lib/monitoring/index.d.ts +79 -0
  117. package/lib/monitoring/index.d.ts.map +1 -0
  118. package/lib/monitoring/index.js +197 -0
  119. package/lib/monitoring/index.js.map +1 -0
  120. package/lib/monitoring/metrics.d.ts +240 -0
  121. package/lib/monitoring/metrics.d.ts.map +1 -0
  122. package/lib/monitoring/metrics.js +483 -0
  123. package/lib/monitoring/metrics.js.map +1 -0
  124. package/lib/orchestrator/agent-dispatcher.d.ts +170 -0
  125. package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -0
  126. package/lib/orchestrator/agent-dispatcher.js +379 -0
  127. package/lib/orchestrator/agent-dispatcher.js.map +1 -0
  128. package/lib/orchestrator/hook-registry.d.ts.map +1 -1
  129. package/lib/orchestrator/hook-registry.js +2 -0
  130. package/lib/orchestrator/hook-registry.js.map +1 -1
  131. package/lib/orchestrator/index.d.ts +2 -0
  132. package/lib/orchestrator/index.d.ts.map +1 -1
  133. package/lib/orchestrator/index.js +2 -0
  134. package/lib/orchestrator/index.js.map +1 -1
  135. package/lib/orchestrator/mcp-lifecycle.d.ts +1 -1
  136. package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -1
  137. package/lib/orchestrator/mcp-lifecycle.js +2 -2
  138. package/lib/orchestrator/mcp-lifecycle.js.map +1 -1
  139. package/lib/orchestrator/mcp-registry.d.ts +8 -1
  140. package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
  141. package/lib/orchestrator/mcp-registry.js +28 -5
  142. package/lib/orchestrator/mcp-registry.js.map +1 -1
  143. package/lib/orchestrator/task-queue.d.ts +147 -0
  144. package/lib/orchestrator/task-queue.d.ts.map +1 -0
  145. package/lib/orchestrator/task-queue.js +337 -0
  146. package/lib/orchestrator/task-queue.js.map +1 -0
  147. package/lib/orchestrator/tool-selection.d.ts.map +1 -1
  148. package/lib/orchestrator/tool-selection.js +3 -0
  149. package/lib/orchestrator/tool-selection.js.map +1 -1
  150. package/lib/orchestrator/types.d.ts +8 -0
  151. package/lib/orchestrator/types.d.ts.map +1 -1
  152. package/lib/plugin-ai-hook-bus.d.ts +4 -0
  153. package/lib/plugin-ai-hook-bus.d.ts.map +1 -0
  154. package/lib/plugin-ai-hook-bus.js +24 -0
  155. package/lib/plugin-ai-hook-bus.js.map +1 -0
  156. package/lib/security/anomaly-detection.d.ts +119 -0
  157. package/lib/security/anomaly-detection.d.ts.map +1 -0
  158. package/lib/security/anomaly-detection.js +305 -0
  159. package/lib/security/anomaly-detection.js.map +1 -0
  160. package/lib/security/audit-logger.d.ts +158 -0
  161. package/lib/security/audit-logger.d.ts.map +1 -0
  162. package/lib/security/audit-logger.js +379 -0
  163. package/lib/security/audit-logger.js.map +1 -0
  164. package/lib/security/bash-tool-context.d.ts +3 -3
  165. package/lib/security/bash-tool-context.d.ts.map +1 -1
  166. package/lib/security/budget-limiter.d.ts +156 -0
  167. package/lib/security/budget-limiter.d.ts.map +1 -0
  168. package/lib/security/budget-limiter.js +363 -0
  169. package/lib/security/budget-limiter.js.map +1 -0
  170. package/lib/security/dangerous-tool-policy.d.ts +17 -0
  171. package/lib/security/dangerous-tool-policy.d.ts.map +1 -0
  172. package/lib/security/dangerous-tool-policy.js +137 -0
  173. package/lib/security/dangerous-tool-policy.js.map +1 -0
  174. package/lib/security/exec-policy.d.ts +21 -12
  175. package/lib/security/exec-policy.d.ts.map +1 -1
  176. package/lib/security/exec-policy.js +198 -25
  177. package/lib/security/exec-policy.js.map +1 -1
  178. package/lib/security/file-policy.d.ts +0 -1
  179. package/lib/security/file-policy.d.ts.map +1 -1
  180. package/lib/security/file-policy.js +112 -14
  181. package/lib/security/file-policy.js.map +1 -1
  182. package/lib/security/file-role-policy.d.ts +119 -0
  183. package/lib/security/file-role-policy.d.ts.map +1 -0
  184. package/lib/security/file-role-policy.js +268 -0
  185. package/lib/security/file-role-policy.js.map +1 -0
  186. package/lib/security/index.d.ts +59 -0
  187. package/lib/security/index.d.ts.map +1 -1
  188. package/lib/security/index.js +68 -0
  189. package/lib/security/index.js.map +1 -1
  190. package/lib/security/network-policy.d.ts +94 -0
  191. package/lib/security/network-policy.d.ts.map +1 -0
  192. package/lib/security/network-policy.js +291 -0
  193. package/lib/security/network-policy.js.map +1 -0
  194. package/lib/security/owner-approve-always-store.d.ts +2 -0
  195. package/lib/security/owner-approve-always-store.d.ts.map +1 -1
  196. package/lib/security/owner-approve-always-store.js +37 -0
  197. package/lib/security/owner-approve-always-store.js.map +1 -1
  198. package/lib/security/sandbox-enhanced.d.ts +170 -0
  199. package/lib/security/sandbox-enhanced.d.ts.map +1 -0
  200. package/lib/security/sandbox-enhanced.js +630 -0
  201. package/lib/security/sandbox-enhanced.js.map +1 -0
  202. package/lib/security/sandbox.d.ts +104 -0
  203. package/lib/security/sandbox.d.ts.map +1 -0
  204. package/lib/security/sandbox.js +373 -0
  205. package/lib/security/sandbox.js.map +1 -0
  206. package/lib/security/security-config.example.d.ts +33 -0
  207. package/lib/security/security-config.example.d.ts.map +1 -0
  208. package/lib/security/security-config.example.js +166 -0
  209. package/lib/security/security-config.example.js.map +1 -0
  210. package/lib/subagent-goal-notify.d.ts +13 -0
  211. package/lib/subagent-goal-notify.d.ts.map +1 -0
  212. package/lib/subagent-goal-notify.js +32 -0
  213. package/lib/subagent-goal-notify.js.map +1 -0
  214. package/lib/subagent.d.ts +24 -0
  215. package/lib/subagent.d.ts.map +1 -1
  216. package/lib/subagent.js +98 -16
  217. package/lib/subagent.js.map +1 -1
  218. package/lib/typing-indicator/adapter-integration.d.ts +140 -0
  219. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -0
  220. package/lib/typing-indicator/adapter-integration.js +473 -0
  221. package/lib/typing-indicator/adapter-integration.js.map +1 -0
  222. package/lib/typing-indicator/index.d.ts +170 -0
  223. package/lib/typing-indicator/index.d.ts.map +1 -0
  224. package/lib/typing-indicator/index.js +311 -0
  225. package/lib/typing-indicator/index.js.map +1 -0
  226. package/lib/typing-indicator/integration.d.ts +91 -0
  227. package/lib/typing-indicator/integration.d.ts.map +1 -0
  228. package/lib/typing-indicator/integration.js +219 -0
  229. package/lib/typing-indicator/integration.js.map +1 -0
  230. package/lib/zhin-agent/config.d.ts +20 -2
  231. package/lib/zhin-agent/config.d.ts.map +1 -1
  232. package/lib/zhin-agent/config.js +28 -10
  233. package/lib/zhin-agent/config.js.map +1 -1
  234. package/lib/zhin-agent/event-emitter.d.ts +11 -0
  235. package/lib/zhin-agent/event-emitter.d.ts.map +1 -0
  236. package/lib/zhin-agent/event-emitter.js +43 -0
  237. package/lib/zhin-agent/event-emitter.js.map +1 -0
  238. package/lib/zhin-agent/index.d.ts +9 -31
  239. package/lib/zhin-agent/index.d.ts.map +1 -1
  240. package/lib/zhin-agent/index.js +70 -665
  241. package/lib/zhin-agent/index.js.map +1 -1
  242. package/lib/zhin-agent/llm-runner.d.ts +16 -0
  243. package/lib/zhin-agent/llm-runner.d.ts.map +1 -0
  244. package/lib/zhin-agent/llm-runner.js +85 -0
  245. package/lib/zhin-agent/llm-runner.js.map +1 -0
  246. package/lib/zhin-agent/model-resolver.d.ts +9 -0
  247. package/lib/zhin-agent/model-resolver.d.ts.map +1 -0
  248. package/lib/zhin-agent/model-resolver.js +25 -0
  249. package/lib/zhin-agent/model-resolver.js.map +1 -0
  250. package/lib/zhin-agent/phase-trace.d.ts +12 -0
  251. package/lib/zhin-agent/phase-trace.d.ts.map +1 -0
  252. package/lib/zhin-agent/phase-trace.js +24 -0
  253. package/lib/zhin-agent/phase-trace.js.map +1 -0
  254. package/lib/zhin-agent/prompt-assembly.d.ts +22 -0
  255. package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -0
  256. package/lib/zhin-agent/prompt-assembly.js +66 -0
  257. package/lib/zhin-agent/prompt-assembly.js.map +1 -0
  258. package/lib/zhin-agent/prompt-builder.d.ts +200 -0
  259. package/lib/zhin-agent/prompt-builder.d.ts.map +1 -0
  260. package/lib/zhin-agent/prompt-builder.js +574 -0
  261. package/lib/zhin-agent/prompt-builder.js.map +1 -0
  262. package/lib/zhin-agent/prompt-templates.d.ts +160 -0
  263. package/lib/zhin-agent/prompt-templates.d.ts.map +1 -0
  264. package/lib/zhin-agent/prompt-templates.js +436 -0
  265. package/lib/zhin-agent/prompt-templates.js.map +1 -0
  266. package/lib/zhin-agent/prompt.d.ts +18 -15
  267. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  268. package/lib/zhin-agent/prompt.js +194 -111
  269. package/lib/zhin-agent/prompt.js.map +1 -1
  270. package/lib/zhin-agent/session-io.d.ts +10 -0
  271. package/lib/zhin-agent/session-io.d.ts.map +1 -0
  272. package/lib/zhin-agent/session-io.js +14 -0
  273. package/lib/zhin-agent/session-io.js.map +1 -0
  274. package/lib/zhin-agent/task-continuation.d.ts +144 -0
  275. package/lib/zhin-agent/task-continuation.d.ts.map +1 -0
  276. package/lib/zhin-agent/task-continuation.js +346 -0
  277. package/lib/zhin-agent/task-continuation.js.map +1 -0
  278. package/lib/zhin-agent/text-sanitize.d.ts +2 -5
  279. package/lib/zhin-agent/text-sanitize.d.ts.map +1 -1
  280. package/lib/zhin-agent/text-sanitize.js +2 -25
  281. package/lib/zhin-agent/text-sanitize.js.map +1 -1
  282. package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
  283. package/lib/zhin-agent/tool-calls-user-format.js +12 -3
  284. package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
  285. package/lib/zhin-agent/tool-orchestration.d.ts +9 -0
  286. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -0
  287. package/lib/zhin-agent/tool-orchestration.js +68 -0
  288. package/lib/zhin-agent/tool-orchestration.js.map +1 -0
  289. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
  290. package/lib/zhin-agent/tool-search-orchestrator.js +5 -2
  291. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
  292. package/lib/zhin-agent/turn-pipeline.d.ts +5 -0
  293. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -0
  294. package/lib/zhin-agent/turn-pipeline.js +541 -0
  295. package/lib/zhin-agent/turn-pipeline.js.map +1 -0
  296. package/lib/zhin-agent/turn-tracker.d.ts +17 -0
  297. package/lib/zhin-agent/turn-tracker.d.ts.map +1 -0
  298. package/lib/zhin-agent/turn-tracker.js +54 -0
  299. package/lib/zhin-agent/turn-tracker.js.map +1 -0
  300. package/lib/zhin-agent/web-search-locale-attach.d.ts +4 -0
  301. package/lib/zhin-agent/web-search-locale-attach.d.ts.map +1 -0
  302. package/lib/zhin-agent/web-search-locale-attach.js +19 -0
  303. package/lib/zhin-agent/web-search-locale-attach.js.map +1 -0
  304. package/lib/zhin-agent/zhin-agent-private.d.ts +66 -0
  305. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -0
  306. package/lib/zhin-agent/zhin-agent-private.js +4 -0
  307. package/lib/zhin-agent/zhin-agent-private.js.map +1 -0
  308. package/package.json +5 -5
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Agent 调度器
3
+ *
4
+ * - 明确的角色定义和权限继承
5
+ * - 工具权限的精细化控制
6
+ * - 上下文隔离和结果聚合
7
+ * - 统一的错误处理和监控
8
+ */
9
+ import { randomUUID } from 'node:crypto';
10
+ // ── 预定义角色配置 ────────────────────────────────────────────────────
11
+ export const AGENT_ROLE_CONFIGS = {
12
+ main: {
13
+ role: 'main',
14
+ description: '主 Agent,负责用户交互和任务编排',
15
+ allowedTools: ['*'], // 所有工具
16
+ blockedTools: [],
17
+ canSendMessage: true,
18
+ canSpawnSubagents: true,
19
+ canAccessMainHistory: true,
20
+ canWrite: true,
21
+ canExecuteDangerous: false,
22
+ maxIterations: 20,
23
+ maxToolCalls: 100,
24
+ timeout: 600000, // 10 分钟
25
+ },
26
+ subtask: {
27
+ role: 'subtask',
28
+ description: '子任务 Agent,后台执行特定任务',
29
+ allowedTools: [
30
+ 'read_file', 'write_file', 'edit_file',
31
+ 'list_dir', 'glob', 'grep',
32
+ 'bash', 'web_search', 'web_fetch',
33
+ ],
34
+ blockedTools: ['send_message', 'spawn_subagent', 'activate_skill'],
35
+ canSendMessage: false,
36
+ canSpawnSubagents: false,
37
+ canAccessMainHistory: false,
38
+ canWrite: true,
39
+ canExecuteDangerous: false,
40
+ maxIterations: 15,
41
+ maxToolCalls: 50,
42
+ timeout: 300000, // 5 分钟
43
+ },
44
+ worker: {
45
+ role: 'worker',
46
+ description: '工作 Agent,执行延迟任务',
47
+ allowedTools: [
48
+ 'read_file', 'write_file', 'edit_file',
49
+ 'list_dir', 'glob', 'grep',
50
+ 'bash', 'web_search', 'web_fetch',
51
+ ],
52
+ blockedTools: ['send_message', 'spawn_subagent'],
53
+ canSendMessage: false,
54
+ canSpawnSubagents: false,
55
+ canAccessMainHistory: false,
56
+ canWrite: true,
57
+ canExecuteDangerous: false,
58
+ maxIterations: 10,
59
+ maxToolCalls: 30,
60
+ timeout: 180000, // 3 分钟
61
+ },
62
+ researcher: {
63
+ role: 'researcher',
64
+ description: '研究 Agent,只读分析',
65
+ allowedTools: [
66
+ 'read_file', 'list_dir', 'glob', 'grep',
67
+ 'web_search', 'web_fetch',
68
+ ],
69
+ blockedTools: ['write_file', 'edit_file', 'bash', 'send_message', 'spawn_subagent'],
70
+ canSendMessage: false,
71
+ canSpawnSubagents: false,
72
+ canAccessMainHistory: false,
73
+ canWrite: false,
74
+ canExecuteDangerous: false,
75
+ maxIterations: 10,
76
+ maxToolCalls: 30,
77
+ timeout: 180000,
78
+ },
79
+ executor: {
80
+ role: 'executor',
81
+ description: '执行 Agent,执行写操作',
82
+ allowedTools: [
83
+ 'read_file', 'write_file', 'edit_file',
84
+ 'list_dir', 'glob', 'grep',
85
+ 'bash',
86
+ ],
87
+ blockedTools: ['web_search', 'web_fetch', 'send_message', 'spawn_subagent'],
88
+ canSendMessage: false,
89
+ canSpawnSubagents: false,
90
+ canAccessMainHistory: false,
91
+ canWrite: true,
92
+ canExecuteDangerous: false,
93
+ maxIterations: 10,
94
+ maxToolCalls: 30,
95
+ timeout: 180000,
96
+ },
97
+ reviewer: {
98
+ role: 'reviewer',
99
+ description: '审查 Agent,只读分析',
100
+ allowedTools: [
101
+ 'read_file', 'list_dir', 'glob', 'grep',
102
+ 'web_search', 'web_fetch',
103
+ ],
104
+ blockedTools: ['write_file', 'edit_file', 'bash', 'send_message', 'spawn_subagent'],
105
+ canSendMessage: false,
106
+ canSpawnSubagents: false,
107
+ canAccessMainHistory: false,
108
+ canWrite: false,
109
+ canExecuteDangerous: false,
110
+ maxIterations: 10,
111
+ maxToolCalls: 30,
112
+ timeout: 180000,
113
+ },
114
+ planner: {
115
+ role: 'planner',
116
+ description: '规划 Agent,只读规划',
117
+ allowedTools: [
118
+ 'read_file', 'list_dir', 'glob', 'grep',
119
+ 'web_search', 'web_fetch',
120
+ ],
121
+ blockedTools: ['write_file', 'edit_file', 'bash', 'send_message', 'spawn_subagent'],
122
+ canSendMessage: false,
123
+ canSpawnSubagents: false,
124
+ canAccessMainHistory: false,
125
+ canWrite: false,
126
+ canExecuteDangerous: false,
127
+ maxIterations: 5,
128
+ maxToolCalls: 20,
129
+ timeout: 120000,
130
+ },
131
+ };
132
+ // ── Agent 调度器类 ────────────────────────────────────────────────────
133
+ export class AgentDispatcher {
134
+ tasks = new Map();
135
+ results = new Map();
136
+ running = new Map();
137
+ /**
138
+ * 创建任务
139
+ */
140
+ createTask(task) {
141
+ const id = randomUUID().slice(0, 8);
142
+ const fullTask = { ...task, id };
143
+ this.tasks.set(id, fullTask);
144
+ return fullTask;
145
+ }
146
+ /**
147
+ * 获取任务
148
+ */
149
+ getTask(taskId) {
150
+ return this.tasks.get(taskId);
151
+ }
152
+ /**
153
+ * 获取任务结果
154
+ */
155
+ getResult(taskId) {
156
+ return this.results.get(taskId);
157
+ }
158
+ /**
159
+ * 获取角色配置
160
+ */
161
+ getRoleConfig(role) {
162
+ return AGENT_ROLE_CONFIGS[role];
163
+ }
164
+ /**
165
+ * 根据角色过滤工具
166
+ */
167
+ filterToolsByRole(tools, role) {
168
+ const config = this.getRoleConfig(role);
169
+ return tools.filter(tool => {
170
+ // 检查是否在禁止列表中
171
+ if (config.blockedTools.includes(tool.name)) {
172
+ return false;
173
+ }
174
+ // 检查是否在允许列表中
175
+ if (config.allowedTools.includes('*')) {
176
+ return true;
177
+ }
178
+ return config.allowedTools.includes(tool.name);
179
+ });
180
+ }
181
+ /**
182
+ * 构建角色特定的系统提示词
183
+ */
184
+ buildRolePrompt(role, task) {
185
+ const config = this.getRoleConfig(role);
186
+ const sections = [];
187
+ // 角色定义
188
+ sections.push(`# Agent Role: ${config.role}`);
189
+ sections.push(config.description);
190
+ // 任务目标
191
+ sections.push('## Task');
192
+ sections.push(`**Name:** ${task.name}`);
193
+ sections.push(`**Description:** ${task.description}`);
194
+ sections.push(`**Goal:** ${task.goal}`);
195
+ // 权限说明
196
+ sections.push('## Permissions');
197
+ sections.push(`- Send message to user: ${config.canSendMessage ? 'YES' : 'NO'}`);
198
+ sections.push(`- Spawn sub-agents: ${config.canSpawnSubagents ? 'YES' : 'NO'}`);
199
+ sections.push(`- Access main history: ${config.canAccessMainHistory ? 'YES' : 'NO'}`);
200
+ sections.push(`- Write files: ${config.canWrite ? 'YES' : 'NO'}`);
201
+ sections.push(`- Execute dangerous operations: ${config.canExecuteDangerous ? 'YES' : 'NO'}`);
202
+ // 工具限制
203
+ sections.push('## Tool Restrictions');
204
+ if (config.allowedTools.includes('*')) {
205
+ sections.push('- All tools are allowed');
206
+ }
207
+ else {
208
+ sections.push(`- Allowed tools: ${config.allowedTools.join(', ')}`);
209
+ }
210
+ if (config.blockedTools.length > 0) {
211
+ sections.push(`- Blocked tools: ${config.blockedTools.join(', ')}`);
212
+ }
213
+ // 资源限制
214
+ sections.push('## Resource Limits');
215
+ sections.push(`- Max iterations: ${config.maxIterations}`);
216
+ sections.push(`- Max tool calls: ${config.maxToolCalls}`);
217
+ sections.push(`- Timeout: ${config.timeout / 1000} seconds`);
218
+ // 上下文信息
219
+ if (task.context) {
220
+ sections.push('## Context');
221
+ sections.push('```json');
222
+ sections.push(JSON.stringify(task.context, null, 2));
223
+ sections.push('```');
224
+ }
225
+ // 安全规则
226
+ sections.push('## Safety Rules');
227
+ sections.push('1. Always verify file paths before reading/writing');
228
+ sections.push('2. Never execute commands that could harm the system');
229
+ sections.push('3. If unsure, ask for clarification rather than guessing');
230
+ sections.push('4. Report any errors or unexpected behavior immediately');
231
+ sections.push('5. Respect the tool restrictions defined above');
232
+ return sections.join('\n\n');
233
+ }
234
+ /**
235
+ * 验证任务依赖
236
+ */
237
+ validateDependencies(task) {
238
+ if (!task.dependencies || task.dependencies.length === 0) {
239
+ return { valid: true };
240
+ }
241
+ for (const depId of task.dependencies) {
242
+ const depTask = this.tasks.get(depId);
243
+ if (!depTask) {
244
+ return { valid: false, reason: `依赖任务 ${depId} 不存在` };
245
+ }
246
+ const depResult = this.results.get(depId);
247
+ if (!depResult) {
248
+ return { valid: false, reason: `依赖任务 ${depId} 尚未完成` };
249
+ }
250
+ if (!depResult.success) {
251
+ return { valid: false, reason: `依赖任务 ${depId} 执行失败` };
252
+ }
253
+ }
254
+ return { valid: true };
255
+ }
256
+ /**
257
+ * 检查任务是否可以执行
258
+ */
259
+ canExecute(taskId) {
260
+ const task = this.tasks.get(taskId);
261
+ if (!task) {
262
+ return { canExecute: false, reason: '任务不存在' };
263
+ }
264
+ // 检查是否已在运行
265
+ if (this.running.has(taskId)) {
266
+ return { canExecute: false, reason: '任务已在运行中' };
267
+ }
268
+ // 检查是否已完成
269
+ if (this.results.has(taskId)) {
270
+ return { canExecute: false, reason: '任务已完成' };
271
+ }
272
+ // 检查依赖
273
+ const depValidation = this.validateDependencies(task);
274
+ if (!depValidation.valid) {
275
+ return { canExecute: false, reason: depValidation.reason };
276
+ }
277
+ return { canExecute: true };
278
+ }
279
+ /**
280
+ * 记录任务结果
281
+ */
282
+ recordResult(result) {
283
+ this.results.set(result.taskId, result);
284
+ this.running.delete(result.taskId);
285
+ }
286
+ /**
287
+ * 标记任务为运行中
288
+ */
289
+ markRunning(taskId, promise) {
290
+ this.running.set(taskId, promise);
291
+ }
292
+ /**
293
+ * 获取所有任务状态
294
+ */
295
+ getTaskStatus() {
296
+ const status = [];
297
+ for (const [taskId, task] of this.tasks.entries()) {
298
+ const result = this.results.get(taskId);
299
+ const isRunning = this.running.has(taskId);
300
+ let statusStr = 'pending';
301
+ if (isRunning) {
302
+ statusStr = 'running';
303
+ }
304
+ else if (result) {
305
+ statusStr = result.success ? 'completed' : 'failed';
306
+ }
307
+ status.push({
308
+ task,
309
+ status: statusStr,
310
+ result,
311
+ });
312
+ }
313
+ return status;
314
+ }
315
+ /**
316
+ * 清理已完成的任务
317
+ */
318
+ cleanup() {
319
+ for (const [taskId, result] of this.results.entries()) {
320
+ if (result.success) {
321
+ this.tasks.delete(taskId);
322
+ this.results.delete(taskId);
323
+ }
324
+ }
325
+ }
326
+ /**
327
+ * 获取统计信息
328
+ */
329
+ getStats() {
330
+ let pending = 0;
331
+ let running = 0;
332
+ let completed = 0;
333
+ let failed = 0;
334
+ for (const [taskId] of this.tasks.entries()) {
335
+ const result = this.results.get(taskId);
336
+ const isRunning = this.running.has(taskId);
337
+ if (isRunning) {
338
+ running++;
339
+ }
340
+ else if (result) {
341
+ if (result.success) {
342
+ completed++;
343
+ }
344
+ else {
345
+ failed++;
346
+ }
347
+ }
348
+ else {
349
+ pending++;
350
+ }
351
+ }
352
+ return {
353
+ totalTasks: this.tasks.size,
354
+ pendingTasks: pending,
355
+ runningTasks: running,
356
+ completedTasks: completed,
357
+ failedTasks: failed,
358
+ };
359
+ }
360
+ }
361
+ // ── 全局调度器实例 ────────────────────────────────────────────────────
362
+ let globalDispatcher = null;
363
+ /**
364
+ * 获取全局调度器实例
365
+ */
366
+ export function getAgentDispatcher() {
367
+ if (!globalDispatcher) {
368
+ globalDispatcher = new AgentDispatcher();
369
+ }
370
+ return globalDispatcher;
371
+ }
372
+ /**
373
+ * 初始化调度器
374
+ */
375
+ export function initAgentDispatcher() {
376
+ globalDispatcher = new AgentDispatcher();
377
+ return globalDispatcher;
378
+ }
379
+ //# sourceMappingURL=agent-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-dispatcher.js","sourceRoot":"","sources":["../../src/orchestrator/agent-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hook-registry.d.ts","sourceRoot":"","sources":["../../src/orchestrator/hook-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAiB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtF,qBAAa,YAAa,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACxD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAIvD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
1
+ {"version":3,"file":"hook-registry.d.ts","sourceRoot":"","sources":["../../src/orchestrator/hook-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAiB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGtF,qBAAa,YAAa,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACxD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAIvD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
@@ -8,12 +8,14 @@
8
8
  * - Error isolation per handler
9
9
  */
10
10
  import { ResourceRegistry } from './resource-registry.js';
11
+ import { emitAIHookBusEvent } from '../plugin-ai-hook-bus.js';
11
12
  export class HookRegistry extends ResourceRegistry {
12
13
  /**
13
14
  * Trigger all hooks matching the event.
14
15
  * Matches both broad type ('message') and specific key ('message:received').
15
16
  */
16
17
  async trigger(event, agentId) {
18
+ emitAIHookBusEvent(event, 'orchestrator-hook', agentId);
17
19
  const hooks = agentId ? this.getForAgent(agentId) : this.getAll();
18
20
  const matching = hooks.filter(h => h.event === event.type || h.event === `${event.type}:${event.action}`);
19
21
  for (const hook of matching) {
@@ -1 +1 @@
1
- {"version":3,"file":"hook-registry.js","sourceRoot":"","sources":["../../src/orchestrator/hook-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,OAAO,YAAa,SAAQ,gBAAwB;IACxD;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,KAAkB,EAAE,OAAgB;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CACtE,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,2DAA2D;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,OAAgB;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAqB,EACrB,MAAc,EACd,SAAkB,EAClB,UAAmC,EAAE;IAErC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"hook-registry.js","sourceRoot":"","sources":["../../src/orchestrator/hook-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,YAAa,SAAQ,gBAAwB;IACxD;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,KAAkB,EAAE,OAAgB;QAChD,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CACtE,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,2DAA2D;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,OAAgB;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAqB,EACrB,MAAc,EACd,SAAkB,EAClB,UAAmC,EAAE;IAErC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACnF,CAAC"}
@@ -60,4 +60,6 @@ export { McpRegistry } from './mcp-registry.js';
60
60
  export type { McpConnection } from './mcp-registry.js';
61
61
  export { HookRegistry, createAIHookEvent } from './hook-registry.js';
62
62
  export * from './types.js';
63
+ export * from './agent-dispatcher.js';
64
+ export * from './task-queue.js';
63
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
@@ -107,4 +107,6 @@ export { SubAgentRegistry } from './subagent-registry.js';
107
107
  export { McpRegistry } from './mcp-registry.js';
108
108
  export { HookRegistry, createAIHookEvent } from './hook-registry.js';
109
109
  export * from './types.js';
110
+ export * from './agent-dispatcher.js';
111
+ export * from './task-queue.js';
110
112
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * MCP connection lifecycle helpers for ZhinAgent turns.
3
3
  */
4
4
  import type { McpRegistry } from './mcp-registry.js';
5
- export declare function ensureMcpConnections(mcps: McpRegistry): Promise<void>;
5
+ export declare function ensureMcpConnections(mcps: McpRegistry, onEvent?: Parameters<McpRegistry['ensureConnected']>[0]): Promise<void>;
6
6
  //# sourceMappingURL=mcp-lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-lifecycle.d.ts","sourceRoot":"","sources":["../../src/orchestrator/mcp-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E"}
1
+ {"version":3,"file":"mcp-lifecycle.d.ts","sourceRoot":"","sources":["../../src/orchestrator/mcp-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP connection lifecycle helpers for ZhinAgent turns.
3
3
  */
4
- export async function ensureMcpConnections(mcps) {
5
- await mcps.ensureConnected();
4
+ export async function ensureMcpConnections(mcps, onEvent) {
5
+ await mcps.ensureConnected(onEvent);
6
6
  }
7
7
  //# sourceMappingURL=mcp-lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-lifecycle.js","sourceRoot":"","sources":["../../src/orchestrator/mcp-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB;IAC1D,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"mcp-lifecycle.js","sourceRoot":"","sources":["../../src/orchestrator/mcp-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAiB,EACjB,OAAuD;IAEvD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -14,12 +14,19 @@ export interface McpConnection {
14
14
  resources: McpResource[];
15
15
  prompts: McpPrompt[];
16
16
  }
17
+ export interface McpEnsureConnectionEvent {
18
+ phase: 'start' | 'finish' | 'error';
19
+ serverName: string;
20
+ connected?: boolean;
21
+ toolNames?: string[];
22
+ error?: string;
23
+ }
17
24
  export declare class McpRegistry extends ResourceRegistry<McpServerEntry> {
18
25
  private readonly manager;
19
26
  private readonly connections;
20
27
  connect(name: string): Promise<McpConnection>;
21
28
  /** Lazy-connect all registered servers; per-server failures are logged, not thrown. */
22
- ensureConnected(): Promise<void>;
29
+ ensureConnected(onEvent?: (event: McpEnsureConnectionEvent) => void | Promise<void>): Promise<void>;
23
30
  disconnect(name: string): void;
24
31
  getConnection(name: string): McpConnection | undefined;
25
32
  getToolsFromServer(name: string): AgentTool[];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../../src/orchestrator/mcp-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAE1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBnD,uFAAuF;IACjF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAetC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAItD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAI7C,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAInD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAI/C,cAAc,IAAI,SAAS,EAAE;IAQ7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO;IAMpD,OAAO,IAAI,IAAI;CAKzB"}
1
+ {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../../src/orchestrator/mcp-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAE1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBnD,uFAAuF;IACjF,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCzG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAItD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAI7C,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAInD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAI/C,cAAc,IAAI,SAAS,EAAE;IAQ7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO;IAMpD,OAAO,IAAI,IAAI;CAKzB"}
@@ -16,8 +16,12 @@ export class McpRegistry extends ResourceRegistry {
16
16
  if (!entry)
17
17
  throw new Error(`MCP server "${name}" not registered`);
18
18
  const existing = this.connections.get(name);
19
- if (existing?.connected)
20
- return existing;
19
+ if (existing?.connected) {
20
+ const healthy = await this.manager.isHealthy(name);
21
+ if (healthy)
22
+ return existing;
23
+ this.disconnect(name);
24
+ }
21
25
  const clientConn = await this.manager.connect(entry);
22
26
  const connection = {
23
27
  name,
@@ -30,19 +34,38 @@ export class McpRegistry extends ResourceRegistry {
30
34
  return connection;
31
35
  }
32
36
  /** Lazy-connect all registered servers; per-server failures are logged, not thrown. */
33
- async ensureConnected() {
37
+ async ensureConnected(onEvent) {
34
38
  for (const entry of this.getAll()) {
35
- if (this.isConnected(entry.name))
36
- continue;
39
+ if (this.isConnected(entry.name)) {
40
+ const healthy = await this.manager.isHealthy(entry.name);
41
+ if (healthy)
42
+ continue;
43
+ this.disconnect(entry.name);
44
+ }
37
45
  try {
46
+ await onEvent?.({ phase: 'start', serverName: entry.name });
38
47
  await this.connect(entry.name);
39
48
  if (!this.isConnected(entry.name)) {
40
49
  logger.warn(`MCP server "${entry.name}" is registered but not connected (check SDK or server config)`);
50
+ await onEvent?.({
51
+ phase: 'finish',
52
+ serverName: entry.name,
53
+ connected: false,
54
+ toolNames: [],
55
+ });
56
+ continue;
41
57
  }
58
+ await onEvent?.({
59
+ phase: 'finish',
60
+ serverName: entry.name,
61
+ connected: true,
62
+ toolNames: this.getToolsFromServer(entry.name).map(tool => tool.name),
63
+ });
42
64
  }
43
65
  catch (err) {
44
66
  const message = err instanceof Error ? err.message : String(err);
45
67
  logger.warn(`MCP server "${entry.name}" connect failed: ${message}`);
68
+ await onEvent?.({ phase: 'error', serverName: entry.name, error: message });
46
69
  }
47
70
  }
48
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../src/orchestrator/mcp-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../src/orchestrator/mcp-registry.ts"],"names":[],"mappings":"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"}