@zhin.js/agent 1.1.36 → 1.1.39

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 (1287) hide show
  1. package/lib/activity-feedback/adapter-integration.d.ts +0 -1
  2. package/lib/activity-feedback/adapter-integration.js.map +1 -1
  3. package/lib/activity-feedback/config-resolver.d.ts +0 -1
  4. package/lib/activity-feedback/config-resolver.js.map +1 -1
  5. package/lib/activity-feedback/event-context.d.ts +0 -1
  6. package/lib/activity-feedback/event-context.js.map +1 -1
  7. package/lib/activity-feedback/index.d.ts +0 -1
  8. package/lib/activity-feedback/index.js.map +1 -1
  9. package/lib/activity-feedback/manager.d.ts +0 -1
  10. package/lib/activity-feedback/manager.js.map +1 -1
  11. package/lib/activity-feedback/schedule-guard.d.ts +0 -1
  12. package/lib/activity-feedback/schedule-guard.js.map +1 -1
  13. package/lib/activity-feedback/subagent-prefix.d.ts +0 -1
  14. package/lib/activity-feedback/subagent-prefix.js.map +1 -1
  15. package/lib/activity-feedback/turn-event-projector.d.ts +0 -1
  16. package/lib/activity-feedback/turn-event-projector.js.map +1 -1
  17. package/lib/activity-feedback/types.d.ts +0 -1
  18. package/lib/activity-feedback/types.js.map +1 -1
  19. package/lib/ai-event-bus.d.ts +0 -1
  20. package/lib/ai-event-bus.js.map +1 -1
  21. package/lib/ai-event-contract.d.ts +0 -1
  22. package/lib/ai-event-contract.js.map +1 -1
  23. package/lib/ai-event-subscriber.d.ts +0 -1
  24. package/lib/ai-event-subscriber.js.map +1 -1
  25. package/lib/ai-hook-runtime-bus.d.ts +0 -1
  26. package/lib/ai-hook-runtime-bus.js.map +1 -1
  27. package/lib/assistant/bootstrap-assistant-home.d.ts +0 -1
  28. package/lib/assistant/bootstrap-assistant-home.js.map +1 -1
  29. package/lib/assistant/config.d.ts +0 -1
  30. package/lib/assistant/config.js.map +1 -1
  31. package/lib/assistant/deliver-schedule-to-adapter.d.ts +0 -1
  32. package/lib/assistant/deliver-schedule-to-adapter.js.map +1 -1
  33. package/lib/assistant/domains/ha-home-backend.d.ts +0 -1
  34. package/lib/assistant/domains/ha-home-backend.js.map +1 -1
  35. package/lib/assistant/domains/ha-ws-transport.d.ts +0 -1
  36. package/lib/assistant/domains/ha-ws-transport.js.map +1 -1
  37. package/lib/assistant/domains/home-entity.d.ts +0 -1
  38. package/lib/assistant/domains/home-entity.js.map +1 -1
  39. package/lib/assistant/domains/home-state-watch.d.ts +0 -1
  40. package/lib/assistant/domains/home-state-watch.js.map +1 -1
  41. package/lib/assistant/event-ingress.d.ts +0 -1
  42. package/lib/assistant/event-ingress.js.map +1 -1
  43. package/lib/assistant/event-types.d.ts +0 -1
  44. package/lib/assistant/event-types.js.map +1 -1
  45. package/lib/assistant/home-config.d.ts +0 -1
  46. package/lib/assistant/home-config.js.map +1 -1
  47. package/lib/assistant/home-facade.d.ts +0 -1
  48. package/lib/assistant/home-facade.js.map +1 -1
  49. package/lib/assistant/home-mcp-bridge.d.ts +0 -1
  50. package/lib/assistant/home-mcp-bridge.js.map +1 -1
  51. package/lib/assistant/home-policy.d.ts +0 -1
  52. package/lib/assistant/home-policy.js.map +1 -1
  53. package/lib/assistant/home-tools.d.ts +0 -1
  54. package/lib/assistant/home-tools.js.map +1 -1
  55. package/lib/assistant/index.d.ts +0 -1
  56. package/lib/assistant/index.js.map +1 -1
  57. package/lib/assistant/job-creator.d.ts +0 -1
  58. package/lib/assistant/job-creator.js.map +1 -1
  59. package/lib/assistant/job-engine.d.ts +5 -1
  60. package/lib/assistant/job-engine.js +20 -1
  61. package/lib/assistant/job-engine.js.map +1 -1
  62. package/lib/assistant/job-scheduler.d.ts +0 -1
  63. package/lib/assistant/job-scheduler.js.map +1 -1
  64. package/lib/assistant/job-store.d.ts +0 -1
  65. package/lib/assistant/job-store.js.map +1 -1
  66. package/lib/assistant/job-utils.d.ts +0 -1
  67. package/lib/assistant/job-utils.js.map +1 -1
  68. package/lib/assistant/job-worker.d.ts +0 -1
  69. package/lib/assistant/job-worker.js.map +1 -1
  70. package/lib/assistant/notification-router.d.ts +0 -1
  71. package/lib/assistant/notification-router.js.map +1 -1
  72. package/lib/assistant/profile-loader.d.ts +0 -1
  73. package/lib/assistant/profile-loader.js.map +1 -1
  74. package/lib/assistant/profile-types.d.ts +0 -1
  75. package/lib/assistant/profile-types.js.map +1 -1
  76. package/lib/assistant/runtime-contract.d.ts +0 -1
  77. package/lib/assistant/runtime-contract.js.map +1 -1
  78. package/lib/assistant/schedule-execution.d.ts +0 -1
  79. package/lib/assistant/schedule-execution.js.map +1 -1
  80. package/lib/assistant/schedule-job-service.d.ts +0 -1
  81. package/lib/assistant/schedule-job-service.js.map +1 -1
  82. package/lib/assistant/schedule-skills.d.ts +0 -1
  83. package/lib/assistant/schedule-skills.js.map +1 -1
  84. package/lib/assistant/types.d.ts +0 -1
  85. package/lib/assistant/types.js.map +1 -1
  86. package/lib/authoring/bridge.d.ts +0 -1
  87. package/lib/authoring/bridge.js.map +1 -1
  88. package/lib/authoring/define-eval.d.ts +0 -1
  89. package/lib/authoring/define-eval.js.map +1 -1
  90. package/lib/authoring/define-hook.d.ts +0 -1
  91. package/lib/authoring/define-hook.js.map +1 -1
  92. package/lib/authoring/define-skill.d.ts +0 -1
  93. package/lib/authoring/define-skill.js.map +1 -1
  94. package/lib/authoring/disable-tool.d.ts +0 -1
  95. package/lib/authoring/disable-tool.js.map +1 -1
  96. package/lib/authoring/entries/evals.d.ts +0 -1
  97. package/lib/authoring/entries/evals.js.map +1 -1
  98. package/lib/authoring/entries/hooks.d.ts +0 -1
  99. package/lib/authoring/entries/hooks.js.map +1 -1
  100. package/lib/authoring/entries/skills.d.ts +0 -1
  101. package/lib/authoring/entries/skills.js.map +1 -1
  102. package/lib/authoring/index.d.ts +0 -1
  103. package/lib/authoring/index.js.map +1 -1
  104. package/lib/authoring/types.d.ts +0 -1
  105. package/lib/authoring/types.js.map +1 -1
  106. package/lib/bootstrap.d.ts +0 -1
  107. package/lib/bootstrap.js.map +1 -1
  108. package/lib/builtins/builtin-tool-service.d.ts +0 -1
  109. package/lib/builtins/builtin-tool-service.js.map +1 -1
  110. package/lib/common-adapter-tools.d.ts +0 -1
  111. package/lib/common-adapter-tools.js.map +1 -1
  112. package/lib/config/agent-binding-registry.d.ts +0 -1
  113. package/lib/config/agent-binding-registry.js.map +1 -1
  114. package/lib/config/agent-bindings.d.ts +0 -1
  115. package/lib/config/agent-bindings.js.map +1 -1
  116. package/lib/config/agent-interfaces.d.ts +0 -1
  117. package/lib/config/agent-interfaces.js.map +1 -1
  118. package/lib/config/deprecated-agent-binding-keys.d.ts +0 -1
  119. package/lib/config/deprecated-agent-binding-keys.js.map +1 -1
  120. package/lib/config/deprecated-agent-keys.d.ts +0 -1
  121. package/lib/config/deprecated-agent-keys.js.map +1 -1
  122. package/lib/config/fix-ai-config.d.ts +0 -1
  123. package/lib/config/fix-ai-config.js.map +1 -1
  124. package/lib/config/index.d.ts +0 -1
  125. package/lib/config/index.js.map +1 -1
  126. package/lib/config/keyword-triggers.d.ts +0 -1
  127. package/lib/config/keyword-triggers.js.map +1 -1
  128. package/lib/config/model-harness-runtime.d.ts +0 -1
  129. package/lib/config/model-harness-runtime.js.map +1 -1
  130. package/lib/config/model-harness.d.ts +0 -1
  131. package/lib/config/model-harness.js.map +1 -1
  132. package/lib/config/normalize-ai-config.d.ts +0 -1
  133. package/lib/config/normalize-ai-config.js.map +1 -1
  134. package/lib/config/perception-config.d.ts +0 -1
  135. package/lib/config/perception-config.js.map +1 -1
  136. package/lib/config/provider-instance.d.ts +0 -1
  137. package/lib/config/provider-instance.js.map +1 -1
  138. package/lib/config/resolve-five-agent-binding.d.ts +0 -1
  139. package/lib/config/resolve-five-agent-binding.js.map +1 -1
  140. package/lib/config/types.d.ts +0 -1
  141. package/lib/config/types.js.map +1 -1
  142. package/lib/config/validate-ai-config.d.ts +0 -1
  143. package/lib/config/validate-ai-config.js.map +1 -1
  144. package/lib/config/zhin-agent-config.d.ts +0 -1
  145. package/lib/config/zhin-agent-config.js.map +1 -1
  146. package/lib/config/zhin-agent-constants.d.ts +0 -1
  147. package/lib/config/zhin-agent-constants.js.map +1 -1
  148. package/lib/config/zhin-agent-defaults.d.ts +0 -1
  149. package/lib/config/zhin-agent-defaults.js +1 -1
  150. package/lib/config/zhin-agent-defaults.js.map +1 -1
  151. package/lib/config/zhin-agent-dependencies.d.ts +0 -1
  152. package/lib/config/zhin-agent-dependencies.js.map +1 -1
  153. package/lib/config/zhin-agent-runtime.d.ts +0 -1
  154. package/lib/config/zhin-agent-runtime.js.map +1 -1
  155. package/lib/context/agents-instruction.d.ts +0 -1
  156. package/lib/context/agents-instruction.js.map +1 -1
  157. package/lib/context/context-system.d.ts +0 -1
  158. package/lib/context/context-system.js.map +1 -1
  159. package/lib/context/context-tail-limit.d.ts +0 -1
  160. package/lib/context/context-tail-limit.js.map +1 -1
  161. package/lib/context/contracts.d.ts +0 -1
  162. package/lib/context/contracts.js.map +1 -1
  163. package/lib/context/default-builders.d.ts +0 -1
  164. package/lib/context/default-builders.js.map +1 -1
  165. package/lib/context/envelope-parts.d.ts +0 -1
  166. package/lib/context/envelope-parts.js.map +1 -1
  167. package/lib/context/im-turn-context-adapter.d.ts +0 -1
  168. package/lib/context/im-turn-context-adapter.js.map +1 -1
  169. package/lib/context/index.d.ts +1 -2
  170. package/lib/context/index.js +1 -1
  171. package/lib/context/index.js.map +1 -1
  172. package/lib/context/model-resolver.d.ts +0 -1
  173. package/lib/context/model-resolver.js.map +1 -1
  174. package/lib/context/turn-envelope.d.ts +3 -2
  175. package/lib/context/turn-envelope.js +6 -0
  176. package/lib/context/turn-envelope.js.map +1 -1
  177. package/lib/context/turn-user-message.d.ts +0 -1
  178. package/lib/context/turn-user-message.js.map +1 -1
  179. package/lib/core/agent-core-run.d.ts +3 -1
  180. package/lib/core/agent-core-run.js +40 -36
  181. package/lib/core/agent-core-run.js.map +1 -1
  182. package/lib/core/agent-core.d.ts +0 -1
  183. package/lib/core/agent-core.js.map +1 -1
  184. package/lib/core/agent-loop-standalone.d.ts +0 -1
  185. package/lib/core/agent-loop-standalone.js.map +1 -1
  186. package/lib/core/agent-loop-turn.d.ts +0 -1
  187. package/lib/core/agent-loop-turn.js.map +1 -1
  188. package/lib/core/agent-run-shared.d.ts +0 -1
  189. package/lib/core/agent-run-shared.js.map +1 -1
  190. package/lib/core/compose-deps.d.ts +0 -1
  191. package/lib/core/compose-deps.js.map +1 -1
  192. package/lib/core/contracts.d.ts +0 -1
  193. package/lib/core/contracts.js.map +1 -1
  194. package/lib/core/exhausted-turn-reply.d.ts +0 -1
  195. package/lib/core/exhausted-turn-reply.js.map +1 -1
  196. package/lib/core/exploration-budget.d.ts +0 -1
  197. package/lib/core/exploration-budget.js.map +1 -1
  198. package/lib/core/index.d.ts +0 -1
  199. package/lib/core/index.js.map +1 -1
  200. package/lib/core/missing-tool-resolver.d.ts +0 -1
  201. package/lib/core/missing-tool-resolver.js.map +1 -1
  202. package/lib/core/progress-reporter.d.ts +0 -1
  203. package/lib/core/progress-reporter.js.map +1 -1
  204. package/lib/core/spawn-delegation.d.ts +0 -1
  205. package/lib/core/spawn-delegation.js.map +1 -1
  206. package/lib/core/structured-reply-recovery.d.ts +18 -3
  207. package/lib/core/structured-reply-recovery.js +28 -7
  208. package/lib/core/structured-reply-recovery.js.map +1 -1
  209. package/lib/core/text-sanitize.d.ts +0 -1
  210. package/lib/core/text-sanitize.js.map +1 -1
  211. package/lib/core/tool-calls-user-format.d.ts +0 -1
  212. package/lib/core/tool-calls-user-format.js.map +1 -1
  213. package/lib/core/tool-execution-authority.d.ts +0 -1
  214. package/lib/core/tool-execution-authority.js.map +1 -1
  215. package/lib/core/turn-completion-usage.d.ts +0 -1
  216. package/lib/core/turn-completion-usage.js.map +1 -1
  217. package/lib/core/turn-event-mapper.d.ts +0 -1
  218. package/lib/core/turn-event-mapper.js.map +1 -1
  219. package/lib/core/turn-progress.d.ts +0 -1
  220. package/lib/core/turn-progress.js.map +1 -1
  221. package/lib/create-agent-session.d.ts +0 -1
  222. package/lib/create-agent-session.js.map +1 -1
  223. package/lib/decision/approval-judgment.d.ts +0 -1
  224. package/lib/decision/approval-judgment.js.map +1 -1
  225. package/lib/decision/approval.d.ts +0 -1
  226. package/lib/decision/approval.js.map +1 -1
  227. package/lib/decision/config.d.ts +0 -1
  228. package/lib/decision/config.js.map +1 -1
  229. package/lib/decision/index.d.ts +0 -1
  230. package/lib/decision/index.js.map +1 -1
  231. package/lib/decision/rank.d.ts +0 -1
  232. package/lib/decision/rank.js.map +1 -1
  233. package/lib/decision/retrieval.d.ts +0 -1
  234. package/lib/decision/retrieval.js.map +1 -1
  235. package/lib/decision/types.d.ts +0 -1
  236. package/lib/decision/types.js.map +1 -1
  237. package/lib/deferred-worker-runner.d.ts +0 -1
  238. package/lib/deferred-worker-runner.js.map +1 -1
  239. package/lib/deferred-worker-tool-load.d.ts +0 -1
  240. package/lib/deferred-worker-tool-load.js.map +1 -1
  241. package/lib/detached-task/index.d.ts +0 -1
  242. package/lib/detached-task/index.js.map +1 -1
  243. package/lib/detached-task/interjection.d.ts +0 -1
  244. package/lib/detached-task/interjection.js.map +1 -1
  245. package/lib/detached-task/runner.d.ts +0 -1
  246. package/lib/detached-task/runner.js.map +1 -1
  247. package/lib/detached-task/store.d.ts +0 -1
  248. package/lib/detached-task/store.js.map +1 -1
  249. package/lib/detached-task/token.d.ts +0 -1
  250. package/lib/detached-task/token.js.map +1 -1
  251. package/lib/detached-task/types.d.ts +0 -1
  252. package/lib/detached-task/types.js.map +1 -1
  253. package/lib/discovery/agent-surface-info.d.ts +0 -1
  254. package/lib/discovery/agent-surface-info.js.map +1 -1
  255. package/lib/discovery/agent-surface.d.ts +0 -1
  256. package/lib/discovery/agent-surface.js.map +1 -1
  257. package/lib/discovery/agents.d.ts +0 -1
  258. package/lib/discovery/agents.js.map +1 -1
  259. package/lib/discovery/utils.d.ts +0 -1
  260. package/lib/discovery/utils.js.map +1 -1
  261. package/lib/event/agent-stream-bus.d.ts +0 -1
  262. package/lib/event/agent-stream-bus.js.map +1 -1
  263. package/lib/event/agent-stream-hooks.d.ts +0 -1
  264. package/lib/event/agent-stream-hooks.js.map +1 -1
  265. package/lib/event/ai-event-bus.d.ts +0 -1
  266. package/lib/event/ai-event-bus.js.map +1 -1
  267. package/lib/event/contracts.d.ts +0 -1
  268. package/lib/event/contracts.js.map +1 -1
  269. package/lib/event/event-emitter.d.ts +0 -1
  270. package/lib/event/event-emitter.js.map +1 -1
  271. package/lib/event/event-system.d.ts +0 -1
  272. package/lib/event/event-system.js.map +1 -1
  273. package/lib/event/filtering-middleware.d.ts +0 -1
  274. package/lib/event/filtering-middleware.js.map +1 -1
  275. package/lib/event/hook-stream-sink.d.ts +0 -1
  276. package/lib/event/hook-stream-sink.js.map +1 -1
  277. package/lib/event/index.d.ts +0 -1
  278. package/lib/event/index.js.map +1 -1
  279. package/lib/event/logging-middleware.d.ts +0 -1
  280. package/lib/event/logging-middleware.js.map +1 -1
  281. package/lib/event/publish-agent-stream.d.ts +0 -1
  282. package/lib/event/publish-agent-stream.js.map +1 -1
  283. package/lib/event/session-events.d.ts +0 -1
  284. package/lib/event/session-events.js.map +1 -1
  285. package/lib/event/turn-event.d.ts +0 -1
  286. package/lib/event/turn-event.js.map +1 -1
  287. package/lib/event/turn-to-agent-stream.d.ts +0 -1
  288. package/lib/event/turn-to-agent-stream.js.map +1 -1
  289. package/lib/index.d.ts +4 -5
  290. package/lib/index.js +2 -2
  291. package/lib/index.js.map +1 -1
  292. package/lib/init/activate-ai-database-storage.d.ts +0 -1
  293. package/lib/init/activate-ai-database-storage.js.map +1 -1
  294. package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
  295. package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
  296. package/lib/init/configure-zhin-agent.d.ts +0 -1
  297. package/lib/init/configure-zhin-agent.js.map +1 -1
  298. package/lib/init/define-ai-database-models.d.ts +0 -1
  299. package/lib/init/define-ai-database-models.js.map +1 -1
  300. package/lib/init/dispose-zhin-agent.d.ts +0 -1
  301. package/lib/init/dispose-zhin-agent.js.map +1 -1
  302. package/lib/init/introspection-output.d.ts +0 -1
  303. package/lib/init/introspection-output.js.map +1 -1
  304. package/lib/init/runtime-management-commands.d.ts +0 -1
  305. package/lib/init/runtime-management-commands.js.map +1 -1
  306. package/lib/interaction/index.d.ts +0 -1
  307. package/lib/interaction/index.js.map +1 -1
  308. package/lib/interaction/interaction-router.d.ts +0 -1
  309. package/lib/interaction/interaction-router.js.map +1 -1
  310. package/lib/internal/agent-host.d.ts +0 -1
  311. package/lib/internal/agent-host.js.map +1 -1
  312. package/lib/internal/ai-service-refs.d.ts +0 -1
  313. package/lib/internal/ai-service-refs.js.map +1 -1
  314. package/lib/internal/as-private.d.ts +0 -1
  315. package/lib/internal/as-private.js.map +1 -1
  316. package/lib/internal/host-types.d.ts +0 -1
  317. package/lib/internal/host-types.js.map +1 -1
  318. package/lib/internal/phase-trace.d.ts +0 -1
  319. package/lib/internal/phase-trace.js.map +1 -1
  320. package/lib/internal/prompt-trace.d.ts +0 -1
  321. package/lib/internal/prompt-trace.js.map +1 -1
  322. package/lib/internal/turn-context.d.ts +0 -1
  323. package/lib/internal/turn-context.js.map +1 -1
  324. package/lib/journal/file-journal-store.d.ts +0 -1
  325. package/lib/journal/file-journal-store.js.map +1 -1
  326. package/lib/journal/index.d.ts +0 -1
  327. package/lib/journal/index.js.map +1 -1
  328. package/lib/journal/persistent-turn-journal.d.ts +0 -1
  329. package/lib/journal/persistent-turn-journal.js.map +1 -1
  330. package/lib/mcp-client/bridge.d.ts +0 -1
  331. package/lib/mcp-client/bridge.js.map +1 -1
  332. package/lib/mcp-client/connection.d.ts +0 -1
  333. package/lib/mcp-client/connection.js.map +1 -1
  334. package/lib/mcp-client/index.d.ts +0 -1
  335. package/lib/mcp-client/index.js.map +1 -1
  336. package/lib/media/deliver-subagent-result.d.ts +0 -1
  337. package/lib/media/deliver-subagent-result.js +4 -1
  338. package/lib/media/deliver-subagent-result.js.map +1 -1
  339. package/lib/media/inbound-refs.d.ts +0 -1
  340. package/lib/media/inbound-refs.js.map +1 -1
  341. package/lib/media/index.d.ts +0 -1
  342. package/lib/media/index.js.map +1 -1
  343. package/lib/media/media-capabilities.d.ts +0 -1
  344. package/lib/media/media-capabilities.js.map +1 -1
  345. package/lib/media/media-normalize.d.ts +31 -3
  346. package/lib/media/media-normalize.js +38 -5
  347. package/lib/media/media-normalize.js.map +1 -1
  348. package/lib/media/media-publisher.d.ts +4 -2
  349. package/lib/media/media-publisher.js +50 -31
  350. package/lib/media/media-publisher.js.map +1 -1
  351. package/lib/media/media-router.d.ts +0 -1
  352. package/lib/media/media-router.js.map +1 -1
  353. package/lib/media/media-spool.d.ts +0 -1
  354. package/lib/media/media-spool.js.map +1 -1
  355. package/lib/media/media-tool-bridge.d.ts +0 -1
  356. package/lib/media/media-tool-bridge.js.map +1 -1
  357. package/lib/media/media-types.d.ts +0 -1
  358. package/lib/media/media-types.js.map +1 -1
  359. package/lib/media/perception.d.ts +8 -2
  360. package/lib/media/perception.js +55 -5
  361. package/lib/media/perception.js.map +1 -1
  362. package/lib/media/resolve-config.d.ts +0 -1
  363. package/lib/media/resolve-config.js.map +1 -1
  364. package/lib/media/subagent-inbound.d.ts +0 -1
  365. package/lib/media/subagent-inbound.js.map +1 -1
  366. package/lib/media/subagent-user-delivery.d.ts +0 -1
  367. package/lib/media/subagent-user-delivery.js.map +1 -1
  368. package/lib/media/vision-capability.d.ts +0 -1
  369. package/lib/media/vision-capability.js.map +1 -1
  370. package/lib/memory/ai-compaction-strategy.d.ts +0 -1
  371. package/lib/memory/ai-compaction-strategy.js.map +1 -1
  372. package/lib/memory/compaction-runtime.d.ts +0 -1
  373. package/lib/memory/compaction-runtime.js.map +1 -1
  374. package/lib/memory/context-repository-store.d.ts +0 -1
  375. package/lib/memory/context-repository-store.js.map +1 -1
  376. package/lib/memory/contracts.d.ts +0 -1
  377. package/lib/memory/contracts.js.map +1 -1
  378. package/lib/memory/index.d.ts +0 -1
  379. package/lib/memory/index.js.map +1 -1
  380. package/lib/memory/memory-system.d.ts +0 -1
  381. package/lib/memory/memory-system.js.map +1 -1
  382. package/lib/memory/memory-write-policy.d.ts +0 -1
  383. package/lib/memory/memory-write-policy.js.map +1 -1
  384. package/lib/memory/semantic-recall.d.ts +0 -1
  385. package/lib/memory/semantic-recall.js.map +1 -1
  386. package/lib/memory/told-ledger.d.ts +0 -1
  387. package/lib/memory/told-ledger.js.map +1 -1
  388. package/lib/memory-layers.d.ts +0 -1
  389. package/lib/memory-layers.js.map +1 -1
  390. package/lib/orchestration/five-agent/index.d.ts +0 -1
  391. package/lib/orchestration/five-agent/index.js.map +1 -1
  392. package/lib/orchestration/five-agent/prompts.d.ts +0 -1
  393. package/lib/orchestration/five-agent/prompts.js.map +1 -1
  394. package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
  395. package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
  396. package/lib/orchestration/five-agent/roles.d.ts +0 -1
  397. package/lib/orchestration/five-agent/roles.js.map +1 -1
  398. package/lib/outbound/agent-output.d.ts +5 -1
  399. package/lib/outbound/agent-output.js +14 -0
  400. package/lib/outbound/agent-output.js.map +1 -1
  401. package/lib/outbound/send-proactive.d.ts +0 -1
  402. package/lib/outbound/send-proactive.js.map +1 -1
  403. package/lib/outbound/structured-reply.d.ts +6 -2
  404. package/lib/outbound/structured-reply.js +85 -14
  405. package/lib/outbound/structured-reply.js.map +1 -1
  406. package/lib/plugin-ai-hook-bus.d.ts +0 -1
  407. package/lib/plugin-ai-hook-bus.js.map +1 -1
  408. package/lib/plugin-loop-hooks.d.ts +0 -1
  409. package/lib/plugin-loop-hooks.js.map +1 -1
  410. package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
  411. package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
  412. package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
  413. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  414. package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
  415. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  416. package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
  417. package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
  418. package/lib/plugin-runtime/ai-completion.d.ts +11 -43
  419. package/lib/plugin-runtime/ai-completion.js +28 -10
  420. package/lib/plugin-runtime/ai-completion.js.map +1 -1
  421. package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
  422. package/lib/plugin-runtime/capability-ingress.js.map +1 -1
  423. package/lib/plugin-runtime/capability-tools.d.ts +0 -1
  424. package/lib/plugin-runtime/capability-tools.js.map +1 -1
  425. package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
  426. package/lib/plugin-runtime/decision-runtime.js.map +1 -1
  427. package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
  428. package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
  429. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  430. package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
  431. package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
  432. package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
  433. package/lib/plugin-runtime/file-search-scope.js.map +1 -1
  434. package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
  435. package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
  436. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  437. package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
  438. package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
  439. package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
  440. package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
  441. package/lib/plugin-runtime/index.d.ts +0 -1
  442. package/lib/plugin-runtime/index.js.map +1 -1
  443. package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
  444. package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
  445. package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
  446. package/lib/plugin-runtime/native-file-tools.js.map +1 -1
  447. package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
  448. package/lib/plugin-runtime/native-image-tool.js.map +1 -1
  449. package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
  450. package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
  451. package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
  452. package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
  453. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
  454. package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
  455. package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
  456. package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
  457. package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
  458. package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
  459. package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
  460. package/lib/plugin-runtime/native-web-tools.js.map +1 -1
  461. package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
  462. package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
  463. package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
  464. package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
  465. package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
  466. package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
  467. package/lib/prompt/assembly.d.ts +0 -1
  468. package/lib/prompt/assembly.js +2 -2
  469. package/lib/prompt/assembly.js.map +1 -1
  470. package/lib/prompt/estimate-tokens.d.ts +0 -1
  471. package/lib/prompt/estimate-tokens.js.map +1 -1
  472. package/lib/prompt/git-context.d.ts +0 -1
  473. package/lib/prompt/git-context.js.map +1 -1
  474. package/lib/prompt/index.d.ts +0 -1
  475. package/lib/prompt/index.js.map +1 -1
  476. package/lib/prompt/model-aware-builder.d.ts +0 -1
  477. package/lib/prompt/model-aware-builder.js.map +1 -1
  478. package/lib/prompt/model-prompt-strategy.d.ts +0 -1
  479. package/lib/prompt/model-prompt-strategy.js.map +1 -1
  480. package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
  481. package/lib/prompt/prompt-assembly-registry.js.map +1 -1
  482. package/lib/prompt/prompt-budget.d.ts +0 -1
  483. package/lib/prompt/prompt-budget.js.map +1 -1
  484. package/lib/prompt/prompt-builder.d.ts +0 -1
  485. package/lib/prompt/prompt-builder.js.map +1 -1
  486. package/lib/prompt/rules/chat-rules.d.ts +6 -0
  487. package/lib/prompt/rules/chat-rules.js +20 -0
  488. package/lib/prompt/rules/chat-rules.js.map +1 -0
  489. package/lib/prompt/rules/code-references.d.ts +0 -1
  490. package/lib/prompt/rules/code-references.js.map +1 -1
  491. package/lib/prompt/rules/critical-rules.d.ts +0 -1
  492. package/lib/prompt/rules/critical-rules.js +2 -2
  493. package/lib/prompt/rules/critical-rules.js.map +1 -1
  494. package/lib/prompt/rules/editing.d.ts +0 -1
  495. package/lib/prompt/rules/editing.js.map +1 -1
  496. package/lib/prompt/rules/error-handling.d.ts +0 -1
  497. package/lib/prompt/rules/error-handling.js.map +1 -1
  498. package/lib/prompt/rules/index.d.ts +1 -1
  499. package/lib/prompt/rules/index.js +1 -0
  500. package/lib/prompt/rules/index.js.map +1 -1
  501. package/lib/prompt/rules/memory.d.ts +0 -1
  502. package/lib/prompt/rules/memory.js.map +1 -1
  503. package/lib/prompt/rules/task-completion.d.ts +0 -1
  504. package/lib/prompt/rules/task-completion.js.map +1 -1
  505. package/lib/prompt/rules/workflow-rules.d.ts +0 -1
  506. package/lib/prompt/rules/workflow-rules.js.map +1 -1
  507. package/lib/prompt/system-prompt.d.ts +7 -1
  508. package/lib/prompt/system-prompt.js +31 -12
  509. package/lib/prompt/system-prompt.js.map +1 -1
  510. package/lib/prompt/templates.d.ts +0 -1
  511. package/lib/prompt/templates.js.map +1 -1
  512. package/lib/prompt/tokens.d.ts +0 -1
  513. package/lib/prompt/tokens.js.map +1 -1
  514. package/lib/prompt/turn-prompt-profile.d.ts +0 -1
  515. package/lib/prompt/turn-prompt-profile.js.map +1 -1
  516. package/lib/prompt/workspace-prompt.d.ts +0 -1
  517. package/lib/prompt/workspace-prompt.js.map +1 -1
  518. package/lib/reserved-tools.d.ts +0 -1
  519. package/lib/reserved-tools.js.map +1 -1
  520. package/lib/resource-hub/hook-registry.d.ts +0 -1
  521. package/lib/resource-hub/hook-registry.js.map +1 -1
  522. package/lib/resource-hub/index.d.ts +0 -1
  523. package/lib/resource-hub/index.js.map +1 -1
  524. package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
  525. package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
  526. package/lib/resource-hub/mcp-registry.d.ts +0 -1
  527. package/lib/resource-hub/mcp-registry.js.map +1 -1
  528. package/lib/resource-hub/public-api.d.ts +0 -1
  529. package/lib/resource-hub/public-api.js.map +1 -1
  530. package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
  531. package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
  532. package/lib/resource-hub/resource-registry.d.ts +0 -1
  533. package/lib/resource-hub/resource-registry.js.map +1 -1
  534. package/lib/resource-hub/role-configs.d.ts +0 -1
  535. package/lib/resource-hub/role-configs.js.map +1 -1
  536. package/lib/resource-hub/skill-registry.d.ts +0 -1
  537. package/lib/resource-hub/skill-registry.js.map +1 -1
  538. package/lib/resource-hub/subagent-registry.d.ts +0 -1
  539. package/lib/resource-hub/subagent-registry.js.map +1 -1
  540. package/lib/resource-hub/tool-selection.d.ts +0 -1
  541. package/lib/resource-hub/tool-selection.js.map +1 -1
  542. package/lib/resource-hub/types.d.ts +0 -1
  543. package/lib/resource-hub/types.js.map +1 -1
  544. package/lib/routing/runtime-binding.d.ts +0 -1
  545. package/lib/routing/runtime-binding.js.map +1 -1
  546. package/lib/routing/subagent-summarize.d.ts +0 -1
  547. package/lib/routing/subagent-summarize.js.map +1 -1
  548. package/lib/schedule-cron.d.ts +0 -1
  549. package/lib/schedule-cron.js.map +1 -1
  550. package/lib/schedule-domain/audit-logger.d.ts +0 -1
  551. package/lib/schedule-domain/audit-logger.js.map +1 -1
  552. package/lib/schedule-domain/budget-guard.d.ts +0 -1
  553. package/lib/schedule-domain/budget-guard.js.map +1 -1
  554. package/lib/schedule-domain/execution-domain.d.ts +0 -1
  555. package/lib/schedule-domain/execution-domain.js.map +1 -1
  556. package/lib/schedule-domain/index.d.ts +0 -1
  557. package/lib/schedule-domain/index.js.map +1 -1
  558. package/lib/schedule-domain/output-validator.d.ts +0 -1
  559. package/lib/schedule-domain/output-validator.js.map +1 -1
  560. package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
  561. package/lib/schedule-domain/prompt-assembler.js.map +1 -1
  562. package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
  563. package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
  564. package/lib/schedule-domain/security-harness.d.ts +0 -1
  565. package/lib/schedule-domain/security-harness.js.map +1 -1
  566. package/lib/schedule-manager.d.ts +0 -1
  567. package/lib/schedule-manager.js.map +1 -1
  568. package/lib/seam/index.d.ts +0 -1
  569. package/lib/seam/index.js.map +1 -1
  570. package/lib/seam/seam-integration.d.ts +0 -1
  571. package/lib/seam/seam-integration.js.map +1 -1
  572. package/lib/seam/seam-provider.d.ts +0 -1
  573. package/lib/seam/seam-provider.js.map +1 -1
  574. package/lib/seam/skill-service.d.ts +0 -1
  575. package/lib/seam/skill-service.js.map +1 -1
  576. package/lib/seam/tokens.d.ts +0 -1
  577. package/lib/seam/tokens.js.map +1 -1
  578. package/lib/seam/tool-service.d.ts +0 -1
  579. package/lib/seam/tool-service.js.map +1 -1
  580. package/lib/security/anomaly-detection.d.ts +0 -1
  581. package/lib/security/anomaly-detection.js.map +1 -1
  582. package/lib/security/audit-logger.d.ts +0 -1
  583. package/lib/security/audit-logger.js.map +1 -1
  584. package/lib/security/comm-message-context.d.ts +0 -1
  585. package/lib/security/comm-message-context.js.map +1 -1
  586. package/lib/security/dangerous-tool-policy.d.ts +0 -1
  587. package/lib/security/dangerous-tool-policy.js.map +1 -1
  588. package/lib/security/exec-policy.d.ts +0 -1
  589. package/lib/security/exec-policy.js.map +1 -1
  590. package/lib/security/file-policy.d.ts +0 -1
  591. package/lib/security/file-policy.js.map +1 -1
  592. package/lib/security/file-role-policy.d.ts +0 -1
  593. package/lib/security/file-role-policy.js.map +1 -1
  594. package/lib/security/index.d.ts +0 -1
  595. package/lib/security/index.js.map +1 -1
  596. package/lib/security/network-authority.d.ts +0 -1
  597. package/lib/security/network-authority.js.map +1 -1
  598. package/lib/security/network-policy-context.d.ts +0 -1
  599. package/lib/security/network-policy-context.js.map +1 -1
  600. package/lib/security/network-policy.d.ts +0 -1
  601. package/lib/security/network-policy.js.map +1 -1
  602. package/lib/security/outbound-leak-guard.d.ts +0 -1
  603. package/lib/security/outbound-leak-guard.js.map +1 -1
  604. package/lib/security/owner-approval-contracts.d.ts +0 -1
  605. package/lib/security/owner-approval-contracts.js.map +1 -1
  606. package/lib/security/owner-approval-runtime.d.ts +0 -1
  607. package/lib/security/owner-approval-runtime.js.map +1 -1
  608. package/lib/security/owner-approval-store.d.ts +0 -1
  609. package/lib/security/owner-approval-store.js.map +1 -1
  610. package/lib/security/policy-facade.d.ts +0 -1
  611. package/lib/security/policy-facade.js.map +1 -1
  612. package/lib/security/policy-narrowing.d.ts +0 -1
  613. package/lib/security/policy-narrowing.js.map +1 -1
  614. package/lib/security/provenance.d.ts +0 -1
  615. package/lib/security/provenance.js.map +1 -1
  616. package/lib/security/sandbox-docker.d.ts +0 -1
  617. package/lib/security/sandbox-docker.js.map +1 -1
  618. package/lib/security/sandbox.d.ts +0 -1
  619. package/lib/security/sandbox.js.map +1 -1
  620. package/lib/security/trust-level.d.ts +0 -1
  621. package/lib/security/trust-level.js.map +1 -1
  622. package/lib/security/turn-file-authority.d.ts +0 -1
  623. package/lib/security/turn-file-authority.js.map +1 -1
  624. package/lib/security/turn-network-client.d.ts +0 -1
  625. package/lib/security/turn-network-client.js.map +1 -1
  626. package/lib/security/usage-quota.d.ts +3 -7
  627. package/lib/security/usage-quota.js.map +1 -1
  628. package/lib/segment/filter-im-delivery.d.ts +0 -1
  629. package/lib/segment/filter-im-delivery.js.map +1 -1
  630. package/lib/service.d.ts +0 -1
  631. package/lib/service.js.map +1 -1
  632. package/lib/session/approval-port.d.ts +0 -1
  633. package/lib/session/approval-port.js.map +1 -1
  634. package/lib/session/approval-review-agent.d.ts +0 -1
  635. package/lib/session/approval-review-agent.js.map +1 -1
  636. package/lib/session/branch-summarization-runtime.d.ts +0 -1
  637. package/lib/session/branch-summarization-runtime.js.map +1 -1
  638. package/lib/session/contracts.d.ts +0 -1
  639. package/lib/session/contracts.js.map +1 -1
  640. package/lib/session/index.d.ts +0 -1
  641. package/lib/session/index.js.map +1 -1
  642. package/lib/session/session-io.d.ts +0 -1
  643. package/lib/session/session-io.js.map +1 -1
  644. package/lib/session/session-key.d.ts +0 -1
  645. package/lib/session/session-key.js.map +1 -1
  646. package/lib/session/session-system.d.ts +7 -1
  647. package/lib/session/session-system.js +26 -12
  648. package/lib/session/session-system.js.map +1 -1
  649. package/lib/session/session-tree-commands.d.ts +0 -1
  650. package/lib/session/session-tree-commands.js.map +1 -1
  651. package/lib/session/strategies.d.ts +0 -1
  652. package/lib/session/strategies.js.map +1 -1
  653. package/lib/session/turn-ingress-session.d.ts +0 -1
  654. package/lib/session/turn-ingress-session.js.map +1 -1
  655. package/lib/session-tree-runtime.d.ts +0 -1
  656. package/lib/session-tree-runtime.js.map +1 -1
  657. package/lib/skill/capability-catalog.d.ts +0 -1
  658. package/lib/skill/capability-catalog.js.map +1 -1
  659. package/lib/skill/contracts.d.ts +0 -1
  660. package/lib/skill/contracts.js.map +1 -1
  661. package/lib/skill/index.d.ts +0 -1
  662. package/lib/skill/index.js.map +1 -1
  663. package/lib/skill/progressive-disclosure.d.ts +0 -1
  664. package/lib/skill/progressive-disclosure.js.map +1 -1
  665. package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
  666. package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
  667. package/lib/skill/skill-instruction-reader.d.ts +0 -1
  668. package/lib/skill/skill-instruction-reader.js.map +1 -1
  669. package/lib/skill/skill-instructions.d.ts +0 -1
  670. package/lib/skill/skill-instructions.js.map +1 -1
  671. package/lib/skill/skill-registry-as-service.d.ts +0 -1
  672. package/lib/skill/skill-registry-as-service.js.map +1 -1
  673. package/lib/skill/skill-system.d.ts +0 -1
  674. package/lib/skill/skill-system.js.map +1 -1
  675. package/lib/spawn/permission-task.d.ts +0 -1
  676. package/lib/spawn/permission-task.js.map +1 -1
  677. package/lib/spawn/spawn-task-tool.d.ts +0 -1
  678. package/lib/spawn/spawn-task-tool.js.map +1 -1
  679. package/lib/stability/memory-pressure.d.ts +0 -1
  680. package/lib/stability/memory-pressure.js.map +1 -1
  681. package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
  682. package/lib/standalone/standalone-tool-catalog.js.map +1 -1
  683. package/lib/subagent/contracts.d.ts +0 -1
  684. package/lib/subagent/contracts.js.map +1 -1
  685. package/lib/subagent/im-result-sink.d.ts +0 -1
  686. package/lib/subagent/im-result-sink.js.map +1 -1
  687. package/lib/subagent/index.d.ts +0 -1
  688. package/lib/subagent/index.js.map +1 -1
  689. package/lib/subagent/subagent-runtime.d.ts +0 -1
  690. package/lib/subagent/subagent-runtime.js.map +1 -1
  691. package/lib/subagent/subagent-system-init.d.ts +0 -1
  692. package/lib/subagent/subagent-system-init.js.map +1 -1
  693. package/lib/subagent/subagent-system.d.ts +0 -1
  694. package/lib/subagent/subagent-system.js.map +1 -1
  695. package/lib/subagent-ai-events.d.ts +0 -1
  696. package/lib/subagent-ai-events.js.map +1 -1
  697. package/lib/subagent-artifact.d.ts +0 -1
  698. package/lib/subagent-artifact.js.map +1 -1
  699. package/lib/subagent-goal-notify.d.ts +0 -1
  700. package/lib/subagent-goal-notify.js.map +1 -1
  701. package/lib/subagent-parent-context.d.ts +0 -1
  702. package/lib/subagent-parent-context.js.map +1 -1
  703. package/lib/subagent-preset.d.ts +0 -1
  704. package/lib/subagent-preset.js.map +1 -1
  705. package/lib/subagent-prompt.d.ts +0 -1
  706. package/lib/subagent-prompt.js.map +1 -1
  707. package/lib/task-executor.d.ts +0 -1
  708. package/lib/task-executor.js.map +1 -1
  709. package/lib/tool/builtin-policy-extractors.d.ts +0 -1
  710. package/lib/tool/builtin-policy-extractors.js.map +1 -1
  711. package/lib/tool/context-tools.d.ts +0 -1
  712. package/lib/tool/context-tools.js.map +1 -1
  713. package/lib/tool/contracts.d.ts +0 -1
  714. package/lib/tool/contracts.js.map +1 -1
  715. package/lib/tool/conversation-reference-tool.d.ts +0 -1
  716. package/lib/tool/conversation-reference-tool.js.map +1 -1
  717. package/lib/tool/deferred-resolution.d.ts +0 -1
  718. package/lib/tool/deferred-resolution.js.map +1 -1
  719. package/lib/tool/executable-tool-registry.d.ts +0 -1
  720. package/lib/tool/executable-tool-registry.js.map +1 -1
  721. package/lib/tool/index.d.ts +0 -1
  722. package/lib/tool/index.js.map +1 -1
  723. package/lib/tool/pre-exec.d.ts +0 -1
  724. package/lib/tool/pre-exec.js.map +1 -1
  725. package/lib/tool/prepare-turn-tools.d.ts +0 -1
  726. package/lib/tool/prepare-turn-tools.js.map +1 -1
  727. package/lib/tool/runtime.d.ts +0 -1
  728. package/lib/tool/runtime.js.map +1 -1
  729. package/lib/tool/sources.d.ts +0 -1
  730. package/lib/tool/sources.js.map +1 -1
  731. package/lib/tool/tool-approval-gate.d.ts +0 -1
  732. package/lib/tool/tool-approval-gate.js.map +1 -1
  733. package/lib/tool/tool-approval-once-store.d.ts +0 -1
  734. package/lib/tool/tool-approval-once-store.js.map +1 -1
  735. package/lib/tool/tool-execution-authority.d.ts +0 -1
  736. package/lib/tool/tool-execution-authority.js.map +1 -1
  737. package/lib/tool/tool-model-output.d.ts +0 -1
  738. package/lib/tool/tool-model-output.js.map +1 -1
  739. package/lib/tool/tool-runtime.d.ts +0 -1
  740. package/lib/tool/tool-runtime.js.map +1 -1
  741. package/lib/tool/tool-system.d.ts +0 -1
  742. package/lib/tool/tool-system.js.map +1 -1
  743. package/lib/tool/turn-tool-runtime.d.ts +0 -1
  744. package/lib/tool/turn-tool-runtime.js.map +1 -1
  745. package/lib/tool-bridge.d.ts +0 -1
  746. package/lib/tool-bridge.js.map +1 -1
  747. package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
  748. package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
  749. package/lib/tool-catalog/index.d.ts +0 -1
  750. package/lib/tool-catalog/index.js.map +1 -1
  751. package/lib/tool-catalog/resolve-config.d.ts +0 -1
  752. package/lib/tool-catalog/resolve-config.js.map +1 -1
  753. package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
  754. package/lib/tool-catalog/session-deferred-store.js.map +1 -1
  755. package/lib/tool-catalog/tool-catalog.d.ts +8 -1
  756. package/lib/tool-catalog/tool-catalog.js +15 -0
  757. package/lib/tool-catalog/tool-catalog.js.map +1 -1
  758. package/lib/tool-catalog/types.d.ts +0 -1
  759. package/lib/tool-catalog/types.js.map +1 -1
  760. package/lib/trace/context-budget.d.ts +0 -1
  761. package/lib/trace/context-budget.js.map +1 -1
  762. package/lib/trace/index.d.ts +0 -1
  763. package/lib/trace/index.js.map +1 -1
  764. package/lib/trace/turn-trace-archive.d.ts +0 -1
  765. package/lib/trace/turn-trace-archive.js.map +1 -1
  766. package/lib/trace/turn-trace-format.d.ts +0 -1
  767. package/lib/trace/turn-trace-format.js.map +1 -1
  768. package/lib/trace/turn-trace-registry.d.ts +0 -1
  769. package/lib/trace/turn-trace-registry.js.map +1 -1
  770. package/lib/trace/turn-trace-store.d.ts +0 -1
  771. package/lib/trace/turn-trace-store.js.map +1 -1
  772. package/lib/trace/turn-trace.d.ts +0 -1
  773. package/lib/trace/turn-trace.js.map +1 -1
  774. package/lib/turn/agent-turn-context.d.ts +0 -1
  775. package/lib/turn/agent-turn-context.js.map +1 -1
  776. package/lib/turn/auto-continue.d.ts +0 -1
  777. package/lib/turn/auto-continue.js.map +1 -1
  778. package/lib/turn/cancel-intent.d.ts +0 -1
  779. package/lib/turn/cancel-intent.js.map +1 -1
  780. package/lib/turn/deferred-auto-continue.d.ts +0 -1
  781. package/lib/turn/deferred-auto-continue.js.map +1 -1
  782. package/lib/turn/deferred-delivery.d.ts +0 -1
  783. package/lib/turn/deferred-delivery.js.map +1 -1
  784. package/lib/turn/deferred-turn-state.d.ts +0 -1
  785. package/lib/turn/deferred-turn-state.js.map +1 -1
  786. package/lib/turn/execute-agent-turn.d.ts +0 -1
  787. package/lib/turn/execute-agent-turn.js.map +1 -1
  788. package/lib/turn/inbound-media.d.ts +3 -2
  789. package/lib/turn/inbound-media.js +15 -2
  790. package/lib/turn/inbound-media.js.map +1 -1
  791. package/lib/turn/inbound-queue-config.d.ts +0 -1
  792. package/lib/turn/inbound-queue-config.js.map +1 -1
  793. package/lib/turn/inbound-queue-runtime.d.ts +0 -1
  794. package/lib/turn/inbound-queue-runtime.js.map +1 -1
  795. package/lib/turn/inbound-turn-queue.d.ts +0 -1
  796. package/lib/turn/inbound-turn-queue.js.map +1 -1
  797. package/lib/turn/index.d.ts +0 -1
  798. package/lib/turn/index.js.map +1 -1
  799. package/lib/turn/journal-feed.d.ts +0 -1
  800. package/lib/turn/journal-feed.js.map +1 -1
  801. package/lib/turn/journal-integrity.d.ts +0 -1
  802. package/lib/turn/journal-integrity.js.map +1 -1
  803. package/lib/turn/persist-deferred-context.d.ts +0 -1
  804. package/lib/turn/persist-deferred-context.js.map +1 -1
  805. package/lib/turn/persist-subagent-context.d.ts +0 -1
  806. package/lib/turn/persist-subagent-context.js.map +1 -1
  807. package/lib/turn/process-stream.d.ts +0 -1
  808. package/lib/turn/process-stream.js.map +1 -1
  809. package/lib/turn/prompt-access.d.ts +0 -1
  810. package/lib/turn/prompt-access.js.map +1 -1
  811. package/lib/turn/prompt-api.d.ts +0 -1
  812. package/lib/turn/prompt-api.js.map +1 -1
  813. package/lib/turn/prompt-controller.d.ts +0 -1
  814. package/lib/turn/prompt-controller.js.map +1 -1
  815. package/lib/turn/prompt-input.d.ts +0 -1
  816. package/lib/turn/prompt-input.js.map +1 -1
  817. package/lib/turn/session-message-queue.d.ts +0 -1
  818. package/lib/turn/session-message-queue.js.map +1 -1
  819. package/lib/turn/subagent-auto-continue.d.ts +0 -1
  820. package/lib/turn/subagent-auto-continue.js.map +1 -1
  821. package/lib/turn/task-continuation.d.ts +0 -1
  822. package/lib/turn/task-continuation.js.map +1 -1
  823. package/lib/turn/trigger-cancelled-error.d.ts +0 -1
  824. package/lib/turn/trigger-cancelled-error.js.map +1 -1
  825. package/lib/turn/turn-admission-gate.d.ts +0 -1
  826. package/lib/turn/turn-admission-gate.js.map +1 -1
  827. package/lib/turn/turn-complete.d.ts +0 -1
  828. package/lib/turn/turn-complete.js.map +1 -1
  829. package/lib/turn/turn-context-bridge.d.ts +0 -1
  830. package/lib/turn/turn-context-bridge.js.map +1 -1
  831. package/lib/turn/turn-deferred-delta.d.ts +0 -1
  832. package/lib/turn/turn-deferred-delta.js.map +1 -1
  833. package/lib/turn/turn-event-source.d.ts +0 -1
  834. package/lib/turn/turn-event-source.js.map +1 -1
  835. package/lib/turn/turn-ingress.d.ts +3 -1
  836. package/lib/turn/turn-ingress.js.map +1 -1
  837. package/lib/turn/turn-metrics.d.ts +0 -1
  838. package/lib/turn/turn-metrics.js.map +1 -1
  839. package/lib/turn/turn-pipeline.d.ts +0 -1
  840. package/lib/turn/turn-pipeline.js.map +1 -1
  841. package/lib/turn/turn-terminal.d.ts +0 -1
  842. package/lib/turn/turn-terminal.js.map +1 -1
  843. package/lib/turn/turn-tracker.d.ts +0 -1
  844. package/lib/turn/turn-tracker.js.map +1 -1
  845. package/lib/types/disposable.d.ts +0 -1
  846. package/lib/types/disposable.js.map +1 -1
  847. package/lib/typing-indicator/adapter-integration.d.ts +0 -1
  848. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  849. package/lib/typing-indicator/index.d.ts +0 -1
  850. package/lib/typing-indicator/index.js.map +1 -1
  851. package/lib/user-profile.d.ts +0 -1
  852. package/lib/user-profile.js.map +1 -1
  853. package/lib/utils/config-env.d.ts +0 -1
  854. package/lib/utils/config-env.js.map +1 -1
  855. package/lib/utils/keyed-mutex.d.ts +0 -1
  856. package/lib/utils/keyed-mutex.js.map +1 -1
  857. package/lib/web/bing-search-html.d.ts +0 -1
  858. package/lib/web/bing-search-html.js.map +1 -1
  859. package/lib/web/web-search-locale.d.ts +0 -1
  860. package/lib/web/web-search-locale.js.map +1 -1
  861. package/lib/web/web-tool-utils.d.ts +0 -1
  862. package/lib/web/web-tool-utils.js.map +1 -1
  863. package/lib/zhin-agent/index.d.ts +0 -1
  864. package/lib/zhin-agent/index.js.map +1 -1
  865. package/lib/zhin-agent/runtime-modules.d.ts +0 -1
  866. package/lib/zhin-agent/runtime-modules.js.map +1 -1
  867. package/package.json +12 -12
  868. package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
  869. package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
  870. package/lib/activity-feedback/event-context.d.ts.map +0 -1
  871. package/lib/activity-feedback/index.d.ts.map +0 -1
  872. package/lib/activity-feedback/manager.d.ts.map +0 -1
  873. package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
  874. package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
  875. package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
  876. package/lib/activity-feedback/types.d.ts.map +0 -1
  877. package/lib/ai-event-bus.d.ts.map +0 -1
  878. package/lib/ai-event-contract.d.ts.map +0 -1
  879. package/lib/ai-event-subscriber.d.ts.map +0 -1
  880. package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
  881. package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
  882. package/lib/assistant/config.d.ts.map +0 -1
  883. package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
  884. package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
  885. package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
  886. package/lib/assistant/domains/home-entity.d.ts.map +0 -1
  887. package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
  888. package/lib/assistant/event-ingress.d.ts.map +0 -1
  889. package/lib/assistant/event-types.d.ts.map +0 -1
  890. package/lib/assistant/home-config.d.ts.map +0 -1
  891. package/lib/assistant/home-facade.d.ts.map +0 -1
  892. package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
  893. package/lib/assistant/home-policy.d.ts.map +0 -1
  894. package/lib/assistant/home-tools.d.ts.map +0 -1
  895. package/lib/assistant/index.d.ts.map +0 -1
  896. package/lib/assistant/job-creator.d.ts.map +0 -1
  897. package/lib/assistant/job-engine.d.ts.map +0 -1
  898. package/lib/assistant/job-scheduler.d.ts.map +0 -1
  899. package/lib/assistant/job-store.d.ts.map +0 -1
  900. package/lib/assistant/job-utils.d.ts.map +0 -1
  901. package/lib/assistant/job-worker.d.ts.map +0 -1
  902. package/lib/assistant/notification-router.d.ts.map +0 -1
  903. package/lib/assistant/profile-loader.d.ts.map +0 -1
  904. package/lib/assistant/profile-types.d.ts.map +0 -1
  905. package/lib/assistant/runtime-contract.d.ts.map +0 -1
  906. package/lib/assistant/schedule-execution.d.ts.map +0 -1
  907. package/lib/assistant/schedule-job-service.d.ts.map +0 -1
  908. package/lib/assistant/schedule-skills.d.ts.map +0 -1
  909. package/lib/assistant/types.d.ts.map +0 -1
  910. package/lib/authoring/bridge.d.ts.map +0 -1
  911. package/lib/authoring/define-eval.d.ts.map +0 -1
  912. package/lib/authoring/define-hook.d.ts.map +0 -1
  913. package/lib/authoring/define-skill.d.ts.map +0 -1
  914. package/lib/authoring/disable-tool.d.ts.map +0 -1
  915. package/lib/authoring/entries/evals.d.ts.map +0 -1
  916. package/lib/authoring/entries/hooks.d.ts.map +0 -1
  917. package/lib/authoring/entries/skills.d.ts.map +0 -1
  918. package/lib/authoring/index.d.ts.map +0 -1
  919. package/lib/authoring/types.d.ts.map +0 -1
  920. package/lib/bootstrap.d.ts.map +0 -1
  921. package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
  922. package/lib/common-adapter-tools.d.ts.map +0 -1
  923. package/lib/config/agent-binding-registry.d.ts.map +0 -1
  924. package/lib/config/agent-bindings.d.ts.map +0 -1
  925. package/lib/config/agent-interfaces.d.ts.map +0 -1
  926. package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
  927. package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
  928. package/lib/config/fix-ai-config.d.ts.map +0 -1
  929. package/lib/config/index.d.ts.map +0 -1
  930. package/lib/config/keyword-triggers.d.ts.map +0 -1
  931. package/lib/config/model-harness-runtime.d.ts.map +0 -1
  932. package/lib/config/model-harness.d.ts.map +0 -1
  933. package/lib/config/normalize-ai-config.d.ts.map +0 -1
  934. package/lib/config/perception-config.d.ts.map +0 -1
  935. package/lib/config/provider-instance.d.ts.map +0 -1
  936. package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
  937. package/lib/config/types.d.ts.map +0 -1
  938. package/lib/config/validate-ai-config.d.ts.map +0 -1
  939. package/lib/config/zhin-agent-config.d.ts.map +0 -1
  940. package/lib/config/zhin-agent-constants.d.ts.map +0 -1
  941. package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
  942. package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
  943. package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
  944. package/lib/context/agents-instruction.d.ts.map +0 -1
  945. package/lib/context/context-system.d.ts.map +0 -1
  946. package/lib/context/context-tail-limit.d.ts.map +0 -1
  947. package/lib/context/contracts.d.ts.map +0 -1
  948. package/lib/context/default-builders.d.ts.map +0 -1
  949. package/lib/context/envelope-parts.d.ts.map +0 -1
  950. package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
  951. package/lib/context/index.d.ts.map +0 -1
  952. package/lib/context/model-resolver.d.ts.map +0 -1
  953. package/lib/context/turn-envelope.d.ts.map +0 -1
  954. package/lib/context/turn-user-message.d.ts.map +0 -1
  955. package/lib/core/agent-core-run.d.ts.map +0 -1
  956. package/lib/core/agent-core.d.ts.map +0 -1
  957. package/lib/core/agent-loop-standalone.d.ts.map +0 -1
  958. package/lib/core/agent-loop-turn.d.ts.map +0 -1
  959. package/lib/core/agent-run-shared.d.ts.map +0 -1
  960. package/lib/core/compose-deps.d.ts.map +0 -1
  961. package/lib/core/contracts.d.ts.map +0 -1
  962. package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
  963. package/lib/core/exploration-budget.d.ts.map +0 -1
  964. package/lib/core/index.d.ts.map +0 -1
  965. package/lib/core/missing-tool-resolver.d.ts.map +0 -1
  966. package/lib/core/progress-reporter.d.ts.map +0 -1
  967. package/lib/core/spawn-delegation.d.ts.map +0 -1
  968. package/lib/core/structured-reply-recovery.d.ts.map +0 -1
  969. package/lib/core/text-sanitize.d.ts.map +0 -1
  970. package/lib/core/tool-calls-user-format.d.ts.map +0 -1
  971. package/lib/core/tool-execution-authority.d.ts.map +0 -1
  972. package/lib/core/turn-completion-usage.d.ts.map +0 -1
  973. package/lib/core/turn-event-mapper.d.ts.map +0 -1
  974. package/lib/core/turn-progress.d.ts.map +0 -1
  975. package/lib/create-agent-session.d.ts.map +0 -1
  976. package/lib/decision/approval-judgment.d.ts.map +0 -1
  977. package/lib/decision/approval.d.ts.map +0 -1
  978. package/lib/decision/config.d.ts.map +0 -1
  979. package/lib/decision/index.d.ts.map +0 -1
  980. package/lib/decision/rank.d.ts.map +0 -1
  981. package/lib/decision/retrieval.d.ts.map +0 -1
  982. package/lib/decision/types.d.ts.map +0 -1
  983. package/lib/deferred-worker-runner.d.ts.map +0 -1
  984. package/lib/deferred-worker-tool-load.d.ts.map +0 -1
  985. package/lib/detached-task/index.d.ts.map +0 -1
  986. package/lib/detached-task/interjection.d.ts.map +0 -1
  987. package/lib/detached-task/runner.d.ts.map +0 -1
  988. package/lib/detached-task/store.d.ts.map +0 -1
  989. package/lib/detached-task/token.d.ts.map +0 -1
  990. package/lib/detached-task/types.d.ts.map +0 -1
  991. package/lib/discovery/agent-surface-info.d.ts.map +0 -1
  992. package/lib/discovery/agent-surface.d.ts.map +0 -1
  993. package/lib/discovery/agents.d.ts.map +0 -1
  994. package/lib/discovery/utils.d.ts.map +0 -1
  995. package/lib/event/agent-stream-bus.d.ts.map +0 -1
  996. package/lib/event/agent-stream-hooks.d.ts.map +0 -1
  997. package/lib/event/ai-event-bus.d.ts.map +0 -1
  998. package/lib/event/contracts.d.ts.map +0 -1
  999. package/lib/event/event-emitter.d.ts.map +0 -1
  1000. package/lib/event/event-system.d.ts.map +0 -1
  1001. package/lib/event/filtering-middleware.d.ts.map +0 -1
  1002. package/lib/event/hook-stream-sink.d.ts.map +0 -1
  1003. package/lib/event/index.d.ts.map +0 -1
  1004. package/lib/event/logging-middleware.d.ts.map +0 -1
  1005. package/lib/event/publish-agent-stream.d.ts.map +0 -1
  1006. package/lib/event/session-events.d.ts.map +0 -1
  1007. package/lib/event/turn-event.d.ts.map +0 -1
  1008. package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
  1009. package/lib/index.d.ts.map +0 -1
  1010. package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
  1011. package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
  1012. package/lib/init/configure-zhin-agent.d.ts.map +0 -1
  1013. package/lib/init/define-ai-database-models.d.ts.map +0 -1
  1014. package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
  1015. package/lib/init/introspection-output.d.ts.map +0 -1
  1016. package/lib/init/runtime-management-commands.d.ts.map +0 -1
  1017. package/lib/interaction/index.d.ts.map +0 -1
  1018. package/lib/interaction/interaction-router.d.ts.map +0 -1
  1019. package/lib/internal/agent-host.d.ts.map +0 -1
  1020. package/lib/internal/ai-service-refs.d.ts.map +0 -1
  1021. package/lib/internal/as-private.d.ts.map +0 -1
  1022. package/lib/internal/host-types.d.ts.map +0 -1
  1023. package/lib/internal/phase-trace.d.ts.map +0 -1
  1024. package/lib/internal/prompt-trace.d.ts.map +0 -1
  1025. package/lib/internal/turn-context.d.ts.map +0 -1
  1026. package/lib/journal/file-journal-store.d.ts.map +0 -1
  1027. package/lib/journal/index.d.ts.map +0 -1
  1028. package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
  1029. package/lib/mcp-client/bridge.d.ts.map +0 -1
  1030. package/lib/mcp-client/connection.d.ts.map +0 -1
  1031. package/lib/mcp-client/index.d.ts.map +0 -1
  1032. package/lib/media/deliver-subagent-result.d.ts.map +0 -1
  1033. package/lib/media/inbound-refs.d.ts.map +0 -1
  1034. package/lib/media/index.d.ts.map +0 -1
  1035. package/lib/media/media-capabilities.d.ts.map +0 -1
  1036. package/lib/media/media-normalize.d.ts.map +0 -1
  1037. package/lib/media/media-publisher.d.ts.map +0 -1
  1038. package/lib/media/media-router.d.ts.map +0 -1
  1039. package/lib/media/media-spool.d.ts.map +0 -1
  1040. package/lib/media/media-tool-bridge.d.ts.map +0 -1
  1041. package/lib/media/media-types.d.ts.map +0 -1
  1042. package/lib/media/perception.d.ts.map +0 -1
  1043. package/lib/media/resolve-config.d.ts.map +0 -1
  1044. package/lib/media/subagent-inbound.d.ts.map +0 -1
  1045. package/lib/media/subagent-user-delivery.d.ts.map +0 -1
  1046. package/lib/media/vision-capability.d.ts.map +0 -1
  1047. package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
  1048. package/lib/memory/compaction-runtime.d.ts.map +0 -1
  1049. package/lib/memory/context-repository-store.d.ts.map +0 -1
  1050. package/lib/memory/contracts.d.ts.map +0 -1
  1051. package/lib/memory/index.d.ts.map +0 -1
  1052. package/lib/memory/memory-system.d.ts.map +0 -1
  1053. package/lib/memory/memory-write-policy.d.ts.map +0 -1
  1054. package/lib/memory/semantic-recall.d.ts.map +0 -1
  1055. package/lib/memory/told-ledger.d.ts.map +0 -1
  1056. package/lib/memory-layers.d.ts.map +0 -1
  1057. package/lib/orchestration/five-agent/index.d.ts.map +0 -1
  1058. package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
  1059. package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
  1060. package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
  1061. package/lib/outbound/agent-output.d.ts.map +0 -1
  1062. package/lib/outbound/send-proactive.d.ts.map +0 -1
  1063. package/lib/outbound/structured-reply.d.ts.map +0 -1
  1064. package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
  1065. package/lib/plugin-loop-hooks.d.ts.map +0 -1
  1066. package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
  1067. package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
  1068. package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
  1069. package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
  1070. package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
  1071. package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
  1072. package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
  1073. package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
  1074. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
  1075. package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
  1076. package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
  1077. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
  1078. package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
  1079. package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
  1080. package/lib/plugin-runtime/index.d.ts.map +0 -1
  1081. package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
  1082. package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
  1083. package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
  1084. package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
  1085. package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
  1086. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
  1087. package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
  1088. package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
  1089. package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
  1090. package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
  1091. package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
  1092. package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
  1093. package/lib/prompt/assembly.d.ts.map +0 -1
  1094. package/lib/prompt/estimate-tokens.d.ts.map +0 -1
  1095. package/lib/prompt/git-context.d.ts.map +0 -1
  1096. package/lib/prompt/index.d.ts.map +0 -1
  1097. package/lib/prompt/model-aware-builder.d.ts.map +0 -1
  1098. package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
  1099. package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
  1100. package/lib/prompt/prompt-budget.d.ts.map +0 -1
  1101. package/lib/prompt/prompt-builder.d.ts.map +0 -1
  1102. package/lib/prompt/rules/code-references.d.ts.map +0 -1
  1103. package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
  1104. package/lib/prompt/rules/editing.d.ts.map +0 -1
  1105. package/lib/prompt/rules/error-handling.d.ts.map +0 -1
  1106. package/lib/prompt/rules/index.d.ts.map +0 -1
  1107. package/lib/prompt/rules/memory.d.ts.map +0 -1
  1108. package/lib/prompt/rules/task-completion.d.ts.map +0 -1
  1109. package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
  1110. package/lib/prompt/system-prompt.d.ts.map +0 -1
  1111. package/lib/prompt/templates.d.ts.map +0 -1
  1112. package/lib/prompt/tokens.d.ts.map +0 -1
  1113. package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
  1114. package/lib/prompt/workspace-prompt.d.ts.map +0 -1
  1115. package/lib/reserved-tools.d.ts.map +0 -1
  1116. package/lib/resource-hub/hook-registry.d.ts.map +0 -1
  1117. package/lib/resource-hub/index.d.ts.map +0 -1
  1118. package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
  1119. package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
  1120. package/lib/resource-hub/public-api.d.ts.map +0 -1
  1121. package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
  1122. package/lib/resource-hub/resource-registry.d.ts.map +0 -1
  1123. package/lib/resource-hub/role-configs.d.ts.map +0 -1
  1124. package/lib/resource-hub/skill-registry.d.ts.map +0 -1
  1125. package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
  1126. package/lib/resource-hub/tool-selection.d.ts.map +0 -1
  1127. package/lib/resource-hub/types.d.ts.map +0 -1
  1128. package/lib/routing/runtime-binding.d.ts.map +0 -1
  1129. package/lib/routing/subagent-summarize.d.ts.map +0 -1
  1130. package/lib/schedule-cron.d.ts.map +0 -1
  1131. package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
  1132. package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
  1133. package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
  1134. package/lib/schedule-domain/index.d.ts.map +0 -1
  1135. package/lib/schedule-domain/output-validator.d.ts.map +0 -1
  1136. package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
  1137. package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
  1138. package/lib/schedule-domain/security-harness.d.ts.map +0 -1
  1139. package/lib/schedule-manager.d.ts.map +0 -1
  1140. package/lib/seam/index.d.ts.map +0 -1
  1141. package/lib/seam/seam-integration.d.ts.map +0 -1
  1142. package/lib/seam/seam-provider.d.ts.map +0 -1
  1143. package/lib/seam/skill-service.d.ts.map +0 -1
  1144. package/lib/seam/tokens.d.ts.map +0 -1
  1145. package/lib/seam/tool-service.d.ts.map +0 -1
  1146. package/lib/security/anomaly-detection.d.ts.map +0 -1
  1147. package/lib/security/audit-logger.d.ts.map +0 -1
  1148. package/lib/security/comm-message-context.d.ts.map +0 -1
  1149. package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
  1150. package/lib/security/exec-policy.d.ts.map +0 -1
  1151. package/lib/security/file-policy.d.ts.map +0 -1
  1152. package/lib/security/file-role-policy.d.ts.map +0 -1
  1153. package/lib/security/index.d.ts.map +0 -1
  1154. package/lib/security/network-authority.d.ts.map +0 -1
  1155. package/lib/security/network-policy-context.d.ts.map +0 -1
  1156. package/lib/security/network-policy.d.ts.map +0 -1
  1157. package/lib/security/outbound-leak-guard.d.ts.map +0 -1
  1158. package/lib/security/owner-approval-contracts.d.ts.map +0 -1
  1159. package/lib/security/owner-approval-runtime.d.ts.map +0 -1
  1160. package/lib/security/owner-approval-store.d.ts.map +0 -1
  1161. package/lib/security/policy-facade.d.ts.map +0 -1
  1162. package/lib/security/policy-narrowing.d.ts.map +0 -1
  1163. package/lib/security/provenance.d.ts.map +0 -1
  1164. package/lib/security/sandbox-docker.d.ts.map +0 -1
  1165. package/lib/security/sandbox.d.ts.map +0 -1
  1166. package/lib/security/trust-level.d.ts.map +0 -1
  1167. package/lib/security/turn-file-authority.d.ts.map +0 -1
  1168. package/lib/security/turn-network-client.d.ts.map +0 -1
  1169. package/lib/security/usage-quota.d.ts.map +0 -1
  1170. package/lib/segment/filter-im-delivery.d.ts.map +0 -1
  1171. package/lib/service.d.ts.map +0 -1
  1172. package/lib/session/approval-port.d.ts.map +0 -1
  1173. package/lib/session/approval-review-agent.d.ts.map +0 -1
  1174. package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
  1175. package/lib/session/contracts.d.ts.map +0 -1
  1176. package/lib/session/index.d.ts.map +0 -1
  1177. package/lib/session/session-io.d.ts.map +0 -1
  1178. package/lib/session/session-key.d.ts.map +0 -1
  1179. package/lib/session/session-system.d.ts.map +0 -1
  1180. package/lib/session/session-tree-commands.d.ts.map +0 -1
  1181. package/lib/session/strategies.d.ts.map +0 -1
  1182. package/lib/session/turn-ingress-session.d.ts.map +0 -1
  1183. package/lib/session-tree-runtime.d.ts.map +0 -1
  1184. package/lib/skill/capability-catalog.d.ts.map +0 -1
  1185. package/lib/skill/contracts.d.ts.map +0 -1
  1186. package/lib/skill/index.d.ts.map +0 -1
  1187. package/lib/skill/progressive-disclosure.d.ts.map +0 -1
  1188. package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
  1189. package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
  1190. package/lib/skill/skill-instructions.d.ts.map +0 -1
  1191. package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
  1192. package/lib/skill/skill-system.d.ts.map +0 -1
  1193. package/lib/spawn/permission-task.d.ts.map +0 -1
  1194. package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
  1195. package/lib/stability/memory-pressure.d.ts.map +0 -1
  1196. package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
  1197. package/lib/subagent/contracts.d.ts.map +0 -1
  1198. package/lib/subagent/im-result-sink.d.ts.map +0 -1
  1199. package/lib/subagent/index.d.ts.map +0 -1
  1200. package/lib/subagent/subagent-runtime.d.ts.map +0 -1
  1201. package/lib/subagent/subagent-system-init.d.ts.map +0 -1
  1202. package/lib/subagent/subagent-system.d.ts.map +0 -1
  1203. package/lib/subagent-ai-events.d.ts.map +0 -1
  1204. package/lib/subagent-artifact.d.ts.map +0 -1
  1205. package/lib/subagent-goal-notify.d.ts.map +0 -1
  1206. package/lib/subagent-parent-context.d.ts.map +0 -1
  1207. package/lib/subagent-preset.d.ts.map +0 -1
  1208. package/lib/subagent-prompt.d.ts.map +0 -1
  1209. package/lib/task-executor.d.ts.map +0 -1
  1210. package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
  1211. package/lib/tool/context-tools.d.ts.map +0 -1
  1212. package/lib/tool/contracts.d.ts.map +0 -1
  1213. package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
  1214. package/lib/tool/deferred-resolution.d.ts.map +0 -1
  1215. package/lib/tool/executable-tool-registry.d.ts.map +0 -1
  1216. package/lib/tool/index.d.ts.map +0 -1
  1217. package/lib/tool/pre-exec.d.ts.map +0 -1
  1218. package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
  1219. package/lib/tool/runtime.d.ts.map +0 -1
  1220. package/lib/tool/sources.d.ts.map +0 -1
  1221. package/lib/tool/tool-approval-gate.d.ts.map +0 -1
  1222. package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
  1223. package/lib/tool/tool-execution-authority.d.ts.map +0 -1
  1224. package/lib/tool/tool-model-output.d.ts.map +0 -1
  1225. package/lib/tool/tool-runtime.d.ts.map +0 -1
  1226. package/lib/tool/tool-system.d.ts.map +0 -1
  1227. package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
  1228. package/lib/tool-bridge.d.ts.map +0 -1
  1229. package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
  1230. package/lib/tool-catalog/index.d.ts.map +0 -1
  1231. package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
  1232. package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
  1233. package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
  1234. package/lib/tool-catalog/types.d.ts.map +0 -1
  1235. package/lib/trace/context-budget.d.ts.map +0 -1
  1236. package/lib/trace/index.d.ts.map +0 -1
  1237. package/lib/trace/turn-trace-archive.d.ts.map +0 -1
  1238. package/lib/trace/turn-trace-format.d.ts.map +0 -1
  1239. package/lib/trace/turn-trace-registry.d.ts.map +0 -1
  1240. package/lib/trace/turn-trace-store.d.ts.map +0 -1
  1241. package/lib/trace/turn-trace.d.ts.map +0 -1
  1242. package/lib/turn/agent-turn-context.d.ts.map +0 -1
  1243. package/lib/turn/auto-continue.d.ts.map +0 -1
  1244. package/lib/turn/cancel-intent.d.ts.map +0 -1
  1245. package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
  1246. package/lib/turn/deferred-delivery.d.ts.map +0 -1
  1247. package/lib/turn/deferred-turn-state.d.ts.map +0 -1
  1248. package/lib/turn/execute-agent-turn.d.ts.map +0 -1
  1249. package/lib/turn/inbound-media.d.ts.map +0 -1
  1250. package/lib/turn/inbound-queue-config.d.ts.map +0 -1
  1251. package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
  1252. package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
  1253. package/lib/turn/index.d.ts.map +0 -1
  1254. package/lib/turn/journal-feed.d.ts.map +0 -1
  1255. package/lib/turn/journal-integrity.d.ts.map +0 -1
  1256. package/lib/turn/persist-deferred-context.d.ts.map +0 -1
  1257. package/lib/turn/persist-subagent-context.d.ts.map +0 -1
  1258. package/lib/turn/process-stream.d.ts.map +0 -1
  1259. package/lib/turn/prompt-access.d.ts.map +0 -1
  1260. package/lib/turn/prompt-api.d.ts.map +0 -1
  1261. package/lib/turn/prompt-controller.d.ts.map +0 -1
  1262. package/lib/turn/prompt-input.d.ts.map +0 -1
  1263. package/lib/turn/session-message-queue.d.ts.map +0 -1
  1264. package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
  1265. package/lib/turn/task-continuation.d.ts.map +0 -1
  1266. package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
  1267. package/lib/turn/turn-admission-gate.d.ts.map +0 -1
  1268. package/lib/turn/turn-complete.d.ts.map +0 -1
  1269. package/lib/turn/turn-context-bridge.d.ts.map +0 -1
  1270. package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
  1271. package/lib/turn/turn-event-source.d.ts.map +0 -1
  1272. package/lib/turn/turn-ingress.d.ts.map +0 -1
  1273. package/lib/turn/turn-metrics.d.ts.map +0 -1
  1274. package/lib/turn/turn-pipeline.d.ts.map +0 -1
  1275. package/lib/turn/turn-terminal.d.ts.map +0 -1
  1276. package/lib/turn/turn-tracker.d.ts.map +0 -1
  1277. package/lib/types/disposable.d.ts.map +0 -1
  1278. package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
  1279. package/lib/typing-indicator/index.d.ts.map +0 -1
  1280. package/lib/user-profile.d.ts.map +0 -1
  1281. package/lib/utils/config-env.d.ts.map +0 -1
  1282. package/lib/utils/keyed-mutex.d.ts.map +0 -1
  1283. package/lib/web/bing-search-html.d.ts.map +0 -1
  1284. package/lib/web/web-search-locale.d.ts.map +0 -1
  1285. package/lib/web/web-tool-utils.d.ts.map +0 -1
  1286. package/lib/zhin-agent/index.d.ts.map +0 -1
  1287. package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
