@zhin.js/agent 1.1.35 → 1.1.38

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 (1285) 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 +0 -1
  60. package/lib/assistant/job-engine.js.map +1 -1
  61. package/lib/assistant/job-scheduler.d.ts +0 -1
  62. package/lib/assistant/job-scheduler.js.map +1 -1
  63. package/lib/assistant/job-store.d.ts +0 -1
  64. package/lib/assistant/job-store.js.map +1 -1
  65. package/lib/assistant/job-utils.d.ts +0 -1
  66. package/lib/assistant/job-utils.js.map +1 -1
  67. package/lib/assistant/job-worker.d.ts +0 -1
  68. package/lib/assistant/job-worker.js.map +1 -1
  69. package/lib/assistant/notification-router.d.ts +0 -1
  70. package/lib/assistant/notification-router.js.map +1 -1
  71. package/lib/assistant/profile-loader.d.ts +0 -1
  72. package/lib/assistant/profile-loader.js.map +1 -1
  73. package/lib/assistant/profile-types.d.ts +0 -1
  74. package/lib/assistant/profile-types.js.map +1 -1
  75. package/lib/assistant/runtime-contract.d.ts +0 -1
  76. package/lib/assistant/runtime-contract.js.map +1 -1
  77. package/lib/assistant/schedule-execution.d.ts +0 -1
  78. package/lib/assistant/schedule-execution.js.map +1 -1
  79. package/lib/assistant/schedule-job-service.d.ts +0 -1
  80. package/lib/assistant/schedule-job-service.js.map +1 -1
  81. package/lib/assistant/schedule-skills.d.ts +0 -1
  82. package/lib/assistant/schedule-skills.js.map +1 -1
  83. package/lib/assistant/types.d.ts +0 -1
  84. package/lib/assistant/types.js.map +1 -1
  85. package/lib/authoring/bridge.d.ts +0 -1
  86. package/lib/authoring/bridge.js.map +1 -1
  87. package/lib/authoring/define-eval.d.ts +0 -1
  88. package/lib/authoring/define-eval.js.map +1 -1
  89. package/lib/authoring/define-hook.d.ts +0 -1
  90. package/lib/authoring/define-hook.js.map +1 -1
  91. package/lib/authoring/define-skill.d.ts +0 -1
  92. package/lib/authoring/define-skill.js.map +1 -1
  93. package/lib/authoring/disable-tool.d.ts +0 -1
  94. package/lib/authoring/disable-tool.js.map +1 -1
  95. package/lib/authoring/entries/evals.d.ts +0 -1
  96. package/lib/authoring/entries/evals.js.map +1 -1
  97. package/lib/authoring/entries/hooks.d.ts +0 -1
  98. package/lib/authoring/entries/hooks.js.map +1 -1
  99. package/lib/authoring/entries/skills.d.ts +0 -1
  100. package/lib/authoring/entries/skills.js.map +1 -1
  101. package/lib/authoring/index.d.ts +0 -1
  102. package/lib/authoring/index.js.map +1 -1
  103. package/lib/authoring/types.d.ts +0 -1
  104. package/lib/authoring/types.js.map +1 -1
  105. package/lib/bootstrap.d.ts +0 -1
  106. package/lib/bootstrap.js.map +1 -1
  107. package/lib/builtins/builtin-tool-service.d.ts +0 -1
  108. package/lib/builtins/builtin-tool-service.js.map +1 -1
  109. package/lib/common-adapter-tools.d.ts +0 -1
  110. package/lib/common-adapter-tools.js.map +1 -1
  111. package/lib/config/agent-binding-registry.d.ts +0 -1
  112. package/lib/config/agent-binding-registry.js.map +1 -1
  113. package/lib/config/agent-bindings.d.ts +0 -1
  114. package/lib/config/agent-bindings.js.map +1 -1
  115. package/lib/config/agent-interfaces.d.ts +0 -1
  116. package/lib/config/agent-interfaces.js.map +1 -1
  117. package/lib/config/deprecated-agent-binding-keys.d.ts +0 -1
  118. package/lib/config/deprecated-agent-binding-keys.js.map +1 -1
  119. package/lib/config/deprecated-agent-keys.d.ts +0 -1
  120. package/lib/config/deprecated-agent-keys.js.map +1 -1
  121. package/lib/config/fix-ai-config.d.ts +0 -1
  122. package/lib/config/fix-ai-config.js.map +1 -1
  123. package/lib/config/index.d.ts +0 -1
  124. package/lib/config/index.js.map +1 -1
  125. package/lib/config/keyword-triggers.d.ts +0 -1
  126. package/lib/config/keyword-triggers.js.map +1 -1
  127. package/lib/config/model-harness-runtime.d.ts +0 -1
  128. package/lib/config/model-harness-runtime.js.map +1 -1
  129. package/lib/config/model-harness.d.ts +0 -1
  130. package/lib/config/model-harness.js.map +1 -1
  131. package/lib/config/normalize-ai-config.d.ts +0 -1
  132. package/lib/config/normalize-ai-config.js.map +1 -1
  133. package/lib/config/perception-config.d.ts +0 -1
  134. package/lib/config/perception-config.js.map +1 -1
  135. package/lib/config/provider-instance.d.ts +0 -1
  136. package/lib/config/provider-instance.js.map +1 -1
  137. package/lib/config/resolve-five-agent-binding.d.ts +0 -1
  138. package/lib/config/resolve-five-agent-binding.js.map +1 -1
  139. package/lib/config/types.d.ts +0 -1
  140. package/lib/config/types.js.map +1 -1
  141. package/lib/config/validate-ai-config.d.ts +0 -1
  142. package/lib/config/validate-ai-config.js.map +1 -1
  143. package/lib/config/zhin-agent-config.d.ts +0 -1
  144. package/lib/config/zhin-agent-config.js.map +1 -1
  145. package/lib/config/zhin-agent-constants.d.ts +0 -1
  146. package/lib/config/zhin-agent-constants.js.map +1 -1
  147. package/lib/config/zhin-agent-defaults.d.ts +0 -1
  148. package/lib/config/zhin-agent-defaults.js +1 -1
  149. package/lib/config/zhin-agent-defaults.js.map +1 -1
  150. package/lib/config/zhin-agent-dependencies.d.ts +0 -1
  151. package/lib/config/zhin-agent-dependencies.js.map +1 -1
  152. package/lib/config/zhin-agent-runtime.d.ts +0 -1
  153. package/lib/config/zhin-agent-runtime.js.map +1 -1
  154. package/lib/context/agents-instruction.d.ts +0 -1
  155. package/lib/context/agents-instruction.js.map +1 -1
  156. package/lib/context/context-system.d.ts +0 -1
  157. package/lib/context/context-system.js.map +1 -1
  158. package/lib/context/context-tail-limit.d.ts +0 -1
  159. package/lib/context/context-tail-limit.js.map +1 -1
  160. package/lib/context/contracts.d.ts +0 -1
  161. package/lib/context/contracts.js.map +1 -1
  162. package/lib/context/default-builders.d.ts +0 -1
  163. package/lib/context/default-builders.js.map +1 -1
  164. package/lib/context/envelope-parts.d.ts +0 -1
  165. package/lib/context/envelope-parts.js.map +1 -1
  166. package/lib/context/im-turn-context-adapter.d.ts +0 -1
  167. package/lib/context/im-turn-context-adapter.js.map +1 -1
  168. package/lib/context/index.d.ts +0 -1
  169. package/lib/context/index.js.map +1 -1
  170. package/lib/context/model-resolver.d.ts +0 -1
  171. package/lib/context/model-resolver.js.map +1 -1
  172. package/lib/context/turn-envelope.d.ts +0 -1
  173. package/lib/context/turn-envelope.js.map +1 -1
  174. package/lib/context/turn-user-message.d.ts +0 -1
  175. package/lib/context/turn-user-message.js.map +1 -1
  176. package/lib/core/agent-core-run.d.ts +3 -1
  177. package/lib/core/agent-core-run.js +52 -45
  178. package/lib/core/agent-core-run.js.map +1 -1
  179. package/lib/core/agent-core.d.ts +0 -1
  180. package/lib/core/agent-core.js.map +1 -1
  181. package/lib/core/agent-loop-standalone.d.ts +0 -1
  182. package/lib/core/agent-loop-standalone.js.map +1 -1
  183. package/lib/core/agent-loop-turn.d.ts +0 -1
  184. package/lib/core/agent-loop-turn.js.map +1 -1
  185. package/lib/core/agent-run-shared.d.ts +0 -1
  186. package/lib/core/agent-run-shared.js.map +1 -1
  187. package/lib/core/compose-deps.d.ts +0 -1
  188. package/lib/core/compose-deps.js.map +1 -1
  189. package/lib/core/contracts.d.ts +0 -1
  190. package/lib/core/contracts.js.map +1 -1
  191. package/lib/core/exhausted-turn-reply.d.ts +0 -1
  192. package/lib/core/exhausted-turn-reply.js.map +1 -1
  193. package/lib/core/exploration-budget.d.ts +0 -1
  194. package/lib/core/exploration-budget.js.map +1 -1
  195. package/lib/core/index.d.ts +0 -1
  196. package/lib/core/index.js.map +1 -1
  197. package/lib/core/missing-tool-resolver.d.ts +0 -1
  198. package/lib/core/missing-tool-resolver.js.map +1 -1
  199. package/lib/core/progress-reporter.d.ts +0 -1
  200. package/lib/core/progress-reporter.js.map +1 -1
  201. package/lib/core/spawn-delegation.d.ts +0 -1
  202. package/lib/core/spawn-delegation.js.map +1 -1
  203. package/lib/core/structured-reply-recovery.d.ts +9 -3
  204. package/lib/core/structured-reply-recovery.js +5 -6
  205. package/lib/core/structured-reply-recovery.js.map +1 -1
  206. package/lib/core/text-sanitize.d.ts +0 -1
  207. package/lib/core/text-sanitize.js.map +1 -1
  208. package/lib/core/tool-calls-user-format.d.ts +0 -1
  209. package/lib/core/tool-calls-user-format.js.map +1 -1
  210. package/lib/core/tool-execution-authority.d.ts +0 -1
  211. package/lib/core/tool-execution-authority.js.map +1 -1
  212. package/lib/core/turn-completion-usage.d.ts +8 -0
  213. package/lib/core/turn-completion-usage.js +35 -0
  214. package/lib/core/turn-completion-usage.js.map +1 -0
  215. package/lib/core/turn-event-mapper.d.ts +3 -3
  216. package/lib/core/turn-event-mapper.js +13 -10
  217. package/lib/core/turn-event-mapper.js.map +1 -1
  218. package/lib/core/turn-progress.d.ts +0 -1
  219. package/lib/core/turn-progress.js.map +1 -1
  220. package/lib/create-agent-session.d.ts +0 -1
  221. package/lib/create-agent-session.js.map +1 -1
  222. package/lib/decision/approval-judgment.d.ts +0 -1
  223. package/lib/decision/approval-judgment.js.map +1 -1
  224. package/lib/decision/approval.d.ts +0 -1
  225. package/lib/decision/approval.js.map +1 -1
  226. package/lib/decision/config.d.ts +0 -1
  227. package/lib/decision/config.js.map +1 -1
  228. package/lib/decision/index.d.ts +0 -1
  229. package/lib/decision/index.js.map +1 -1
  230. package/lib/decision/rank.d.ts +0 -1
  231. package/lib/decision/rank.js.map +1 -1
  232. package/lib/decision/retrieval.d.ts +0 -1
  233. package/lib/decision/retrieval.js.map +1 -1
  234. package/lib/decision/types.d.ts +0 -1
  235. package/lib/decision/types.js.map +1 -1
  236. package/lib/deferred-worker-runner.d.ts +0 -1
  237. package/lib/deferred-worker-runner.js.map +1 -1
  238. package/lib/deferred-worker-tool-load.d.ts +0 -1
  239. package/lib/deferred-worker-tool-load.js.map +1 -1
  240. package/lib/detached-task/index.d.ts +0 -1
  241. package/lib/detached-task/index.js.map +1 -1
  242. package/lib/detached-task/interjection.d.ts +0 -1
  243. package/lib/detached-task/interjection.js.map +1 -1
  244. package/lib/detached-task/runner.d.ts +0 -1
  245. package/lib/detached-task/runner.js.map +1 -1
  246. package/lib/detached-task/store.d.ts +0 -1
  247. package/lib/detached-task/store.js.map +1 -1
  248. package/lib/detached-task/token.d.ts +0 -1
  249. package/lib/detached-task/token.js.map +1 -1
  250. package/lib/detached-task/types.d.ts +0 -1
  251. package/lib/detached-task/types.js.map +1 -1
  252. package/lib/discovery/agent-surface-info.d.ts +0 -1
  253. package/lib/discovery/agent-surface-info.js.map +1 -1
  254. package/lib/discovery/agent-surface.d.ts +0 -1
  255. package/lib/discovery/agent-surface.js.map +1 -1
  256. package/lib/discovery/agents.d.ts +0 -1
  257. package/lib/discovery/agents.js.map +1 -1
  258. package/lib/discovery/utils.d.ts +0 -1
  259. package/lib/discovery/utils.js.map +1 -1
  260. package/lib/event/agent-stream-bus.d.ts +0 -1
  261. package/lib/event/agent-stream-bus.js.map +1 -1
  262. package/lib/event/agent-stream-hooks.d.ts +0 -1
  263. package/lib/event/agent-stream-hooks.js.map +1 -1
  264. package/lib/event/ai-event-bus.d.ts +0 -1
  265. package/lib/event/ai-event-bus.js.map +1 -1
  266. package/lib/event/contracts.d.ts +0 -1
  267. package/lib/event/contracts.js.map +1 -1
  268. package/lib/event/event-emitter.d.ts +0 -1
  269. package/lib/event/event-emitter.js.map +1 -1
  270. package/lib/event/event-system.d.ts +0 -1
  271. package/lib/event/event-system.js.map +1 -1
  272. package/lib/event/filtering-middleware.d.ts +0 -1
  273. package/lib/event/filtering-middleware.js.map +1 -1
  274. package/lib/event/hook-stream-sink.d.ts +0 -1
  275. package/lib/event/hook-stream-sink.js.map +1 -1
  276. package/lib/event/index.d.ts +0 -1
  277. package/lib/event/index.js.map +1 -1
  278. package/lib/event/logging-middleware.d.ts +0 -1
  279. package/lib/event/logging-middleware.js.map +1 -1
  280. package/lib/event/publish-agent-stream.d.ts +0 -1
  281. package/lib/event/publish-agent-stream.js.map +1 -1
  282. package/lib/event/session-events.d.ts +0 -1
  283. package/lib/event/session-events.js.map +1 -1
  284. package/lib/event/turn-event.d.ts +0 -1
  285. package/lib/event/turn-event.js.map +1 -1
  286. package/lib/event/turn-to-agent-stream.d.ts +0 -1
  287. package/lib/event/turn-to-agent-stream.js.map +1 -1
  288. package/lib/index.d.ts +4 -5
  289. package/lib/index.js +2 -2
  290. package/lib/index.js.map +1 -1
  291. package/lib/init/activate-ai-database-storage.d.ts +0 -1
  292. package/lib/init/activate-ai-database-storage.js.map +1 -1
  293. package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
  294. package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
  295. package/lib/init/configure-zhin-agent.d.ts +0 -1
  296. package/lib/init/configure-zhin-agent.js.map +1 -1
  297. package/lib/init/define-ai-database-models.d.ts +0 -1
  298. package/lib/init/define-ai-database-models.js.map +1 -1
  299. package/lib/init/dispose-zhin-agent.d.ts +0 -1
  300. package/lib/init/dispose-zhin-agent.js.map +1 -1
  301. package/lib/init/introspection-output.d.ts +0 -1
  302. package/lib/init/introspection-output.js.map +1 -1
  303. package/lib/init/runtime-management-commands.d.ts +0 -1
  304. package/lib/init/runtime-management-commands.js.map +1 -1
  305. package/lib/interaction/index.d.ts +0 -1
  306. package/lib/interaction/index.js.map +1 -1
  307. package/lib/interaction/interaction-router.d.ts +0 -1
  308. package/lib/interaction/interaction-router.js.map +1 -1
  309. package/lib/internal/agent-host.d.ts +0 -1
  310. package/lib/internal/agent-host.js.map +1 -1
  311. package/lib/internal/ai-service-refs.d.ts +0 -1
  312. package/lib/internal/ai-service-refs.js.map +1 -1
  313. package/lib/internal/as-private.d.ts +0 -1
  314. package/lib/internal/as-private.js.map +1 -1
  315. package/lib/internal/host-types.d.ts +0 -1
  316. package/lib/internal/host-types.js.map +1 -1
  317. package/lib/internal/phase-trace.d.ts +0 -1
  318. package/lib/internal/phase-trace.js.map +1 -1
  319. package/lib/internal/prompt-trace.d.ts +0 -1
  320. package/lib/internal/prompt-trace.js.map +1 -1
  321. package/lib/internal/turn-context.d.ts +0 -1
  322. package/lib/internal/turn-context.js.map +1 -1
  323. package/lib/journal/file-journal-store.d.ts +0 -1
  324. package/lib/journal/file-journal-store.js.map +1 -1
  325. package/lib/journal/index.d.ts +0 -1
  326. package/lib/journal/index.js.map +1 -1
  327. package/lib/journal/persistent-turn-journal.d.ts +0 -1
  328. package/lib/journal/persistent-turn-journal.js.map +1 -1
  329. package/lib/mcp-client/bridge.d.ts +0 -1
  330. package/lib/mcp-client/bridge.js.map +1 -1
  331. package/lib/mcp-client/connection.d.ts +0 -1
  332. package/lib/mcp-client/connection.js.map +1 -1
  333. package/lib/mcp-client/index.d.ts +0 -1
  334. package/lib/mcp-client/index.js.map +1 -1
  335. package/lib/media/deliver-subagent-result.d.ts +0 -1
  336. package/lib/media/deliver-subagent-result.js +4 -1
  337. package/lib/media/deliver-subagent-result.js.map +1 -1
  338. package/lib/media/inbound-refs.d.ts +0 -1
  339. package/lib/media/inbound-refs.js.map +1 -1
  340. package/lib/media/index.d.ts +0 -1
  341. package/lib/media/index.js.map +1 -1
  342. package/lib/media/media-capabilities.d.ts +0 -1
  343. package/lib/media/media-capabilities.js.map +1 -1
  344. package/lib/media/media-normalize.d.ts +31 -3
  345. package/lib/media/media-normalize.js +38 -5
  346. package/lib/media/media-normalize.js.map +1 -1
  347. package/lib/media/media-publisher.d.ts +4 -2
  348. package/lib/media/media-publisher.js +50 -31
  349. package/lib/media/media-publisher.js.map +1 -1
  350. package/lib/media/media-router.d.ts +0 -1
  351. package/lib/media/media-router.js.map +1 -1
  352. package/lib/media/media-spool.d.ts +0 -1
  353. package/lib/media/media-spool.js.map +1 -1
  354. package/lib/media/media-tool-bridge.d.ts +0 -1
  355. package/lib/media/media-tool-bridge.js.map +1 -1
  356. package/lib/media/media-types.d.ts +0 -1
  357. package/lib/media/media-types.js.map +1 -1
  358. package/lib/media/perception.d.ts +8 -2
  359. package/lib/media/perception.js +55 -5
  360. package/lib/media/perception.js.map +1 -1
  361. package/lib/media/resolve-config.d.ts +0 -1
  362. package/lib/media/resolve-config.js.map +1 -1
  363. package/lib/media/subagent-inbound.d.ts +0 -1
  364. package/lib/media/subagent-inbound.js.map +1 -1
  365. package/lib/media/subagent-user-delivery.d.ts +0 -1
  366. package/lib/media/subagent-user-delivery.js.map +1 -1
  367. package/lib/media/vision-capability.d.ts +0 -1
  368. package/lib/media/vision-capability.js.map +1 -1
  369. package/lib/memory/ai-compaction-strategy.d.ts +0 -1
  370. package/lib/memory/ai-compaction-strategy.js.map +1 -1
  371. package/lib/memory/compaction-runtime.d.ts +0 -1
  372. package/lib/memory/compaction-runtime.js.map +1 -1
  373. package/lib/memory/context-repository-store.d.ts +0 -1
  374. package/lib/memory/context-repository-store.js.map +1 -1
  375. package/lib/memory/contracts.d.ts +0 -1
  376. package/lib/memory/contracts.js.map +1 -1
  377. package/lib/memory/index.d.ts +0 -1
  378. package/lib/memory/index.js.map +1 -1
  379. package/lib/memory/memory-system.d.ts +0 -1
  380. package/lib/memory/memory-system.js.map +1 -1
  381. package/lib/memory/memory-write-policy.d.ts +0 -1
  382. package/lib/memory/memory-write-policy.js.map +1 -1
  383. package/lib/memory/semantic-recall.d.ts +0 -1
  384. package/lib/memory/semantic-recall.js.map +1 -1
  385. package/lib/memory/told-ledger.d.ts +0 -1
  386. package/lib/memory/told-ledger.js.map +1 -1
  387. package/lib/memory-layers.d.ts +0 -1
  388. package/lib/memory-layers.js.map +1 -1
  389. package/lib/orchestration/five-agent/index.d.ts +0 -1
  390. package/lib/orchestration/five-agent/index.js.map +1 -1
  391. package/lib/orchestration/five-agent/prompts.d.ts +0 -1
  392. package/lib/orchestration/five-agent/prompts.js.map +1 -1
  393. package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
  394. package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
  395. package/lib/orchestration/five-agent/roles.d.ts +0 -1
  396. package/lib/orchestration/five-agent/roles.js.map +1 -1
  397. package/lib/outbound/agent-output.d.ts +5 -1
  398. package/lib/outbound/agent-output.js +14 -0
  399. package/lib/outbound/agent-output.js.map +1 -1
  400. package/lib/outbound/send-proactive.d.ts +0 -1
  401. package/lib/outbound/send-proactive.js.map +1 -1
  402. package/lib/outbound/structured-reply.d.ts +6 -2
  403. package/lib/outbound/structured-reply.js +65 -14
  404. package/lib/outbound/structured-reply.js.map +1 -1
  405. package/lib/plugin-ai-hook-bus.d.ts +0 -1
  406. package/lib/plugin-ai-hook-bus.js.map +1 -1
  407. package/lib/plugin-loop-hooks.d.ts +0 -1
  408. package/lib/plugin-loop-hooks.js.map +1 -1
  409. package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
  410. package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
  411. package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
  412. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  413. package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
  414. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  415. package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
  416. package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
  417. package/lib/plugin-runtime/ai-completion.d.ts +11 -43
  418. package/lib/plugin-runtime/ai-completion.js +28 -10
  419. package/lib/plugin-runtime/ai-completion.js.map +1 -1
  420. package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
  421. package/lib/plugin-runtime/capability-ingress.js.map +1 -1
  422. package/lib/plugin-runtime/capability-tools.d.ts +0 -1
  423. package/lib/plugin-runtime/capability-tools.js.map +1 -1
  424. package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
  425. package/lib/plugin-runtime/decision-runtime.js.map +1 -1
  426. package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
  427. package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
  428. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  429. package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
  430. package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
  431. package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
  432. package/lib/plugin-runtime/file-search-scope.js.map +1 -1
  433. package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
  434. package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
  435. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  436. package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
  437. package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
  438. package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
  439. package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
  440. package/lib/plugin-runtime/index.d.ts +0 -1
  441. package/lib/plugin-runtime/index.js.map +1 -1
  442. package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
  443. package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
  444. package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
  445. package/lib/plugin-runtime/native-file-tools.js.map +1 -1
  446. package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
  447. package/lib/plugin-runtime/native-image-tool.js.map +1 -1
  448. package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
  449. package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
  450. package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
  451. package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
  452. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
  453. package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
  454. package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
  455. package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
  456. package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
  457. package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
  458. package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
  459. package/lib/plugin-runtime/native-web-tools.js.map +1 -1
  460. package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
  461. package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
  462. package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
  463. package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
  464. package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
  465. package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
  466. package/lib/prompt/assembly.d.ts +0 -1
  467. package/lib/prompt/assembly.js +2 -2
  468. package/lib/prompt/assembly.js.map +1 -1
  469. package/lib/prompt/estimate-tokens.d.ts +0 -1
  470. package/lib/prompt/estimate-tokens.js.map +1 -1
  471. package/lib/prompt/git-context.d.ts +0 -1
  472. package/lib/prompt/git-context.js.map +1 -1
  473. package/lib/prompt/index.d.ts +0 -1
  474. package/lib/prompt/index.js.map +1 -1
  475. package/lib/prompt/model-aware-builder.d.ts +0 -1
  476. package/lib/prompt/model-aware-builder.js.map +1 -1
  477. package/lib/prompt/model-prompt-strategy.d.ts +0 -1
  478. package/lib/prompt/model-prompt-strategy.js.map +1 -1
  479. package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
  480. package/lib/prompt/prompt-assembly-registry.js.map +1 -1
  481. package/lib/prompt/prompt-budget.d.ts +0 -1
  482. package/lib/prompt/prompt-budget.js.map +1 -1
  483. package/lib/prompt/prompt-builder.d.ts +0 -1
  484. package/lib/prompt/prompt-builder.js.map +1 -1
  485. package/lib/prompt/rules/chat-rules.d.ts +6 -0
  486. package/lib/prompt/rules/chat-rules.js +20 -0
  487. package/lib/prompt/rules/chat-rules.js.map +1 -0
  488. package/lib/prompt/rules/code-references.d.ts +0 -1
  489. package/lib/prompt/rules/code-references.js.map +1 -1
  490. package/lib/prompt/rules/critical-rules.d.ts +0 -1
  491. package/lib/prompt/rules/critical-rules.js +2 -2
  492. package/lib/prompt/rules/critical-rules.js.map +1 -1
  493. package/lib/prompt/rules/editing.d.ts +0 -1
  494. package/lib/prompt/rules/editing.js.map +1 -1
  495. package/lib/prompt/rules/error-handling.d.ts +0 -1
  496. package/lib/prompt/rules/error-handling.js.map +1 -1
  497. package/lib/prompt/rules/index.d.ts +1 -1
  498. package/lib/prompt/rules/index.js +1 -0
  499. package/lib/prompt/rules/index.js.map +1 -1
  500. package/lib/prompt/rules/memory.d.ts +0 -1
  501. package/lib/prompt/rules/memory.js.map +1 -1
  502. package/lib/prompt/rules/task-completion.d.ts +0 -1
  503. package/lib/prompt/rules/task-completion.js.map +1 -1
  504. package/lib/prompt/rules/workflow-rules.d.ts +0 -1
  505. package/lib/prompt/rules/workflow-rules.js.map +1 -1
  506. package/lib/prompt/system-prompt.d.ts +7 -1
  507. package/lib/prompt/system-prompt.js +31 -12
  508. package/lib/prompt/system-prompt.js.map +1 -1
  509. package/lib/prompt/templates.d.ts +0 -1
  510. package/lib/prompt/templates.js.map +1 -1
  511. package/lib/prompt/tokens.d.ts +0 -1
  512. package/lib/prompt/tokens.js.map +1 -1
  513. package/lib/prompt/turn-prompt-profile.d.ts +0 -1
  514. package/lib/prompt/turn-prompt-profile.js.map +1 -1
  515. package/lib/prompt/workspace-prompt.d.ts +0 -1
  516. package/lib/prompt/workspace-prompt.js.map +1 -1
  517. package/lib/reserved-tools.d.ts +0 -1
  518. package/lib/reserved-tools.js.map +1 -1
  519. package/lib/resource-hub/hook-registry.d.ts +0 -1
  520. package/lib/resource-hub/hook-registry.js.map +1 -1
  521. package/lib/resource-hub/index.d.ts +0 -1
  522. package/lib/resource-hub/index.js.map +1 -1
  523. package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
  524. package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
  525. package/lib/resource-hub/mcp-registry.d.ts +0 -1
  526. package/lib/resource-hub/mcp-registry.js.map +1 -1
  527. package/lib/resource-hub/public-api.d.ts +0 -1
  528. package/lib/resource-hub/public-api.js.map +1 -1
  529. package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
  530. package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
  531. package/lib/resource-hub/resource-registry.d.ts +0 -1
  532. package/lib/resource-hub/resource-registry.js.map +1 -1
  533. package/lib/resource-hub/role-configs.d.ts +0 -1
  534. package/lib/resource-hub/role-configs.js.map +1 -1
  535. package/lib/resource-hub/skill-registry.d.ts +0 -1
  536. package/lib/resource-hub/skill-registry.js.map +1 -1
  537. package/lib/resource-hub/subagent-registry.d.ts +0 -1
  538. package/lib/resource-hub/subagent-registry.js.map +1 -1
  539. package/lib/resource-hub/tool-selection.d.ts +0 -1
  540. package/lib/resource-hub/tool-selection.js.map +1 -1
  541. package/lib/resource-hub/types.d.ts +0 -1
  542. package/lib/resource-hub/types.js.map +1 -1
  543. package/lib/routing/runtime-binding.d.ts +0 -1
  544. package/lib/routing/runtime-binding.js.map +1 -1
  545. package/lib/routing/subagent-summarize.d.ts +0 -1
  546. package/lib/routing/subagent-summarize.js.map +1 -1
  547. package/lib/schedule-cron.d.ts +0 -1
  548. package/lib/schedule-cron.js.map +1 -1
  549. package/lib/schedule-domain/audit-logger.d.ts +0 -1
  550. package/lib/schedule-domain/audit-logger.js.map +1 -1
  551. package/lib/schedule-domain/budget-guard.d.ts +0 -1
  552. package/lib/schedule-domain/budget-guard.js.map +1 -1
  553. package/lib/schedule-domain/execution-domain.d.ts +0 -1
  554. package/lib/schedule-domain/execution-domain.js.map +1 -1
  555. package/lib/schedule-domain/index.d.ts +0 -1
  556. package/lib/schedule-domain/index.js.map +1 -1
  557. package/lib/schedule-domain/output-validator.d.ts +0 -1
  558. package/lib/schedule-domain/output-validator.js.map +1 -1
  559. package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
  560. package/lib/schedule-domain/prompt-assembler.js.map +1 -1
  561. package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
  562. package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
  563. package/lib/schedule-domain/security-harness.d.ts +0 -1
  564. package/lib/schedule-domain/security-harness.js.map +1 -1
  565. package/lib/schedule-manager.d.ts +0 -1
  566. package/lib/schedule-manager.js.map +1 -1
  567. package/lib/seam/index.d.ts +0 -1
  568. package/lib/seam/index.js.map +1 -1
  569. package/lib/seam/seam-integration.d.ts +0 -1
  570. package/lib/seam/seam-integration.js.map +1 -1
  571. package/lib/seam/seam-provider.d.ts +0 -1
  572. package/lib/seam/seam-provider.js.map +1 -1
  573. package/lib/seam/skill-service.d.ts +0 -1
  574. package/lib/seam/skill-service.js.map +1 -1
  575. package/lib/seam/tokens.d.ts +0 -1
  576. package/lib/seam/tokens.js.map +1 -1
  577. package/lib/seam/tool-service.d.ts +0 -1
  578. package/lib/seam/tool-service.js.map +1 -1
  579. package/lib/security/anomaly-detection.d.ts +0 -1
  580. package/lib/security/anomaly-detection.js.map +1 -1
  581. package/lib/security/audit-logger.d.ts +0 -1
  582. package/lib/security/audit-logger.js.map +1 -1
  583. package/lib/security/comm-message-context.d.ts +0 -1
  584. package/lib/security/comm-message-context.js.map +1 -1
  585. package/lib/security/dangerous-tool-policy.d.ts +0 -1
  586. package/lib/security/dangerous-tool-policy.js.map +1 -1
  587. package/lib/security/exec-policy.d.ts +0 -1
  588. package/lib/security/exec-policy.js.map +1 -1
  589. package/lib/security/file-policy.d.ts +0 -1
  590. package/lib/security/file-policy.js.map +1 -1
  591. package/lib/security/file-role-policy.d.ts +0 -1
  592. package/lib/security/file-role-policy.js.map +1 -1
  593. package/lib/security/index.d.ts +0 -1
  594. package/lib/security/index.js.map +1 -1
  595. package/lib/security/network-authority.d.ts +0 -1
  596. package/lib/security/network-authority.js.map +1 -1
  597. package/lib/security/network-policy-context.d.ts +0 -1
  598. package/lib/security/network-policy-context.js.map +1 -1
  599. package/lib/security/network-policy.d.ts +0 -1
  600. package/lib/security/network-policy.js.map +1 -1
  601. package/lib/security/outbound-leak-guard.d.ts +0 -1
  602. package/lib/security/outbound-leak-guard.js.map +1 -1
  603. package/lib/security/owner-approval-contracts.d.ts +0 -1
  604. package/lib/security/owner-approval-contracts.js.map +1 -1
  605. package/lib/security/owner-approval-runtime.d.ts +0 -1
  606. package/lib/security/owner-approval-runtime.js.map +1 -1
  607. package/lib/security/owner-approval-store.d.ts +0 -1
  608. package/lib/security/owner-approval-store.js.map +1 -1
  609. package/lib/security/policy-facade.d.ts +0 -1
  610. package/lib/security/policy-facade.js.map +1 -1
  611. package/lib/security/policy-narrowing.d.ts +0 -1
  612. package/lib/security/policy-narrowing.js.map +1 -1
  613. package/lib/security/provenance.d.ts +0 -1
  614. package/lib/security/provenance.js.map +1 -1
  615. package/lib/security/sandbox-docker.d.ts +0 -1
  616. package/lib/security/sandbox-docker.js.map +1 -1
  617. package/lib/security/sandbox.d.ts +0 -1
  618. package/lib/security/sandbox.js.map +1 -1
  619. package/lib/security/trust-level.d.ts +0 -1
  620. package/lib/security/trust-level.js.map +1 -1
  621. package/lib/security/turn-file-authority.d.ts +0 -1
  622. package/lib/security/turn-file-authority.js.map +1 -1
  623. package/lib/security/turn-network-client.d.ts +0 -1
  624. package/lib/security/turn-network-client.js.map +1 -1
  625. package/lib/security/usage-quota.d.ts +3 -7
  626. package/lib/security/usage-quota.js.map +1 -1
  627. package/lib/segment/filter-im-delivery.d.ts +0 -1
  628. package/lib/segment/filter-im-delivery.js.map +1 -1
  629. package/lib/service.d.ts +0 -1
  630. package/lib/service.js.map +1 -1
  631. package/lib/session/approval-port.d.ts +0 -1
  632. package/lib/session/approval-port.js.map +1 -1
  633. package/lib/session/approval-review-agent.d.ts +0 -1
  634. package/lib/session/approval-review-agent.js.map +1 -1
  635. package/lib/session/branch-summarization-runtime.d.ts +0 -1
  636. package/lib/session/branch-summarization-runtime.js.map +1 -1
  637. package/lib/session/contracts.d.ts +0 -1
  638. package/lib/session/contracts.js.map +1 -1
  639. package/lib/session/index.d.ts +0 -1
  640. package/lib/session/index.js.map +1 -1
  641. package/lib/session/session-io.d.ts +0 -1
  642. package/lib/session/session-io.js.map +1 -1
  643. package/lib/session/session-key.d.ts +0 -1
  644. package/lib/session/session-key.js.map +1 -1
  645. package/lib/session/session-system.d.ts +7 -1
  646. package/lib/session/session-system.js +26 -12
  647. package/lib/session/session-system.js.map +1 -1
  648. package/lib/session/session-tree-commands.d.ts +0 -1
  649. package/lib/session/session-tree-commands.js.map +1 -1
  650. package/lib/session/strategies.d.ts +0 -1
  651. package/lib/session/strategies.js.map +1 -1
  652. package/lib/session/turn-ingress-session.d.ts +0 -1
  653. package/lib/session/turn-ingress-session.js.map +1 -1
  654. package/lib/session-tree-runtime.d.ts +0 -1
  655. package/lib/session-tree-runtime.js.map +1 -1
  656. package/lib/skill/capability-catalog.d.ts +0 -1
  657. package/lib/skill/capability-catalog.js.map +1 -1
  658. package/lib/skill/contracts.d.ts +0 -1
  659. package/lib/skill/contracts.js.map +1 -1
  660. package/lib/skill/index.d.ts +0 -1
  661. package/lib/skill/index.js.map +1 -1
  662. package/lib/skill/progressive-disclosure.d.ts +0 -1
  663. package/lib/skill/progressive-disclosure.js.map +1 -1
  664. package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
  665. package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
  666. package/lib/skill/skill-instruction-reader.d.ts +0 -1
  667. package/lib/skill/skill-instruction-reader.js.map +1 -1
  668. package/lib/skill/skill-instructions.d.ts +0 -1
  669. package/lib/skill/skill-instructions.js.map +1 -1
  670. package/lib/skill/skill-registry-as-service.d.ts +0 -1
  671. package/lib/skill/skill-registry-as-service.js.map +1 -1
  672. package/lib/skill/skill-system.d.ts +0 -1
  673. package/lib/skill/skill-system.js.map +1 -1
  674. package/lib/spawn/permission-task.d.ts +0 -1
  675. package/lib/spawn/permission-task.js.map +1 -1
  676. package/lib/spawn/spawn-task-tool.d.ts +0 -1
  677. package/lib/spawn/spawn-task-tool.js.map +1 -1
  678. package/lib/stability/memory-pressure.d.ts +0 -1
  679. package/lib/stability/memory-pressure.js.map +1 -1
  680. package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
  681. package/lib/standalone/standalone-tool-catalog.js.map +1 -1
  682. package/lib/subagent/contracts.d.ts +0 -1
  683. package/lib/subagent/contracts.js.map +1 -1
  684. package/lib/subagent/im-result-sink.d.ts +0 -1
  685. package/lib/subagent/im-result-sink.js.map +1 -1
  686. package/lib/subagent/index.d.ts +0 -1
  687. package/lib/subagent/index.js.map +1 -1
  688. package/lib/subagent/subagent-runtime.d.ts +0 -1
  689. package/lib/subagent/subagent-runtime.js.map +1 -1
  690. package/lib/subagent/subagent-system-init.d.ts +0 -1
  691. package/lib/subagent/subagent-system-init.js.map +1 -1
  692. package/lib/subagent/subagent-system.d.ts +0 -1
  693. package/lib/subagent/subagent-system.js.map +1 -1
  694. package/lib/subagent-ai-events.d.ts +0 -1
  695. package/lib/subagent-ai-events.js.map +1 -1
  696. package/lib/subagent-artifact.d.ts +0 -1
  697. package/lib/subagent-artifact.js.map +1 -1
  698. package/lib/subagent-goal-notify.d.ts +0 -1
  699. package/lib/subagent-goal-notify.js.map +1 -1
  700. package/lib/subagent-parent-context.d.ts +0 -1
  701. package/lib/subagent-parent-context.js.map +1 -1
  702. package/lib/subagent-preset.d.ts +0 -1
  703. package/lib/subagent-preset.js.map +1 -1
  704. package/lib/subagent-prompt.d.ts +0 -1
  705. package/lib/subagent-prompt.js.map +1 -1
  706. package/lib/task-executor.d.ts +0 -1
  707. package/lib/task-executor.js.map +1 -1
  708. package/lib/tool/builtin-policy-extractors.d.ts +0 -1
  709. package/lib/tool/builtin-policy-extractors.js.map +1 -1
  710. package/lib/tool/context-tools.d.ts +0 -1
  711. package/lib/tool/context-tools.js.map +1 -1
  712. package/lib/tool/contracts.d.ts +0 -1
  713. package/lib/tool/contracts.js.map +1 -1
  714. package/lib/tool/conversation-reference-tool.d.ts +0 -1
  715. package/lib/tool/conversation-reference-tool.js.map +1 -1
  716. package/lib/tool/deferred-resolution.d.ts +0 -1
  717. package/lib/tool/deferred-resolution.js.map +1 -1
  718. package/lib/tool/executable-tool-registry.d.ts +0 -1
  719. package/lib/tool/executable-tool-registry.js.map +1 -1
  720. package/lib/tool/index.d.ts +0 -1
  721. package/lib/tool/index.js.map +1 -1
  722. package/lib/tool/pre-exec.d.ts +0 -1
  723. package/lib/tool/pre-exec.js.map +1 -1
  724. package/lib/tool/prepare-turn-tools.d.ts +0 -1
  725. package/lib/tool/prepare-turn-tools.js.map +1 -1
  726. package/lib/tool/runtime.d.ts +0 -1
  727. package/lib/tool/runtime.js.map +1 -1
  728. package/lib/tool/sources.d.ts +0 -1
  729. package/lib/tool/sources.js.map +1 -1
  730. package/lib/tool/tool-approval-gate.d.ts +0 -1
  731. package/lib/tool/tool-approval-gate.js.map +1 -1
  732. package/lib/tool/tool-approval-once-store.d.ts +0 -1
  733. package/lib/tool/tool-approval-once-store.js.map +1 -1
  734. package/lib/tool/tool-execution-authority.d.ts +0 -1
  735. package/lib/tool/tool-execution-authority.js.map +1 -1
  736. package/lib/tool/tool-model-output.d.ts +0 -1
  737. package/lib/tool/tool-model-output.js.map +1 -1
  738. package/lib/tool/tool-runtime.d.ts +0 -1
  739. package/lib/tool/tool-runtime.js.map +1 -1
  740. package/lib/tool/tool-system.d.ts +0 -1
  741. package/lib/tool/tool-system.js.map +1 -1
  742. package/lib/tool/turn-tool-runtime.d.ts +0 -1
  743. package/lib/tool/turn-tool-runtime.js.map +1 -1
  744. package/lib/tool-bridge.d.ts +0 -1
  745. package/lib/tool-bridge.js.map +1 -1
  746. package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
  747. package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
  748. package/lib/tool-catalog/index.d.ts +0 -1
  749. package/lib/tool-catalog/index.js.map +1 -1
  750. package/lib/tool-catalog/resolve-config.d.ts +0 -1
  751. package/lib/tool-catalog/resolve-config.js.map +1 -1
  752. package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
  753. package/lib/tool-catalog/session-deferred-store.js.map +1 -1
  754. package/lib/tool-catalog/tool-catalog.d.ts +8 -1
  755. package/lib/tool-catalog/tool-catalog.js +15 -0
  756. package/lib/tool-catalog/tool-catalog.js.map +1 -1
  757. package/lib/tool-catalog/types.d.ts +0 -1
  758. package/lib/tool-catalog/types.js.map +1 -1
  759. package/lib/trace/context-budget.d.ts +0 -1
  760. package/lib/trace/context-budget.js.map +1 -1
  761. package/lib/trace/index.d.ts +0 -1
  762. package/lib/trace/index.js.map +1 -1
  763. package/lib/trace/turn-trace-archive.d.ts +0 -1
  764. package/lib/trace/turn-trace-archive.js.map +1 -1
  765. package/lib/trace/turn-trace-format.d.ts +0 -1
  766. package/lib/trace/turn-trace-format.js.map +1 -1
  767. package/lib/trace/turn-trace-registry.d.ts +0 -1
  768. package/lib/trace/turn-trace-registry.js.map +1 -1
  769. package/lib/trace/turn-trace-store.d.ts +0 -1
  770. package/lib/trace/turn-trace-store.js.map +1 -1
  771. package/lib/trace/turn-trace.d.ts +0 -1
  772. package/lib/trace/turn-trace.js.map +1 -1
  773. package/lib/turn/agent-turn-context.d.ts +0 -1
  774. package/lib/turn/agent-turn-context.js.map +1 -1
  775. package/lib/turn/auto-continue.d.ts +0 -1
  776. package/lib/turn/auto-continue.js.map +1 -1
  777. package/lib/turn/cancel-intent.d.ts +0 -1
  778. package/lib/turn/cancel-intent.js.map +1 -1
  779. package/lib/turn/deferred-auto-continue.d.ts +0 -1
  780. package/lib/turn/deferred-auto-continue.js.map +1 -1
  781. package/lib/turn/deferred-delivery.d.ts +0 -1
  782. package/lib/turn/deferred-delivery.js.map +1 -1
  783. package/lib/turn/deferred-turn-state.d.ts +0 -1
  784. package/lib/turn/deferred-turn-state.js.map +1 -1
  785. package/lib/turn/execute-agent-turn.d.ts +0 -1
  786. package/lib/turn/execute-agent-turn.js.map +1 -1
  787. package/lib/turn/inbound-media.d.ts +3 -2
  788. package/lib/turn/inbound-media.js +15 -2
  789. package/lib/turn/inbound-media.js.map +1 -1
  790. package/lib/turn/inbound-queue-config.d.ts +0 -1
  791. package/lib/turn/inbound-queue-config.js.map +1 -1
  792. package/lib/turn/inbound-queue-runtime.d.ts +0 -1
  793. package/lib/turn/inbound-queue-runtime.js.map +1 -1
  794. package/lib/turn/inbound-turn-queue.d.ts +0 -1
  795. package/lib/turn/inbound-turn-queue.js.map +1 -1
  796. package/lib/turn/index.d.ts +0 -1
  797. package/lib/turn/index.js.map +1 -1
  798. package/lib/turn/journal-feed.d.ts +0 -1
  799. package/lib/turn/journal-feed.js.map +1 -1
  800. package/lib/turn/journal-integrity.d.ts +0 -1
  801. package/lib/turn/journal-integrity.js.map +1 -1
  802. package/lib/turn/persist-deferred-context.d.ts +0 -1
  803. package/lib/turn/persist-deferred-context.js.map +1 -1
  804. package/lib/turn/persist-subagent-context.d.ts +0 -1
  805. package/lib/turn/persist-subagent-context.js.map +1 -1
  806. package/lib/turn/process-stream.d.ts +0 -1
  807. package/lib/turn/process-stream.js.map +1 -1
  808. package/lib/turn/prompt-access.d.ts +0 -1
  809. package/lib/turn/prompt-access.js.map +1 -1
  810. package/lib/turn/prompt-api.d.ts +0 -1
  811. package/lib/turn/prompt-api.js.map +1 -1
  812. package/lib/turn/prompt-controller.d.ts +0 -1
  813. package/lib/turn/prompt-controller.js.map +1 -1
  814. package/lib/turn/prompt-input.d.ts +0 -1
  815. package/lib/turn/prompt-input.js.map +1 -1
  816. package/lib/turn/session-message-queue.d.ts +0 -1
  817. package/lib/turn/session-message-queue.js.map +1 -1
  818. package/lib/turn/subagent-auto-continue.d.ts +0 -1
  819. package/lib/turn/subagent-auto-continue.js.map +1 -1
  820. package/lib/turn/task-continuation.d.ts +0 -1
  821. package/lib/turn/task-continuation.js.map +1 -1
  822. package/lib/turn/trigger-cancelled-error.d.ts +0 -1
  823. package/lib/turn/trigger-cancelled-error.js.map +1 -1
  824. package/lib/turn/turn-admission-gate.d.ts +0 -1
  825. package/lib/turn/turn-admission-gate.js.map +1 -1
  826. package/lib/turn/turn-complete.d.ts +0 -1
  827. package/lib/turn/turn-complete.js.map +1 -1
  828. package/lib/turn/turn-context-bridge.d.ts +0 -1
  829. package/lib/turn/turn-context-bridge.js.map +1 -1
  830. package/lib/turn/turn-deferred-delta.d.ts +0 -1
  831. package/lib/turn/turn-deferred-delta.js.map +1 -1
  832. package/lib/turn/turn-event-source.d.ts +0 -1
  833. package/lib/turn/turn-event-source.js.map +1 -1
  834. package/lib/turn/turn-ingress.d.ts +3 -1
  835. package/lib/turn/turn-ingress.js.map +1 -1
  836. package/lib/turn/turn-metrics.d.ts +0 -1
  837. package/lib/turn/turn-metrics.js.map +1 -1
  838. package/lib/turn/turn-pipeline.d.ts +0 -1
  839. package/lib/turn/turn-pipeline.js.map +1 -1
  840. package/lib/turn/turn-terminal.d.ts +0 -1
  841. package/lib/turn/turn-terminal.js.map +1 -1
  842. package/lib/turn/turn-tracker.d.ts +0 -1
  843. package/lib/turn/turn-tracker.js.map +1 -1
  844. package/lib/types/disposable.d.ts +0 -1
  845. package/lib/types/disposable.js.map +1 -1
  846. package/lib/typing-indicator/adapter-integration.d.ts +0 -1
  847. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  848. package/lib/typing-indicator/index.d.ts +0 -1
  849. package/lib/typing-indicator/index.js.map +1 -1
  850. package/lib/user-profile.d.ts +0 -1
  851. package/lib/user-profile.js.map +1 -1
  852. package/lib/utils/config-env.d.ts +0 -1
  853. package/lib/utils/config-env.js.map +1 -1
  854. package/lib/utils/keyed-mutex.d.ts +0 -1
  855. package/lib/utils/keyed-mutex.js.map +1 -1
  856. package/lib/web/bing-search-html.d.ts +0 -1
  857. package/lib/web/bing-search-html.js.map +1 -1
  858. package/lib/web/web-search-locale.d.ts +0 -1
  859. package/lib/web/web-search-locale.js.map +1 -1
  860. package/lib/web/web-tool-utils.d.ts +0 -1
  861. package/lib/web/web-tool-utils.js.map +1 -1
  862. package/lib/zhin-agent/index.d.ts +0 -1
  863. package/lib/zhin-agent/index.js.map +1 -1
  864. package/lib/zhin-agent/runtime-modules.d.ts +0 -1
  865. package/lib/zhin-agent/runtime-modules.js.map +1 -1
  866. package/package.json +12 -12
  867. package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
  868. package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
  869. package/lib/activity-feedback/event-context.d.ts.map +0 -1
  870. package/lib/activity-feedback/index.d.ts.map +0 -1
  871. package/lib/activity-feedback/manager.d.ts.map +0 -1
  872. package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
  873. package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
  874. package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
  875. package/lib/activity-feedback/types.d.ts.map +0 -1
  876. package/lib/ai-event-bus.d.ts.map +0 -1
  877. package/lib/ai-event-contract.d.ts.map +0 -1
  878. package/lib/ai-event-subscriber.d.ts.map +0 -1
  879. package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
  880. package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
  881. package/lib/assistant/config.d.ts.map +0 -1
  882. package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
  883. package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
  884. package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
  885. package/lib/assistant/domains/home-entity.d.ts.map +0 -1
  886. package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
  887. package/lib/assistant/event-ingress.d.ts.map +0 -1
  888. package/lib/assistant/event-types.d.ts.map +0 -1
  889. package/lib/assistant/home-config.d.ts.map +0 -1
  890. package/lib/assistant/home-facade.d.ts.map +0 -1
  891. package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
  892. package/lib/assistant/home-policy.d.ts.map +0 -1
  893. package/lib/assistant/home-tools.d.ts.map +0 -1
  894. package/lib/assistant/index.d.ts.map +0 -1
  895. package/lib/assistant/job-creator.d.ts.map +0 -1
  896. package/lib/assistant/job-engine.d.ts.map +0 -1
  897. package/lib/assistant/job-scheduler.d.ts.map +0 -1
  898. package/lib/assistant/job-store.d.ts.map +0 -1
  899. package/lib/assistant/job-utils.d.ts.map +0 -1
  900. package/lib/assistant/job-worker.d.ts.map +0 -1
  901. package/lib/assistant/notification-router.d.ts.map +0 -1
  902. package/lib/assistant/profile-loader.d.ts.map +0 -1
  903. package/lib/assistant/profile-types.d.ts.map +0 -1
  904. package/lib/assistant/runtime-contract.d.ts.map +0 -1
  905. package/lib/assistant/schedule-execution.d.ts.map +0 -1
  906. package/lib/assistant/schedule-job-service.d.ts.map +0 -1
  907. package/lib/assistant/schedule-skills.d.ts.map +0 -1
  908. package/lib/assistant/types.d.ts.map +0 -1
  909. package/lib/authoring/bridge.d.ts.map +0 -1
  910. package/lib/authoring/define-eval.d.ts.map +0 -1
  911. package/lib/authoring/define-hook.d.ts.map +0 -1
  912. package/lib/authoring/define-skill.d.ts.map +0 -1
  913. package/lib/authoring/disable-tool.d.ts.map +0 -1
  914. package/lib/authoring/entries/evals.d.ts.map +0 -1
  915. package/lib/authoring/entries/hooks.d.ts.map +0 -1
  916. package/lib/authoring/entries/skills.d.ts.map +0 -1
  917. package/lib/authoring/index.d.ts.map +0 -1
  918. package/lib/authoring/types.d.ts.map +0 -1
  919. package/lib/bootstrap.d.ts.map +0 -1
  920. package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
  921. package/lib/common-adapter-tools.d.ts.map +0 -1
  922. package/lib/config/agent-binding-registry.d.ts.map +0 -1
  923. package/lib/config/agent-bindings.d.ts.map +0 -1
  924. package/lib/config/agent-interfaces.d.ts.map +0 -1
  925. package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
  926. package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
  927. package/lib/config/fix-ai-config.d.ts.map +0 -1
  928. package/lib/config/index.d.ts.map +0 -1
  929. package/lib/config/keyword-triggers.d.ts.map +0 -1
  930. package/lib/config/model-harness-runtime.d.ts.map +0 -1
  931. package/lib/config/model-harness.d.ts.map +0 -1
  932. package/lib/config/normalize-ai-config.d.ts.map +0 -1
  933. package/lib/config/perception-config.d.ts.map +0 -1
  934. package/lib/config/provider-instance.d.ts.map +0 -1
  935. package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
  936. package/lib/config/types.d.ts.map +0 -1
  937. package/lib/config/validate-ai-config.d.ts.map +0 -1
  938. package/lib/config/zhin-agent-config.d.ts.map +0 -1
  939. package/lib/config/zhin-agent-constants.d.ts.map +0 -1
  940. package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
  941. package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
  942. package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
  943. package/lib/context/agents-instruction.d.ts.map +0 -1
  944. package/lib/context/context-system.d.ts.map +0 -1
  945. package/lib/context/context-tail-limit.d.ts.map +0 -1
  946. package/lib/context/contracts.d.ts.map +0 -1
  947. package/lib/context/default-builders.d.ts.map +0 -1
  948. package/lib/context/envelope-parts.d.ts.map +0 -1
  949. package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
  950. package/lib/context/index.d.ts.map +0 -1
  951. package/lib/context/model-resolver.d.ts.map +0 -1
  952. package/lib/context/turn-envelope.d.ts.map +0 -1
  953. package/lib/context/turn-user-message.d.ts.map +0 -1
  954. package/lib/core/agent-core-run.d.ts.map +0 -1
  955. package/lib/core/agent-core.d.ts.map +0 -1
  956. package/lib/core/agent-loop-standalone.d.ts.map +0 -1
  957. package/lib/core/agent-loop-turn.d.ts.map +0 -1
  958. package/lib/core/agent-run-shared.d.ts.map +0 -1
  959. package/lib/core/compose-deps.d.ts.map +0 -1
  960. package/lib/core/contracts.d.ts.map +0 -1
  961. package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
  962. package/lib/core/exploration-budget.d.ts.map +0 -1
  963. package/lib/core/index.d.ts.map +0 -1
  964. package/lib/core/missing-tool-resolver.d.ts.map +0 -1
  965. package/lib/core/progress-reporter.d.ts.map +0 -1
  966. package/lib/core/spawn-delegation.d.ts.map +0 -1
  967. package/lib/core/structured-reply-recovery.d.ts.map +0 -1
  968. package/lib/core/text-sanitize.d.ts.map +0 -1
  969. package/lib/core/tool-calls-user-format.d.ts.map +0 -1
  970. package/lib/core/tool-execution-authority.d.ts.map +0 -1
  971. package/lib/core/turn-event-mapper.d.ts.map +0 -1
  972. package/lib/core/turn-progress.d.ts.map +0 -1
  973. package/lib/create-agent-session.d.ts.map +0 -1
  974. package/lib/decision/approval-judgment.d.ts.map +0 -1
  975. package/lib/decision/approval.d.ts.map +0 -1
  976. package/lib/decision/config.d.ts.map +0 -1
  977. package/lib/decision/index.d.ts.map +0 -1
  978. package/lib/decision/rank.d.ts.map +0 -1
  979. package/lib/decision/retrieval.d.ts.map +0 -1
  980. package/lib/decision/types.d.ts.map +0 -1
  981. package/lib/deferred-worker-runner.d.ts.map +0 -1
  982. package/lib/deferred-worker-tool-load.d.ts.map +0 -1
  983. package/lib/detached-task/index.d.ts.map +0 -1
  984. package/lib/detached-task/interjection.d.ts.map +0 -1
  985. package/lib/detached-task/runner.d.ts.map +0 -1
  986. package/lib/detached-task/store.d.ts.map +0 -1
  987. package/lib/detached-task/token.d.ts.map +0 -1
  988. package/lib/detached-task/types.d.ts.map +0 -1
  989. package/lib/discovery/agent-surface-info.d.ts.map +0 -1
  990. package/lib/discovery/agent-surface.d.ts.map +0 -1
  991. package/lib/discovery/agents.d.ts.map +0 -1
  992. package/lib/discovery/utils.d.ts.map +0 -1
  993. package/lib/event/agent-stream-bus.d.ts.map +0 -1
  994. package/lib/event/agent-stream-hooks.d.ts.map +0 -1
  995. package/lib/event/ai-event-bus.d.ts.map +0 -1
  996. package/lib/event/contracts.d.ts.map +0 -1
  997. package/lib/event/event-emitter.d.ts.map +0 -1
  998. package/lib/event/event-system.d.ts.map +0 -1
  999. package/lib/event/filtering-middleware.d.ts.map +0 -1
  1000. package/lib/event/hook-stream-sink.d.ts.map +0 -1
  1001. package/lib/event/index.d.ts.map +0 -1
  1002. package/lib/event/logging-middleware.d.ts.map +0 -1
  1003. package/lib/event/publish-agent-stream.d.ts.map +0 -1
  1004. package/lib/event/session-events.d.ts.map +0 -1
  1005. package/lib/event/turn-event.d.ts.map +0 -1
  1006. package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
  1007. package/lib/index.d.ts.map +0 -1
  1008. package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
  1009. package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
  1010. package/lib/init/configure-zhin-agent.d.ts.map +0 -1
  1011. package/lib/init/define-ai-database-models.d.ts.map +0 -1
  1012. package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
  1013. package/lib/init/introspection-output.d.ts.map +0 -1
  1014. package/lib/init/runtime-management-commands.d.ts.map +0 -1
  1015. package/lib/interaction/index.d.ts.map +0 -1
  1016. package/lib/interaction/interaction-router.d.ts.map +0 -1
  1017. package/lib/internal/agent-host.d.ts.map +0 -1
  1018. package/lib/internal/ai-service-refs.d.ts.map +0 -1
  1019. package/lib/internal/as-private.d.ts.map +0 -1
  1020. package/lib/internal/host-types.d.ts.map +0 -1
  1021. package/lib/internal/phase-trace.d.ts.map +0 -1
  1022. package/lib/internal/prompt-trace.d.ts.map +0 -1
  1023. package/lib/internal/turn-context.d.ts.map +0 -1
  1024. package/lib/journal/file-journal-store.d.ts.map +0 -1
  1025. package/lib/journal/index.d.ts.map +0 -1
  1026. package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
  1027. package/lib/mcp-client/bridge.d.ts.map +0 -1
  1028. package/lib/mcp-client/connection.d.ts.map +0 -1
  1029. package/lib/mcp-client/index.d.ts.map +0 -1
  1030. package/lib/media/deliver-subagent-result.d.ts.map +0 -1
  1031. package/lib/media/inbound-refs.d.ts.map +0 -1
  1032. package/lib/media/index.d.ts.map +0 -1
  1033. package/lib/media/media-capabilities.d.ts.map +0 -1
  1034. package/lib/media/media-normalize.d.ts.map +0 -1
  1035. package/lib/media/media-publisher.d.ts.map +0 -1
  1036. package/lib/media/media-router.d.ts.map +0 -1
  1037. package/lib/media/media-spool.d.ts.map +0 -1
  1038. package/lib/media/media-tool-bridge.d.ts.map +0 -1
  1039. package/lib/media/media-types.d.ts.map +0 -1
  1040. package/lib/media/perception.d.ts.map +0 -1
  1041. package/lib/media/resolve-config.d.ts.map +0 -1
  1042. package/lib/media/subagent-inbound.d.ts.map +0 -1
  1043. package/lib/media/subagent-user-delivery.d.ts.map +0 -1
  1044. package/lib/media/vision-capability.d.ts.map +0 -1
  1045. package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
  1046. package/lib/memory/compaction-runtime.d.ts.map +0 -1
  1047. package/lib/memory/context-repository-store.d.ts.map +0 -1
  1048. package/lib/memory/contracts.d.ts.map +0 -1
  1049. package/lib/memory/index.d.ts.map +0 -1
  1050. package/lib/memory/memory-system.d.ts.map +0 -1
  1051. package/lib/memory/memory-write-policy.d.ts.map +0 -1
  1052. package/lib/memory/semantic-recall.d.ts.map +0 -1
  1053. package/lib/memory/told-ledger.d.ts.map +0 -1
  1054. package/lib/memory-layers.d.ts.map +0 -1
  1055. package/lib/orchestration/five-agent/index.d.ts.map +0 -1
  1056. package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
  1057. package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
  1058. package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
  1059. package/lib/outbound/agent-output.d.ts.map +0 -1
  1060. package/lib/outbound/send-proactive.d.ts.map +0 -1
  1061. package/lib/outbound/structured-reply.d.ts.map +0 -1
  1062. package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
  1063. package/lib/plugin-loop-hooks.d.ts.map +0 -1
  1064. package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
  1065. package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
  1066. package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
  1067. package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
  1068. package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
  1069. package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
  1070. package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
  1071. package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
  1072. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
  1073. package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
  1074. package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
  1075. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
  1076. package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
  1077. package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
  1078. package/lib/plugin-runtime/index.d.ts.map +0 -1
  1079. package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
  1080. package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
  1081. package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
  1082. package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
  1083. package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
  1084. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
  1085. package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
  1086. package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
  1087. package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
  1088. package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
  1089. package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
  1090. package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
  1091. package/lib/prompt/assembly.d.ts.map +0 -1
  1092. package/lib/prompt/estimate-tokens.d.ts.map +0 -1
  1093. package/lib/prompt/git-context.d.ts.map +0 -1
  1094. package/lib/prompt/index.d.ts.map +0 -1
  1095. package/lib/prompt/model-aware-builder.d.ts.map +0 -1
  1096. package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
  1097. package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
  1098. package/lib/prompt/prompt-budget.d.ts.map +0 -1
  1099. package/lib/prompt/prompt-builder.d.ts.map +0 -1
  1100. package/lib/prompt/rules/code-references.d.ts.map +0 -1
  1101. package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
  1102. package/lib/prompt/rules/editing.d.ts.map +0 -1
  1103. package/lib/prompt/rules/error-handling.d.ts.map +0 -1
  1104. package/lib/prompt/rules/index.d.ts.map +0 -1
  1105. package/lib/prompt/rules/memory.d.ts.map +0 -1
  1106. package/lib/prompt/rules/task-completion.d.ts.map +0 -1
  1107. package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
  1108. package/lib/prompt/system-prompt.d.ts.map +0 -1
  1109. package/lib/prompt/templates.d.ts.map +0 -1
  1110. package/lib/prompt/tokens.d.ts.map +0 -1
  1111. package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
  1112. package/lib/prompt/workspace-prompt.d.ts.map +0 -1
  1113. package/lib/reserved-tools.d.ts.map +0 -1
  1114. package/lib/resource-hub/hook-registry.d.ts.map +0 -1
  1115. package/lib/resource-hub/index.d.ts.map +0 -1
  1116. package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
  1117. package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
  1118. package/lib/resource-hub/public-api.d.ts.map +0 -1
  1119. package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
  1120. package/lib/resource-hub/resource-registry.d.ts.map +0 -1
  1121. package/lib/resource-hub/role-configs.d.ts.map +0 -1
  1122. package/lib/resource-hub/skill-registry.d.ts.map +0 -1
  1123. package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
  1124. package/lib/resource-hub/tool-selection.d.ts.map +0 -1
  1125. package/lib/resource-hub/types.d.ts.map +0 -1
  1126. package/lib/routing/runtime-binding.d.ts.map +0 -1
  1127. package/lib/routing/subagent-summarize.d.ts.map +0 -1
  1128. package/lib/schedule-cron.d.ts.map +0 -1
  1129. package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
  1130. package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
  1131. package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
  1132. package/lib/schedule-domain/index.d.ts.map +0 -1
  1133. package/lib/schedule-domain/output-validator.d.ts.map +0 -1
  1134. package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
  1135. package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
  1136. package/lib/schedule-domain/security-harness.d.ts.map +0 -1
  1137. package/lib/schedule-manager.d.ts.map +0 -1
  1138. package/lib/seam/index.d.ts.map +0 -1
  1139. package/lib/seam/seam-integration.d.ts.map +0 -1
  1140. package/lib/seam/seam-provider.d.ts.map +0 -1
  1141. package/lib/seam/skill-service.d.ts.map +0 -1
  1142. package/lib/seam/tokens.d.ts.map +0 -1
  1143. package/lib/seam/tool-service.d.ts.map +0 -1
  1144. package/lib/security/anomaly-detection.d.ts.map +0 -1
  1145. package/lib/security/audit-logger.d.ts.map +0 -1
  1146. package/lib/security/comm-message-context.d.ts.map +0 -1
  1147. package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
  1148. package/lib/security/exec-policy.d.ts.map +0 -1
  1149. package/lib/security/file-policy.d.ts.map +0 -1
  1150. package/lib/security/file-role-policy.d.ts.map +0 -1
  1151. package/lib/security/index.d.ts.map +0 -1
  1152. package/lib/security/network-authority.d.ts.map +0 -1
  1153. package/lib/security/network-policy-context.d.ts.map +0 -1
  1154. package/lib/security/network-policy.d.ts.map +0 -1
  1155. package/lib/security/outbound-leak-guard.d.ts.map +0 -1
  1156. package/lib/security/owner-approval-contracts.d.ts.map +0 -1
  1157. package/lib/security/owner-approval-runtime.d.ts.map +0 -1
  1158. package/lib/security/owner-approval-store.d.ts.map +0 -1
  1159. package/lib/security/policy-facade.d.ts.map +0 -1
  1160. package/lib/security/policy-narrowing.d.ts.map +0 -1
  1161. package/lib/security/provenance.d.ts.map +0 -1
  1162. package/lib/security/sandbox-docker.d.ts.map +0 -1
  1163. package/lib/security/sandbox.d.ts.map +0 -1
  1164. package/lib/security/trust-level.d.ts.map +0 -1
  1165. package/lib/security/turn-file-authority.d.ts.map +0 -1
  1166. package/lib/security/turn-network-client.d.ts.map +0 -1
  1167. package/lib/security/usage-quota.d.ts.map +0 -1
  1168. package/lib/segment/filter-im-delivery.d.ts.map +0 -1
  1169. package/lib/service.d.ts.map +0 -1
  1170. package/lib/session/approval-port.d.ts.map +0 -1
  1171. package/lib/session/approval-review-agent.d.ts.map +0 -1
  1172. package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
  1173. package/lib/session/contracts.d.ts.map +0 -1
  1174. package/lib/session/index.d.ts.map +0 -1
  1175. package/lib/session/session-io.d.ts.map +0 -1
  1176. package/lib/session/session-key.d.ts.map +0 -1
  1177. package/lib/session/session-system.d.ts.map +0 -1
  1178. package/lib/session/session-tree-commands.d.ts.map +0 -1
  1179. package/lib/session/strategies.d.ts.map +0 -1
  1180. package/lib/session/turn-ingress-session.d.ts.map +0 -1
  1181. package/lib/session-tree-runtime.d.ts.map +0 -1
  1182. package/lib/skill/capability-catalog.d.ts.map +0 -1
  1183. package/lib/skill/contracts.d.ts.map +0 -1
  1184. package/lib/skill/index.d.ts.map +0 -1
  1185. package/lib/skill/progressive-disclosure.d.ts.map +0 -1
  1186. package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
  1187. package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
  1188. package/lib/skill/skill-instructions.d.ts.map +0 -1
  1189. package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
  1190. package/lib/skill/skill-system.d.ts.map +0 -1
  1191. package/lib/spawn/permission-task.d.ts.map +0 -1
  1192. package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
  1193. package/lib/stability/memory-pressure.d.ts.map +0 -1
  1194. package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
  1195. package/lib/subagent/contracts.d.ts.map +0 -1
  1196. package/lib/subagent/im-result-sink.d.ts.map +0 -1
  1197. package/lib/subagent/index.d.ts.map +0 -1
  1198. package/lib/subagent/subagent-runtime.d.ts.map +0 -1
  1199. package/lib/subagent/subagent-system-init.d.ts.map +0 -1
  1200. package/lib/subagent/subagent-system.d.ts.map +0 -1
  1201. package/lib/subagent-ai-events.d.ts.map +0 -1
  1202. package/lib/subagent-artifact.d.ts.map +0 -1
  1203. package/lib/subagent-goal-notify.d.ts.map +0 -1
  1204. package/lib/subagent-parent-context.d.ts.map +0 -1
  1205. package/lib/subagent-preset.d.ts.map +0 -1
  1206. package/lib/subagent-prompt.d.ts.map +0 -1
  1207. package/lib/task-executor.d.ts.map +0 -1
  1208. package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
  1209. package/lib/tool/context-tools.d.ts.map +0 -1
  1210. package/lib/tool/contracts.d.ts.map +0 -1
  1211. package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
  1212. package/lib/tool/deferred-resolution.d.ts.map +0 -1
  1213. package/lib/tool/executable-tool-registry.d.ts.map +0 -1
  1214. package/lib/tool/index.d.ts.map +0 -1
  1215. package/lib/tool/pre-exec.d.ts.map +0 -1
  1216. package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
  1217. package/lib/tool/runtime.d.ts.map +0 -1
  1218. package/lib/tool/sources.d.ts.map +0 -1
  1219. package/lib/tool/tool-approval-gate.d.ts.map +0 -1
  1220. package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
  1221. package/lib/tool/tool-execution-authority.d.ts.map +0 -1
  1222. package/lib/tool/tool-model-output.d.ts.map +0 -1
  1223. package/lib/tool/tool-runtime.d.ts.map +0 -1
  1224. package/lib/tool/tool-system.d.ts.map +0 -1
  1225. package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
  1226. package/lib/tool-bridge.d.ts.map +0 -1
  1227. package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
  1228. package/lib/tool-catalog/index.d.ts.map +0 -1
  1229. package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
  1230. package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
  1231. package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
  1232. package/lib/tool-catalog/types.d.ts.map +0 -1
  1233. package/lib/trace/context-budget.d.ts.map +0 -1
  1234. package/lib/trace/index.d.ts.map +0 -1
  1235. package/lib/trace/turn-trace-archive.d.ts.map +0 -1
  1236. package/lib/trace/turn-trace-format.d.ts.map +0 -1
  1237. package/lib/trace/turn-trace-registry.d.ts.map +0 -1
  1238. package/lib/trace/turn-trace-store.d.ts.map +0 -1
  1239. package/lib/trace/turn-trace.d.ts.map +0 -1
  1240. package/lib/turn/agent-turn-context.d.ts.map +0 -1
  1241. package/lib/turn/auto-continue.d.ts.map +0 -1
  1242. package/lib/turn/cancel-intent.d.ts.map +0 -1
  1243. package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
  1244. package/lib/turn/deferred-delivery.d.ts.map +0 -1
  1245. package/lib/turn/deferred-turn-state.d.ts.map +0 -1
  1246. package/lib/turn/execute-agent-turn.d.ts.map +0 -1
  1247. package/lib/turn/inbound-media.d.ts.map +0 -1
  1248. package/lib/turn/inbound-queue-config.d.ts.map +0 -1
  1249. package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
  1250. package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
  1251. package/lib/turn/index.d.ts.map +0 -1
  1252. package/lib/turn/journal-feed.d.ts.map +0 -1
  1253. package/lib/turn/journal-integrity.d.ts.map +0 -1
  1254. package/lib/turn/persist-deferred-context.d.ts.map +0 -1
  1255. package/lib/turn/persist-subagent-context.d.ts.map +0 -1
  1256. package/lib/turn/process-stream.d.ts.map +0 -1
  1257. package/lib/turn/prompt-access.d.ts.map +0 -1
  1258. package/lib/turn/prompt-api.d.ts.map +0 -1
  1259. package/lib/turn/prompt-controller.d.ts.map +0 -1
  1260. package/lib/turn/prompt-input.d.ts.map +0 -1
  1261. package/lib/turn/session-message-queue.d.ts.map +0 -1
  1262. package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
  1263. package/lib/turn/task-continuation.d.ts.map +0 -1
  1264. package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
  1265. package/lib/turn/turn-admission-gate.d.ts.map +0 -1
  1266. package/lib/turn/turn-complete.d.ts.map +0 -1
  1267. package/lib/turn/turn-context-bridge.d.ts.map +0 -1
  1268. package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
  1269. package/lib/turn/turn-event-source.d.ts.map +0 -1
  1270. package/lib/turn/turn-ingress.d.ts.map +0 -1
  1271. package/lib/turn/turn-metrics.d.ts.map +0 -1
  1272. package/lib/turn/turn-pipeline.d.ts.map +0 -1
  1273. package/lib/turn/turn-terminal.d.ts.map +0 -1
  1274. package/lib/turn/turn-tracker.d.ts.map +0 -1
  1275. package/lib/types/disposable.d.ts.map +0 -1
  1276. package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
  1277. package/lib/typing-indicator/index.d.ts.map +0 -1
  1278. package/lib/user-profile.d.ts.map +0 -1
  1279. package/lib/utils/config-env.d.ts.map +0 -1
  1280. package/lib/utils/keyed-mutex.d.ts.map +0 -1
  1281. package/lib/web/bing-search-html.d.ts.map +0 -1
  1282. package/lib/web/web-search-locale.d.ts.map +0 -1
  1283. package/lib/web/web-tool-utils.d.ts.map +0 -1
  1284. package/lib/zhin-agent/index.d.ts.map +0 -1
  1285. package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
