@zhin.js/agent 1.1.7 → 1.1.9

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 (590) hide show
  1. package/README.md +15 -23
  2. package/lib/activity-feedback/adapter-integration.d.ts +1 -2
  3. package/lib/activity-feedback/adapter-integration.d.ts.map +1 -1
  4. package/lib/activity-feedback/adapter-integration.js +43 -13
  5. package/lib/activity-feedback/adapter-integration.js.map +1 -1
  6. package/lib/assistant/index.d.ts +1 -1
  7. package/lib/assistant/index.d.ts.map +1 -1
  8. package/lib/assistant/index.js +1 -1
  9. package/lib/assistant/index.js.map +1 -1
  10. package/lib/assistant/job-creator.d.ts +0 -7
  11. package/lib/assistant/job-creator.d.ts.map +1 -1
  12. package/lib/assistant/job-creator.js +1 -12
  13. package/lib/assistant/job-creator.js.map +1 -1
  14. package/lib/builtin/five-agent/index.d.ts +6 -3
  15. package/lib/builtin/five-agent/index.d.ts.map +1 -1
  16. package/lib/builtin/five-agent/index.js +6 -4
  17. package/lib/builtin/five-agent/index.js.map +1 -1
  18. package/lib/builtin/five-agent/prompts.d.ts +3 -3
  19. package/lib/builtin/five-agent/prompts.d.ts.map +1 -1
  20. package/lib/builtin/five-agent/prompts.js +3 -3
  21. package/lib/builtin/five-agent/prompts.js.map +1 -1
  22. package/lib/builtin/five-agent/role-capability-policy.d.ts +9 -0
  23. package/lib/builtin/five-agent/role-capability-policy.d.ts.map +1 -0
  24. package/lib/builtin/five-agent/role-capability-policy.js +22 -0
  25. package/lib/builtin/five-agent/role-capability-policy.js.map +1 -0
  26. package/lib/builtin/five-agent/roles.d.ts +5 -0
  27. package/lib/builtin/five-agent/roles.d.ts.map +1 -0
  28. package/lib/builtin/five-agent/roles.js +12 -0
  29. package/lib/builtin/five-agent/roles.js.map +1 -0
  30. package/lib/builtin/orchestration-tools.d.ts.map +1 -1
  31. package/lib/builtin/orchestration-tools.js +12 -38
  32. package/lib/builtin/orchestration-tools.js.map +1 -1
  33. package/lib/builtin/spawn-task-tool.js +2 -2
  34. package/lib/builtin/spawn-task-tool.js.map +1 -1
  35. package/lib/config/agent-interfaces.d.ts +2 -2
  36. package/lib/config/agent-interfaces.d.ts.map +1 -1
  37. package/lib/config/fix-ai-config.d.ts.map +1 -1
  38. package/lib/config/fix-ai-config.js +1 -38
  39. package/lib/config/fix-ai-config.js.map +1 -1
  40. package/lib/config/index.d.ts +1 -1
  41. package/lib/config/index.d.ts.map +1 -1
  42. package/lib/config/index.js +1 -1
  43. package/lib/config/index.js.map +1 -1
  44. package/lib/config/resolve-five-agent-binding.d.ts +10 -0
  45. package/lib/config/resolve-five-agent-binding.d.ts.map +1 -0
  46. package/lib/config/resolve-five-agent-binding.js +31 -0
  47. package/lib/config/resolve-five-agent-binding.js.map +1 -0
  48. package/lib/context/context-system.d.ts +2 -2
  49. package/lib/context/context-system.d.ts.map +1 -1
  50. package/lib/context/context-system.js +2 -3
  51. package/lib/context/context-system.js.map +1 -1
  52. package/lib/context/context-tail-limit.d.ts +0 -2
  53. package/lib/context/context-tail-limit.d.ts.map +1 -1
  54. package/lib/context/context-tail-limit.js +1 -3
  55. package/lib/context/context-tail-limit.js.map +1 -1
  56. package/lib/context/default-builders.d.ts +0 -4
  57. package/lib/context/default-builders.d.ts.map +1 -1
  58. package/lib/context/default-builders.js +0 -14
  59. package/lib/context/default-builders.js.map +1 -1
  60. package/lib/context/envelope-parts.d.ts +0 -1
  61. package/lib/context/envelope-parts.d.ts.map +1 -1
  62. package/lib/context/index.d.ts +2 -2
  63. package/lib/context/index.d.ts.map +1 -1
  64. package/lib/context/index.js +2 -2
  65. package/lib/context/index.js.map +1 -1
  66. package/lib/context/turn-envelope.d.ts +0 -1
  67. package/lib/context/turn-envelope.d.ts.map +1 -1
  68. package/lib/context/turn-envelope.js +0 -2
  69. package/lib/context/turn-envelope.js.map +1 -1
  70. package/lib/core/agent-loop-standalone.d.ts +2 -1
  71. package/lib/core/agent-loop-standalone.d.ts.map +1 -1
  72. package/lib/core/agent-loop-standalone.js.map +1 -1
  73. package/lib/event/agent-stream-bus.d.ts +0 -1
  74. package/lib/event/agent-stream-bus.d.ts.map +1 -1
  75. package/lib/event/agent-stream-bus.js.map +1 -1
  76. package/lib/event/publish-agent-stream.js +2 -2
  77. package/lib/event/publish-agent-stream.js.map +1 -1
  78. package/lib/event/turn-event.d.ts +11 -1
  79. package/lib/event/turn-event.d.ts.map +1 -1
  80. package/lib/event/turn-event.js.map +1 -1
  81. package/lib/index.d.ts +13 -21
  82. package/lib/index.d.ts.map +1 -1
  83. package/lib/index.js +6 -15
  84. package/lib/index.js.map +1 -1
  85. package/lib/init/activate-ai-database-storage.d.ts +2 -2
  86. package/lib/init/activate-ai-database-storage.d.ts.map +1 -1
  87. package/lib/init/activate-ai-database-storage.js +1 -3
  88. package/lib/init/activate-ai-database-storage.js.map +1 -1
  89. package/lib/init/define-ai-database-models.d.ts +1 -1
  90. package/lib/init/define-ai-database-models.d.ts.map +1 -1
  91. package/lib/init/define-ai-database-models.js +1 -9
  92. package/lib/init/define-ai-database-models.js.map +1 -1
  93. package/lib/init/runtime-management-commands.d.ts +2 -3
  94. package/lib/init/runtime-management-commands.d.ts.map +1 -1
  95. package/lib/init/runtime-management-commands.js +6 -6
  96. package/lib/init/runtime-management-commands.js.map +1 -1
  97. package/lib/internal/agent-host.d.ts +2 -3
  98. package/lib/internal/agent-host.d.ts.map +1 -1
  99. package/lib/internal/host-types.d.ts +0 -28
  100. package/lib/internal/host-types.d.ts.map +1 -1
  101. package/lib/memory/context-repository-store.js +1 -1
  102. package/lib/memory/context-repository-store.js.map +1 -1
  103. package/lib/memory/memory-system.d.ts +1 -2
  104. package/lib/memory/memory-system.d.ts.map +1 -1
  105. package/lib/memory/memory-system.js +1 -3
  106. package/lib/memory/memory-system.js.map +1 -1
  107. package/lib/orchestrator/bootstrap-executors.d.ts +0 -4
  108. package/lib/orchestrator/bootstrap-executors.d.ts.map +1 -1
  109. package/lib/orchestrator/bootstrap-executors.js +11 -137
  110. package/lib/orchestrator/bootstrap-executors.js.map +1 -1
  111. package/lib/orchestrator/orchestration-mappers.d.ts +1 -1
  112. package/lib/orchestrator/orchestration-mappers.d.ts.map +1 -1
  113. package/lib/orchestrator/orchestration-mappers.js +4 -49
  114. package/lib/orchestrator/orchestration-mappers.js.map +1 -1
  115. package/lib/orchestrator/orchestration-service.d.ts.map +1 -1
  116. package/lib/orchestrator/orchestration-service.js +2 -5
  117. package/lib/orchestrator/orchestration-service.js.map +1 -1
  118. package/lib/orchestrator/orchestration-source.d.ts +5 -0
  119. package/lib/orchestrator/orchestration-source.d.ts.map +1 -0
  120. package/lib/orchestrator/orchestration-source.js +22 -0
  121. package/lib/orchestrator/orchestration-source.js.map +1 -0
  122. package/lib/outbound/send-proactive.d.ts +3 -13
  123. package/lib/outbound/send-proactive.d.ts.map +1 -1
  124. package/lib/outbound/send-proactive.js +1 -53
  125. package/lib/outbound/send-proactive.js.map +1 -1
  126. package/lib/plugin-runtime/agent-host-port.d.ts +12 -3
  127. package/lib/plugin-runtime/agent-host-port.d.ts.map +1 -1
  128. package/lib/plugin-runtime/agent-host-port.js +1 -1
  129. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  130. package/lib/plugin-runtime/agent-runtime.d.ts +7 -4
  131. package/lib/plugin-runtime/agent-runtime.d.ts.map +1 -1
  132. package/lib/plugin-runtime/agent-runtime.js +3 -2
  133. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  134. package/lib/plugin-runtime/capability-tools.d.ts.map +1 -1
  135. package/lib/plugin-runtime/capability-tools.js +3 -0
  136. package/lib/plugin-runtime/capability-tools.js.map +1 -1
  137. package/lib/plugin-runtime/deferred-capability-plan.d.ts +1 -0
  138. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +1 -1
  139. package/lib/plugin-runtime/deferred-capability-plan.js +1 -1
  140. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  141. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +1 -1
  142. package/lib/plugin-runtime/full-agent-turn-engine.js +102 -0
  143. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  144. package/lib/plugin-runtime/host-mcp-projection.d.ts.map +1 -1
  145. package/lib/plugin-runtime/host-mcp-projection.js +17 -2
  146. package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
  147. package/lib/plugin-runtime/schedule-capability-plan.d.ts +20 -0
  148. package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +1 -0
  149. package/lib/plugin-runtime/schedule-capability-plan.js +88 -0
  150. package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -0
  151. package/lib/prompt/assembly.d.ts.map +1 -1
  152. package/lib/prompt/assembly.js +2 -0
  153. package/lib/prompt/assembly.js.map +1 -1
  154. package/lib/prompt/index.d.ts +5 -1
  155. package/lib/prompt/index.d.ts.map +1 -1
  156. package/lib/prompt/index.js +3 -1
  157. package/lib/prompt/index.js.map +1 -1
  158. package/lib/prompt/prompt-assembly-registry.d.ts +25 -0
  159. package/lib/prompt/prompt-assembly-registry.d.ts.map +1 -0
  160. package/lib/prompt/prompt-assembly-registry.js +43 -0
  161. package/lib/prompt/prompt-assembly-registry.js.map +1 -0
  162. package/lib/prompt/prompt-budget.d.ts +9 -0
  163. package/lib/prompt/prompt-budget.d.ts.map +1 -0
  164. package/lib/prompt/prompt-budget.js +28 -0
  165. package/lib/prompt/prompt-budget.js.map +1 -0
  166. package/lib/prompt/prompt-builder.js +1 -1
  167. package/lib/prompt/prompt-builder.js.map +1 -1
  168. package/lib/prompt/system-prompt.d.ts +5 -8
  169. package/lib/prompt/system-prompt.d.ts.map +1 -1
  170. package/lib/prompt/system-prompt.js +159 -78
  171. package/lib/prompt/system-prompt.js.map +1 -1
  172. package/lib/prompt/tokens.d.ts +8 -0
  173. package/lib/prompt/tokens.d.ts.map +1 -0
  174. package/lib/prompt/tokens.js +2 -0
  175. package/lib/prompt/tokens.js.map +1 -0
  176. package/lib/prompt/turn-prompt-profile.d.ts +1 -2
  177. package/lib/prompt/turn-prompt-profile.d.ts.map +1 -1
  178. package/lib/schedule-domain/audit-logger.d.ts +2 -2
  179. package/lib/schedule-domain/audit-logger.d.ts.map +1 -1
  180. package/lib/schedule-domain/execution-domain.d.ts +21 -17
  181. package/lib/schedule-domain/execution-domain.d.ts.map +1 -1
  182. package/lib/schedule-domain/execution-domain.js +41 -23
  183. package/lib/schedule-domain/execution-domain.js.map +1 -1
  184. package/lib/schedule-domain/index.d.ts +0 -1
  185. package/lib/schedule-domain/index.d.ts.map +1 -1
  186. package/lib/schedule-domain/index.js +0 -1
  187. package/lib/schedule-domain/index.js.map +1 -1
  188. package/lib/schedule-domain/prompt-assembler.d.ts +3 -4
  189. package/lib/schedule-domain/prompt-assembler.d.ts.map +1 -1
  190. package/lib/schedule-domain/prompt-assembler.js +0 -16
  191. package/lib/schedule-domain/prompt-assembler.js.map +1 -1
  192. package/lib/schedule-domain/security-harness.d.ts +10 -15
  193. package/lib/schedule-domain/security-harness.d.ts.map +1 -1
  194. package/lib/schedule-domain/security-harness.js +5 -78
  195. package/lib/schedule-domain/security-harness.js.map +1 -1
  196. package/lib/security/exec-policy.d.ts +2 -0
  197. package/lib/security/exec-policy.d.ts.map +1 -1
  198. package/lib/security/exec-policy.js +21 -0
  199. package/lib/security/exec-policy.js.map +1 -1
  200. package/lib/security/owner-approve-always-store.d.ts +8 -3
  201. package/lib/security/owner-approve-always-store.d.ts.map +1 -1
  202. package/lib/security/owner-approve-always-store.js +160 -173
  203. package/lib/security/owner-approve-always-store.js.map +1 -1
  204. package/lib/security/policy-facade.d.ts.map +1 -1
  205. package/lib/security/policy-facade.js +11 -1
  206. package/lib/security/policy-facade.js.map +1 -1
  207. package/lib/service.d.ts.map +1 -1
  208. package/lib/service.js +0 -7
  209. package/lib/service.js.map +1 -1
  210. package/lib/session/index.d.ts +3 -3
  211. package/lib/session/index.d.ts.map +1 -1
  212. package/lib/session/index.js +3 -3
  213. package/lib/session/index.js.map +1 -1
  214. package/lib/session/passive-group-session.js +1 -1
  215. package/lib/session/session-key.d.ts +4 -0
  216. package/lib/session/session-key.d.ts.map +1 -0
  217. package/lib/session/session-key.js +6 -0
  218. package/lib/session/session-key.js.map +1 -0
  219. package/lib/session/session-system.d.ts.map +1 -1
  220. package/lib/session/session-system.js +4 -4
  221. package/lib/session/session-system.js.map +1 -1
  222. package/lib/session/session-tree-commands.d.ts +2 -3
  223. package/lib/session/session-tree-commands.d.ts.map +1 -1
  224. package/lib/session/session-tree-commands.js +2 -5
  225. package/lib/session/session-tree-commands.js.map +1 -1
  226. package/lib/session/strategies.d.ts +1 -1
  227. package/lib/session/strategies.d.ts.map +1 -1
  228. package/lib/session/strategies.js +2 -2
  229. package/lib/session/strategies.js.map +1 -1
  230. package/lib/subagent/im-result-sink.d.ts.map +1 -1
  231. package/lib/subagent/im-result-sink.js +0 -1
  232. package/lib/subagent/im-result-sink.js.map +1 -1
  233. package/lib/subagent-goal-notify.d.ts +0 -9
  234. package/lib/subagent-goal-notify.d.ts.map +1 -1
  235. package/lib/subagent-goal-notify.js +0 -13
  236. package/lib/subagent-goal-notify.js.map +1 -1
  237. package/lib/task-executor.d.ts +14 -3
  238. package/lib/task-executor.d.ts.map +1 -1
  239. package/lib/task-executor.js +48 -61
  240. package/lib/task-executor.js.map +1 -1
  241. package/lib/tool/classic-tool-execution-authority.d.ts.map +1 -1
  242. package/lib/tool/classic-tool-execution-authority.js +4 -3
  243. package/lib/tool/classic-tool-execution-authority.js.map +1 -1
  244. package/lib/tool/prepare-turn-tools.d.ts +0 -2
  245. package/lib/tool/prepare-turn-tools.d.ts.map +1 -1
  246. package/lib/tool/prepare-turn-tools.js +1 -55
  247. package/lib/tool/prepare-turn-tools.js.map +1 -1
  248. package/lib/tool/tool-runtime.d.ts +1 -1
  249. package/lib/tool/tool-runtime.d.ts.map +1 -1
  250. package/lib/turn/auto-continue.js +1 -1
  251. package/lib/turn/auto-continue.js.map +1 -1
  252. package/lib/turn/persist-deferred-context.js +1 -1
  253. package/lib/turn/persist-deferred-context.js.map +1 -1
  254. package/lib/turn/persist-subagent-context.js +1 -1
  255. package/lib/turn/persist-subagent-context.js.map +1 -1
  256. package/lib/turn/process-stream.d.ts.map +1 -1
  257. package/lib/turn/process-stream.js +0 -2
  258. package/lib/turn/process-stream.js.map +1 -1
  259. package/lib/turn/turn-ingress.d.ts +21 -1
  260. package/lib/turn/turn-ingress.d.ts.map +1 -1
  261. package/lib/turn/turn-ingress.js +29 -0
  262. package/lib/turn/turn-ingress.js.map +1 -1
  263. package/lib/turn/turn-pipeline.d.ts +0 -5
  264. package/lib/turn/turn-pipeline.d.ts.map +1 -1
  265. package/lib/turn/turn-pipeline.js +12 -32
  266. package/lib/turn/turn-pipeline.js.map +1 -1
  267. package/lib/typing-indicator/adapter-integration.d.ts +1 -2
  268. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -1
  269. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  270. package/lib/typing-indicator/integration.d.ts +2 -3
  271. package/lib/typing-indicator/integration.d.ts.map +1 -1
  272. package/lib/typing-indicator/integration.js +48 -11
  273. package/lib/typing-indicator/integration.js.map +1 -1
  274. package/lib/zhin-agent/index.d.ts +5 -8
  275. package/lib/zhin-agent/index.d.ts.map +1 -1
  276. package/lib/zhin-agent/index.js +13 -15
  277. package/lib/zhin-agent/index.js.map +1 -1
  278. package/package.json +9 -9
  279. package/lib/aop/index.d.ts +0 -11
  280. package/lib/aop/index.d.ts.map +0 -1
  281. package/lib/aop/index.js +0 -11
  282. package/lib/aop/index.js.map +0 -1
  283. package/lib/aop/pipeline/index.d.ts +0 -12
  284. package/lib/aop/pipeline/index.d.ts.map +0 -1
  285. package/lib/aop/pipeline/index.js +0 -12
  286. package/lib/aop/pipeline/index.js.map +0 -1
  287. package/lib/aop/pipeline/pipeline-flow.d.ts +0 -25
  288. package/lib/aop/pipeline/pipeline-flow.d.ts.map +0 -1
  289. package/lib/aop/pipeline/pipeline-flow.js +0 -115
  290. package/lib/aop/pipeline/pipeline-flow.js.map +0 -1
  291. package/lib/aop/pipeline/pipeline-mode.d.ts +0 -10
  292. package/lib/aop/pipeline/pipeline-mode.d.ts.map +0 -1
  293. package/lib/aop/pipeline/pipeline-mode.js +0 -16
  294. package/lib/aop/pipeline/pipeline-mode.js.map +0 -1
  295. package/lib/aop/pipeline/pipeline-service.d.ts +0 -123
  296. package/lib/aop/pipeline/pipeline-service.d.ts.map +0 -1
  297. package/lib/aop/pipeline/pipeline-service.js +0 -238
  298. package/lib/aop/pipeline/pipeline-service.js.map +0 -1
  299. package/lib/aop/pipeline/pipeline-transitions.d.ts +0 -14
  300. package/lib/aop/pipeline/pipeline-transitions.d.ts.map +0 -1
  301. package/lib/aop/pipeline/pipeline-transitions.js +0 -31
  302. package/lib/aop/pipeline/pipeline-transitions.js.map +0 -1
  303. package/lib/aop/pipeline/ports.d.ts +0 -16
  304. package/lib/aop/pipeline/ports.d.ts.map +0 -1
  305. package/lib/aop/pipeline/ports.js +0 -2
  306. package/lib/aop/pipeline/ports.js.map +0 -1
  307. package/lib/aop/pipeline/role-capability-policy.d.ts +0 -16
  308. package/lib/aop/pipeline/role-capability-policy.d.ts.map +0 -1
  309. package/lib/aop/pipeline/role-capability-policy.js +0 -29
  310. package/lib/aop/pipeline/role-capability-policy.js.map +0 -1
  311. package/lib/aop/runtime/index.d.ts +0 -9
  312. package/lib/aop/runtime/index.d.ts.map +0 -1
  313. package/lib/aop/runtime/index.js +0 -9
  314. package/lib/aop/runtime/index.js.map +0 -1
  315. package/lib/collaboration/collab-admin-gate.d.ts +0 -21
  316. package/lib/collaboration/collab-admin-gate.d.ts.map +0 -1
  317. package/lib/collaboration/collab-admin-gate.js +0 -74
  318. package/lib/collaboration/collab-admin-gate.js.map +0 -1
  319. package/lib/collaboration/collab-utils.d.ts +0 -15
  320. package/lib/collaboration/collab-utils.d.ts.map +0 -1
  321. package/lib/collaboration/collab-utils.js +0 -37
  322. package/lib/collaboration/collab-utils.js.map +0 -1
  323. package/lib/collaboration/collaboration-artifact-repository.d.ts +0 -48
  324. package/lib/collaboration/collaboration-artifact-repository.d.ts.map +0 -1
  325. package/lib/collaboration/collaboration-artifact-repository.js +0 -114
  326. package/lib/collaboration/collaboration-artifact-repository.js.map +0 -1
  327. package/lib/collaboration/collaboration-commands.d.ts +0 -38
  328. package/lib/collaboration/collaboration-commands.d.ts.map +0 -1
  329. package/lib/collaboration/collaboration-commands.js +0 -373
  330. package/lib/collaboration/collaboration-commands.js.map +0 -1
  331. package/lib/collaboration/collaboration-config.d.ts +0 -30
  332. package/lib/collaboration/collaboration-config.d.ts.map +0 -1
  333. package/lib/collaboration/collaboration-config.js +0 -170
  334. package/lib/collaboration/collaboration-config.js.map +0 -1
  335. package/lib/collaboration/collaboration-context.d.ts +0 -15
  336. package/lib/collaboration/collaboration-context.d.ts.map +0 -1
  337. package/lib/collaboration/collaboration-context.js +0 -101
  338. package/lib/collaboration/collaboration-context.js.map +0 -1
  339. package/lib/collaboration/collaboration-db-model.d.ts +0 -350
  340. package/lib/collaboration/collaboration-db-model.d.ts.map +0 -1
  341. package/lib/collaboration/collaboration-db-model.js +0 -112
  342. package/lib/collaboration/collaboration-db-model.js.map +0 -1
  343. package/lib/collaboration/collaboration-delegation.d.ts +0 -21
  344. package/lib/collaboration/collaboration-delegation.d.ts.map +0 -1
  345. package/lib/collaboration/collaboration-delegation.js +0 -221
  346. package/lib/collaboration/collaboration-delegation.js.map +0 -1
  347. package/lib/collaboration/collaboration-dispatch.d.ts +0 -32
  348. package/lib/collaboration/collaboration-dispatch.d.ts.map +0 -1
  349. package/lib/collaboration/collaboration-dispatch.js +0 -93
  350. package/lib/collaboration/collaboration-dispatch.js.map +0 -1
  351. package/lib/collaboration/collaboration-kernel-bridge.d.ts +0 -23
  352. package/lib/collaboration/collaboration-kernel-bridge.d.ts.map +0 -1
  353. package/lib/collaboration/collaboration-kernel-bridge.js +0 -105
  354. package/lib/collaboration/collaboration-kernel-bridge.js.map +0 -1
  355. package/lib/collaboration/collaboration-outbound.d.ts +0 -64
  356. package/lib/collaboration/collaboration-outbound.d.ts.map +0 -1
  357. package/lib/collaboration/collaboration-outbound.js +0 -312
  358. package/lib/collaboration/collaboration-outbound.js.map +0 -1
  359. package/lib/collaboration/collaboration-scene-repository.d.ts +0 -154
  360. package/lib/collaboration/collaboration-scene-repository.d.ts.map +0 -1
  361. package/lib/collaboration/collaboration-scene-repository.js +0 -451
  362. package/lib/collaboration/collaboration-scene-repository.js.map +0 -1
  363. package/lib/collaboration/collaboration-turn-snapshot.d.ts +0 -18
  364. package/lib/collaboration/collaboration-turn-snapshot.d.ts.map +0 -1
  365. package/lib/collaboration/collaboration-turn-snapshot.js +0 -35
  366. package/lib/collaboration/collaboration-turn-snapshot.js.map +0 -1
  367. package/lib/collaboration/delegation-state.d.ts +0 -30
  368. package/lib/collaboration/delegation-state.d.ts.map +0 -1
  369. package/lib/collaboration/delegation-state.js +0 -86
  370. package/lib/collaboration/delegation-state.js.map +0 -1
  371. package/lib/collaboration/endpoint-identity.d.ts +0 -28
  372. package/lib/collaboration/endpoint-identity.d.ts.map +0 -1
  373. package/lib/collaboration/endpoint-identity.js +0 -80
  374. package/lib/collaboration/endpoint-identity.js.map +0 -1
  375. package/lib/collaboration/group-feed.d.ts +0 -30
  376. package/lib/collaboration/group-feed.d.ts.map +0 -1
  377. package/lib/collaboration/group-feed.js +0 -150
  378. package/lib/collaboration/group-feed.js.map +0 -1
  379. package/lib/collaboration/group-message.d.ts +0 -53
  380. package/lib/collaboration/group-message.d.ts.map +0 -1
  381. package/lib/collaboration/group-message.js +0 -101
  382. package/lib/collaboration/group-message.js.map +0 -1
  383. package/lib/collaboration/im-mention-delegate.d.ts +0 -22
  384. package/lib/collaboration/im-mention-delegate.d.ts.map +0 -1
  385. package/lib/collaboration/im-mention-delegate.js +0 -15
  386. package/lib/collaboration/im-mention-delegate.js.map +0 -1
  387. package/lib/collaboration/inbound-peer-handback.d.ts +0 -18
  388. package/lib/collaboration/inbound-peer-handback.d.ts.map +0 -1
  389. package/lib/collaboration/inbound-peer-handback.js +0 -65
  390. package/lib/collaboration/inbound-peer-handback.js.map +0 -1
  391. package/lib/collaboration/inbound-spawn-task.d.ts +0 -29
  392. package/lib/collaboration/inbound-spawn-task.d.ts.map +0 -1
  393. package/lib/collaboration/inbound-spawn-task.js +0 -96
  394. package/lib/collaboration/inbound-spawn-task.js.map +0 -1
  395. package/lib/collaboration/inbound-turn-endpoint.d.ts +0 -16
  396. package/lib/collaboration/inbound-turn-endpoint.d.ts.map +0 -1
  397. package/lib/collaboration/inbound-turn-endpoint.js +0 -26
  398. package/lib/collaboration/inbound-turn-endpoint.js.map +0 -1
  399. package/lib/collaboration/inbound-turn-tools.d.ts +0 -13
  400. package/lib/collaboration/inbound-turn-tools.d.ts.map +0 -1
  401. package/lib/collaboration/inbound-turn-tools.js +0 -24
  402. package/lib/collaboration/inbound-turn-tools.js.map +0 -1
  403. package/lib/collaboration/index.d.ts +0 -21
  404. package/lib/collaboration/index.d.ts.map +0 -1
  405. package/lib/collaboration/index.js +0 -19
  406. package/lib/collaboration/index.js.map +0 -1
  407. package/lib/collaboration/init-observe-hook.d.ts +0 -56
  408. package/lib/collaboration/init-observe-hook.d.ts.map +0 -1
  409. package/lib/collaboration/init-observe-hook.js +0 -168
  410. package/lib/collaboration/init-observe-hook.js.map +0 -1
  411. package/lib/collaboration/init-wizard-service.d.ts +0 -57
  412. package/lib/collaboration/init-wizard-service.d.ts.map +0 -1
  413. package/lib/collaboration/init-wizard-service.js +0 -187
  414. package/lib/collaboration/init-wizard-service.js.map +0 -1
  415. package/lib/collaboration/outbound-resolver.d.ts +0 -37
  416. package/lib/collaboration/outbound-resolver.d.ts.map +0 -1
  417. package/lib/collaboration/outbound-resolver.js +0 -189
  418. package/lib/collaboration/outbound-resolver.js.map +0 -1
  419. package/lib/collaboration/peer-policy.d.ts +0 -29
  420. package/lib/collaboration/peer-policy.d.ts.map +0 -1
  421. package/lib/collaboration/peer-policy.js +0 -118
  422. package/lib/collaboration/peer-policy.js.map +0 -1
  423. package/lib/collaboration/resolve-agent-session-key.d.ts +0 -21
  424. package/lib/collaboration/resolve-agent-session-key.d.ts.map +0 -1
  425. package/lib/collaboration/resolve-agent-session-key.js +0 -61
  426. package/lib/collaboration/resolve-agent-session-key.js.map +0 -1
  427. package/lib/collaboration/runtime-inbound-gate.d.ts +0 -35
  428. package/lib/collaboration/runtime-inbound-gate.d.ts.map +0 -1
  429. package/lib/collaboration/runtime-inbound-gate.js +0 -105
  430. package/lib/collaboration/runtime-inbound-gate.js.map +0 -1
  431. package/lib/collaboration/scene-context.d.ts +0 -17
  432. package/lib/collaboration/scene-context.d.ts.map +0 -1
  433. package/lib/collaboration/scene-context.js +0 -22
  434. package/lib/collaboration/scene-context.js.map +0 -1
  435. package/lib/collaboration/scene-identity-service.d.ts +0 -169
  436. package/lib/collaboration/scene-identity-service.d.ts.map +0 -1
  437. package/lib/collaboration/scene-identity-service.js +0 -479
  438. package/lib/collaboration/scene-identity-service.js.map +0 -1
  439. package/lib/collaboration/scene-service.d.ts +0 -67
  440. package/lib/collaboration/scene-service.d.ts.map +0 -1
  441. package/lib/collaboration/scene-service.js +0 -157
  442. package/lib/collaboration/scene-service.js.map +0 -1
  443. package/lib/collaboration/structured-ai-outbound.d.ts +0 -25
  444. package/lib/collaboration/structured-ai-outbound.d.ts.map +0 -1
  445. package/lib/collaboration/structured-ai-outbound.js +0 -179
  446. package/lib/collaboration/structured-ai-outbound.js.map +0 -1
  447. package/lib/collaboration/turn-plan-resolver.d.ts +0 -17
  448. package/lib/collaboration/turn-plan-resolver.d.ts.map +0 -1
  449. package/lib/collaboration/turn-plan-resolver.js +0 -63
  450. package/lib/collaboration/turn-plan-resolver.js.map +0 -1
  451. package/lib/collaboration/types.d.ts +0 -147
  452. package/lib/collaboration/types.d.ts.map +0 -1
  453. package/lib/collaboration/types.js +0 -16
  454. package/lib/collaboration/types.js.map +0 -1
  455. package/lib/collaboration/wire-collaboration-storage.d.ts +0 -4
  456. package/lib/collaboration/wire-collaboration-storage.d.ts.map +0 -1
  457. package/lib/collaboration/wire-collaboration-storage.js +0 -26
  458. package/lib/collaboration/wire-collaboration-storage.js.map +0 -1
  459. package/lib/config/resolve-pipeline-binding.d.ts +0 -16
  460. package/lib/config/resolve-pipeline-binding.d.ts.map +0 -1
  461. package/lib/config/resolve-pipeline-binding.js +0 -35
  462. package/lib/config/resolve-pipeline-binding.js.map +0 -1
  463. package/lib/discovery/register-agent-surface.d.ts +0 -33
  464. package/lib/discovery/register-agent-surface.d.ts.map +0 -1
  465. package/lib/discovery/register-agent-surface.js +0 -170
  466. package/lib/discovery/register-agent-surface.js.map +0 -1
  467. package/lib/init/create-zhin-agent.d.ts +0 -3
  468. package/lib/init/create-zhin-agent.d.ts.map +0 -1
  469. package/lib/init/create-zhin-agent.js +0 -401
  470. package/lib/init/create-zhin-agent.js.map +0 -1
  471. package/lib/init/register-ai-service.d.ts +0 -7
  472. package/lib/init/register-ai-service.d.ts.map +0 -1
  473. package/lib/init/register-ai-service.js +0 -45
  474. package/lib/init/register-ai-service.js.map +0 -1
  475. package/lib/init/register-builtin-tools.d.ts +0 -3
  476. package/lib/init/register-builtin-tools.d.ts.map +0 -1
  477. package/lib/init/register-builtin-tools.js +0 -411
  478. package/lib/init/register-builtin-tools.js.map +0 -1
  479. package/lib/init/register-capability-features.d.ts +0 -2
  480. package/lib/init/register-capability-features.d.ts.map +0 -1
  481. package/lib/init/register-capability-features.js +0 -28
  482. package/lib/init/register-capability-features.js.map +0 -1
  483. package/lib/init/register-collaboration-commands.d.ts +0 -2
  484. package/lib/init/register-collaboration-commands.d.ts.map +0 -1
  485. package/lib/init/register-collaboration-commands.js +0 -110
  486. package/lib/init/register-collaboration-commands.js.map +0 -1
  487. package/lib/init/register-db-models.d.ts +0 -2
  488. package/lib/init/register-db-models.d.ts.map +0 -1
  489. package/lib/init/register-db-models.js +0 -18
  490. package/lib/init/register-db-models.js.map +0 -1
  491. package/lib/init/register-db-upgrade.d.ts +0 -7
  492. package/lib/init/register-db-upgrade.d.ts.map +0 -1
  493. package/lib/init/register-db-upgrade.js +0 -79
  494. package/lib/init/register-db-upgrade.js.map +0 -1
  495. package/lib/init/register-group-session-passive.d.ts +0 -3
  496. package/lib/init/register-group-session-passive.d.ts.map +0 -1
  497. package/lib/init/register-group-session-passive.js +0 -61
  498. package/lib/init/register-group-session-passive.js.map +0 -1
  499. package/lib/init/register-im-segment-filter.d.ts +0 -2
  500. package/lib/init/register-im-segment-filter.d.ts.map +0 -1
  501. package/lib/init/register-im-segment-filter.js +0 -23
  502. package/lib/init/register-im-segment-filter.js.map +0 -1
  503. package/lib/init/register-init-wizard-guardrail.d.ts +0 -2
  504. package/lib/init/register-init-wizard-guardrail.d.ts.map +0 -1
  505. package/lib/init/register-init-wizard-guardrail.js +0 -41
  506. package/lib/init/register-init-wizard-guardrail.js.map +0 -1
  507. package/lib/init/register-introspection-commands.d.ts +0 -3
  508. package/lib/init/register-introspection-commands.d.ts.map +0 -1
  509. package/lib/init/register-introspection-commands.js +0 -107
  510. package/lib/init/register-introspection-commands.js.map +0 -1
  511. package/lib/init/register-management-tools.d.ts +0 -10
  512. package/lib/init/register-management-tools.d.ts.map +0 -1
  513. package/lib/init/register-management-tools.js +0 -42
  514. package/lib/init/register-management-tools.js.map +0 -1
  515. package/lib/init/register-mcp-from-config.d.ts +0 -2
  516. package/lib/init/register-mcp-from-config.d.ts.map +0 -1
  517. package/lib/init/register-mcp-from-config.js +0 -87
  518. package/lib/init/register-mcp-from-config.js.map +0 -1
  519. package/lib/init/register-orchestrator.d.ts +0 -2
  520. package/lib/init/register-orchestrator.d.ts.map +0 -1
  521. package/lib/init/register-orchestrator.js +0 -15
  522. package/lib/init/register-orchestrator.js.map +0 -1
  523. package/lib/init/register-tool-service.d.ts +0 -2
  524. package/lib/init/register-tool-service.d.ts.map +0 -1
  525. package/lib/init/register-tool-service.js +0 -9
  526. package/lib/init/register-tool-service.js.map +0 -1
  527. package/lib/init/shared-refs.d.ts +0 -14
  528. package/lib/init/shared-refs.d.ts.map +0 -1
  529. package/lib/init/shared-refs.js +0 -7
  530. package/lib/init/shared-refs.js.map +0 -1
  531. package/lib/init/types.d.ts +0 -26
  532. package/lib/init/types.d.ts.map +0 -1
  533. package/lib/init/types.js +0 -7
  534. package/lib/init/types.js.map +0 -1
  535. package/lib/init.d.ts +0 -7
  536. package/lib/init.d.ts.map +0 -1
  537. package/lib/init.js +0 -11
  538. package/lib/init.js.map +0 -1
  539. package/lib/schedule-domain/tool-resolver.d.ts +0 -20
  540. package/lib/schedule-domain/tool-resolver.d.ts.map +0 -1
  541. package/lib/schedule-domain/tool-resolver.js +0 -80
  542. package/lib/schedule-domain/tool-resolver.js.map +0 -1
  543. package/lib/schedule-domain/turn-context.d.ts +0 -9
  544. package/lib/schedule-domain/turn-context.d.ts.map +0 -1
  545. package/lib/schedule-domain/turn-context.js +0 -36
  546. package/lib/schedule-domain/turn-context.js.map +0 -1
  547. package/lib/session/agent-session-host-port.d.ts +0 -23
  548. package/lib/session/agent-session-host-port.d.ts.map +0 -1
  549. package/lib/session/agent-session-host-port.js +0 -61
  550. package/lib/session/agent-session-host-port.js.map +0 -1
  551. package/lib/session/http-agent-session-store.d.ts +0 -76
  552. package/lib/session/http-agent-session-store.d.ts.map +0 -1
  553. package/lib/session/http-agent-session-store.js +0 -211
  554. package/lib/session/http-agent-session-store.js.map +0 -1
  555. package/lib/session/http-approval-adapter.d.ts +0 -11
  556. package/lib/session/http-approval-adapter.d.ts.map +0 -1
  557. package/lib/session/http-approval-adapter.js +0 -19
  558. package/lib/session/http-approval-adapter.js.map +0 -1
  559. package/lib/session/http-approval-waiter.d.ts +0 -11
  560. package/lib/session/http-approval-waiter.d.ts.map +0 -1
  561. package/lib/session/http-approval-waiter.js +0 -61
  562. package/lib/session/http-approval-waiter.js.map +0 -1
  563. package/lib/session/http-session-persistence.d.ts +0 -28
  564. package/lib/session/http-session-persistence.d.ts.map +0 -1
  565. package/lib/session/http-session-persistence.js +0 -60
  566. package/lib/session/http-session-persistence.js.map +0 -1
  567. package/lib/session/http-session-sink.d.ts +0 -11
  568. package/lib/session/http-session-sink.d.ts.map +0 -1
  569. package/lib/session/http-session-sink.js +0 -32
  570. package/lib/session/http-session-sink.js.map +0 -1
  571. package/lib/session/http-step-projector.d.ts +0 -16
  572. package/lib/session/http-step-projector.d.ts.map +0 -1
  573. package/lib/session/http-step-projector.js +0 -118
  574. package/lib/session/http-step-projector.js.map +0 -1
  575. package/lib/session/http-turn-runner.d.ts +0 -16
  576. package/lib/session/http-turn-runner.d.ts.map +0 -1
  577. package/lib/session/http-turn-runner.js +0 -57
  578. package/lib/session/http-turn-runner.js.map +0 -1
  579. package/lib/session/park-controller.d.ts +0 -24
  580. package/lib/session/park-controller.d.ts.map +0 -1
  581. package/lib/session/park-controller.js +0 -58
  582. package/lib/session/park-controller.js.map +0 -1
  583. package/lib/session/resolve-approval-port.d.ts +0 -7
  584. package/lib/session/resolve-approval-port.d.ts.map +0 -1
  585. package/lib/session/resolve-approval-port.js +0 -13
  586. package/lib/session/resolve-approval-port.js.map +0 -1
  587. package/lib/session/session-event-log.d.ts +0 -17
  588. package/lib/session/session-event-log.d.ts.map +0 -1
  589. package/lib/session/session-event-log.js +0 -56
  590. package/lib/session/session-event-log.js.map +0 -1