@@ -1,2 +1 @@
1
1
  export declare function isCancelIntent(text: string): boolean;
2
- //# sourceMappingURL=cancel-intent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cancel-intent.js","sourceRoot":"","sources":["../../src/turn/cancel-intent.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"cancel-intent.js","sourceRoot":"","sources":["../../src/turn/cancel-intent.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC","sourcesContent":["const CANCEL_KEYWORDS = new Set(['取消', '/cancel', 'cancel']);\n\nexport function isCancelIntent(text: string): boolean {\n return CANCEL_KEYWORDS.has(text.trim().toLowerCase());\n}\n"]}
@@ -8,4 +8,3 @@ export declare const DEFERRED_AUTO_CONTINUE_MARKER = "[Deferred worker \u5B8C\u6
8
8
  export declare function isDeferredAutoContinueEnabled(config: Required<ZhinAgentConfig>, env?: NodeJS.ProcessEnv): boolean;
9
9
  export declare function shouldDeferredAutoContinue(config: Required<ZhinAgentConfig>, result: DeferredWorkerResult, depth: number, persisted: boolean, env?: NodeJS.ProcessEnv): boolean;
10
10
  export declare function buildDeferredAutoContinueUserMessage(taskId: string, goal: string, status: DeferredWorkerResult['status']): UserMessage;