@@ -4,4 +4,3 @@ import { type SendContent } from '@zhin.js/core';
4
4
  * 非 segment 形状(如 JSX MessageComponent)原样保留。
5
5
  */
6
6
  export declare function filterImDeliveryContent(content: SendContent): SendContent;
7
- //# sourceMappingURL=filter-im-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-im-delivery.js","sourceRoot":"","sources":["../../src/segment/filter-im-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAyC,MAAM,eAAe,CAAC;AAE7F,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,QAAQ;WAClD,MAAM,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAoB;IAC1D,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAgC,EAAE,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"filter-im-delivery.js","sourceRoot":"","sources":["../../src/segment/filter-im-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAyC,MAAM,eAAe,CAAC;AAE7F,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,QAAQ;WAClD,MAAM,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAoB;IAC1D,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAgC,EAAE,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { segmentsForImDelivery, type MessageElement, type SendContent } from '@zhin.js/core';\n\nfunction isSegmentLike(value: unknown): value is MessageElement {\n return (\n typeof value === 'object'\n && value !== null\n && typeof (value as MessageElement).type === 'string'\n && 'data' in value\n );\n}\n\n/**\n * 过滤 AI 出站内容,仅保留 IM-visible canonical 段(剔除 thinking / tool_call)。\n * 非 segment 形状(如 JSX MessageComponent)原样保留。\n */\nexport function filterImDeliveryContent(content: SendContent): SendContent {\n if (typeof content === 'string') return content;\n\n const items = Array.isArray(content) ? content : [content];\n const filtered: (string | MessageElement)[] = [];\n\n for (const item of items) {\n if (!isSegmentLike(item)) {\n filtered.push(item);\n continue;\n }\n const visible = segmentsForImDelivery([item]);\n if (visible.length) filtered.push(visible[0]!);\n }\n\n if (filtered.length === 0) return [];\n if (filtered.length === 1 && !Array.isArray(content)) return filtered[0]!;\n return filtered;\n}\n"]}
package/lib/service.d.ts CHANGED
@@ -100,4 +100,3 @@ export declare class AIService {
100
100
  healthCheck(): Promise<Record<string, boolean>>;
101
101
  dispose(): Promise<void>;
102
102
  }