@@ -1,189 +0,0 @@
1
- import { readMentionSegmentTarget, extractEmbeddedAiOutboundJson, parseAiOutboundJson, rewritePlainTextMentions, } from '@zhin.js/core';
2
- import { tryBuildCollaborationOutboundBatches } from './structured-ai-outbound.js';
3
- import { expandOutboundBatchesForLongText, buildAtMessageContent } from './group-message.js';
4
- import { publishOutboundElements } from '../media/media-publisher.js';
5
- import { resolvePeerEndpointInCell } from './collaboration-config.js';
6
- import { stripPlannerPublicMentionsFromSegments, batchHasAtSegment, segmentsMentionEndpoint, } from './collaboration-outbound.js';
7
- /** 剥离正文中的假 @token,避免 JSON 解析失败时误触发 peer。 */
8
- export function stripFakeAtTokens(text) {
9
- return text
10
- .replace(/@[\w:.-]+/g, '')
11
- .replace(/\s{2,}/g, ' ')
12
- .trim();
13
- }
14
- const PLANNER_PIPELINE_ROLES = ['researcher', 'evaluator', 'executor', 'reviewer'];
15
- function batchPlainText(batch) {
16
- return batch
17
- .filter((seg) => seg.type === 'text' && seg.data?.text != null)
18
- .map((seg) => String(seg.data.text).trim())
19
- .filter(Boolean)
20
- .join('\n')
21
- .trim();
22
- }
23
- /** 批次是否为对 peer 的真实 @ 委派。 */
24
- export function isPlannerDelegateBatch(batch, cell, selfEndpointKey, adapter) {
25
- if (!batchHasAtSegment(batch))
26
- return false;
27
- for (const member of cell.members) {
28
- if (member.endpointKey === selfEndpointKey)
29
- continue;
30
- if (segmentsMentionEndpoint(batch, member.endpointKey, adapter, cell))
31
- return true;
32
- }
33
- return false;
34
- }
35
- function resolveRoleCallInProse(text, cell) {
36
- for (const role of PLANNER_PIPELINE_ROLES) {
37
- const member = cell.members.find((m) => m.pipelineRole === role);
38
- if (!member)
39
- continue;
40
- const bold = new RegExp(`\\*\\*${role}\\*\\*[,,::\\s]*(.+?)(?:[。!!]|$)`, 'i');
41
- const plain = new RegExp(`(?:^|[,。\\s])${role}[,,:]\\s*(?!的)(.+?)(?:[。!!]|$)`, 'i');
42
- const hit = text.match(bold) ?? text.match(plain);
43
- if (hit) {
44
- const task = hit[1]?.trim();
45
- return { role, task: task || `请 ${role} 继续处理。` };
46
- }
47
- }
48
- return undefined;
49
- }
50
- function buildDelegateBatch(adapter, endpointKeys, text) {
51
- return buildAtMessageContent(adapter, endpointKeys, text.trim() || '请处理。');
52
- }
53
- function splitProseIntoDelegateBatches(batch, cell, selfEndpointKey, adapter) {
54
- if (isPlannerDelegateBatch(batch, cell, selfEndpointKey, adapter)) {
55
- return [batch];
56
- }
57
- const plain = batchPlainText(batch);
58
- if (!plain)
59
- return [batch];
60
- const embedded = extractEmbeddedAiOutboundJson(plain);
61
- if (embedded?.jsonRaw) {
62
- const payload = parseAiOutboundJson(embedded.jsonRaw);
63
- if (payload?.mentions?.length && payload.text?.trim()) {
64
- const ids = [];
65
- for (const ref of payload.mentions) {
66
- const ep = resolvePeerEndpointInCell(cell, ref);
67
- if (ep && ep !== selfEndpointKey && !ids.includes(ep))
68
- ids.push(ep);
69
- }
70
- if (ids.length) {
71
- const out = [];
72
- if (embedded.prose.trim()) {
73
- out.push([{ type: 'text', data: { text: ` ${embedded.prose.trim()}` } }]);
74
- }
75
- out.push(buildDelegateBatch(adapter, ids, payload.text));
76
- return out;
77
- }
78
- }
79
- }
80
- const rewritten = rewritePlainTextMentions(plain, (ref) => {
81
- const ep = resolvePeerEndpointInCell(cell, ref);
82
- if (!ep || ep === selfEndpointKey)
83
- return undefined;
84
- return ep;
85
- });
86
- if (rewritten?.mentions?.length && rewritten.text?.trim()) {
87
- const ids = rewritten.mentions
88
- .map((ref) => resolvePeerEndpointInCell(cell, ref))
89
- .filter((ep) => Boolean(ep && ep !== selfEndpointKey));
90
- if (ids.length) {
91
- const out = [];
92
- if (rewritten.text.trim()) {
93
- out.push([{ type: 'text', data: { text: ` ${rewritten.text.trim()}` } }]);
94
- }
95
- out.push(buildDelegateBatch(adapter, ids, rewritten.text));
96
- return out;
97
- }
98
- }
99
- const roleCall = resolveRoleCallInProse(plain, cell);
100
- if (roleCall) {
101
- const ep = cell.members.find((m) => m.pipelineRole === roleCall.role)?.endpointKey;
102
- if (ep && ep !== selfEndpointKey) {
103
- const withoutCall = plain
104
- .replace(new RegExp(`\\*\\*${roleCall.role}\\*\\*[^。!!]*`, 'i'), '')
105
- .trim();
106
- const out = [];
107
- if (withoutCall) {
108
- out.push([{ type: 'text', data: { text: ` ${withoutCall}` } }]);
109
- }
110
- out.push(buildDelegateBatch(adapter, [ep], roleCall.task));
111
- return out;
112
- }
113
- }
114
- return [batch];
115
- }
116
- /** Planner 出站 role strategy:拆分委派 @、剥离 self 假 @,不删除真实委派 batch。 */
117
- export function normalizePlannerOutboundBatches(batches, cell, selfEndpointKey, adapter) {
118
- const expanded = [];
119
- for (const batch of batches) {
120
- expanded.push(...splitProseIntoDelegateBatches(batch, cell, selfEndpointKey, adapter));
121
- }
122
- const normalized = [];
123
- for (const batch of expanded) {
124
- if (isPlannerDelegateBatch(batch, cell, selfEndpointKey, adapter)) {
125
- normalized.push(batch);
126
- continue;
127
- }
128
- const stripped = stripPlannerPublicMentionsFromSegments(batch, cell, selfEndpointKey, adapter);
129
- if (stripped.length)
130
- normalized.push(stripped);
131
- }
132
- return normalized;
133
- }
134
- function canonicalizeMentionSegments(batch) {
135
- return batch.map((seg) => {
136
- if (seg.type !== 'at')
137
- return seg;
138
- const target = readMentionSegmentTarget(seg) ?? seg.data?.id ?? seg.data?.qq;
139
- if (!target)
140
- return seg;
141
- return { type: 'mention', data: { target: String(target) } };
142
- });
143
- }
144
- function batchHasMention(batch) {
145
- return batch.some((seg) => seg.type === 'mention' || seg.type === 'at');
146
- }
147
- export async function resolveOutboundBatches(input) {
148
- const { message, elements, inboundContent, cell, endpointKey, adapterView, selfMember, warn, } = input;
149
- const collabBatches = await tryBuildCollaborationOutboundBatches(message, elements, {
150
- inboundContent,
151
- warn,
152
- root: input.root,
153
- outputSchemaRequired: input.outputSchemaRequired,
154
- });
155
- let batches = collabBatches ?? [
156
- await publishOutboundElements(elements, String(message.$adapter)),
157
- ];
158
- if (cell && selfMember?.pipelineRole === 'planner' && adapterView) {
159
- batches = normalizePlannerOutboundBatches(batches, cell, endpointKey, adapterView);
160
- }
161
- batches = batches
162
- .map((batch) => canonicalizeMentionSegments(batch))
163
- .filter((batch) => batch.length > 0);
164
- const batchMeta = batches.map((batch) => ({
165
- peerTriggerExpected: batchHasMention(batch),
166
- }));
167
- if (!batches.length && elements.length) {
168
- const plain = elements
169
- .filter((el) => el.type === 'text')
170
- .map((el) => (el.type === 'text' ? el.content : ''))
171
- .join('\n')
172
- .trim();
173
- if (plain) {
174
- const prose = stripFakeAtTokens(plain);
175
- if (prose) {
176
- batches = [[{ type: 'text', data: { text: prose } }]];
177
- batchMeta.push({ fallback: 'json_parse_failed_strip_at', peerTriggerExpected: false });
178
- warn?.(`outbound JSON parse failed; stripped fake @ tokens, prose only`);
179
- }
180
- }
181
- }
182
- batches = expandOutboundBatchesForLongText(batches);
183
- return {
184
- batches,
185
- batchMeta,
186
- primaryFallback: batchMeta.find((m) => m.fallback)?.fallback,
187
- };
188
- }
189
- //# sourceMappingURL=outbound-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outbound-resolver.js","sourceRoot":"","sources":["../../src/collaboration/outbound-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Peer inbound trigger policy — prevent bot-to-bot chat storms.
3
- */
4
- import { type Message, type Plugin } from '@zhin.js/core';
5
- import type { CollaborationScene, PeerTriggerMode, PeerTriggerResult } from './types.js';
6
- export interface PeerPolicyInput {
7
- message: Message;
8
- cell?: CollaborationScene;
9
- peerMode: PeerTriggerMode;
10
- endpointAtIds: string[];
11
- /** 用于 Endpoint 反查 peer 身份。 */
12
- root?: Plugin;
13
- }
14
- export interface CellAtOwnershipResult {
15
- /** 当前 Endpoint 是否应处理这条入站(Cell 内仅被 @ 的成员响应) */
16
- shouldHandle: boolean;
17
- mentionedEndpointKeys?: string[];
18
- reason?: string;
19
- }
20
- /** 按消息顺序收集 @ 到的 Cell 成员 endpointKey */
21
- export declare function resolveCellAtMentionedEndpointKeys(message: Message, cell: CollaborationScene, root?: Plugin): string[];
22
- /** @deprecated 使用 resolveCellAtMentionedEndpointKeys;保留首个 @ 以兼容旧调用 */
23
- export declare function resolveCellAtWinnerEndpointKey(message: Message, cell: CollaborationScene): string | undefined;
24
- /** 同群多 Bot:仅被 @ 的 Cell 成员响应;未 @ 任何成员时不触发 */
25
- export declare function evaluateCellAtOwnership(message: Message, cell: CollaborationScene | undefined, endpointKey: string, root?: Plugin): CellAtOwnershipResult;
26
- export declare function evaluatePeerTrigger(input: PeerPolicyInput): PeerTriggerResult;
27
- /** 入站是否来自同 Cell 的另一 Endpoint(Bot↔Bot 协作,非人类用户) */
28
- export declare function isInboundFromCollaborationPeer(message: Message, cell: CollaborationScene | undefined, root?: Plugin): boolean;
29
- //# sourceMappingURL=peer-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-policy.d.ts","sourceRoot":"","sources":["../../src/collaboration/peer-policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAmD,MAAM,eAAe,CAAC;AAC3G,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,uCAAuC;AACvC,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,EACxB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,EAAE,CAqBV;AAED,sEAAsE;AACtE,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,GACvB,MAAM,GAAG,SAAS,CAEpB;AAED,4CAA4C;AAC5C,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,qBAAqB,CAuCvB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CAuC7E;AAED,kDAAkD;AAClD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAKT"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Peer inbound trigger policy — prevent bot-to-bot chat storms.
3
- */
4
- import { isAtEndpoint, readMentionSegmentTarget, segment } from '@zhin.js/core';
5
- import { resolveMemberBySender } from './endpoint-identity.js';
6
- function segmentAtUserId(seg) {
7
- return readMentionSegmentTarget(seg);
8
- }
9
- /** 按消息顺序收集 @ 到的 Cell 成员 endpointKey */
10
- export function resolveCellAtMentionedEndpointKeys(message, cell, root) {
11
- const memberIds = new Set(cell.members.map((m) => m.endpointKey));
12
- const ordered = [];
13
- const fromPeer = isInboundFromCollaborationPeer(message, cell, root);
14
- for (const seg of message.$content) {
15
- const uid = segmentAtUserId(seg);
16
- if (uid && memberIds.has(uid) && !ordered.includes(uid)) {
17
- ordered.push(uid);
18
- continue;
19
- }
20
- // Bot 纯文本里的 @endpoint 是「假 @」,不能触发 peer;仅人类入站才做文本兜底。
21
- if (!fromPeer && seg.type === 'text' && seg.data?.text) {
22
- const text = String(seg.data.text);
23
- for (const id of memberIds) {
24
- const re = new RegExp(`@${id.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(?:\\s|$)`);
25
- if (re.test(text) && !ordered.includes(id))
26
- ordered.push(id);
27
- }
28
- }
29
- }
30
- return ordered;
31
- }
32
- /** @deprecated 使用 resolveCellAtMentionedEndpointKeys;保留首个 @ 以兼容旧调用 */
33
- export function resolveCellAtWinnerEndpointKey(message, cell) {
34
- return resolveCellAtMentionedEndpointKeys(message, cell)[0];
35
- }
36
- /** 同群多 Bot:仅被 @ 的 Cell 成员响应;未 @ 任何成员时不触发 */
37
- export function evaluateCellAtOwnership(message, cell, endpointKey, root) {
38
- if (!cell)
39
- return { shouldHandle: true };
40
- const mentioned = resolveCellAtMentionedEndpointKeys(message, cell, root);
41
- // Delegation ownership is owned by the OrchestrationKernel (ADR 0027):
42
- // active group_mention tasks, not cell.pipelineState. The inbound pipeline
43
- // resolves handback against kernel tasks directly, so this gate is purely
44
- // mention-based.
45
- if (mentioned.length === 0) {
46
- return {
47
- shouldHandle: false,
48
- mentionedEndpointKeys: mentioned,
49
- reason: 'cell_mention_required',
50
- };
51
- }
52
- // Bot 编排消息 @ 多个成员时,只认消息序第一个(防 Planner @all 引发全员响应)
53
- if (mentioned.length > 1 && isInboundFromCollaborationPeer(message, cell, root)) {
54
- const winner = mentioned[0];
55
- if (endpointKey !== winner) {
56
- return {
57
- shouldHandle: false,
58
- mentionedEndpointKeys: mentioned,
59
- reason: 'peer_multi_mention_first_only',
60
- };
61
- }
62
- return { shouldHandle: true, mentionedEndpointKeys: mentioned };
63
- }
64
- if (mentioned.includes(endpointKey)) {
65
- return { shouldHandle: true, mentionedEndpointKeys: mentioned };
66
- }
67
- return {
68
- shouldHandle: false,
69
- mentionedEndpointKeys: mentioned,
70
- reason: 'cell_not_mentioned',
71
- };
72
- }
73
- export function evaluatePeerTrigger(input) {
74
- const { message, cell, peerMode, endpointAtIds, root } = input;
75
- if (!cell) {
76
- return { isPeer: false, shouldTrigger: true };
77
- }
78
- const senderId = String(message.$sender?.id ?? '');
79
- const member = resolveMemberBySender(cell, senderId, root);
80
- if (!member) {
81
- return { isPeer: false, shouldTrigger: true };
82
- }
83
- if (peerMode === 'off') {
84
- return { isPeer: true, peerEndpointKey: member.endpointKey, shouldTrigger: true };
85
- }
86
- if (peerMode === 'mention-only') {
87
- const atSelf = isAtEndpoint(message, endpointAtIds);
88
- // 协作 Cell:peer 仅认真实 at segment,正文假 @ 不触发(与 harness 委派一致)。
89
- if (cell) {
90
- return {
91
- isPeer: true,
92
- peerEndpointKey: member.endpointKey,
93
- shouldTrigger: atSelf,
94
- reason: atSelf ? 'peer_mentioned' : 'peer_mention_required',
95
- };
96
- }
97
- const raw = segment.raw(message.$content).trim();
98
- const atInText = endpointAtIds.some((id) => raw.includes(`@${id}`));
99
- const shouldTrigger = atSelf || atInText;
100
- return {
101
- isPeer: true,
102
- peerEndpointKey: member.endpointKey,
103
- shouldTrigger,
104
- reason: shouldTrigger ? 'peer_mentioned' : 'peer_mention_required',
105
- };
106
- }
107
- return { isPeer: true, peerEndpointKey: member.endpointKey, shouldTrigger: true };
108
- }
109
- /** 入站是否来自同 Cell 的另一 Endpoint(Bot↔Bot 协作,非人类用户) */
110
- export function isInboundFromCollaborationPeer(message, cell, root) {
111
- if (!cell)
112
- return false;
113
- const senderId = String(message.$sender?.id ?? '');
114
- if (!senderId)
115
- return false;
116
- return !!resolveMemberBySender(cell, senderId, root);
117
- }
118
- //# sourceMappingURL=peer-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-policy.js","sourceRoot":"","sources":["../../src/collaboration/peer-policy.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * 协作群 Agent 会话 key:按 pipeline run 隔离,避免 reset 后旧 IM 上下文污染新 run。
3
- */
4
- import { type Message } from '@zhin.js/core';
5
- import type { CollaborationScene } from './types.js';
6
- /**
7
- * Agent turn 级 session key SSOT(IM transport + 可选 pipeline run 隔离)。
8
- * passive write / @ drain / auto-continue depth / persist 须共用此函数。
9
- */
10
- export declare function resolveAgentTurnSessionKey(message: Message, cell?: CollaborationScene): string;
11
- /** transport session + 可选 pipeline run 前缀(同 endpoint 不同 run 独立 agent_messages)。 */
12
- export declare function resolveAgentSessionKeyForTurn(message: Message, cell?: CollaborationScene): string;
13
- /** legacy pipeline run 解析(支持前缀);新编排请用 missionRunId / orchestration_status。 */
14
- export declare function resolveArtifactRunId(runRef: string | undefined, cell: CollaborationScene): {
15
- ok: true;
16
- runId: string;
17
- } | {
18
- ok: false;
19
- error: string;
20
- };
21
- //# sourceMappingURL=resolve-agent-session-key.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-agent-session-key.d.ts","sourceRoot":"","sources":["../../src/collaboration/resolve-agent-session-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBrD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,kBAAkB,GACxB,MAAM,CAYR;AAED,mFAAmF;AACnF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,kBAAkB,GACxB,MAAM,CAER;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,kBAAkB,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAc5D"}
@@ -1,61 +0,0 @@
1
- /**
2
- * 协作群 Agent 会话 key:按 pipeline run 隔离,避免 reset 后旧 IM 上下文污染新 run。
3
- */
4
- import { resolveIMSessionIdFromMessage } from '@zhin.js/core';
5
- import { resolveRunIdRef } from '../aop/pipeline/pipeline-flow.js';
6
- import { readCollaborationTurnSnapshot } from './collaboration-turn-snapshot.js';
7
- import { resolveCollaborationSceneForMessage } from './collaboration-context.js';
8
- import { findActiveDelegation } from './delegation-state.js';
9
- function pipelinePrefixedSessionKey(transport, bindRun) {
10
- return `pipeline:${bindRun.slice(0, 8)}:${transport}`;
11
- }
12
- function resolveBindRunFromCell(cell, endpointKey) {
13
- const runId = cell.pipelineState?.runId;
14
- if (!runId)
15
- return undefined;
16
- const delegation = findActiveDelegation(cell, endpointKey);
17
- return delegation?.runId ?? runId;
18
- }
19
- /**
20
- * Agent turn 级 session key SSOT(IM transport + 可选 pipeline run 隔离)。
21
- * passive write / @ drain / auto-continue depth / persist 须共用此函数。
22
- */
23
- export function resolveAgentTurnSessionKey(message, cell) {
24
- const transport = resolveIMSessionIdFromMessage(message);
25
- const snap = readCollaborationTurnSnapshot(message);
26
- if (snap?.runId) {
27
- const bindRun = snap.delegationRunId ?? snap.runId;
28
- return pipelinePrefixedSessionKey(transport, bindRun);
29
- }
30
- const resolvedCell = cell ?? resolveCollaborationSceneForMessage(message);
31
- if (!resolvedCell)
32
- return transport;
33
- const bindRun = resolveBindRunFromCell(resolvedCell, String(message.$endpoint ?? ''));
34
- if (!bindRun)
35
- return transport;
36
- return pipelinePrefixedSessionKey(transport, bindRun);
37
- }
38
- /** transport session + 可选 pipeline run 前缀(同 endpoint 不同 run 独立 agent_messages)。 */
39
- export function resolveAgentSessionKeyForTurn(message, cell) {
40
- return resolveAgentTurnSessionKey(message, cell);
41
- }
42
- /** legacy pipeline run 解析(支持前缀);新编排请用 missionRunId / orchestration_status。 */
43
- export function resolveArtifactRunId(runRef, cell) {
44
- const state = cell.pipelineState;
45
- if (!state)
46
- return { ok: false, error: 'pipeline 未初始化' };
47
- if (!runRef?.trim())
48
- return { ok: true, runId: state.runId };
49
- const resolved = resolveRunIdRef(runRef.trim(), state);
50
- if (resolved)
51
- return { ok: true, runId: resolved };
52
- if (state.runHistory?.some((h) => h.runId === runRef || h.runId.startsWith(runRef))) {
53
- const match = state.runHistory.find((h) => h.runId === runRef || h.runId.startsWith(runRef));
54
- return { ok: true, runId: match.runId };
55
- }
56
- return {
57
- ok: false,
58
- error: `runId ${runRef} 未找到;legacy pipeline 已弃用,请用 orchestration_status`,
59
- };
60
- }
61
- //# sourceMappingURL=resolve-agent-session-key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-agent-session-key.js","sourceRoot":"","sources":["../../src/collaboration/resolve-agent-session-key.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Plugin Runtime collaboration inbound gate (no host Plugin / ALS).
3
- * Peer/at ownership + handback + peer dispatch; local turns stay with Agent Host.
4
- */
5
- import type { Message } from '@zhin.js/core';
6
- import type { CollaborationScene, PeerTriggerMode, TurnPlan } from './types.js';
7
- import type { AgentBindingConfig } from '../config/types.js';
8
- export type RuntimeCollaborationInboundResult = {
9
- action: 'skip';
10
- reason: string;
11
- } | {
12
- action: 'done';
13
- reason: string;
14
- } | {
15
- action: 'continue';
16
- cell?: CollaborationScene;
17
- turnPlan: TurnPlan;
18
- };
19
- export interface RuntimeCollaborationInboundInput {
20
- message: Message;
21
- content: string;
22
- peerMode: PeerTriggerMode;
23
- /** Platform @ ids for this endpoint (optional; empty = text/@ segment only). */
24
- endpointAtIds?: string[];
25
- discoveredAgentNames?: Set<string>;
26
- agents?: Record<string, AgentBindingConfig>;
27
- replyAi: (payload: unknown) => Promise<unknown>;
28
- logger: {
29
- debug: (...args: unknown[]) => void;
30
- info: (...args: unknown[]) => void;
31
- warn: (...args: unknown[]) => void;
32
- };
33
- }
34
- export declare function applyRuntimeCollaborationInbound(input: RuntimeCollaborationInboundInput): Promise<RuntimeCollaborationInboundResult>;
35
- //# sourceMappingURL=runtime-inbound-gate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-inbound-gate.d.ts","sourceRoot":"","sources":["../../src/collaboration/runtime-inbound-gate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQ7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,iCAAiC,GACzC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACpC,CAAC;CACH;AAED,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,iCAAiC,CAAC,CAsH5C"}
@@ -1,105 +0,0 @@
1
- import { formatCompact } from '@zhin.js/logger';
2
- import { findCellForInbound } from './collaboration-config.js';
3
- import { evaluateCellAtOwnership, evaluatePeerTrigger, isInboundFromCollaborationPeer } from './peer-policy.js';
4
- import { tryHandlePeerInboundHandback } from './inbound-peer-handback.js';
5
- import { buildTurnPlan } from './turn-plan-resolver.js';
6
- import { dispatchPeerTask } from './collaboration-dispatch.js';
7
- import { getCollaborationSceneService } from './scene-service.js';
8
- export async function applyRuntimeCollaborationInbound(input) {
9
- const { message, content, peerMode, endpointAtIds = [], discoveredAgentNames = new Set(), agents = {}, replyAi, logger, } = input;
10
- const endpointKey = String(message.$endpoint ?? '');
11
- const cellService = getCollaborationSceneService();
12
- const scope = message.$channel?.type || 'private';
13
- const sceneId = message.$channel?.id ?? '';
14
- let cell = (scope === 'group' || scope === 'channel') && sceneId !== ''
15
- ? findCellForInbound(cellService.listScenes(), String(message.$adapter), String(sceneId), endpointKey)
16
- : undefined;
17
- if (cell) {
18
- const fresh = await cellService.getSceneFresh(cell.id);
19
- if (fresh)
20
- cell = fresh;
21
- }
22
- const peerResult = evaluatePeerTrigger({
23
- message,
24
- cell,
25
- peerMode,
26
- endpointAtIds,
27
- });
28
- if (peerResult.isPeer && !peerResult.shouldTrigger) {
29
- logger.debug(formatCompact({
30
- op: 'skip_peer',
31
- peer: peerResult.peerEndpointKey,
32
- reason: peerResult.reason,
33
- }));
34
- return { action: 'skip', reason: peerResult.reason ?? 'peer_mention_required' };
35
- }
36
- const atOwnership = evaluateCellAtOwnership(message, cell, endpointKey);
37
- if (!atOwnership.shouldHandle) {
38
- logger.debug(formatCompact({
39
- op: 'skip_at_filter',
40
- reason: atOwnership.reason,
41
- endpoint: endpointKey,
42
- }));
43
- return { action: 'skip', reason: atOwnership.reason ?? 'cell_at_filter' };
44
- }
45
- const peerInbound = isInboundFromCollaborationPeer(message, cell);
46
- if (peerInbound && cell && peerResult.peerEndpointKey) {
47
- const handbackDone = await tryHandlePeerInboundHandback({
48
- message,
49
- cell,
50
- peerEndpointKey: peerResult.peerEndpointKey,
51
- replyAi,
52
- logger,
53
- });
54
- if (handbackDone) {
55
- return { action: 'done', reason: 'peer_handback' };
56
- }
57
- }
58
- const turnPlan = buildTurnPlan({
59
- message,
60
- contentText: content,
61
- endpointKey,
62
- endpointKeys: endpointAtIds,
63
- cells: cellService.listScenes(),
64
- agents,
65
- discoveredAgentNames,
66
- });
67
- const peerTarget = turnPlan.delegation?.delegateToPeer ?? turnPlan.delegation?.targetEndpointKey;
68
- if (peerTarget && peerTarget !== endpointKey && cell) {
69
- const delegateText = content.trim() || '请处理上述协作请求。';
70
- try {
71
- const dispatched = await dispatchPeerTask({
72
- cell,
73
- fromEndpointKey: endpointKey,
74
- toEndpointKey: peerTarget,
75
- goal: delegateText,
76
- handlerProfile: turnPlan.handlerProfile,
77
- message,
78
- });
79
- if (dispatched.task.status === 'completed'
80
- || dispatched.task.status === 'waiting_result'
81
- || dispatched.task.status === 'running') {
82
- logger.info(formatCompact({
83
- op: 'peer_dispatch',
84
- task: dispatched.taskId,
85
- from: endpointKey,
86
- to: peerTarget,
87
- }));
88
- return { action: 'done', reason: 'peer_dispatch' };
89
- }
90
- logger.warn(formatCompact({
91
- op: 'peer_dispatch_failed',
92
- task: dispatched.taskId,
93
- error: dispatched.task.error,
94
- }));
95
- }
96
- catch (err) {
97
- logger.warn(formatCompact({
98
- op: 'peer_dispatch_failed',
99
- error: err instanceof Error ? err.message : String(err),
100
- }));
101
- }
102
- }
103
- return { action: 'continue', cell, turnPlan };
104
- }
105
- //# sourceMappingURL=runtime-inbound-gate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-inbound-gate.js","sourceRoot":"","sources":["../../src/collaboration/runtime-inbound-gate.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * CellContext session key — cross-endpoint coordination projection layer.
3
- * Does not replace transport session keys (per ADR 0023 D4).
4
- */
5
- import type { IMSceneKind } from '@zhin.js/core';
6
- export declare function resolveCollaborationSceneContextKey(adapter: string, sceneId: string): string;
7
- export declare function resolveCollaborationSceneContextKeyFromMessage(message: {
8
- $adapter?: string;
9
- $channel?: {
10
- type?: IMSceneKind;
11
- id?: string;
12
- };
13
- $sender?: {
14
- id?: string;
15
- };
16
- }): string | undefined;
17
- //# sourceMappingURL=scene-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene-context.d.ts","sourceRoot":"","sources":["../../src/collaboration/scene-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK5F;AAED,wBAAgB,8CAA8C,CAAC,OAAO,EAAE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B,GAAG,MAAM,GAAG,SAAS,CAMrB"}