11
- //# sourceMappingURL=deferred-auto-continue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-auto-continue.js","sourceRoot":"","sources":["../../src/turn/deferred-auto-continue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,6BAA6B,CAC3C,MAAiC,EACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiC,EACjC,MAA4B,EAC5B,KAAa,EACb,SAAkB,EAClB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,MAAM,CAAC,4BAA4B;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAc,EACd,IAAY,EACZ,MAAsC;IAEtC,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG;QACX,6BAA6B;QAC7B,MAAM,MAAM,MAAM,KAAK,EAAE;QACzB,aAAa,MAAM,GAAG;QACtB,8EAA8E;QAC9E,oDAAoD;QACpD,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"deferred-auto-continue.js","sourceRoot":"","sources":["../../src/turn/deferred-auto-continue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,6BAA6B,CAC3C,MAAiC,EACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiC,EACjC,MAA4B,EAC5B,KAAa,EACb,SAAkB,EAClB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,MAAM,CAAC,4BAA4B;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAc,EACd,IAAY,EACZ,MAAsC;IAEtC,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG;QACX,6BAA6B;QAC7B,MAAM,MAAM,MAAM,KAAK,EAAE;QACzB,aAAa,MAAM,GAAG;QACtB,8EAA8E;QAC9E,oDAAoD;QACpD,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC","sourcesContent":["/**\n * Deferred worker 完成后自动唤醒主 Agent 续聊(方案 B)。\n */\nimport { createUserMessage, type UserMessage } from '@zhin.js/ai';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\nimport { extractDeferredBody } from './deferred-delivery.js';\nimport type { ZhinAgentConfig } from '../config/index.js';\n\nexport const DEFERRED_AUTO_CONTINUE_MARKER = '[Deferred worker 完成 — 自动续聊]';\n\nconst FALSE_ENV = new Set(['0', 'false', 'off', 'no']);\nconst TRUE_ENV = new Set(['1', 'true', 'on', 'yes']);\n\nexport function isDeferredAutoContinueEnabled(\n config: Required<ZhinAgentConfig>,\n env: NodeJS.ProcessEnv = process.env,\n): boolean {\n const raw = env.ZHIN_DEFERRED_AUTO_CONTINUE?.trim().toLowerCase();\n if (raw && FALSE_ENV.has(raw)) return false;\n if (raw && TRUE_ENV.has(raw)) return true;\n return config.deferredAutoContinue;\n}\n\nexport function shouldDeferredAutoContinue(\n config: Required<ZhinAgentConfig>,\n result: DeferredWorkerResult,\n depth: number,\n persisted: boolean,\n env: NodeJS.ProcessEnv = process.env,\n): boolean {\n if (!isDeferredAutoContinueEnabled(config, env)) return false;\n if (!persisted) return false;\n if (result.status === 'error') return false;\n if (depth >= config.deferredAutoContinueMaxDepth) return false;\n return extractDeferredBody(result).trim().length > 0;\n}\n\nexport function buildDeferredAutoContinueUserMessage(\n taskId: string,\n goal: string,\n status: DeferredWorkerResult['status'],\n): UserMessage {\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const text = [\n DEFERRED_AUTO_CONTINUE_MARKER,\n `任务【${taskId}】· ${label}`,\n `Worker 状态:${status}。`,\n '请根据上下文中 `[Deferred worker 完成]` 的 Worker 输出继续推进任务(含答题、提交、后续 API 调用);无需等待用户输入。',\n '若任务已全部完成,向用户简要汇报结果;否则继续调用当前可用工具或 spawn_task 执行下一步。',\n '不要向用户重复粘贴 Worker 的完整原始输出。',\n ].join('\\n');\n return createUserMessage(text);\n}\n"]}
@@ -6,4 +6,3 @@ export declare function extractDeferredBody(result: DeferredWorkerResult): strin
6
6
  export declare function deliverDeferredWorkerResult(sender: SubagentResultSender, commMessage: Message, goal: string, taskId: string, result: DeferredWorkerResult): Promise<void>;