103
- //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AIService — AI 服务核心类\n * 统一管理多个模型提供商,提供会话和 Agent 能力\n */\n\nimport { type AITriggerConfig, type AIAccessConfig } from '@zhin.js/core';\nimport { type AIProvider, type AIConfig, type AgentTool, type Usage, type ImageGenerationDefaults, type ModelRegistry, type ContextConfig, createLlmApiRuntime, sdkEntryFromProvider, type LlmApiRuntime, SdkProviderAdapter } from '@zhin.js/ai';\nimport type { AgentRunInput } from './media/media-types.js';\nimport { DEFAULT_CONFIG, findDeprecatedAgentBindingKeys, findDeprecatedAgentConfigKeys } from './config/index.js';\nimport { getLogger } from '@zhin.js/logger';\nimport { registerProviderInstances } from './config/provider-instance.js';\nimport { normalizeAiRoutingConfig, type NormalizedAiRoutingConfig } from './config/normalize-ai-config.js';\nimport { validateAiRoutingConfig } from './config/validate-ai-config.js';\nimport { AgentBindingRegistry } from './config/agent-binding-registry.js';\nimport { resolvePerceptionConfig, type ResolvedPerceptionConfig } from './config/perception-config.js';\nimport { DEFAULT_ZHIN_AGENT_NAME } from './config/types.js';\nimport {\n runAgentLoopStandaloneTurn,\n type AgentLoopStandaloneResult,\n} from './core/agent-loop-standalone.js';\nimport type { ToolCallRecord } from './core/tool-calls-user-format.js';\nimport { StandaloneToolCatalog } from './standalone/standalone-tool-catalog.js';\nimport {\n PluginAILoopHookRegistry,\n type PluginAfterToolCallHandler,\n type PluginBeforeToolCallHandler,\n type PluginTransformContextHandler,\n} from './plugin-loop-hooks.js';\n\nconst logger = getLogger('AIService');\n/** AIService 程序化 Agent 句柄(agentLoop 隔离上下文,非 legacy `Agent` 类) */\nexport interface ServiceAgent {\n run(userInput: AgentRunInput): Promise<ServiceAgentResult>;\n dispose(): void;\n}\n\nexport interface ServiceAgentResult {\n content: string;\n toolCalls: ToolCallRecord[];\n usage: Usage;\n iterations: number;\n model: string;\n}\n\nexport interface CreateServiceAgentOptions {\n provider?: string;\n model?: string;\n systemPrompt?: string;\n tools?: readonly AgentTool[];\n /**\n * Include tools registered on this service via `registerTool()`. Default\n * `false`: a standalone Agent starts with no tools unless they are passed\n * explicitly. For plain text work use `aiCompletionToken` instead.\n */\n includeRegisteredTools?: boolean;\n maxIterations?: number;\n contextWindow?: number;\n /** Cancels provider I/O and releases the caller even for a non-cooperative provider. */\n signal?: AbortSignal;\n}\n\nexport class AIService {\n private providers: Map<string, AIProvider> = new Map();\n private defaultProvider: string;\n private routing: NormalizedAiRoutingConfig;\n private bindingRegistry: AgentBindingRegistry;\n private contextConfig: ContextConfig;\n private triggerConfig: AITriggerConfig;\n private accessConfig: AIAccessConfig;\n private agentConfig: AIConfig['agent'];\n private imageGenerationGlobal?: ImageGenerationDefaults;\n private perceptionConfig?: ResolvedPerceptionConfig;\n private readonly standaloneTools = new StandaloneToolCatalog();\n private _modelRegistry: ModelRegistry | null = null;\n private llmRuntime!: LlmApiRuntime;\n readonly loopHooks = new PluginAILoopHookRegistry();\n\n constructor(config: AIConfig = {}) {\n for (const { agent, key, reason } of findDeprecatedAgentBindingKeys((config as { agents?: unknown }).agents)) {\n logger.warn(`ai.agents.${agent}.${key} 已弃用,${reason} 运行 zhin config check --fix 可移除。`);\n }\n this.routing = normalizeAiRoutingConfig(config);\n const validationErrors = validateAiRoutingConfig(this.routing);\n if (validationErrors.length > 0) {\n throw new Error(`Invalid AI routing config:\\n${validationErrors.map(e => ` - ${e}`).join('\\n')}`);\n }\n\n this.providers = registerProviderInstances(this.routing.providers);\n this.refreshLlmApiRuntime();\n const zhinProvider = this.routing.agents[DEFAULT_ZHIN_AGENT_NAME]?.provider;\n this.defaultProvider =\n zhinProvider\n || this.providers.keys().next().value\n || 'openai';\n\n this.bindingRegistry = new AgentBindingRegistry(this.routing.agents);\n this.contextConfig = config.context || {};\n this.triggerConfig = config.trigger || {};\n this.accessConfig = config.access || {};\n this.agentConfig = config.agent;\n for (const { key, reason } of findDeprecatedAgentConfigKeys(config.agent)) {\n logger.warn(`ai.agent.${key} 已弃用,${reason} 运行 zhin config check --fix 可移除。`);\n }\n this.imageGenerationGlobal = config.imageGeneration;\n this.perceptionConfig = resolvePerceptionConfig(\n config.multimodal?.perception,\n Object.keys(this.routing.providers),\n );\n }\n\n /** Validated `ai.multimodal.perception`, or undefined when the pre-pass is off. */\n getPerceptionConfig(): ResolvedPerceptionConfig | undefined {\n return this.perceptionConfig;\n }\n\n getRoutingConfig(): NormalizedAiRoutingConfig {\n return this.routing;\n }\n\n getBindingRegistry(): AgentBindingRegistry {\n return this.bindingRegistry;\n }\n\n /** 运行时合并 agents/<name>/agent.json 发现结果 */\n setDiscoveredAgents(fileMetas: import('./discovery/agents.js').AgentMeta[]): void {\n this.bindingRegistry = new AgentBindingRegistry(this.routing.agents, fileMetas);\n }\n\n isReady(): boolean {\n return this.providers.size > 0;\n }\n\n setModelRegistry(registry: ModelRegistry): void { this._modelRegistry = registry; }\n getModelRegistry(): ModelRegistry | null { return this._modelRegistry; }\n getLlmRuntime(): LlmApiRuntime { return this.llmRuntime; }\n registerTool(tool: AgentTool): () => void {\n return this.standaloneTools.register(tool);\n }\n\n /** ADR 0010 — bridge plugin beforeToolCall hooks to agentLoop. */\n onBeforeToolCall(handler: PluginBeforeToolCallHandler): () => void {\n return this.loopHooks.onBeforeToolCall(handler);\n }\n\n onAfterToolCall(handler: PluginAfterToolCallHandler): () => void {\n return this.loopHooks.onAfterToolCall(handler);\n }\n\n /** Run after built-in compaction in transformContext chain. */\n onTransformContext(handler: PluginTransformContextHandler): () => void {\n return this.loopHooks.onTransformContext(handler);\n }\n\n /** Snapshot the tools explicitly registered for standalone service agents. */\n listRegisteredTools(): readonly AgentTool[] {\n return this.standaloneTools.snapshot();\n }\n\n getContextConfig(): ContextConfig { return this.contextConfig; }\n getTriggerConfig(): AITriggerConfig { return this.triggerConfig; }\n getAccessConfig(): AIAccessConfig { return this.accessConfig; }\n /** 部署级 harness(execSecurity 等);工具由编排 + TF-IDF + 角色(子 agent)选用 */\n getAgentConfig(): AIConfig['agent'] { return this.agentConfig; }\n\n /** 文生图默认:ai.imageGeneration + providers.<alias>.imageGeneration */\n getImageGenerationDefaults(providerAlias: string): ImageGenerationDefaults {\n const inst = this.routing.providers[providerAlias]?.imageGeneration;\n return { ...this.imageGenerationGlobal, ...inst };\n }\n\n async registerProvider(provider: SdkProviderAdapter): Promise<void> {\n const previous = this.providers.get(provider.name);\n if (previous === provider) return;\n if (previous instanceof SdkProviderAdapter) await previous.dispose();\n this.providers.set(provider.name, provider);\n const entry = sdkEntryFromProvider(provider);\n this.llmRuntime.registerProvider(entry.alias, entry.config, entry.models, entry.fetch);\n }\n getProvider(name?: string): AIProvider {\n const providerName = name || this.defaultProvider;\n const provider = this.providers.get(providerName);\n if (!provider) {\n throw new Error(\n `AI Provider \"${providerName}\" not found. Available: ${this.listProviders().join(', ')}`,\n );\n }\n return provider;\n }\n listProviders(): string[] { return Array.from(this.providers.keys()); }\n\n /** yaml 中显式配置了 models 列表(非空) */\n hasExplicitModelList(alias: string): boolean {\n const models = this.routing.providers[alias]?.models;\n return Array.isArray(models) && models.length > 0;\n }\n\n /** Build the service-owned transport runtime and its configured model allowlists. */\n private refreshLlmApiRuntime(): void {\n this.llmRuntime = createLlmApiRuntime(\n [...this.providers.entries()].map(([alias, provider]) => {\n const entry = sdkEntryFromProvider(provider);\n return {\n ...entry,\n models: this.hasExplicitModelList(alias) ? entry.models : [],\n };\n }),\n (alias: string) => this.providers.get(alias)?.models ?? [],\n );\n }\n\n getProviderCapabilities(name?: string): { contextWindow?: number; capabilities?: import('@zhin.js/ai').ProviderCapabilities } {\n const provider = this.getProvider(name);\n return {\n contextWindow: provider.contextWindow,\n capabilities: provider.capabilities,\n };\n }\n\n async listModels(providerName?: string): Promise<{ provider: string; models: string[] }[]> {\n const result: { provider: string; models: string[] }[] = [];\n if (providerName) {\n const provider = this.getProvider(providerName);\n result.push({ provider: providerName, models: await provider.listModels?.() || provider.models });\n } else {\n for (const [name, provider] of this.providers) {\n result.push({ provider: name, models: await provider.listModels?.() || provider.models });\n }\n }\n return result;\n }\n\n private resolveServiceAgentTools(options: CreateServiceAgentOptions): AgentTool[] {\n return this.standaloneTools.resolve({\n includeRegisteredTools: options.includeRegisteredTools === true,\n explicitTools: options.tools ?? [],\n });\n }\n\n createAgent(options: CreateServiceAgentOptions = {}): ServiceAgent {\n const provider = this.getProvider(options.provider);\n const tools = this.resolveServiceAgentTools(options);\n const config = { ...DEFAULT_CONFIG, ...(this.agentConfig ?? {}) } as typeof DEFAULT_CONFIG;\n const model = options.model ?? provider.models[0];\n const systemPrompt = options.systemPrompt ?? '';\n const maxIterations = options.maxIterations ?? config.maxIterations;\n\n return {\n run: (userInput) => runAgentLoopStandaloneTurn({\n provider,\n resolveProvider: (alias) => this.providers.get(alias),\n llmRuntime: this.llmRuntime,\n model,\n systemPrompt,\n tools,\n userInput,\n maxIterations,\n signal: options.signal,\n }).then(toServiceAgentResult),\n dispose: () => undefined,\n };\n }\n\n async runAgent(\n task: AgentRunInput,\n options: CreateServiceAgentOptions = {},\n ): Promise<ServiceAgentResult> {\n const agent = this.createAgent(options);\n try {\n return await agent.run(task);\n } finally {\n agent.dispose();\n }\n }\n\n async healthCheck(): Promise<Record<string, boolean>> {\n const results: Record<string, boolean> = {};\n for (const [name, provider] of this.providers) {\n try { results[name] = await provider.healthCheck?.() ?? true; } catch { results[name] = false; }\n }\n return results;\n }\n\n async dispose(): Promise<void> {\n const providers = [...this.providers.values()];\n this.providers.clear();\n await Promise.all(providers.map((provider) => (\n provider instanceof SdkProviderAdapter ? provider.dispose() : Promise.resolve()\n )));\n }\n}\n\nfunction toServiceAgentResult(result: AgentLoopStandaloneResult): ServiceAgentResult {\n return {\n content: result.content,\n toolCalls: result.toolCalls,\n usage: result.usage,\n iterations: result.iterations,\n model: result.model,\n };\n}\n"]}
@@ -58,4 +58,3 @@ export declare function formatApprovalDenial(outcome: Exclude<ApprovalOutcome, {
58
58
  status: 'approved';
59
59
  }>): string;
60
60
  export declare function isApprovalPortAvailable(port: ApprovalPort | undefined): port is ApprovalPort;
61
- //# sourceMappingURL=approval-port.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-port.js","sourceRoot":"","sources":["../../src/session/approval-port.ts"],"names":[],"mappings":"AAwDA,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAkB,EAClB,KAA2B;IAE3B,MAAM,WAAW,GAAG,IAA2D,CAAC;IAChF,IAAI,OAAO,WAAW,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QAC7D,OAAO,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACrG,CAAC;IACD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE;QAClD,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAwB;IAChE,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,oBAAoB,CAAC,OAAyD;IAC5F,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,8EAA8E;sBACjF,oGAAoG,CAAC;YAC3G,CAAC;YACD,OAAO,OAAO,CAAC,EAAE,KAAK,YAAY;gBAChC,CAAC,CAAC,2GAA2G;gBAC7G,CAAC,CAAC,oGAAoG,CAAC;QAC3G,KAAK,WAAW;YACd,OAAO,4EAA4E;kBAC/E,qFAAqF,CAAC;QAC5F,KAAK,aAAa;YAChB,OAAO,6DAA6D,OAAO,CAAC,MAAM,KAAK;kBACnF,uCAAuC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA8B;IACpE,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"approval-port.js","sourceRoot":"","sources":["../../src/session/approval-port.ts"],"names":[],"mappings":"AAwDA,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAkB,EAClB,KAA2B;IAE3B,MAAM,WAAW,GAAG,IAA2D,CAAC;IAChF,IAAI,OAAO,WAAW,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QAC7D,OAAO,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACrG,CAAC;IACD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE;QAClD,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAwB;IAChE,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,oBAAoB,CAAC,OAAyD;IAC5F,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,8EAA8E;sBACjF,oGAAoG,CAAC;YAC3G,CAAC;YACD,OAAO,OAAO,CAAC,EAAE,KAAK,YAAY;gBAChC,CAAC,CAAC,2GAA2G;gBAC7G,CAAC,CAAC,oGAAoG,CAAC;QAC3G,KAAK,WAAW;YACd,OAAO,4EAA4E;kBAC/E,qFAAqF,CAAC;QAC5F,KAAK,aAAa;YAChB,OAAO,6DAA6D,OAAO,CAAC,MAAM,KAAK;kBACnF,uCAAuC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA8B;IACpE,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AACnD,CAAC","sourcesContent":["/** Blocking human-in-the-loop security authority. */\nexport interface ApprovalRequestInput {\n requestId: string;\n /** Canonical session boundary for approval memory. */\n sessionKey?: string;\n /** Conversation shape controls which human approval scopes are meaningful. */\n conversationScope?: 'private' | 'group' | 'channel';\n /** Principal whose proposed operation is being reviewed. */\n requesterId?: string;\n toolName: string;\n /** Stable fingerprint for the concrete operation covered by a remembered grant. */\n scopeKey?: string;\n /** Allow the approval surface to offer a Host-lifetime session grant. */\n remember?: 'session';\n question: string;\n timeoutMs?: number;\n /** The adapter must settle promptly and deny when the owning Turn is cancelled. */\n signal: AbortSignal;\n}\n\nexport type ApprovalDecision =\n | 'reject'\n | 'approve-once'\n | 'approve-session'\n | 'approve-always';\n\nexport interface ApprovalDecisionMemory {\n recall(input: ApprovalRequestInput): boolean | undefined;\n remember(input: ApprovalRequestInput, decision: ApprovalDecision): void;\n}\n\nexport interface ApprovalPort {\n /** False means this transport cannot make an approval decision for this turn. */\n readonly available?: boolean;\n requestApproval(input: ApprovalRequestInput): Promise<boolean>;\n resolveApproval?(requestId: string, approved: boolean): boolean;\n}\n\nexport interface ApprovalDecisionPort extends ApprovalPort {\n requestApprovalDecision(input: ApprovalRequestInput): Promise<ApprovalDecision>;\n}\n\n/**\n * Why an approval request settled the way it did. A boolean cannot tell the\n * model whether a human said no, nobody answered, or nobody could be asked.\n */\nexport type ApprovalOutcome =\n | Readonly<{ status: 'approved'; decision: Exclude<ApprovalDecision, 'reject'> }>\n | Readonly<{ status: 'denied'; by: 'user' | 'reviewer' | 'remembered' }>\n | Readonly<{ status: 'timed_out' }>\n | Readonly<{ status: 'unavailable'; reason: string }>;\n\nexport interface ApprovalOutcomePort extends ApprovalPort {\n requestApprovalOutcome(input: ApprovalRequestInput): Promise<ApprovalOutcome>;\n}\n\n/** Ask any port for a typed outcome; legacy boolean ports report a user decision. */\nexport async function requestApprovalOutcome(\n port: ApprovalPort,\n input: ApprovalRequestInput,\n): Promise<ApprovalOutcome> {\n const outcomePort = port as Partial<ApprovalOutcomePort & ApprovalDecisionPort>;\n if (typeof outcomePort.requestApprovalOutcome === 'function') {\n return outcomePort.requestApprovalOutcome(input);\n }\n if (typeof outcomePort.requestApprovalDecision === 'function') {\n const decision = await outcomePort.requestApprovalDecision(input);\n return decision === 'reject' ? { status: 'denied', by: 'user' } : { status: 'approved', decision };\n }\n return await port.requestApproval(input)\n ? { status: 'approved', decision: 'approve-once' }\n : { status: 'denied', by: 'user' };\n}\n\nexport function approvalOutcomeToDecision(outcome: ApprovalOutcome): ApprovalDecision {\n return outcome.status === 'approved' ? outcome.decision : 'reject';\n}\n\n/** Tool-result text for a non-approved outcome; phrased so the model does not blindly retry. */\nexport function formatApprovalDenial(outcome: Exclude<ApprovalOutcome, { status: 'approved' }>): string {\n switch (outcome.status) {\n case 'denied':\n if (outcome.by === 'reviewer') {\n return 'Tool call rejected by the automatic approval reviewer (no human was asked). '\n + 'Do not retry the same call; continue without it or tell the user it needs their explicit approval.';\n }\n return outcome.by === 'remembered'\n ? 'Tool call denied: the user already rejected this operation earlier in this conversation. Do not retry it.'\n : 'Tool call denied by the user. Do not retry it; continue without it or ask the user how to proceed.';\n case 'timed_out':\n return 'Tool call not approved: the approval request timed out without an answer. '\n + 'Do not retry automatically; tell the user the action is waiting for their approval.';\n case 'unavailable':\n return `Tool call not approved: no approval channel is available (${outcome.reason}). `\n + 'Do not retry it in this conversation.';\n }\n}\n\nexport function isApprovalPortAvailable(port: ApprovalPort | undefined): port is ApprovalPort {\n return Boolean(port && port.available !== false);\n}\n"]}
@@ -15,4 +15,3 @@ export declare class ApprovalReviewAgent {
15
15
  }