7
7
  /** deferred auto-continue 完成后将主 Agent 续聊回复推送到 IM */
8
8
  export declare function deliverDeferredAutoContinueReply(sender: SubagentResultSender, commMessage: Message, elements: AgentOutputElement[]): Promise<void>;
9
- //# sourceMappingURL=deferred-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-delivery.js","sourceRoot":"","sources":["../../src/turn/deferred-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAIvC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,WAAoB,EACpB,IAAY,EACZ,MAAc,EACd,MAA4B;IAE5B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,KAAK,EAAE,YAAY,MAAM,IAAI,KAAK,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA4B,EAC5B,WAAoB,EACpB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC7B,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"deferred-delivery.js","sourceRoot":"","sources":["../../src/turn/deferred-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAIvC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,WAAoB,EACpB,IAAY,EACZ,MAAc,EACd,MAA4B;IAE5B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,KAAK,EAAE,YAAY,MAAM,IAAI,KAAK,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA4B,EAC5B,WAAoB,EACpB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC7B,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import type { AgentOutputElement } from '../outbound/agent-output.js';\n\nimport { truncatePreview } from '@zhin.js/logger';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { originFromMessage } from '../spawn/spawn-task-tool.js';\nimport type { Message } from '../resource-hub/types.js';\nimport { buildSubagentUserDelivery } from '../media/subagent-user-delivery.js';\nimport type { SubagentResultSender } from '../subagent/index.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\n\nexport function extractDeferredBody(result: DeferredWorkerResult): string {\n try {\n const parsed = JSON.parse(result.summary) as {\n summary?: string;\n error?: string;\n status?: string;\n };\n if (parsed.error?.trim()) return parsed.error.trim();\n if (parsed.summary?.trim()) return parsed.summary.trim();\n } catch {\n // fall through\n }\n return result.summary.trim();\n}\n\nexport async function deliverDeferredWorkerResult(\n sender: SubagentResultSender,\n commMessage: Message,\n goal: string,\n taskId: string,\n result: DeferredWorkerResult,\n): Promise<void> {\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const body = extractDeferredBody(result) || truncatePreview(goal, 300);\n const delivery = buildSubagentUserDelivery({\n label: `deferred:${taskId} ${label}`,\n status: result.status === 'error' ? 'error' : 'ok',\n result: body,\n toolCalls: result.toolCalls ?? [],\n });\n await sender(originFromMessage(commMessage), delivery);\n}\n\n/** deferred auto-continue 完成后将主 Agent 续聊回复推送到 IM */\nexport async function deliverDeferredAutoContinueReply(\n sender: SubagentResultSender,\n commMessage: Message,\n elements: AgentOutputElement[],\n): Promise<void> {\n if (!elements.length) return;\n await sender(originFromMessage(commMessage), { text: '', elements });\n}\n"]}
@@ -26,4 +26,3 @@ export declare class DeferredTurnState {
26
26
  /** Generation/实例 teardown:清空全部跨 turn 状态。 */
27
27
  clear(): void;
28
28
  }