16
16
  export declare function createAutoApprovalPort(reviewer: ApprovalReviewAgent, ask?: ApprovalPort, judgment?: ApprovalJudgmentPort): ApprovalOutcomePort;
17
17
  export declare function createBypassApprovalPort(): ApprovalPort;
18
- //# sourceMappingURL=approval-review-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-review-agent.js","sourceRoot":"","sources":["../../src/session/approval-review-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-review-agent.js","sourceRoot":"","sources":["../../src/session/approval-review-agent.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ApprovalHistoryEntry,\n ApprovalJudgmentPort,\n ApprovalReviewDecision,\n} from '../decision/approval-judgment.js';\nimport {\n approvalOutcomeToDecision,\n isApprovalPortAvailable,\n requestApprovalOutcome,\n type ApprovalDecision,\n type ApprovalOutcome,\n type ApprovalOutcomePort,\n type ApprovalPort,\n type ApprovalRequestInput,\n} from './approval-port.js';\n\nexport type { ApprovalReviewDecision } from '../decision/approval-judgment.js';\n\nexport interface ApprovalReviewAgentOptions {\n readonly judgment: ApprovalJudgmentPort;\n readonly timeoutMs?: number;\n}\n\n/** Tool-less, fail-closed reviewer used by approvalMode=auto. */\nexport class ApprovalReviewAgent {\n readonly #judgment: ApprovalJudgmentPort;\n readonly #timeoutMs: number;\n readonly #memory: ApprovalHistoryEntry[] = [];\n\n constructor(options: ApprovalReviewAgentOptions) {\n this.#judgment = options.judgment;\n this.#timeoutMs = options.timeoutMs ?? 30_000;\n }\n\n async review(\n input: ApprovalRequestInput,\n judgment: ApprovalJudgmentPort = this.#judgment,\n ): Promise<ApprovalReviewDecision> {\n const timeoutMs = Math.min(input.timeoutMs ?? this.#timeoutMs, this.#timeoutMs);\n const controller = new AbortController();\n const abort = () => controller.abort(input.signal.reason);\n const timer = setTimeout(() => controller.abort(new Error('Approval review timed out')), timeoutMs);\n input.signal.addEventListener('abort', abort, { once: true });\n try {\n input.signal.throwIfAborted();\n const result = await settleBeforeAbort(\n judgment.judge({ request: input, priorDecisions: this.#history(input), signal: controller.signal }),\n controller.signal,\n { decision: 'reject' as const, reason: 'Approval review cancelled' },\n );\n return !controller.signal.aborted && (result.decision === 'approve' || result.decision === 'ask')\n ? result.decision\n : 'reject';\n } catch {\n return 'reject';\n } finally {\n clearTimeout(timer);\n input.signal.removeEventListener('abort', abort);\n }\n }\n\n recall(input: ApprovalRequestInput): boolean | undefined {\n if (!input.scopeKey) return undefined;\n let match: ApprovalHistoryEntry | undefined;\n for (let index = this.#memory.length - 1; index >= 0; index -= 1) {\n const entry = this.#memory[index];\n if (entry?.toolName === input.toolName\n && entry.scopeKey === input.scopeKey\n && this.#covers(entry, input)) {\n match = entry;\n break;\n }\n }\n if (!match) return undefined;\n return match.decision !== 'reject';\n }\n\n remember(\n input: ApprovalRequestInput,\n decision: ApprovalDecision,\n source: ApprovalHistoryEntry['source'] = 'human',\n ): void {\n if (decision !== 'approve-once'\n && (!input.sessionKey || !input.requesterId || !input.scopeKey)) return;\n this.#memory.push(Object.freeze({\n sessionKey: input.sessionKey,\n requesterId: input.requesterId,\n toolName: input.toolName,\n scopeKey: input.scopeKey,\n question: input.question,\n decision,\n source,\n }));\n if (this.#memory.length > 256) this.#memory.splice(0, this.#memory.length - 256);\n }\n\n #history(input: ApprovalRequestInput): readonly ApprovalHistoryEntry[] {\n return this.#memory.filter(entry =>\n (input.sessionKey != null && entry.sessionKey === input.sessionKey)\n ).slice(-12);\n }\n\n #covers(entry: ApprovalHistoryEntry, input: ApprovalRequestInput): boolean {\n if (entry.decision === 'approve-session') {\n return entry.sessionKey != null && entry.sessionKey === input.sessionKey;\n }\n if (entry.decision === 'approve-always') {\n return entry.sessionKey === input.sessionKey && entry.requesterId === input.requesterId;\n }\n if (entry.decision === 'reject') {\n return entry.source === 'human'\n && entry.sessionKey === input.sessionKey && entry.requesterId === input.requesterId;\n }\n return false;\n }\n}\n\nexport function createAutoApprovalPort(\n reviewer: ApprovalReviewAgent,\n ask?: ApprovalPort,\n judgment?: ApprovalJudgmentPort,\n): ApprovalOutcomePort {\n const port: ApprovalOutcomePort = {\n available: true,\n async requestApprovalOutcome(input: ApprovalRequestInput): Promise<ApprovalOutcome> {\n try {\n input.signal.throwIfAborted();\n const recalled = reviewer.recall(input);\n if (recalled !== undefined) {\n return recalled\n ? { status: 'approved', decision: 'approve-once' }\n : { status: 'denied', by: 'remembered' };\n }\n // The reviewer bounds its own judgment; a human escalation is bounded only\n // by an explicit request timeout, otherwise by the approval surface itself.\n const decision = await reviewer.review(input, judgment);\n if (decision === 'approve') {\n reviewer.remember(input, 'approve-once', 'reviewer');\n return { status: 'approved', decision: 'approve-once' };\n }\n if (decision === 'ask') {\n if (!isApprovalPortAvailable(ask)) {\n return { status: 'unavailable', reason: 'the reviewer escalated to a human, but nobody can be asked here' };\n }\n const outcome = await settleWithinTimeout(requestApprovalOutcome(ask, input), input);\n // Only an explicit human answer is remembered; a timeout is not a \"no\".\n if (outcome.status === 'approved' || (outcome.status === 'denied' && outcome.by === 'user')) {\n reviewer.remember(input, approvalOutcomeToDecision(outcome), 'human');\n }\n return outcome;\n }\n reviewer.remember(input, 'reject', 'reviewer');\n return { status: 'denied', by: 'reviewer' };\n } catch {\n return { status: 'unavailable', reason: 'approval review failed' };\n }\n },\n async requestApproval(input: ApprovalRequestInput) {\n return (await port.requestApprovalOutcome(input)).status === 'approved';\n },\n };\n return Object.freeze(port);\n}\n\nexport function createBypassApprovalPort(): ApprovalPort {\n return Object.freeze({\n available: true,\n requestApproval: async () => true,\n });\n}\n\n\nasync function settleBeforeAbort<T>(\n result: Promise<T>,\n signal: AbortSignal,\n cancelled: T,\n): Promise<T> {\n return await new Promise<T>((resolve) => {\n let settled = false;\n const finish = (value: T) => {\n if (settled) return;\n settled = true;\n signal.removeEventListener('abort', deny);\n resolve(value);\n };\n const deny = () => finish(cancelled);\n signal.addEventListener('abort', deny, { once: true });\n // Always attach rejection handling, including when cancellation won the race.\n void result.then(value => finish(value), () => finish(cancelled));\n if (signal.aborted) deny();\n });\n}\n\n/** Bound a human escalation by the caller's explicit timeout; cancellation stays fail-closed. */\nasync function settleWithinTimeout(\n result: Promise<ApprovalOutcome>,\n input: ApprovalRequestInput,\n): Promise<ApprovalOutcome> {\n const cancelled: ApprovalOutcome = { status: 'unavailable', reason: 'the turn was cancelled' };\n const timedOut: ApprovalOutcome = { status: 'timed_out' };\n return await new Promise<ApprovalOutcome>((resolve) => {\n let settled = false;\n const timer = input.timeoutMs === undefined\n ? undefined\n : setTimeout(() => finish(timedOut), input.timeoutMs);\n const onAbort = () => finish(cancelled);\n function finish(value: ApprovalOutcome) {\n if (settled) return;\n settled = true;\n if (timer) clearTimeout(timer);\n input.signal.removeEventListener('abort', onAbort);\n resolve(value);\n }\n input.signal.addEventListener('abort', onAbort, { once: true });\n void result.then(finish, () => finish({ status: 'unavailable', reason: 'the approval prompt failed' }));\n if (input.signal.aborted) onAbort();\n });\n}\n"]}
@@ -13,4 +13,3 @@ export declare function jumpToBranchIndexWithSummarization(host: ZhinAgentPrivat
13
13
  ok: boolean;
14
14
  message: string;
15
15
  }>;
16
- //# sourceMappingURL=branch-summarization-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-summarization-runtime.js","sourceRoot":"","sources":["../../src/session/branch-summarization-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-summarization-runtime.js","sourceRoot":"","sources":["../../src/session/branch-summarization-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Branch summarization on session tree switch — ADR 0010 D3.\n */\n\nimport {\n abandonedRowsToMessages,\n collectAbandonedPathRows,\n compactAgentMessages,\n estimateAgentMessagesTokens,\n parseAgentMessageRow,\n} from '@zhin.js/ai';\nimport type { CompactionConfig } from '../config/index.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\n\nexport interface BranchSummarizationOptions {\n compactionConfig?: CompactionConfig;\n contextWindow?: number;\n}\n\nexport async function summarizeAbandonedBranchIfNeeded(\n host: ZhinAgentPrivate,\n sessionId: string,\n oldLeafId: number | null | undefined,\n newLeafId: number,\n options: BranchSummarizationOptions = {},\n): Promise<void> {\n const compaction = options.compactionConfig ?? host.config.compaction;\n if (compaction?.enabled === false) return;\n if (oldLeafId == null || oldLeafId === newLeafId) return;\n\n if (await host.contextRepository.hasBranchSummary(sessionId, newLeafId)) return;\n\n const allRows = await host.contextRepository.loadMessageRows(sessionId);\n const abandoned = collectAbandonedPathRows(allRows, oldLeafId, newLeafId);\n if (abandoned.length === 0) return;\n\n const messages = abandonedRowsToMessages(abandoned);\n const keepRecentTokens = compaction?.keepRecentTokens ?? 20_000;\n if (estimateAgentMessagesTokens(messages) <= keepRecentTokens) return;\n\n const provider = host.getTurnProvider();\n const modelId = host.config.chatModel || provider.models[0] || '';\n const llmModel = host.llmRuntime.model(provider.name, modelId);\n const contextWindow = options.contextWindow ?? llmModel.contextWindow ?? host.config.contextTokens;\n\n let result: Awaited<ReturnType<typeof compactAgentMessages>>;\n try {\n result = await compactAgentMessages({\n transport: host.llmRuntime,\n model: llmModel,\n messages,\n contextWindow,\n keepRecentTokens: Math.min(keepRecentTokens, Math.max(500, Math.floor(messages.length * 200))),\n minKeepCount: 1,\n customInstructions:\n 'Summarize this abandoned conversation branch so it can be recalled later if the user returns to it.',\n });\n } catch {\n // 分支摘要是 best-effort:摘要失败(限流/断网)时跳过,不阻断分支切换、不丢原始消息\n return;\n }\n\n if (!result.summary?.trim()) return;\n\n await host.contextRepository.saveSummary(sessionId, result.summary, {\n branchAnchorMessageId: newLeafId,\n });\n}\n\nexport async function switchActiveLeafWithBranchSummarization(\n host: ZhinAgentPrivate,\n sessionId: string,\n messageId: number,\n options: BranchSummarizationOptions = {},\n): Promise<boolean> {\n const session = await host.agentSessionStore.getBySessionId(sessionId);\n const oldLeaf = session?.active_leaf_message_id;\n if (oldLeaf === messageId) return true;\n\n await summarizeAbandonedBranchIfNeeded(host, sessionId, oldLeaf, messageId, options);\n return host.contextRepository.setActiveLeaf(sessionId, messageId);\n}\n\nexport async function jumpToBranchIndexWithSummarization(\n host: ZhinAgentPrivate,\n sessionId: string,\n index: number,\n options: BranchSummarizationOptions = {},\n): Promise<{ ok: boolean; message: string }> {\n const points = await host.contextRepository.listBranchPoints(sessionId);\n const point = points.find(p => p.index === index);\n if (!point) {\n return { ok: false, message: `未找到分支点 #${index}` };\n }\n const ok = await switchActiveLeafWithBranchSummarization(\n host,\n sessionId,\n point.messageId,\n options,\n );\n return ok\n ? { ok: true, message: `已跳转到分支点 #${index}:${point.preview}` }\n : { ok: false, message: '跳转失败' };\n}\n"]}
@@ -24,4 +24,3 @@ export interface SessionStrategy {
24
24
  }
25
25
  export interface SessionSystemConfig {
26
26
  }
27
- //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/session/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/session/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG","sourcesContent":["/**\n * Session System — 模块契约(与实现同步)。\n *\n * 实现:`SessionSystem.registerStrategy` + `prepareTextTurn` / `touchAfterTurn`;\n * IM/Agent 双 store 由 `ZhinAgentPrivate` 注入(`session-io` SSOT),\n * 非本模块内 `SessionStore` 注册表。`contracts.SessionStore` 为策略层抽象。\n */\n\nimport type { Message } from '@zhin.js/core';\n\nexport interface Session {\n sessionKey: string;\n}\n\nexport interface CreateSessionInput {\n sessionKey: string;\n message: Message;\n}\n\nexport interface SessionStore {\n findActive(sessionKey: string): Promise<Session | null>;\n create(input: CreateSessionInput): Promise<Session>;\n archive(sessionKey: string): Promise<void>;\n}\n\nexport interface SessionStrategy {\n resolveSessionKey(message: Message): string;\n shouldArchive(message: Message): boolean;\n}\n\nexport interface SessionSystemConfig {\n /** 预留扩展面 */\n}\n"]}
@@ -17,4 +17,3 @@ export { LlmApprovalJudgment } from '../decision/approval-judgment.js';
17
17
  export type { ApprovalHistoryEntry, ApprovalJudgment, ApprovalJudgmentInput, ApprovalJudgmentPort, ApprovalReviewDecision, LlmApprovalJudgmentOptions, } from '../decision/approval-judgment.js';
18
18
  export { DecisionApprovalJudgment } from '../decision/approval.js';
19
19
  export type { DecisionApprovalEvidence, DecisionApprovalJudgmentOptions, DecisionApprovalResult, } from '../decision/approval.js';
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gCAAgC,GACjC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AASvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gCAAgC,GACjC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AASvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * Session System — SessionSystem + 策略 + session-io(契约见 contracts.ts)。\n */\n\nexport type {\n Session,\n CreateSessionInput,\n SessionStore,\n SessionStrategy,\n SessionSystemConfig,\n} from './contracts.js';\n\nexport type { SessionIODeps } from './session-io.js';\nexport type { IngressTurnSessionPrep, TurnSessionPrep } from './session-system.js';\n\nexport { SessionSystem, createSessionSystem } from './session-system.js';\nexport {\n GroupSessionStrategy,\n SimpleSessionStrategy,\n} from './strategies.js';\n\nexport {\n buildUserMessageActor,\n prepareUserContentForSession,\n resolveTurnUserMessage,\n buildAgentSessionCreateInput,\n buildHistoryMessagesFromContext,\n resolveSessionIsNewBeforeCreate,\n beginTurnSession,\n touchSession,\n archiveSessionByKey,\n} from './session-io.js';\n\nexport {\n resolveAgentTurnSessionKey,\n} from './session-key.js';\n\nexport {\n listSessionTree,\n jumpSessionTree,\n} from './session-tree-commands.js';\n\nexport {\n summarizeAbandonedBranchIfNeeded,\n} from './branch-summarization-runtime.js';\nexport type { BranchSummarizationOptions } from './branch-summarization-runtime.js';\nexport {\n beginIngressTurnSession,\n buildTurnSessionCreateInput,\n resolveIngressUserMessage,\n} from './turn-ingress-session.js';\nexport type { ResolvedIngressUserMessage } from './turn-ingress-session.js';\n\nexport { LlmApprovalJudgment } from '../decision/approval-judgment.js';\nexport type {\n ApprovalHistoryEntry,\n ApprovalJudgment,\n ApprovalJudgmentInput,\n ApprovalJudgmentPort,\n ApprovalReviewDecision,\n LlmApprovalJudgmentOptions,\n} from '../decision/approval-judgment.js';\nexport { DecisionApprovalJudgment } from '../decision/approval.js';\nexport type {\n DecisionApprovalEvidence,\n DecisionApprovalJudgmentOptions,\n DecisionApprovalResult,\n} from '../decision/approval.js';\n"]}
@@ -28,4 +28,3 @@ export declare function beginTurnSession(deps: SessionIODeps, sessionKey: string
28
28
  }>;