29
- //# sourceMappingURL=deferred-turn-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-turn-state.js","sourceRoot":"","sources":["../../src/turn/deferred-turn-state.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAC5B,6CAA6C;IAC7C,OAAO,GAAgB,EAAE,CAAC;IAC1B,kCAAkC;IAClC,WAAW,CAAqB;IAChC,8BAA8B;IAC9B,mBAAmB,CAA+B;IAClD,4BAA4B;IAC5B,kBAAkB,CAA+B;IACjD,uCAAuC;IACvC,mBAAmB,CAAU;IAC7B,qDAAqD;IACrD,YAAY,GAAgC,IAAI,CAAC;IAEjD,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,KAAa;QACpD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACvC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"deferred-turn-state.js","sourceRoot":"","sources":["../../src/turn/deferred-turn-state.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAC5B,6CAA6C;IAC7C,OAAO,GAAgB,EAAE,CAAC;IAC1B,kCAAkC;IAClC,WAAW,CAAqB;IAChC,8BAA8B;IAC9B,mBAAmB,CAA+B;IAClD,4BAA4B;IAC5B,kBAAkB,CAA+B;IACjD,uCAAuC;IACvC,mBAAmB,CAAU;IAC7B,qDAAqD;IACrD,YAAY,GAAgC,IAAI,CAAC;IAEjD,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,KAAa;QACpD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACvC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF","sourcesContent":["/**\n * DeferredTurnState — deferred 工具族的跨 turn 可变状态。\n * 从 ZhinAgentPrivate 的散字段收敛而来(第一刀);由 ZhinAgent 持有一个实例,\n * 消费方经 `priv.deferred` 访问。\n */\nimport type { AgentTool, DeferredToolSessionSnapshot } from '@zhin.js/ai';\nimport type { ToolCatalogItem } from '../tool-catalog/types.js';\nimport type { SubagentResultSender } from '../subagent/index.js';\n\nexport class DeferredTurnState {\n /** 当前 turn 可用的 deferred 工具目录(全量 Tool 形态)。 */\n catalog: AgentTool[] = [];\n /** 最近一次展示的目录条目(toolSearch 结果)。 */\n lastCatalog?: ToolCatalogItem[];\n /** 最近一次写入的会话级 deferred 快照。 */\n lastSessionSnapshot?: DeferredToolSessionSnapshot;\n /** 上turn 快照(计算 delta 用)。 */\n lastSnapshotBefore?: DeferredToolSessionSnapshot;\n /** 最近一次 toolSearch 的 deferred 统计文本。 */\n lastToolSearchStats?: string;\n /** deferred/subagent 结果回投器(未装配时为 null,调用方按无回投降级)。 */\n resultSender: SubagentResultSender | null = null;\n\n #autoContinueDepthBySession = new Map<string, number>();\n\n getAutoContinueDepth(sessionKey: string): number {\n return this.#autoContinueDepthBySession.get(sessionKey) ?? 0;\n }\n\n setAutoContinueDepth(sessionKey: string, depth: number): void {\n this.#autoContinueDepthBySession.set(sessionKey, depth);\n }\n\n resetAutoContinueDepth(sessionKey: string): void {\n this.#autoContinueDepthBySession.delete(sessionKey);\n }\n\n /** Generation/实例 teardown:清空全部跨 turn 状态。 */\n clear(): void {\n this.catalog = [];\n this.lastCatalog = undefined;\n this.lastSessionSnapshot = undefined;\n this.lastSnapshotBefore = undefined;\n this.lastToolSearchStats = undefined;\n this.resultSender = null;\n this.#autoContinueDepthBySession.clear();\n }\n}\n"]}
@@ -11,4 +11,3 @@ export type TurnEventObserver = (event: TurnEvent) => void | Promise<void>;
11
11
  * they cannot replace or fabricate the terminal result.
12
12
  */
13
13
  export declare function executeAgentTurn(turn: TurnIngress, run: TurnEventSource, observe?: TurnEventObserver): Promise<TurnOutcome>;
14
- //# sourceMappingURL=execute-agent-turn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-agent-turn.js","sourceRoot":"","sources":["../../src/turn/execute-agent-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-agent-turn.js","sourceRoot":"","sources":["../../src/turn/execute-agent-turn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Usage } from '@zhin.js/ai';\nimport type { TurnEvent, TurnTerminalEvent } from '../event/turn-event.js';\nimport type { TurnIngress, TurnOutcome } from './turn-ingress.js';\nimport { TurnTerminalGate } from './turn-terminal.js';\nimport { TurnJournalCommitError } from './journal-integrity.js';\nimport { journalFeedOf } from './journal-feed.js';\n\nexport interface TurnTerminalProjection {\n project(): void | Promise<void>;\n}\n\nexport type TurnEventSource = (\n turn: TurnIngress,\n) => AsyncGenerator<TurnEvent, TurnTerminalProjection | void>;\nexport type TurnEventObserver = (event: TurnEvent) => void | Promise<void>;\n\nconst emptyUsage: Usage = Object.freeze({\n prompt_tokens: 0,\n completion_tokens: 0,\n total_tokens: 0,\n});\n\n/**\n * Agent's single public execution algebra: one immutable ingress enters and\n * exactly one discriminated outcome leaves. Event observers are projections;\n * they cannot replace or fabricate the terminal result.\n */\nexport async function executeAgentTurn(\n turn: TurnIngress,\n run: TurnEventSource,\n observe?: TurnEventObserver,\n): Promise<TurnOutcome> {\n const gate = new TurnTerminalGate();\n let observedUsage = emptyUsage;\n let stream: ReturnType<TurnEventSource> | undefined;\n // When the journal carries a feed, observers read committed journal facts\n // (including authority tool events) instead of the raw engine stream.\n const feed = journalFeedOf(turn.ports.journal);\n const closeFeed = feed?.open();\n try {\n stream = run(turn);\n while (true) {\n const step = await stream.next();\n if (step.done) break;\n const event = step.value;\n try {\n await turn.ports.journal.append(event);\n } catch (error) {\n return failedOutcome('turn_journal_commit_failed', error, true, observedUsage);\n }\n const committed = feed ? feed.drain() : [event];\n for (const fact of committed) {\n if (!gate.accept(fact)) continue;\n if (fact.type === 'usage') observedUsage = addUsage(observedUsage, fact.usage);\n try {\n await observe?.(fact);\n } catch {\n // Observers are projections. Once an event is accepted by the terminal\n // gate, projection failure cannot rewrite the execution fact.\n }\n if (gate.terminal) break;\n }\n if (gate.terminal) {\n try {\n const completion = await stream.next();\n if (!completion.done) {\n await publishProjectionFailure(turn, new Error('Agent engine emitted an event after terminal'));\n } else if (completion.value) {\n await runProjection(turn, completion.value);\n }\n } catch (error) {\n await publishProjectionFailure(turn, error);\n }\n break;\n }\n }\n } catch (error) {\n if (gate.terminal) return outcomeFromTerminal(gate.terminal, observedUsage);\n const terminal: TurnTerminalEvent = turn.signal.aborted\n ? {\n type: 'turn_cancelled',\n code: 'cancelled',\n reason: errorMessage(turn.signal.reason ?? error, 'cancelled'),\n }\n : {\n type: 'error',\n code: error instanceof TurnJournalCommitError\n ? 'turn_journal_commit_failed'\n : 'turn_engine_failed',\n error: asError(error),\n recoverable: !(error instanceof TurnJournalCommitError),\n };\n return commitSyntheticTerminal(turn, gate, terminal, observedUsage);\n } finally {\n closeFeed?.();\n try {\n await stream?.return(undefined);\n } catch {\n // Cleanup cannot replace an already recorded execution outcome.\n }\n }\n\n if (gate.terminal) return outcomeFromTerminal(gate.terminal, observedUsage);\n return commitSyntheticTerminal(turn, gate, {\n type: 'error',\n code: 'turn_terminal_missing',\n error: new Error('Agent turn engine ended without a terminal event'),\n recoverable: false,\n }, observedUsage);\n}\n\nasync function runProjection(turn: TurnIngress, projection: TurnTerminalProjection): Promise<void> {\n try {\n await projection.project();\n } catch (error) {\n await publishProjectionFailure(turn, error);\n }\n}\n\nasync function publishProjectionFailure(turn: TurnIngress, error: unknown): Promise<void> {\n try {\n await turn.ports.activity?.publish({\n type: 'turn_projection_failed',\n data: errorMessage(error, 'turn projection failed'),\n });\n } catch {\n // Diagnostics are projections too; the durable terminal remains authority.\n }\n}\n\nasync function commitSyntheticTerminal(\n turn: TurnIngress,\n gate: TurnTerminalGate,\n terminal: TurnTerminalEvent,\n usage: Usage,\n): Promise<TurnOutcome> {\n try {\n await turn.ports.journal.append(terminal);\n } catch (error) {\n return failedOutcome('turn_journal_commit_failed', error, true, usage);\n }\n if (!gate.accept(terminal) || !gate.terminal) {\n return failedOutcome(\n 'turn_terminal_commit_rejected',\n new Error('Turn terminal gate rejected a synthesized terminal fact'),\n false,\n usage,\n );\n }\n return outcomeFromTerminal(gate.terminal, usage);\n}\n\nfunction outcomeFromTerminal(event: TurnTerminalEvent, observedUsage: Usage): TurnOutcome {\n switch (event.type) {\n case 'turn_end':\n return Object.freeze({\n status: 'completed',\n output: Object.freeze([...event.output]),\n usage: usageFromTurn(event.usage),\n });\n case 'turn_cancelled':\n return Object.freeze({\n status: 'cancelled',\n reason: event.reason,\n usage: observedUsage,\n });\n case 'error':\n return failedOutcome(event.code ?? 'turn_failed', event.error, event.recoverable, observedUsage);\n case 'budget_exceeded':\n return Object.freeze({\n status: 'budget_exceeded',\n budget: event.budget,\n usage: usageFromTurn(event.usage),\n });\n }\n}\n\nfunction usageFromTurn(usage: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n}): Usage {\n return Object.freeze({\n prompt_tokens: usage.promptTokens,\n completion_tokens: usage.completionTokens,\n total_tokens: usage.totalTokens,\n });\n}\n\nfunction failedOutcome(code: string, error: unknown, retryable: boolean, usage: Usage): TurnOutcome {\n return Object.freeze({\n status: 'failed',\n error: Object.freeze({\n code,\n message: error instanceof Error ? error.message : String(error),\n retryable,\n }),\n usage,\n });\n}\n\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction errorMessage(reason: unknown, fallback: string): string {\n return reason instanceof Error ? reason.message : String(reason ?? fallback);\n}\n\nfunction addUsage(current: Usage, next: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n}): Usage {\n return Object.freeze({\n prompt_tokens: current.prompt_tokens + next.promptTokens,\n completion_tokens: current.completion_tokens + next.completionTokens,\n total_tokens: current.total_tokens + next.totalTokens,\n });\n}\n"]}
@@ -10,7 +10,7 @@
10
10
  * `ai.multimodal.perception` 时,图片 / 视频 / PDF 由感知模型描述后以
11
11
  * untrusted 文本注入(`[图片描述]` 等),失败或超出单回合上限时保持原占位。
12
12
  */
13
- import { type MediaContentBlock, type ModelInputModality } from '@zhin.js/ai';
13
+ import { type Usage, type MediaContentBlock, type ModelInputModality } from '@zhin.js/ai';
14
14
  import type { AudioTranscriptionPort } from '../media/media-types.js';
15
15
  import { type MediaPerceptionPort } from '../media/perception.js';
16
16
  import type { ReferencePort, TurnMedia } from './turn-ingress.js';
@@ -21,6 +21,8 @@ export interface InboundMediaInjection {
21
21
  readonly textAppends: string[];
22
22
  /** 与输入媒体一一对应的终态。 */
23
23
  readonly outcomes: InboundMediaOutcome[];
24
+ /** Tokens spent by the perception pre-pass (not part of the turn's own completion usage). */
25
+ readonly perceptionUsage?: Usage;
24
26
  }
25
27
  export interface InboundMediaOutcome {
26
28
  readonly kind: TurnMedia['kind'];
@@ -49,4 +51,3 @@ export declare function resolveTurnMediaInjection(turnMedia: readonly TurnMedia[
49
51
  * textAppends 以独立 text 块追加在其后(不改动历史消息)。
50
52
  */
51
53
  export declare function applyInboundMediaInjection(userMessages: readonly import('@zhin.js/ai').AgentMessage[], injection: InboundMediaInjection): import('@zhin.js/ai').AgentMessage[];
52
- //# sourceMappingURL=inbound-media.d.ts.map
@@ -15,7 +15,7 @@ import { formatCompact, getLogger } from '@zhin.js/logger';
15
15
  import { normalizeMediaRefsToPayloads, } from '../media/media-normalize.js';
16
16
  import { transcribeAudioPayload } from '../media/media-router.js';
17
17
  import { resolveMultimodalConfig } from '../media/resolve-config.js';
18
- import { renderPerceptionCaption } from '../media/perception.js';
18
+ import { MediaPerceptionFailedError, renderPerceptionCaption } from '../media/perception.js';
19
19
  const logger = getLogger('ZhinAgent');
20
20
  const EMPTY_INJECTION = Object.freeze({
21
21
  blocks: Object.freeze([]),
@@ -60,6 +60,7 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
60
60
  const textAppends = [];
61
61
  const outcomes = [];
62
62
  let perceived = 0;
63
+ let perceptionUsage;
63
64
  for (const { entry, type, media: initialMedia } of refs) {
64
65
  let media = initialMedia;
65
66
  if (entry.source.kind === 'platform_ref') {
@@ -126,6 +127,8 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
126
127
  perceived += 1;
127
128
  try {
128
129
  const result = await perception.describe(payload, signal);
130
+ if (result?.usage)
131
+ perceptionUsage = addUsage(perceptionUsage, result.usage);
129
132
  if (result?.text.trim()) {
130
133
  textAppends.push(renderPerceptionCaption(type, result.text));
131
134
  outcomes.push({
@@ -143,6 +146,9 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
143
146
  }
144
147
  }
145
148
  catch (error) {
149
+ // A call that failed after reaching the provider still counts against the quota.
150
+ if (error instanceof MediaPerceptionFailedError)
151
+ perceptionUsage = addUsage(perceptionUsage, error.usage);
146
152
  signal.throwIfAborted();
147
153
  logger.warn(formatCompact({
148
154
  op: 'inbound_perception_failed',
@@ -161,7 +167,14 @@ export async function resolveTurnMediaInjection(turnMedia, options = {}) {
161
167
  }
162
168
  if (blocks.length === 0 && textAppends.length === 0 && outcomes.length === 0)
163
169
  return EMPTY_INJECTION;
164
- return { blocks, textAppends, outcomes };
170
+ return { blocks, textAppends, outcomes, ...(perceptionUsage ? { perceptionUsage } : {}) };
171
+ }
172
+ function addUsage(a, b) {
173
+ return {
174
+ prompt_tokens: (a?.prompt_tokens ?? 0) + b.prompt_tokens,
175
+ completion_tokens: (a?.completion_tokens ?? 0) + b.completion_tokens,
176
+ total_tokens: (a?.total_tokens ?? 0) + b.total_tokens,
177
+ };
165
178
  }
166
179
  /**
167
180
  * 把注入结果合入 LLM 绑定的 userMessages:最后一个 user 消息挂 media 块,
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-media.js","sourceRoot":"","sources":["../../src/turn/inbound-media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-media.js","sourceRoot":"","sources":["../../src/turn/inbound-media.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 入站媒体注入 — TurnIngress 的 canonical media → 当前 turn 的\n * `UserMessage.media`(MediaContentBlock,不随 session 持久化)。\n *\n * 策略(`ai.multimodal`):\n * 每个输入媒体必须产生 accepted / derived / unsupported / rejected / failed\n * 之一;失败不得伪装成已经被模型识别的媒体占位。\n *\n * 当前模型收不了的媒体:音频先走 STT(`[语音转写]`);配置了\n * `ai.multimodal.perception` 时,图片 / 视频 / PDF 由感知模型描述后以\n * untrusted 文本注入(`[图片描述]` 等),失败或超出单回合上限时保持原占位。\n */\nimport { isMediaBlockRef, type Usage, type MediaContentBlock, type MediaBlockRef, type ModelInputModality } from '@zhin.js/ai';\nimport { formatCompact, getLogger } from '@zhin.js/logger';\nimport {\n normalizeMediaRefsToPayloads,\n} from '../media/media-normalize.js';\nimport type { AudioTranscriptionPort, MediaBinaryPayload } from '../media/media-types.js';\nimport { transcribeAudioPayload } from '../media/media-router.js';\nimport { resolveMultimodalConfig } from '../media/resolve-config.js';\nimport { MediaPerceptionFailedError, renderPerceptionCaption, type MediaPerceptionPort } from '../media/perception.js';\nimport type { ReferencePort, TurnMedia } from './turn-ingress.js';\n\nconst logger = getLogger('ZhinAgent');\n\nexport interface InboundMediaInjection {\n /** 挂到当前 turn UserMessage.media 的媒体块 */\n readonly blocks: MediaContentBlock[];\n /** 需要拼进用户消息文本的补充(STT 转写 / 占位) */\n readonly textAppends: string[];\n /** 与输入媒体一一对应的终态。 */\n readonly outcomes: InboundMediaOutcome[];\n /** Tokens spent by the perception pre-pass (not part of the turn's own completion usage). */\n readonly perceptionUsage?: Usage;\n}\n\nexport interface InboundMediaOutcome {\n readonly kind: TurnMedia['kind'];\n readonly status: 'accepted' | 'derived' | 'unsupported' | 'rejected' | 'failed';\n readonly code: string;\n /** Where derived text came from (perception pre-pass); the text is untrusted external content. */\n readonly provenance?: InboundMediaProvenance;\n}\n\nexport interface InboundMediaProvenance {\n readonly source: 'media_perception';\n readonly provider: string;\n readonly model: string;\n readonly cached: boolean;\n}\n\nexport interface ResolveTurnMediaOptions {\n readonly references?: ReferencePort;\n readonly signal?: AbortSignal;\n readonly providerInput?: readonly ModelInputModality[];\n readonly transcriber?: AudioTranscriptionPort;\n /** `ai.multimodal.perception`: describes media the turn's model cannot take. Absent = placeholders. */\n readonly perception?: MediaPerceptionPort;\n}\n\nconst EMPTY_INJECTION: InboundMediaInjection = Object.freeze({\n blocks: Object.freeze([]) as unknown as MediaContentBlock[],\n textAppends: Object.freeze([]) as unknown as string[],\n outcomes: Object.freeze([]) as unknown as InboundMediaOutcome[],\n});\n\nfunction failureText(type: string, code: string, ref: MediaBlockRef): string {\n const label = ref.file_name ? `; ${ref.file_name}` : '';\n return `[Media ${code}: ${type}${label}]`;\n}\n\nfunction toBase64Block(\n type: MediaContentBlock['type'],\n payload: MediaBinaryPayload,\n alt?: string,\n): MediaContentBlock {\n return {\n type,\n data: {\n media: {\n kind: 'base64',\n value: payload.base64,\n mime_type: payload.mimeType,\n ...(payload.fileName ? { file_name: payload.fileName } : {}),\n },\n ...(alt ? { alt } : {}),\n },\n };\n}\n\nexport async function resolveTurnMediaInjection(\n turnMedia: readonly TurnMedia[] | undefined,\n options: ResolveTurnMediaOptions = {},\n): Promise<InboundMediaInjection> {\n const {\n references,\n signal = new AbortController().signal,\n providerInput,\n transcriber,\n perception,\n } = options;\n const refs = (turnMedia ?? []).map((entry) => ({\n entry,\n type: entry.kind,\n media: {\n kind: entry.source.kind === 'platform_ref' ? 'file' as const : entry.source.kind,\n value: entry.source.value,\n ...(entry.mimeType ? { mime_type: entry.mimeType } : {}),\n ...(entry.name ? { file_name: entry.name } : {}),\n } satisfies MediaBlockRef,\n }));\n if (refs.length === 0) return EMPTY_INJECTION;\n\n const config = resolveMultimodalConfig();\n const supportedInput = new Set<ModelInputModality>(providerInput ?? ['text']);\n const blocks: MediaContentBlock[] = [];\n const textAppends: string[] = [];\n const outcomes: InboundMediaOutcome[] = [];\n let perceived = 0;\n let perceptionUsage: Usage | undefined;\n\n for (const { entry, type, media: initialMedia } of refs) {\n let media = initialMedia;\n if (entry.source.kind === 'platform_ref') {\n if (!entry.referenceKey || !references) {\n textAppends.push(failureText(type, 'unsupported:unresolved_platform_reference', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'unresolved_platform_reference' });\n continue;\n }\n const resolution = await references.resolve(entry.referenceKey, {\n depth: 0,\n maxEntries: 1,\n maxChars: 0,\n }, signal);\n if (resolution.status !== 'resolved' || !isMediaBlockRef(resolution.content)) {\n const code = resolution.status === 'resolved' ? 'invalid_platform_media' : resolution.code;\n textAppends.push(failureText(type, `failed:${code}`, media));\n outcomes.push({ kind: type, status: resolution.status === 'forbidden' ? 'rejected' : 'failed', code });\n continue;\n }\n media = resolution.content;\n }\n signal.throwIfAborted();\n const payload = (await normalizeMediaRefsToPayloads(\n [{ type, media: media as never }],\n config.maxFileBytes,\n signal,\n ))[0];\n signal.throwIfAborted();\n if (!payload) {\n const code = media.kind === 'file' ? 'unmaterialized_platform_reference' : 'media_validation_failed';\n logger.warn(formatCompact({ op: 'inbound_media_rejected', type, reason: code }));\n textAppends.push(failureText(type, `rejected:${code}`, media));\n outcomes.push({ kind: type, status: 'rejected', code });\n continue;\n }\n\n if (type === 'audio') {\n if (config.audio.strategy === 'transcribe') {\n try {\n const text = await transcribeAudioPayload(payload, transcriber, signal);\n if (text?.trim()) {\n textAppends.push(`[语音转写] ${text.trim()}`);\n outcomes.push({ kind: type, status: 'derived', code: 'speech_transcription' });\n continue;\n }\n } catch (error) {\n logger.warn(formatCompact({\n op: 'inbound_stt_failed',\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n if (!supportedInput.has('audio')) {\n textAppends.push(failureText(type, 'unsupported:provider_input', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'provider_input' });\n continue;\n }\n blocks.push(toBase64Block('audio', payload));\n outcomes.push({ kind: type, status: 'accepted', code: 'validated_provider_input' });\n continue;\n }\n\n if (!supportedInput.has(type)) {\n if (perception?.accepts(payload)) {\n if (perceived >= perception.maxItemsPerTurn) {\n logger.warn(formatCompact({ op: 'inbound_perception_skipped', type, reason: 'max_items_per_turn' }));\n } else {\n perceived += 1;\n try {\n const result = await perception.describe(payload, signal);\n if (result?.usage) perceptionUsage = addUsage(perceptionUsage, result.usage);\n if (result?.text.trim()) {\n textAppends.push(renderPerceptionCaption(type, result.text));\n outcomes.push({\n kind: type,\n status: 'derived',\n code: 'media_perception',\n provenance: Object.freeze({\n source: 'media_perception' as const,\n provider: result.provider,\n model: result.model,\n cached: result.cached,\n }),\n });\n continue;\n }\n } catch (error) {\n // A call that failed after reaching the provider still counts against the quota.\n if (error instanceof MediaPerceptionFailedError) perceptionUsage = addUsage(perceptionUsage, error.usage);\n signal.throwIfAborted();\n logger.warn(formatCompact({\n op: 'inbound_perception_failed',\n type,\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n }\n textAppends.push(failureText(type, 'unsupported:provider_input', media));\n outcomes.push({ kind: type, status: 'unsupported', code: 'provider_input' });\n continue;\n }\n blocks.push(toBase64Block(type, payload));\n outcomes.push({ kind: type, status: 'accepted', code: 'validated_provider_input' });\n }\n\n if (blocks.length === 0 && textAppends.length === 0 && outcomes.length === 0) return EMPTY_INJECTION;\n return { blocks, textAppends, outcomes, ...(perceptionUsage ? { perceptionUsage } : {}) };\n}\n\nfunction addUsage(a: Usage | undefined, b: Usage): Usage {\n return {\n prompt_tokens: (a?.prompt_tokens ?? 0) + b.prompt_tokens,\n completion_tokens: (a?.completion_tokens ?? 0) + b.completion_tokens,\n total_tokens: (a?.total_tokens ?? 0) + b.total_tokens,\n };\n}\n\n/**\n * 把注入结果合入 LLM 绑定的 userMessages:最后一个 user 消息挂 media 块,\n * textAppends 以独立 text 块追加在其后(不改动历史消息)。\n */\nexport function applyInboundMediaInjection(\n userMessages: readonly import('@zhin.js/ai').AgentMessage[],\n injection: InboundMediaInjection,\n): import('@zhin.js/ai').AgentMessage[] {\n if (!injection.blocks.length && !injection.textAppends.length) {\n return [...userMessages];\n }\n const out = [...userMessages];\n for (let i = out.length - 1; i >= 0; i -= 1) {\n const msg = out[i]!;\n if (msg.role !== 'user') continue;\n const content = Array.isArray(msg.content) ? msg.content : [];\n out[i] = {\n ...msg,\n content: [\n ...content,\n ...injection.textAppends.map((text) => ({ type: 'text' as const, text })),\n ],\n ...(injection.blocks.length ? { media: injection.blocks } : {}),\n };\n break;\n }\n return out;\n}\n"]}
@@ -12,4 +12,3 @@ export declare function normalizeInboundQueueConfig(raw?: InboundQueueConfig | n
12
12
  export declare function validateInboundQueueConfig(raw?: InboundQueueConfig | null): string[];
13
13
  export declare function isGroupOrChannelMessage(message: Message): boolean;
14
14
  export declare function shouldUseGroupFifoQueue(message: Message, config: ResolvedInboundQueueConfig): boolean;
15
- //# sourceMappingURL=inbound-queue-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-queue-config.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-queue-config.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-config.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Message } from '../resource-hub/types.js';\n\nimport type { InboundQueueConfig, InboundGroupQueueMode } from '../config/zhin-agent-config.js';\n\nexport type { InboundQueueConfig, InboundGroupQueueMode } from '../config/zhin-agent-config.js';\n\nexport interface ResolvedInboundQueueConfig {\n groupMode: InboundGroupQueueMode;\n ttlMs: number;\n coalesceWindowMs: number;\n maxQueuedTurns: number;\n}\n\nexport const DEFAULT_INBOUND_QUEUE_CONFIG: ResolvedInboundQueueConfig = {\n groupMode: 'supersede',\n ttlMs: 180_000,\n coalesceWindowMs: 30_000,\n maxQueuedTurns: 5,\n};\n\nexport function normalizeInboundQueueConfig(\n raw?: InboundQueueConfig | null,\n): ResolvedInboundQueueConfig {\n const groupMode = raw?.groupMode === 'fifo' ? 'fifo' : 'supersede';\n const ttlMs = typeof raw?.ttlMs === 'number' && raw.ttlMs >= 0\n ? raw.ttlMs\n : DEFAULT_INBOUND_QUEUE_CONFIG.ttlMs;\n const coalesceWindowMs = typeof raw?.coalesceWindowMs === 'number' && raw.coalesceWindowMs >= 0\n ? raw.coalesceWindowMs\n : DEFAULT_INBOUND_QUEUE_CONFIG.coalesceWindowMs;\n const maxQueuedTurns = typeof raw?.maxQueuedTurns === 'number' && Number.isInteger(raw.maxQueuedTurns) && raw.maxQueuedTurns >= 0\n ? raw.maxQueuedTurns\n : DEFAULT_INBOUND_QUEUE_CONFIG.maxQueuedTurns;\n return { groupMode, ttlMs, coalesceWindowMs, maxQueuedTurns };\n}\n\nexport function validateInboundQueueConfig(raw?: InboundQueueConfig | null): string[] {\n const errors: string[] = [];\n if (!raw) return errors;\n if (raw.groupMode !== undefined && raw.groupMode !== 'supersede' && raw.groupMode !== 'fifo') {\n errors.push('ai.agent.inboundQueue.groupMode must be supersede or fifo');\n }\n if (raw.ttlMs !== undefined && (typeof raw.ttlMs !== 'number' || !Number.isFinite(raw.ttlMs) || raw.ttlMs < 0)) {\n errors.push('ai.agent.inboundQueue.ttlMs must be a non-negative number');\n }\n if (\n raw.coalesceWindowMs !== undefined\n && (typeof raw.coalesceWindowMs !== 'number' || !Number.isFinite(raw.coalesceWindowMs) || raw.coalesceWindowMs < 0)\n ) {\n errors.push('ai.agent.inboundQueue.coalesceWindowMs must be a non-negative number');\n }\n if (\n raw.maxQueuedTurns !== undefined\n && (typeof raw.maxQueuedTurns !== 'number' || !Number.isInteger(raw.maxQueuedTurns) || raw.maxQueuedTurns < 0)\n ) {\n errors.push('ai.agent.inboundQueue.maxQueuedTurns must be a non-negative integer');\n }\n return errors;\n}\n\nexport function isGroupOrChannelMessage(message: Message): boolean {\n const kind = message.conversation.kind;\n return kind === 'group' || kind === 'channel';\n}\n\nexport function shouldUseGroupFifoQueue(\n message: Message,\n config: ResolvedInboundQueueConfig,\n): boolean {\n return config.groupMode === 'fifo' && isGroupOrChannelMessage(message);\n}\n"]}
@@ -13,4 +13,3 @@ export declare function runWithInboundQueue<T>(commMessage: Message, inboundQueu
13
13
  signal?: AbortSignal;
14
14
  run: (mergedContent: string) => Promise<T>;
15
15
  }): Promise<T>;
16
- //# sourceMappingURL=inbound-queue-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-queue-runtime.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,OAA8B;IAE9B,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;QACrD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB,EACpB,kBAA8C,EAC9C,KAAuB,EACvB,IAKC;IAED,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,QAAQ,CAAC;QACpB,UAAU;QACV,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"inbound-queue-runtime.js","sourceRoot":"","sources":["../../src/turn/inbound-queue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,OAA8B;IAE9B,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;QACrD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;gBACrD,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;aAChD,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB,EACpB,kBAA8C,EAC9C,KAAuB,EACvB,IAKC;IAED,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,QAAQ,CAAC;QACpB,UAAU;QACV,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentEventEmitter } from '../event/event-emitter.js';\nimport { InboundTurnQueue } from './inbound-turn-queue.js';\nimport {\n normalizeInboundQueueConfig,\n shouldUseGroupFifoQueue,\n type ResolvedInboundQueueConfig,\n} from './inbound-queue-config.js';\nimport type { ZhinAgentConfig } from '../config/index.js';\n\nexport function createInboundTurnQueue(\n config: Required<ZhinAgentConfig>,\n emitter: ZhinAgentEventEmitter,\n): { config: ResolvedInboundQueueConfig; queue: InboundTurnQueue } {\n const inboundQueueConfig = normalizeInboundQueueConfig(config.inboundQueue);\n const queue = new InboundTurnQueue(inboundQueueConfig, {\n emitQueuedStart: (commMessage, sessionKey) => {\n emitter.emit(\n 'ai.activity.queued.start',\n emitter.createPayload(sessionKey, commMessage, 'text', {\n hookContext: { activityFeedbackEligible: true },\n }),\n );\n },\n emitQueuedClear: (commMessage, sessionKey) => {\n emitter.emit(\n 'ai.activity.queued.clear',\n emitter.createPayload(sessionKey, commMessage, 'text', {\n hookContext: { activityFeedbackEligible: true },\n }),\n );\n },\n });\n return { config: inboundQueueConfig, queue };\n}\n\nexport async function runWithInboundQueue<T>(\n commMessage: Message,\n inboundQueueConfig: ResolvedInboundQueueConfig,\n queue: InboundTurnQueue,\n opts: {\n content?: string;\n coalesce?: boolean;\n signal?: AbortSignal;\n run: (mergedContent: string) => Promise<T>;\n },\n): Promise<T> {\n if (!shouldUseGroupFifoQueue(commMessage, inboundQueueConfig)) {\n return opts.run(opts.content ?? '');\n }\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n return queue.schedule({\n sessionKey,\n commMessage,\n content: opts.content,\n coalesce: opts.coalesce,\n signal: opts.signal,\n run: opts.run,\n });\n}\n"]}
@@ -32,4 +32,3 @@ export declare class InboundTurnQueue {
32
32
  private cancelQueuedEntry;
33
33
  private clearQueuedFeedback;
34
34
  }
35
- //# sourceMappingURL=inbound-turn-queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-turn-queue.js","sourceRoot":"","sources":["../../src/turn/inbound-turn-queue.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,UAAkB;QAC5B,KAAK,CAAC,6CAA6C,UAAU,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,UAAkB,EAAE,MAAgB;QAC9C,KAAK,CAAC,+CAA+C,UAAU,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzH,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAyBD,MAAM,WAAW,GAAgC;IAC/C,eAAe,KAAI,CAAC;IACpB,eAAe,KAAI,CAAC;CACrB,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAKjB;IACA;IALO,MAAM,GAAG,IAAI,GAAG,EAAwC,CAAC;IACzD,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE7D,YACU,MAAkC,EAClC,kBAA+C,WAAW;QAD1D,WAAM,GAAN,MAAM,CAA4B;QAClC,oBAAe,GAAf,eAAe,CAA2C;IACjE,CAAC;IAEJ,YAAY,CAAC,MAAkC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAI,OAOX;QACC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACjD,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;QACnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,eAAe,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAyB,CAAC;YAC7D,IACE,IAAI,CAAC,QAAQ,KAAK,QAAQ;mBACvB,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC3D,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,OAA4B,CAAC;QACjC,IAAI,MAAkC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,GAAG,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAyB;YAClC,UAAU;YACV,QAAQ;YACR,WAAW;YACX,sBAAsB,EAAE,EAAE;YAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,GAAG;YACnB,eAAe;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,KAAK;YACd,OAAO;YACP,GAAG;YACH,OAAO;YACP,MAAM;SACP,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAmC,CAAC,CAAC;YAChF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,KAAK,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAmC,CAAC,CAAC;QAEhD,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC9D,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,SAAS,CAAC,KAAiC,EAAE,GAAW;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC/B,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAE1C,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;gBAED,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;gBAErB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,KAAiC;QACzD,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7D,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,mBAAmB,CAAC,KAAiC;QAC3D,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,MAAgB;IAC9D,IAAI,MAAM,YAAY,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC3E,OAAO,IAAI,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"inbound-turn-queue.js","sourceRoot":"","sources":["../../src/turn/inbound-turn-queue.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Message } from '../resource-hub/types.js';\nimport type { ResolvedInboundQueueConfig } from './inbound-queue-config.js';\n\nexport class InboundTurnExpiredError extends Error {\n constructor(sessionKey: string) {\n super(`Inbound turn expired in queue for session ${sessionKey}`);\n this.name = 'InboundTurnExpiredError';\n }\n}\n\nexport class InboundTurnCancelledError extends Error {\n constructor(sessionKey: string, reason?: unknown) {\n super(`Inbound turn cancelled in queue for session ${sessionKey}`, reason === undefined ? undefined : { cause: reason });\n this.name = 'InboundTurnCancelledError';\n }\n}\n\ninterface QueuedInboundTurn<T> {\n sessionKey: string;\n senderId: string;\n commMessage: Message;\n queuedFeedbackMessages: Message[];\n textParts: string[];\n enqueuedAt: number;\n lastEnqueuedAt: number;\n coalesceEnabled: boolean;\n signal?: AbortSignal;\n started: boolean;\n disposeAbortListener?: () => void;\n promise: Promise<T>;\n run: (mergedContent: string) => Promise<T>;\n resolve: (value: T) => void;\n reject: (reason: unknown) => void;\n}\n\nexport interface InboundQueueActivityEmitter {\n emitQueuedStart(commMessage: Message, sessionKey: string): void;\n emitQueuedClear(commMessage: Message, sessionKey: string): void;\n}\n\nconst noopEmitter: InboundQueueActivityEmitter = {\n emitQueuedStart() {},\n emitQueuedClear() {},\n};\n\nexport class InboundTurnQueue {\n private readonly queues = new Map<string, QueuedInboundTurn<unknown>[]>();\n private readonly inFlight = new Map<string, Promise<void>>();\n\n constructor(\n private config: ResolvedInboundQueueConfig,\n private activityEmitter: InboundQueueActivityEmitter = noopEmitter,\n ) {}\n\n updateConfig(config: ResolvedInboundQueueConfig): void {\n this.config = config;\n }\n\n schedule<T>(options: {\n sessionKey: string;\n commMessage: Message;\n content?: string;\n coalesce?: boolean;\n signal?: AbortSignal;\n run: (mergedContent: string) => Promise<T>;\n }): Promise<T> {\n const { sessionKey, commMessage, run } = options;\n // A cancellable caller owns an individual deadline, so it cannot safely\n // share a coalesced promise with another inbound message.\n const coalesceEnabled = options.coalesce !== false && options.signal === undefined;\n const content = options.content ?? '';\n if (options.signal?.aborted) {\n return Promise.reject(inboundAbortReason(sessionKey, options.signal.reason));\n }\n const senderId = String(commMessage.sender?.id ?? 'unknown');\n const now = Date.now();\n const queue = this.queues.get(sessionKey) ?? [];\n this.queues.set(sessionKey, queue);\n\n if (coalesceEnabled && content && queue.length > 0) {\n const tail = queue[queue.length - 1] as QueuedInboundTurn<T>;\n if (\n tail.senderId === senderId\n && now - tail.lastEnqueuedAt < this.config.coalesceWindowMs\n ) {\n tail.textParts.push(content);\n tail.lastEnqueuedAt = now;\n tail.commMessage = commMessage;\n tail.run = run;\n this.activityEmitter.emitQueuedStart(commMessage, sessionKey);\n tail.queuedFeedbackMessages.push(commMessage);\n void this.pump(sessionKey);\n return tail.promise;\n }\n }\n\n let resolve!: (value: T) => void;\n let reject!: (reason: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const entry: QueuedInboundTurn<T> = {\n sessionKey,\n senderId,\n commMessage,\n queuedFeedbackMessages: [],\n textParts: content ? [content] : [],\n enqueuedAt: now,\n lastEnqueuedAt: now,\n coalesceEnabled,\n signal: options.signal,\n started: false,\n promise,\n run,\n resolve,\n reject,\n };\n\n if (options.signal) {\n const abort = () => this.cancelQueuedEntry(entry as QueuedInboundTurn<unknown>);\n options.signal.addEventListener('abort', abort, { once: true });\n entry.disposeAbortListener = () => options.signal?.removeEventListener('abort', abort);\n }\n\n queue.push(entry as QueuedInboundTurn<unknown>);\n\n const shouldShowPending = this.inFlight.has(sessionKey) || queue.length > 1;\n if (shouldShowPending) {\n this.activityEmitter.emitQueuedStart(commMessage, sessionKey);\n entry.queuedFeedbackMessages.push(commMessage);\n }\n\n void this.pump(sessionKey);\n return promise;\n }\n\n dispose(): void {\n for (const queue of this.queues.values()) {\n for (const entry of queue) {\n entry.disposeAbortListener?.();\n this.clearQueuedFeedback(entry);\n entry.reject(new Error('InboundTurnQueue disposed'));\n }\n }\n this.queues.clear();\n this.inFlight.clear();\n }\n\n private isExpired(entry: QueuedInboundTurn<unknown>, now: number): boolean {\n return this.config.ttlMs > 0 && entry.enqueuedAt + this.config.ttlMs < now;\n }\n\n private async discardExpired(sessionKey: string): Promise<void> {\n const queue = this.queues.get(sessionKey);\n if (!queue?.length) return;\n\n const now = Date.now();\n while (queue.length > 0 && this.isExpired(queue[0]!, now)) {\n const expired = queue.shift()!;\n expired.disposeAbortListener?.();\n this.clearQueuedFeedback(expired);\n expired.reject(new InboundTurnExpiredError(sessionKey));\n }\n\n if (!queue.length) {\n this.queues.delete(sessionKey);\n }\n }\n\n private async pump(sessionKey: string): Promise<void> {\n if (this.inFlight.has(sessionKey)) return;\n\n const runLoop = async (): Promise<void> => {\n while (true) {\n await this.discardExpired(sessionKey);\n const queue = this.queues.get(sessionKey);\n if (!queue?.length) {\n this.queues.delete(sessionKey);\n return;\n }\n\n const entry = queue.shift()!;\n if (!queue.length) {\n this.queues.delete(sessionKey);\n }\n\n this.clearQueuedFeedback(entry);\n entry.started = true;\n\n try {\n const merged = entry.textParts.filter(Boolean).join('\\n');\n const result = await entry.run(merged);\n entry.resolve(result);\n } catch (error) {\n entry.reject(error);\n } finally {\n entry.disposeAbortListener?.();\n }\n }\n };\n\n const flight = runLoop().finally(() => {\n if (this.inFlight.get(sessionKey) === flight) {\n this.inFlight.delete(sessionKey);\n }\n });\n this.inFlight.set(sessionKey, flight);\n await flight;\n }\n\n private cancelQueuedEntry(entry: QueuedInboundTurn<unknown>): void {\n if (entry.started) return;\n const queue = this.queues.get(entry.sessionKey);\n if (!queue) return;\n const index = queue.indexOf(entry);\n if (index === -1) return;\n queue.splice(index, 1);\n if (queue.length === 0) this.queues.delete(entry.sessionKey);\n entry.disposeAbortListener?.();\n this.clearQueuedFeedback(entry);\n entry.reject(inboundAbortReason(entry.sessionKey, entry.signal?.reason));\n }\n\n private clearQueuedFeedback(entry: QueuedInboundTurn<unknown>): void {\n for (const commMessage of entry.queuedFeedbackMessages) {\n this.activityEmitter.emitQueuedClear(commMessage, entry.sessionKey);\n }\n entry.queuedFeedbackMessages.length = 0;\n }\n}\n\nfunction inboundAbortReason(sessionKey: string, reason?: unknown): Error {\n if (reason instanceof Error && reason.name !== 'AbortError') return reason;\n return new InboundTurnCancelledError(sessionKey, reason);\n}\n"]}
@@ -44,4 +44,3 @@ export type { TaskStatus, TaskProgress, TaskDecomposition, } from './task-contin
44
44
  export { DEFAULT_MAX_QUEUED_TURNS, TurnAdmissionGate, } from './turn-admission-gate.js';
45
45
  export type { TurnAdmission, TurnAdmissionFacts, TurnAdmissionGateOptions, TurnAdmissionRequest, TurnStopResult, } from './turn-admission-gate.js';
46
46
  export { runWithAgentTurnConfiguration } from './agent-turn-context.js';
47
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/turn/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AA4B3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AASlC,oDAAoD;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/turn/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AA4B3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AASlC,oDAAoD;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * Turn module — IM turn pipeline, scheduling, metrics.\n */\n\nexport { processTextTurn } from './turn-pipeline.js';\nexport type { ProcessTextTurnOptions } from './turn-pipeline.js';\n\nexport { executeAgentTurn } from './execute-agent-turn.js';\nexport { createJournalFeed, journalFeedOf } from './journal-feed.js';\nexport type { JournalFeed } from './journal-feed.js';\nexport type { TurnEventObserver, TurnEventSource } from './execute-agent-turn.js';\nexport { streamTurnEvents } from './turn-event-source.js';\nexport type { TurnEventSink, TurnEventSourceInput } from './turn-event-source.js';\n\nexport {\n createTurnIngress,\n resolveTurnContextValue,\n turnPermissionSubject,\n} from './turn-ingress.js';\nexport type {\n ActivityPort,\n DeliveryIntent,\n DeliveryOutcome,\n DeliveryPort,\n FrozenCapabilityCatalog,\n ReplyPort,\n TurnIdentity,\n TurnAccessContext,\n TurnIngress,\n TurnIngressInput,\n TurnIntent,\n TurnIntentKind,\n TurnJournalPort,\n TurnInput,\n TurnMedia,\n TurnOrigin,\n TurnOutcome,\n TurnPolicyContext,\n TurnPorts,\n TurnPrincipal,\n TurnRequest,\n TurnRequestPorts,\n TurnScope,\n TurnSessionAddress,\n} from './turn-ingress.js';\n\nexport { processTextTurnStream } from './process-stream.js';\n\nexport {\n PromptController,\n TurnCancelledError,\n TurnSupersededError,\n} from './prompt-controller.js';\nexport type { PromptTurnHooks, PromptTurnRequest } from './prompt-controller.js';\n\nexport { TriggerCancelledError, TriggerTimeoutError } from './trigger-cancelled-error.js';\n\nexport { isCancelIntent } from './cancel-intent.js';\n\nexport { SessionMessageQueue } from './session-message-queue.js';\n\nexport {\n addUsage,\n EMPTY_USAGE,\n formatAiHandlerTurnTable,\n formatOutputElementsPreview,\n} from './turn-metrics.js';\nexport type { ZhinAgentTurnMetrics, ZhinAgentTurnPath } from './turn-metrics.js';\n\nexport { TurnTracker } from './turn-tracker.js';\n\nexport {\n InboundTurnQueue,\n InboundTurnCancelledError,\n InboundTurnExpiredError,\n} from './inbound-turn-queue.js';\nexport type { InboundQueueActivityEmitter } from './inbound-turn-queue.js';\n\nexport {\n DEFAULT_INBOUND_QUEUE_CONFIG,\n normalizeInboundQueueConfig,\n validateInboundQueueConfig,\n isGroupOrChannelMessage,\n shouldUseGroupFifoQueue,\n} from './inbound-queue-config.js';\nexport type { ResolvedInboundQueueConfig } from './inbound-queue-config.js';\n\nexport { createInboundTurnQueue, runWithInboundQueue } from './inbound-queue-runtime.js';\n\nexport {\n continueAfterDeferredWorker,\n continueAfterSubagent,\n} from './auto-continue.js';\nexport type { AutoContinueHost } from './auto-continue.js';\n\nexport {\n runPromptTurn,\n steerMessage,\n followUpMessage,\n assertMasterForPromptControl,\n} from './prompt-api.js';\n\nexport { PromptAccessDeniedError } from './prompt-access.js';\n\nexport { normalizePromptMessages } from './prompt-input.js';\n\nexport { extractDeferredBody, deliverDeferredWorkerResult, deliverDeferredAutoContinueReply } from './deferred-delivery.js';\n\nexport {\n DEFERRED_AUTO_CONTINUE_MARKER,\n isDeferredAutoContinueEnabled,\n shouldDeferredAutoContinue,\n buildDeferredAutoContinueUserMessage,\n} from './deferred-auto-continue.js';\n\nexport {\n SUBAGENT_AUTO_CONTINUE_MARKER,\n buildSubagentAutoContinueUserMessage,\n} from './subagent-auto-continue.js';\n\nexport { persistDeferredWorkerResultToContext } from './persist-deferred-context.js';\nexport { persistSubagentResultToContext } from './persist-subagent-context.js';\n\nexport { computeDeferredDelta } from './turn-deferred-delta.js';\nexport { DeferredTurnState } from './deferred-turn-state.js';\n\nexport {\n getTurnActiveSkills,\n runInTurnContext,\n appendActiveSkills,\n} from './turn-context-bridge.js';\nexport type { TurnContextBridgeState } from './turn-context-bridge.js';\n\nexport {\n TaskContinuationManager,\n decomposeTask,\n} from './task-continuation.js';\nexport type {\n TaskStatus,\n TaskProgress,\n TaskDecomposition,\n} from './task-continuation.js';\nexport {\n DEFAULT_MAX_QUEUED_TURNS,\n TurnAdmissionGate,\n} from './turn-admission-gate.js';\nexport type {\n TurnAdmission,\n TurnAdmissionFacts,\n TurnAdmissionGateOptions,\n TurnAdmissionRequest,\n TurnStopResult,\n} from './turn-admission-gate.js';\n\n// Host-integration seam for external host packages.\nexport { runWithAgentTurnConfiguration } from './agent-turn-context.js';\n"]}
@@ -28,4 +28,3 @@ export declare function createJournalFeed(journal: TurnJournalPort, scope: Reado
28
28
  }>): TurnJournalPort;
29
29
  /** The feed attached to a journal port by `createJournalFeed`, if any. */
30
30
  export declare function journalFeedOf(journal: TurnJournalPort): JournalFeed | undefined;
31
- //# sourceMappingURL=journal-feed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal-feed.js","sourceRoot":"","sources":["../../src/turn/journal-feed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAwB,EACxB,KAAmC;IAEnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAoB,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,KAAgB;YAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO;YAC1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI;YACF,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,IAAI,GAAG,KAAK,CAAC;gBACb,WAAW,IAAI,CAAC,CAAC;gBACjB,IAAI,WAAW,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"journal-feed.js","sourceRoot":"","sources":["../../src/turn/journal-feed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAwB,EACxB,KAAmC;IAEnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAoB,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,KAAgB;YAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO;YAC1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI;YACF,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,IAAI,GAAG,KAAK,CAAC;gBACb,WAAW,IAAI,CAAC,CAAC;gBACjB,IAAI,WAAW,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["/**\n * Journal-derived event feed (#748).\n *\n * The turn journal is the single source of truth for what happened in a\n * turn. Some facts reach it without passing through the engine stream — most\n * importantly the authority's `tool_call` / `tool_result` / `tool_denied`\n * events, which TurnToolRuntime commits before a tool executes. Stream\n * consumers (the `observe` projection of `executeAgentTurn`) read this feed\n * instead of the raw engine stream, so they see exactly the committed\n * events, in commit order, with the existing TurnEvent shape and no second\n * journal append.\n */\nimport type { TurnEvent } from '../event/turn-event.js';\nimport type { TurnJournalPort } from './turn-ingress.js';\nimport { traceScopeTurnId } from '../trace/turn-trace-registry.js';\n\nexport interface JournalFeed {\n /** Start buffering committed events; returns a function that stops it. */\n open(): () => void;\n /** Committed events since the last drain, in commit order. */\n drain(): TurnEvent[];\n}\n\nconst feeds = new WeakMap<TurnJournalPort, JournalFeed>();\n\n/**\n * Wraps a turn's journal port so every successfully committed event of this\n * turn is also offered to the feed. Events tagged for another (sub-agent)\n * turn stay out of this turn's feed.\n */\nexport function createJournalFeed(\n journal: TurnJournalPort,\n scope: Readonly<{ turnId: string }>,\n): TurnJournalPort {\n let subscribers = 0;\n const pending: TurnEvent[] = [];\n const port: TurnJournalPort = Object.freeze({\n async append(event: TurnEvent) {\n await journal.append(event);\n if (subscribers === 0) return;\n const owner = traceScopeTurnId(event);\n if (owner !== undefined && owner !== scope.turnId) return;\n pending.push(event);\n },\n });\n feeds.set(port, Object.freeze({\n open() {\n subscribers += 1;\n let open = true;\n return () => {\n if (!open) return;\n open = false;\n subscribers -= 1;\n if (subscribers === 0) pending.length = 0;\n };\n },\n drain: () => pending.splice(0),\n }));\n return port;\n}\n\n/** The feed attached to a journal port by `createJournalFeed`, if any. */\nexport function journalFeedOf(journal: TurnJournalPort): JournalFeed | undefined {\n return feeds.get(journal);\n}\n"]}
@@ -2,4 +2,3 @@
2
2
  export declare class TurnJournalCommitError extends Error {
3
3
  constructor(cause: unknown);
4
4
  }
5
- //# sourceMappingURL=journal-integrity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal-integrity.js","sourceRoot":"","sources":["../../src/turn/journal-integrity.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"journal-integrity.js","sourceRoot":"","sources":["../../src/turn/journal-integrity.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF","sourcesContent":["/** A required Turn fact could not be committed to the durable Journal. */\nexport class TurnJournalCommitError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = 'TurnJournalCommitError';\n }\n}\n"]}
@@ -2,4 +2,3 @@ import type { DeferredWorkerResult } from '../deferred-worker-runner.js';
2
2
  import type { Message } from '../resource-hub/types.js';
3
3
  import type { ZhinAgentPrivate } from '../internal/agent-host.js';
4
4
  export declare function persistDeferredWorkerResultToContext(agent: ZhinAgentPrivate, commMessage: Message, taskId: string, goal: string, result: DeferredWorkerResult): Promise<boolean>;
5
- //# sourceMappingURL=persist-deferred-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist-deferred-context.js","sourceRoot":"","sources":["../../src/turn/persist-deferred-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAuB,EACvB,WAAoB,EACpB,MAAc,EACd,IAAY,EACZ,MAA4B;IAE5B,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,8BAA8B,MAAM,MAAM,KAAK,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpF,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"persist-deferred-context.js","sourceRoot":"","sources":["../../src/turn/persist-deferred-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAuB,EACvB,WAAoB,EACpB,MAAc,EACd,IAAY,EACZ,MAA4B;IAE5B,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,8BAA8B,MAAM,MAAM,KAAK,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpF,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * Deferred worker 完成后将结果写入主会话 ContextRepository,\n * 让下一轮主 Agent 能直接读取已完成 Worker 的结果。\n */\nimport {\n EMPTY_TOKEN_USAGE,\n type AssistantMessage,\n} from '@zhin.js/ai';\nimport { resolveAgentTurnSessionKey } from '../session/session-key.js';\nimport type { DeferredWorkerResult } from '../deferred-worker-runner.js';\nimport { resolveSubagentDisplayLabel } from '../subagent-goal-notify.js';\nimport { packageSubagentResult } from '../subagent-artifact.js';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nimport { extractDeferredBody } from './deferred-delivery.js';\n\nexport async function persistDeferredWorkerResultToContext(\n agent: ZhinAgentPrivate,\n commMessage: Message,\n taskId: string,\n goal: string,\n result: DeferredWorkerResult,\n): Promise<boolean> {\n const body = extractDeferredBody(result);\n if (!body.trim()) return false;\n\n const sessionKey = resolveAgentTurnSessionKey(commMessage);\n const active = await agent.agentSessionStore.findActive(sessionKey);\n const sessionId = active?.session_id;\n if (!sessionId) return false;\n\n const label = resolveSubagentDisplayLabel(undefined, goal);\n const packaged = packageSubagentResult(body, taskId);\n const text = `[Deferred worker 完成 · task:${taskId} · ${label}]\\n\\n${packaged.text}`;\n\n const assistantMessage: AssistantMessage = {\n role: 'assistant',\n content: [{ type: 'text', text }],\n api: 'openai-completions',\n provider: 'deferred-worker',\n model: 'worker',\n usage: EMPTY_TOKEN_USAGE,\n stopReason: 'stop',\n timestamp: Date.now(),\n };\n\n await agent.contextRepository.appendMessages(sessionId, [assistantMessage]);\n return true;\n}\n"]}
@@ -2,4 +2,3 @@ import type { SubagentCompletePayload } from '../subagent/index.js';
2
2
  import type { Message } from '../resource-hub/types.js';
3
3
  import type { ZhinAgentPrivate } from '../internal/agent-host.js';
4
4
  export declare function persistSubagentResultToContext(agent: ZhinAgentPrivate, commMessage: Message, payload: SubagentCompletePayload): Promise<boolean>;
5
- //# sourceMappingURL=persist-subagent-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist-subagent-context.js","sourceRoot":"","sources":["../../src/turn/persist-subagent-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAuB,EACvB,WAAoB,EACpB,OAAgC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG;QACX,8BAA8B,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,GAAG;QAClE,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,EAAE;QACF,QAAQ,CAAC,IAAI;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"persist-subagent-context.js","sourceRoot":"","sources":["../../src/turn/persist-subagent-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAuB,EACvB,WAAoB,EACpB,OAAgC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG;QACX,8BAA8B,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,GAAG;QAClE,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,EAAE;QACF,QAAQ,CAAC,IAAI;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * Persist async subagent result into main session context before auto-continue.\n */\nimport {\n EMPTY_TOKEN_USAGE,\n type AssistantMessage,\n} from '@zhin.js/ai';\nimport { resolveAgentTurnSessionKey } from '../session/session-key.js';\nimport type { SubagentCompletePayload } from '../subagent/index.js';\nimport { packageSubagentResult } from '../subagent-artifact.js';\nimport type { Message } from '../resource-hub/types.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\n\nexport async function persistSubagentResultToContext(\n agent: ZhinAgentPrivate,\n commMessage: Message,\n payload: SubagentCompletePayload,\n): Promise<boolean> {\n const body = payload.result.trim();\n if (!body) return false;\n\n const sessionKey = resolveAgentTurnSessionKey(commMessage);\n const active = await agent.agentSessionStore.findActive(sessionKey);\n const sessionId = active?.session_id;\n if (!sessionId) return false;\n\n const packaged = packageSubagentResult(body, payload.taskId);\n const text = [\n `[Subagent completed · task:${payload.taskId} · ${payload.label}]`,\n `status: ${payload.status}`,\n '',\n packaged.text,\n ].join('\\n');\n\n const assistantMessage: AssistantMessage = {\n role: 'assistant',\n content: [{ type: 'text', text }],\n api: 'openai-completions',\n provider: 'subagent',\n model: payload.agent ?? 'subagent',\n usage: EMPTY_TOKEN_USAGE,\n stopReason: 'stop',\n timestamp: Date.now(),\n };\n\n await agent.contextRepository.appendMessages(sessionId, [assistantMessage]);\n return true;\n}\n"]}
@@ -11,4 +11,3 @@ export declare function processTextTurnStream(agent: ZhinAgentPrivate, opts: {
11
11
  inboundTurnQueue: InboundTurnQueue;
12
12
  runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>;
13
13
  }): AsyncGenerator<TurnEvent, void, undefined>;
14
- //# sourceMappingURL=process-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-stream.js","sourceRoot":"","sources":["../../src/turn/process-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,KAAuB,EACvB,IAOC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7G,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;QACvB,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACvE,MAAM,SAAS,CAAC;IAChB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAC/C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;YACrE,OAAO;YACP,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CACrB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE;gBAC3E,WAAW,EAAE,IAAI;gBACjB,OAAO;aACR,CAAC;SACL,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,WAAW,EAAE,KAAK;aACnB;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"process-stream.js","sourceRoot":"","sources":["../../src/turn/process-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,KAAuB,EACvB,IAOC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7G,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;QACvB,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACvE,MAAM,SAAS,CAAC;IAChB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAC/C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;YACrE,OAAO;YACP,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,CACrB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE;gBAC3E,WAAW,EAAE,IAAI;gBACjB,OAAO;aACR,CAAC;SACL,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,WAAW,EAAE,KAAK;aACnB;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport { AgentRunJournal } from '@zhin.js/ai/agent-stream';\nimport type { Message, Tool } from '../resource-hub/types.js';\nimport type { TurnEvent } from '../event/turn-event.js';\nimport { publishTurnStreamEvents } from '../event/publish-agent-stream.js';\nimport type { InboundTurnQueue } from '../turn/inbound-turn-queue.js';\nimport type { ResolvedInboundQueueConfig } from '../turn/inbound-queue-config.js';\nimport { runWithInboundQueue } from '../turn/inbound-queue-runtime.js';\nimport { processTextTurn } from './turn-pipeline.js';\nimport { isTurnCancellation, turnCancelledEvent } from './turn-terminal.js';\nimport { streamTurnEvents } from './turn-event-source.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\n\nexport async function* processTextTurnStream(\n agent: ZhinAgentPrivate,\n opts: {\n content: string;\n commMessage: Message;\n externalTools: Tool[];\n inboundQueueConfig: ResolvedInboundQueueConfig;\n inboundTurnQueue: InboundTurnQueue;\n runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>;\n },\n): AsyncGenerator<TurnEvent, void, undefined> {\n const { content, commMessage, externalTools, inboundQueueConfig, inboundTurnQueue, runInTurnContext } = opts;\n const turnId = randomUUID();\n const sessionId = resolveIMSessionIdFromMessage(commMessage);\n\n const streamCtx = () => ({\n sessionId,\n turnId,\n });\n const journal = new AgentRunJournal({ sessionId, turnId });\n\n const turnStart: TurnEvent = { type: 'turn_start', sessionId, turnId };\n yield turnStart;\n publishTurnStreamEvents(agent, turnStart, streamCtx(), journal);\n\n const source = streamTurnEvents({\n execute: (emit) => runInTurnContext(turnId, () =>\n runWithInboundQueue(commMessage, inboundQueueConfig, inboundTurnQueue, {\n content,\n run: (mergedContent) =>\n processTextTurn(agent, mergedContent, commMessage, externalTools, undefined, {\n onTurnEvent: emit,\n journal,\n }),\n })),\n mapError: (error) => isTurnCancellation(error)\n ? turnCancelledEvent(error)\n : {\n type: 'error',\n error: error instanceof Error ? error : new Error(String(error)),\n recoverable: false,\n },\n });\n\n for await (const event of source) {\n publishTurnStreamEvents(agent, event, streamCtx(), journal);\n yield event;\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
1
  export declare class PromptAccessDeniedError extends Error {
2
2
  constructor(message: string);
3
3
  }
4
- //# sourceMappingURL=prompt-access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-access.js","sourceRoot":"","sources":["../../src/turn/prompt-access.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"prompt-access.js","sourceRoot":"","sources":["../../src/turn/prompt-access.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF","sourcesContent":["export class PromptAccessDeniedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'PromptAccessDeniedError';\n }\n}\n"]}
@@ -11,4 +11,3 @@ export declare function runPromptTurn(agent: ZhinAgentPrivate, input: string | A
11
11
  }): Promise<AgentOutputElement[]>;
12
12
  export declare function steerMessage(promptController: PromptController, message: AgentMessage, commMessage: Message): void;
13
13
  export declare function followUpMessage(promptController: PromptController, message: AgentMessage, commMessage: Message): void;
14
- //# sourceMappingURL=prompt-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-api.js","sourceRoot":"","sources":["../../src/turn/prompt-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,UAAU,4BAA4B,CAC1C,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB;YAAE,MAAM,KAAK,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAuB,EACvB,KAA6C,EAC7C,WAAoB,EACpB,gBAAyE,EACzE,OAAoE;IAEpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAc,CAAC;QACnD,MAAM,IAAI,GAAG,OAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,OAAO,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CACzC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAC9D,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"prompt-api.js","sourceRoot":"","sources":["../../src/turn/prompt-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,UAAU,4BAA4B,CAC1C,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB;YAAE,MAAM,KAAK,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAuB,EACvB,KAA6C,EAC7C,WAAoB,EACpB,gBAAyE,EACzE,OAAoE;IAEpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAc,CAAC;QACnD,MAAM,IAAI,GAAG,OAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,OAAO,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CACzC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAC9D,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,gBAAkC,EAClC,OAAqB,EACrB,WAAoB;IAEpB,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC","sourcesContent":["import type { AgentOutputElement } from '../outbound/agent-output.js';\nimport { randomUUID } from 'node:crypto';\nimport { resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport type { AgentMessage, MediaContentBlock, UserMessage } from '@zhin.js/ai';\nimport type { Message } from '../resource-hub/types.js';\nimport { PromptAccessDeniedError } from './prompt-access.js';\nimport { resolveToolRequesterRole } from '../security/owner-approval-runtime.js';\nimport { normalizePromptMessages } from './prompt-input.js';\nimport { processTextTurn } from '../turn/turn-pipeline.js';\nimport type { OnChunkCallback } from '../config/index.js';\nimport type { PromptController } from '../turn/prompt-controller.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nexport function assertMasterForPromptControl(\n commMessage: Message,\n): void {\n try {\n const role = resolveToolRequesterRole(commMessage);\n if (role !== 'master') {\n throw new PromptAccessDeniedError('steer/followUp 仅 master 可用');\n }\n } catch (error) {\n if (error instanceof PromptAccessDeniedError) throw error;\n throw new PromptAccessDeniedError('steer/followUp 需要有效的 master 上下文');\n }\n}\n\nexport async function runPromptTurn(\n agent: ZhinAgentPrivate,\n input: string | AgentMessage | AgentMessage[],\n commMessage: Message,\n runInTurnContext: <T>(turnId: string, fn: () => Promise<T>) => Promise<T>,\n options?: { media?: MediaContentBlock[]; onChunk?: OnChunkCallback },\n): Promise<AgentOutputElement[]> {\n const messages = normalizePromptMessages(input, options?.media);\n const text = messages\n .flatMap((message) => {\n if (message.role !== 'user') return [] as string[];\n const user = message as UserMessage;\n return user.content\n .filter((block) => block.type === 'text')\n .map((block) => block.text);\n })\n .join('\\n')\n .trim();\n return runInTurnContext(randomUUID(), () =>\n processTextTurn(agent, text, commMessage, [], options?.onChunk, {\n prebuiltMessages: messages,\n }),\n );\n}\n\nexport function steerMessage(\n promptController: PromptController,\n message: AgentMessage,\n commMessage: Message,\n): void {\n assertMasterForPromptControl(commMessage);\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n promptController.steer(sessionKey, message);\n}\n\nexport function followUpMessage(\n promptController: PromptController,\n message: AgentMessage,\n commMessage: Message,\n): void {\n assertMasterForPromptControl(commMessage);\n const sessionKey = resolveIMSessionIdFromMessage(commMessage);\n promptController.followUp(sessionKey, message);\n}\n"]}
@@ -74,4 +74,3 @@ export declare class PromptController {
74
74
  dispose(): void;
75
75
  }
76
76
  export {};
77
- //# sourceMappingURL=prompt-controller.d.ts.map