29
29
  export declare function touchSession(deps: SessionIODeps, sessionId: string): Promise<void>;
30
30
  export declare function archiveSessionByKey(deps: SessionIODeps, sessionKey: string): Promise<boolean>;
31
- //# sourceMappingURL=session-io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-io.js","sourceRoot":"","sources":["../../src/session/session-io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-io.js","sourceRoot":"","sources":["../../src/session/session-io.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AgentSessionRepository, type ContextRepository, type CreateAgentSessionInput, type AgentMessage, type ConversationActor, createUserMessage, renderUserMessageForLlm, type UserMessage } from '@zhin.js/ai';\nimport { type AgentTurnMessage, type Message, formatSenderRolesForLabel, resolveSceneFieldsFromMessage, senderRolesFromMessage, stripUserSpoofedSenderPrefix } from '@zhin.js/core';\nexport interface SessionIODeps {\n agentSessionStore: AgentSessionRepository;\n contextRepository: ContextRepository;\n}\n\nfunction resolveSenderDisplayName(message: Message): string {\n if (!message?.sender) return 'unknown';\n const sender = message.sender as { nickname?: string; name?: string; id?: string };\n const raw = sender.nickname || sender.name || sender.id;\n const displayName = raw == null ? '' : String(raw).trim();\n return displayName || 'unknown';\n}\n\nfunction mapPlatformRoleForLabel(role?: string): string | undefined {\n if (!role || role === 'member') return undefined;\n if (role === 'owner') return 'scene_owner';\n if (role === 'admin') return 'scene_admin';\n return role;\n}\n\nfunction resolveSenderRoleLabels(commMessage: Message): string[] {\n const labels = formatSenderRolesForLabel([...senderRolesFromMessage(commMessage)])\n .split(',')\n .map((r) => r.trim())\n .filter((r) => r && r !== 'user');\n const frameworkRoles = new Set(['master', 'trusted', 'user']);\n const platformRoles = new Set<string>();\n for (const role of commMessage.sender?.roles ?? []) {\n if (!frameworkRoles.has(role)) platformRoles.add(role);\n }\n if (typeof commMessage.metadata.senderRole === 'string') {\n platformRoles.add(commMessage.metadata.senderRole);\n }\n if (typeof commMessage.metadata.role === 'string') {\n platformRoles.add(commMessage.metadata.role);\n }\n if (Array.isArray(commMessage.metadata.roles)) {\n for (const role of commMessage.metadata.roles) platformRoles.add(String(role));\n }\n for (const role of platformRoles) {\n const platform = mapPlatformRoleForLabel(role);\n if (platform && !labels.includes(platform)) labels.push(platform);\n }\n return labels.length > 0 ? labels : ['user'];\n}\n\n/** 将 IM 参与者投影为 AgentMessage 的唯一身份权威。 */\nexport function buildUserMessageActor(commMessage: Message): ConversationActor {\n const scope = commMessage.conversation.kind || 'private';\n const roleLabels = resolveSenderRoleLabels(commMessage);\n return {\n subjectId: String(commMessage.sender?.id || 'unknown'),\n displayName: resolveSenderDisplayName(commMessage),\n roles: roleLabels.length > 0 ? roleLabels : ['user'],\n scope: scope === 'group' || scope === 'channel' ? scope : 'private',\n ...(commMessage.origin ? { origin: commMessage.origin } : {}),\n };\n}\n\n/** 剥离伪造前缀后的用户正文并建立 actor。 */\nexport function prepareUserContentForSession(\n commMessage: Message,\n rawContent: string,\n): { content: string; actor: ConversationActor } {\n const content = stripUserSpoofedSenderPrefix(rawContent);\n return { content, actor: buildUserMessageActor(commMessage) };\n}\n\n/** 本轮 user 消息:canonical 正文与 actor;标签只在 LLM 边界渲染。 */\nexport function resolveTurnUserMessage(\n commMessage: AgentTurnMessage,\n rawContent: string,\n): { content: string; llmMessage: UserMessage } {\n const { content, actor } = prepareUserContentForSession(commMessage, rawContent);\n const llmMessage = renderUserMessageForLlm(\n createUserMessage(content, undefined, Date.now(), actor),\n );\n return { content, llmMessage };\n}\n\nexport function buildAgentSessionCreateInput(\n sessionKey: string,\n): CreateAgentSessionInput {\n return { session_key: sessionKey };\n}\n\nexport async function buildHistoryMessagesFromContext(\n deps: SessionIODeps,\n sessionId: string,\n currentUserContent: string,\n): Promise<AgentMessage[]> {\n const loaded = await deps.contextRepository.loadContext(sessionId);\n const timestamp = Date.now();\n return [...loaded.messages, { role: 'user', content: [{ type: 'text', text: currentUserContent }], timestamp }];\n}\n\n/**\n * 在 `getOrCreateActive` 之前调用:是否视为新会话纪元(用于 ai.session.new)。\n */\nexport async function resolveSessionIsNewBeforeCreate(\n deps: SessionIODeps,\n sessionKey: string,\n): Promise<boolean> {\n const active = await deps.agentSessionStore.findActive(sessionKey);\n return !active;\n}\n\nexport async function beginTurnSession(\n deps: SessionIODeps,\n sessionKey: string,\n): Promise<{ sessionKey: string; sessionId: string }> {\n const input = buildAgentSessionCreateInput(sessionKey);\n const record = await deps.agentSessionStore.getOrCreateActive(input);\n return { sessionKey, sessionId: record.session_id };\n}\n\nexport async function touchSession(\n deps: SessionIODeps,\n sessionId: string,\n): Promise<void> {\n await deps.agentSessionStore.touch(sessionId);\n}\n\nexport async function archiveSessionByKey(\n deps: SessionIODeps,\n sessionKey: string,\n): Promise<boolean> {\n return deps.contextRepository.archiveSession(sessionKey);\n}\n"]}
@@ -1,4 +1,3 @@
1
1
  import { type Message } from '@zhin.js/core';
2
2
  /** Stable transport session key for the remaining classic Agent turn path. */
3
3
  export declare function resolveAgentTurnSessionKey(message: Message): string;
4
- //# sourceMappingURL=session-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-key.js","sourceRoot":"","sources":["../../src/session/session-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,eAAe,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"session-key.js","sourceRoot":"","sources":["../../src/session/session-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,eAAe,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import { resolveIMSessionIdFromMessage, type Message } from '@zhin.js/core';\n\n/** Stable transport session key for the remaining classic Agent turn path. */\nexport function resolveAgentTurnSessionKey(message: Message): string {\n return resolveIMSessionIdFromMessage(message);\n}\n"]}
@@ -30,6 +30,13 @@ export declare class SessionSystem {
30
30
  private resolvePersistenceReady;
31
31
  private persistenceDone;
32
32
  constructor(_config?: SessionSystemConfig);
33
+ /**
34
+ * Waits until the host's persistence owner calls {@link markPersistenceReady}.
35
+ * The timeout is only a safety net for a host that never marks readiness: it
36
+ * logs a warning and continues with the in-memory session/history. Reaching
37
+ * it means the composition root forgot to mark readiness (#857), so the
38
+ * timeout must not be raised to hide that.
39
+ */
33
40
  waitForPersistence(): Promise<void>;
34
41
  markPersistenceReady(): void;
35
42
  isPersistenceReady(): boolean;
@@ -47,4 +54,3 @@ export declare class SessionSystem {
47
54
  archiveByKey(host: ZhinAgentPrivate, sessionKey: string): Promise<boolean>;
48
55
  }
49
56
  export declare function createSessionSystem(config?: SessionSystemConfig): SessionSystem;
50
- //# sourceMappingURL=session-system.d.ts.map
@@ -19,22 +19,36 @@ export class SessionSystem {
19
19
  this.resolvePersistenceReady = resolve;
20
20
  });
21
21
  }
22
+ /**
23
+ * Waits until the host's persistence owner calls {@link markPersistenceReady}.
24
+ * The timeout is only a safety net for a host that never marks readiness: it
25
+ * logs a warning and continues with the in-memory session/history. Reaching
26
+ * it means the composition root forgot to mark readiness (#857), so the
27
+ * timeout must not be raised to hide that.
28
+ */
22
29
  async waitForPersistence() {
23
30
  if (this.persistenceDone)
24
31
  return;
25
32
  const timeoutMs = process.env.NODE_ENV === 'test' ? 50 : 5_000;
26
- await Promise.race([
27
- this.persistenceReady,
28
- new Promise((resolve) => {
29
- setTimeout(() => {
30
- if (!this.persistenceDone) {
31
- logger.warn('waitForPersistence: timeout, proceeding with in-memory session/history');
32
- this.markPersistenceReady();
33
- }
34
- resolve();
35
- }, timeoutMs);
36
- }),
37
- ]);
33
+ let timer;
34
+ try {
35
+ await Promise.race([
36
+ this.persistenceReady,
37
+ new Promise((resolve) => {
38
+ timer = setTimeout(() => {
39
+ if (!this.persistenceDone) {
40
+ logger.warn(`waitForPersistence: persistence was not marked ready within ${timeoutMs} ms; proceeding with in-memory session/history`);
41
+ this.markPersistenceReady();
42
+ }
43
+ resolve();
44
+ }, timeoutMs);
45
+ }),
46
+ ]);
47
+ }
48
+ finally {
49
+ // Do not leave one pending timer per waiting turn once readiness arrives.
50
+ clearTimeout(timer);
51
+ }
38
52
  }
39
53
  markPersistenceReady() {
40
54
  if (this.persistenceDone)
@@ -1 +1 @@
1
- {"version":3,"file":"session-system.js","sourceRoot":"","sources":["../../src/session/session-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-system.js","sourceRoot":"","sources":["../../src/session/session-system.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Message } from '@zhin.js/core';\nimport { getLogger } from '@zhin.js/logger';\nimport { resolveAgentTurnSessionKey } from './session-key.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nimport { buildTurnUserMessages } from '../context/turn-user-message.js';\nimport { logPhase } from '../internal/phase-trace.js';\nimport type { SessionStrategy, SessionSystemConfig } from './contracts.js';\nimport { type SessionIODeps, beginTurnSession, resolveSessionIsNewBeforeCreate, touchSession, archiveSessionByKey } from './session-io.js';\nimport { GroupSessionStrategy } from './strategies.js';\nimport type { TurnIngress } from '../turn/turn-ingress.js';\nimport {\n beginIngressTurnSession,\n resolveIngressUserMessage,\n} from './turn-ingress-session.js';\nexport type { SessionIODeps } from './session-io.js';\n\nconst logger = getLogger('SessionSystem');\n\nexport interface TurnSessionPrep {\n sessionKey: string;\n userId: string;\n sessionId: string;\n isNewSession: boolean;\n turnUser: ReturnType<typeof buildTurnUserMessages>;\n}\n\nexport interface IngressTurnSessionPrep {\n sessionKey: string;\n userId: string;\n sessionId: string;\n isNewSession: boolean;\n turnUser: {\n rawContent: string;\n userMessageExtra?: import('@zhin.js/ai').AgentMessageExtra;\n promptMessages: import('@zhin.js/ai').UserMessage[];\n };\n}\n\nexport class SessionSystem {\n private readonly strategies = new Map<string, SessionStrategy>();\n private persistenceReady: Promise<void>;\n private resolvePersistenceReady!: () => void;\n private persistenceDone = false;\n\n constructor(private readonly _config: SessionSystemConfig = {}) {\n this.registerStrategy('group', new GroupSessionStrategy());\n this.persistenceReady = new Promise<void>((resolve) => {\n this.resolvePersistenceReady = resolve;\n });\n }\n\n /**\n * Waits until the host's persistence owner calls {@link markPersistenceReady}.\n * The timeout is only a safety net for a host that never marks readiness: it\n * logs a warning and continues with the in-memory session/history. Reaching\n * it means the composition root forgot to mark readiness (#857), so the\n * timeout must not be raised to hide that.\n */\n async waitForPersistence(): Promise<void> {\n if (this.persistenceDone) return;\n const timeoutMs = process.env.NODE_ENV === 'test' ? 50 : 5_000;\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n this.persistenceReady,\n new Promise<void>((resolve) => {\n timer = setTimeout(() => {\n if (!this.persistenceDone) {\n logger.warn(`waitForPersistence: persistence was not marked ready within ${timeoutMs} ms; proceeding with in-memory session/history`);\n this.markPersistenceReady();\n }\n resolve();\n }, timeoutMs);\n }),\n ]);\n } finally {\n // Do not leave one pending timer per waiting turn once readiness arrives.\n clearTimeout(timer);\n }\n }\n\n markPersistenceReady(): void {\n if (this.persistenceDone) return;\n this.persistenceDone = true;\n this.resolvePersistenceReady?.();\n }\n\n isPersistenceReady(): boolean {\n return this.persistenceDone;\n }\n\n registerStrategy(name: string, strategy: SessionStrategy): void {\n this.strategies.set(name, strategy);\n }\n\n resolveSessionKey(\n message: Message,\n strategyName: string = 'group',\n ): string {\n const strategy = this.strategies.get(strategyName);\n if (strategy) return strategy.resolveSessionKey(message);\n return resolveAgentTurnSessionKey(message);\n }\n\n sessionDeps(host: ZhinAgentPrivate): SessionIODeps {\n return {\n agentSessionStore: host.agentSessionStore,\n contextRepository: host.contextRepository,\n };\n }\n\n async prepareTextTurn(\n host: ZhinAgentPrivate,\n commMessage: Message,\n content: string,\n options?: { deferredAutoContinue?: boolean; strategyName?: string },\n ): Promise<TurnSessionPrep> {\n const deps = this.sessionDeps(host);\n const sessionKey = this.resolveSessionKey(commMessage, options?.strategyName);\n const userId = commMessage.sender?.id || 'unknown';\n const turnUser = buildTurnUserMessages(commMessage, content);\n const isNewSession = await resolveSessionIsNewBeforeCreate(deps, sessionKey);\n\n if (options?.deferredAutoContinue) {\n logPhase(host.phaseConfig, 'turn.deferred_auto_continue', sessionKey, {});\n } else {\n host.deferred.resetAutoContinueDepth(sessionKey);\n }\n\n await host.waitForMemoryPersistence();\n const { sessionId } = await beginTurnSession(deps, sessionKey);\n\n return {\n sessionKey,\n userId,\n sessionId,\n isNewSession,\n turnUser,\n };\n }\n\n async prepareIngressTurn(\n host: ZhinAgentPrivate,\n turn: TurnIngress,\n options?: { deferredAutoContinue?: boolean },\n ): Promise<IngressTurnSessionPrep> {\n const deps = this.sessionDeps(host);\n const sessionKey = turn.session.key;\n const userId = turn.principal.subjectId;\n const resolved = resolveIngressUserMessage(turn);\n const isNewSession = await resolveSessionIsNewBeforeCreate(deps, sessionKey);\n\n if (options?.deferredAutoContinue) {\n logPhase(host.phaseConfig, 'turn.deferred_auto_continue', sessionKey, {});\n } else {\n host.deferred.resetAutoContinueDepth(sessionKey);\n }\n\n await host.waitForMemoryPersistence();\n const { sessionId } = await beginIngressTurnSession(deps, turn);\n return {\n sessionKey,\n userId,\n sessionId,\n isNewSession,\n turnUser: {\n rawContent: resolved.content,\n ...(resolved.extra ? { userMessageExtra: resolved.extra } : {}),\n promptMessages: [resolved.llmMessage],\n },\n };\n }\n\n async touchAfterTurn(host: ZhinAgentPrivate, sessionId: string): Promise<void> {\n await touchSession(this.sessionDeps(host), sessionId);\n }\n\n async archiveByKey(host: ZhinAgentPrivate, sessionKey: string): Promise<boolean> {\n return archiveSessionByKey(this.sessionDeps(host), sessionKey);\n }\n}\n\nexport function createSessionSystem(config: SessionSystemConfig = {}): SessionSystem {\n return new SessionSystem(config);\n}\n"]}
@@ -1,4 +1,3 @@
1
1
  import type { ZhinAgentPrivate } from '../internal/agent-host.js';
2
2
  export declare function listSessionTree(host: ZhinAgentPrivate, sessionKey: string): Promise<string>;
3
3
  export declare function jumpSessionTree(host: ZhinAgentPrivate, sessionKey: string, index: number): Promise<string>;
4
- //# sourceMappingURL=session-tree-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-tree-commands.js","sourceRoot":"","sources":["../../src/session/session-tree-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAEhF,SAAS,gBAAgB,CAAC,MAA4B;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjD,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAsB,EACtB,UAAkB;IAElB,MAAM,IAAI,GAAkB;QAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACxE,OAAO,wCAAwC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAsB,EACtB,UAAkB,EAClB,KAAa;IAEb,MAAM,IAAI,GAAkB;QAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"session-tree-commands.js","sourceRoot":"","sources":["../../src/session/session-tree-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAEhF,SAAS,gBAAgB,CAAC,MAA4B;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjD,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAsB,EACtB,UAAkB;IAElB,MAAM,IAAI,GAAkB;QAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACxE,OAAO,wCAAwC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAsB,EACtB,UAAkB,EAClB,KAAa;IAEb,MAAM,IAAI,GAAkB;QAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACpE,CAAC","sourcesContent":["import type { SessionBranchPoint } from '@zhin.js/ai';\nimport { beginTurnSession, type SessionIODeps } from '../session/session-io.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nfunction formatBranchList(points: SessionBranchPoint[]): string {\n if (points.length === 0) return '当前会话无 user 分支点';\n return points\n .map(p => `${p.index}. ${p.preview}`)\n .join('\\n');\n}\n\nexport async function listSessionTree(\n host: ZhinAgentPrivate,\n sessionKey: string,\n): Promise<string> {\n const deps: SessionIODeps = {\n agentSessionStore: host.agentSessionStore,\n contextRepository: host.contextRepository,\n };\n const { sessionId } = await beginTurnSession(deps, sessionKey);\n const points = await host.contextRepository.listBranchPoints(sessionId);\n return `🌳 会话分支点(/tree N 跳转,/fork N 从该点继续):\\n${formatBranchList(points)}`;\n}\n\nexport async function jumpSessionTree(\n host: ZhinAgentPrivate,\n sessionKey: string,\n index: number,\n): Promise<string> {\n const deps: SessionIODeps = {\n agentSessionStore: host.agentSessionStore,\n contextRepository: host.contextRepository,\n };\n const { sessionId } = await beginTurnSession(deps, sessionKey);\n const result = await host.contextRepository.jumpToBranchIndex(sessionId, index);\n return result.ok ? `✅ ${result.message}` : `ℹ️ ${result.message}`;\n}\n"]}
@@ -8,4 +8,3 @@ export declare class SimpleSessionStrategy implements SessionStrategy {
8
8
  resolveSessionKey(message: Message): string;
9
9
  shouldArchive(_message: Message): boolean;
10
10
  }
11
- //# sourceMappingURL=strategies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/session/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,MAAM,OAAO,oBAAoB;IAC/B,iBAAiB,CAAC,OAAgB;QAChC,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,OAAgB;QAC5B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAChC,iBAAiB,CAAC,OAAgB;QAChC,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,QAAiB;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/session/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,MAAM,OAAO,oBAAoB;IAC/B,iBAAiB,CAAC,OAAgB;QAChC,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,OAAgB;QAC5B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAChC,iBAAiB,CAAC,OAAgB;QAChC,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,QAAiB;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["import { resolveIMSessionIdFromMessage, type Message } from '@zhin.js/core';\nimport { resolveAgentTurnSessionKey } from './session-key.js';\nimport type { SessionStrategy } from './contracts.js';\n\nexport class GroupSessionStrategy implements SessionStrategy {\n resolveSessionKey(message: Message): string {\n return resolveAgentTurnSessionKey(message);\n }\n\n shouldArchive(message: Message): boolean {\n return message.conversation.kind === 'group';\n }\n}\n\nexport class SimpleSessionStrategy implements SessionStrategy {\n resolveSessionKey(message: Message): string {\n return resolveIMSessionIdFromMessage(message);\n }\n\n shouldArchive(_message: Message): boolean {\n return false;\n }\n}\n"]}
@@ -13,4 +13,3 @@ export declare function beginIngressTurnSession(deps: {
13
13
  sessionKey: string;
14
14
  sessionId: string;
15
15
  }>;
16
- //# sourceMappingURL=turn-ingress-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-ingress-session.js","sourceRoot":"","sources":["../../src/session/turn-ingress-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-ingress-session.js","sourceRoot":"","sources":["../../src/session/turn-ingress-session.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createUserMessage,\n renderUserMessageForLlm,\n type AgentMessageExtra,\n type AgentSessionRepository,\n type CreateAgentSessionInput,\n type UserMessage,\n} from '@zhin.js/ai';\nimport { stripUserSpoofedSenderPrefix } from '@zhin.js/core';\nimport type { TurnIngress } from '../turn/turn-ingress.js';\n\nexport interface ResolvedIngressUserMessage {\n readonly content: string;\n readonly extra?: AgentMessageExtra;\n readonly llmMessage: UserMessage;\n}\n\nexport function resolveIngressUserMessage(\n turn: TurnIngress,\n): ResolvedIngressUserMessage {\n const content = stripUserSpoofedSenderPrefix(turn.input.text);\n const referenceBlock = renderTurnReferences(turn);\n const extra: AgentMessageExtra | undefined = referenceBlock\n ? { quote: { block: referenceBlock } }\n : undefined;\n const llmMessage = renderUserMessageForLlm(\n createUserMessage(content, undefined, Date.now(), {\n subjectId: turn.principal.subjectId,\n ...(turn.principal.displayName ? { displayName: turn.principal.displayName } : {}),\n roles: [...turn.principal.roles],\n ...(turn.principal.origin ? { origin: turn.principal.origin } : {}),\n ...(turn.origin.kind === 'im' ? { scope: turn.origin.scope } : {}),\n }, {\n turnId: turn.identity.turnId,\n intent: turn.intent.kind,\n ...(turn.intent.targetTurnId ? { targetTurnId: turn.intent.targetTurnId } : {}),\n }),\n extra,\n );\n return Object.freeze({\n content,\n ...(extra ? { extra: Object.freeze(extra) } : {}),\n llmMessage,\n });\n}\n\nfunction renderTurnReferences(turn: TurnIngress): string | undefined {\n const references = turn.input.references ?? [];\n if (references.length === 0) return undefined;\n const lines = references.map((reference) => {\n const preview = reference.preview?.trim();\n return `- ${reference.kind} id=${reference.sourceId} reference=${reference.key}`\n + (preview ? `\\n preview: ${preview}` : '');\n });\n return `[Untrusted conversation references]\\n${lines.join('\\n')}\\n`\n + 'Use inspect_conversation_reference when the referenced content is needed.';\n}\n\nexport function buildTurnSessionCreateInput(\n turn: TurnIngress,\n): CreateAgentSessionInput {\n return { session_key: turn.session.key };\n}\n\nexport async function beginIngressTurnSession(\n deps: { agentSessionStore: AgentSessionRepository },\n turn: TurnIngress,\n): Promise<{ sessionKey: string; sessionId: string }> {\n const record = await deps.agentSessionStore.getOrCreateActive(\n buildTurnSessionCreateInput(turn),\n );\n return { sessionKey: turn.session.key, sessionId: record.session_id };\n}\n"]}
@@ -12,4 +12,3 @@ export interface SessionTreeRuntimeHandle {
12
12
  resolveActiveSessionId(sessionKey: string): Promise<string | null>;
13
13
  }
14
14
  export declare function createSessionTreeRuntimeFromAgent(host: ZhinAgentPrivate): SessionTreeRuntimeHandle;
15
- //# sourceMappingURL=session-tree-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-tree-runtime.js","sourceRoot":"","sources":["../src/session-tree-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,2CAA2C,CAAC;AAYnD,MAAM,UAAU,iCAAiC,CAC/C,IAAsB;IAEtB,OAAO;QACL,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACvE,OAAO,OAAO,EAAE,sBAAsB,IAAI,IAAI,CAAC;QACjD,CAAC;QACD,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACzC,uCAAuC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;QACrE,iBAAiB,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACtC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;QAC5D,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACnF,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnE,OAAO,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-tree-runtime.js","sourceRoot":"","sources":["../src/session-tree-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,2CAA2C,CAAC;AAYnD,MAAM,UAAU,iCAAiC,CAC/C,IAAsB;IAEtB,OAAO;QACL,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACvE,OAAO,OAAO,EAAE,sBAAsB,IAAI,IAAI,CAAC;QACjD,CAAC;QACD,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACzC,uCAAuC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;QACrE,iBAAiB,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACtC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;QAC5D,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACnF,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnE,OAAO,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { SessionBranchPoint } from '@zhin.js/ai';\nimport {\n jumpToBranchIndexWithSummarization,\n switchActiveLeafWithBranchSummarization,\n} from './session/branch-summarization-runtime.js';\nimport type { ZhinAgentPrivate } from './internal/agent-host.js';\n\n/** Generation-owned session-tree projection exposed through AgentHostPort. */\nexport interface SessionTreeRuntimeHandle {\n getActiveLeafMessageId(sessionId: string): Promise<number | null>;\n switchActiveLeaf(sessionId: string, messageId: number): Promise<boolean>;\n jumpToBranchIndex(sessionId: string, index: number): Promise<{ ok: boolean; message: string }>;\n listBranchPoints(sessionId: string): Promise<SessionBranchPoint[]>;\n resolveActiveSessionId(sessionKey: string): Promise<string | null>;\n}\n\nexport function createSessionTreeRuntimeFromAgent(\n host: ZhinAgentPrivate,\n): SessionTreeRuntimeHandle {\n return {\n getActiveLeafMessageId: async (sessionId) => {\n const session = await host.agentSessionStore.getBySessionId(sessionId);\n return session?.active_leaf_message_id ?? null;\n },\n switchActiveLeaf: (sessionId, messageId) =>\n switchActiveLeafWithBranchSummarization(host, sessionId, messageId),\n jumpToBranchIndex: (sessionId, index) =>\n jumpToBranchIndexWithSummarization(host, sessionId, index),\n listBranchPoints: (sessionId) => host.contextRepository.listBranchPoints(sessionId),\n resolveActiveSessionId: async (sessionKey) => {\n const active = await host.agentSessionStore.findActive(sessionKey);\n return active?.session_id ?? null;\n },\n };\n}\n"]}
@@ -24,4 +24,3 @@ export declare function renderAgentCatalog(agents: readonly CatalogEntry[]): str
24
24
  * Calling one loads it on demand; `load_tool` or `discover` work as well.
25
25
  */
26
26
  export declare function renderDeferredToolIndex(tools: readonly CatalogEntry[]): string | undefined;
27
- //# sourceMappingURL=capability-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-catalog.js","sourceRoot":"","sources":["../../src/skill/capability-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-catalog.js","sourceRoot":"","sources":["../../src/skill/capability-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Compact capability catalog for the system prompt (#729, M2.3).\n *\n * The prompt only carries a name and a one-line trigger description for each\n * skill and specialist agent. Full skill instructions reach the model after\n * `load_skill` (or intent priming), and specialist instructions only when the\n * agent is selected, so the resident prompt stays small as plugins add skills.\n */\nimport { SKILL_DISCLOSURE_PROMPT_HINT } from './progressive-disclosure.js';\n\n/** Headings the context budget report uses to attribute catalog tokens. */\nexport const SKILL_CATALOG_HEADING = '## Available skills';\nexport const AGENT_CATALOG_HEADING = '## Available specialist agents';\nexport const DEFERRED_TOOL_INDEX_HEADING = '## Deferred tools';\n\n/** Longest one-line description kept per deferred tool index entry. */\nexport const TOOL_INDEX_DESCRIPTION_MAX_CHARS = 60;\n\n/** Longest one-line description kept per catalog entry. */\nexport const CATALOG_DESCRIPTION_MAX_CHARS = 96;\n/** Entries listed before the rest are left to `discover`. */\nexport const CATALOG_MAX_ENTRIES = 40;\n\nexport interface CatalogEntry {\n readonly name: string;\n readonly description: string;\n}\n\n/** First line of a description, whitespace-collapsed and clipped to `max` characters. */\nexport function oneLineDescription(description: string, max = CATALOG_DESCRIPTION_MAX_CHARS): string {\n const firstLine = description.trim().split(/\\r?\\n/, 1)[0] ?? '';\n const line = firstLine.replace(/\\s+/g, ' ').trim();\n return line.length <= max ? line : `${line.slice(0, max - 1).trimEnd()}…`;\n}\n\nfunction renderEntries(\n entries: readonly CatalogEntry[],\n overflowHint: string,\n descriptionMax = CATALOG_DESCRIPTION_MAX_CHARS,\n): string[] {\n const listed = entries.slice(0, CATALOG_MAX_ENTRIES);\n const lines = listed.map((entry) => {\n const description = oneLineDescription(entry.description, descriptionMax);\n return description ? `- ${entry.name}: ${description}` : `- ${entry.name}`;\n });\n const hidden = entries.length - listed.length;\n if (hidden > 0) lines.push(`- …and ${hidden} more; ${overflowHint}`);\n return lines;\n}\n\n/** Skill catalog block: names and one-line triggers, plus the load_skill hint. */\nexport function renderSkillCatalog(skills: readonly CatalogEntry[]): string | undefined {\n if (skills.length === 0) return undefined;\n return [\n SKILL_CATALOG_HEADING,\n SKILL_DISCLOSURE_PROMPT_HINT,\n ...renderEntries(skills, 'use discover(kind=skill) to search them.'),\n ].join('\\n');\n}\n\n/** Specialist agent catalog block: names and one-line descriptions. */\nexport function renderAgentCatalog(agents: readonly CatalogEntry[]): string | undefined {\n if (agents.length === 0) return undefined;\n return [\n AGENT_CATALOG_HEADING,\n ...renderEntries(agents, 'they are not listed here.'),\n ].join('\\n');\n}\n\n/**\n * Deferred tool index (#729, M2.2): tools whose schema is not sent up front,\n * listed by name and a short description so the model knows they exist.\n * Calling one loads it on demand; `load_tool` or `discover` work as well.\n */\nexport function renderDeferredToolIndex(tools: readonly CatalogEntry[]): string | undefined {\n if (tools.length === 0) return undefined;\n return [\n DEFERRED_TOOL_INDEX_HEADING,\n 'These tools are available but their parameters are not loaded yet. Call load_tool(name) first, or discover(kind=tool) to search.',\n ...renderEntries(tools, 'use discover(kind=tool) to search them.', TOOL_INDEX_DESCRIPTION_MAX_CHARS),\n ].join('\\n');\n}\n"]}
@@ -26,4 +26,3 @@ export interface SkillSystemConfig {
26
26
  export interface TurnContext {
27
27
  message: Message;
28
28
  }
29
- //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/skill/contracts.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/skill/contracts.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/**\n * Skill System — 模块契约(与实现同步)。\n *\n * 实现:包装 `SkillRegistry`;`search` 使用 registry TF-IDF 真实 score。\n */\n\nimport type { AgentTool } from '@zhin.js/ai';\nimport type { Message } from '@zhin.js/core';\n\nexport interface Skill {\n name: string;\n description: string;\n tools: AgentTool[];\n keywords: string[];\n tags: string[];\n platforms?: string[];\n}\n\nexport interface SkillSearchResult {\n skill: Skill;\n score: number;\n}\n\nexport interface SkillSearchOptions {\n maxResults?: number;\n platform?: string;\n}\n\nexport interface SkillSystemConfig {\n /** 预留扩展面 */\n}\n\nexport interface TurnContext {\n message: Message;\n}\n"]}
@@ -5,4 +5,3 @@ export type { Skill, SkillSearchResult, SkillSearchOptions, SkillSystemConfig, T
5
5
  export { SkillSystem, createSkillSystem, defaultSkillSystem, } from './skill-system.js';
6
6
  export { SkillRegistry } from '../resource-hub/skill-registry.js';
7
7
  export type { Skill as ResourceHubSkill, SkillMetadata } from '../resource-hub/types.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC","sourcesContent":["/**\n * Skill System — SkillRegistry 统一出口(契约见 contracts.ts)。\n */\n\nexport type {\n Skill,\n SkillSearchResult,\n SkillSearchOptions,\n SkillSystemConfig,\n TurnContext,\n} from './contracts.js';\n\nexport {\n SkillSystem,\n createSkillSystem,\n defaultSkillSystem,\n} from './skill-system.js';\n\nexport { SkillRegistry } from '../resource-hub/skill-registry.js';\nexport type { Skill as ResourceHubSkill, SkillMetadata } from '../resource-hub/types.js';\n"]}
@@ -6,4 +6,3 @@ export declare const SKILL_DISCLOSURE_TOOLS: readonly ["discover", "load_skill"]
6
6
  /** Recommended agent turn sequence for deferred skills. */
7
7
  export declare const SKILL_DISCLOSURE_STEPS: readonly ["discover(kind=skill, query=...)", "load_skill(name)", "call tools unlocked by the skill"];
8
8
  export declare const SKILL_DISCLOSURE_PROMPT_HINT: string;
9
- //# sourceMappingURL=progressive-disclosure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progressive-disclosure.js","sourceRoot":"","sources":["../../src/skill/progressive-disclosure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,YAAY,CAAU,CAAC;AAE1E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,iCAAiC;IACjC,kBAAkB;IAClB,kCAAkC;CAC1B,CAAC;AAEX,MAAM,CAAC,MAAM,4BAA4B,GACvC,6EAA6E;MAC3E,mEAAmE,CAAC"}
1
+ {"version":3,"file":"progressive-disclosure.js","sourceRoot":"","sources":["../../src/skill/progressive-disclosure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,YAAY,CAAU,CAAC;AAE1E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,iCAAiC;IACjC,kBAAkB;IAClB,kCAAkC;CAC1B,CAAC;AAEX,MAAM,CAAC,MAAM,4BAA4B,GACvC,6EAA6E;MAC3E,mEAAmE,CAAC","sourcesContent":["/**\n * Skills progressive disclosure — Eve-aligned discover → load_skill (ADR 0039 P1).\n */\n\n/** Builtin meta tools for on-demand skill loading. */\nexport const SKILL_DISCLOSURE_TOOLS = ['discover', 'load_skill'] as const;\n\n/** Recommended agent turn sequence for deferred skills. */\nexport const SKILL_DISCLOSURE_STEPS = [\n 'discover(kind=skill, query=...)',\n 'load_skill(name)',\n 'call tools unlocked by the skill',\n] as const;\n\nexport const SKILL_DISCLOSURE_PROMPT_HINT =\n 'Skills are not fully injected upfront. Use discover(kind=skill) to search, '\n + 'then load_skill(name) before following skill-specific procedures.';\n"]}
@@ -2,4 +2,3 @@ import type { ZhinAgentPrivate } from '../internal/agent-host.js';
2
2
  import { type SkillInstructionSource } from './skill-instruction-reader.js';
3
3
  /** Bind Skill discovery rules and model-specific limits for one Agent runtime. */
4
4
  export declare function buildSkillInstructionReaderForAgent(host: ZhinAgentPrivate): SkillInstructionSource;
5
- //# sourceMappingURL=skill-instruction-reader-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-instruction-reader-factory.js","sourceRoot":"","sources":["../../src/skill/skill-instruction-reader-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAA+B,MAAM,+BAA+B,CAAC;AAEpG,kFAAkF;AAClF,MAAM,UAAU,mCAAmC,CAAC,IAAsB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;IAC3F,OAAO,IAAI,sBAAsB,CAAC;QAChC,QAAQ,EAAE,+BAA+B,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/D,WAAW,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;QAC/C,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;KACxE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"skill-instruction-reader-factory.js","sourceRoot":"","sources":["../../src/skill/skill-instruction-reader-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAA+B,MAAM,+BAA+B,CAAC;AAEpG,kFAAkF;AAClF,MAAM,UAAU,mCAAmC,CAAC,IAAsB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;IAC3F,OAAO,IAAI,sBAAsB,CAAC;QAChC,QAAQ,EAAE,+BAA+B,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/D,WAAW,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;QAC/C,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;KACxE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { mergeSkillDirsWithResolver } from '../discovery/utils.js';\nimport { resolveSkillInstructionMaxChars } from '../config/index.js';\nimport type { ZhinAgentPrivate } from '../internal/agent-host.js';\nimport { SkillInstructionReader, type SkillInstructionSource } from './skill-instruction-reader.js';\n\n/** Bind Skill discovery rules and model-specific limits for one Agent runtime. */\nexport function buildSkillInstructionReaderForAgent(host: ZhinAgentPrivate): SkillInstructionSource {\n const modelId = host.getTurnProvider().models[0] || host.config.chatModel || 'gpt-4o-mini';\n return new SkillInstructionReader({\n maxChars: resolveSkillInstructionMaxChars(host.config, modelId),\n directories: () => mergeSkillDirsWithResolver(),\n registeredFile: (name) => host.skillRegistry?.getByName(name)?.filePath,\n });\n}\n"]}
@@ -19,4 +19,3 @@ export declare class SkillInstructionReader implements SkillInstructionSource {
19
19
  constructor(options: SkillInstructionReaderOptions);
20
20
  read(name: string): Promise<SkillInstructionReadResult>;
21
21
  }
22
- //# sourceMappingURL=skill-instruction-reader.d.ts.map