@zhin.js/agent 1.1.36 → 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 (1284) 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 +24 -27
  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 +0 -1
  213. package/lib/core/turn-completion-usage.js.map +1 -1
  214. package/lib/core/turn-event-mapper.d.ts +0 -1
  215. package/lib/core/turn-event-mapper.js.map +1 -1
  216. package/lib/core/turn-progress.d.ts +0 -1
  217. package/lib/core/turn-progress.js.map +1 -1
  218. package/lib/create-agent-session.d.ts +0 -1
  219. package/lib/create-agent-session.js.map +1 -1
  220. package/lib/decision/approval-judgment.d.ts +0 -1
  221. package/lib/decision/approval-judgment.js.map +1 -1
  222. package/lib/decision/approval.d.ts +0 -1
  223. package/lib/decision/approval.js.map +1 -1
  224. package/lib/decision/config.d.ts +0 -1
  225. package/lib/decision/config.js.map +1 -1
  226. package/lib/decision/index.d.ts +0 -1
  227. package/lib/decision/index.js.map +1 -1
  228. package/lib/decision/rank.d.ts +0 -1
  229. package/lib/decision/rank.js.map +1 -1
  230. package/lib/decision/retrieval.d.ts +0 -1
  231. package/lib/decision/retrieval.js.map +1 -1
  232. package/lib/decision/types.d.ts +0 -1
  233. package/lib/decision/types.js.map +1 -1
  234. package/lib/deferred-worker-runner.d.ts +0 -1
  235. package/lib/deferred-worker-runner.js.map +1 -1
  236. package/lib/deferred-worker-tool-load.d.ts +0 -1
  237. package/lib/deferred-worker-tool-load.js.map +1 -1
  238. package/lib/detached-task/index.d.ts +0 -1
  239. package/lib/detached-task/index.js.map +1 -1
  240. package/lib/detached-task/interjection.d.ts +0 -1
  241. package/lib/detached-task/interjection.js.map +1 -1
  242. package/lib/detached-task/runner.d.ts +0 -1
  243. package/lib/detached-task/runner.js.map +1 -1
  244. package/lib/detached-task/store.d.ts +0 -1
  245. package/lib/detached-task/store.js.map +1 -1
  246. package/lib/detached-task/token.d.ts +0 -1
  247. package/lib/detached-task/token.js.map +1 -1
  248. package/lib/detached-task/types.d.ts +0 -1
  249. package/lib/detached-task/types.js.map +1 -1
  250. package/lib/discovery/agent-surface-info.d.ts +0 -1
  251. package/lib/discovery/agent-surface-info.js.map +1 -1
  252. package/lib/discovery/agent-surface.d.ts +0 -1
  253. package/lib/discovery/agent-surface.js.map +1 -1
  254. package/lib/discovery/agents.d.ts +0 -1
  255. package/lib/discovery/agents.js.map +1 -1
  256. package/lib/discovery/utils.d.ts +0 -1
  257. package/lib/discovery/utils.js.map +1 -1
  258. package/lib/event/agent-stream-bus.d.ts +0 -1
  259. package/lib/event/agent-stream-bus.js.map +1 -1
  260. package/lib/event/agent-stream-hooks.d.ts +0 -1
  261. package/lib/event/agent-stream-hooks.js.map +1 -1
  262. package/lib/event/ai-event-bus.d.ts +0 -1
  263. package/lib/event/ai-event-bus.js.map +1 -1
  264. package/lib/event/contracts.d.ts +0 -1
  265. package/lib/event/contracts.js.map +1 -1
  266. package/lib/event/event-emitter.d.ts +0 -1
  267. package/lib/event/event-emitter.js.map +1 -1
  268. package/lib/event/event-system.d.ts +0 -1
  269. package/lib/event/event-system.js.map +1 -1
  270. package/lib/event/filtering-middleware.d.ts +0 -1
  271. package/lib/event/filtering-middleware.js.map +1 -1
  272. package/lib/event/hook-stream-sink.d.ts +0 -1
  273. package/lib/event/hook-stream-sink.js.map +1 -1
  274. package/lib/event/index.d.ts +0 -1
  275. package/lib/event/index.js.map +1 -1
  276. package/lib/event/logging-middleware.d.ts +0 -1
  277. package/lib/event/logging-middleware.js.map +1 -1
  278. package/lib/event/publish-agent-stream.d.ts +0 -1
  279. package/lib/event/publish-agent-stream.js.map +1 -1
  280. package/lib/event/session-events.d.ts +0 -1
  281. package/lib/event/session-events.js.map +1 -1
  282. package/lib/event/turn-event.d.ts +0 -1
  283. package/lib/event/turn-event.js.map +1 -1
  284. package/lib/event/turn-to-agent-stream.d.ts +0 -1
  285. package/lib/event/turn-to-agent-stream.js.map +1 -1
  286. package/lib/index.d.ts +4 -5
  287. package/lib/index.js +2 -2
  288. package/lib/index.js.map +1 -1
  289. package/lib/init/activate-ai-database-storage.d.ts +0 -1
  290. package/lib/init/activate-ai-database-storage.js.map +1 -1
  291. package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
  292. package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
  293. package/lib/init/configure-zhin-agent.d.ts +0 -1
  294. package/lib/init/configure-zhin-agent.js.map +1 -1
  295. package/lib/init/define-ai-database-models.d.ts +0 -1
  296. package/lib/init/define-ai-database-models.js.map +1 -1
  297. package/lib/init/dispose-zhin-agent.d.ts +0 -1
  298. package/lib/init/dispose-zhin-agent.js.map +1 -1
  299. package/lib/init/introspection-output.d.ts +0 -1
  300. package/lib/init/introspection-output.js.map +1 -1
  301. package/lib/init/runtime-management-commands.d.ts +0 -1
  302. package/lib/init/runtime-management-commands.js.map +1 -1
  303. package/lib/interaction/index.d.ts +0 -1
  304. package/lib/interaction/index.js.map +1 -1
  305. package/lib/interaction/interaction-router.d.ts +0 -1
  306. package/lib/interaction/interaction-router.js.map +1 -1
  307. package/lib/internal/agent-host.d.ts +0 -1
  308. package/lib/internal/agent-host.js.map +1 -1
  309. package/lib/internal/ai-service-refs.d.ts +0 -1
  310. package/lib/internal/ai-service-refs.js.map +1 -1
  311. package/lib/internal/as-private.d.ts +0 -1
  312. package/lib/internal/as-private.js.map +1 -1
  313. package/lib/internal/host-types.d.ts +0 -1
  314. package/lib/internal/host-types.js.map +1 -1
  315. package/lib/internal/phase-trace.d.ts +0 -1
  316. package/lib/internal/phase-trace.js.map +1 -1
  317. package/lib/internal/prompt-trace.d.ts +0 -1
  318. package/lib/internal/prompt-trace.js.map +1 -1
  319. package/lib/internal/turn-context.d.ts +0 -1
  320. package/lib/internal/turn-context.js.map +1 -1
  321. package/lib/journal/file-journal-store.d.ts +0 -1
  322. package/lib/journal/file-journal-store.js.map +1 -1
  323. package/lib/journal/index.d.ts +0 -1
  324. package/lib/journal/index.js.map +1 -1
  325. package/lib/journal/persistent-turn-journal.d.ts +0 -1
  326. package/lib/journal/persistent-turn-journal.js.map +1 -1
  327. package/lib/mcp-client/bridge.d.ts +0 -1
  328. package/lib/mcp-client/bridge.js.map +1 -1
  329. package/lib/mcp-client/connection.d.ts +0 -1
  330. package/lib/mcp-client/connection.js.map +1 -1
  331. package/lib/mcp-client/index.d.ts +0 -1
  332. package/lib/mcp-client/index.js.map +1 -1
  333. package/lib/media/deliver-subagent-result.d.ts +0 -1
  334. package/lib/media/deliver-subagent-result.js +4 -1
  335. package/lib/media/deliver-subagent-result.js.map +1 -1
  336. package/lib/media/inbound-refs.d.ts +0 -1
  337. package/lib/media/inbound-refs.js.map +1 -1
  338. package/lib/media/index.d.ts +0 -1
  339. package/lib/media/index.js.map +1 -1
  340. package/lib/media/media-capabilities.d.ts +0 -1
  341. package/lib/media/media-capabilities.js.map +1 -1
  342. package/lib/media/media-normalize.d.ts +31 -3
  343. package/lib/media/media-normalize.js +38 -5
  344. package/lib/media/media-normalize.js.map +1 -1
  345. package/lib/media/media-publisher.d.ts +4 -2
  346. package/lib/media/media-publisher.js +50 -31
  347. package/lib/media/media-publisher.js.map +1 -1
  348. package/lib/media/media-router.d.ts +0 -1
  349. package/lib/media/media-router.js.map +1 -1
  350. package/lib/media/media-spool.d.ts +0 -1
  351. package/lib/media/media-spool.js.map +1 -1
  352. package/lib/media/media-tool-bridge.d.ts +0 -1
  353. package/lib/media/media-tool-bridge.js.map +1 -1
  354. package/lib/media/media-types.d.ts +0 -1
  355. package/lib/media/media-types.js.map +1 -1
  356. package/lib/media/perception.d.ts +8 -2
  357. package/lib/media/perception.js +55 -5
  358. package/lib/media/perception.js.map +1 -1
  359. package/lib/media/resolve-config.d.ts +0 -1
  360. package/lib/media/resolve-config.js.map +1 -1
  361. package/lib/media/subagent-inbound.d.ts +0 -1
  362. package/lib/media/subagent-inbound.js.map +1 -1
  363. package/lib/media/subagent-user-delivery.d.ts +0 -1
  364. package/lib/media/subagent-user-delivery.js.map +1 -1
  365. package/lib/media/vision-capability.d.ts +0 -1
  366. package/lib/media/vision-capability.js.map +1 -1
  367. package/lib/memory/ai-compaction-strategy.d.ts +0 -1
  368. package/lib/memory/ai-compaction-strategy.js.map +1 -1
  369. package/lib/memory/compaction-runtime.d.ts +0 -1
  370. package/lib/memory/compaction-runtime.js.map +1 -1
  371. package/lib/memory/context-repository-store.d.ts +0 -1
  372. package/lib/memory/context-repository-store.js.map +1 -1
  373. package/lib/memory/contracts.d.ts +0 -1
  374. package/lib/memory/contracts.js.map +1 -1
  375. package/lib/memory/index.d.ts +0 -1
  376. package/lib/memory/index.js.map +1 -1
  377. package/lib/memory/memory-system.d.ts +0 -1
  378. package/lib/memory/memory-system.js.map +1 -1
  379. package/lib/memory/memory-write-policy.d.ts +0 -1
  380. package/lib/memory/memory-write-policy.js.map +1 -1
  381. package/lib/memory/semantic-recall.d.ts +0 -1
  382. package/lib/memory/semantic-recall.js.map +1 -1
  383. package/lib/memory/told-ledger.d.ts +0 -1
  384. package/lib/memory/told-ledger.js.map +1 -1
  385. package/lib/memory-layers.d.ts +0 -1
  386. package/lib/memory-layers.js.map +1 -1
  387. package/lib/orchestration/five-agent/index.d.ts +0 -1
  388. package/lib/orchestration/five-agent/index.js.map +1 -1
  389. package/lib/orchestration/five-agent/prompts.d.ts +0 -1
  390. package/lib/orchestration/five-agent/prompts.js.map +1 -1
  391. package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
  392. package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
  393. package/lib/orchestration/five-agent/roles.d.ts +0 -1
  394. package/lib/orchestration/five-agent/roles.js.map +1 -1
  395. package/lib/outbound/agent-output.d.ts +5 -1
  396. package/lib/outbound/agent-output.js +14 -0
  397. package/lib/outbound/agent-output.js.map +1 -1
  398. package/lib/outbound/send-proactive.d.ts +0 -1
  399. package/lib/outbound/send-proactive.js.map +1 -1
  400. package/lib/outbound/structured-reply.d.ts +6 -2
  401. package/lib/outbound/structured-reply.js +65 -14
  402. package/lib/outbound/structured-reply.js.map +1 -1
  403. package/lib/plugin-ai-hook-bus.d.ts +0 -1
  404. package/lib/plugin-ai-hook-bus.js.map +1 -1
  405. package/lib/plugin-loop-hooks.d.ts +0 -1
  406. package/lib/plugin-loop-hooks.js.map +1 -1
  407. package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
  408. package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
  409. package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
  410. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  411. package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
  412. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  413. package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
  414. package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
  415. package/lib/plugin-runtime/ai-completion.d.ts +11 -43
  416. package/lib/plugin-runtime/ai-completion.js +28 -10
  417. package/lib/plugin-runtime/ai-completion.js.map +1 -1
  418. package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
  419. package/lib/plugin-runtime/capability-ingress.js.map +1 -1
  420. package/lib/plugin-runtime/capability-tools.d.ts +0 -1
  421. package/lib/plugin-runtime/capability-tools.js.map +1 -1
  422. package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
  423. package/lib/plugin-runtime/decision-runtime.js.map +1 -1
  424. package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
  425. package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
  426. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  427. package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
  428. package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
  429. package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
  430. package/lib/plugin-runtime/file-search-scope.js.map +1 -1
  431. package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
  432. package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
  433. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  434. package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
  435. package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
  436. package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
  437. package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
  438. package/lib/plugin-runtime/index.d.ts +0 -1
  439. package/lib/plugin-runtime/index.js.map +1 -1
  440. package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
  441. package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
  442. package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
  443. package/lib/plugin-runtime/native-file-tools.js.map +1 -1
  444. package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
  445. package/lib/plugin-runtime/native-image-tool.js.map +1 -1
  446. package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
  447. package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
  448. package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
  449. package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
  450. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
  451. package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
  452. package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
  453. package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
  454. package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
  455. package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
  456. package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
  457. package/lib/plugin-runtime/native-web-tools.js.map +1 -1
  458. package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
  459. package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
  460. package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
  461. package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
  462. package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
  463. package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
  464. package/lib/prompt/assembly.d.ts +0 -1
  465. package/lib/prompt/assembly.js +2 -2
  466. package/lib/prompt/assembly.js.map +1 -1
  467. package/lib/prompt/estimate-tokens.d.ts +0 -1
  468. package/lib/prompt/estimate-tokens.js.map +1 -1
  469. package/lib/prompt/git-context.d.ts +0 -1
  470. package/lib/prompt/git-context.js.map +1 -1
  471. package/lib/prompt/index.d.ts +0 -1
  472. package/lib/prompt/index.js.map +1 -1
  473. package/lib/prompt/model-aware-builder.d.ts +0 -1
  474. package/lib/prompt/model-aware-builder.js.map +1 -1
  475. package/lib/prompt/model-prompt-strategy.d.ts +0 -1
  476. package/lib/prompt/model-prompt-strategy.js.map +1 -1
  477. package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
  478. package/lib/prompt/prompt-assembly-registry.js.map +1 -1
  479. package/lib/prompt/prompt-budget.d.ts +0 -1
  480. package/lib/prompt/prompt-budget.js.map +1 -1
  481. package/lib/prompt/prompt-builder.d.ts +0 -1
  482. package/lib/prompt/prompt-builder.js.map +1 -1
  483. package/lib/prompt/rules/chat-rules.d.ts +6 -0
  484. package/lib/prompt/rules/chat-rules.js +20 -0
  485. package/lib/prompt/rules/chat-rules.js.map +1 -0
  486. package/lib/prompt/rules/code-references.d.ts +0 -1
  487. package/lib/prompt/rules/code-references.js.map +1 -1
  488. package/lib/prompt/rules/critical-rules.d.ts +0 -1
  489. package/lib/prompt/rules/critical-rules.js +2 -2
  490. package/lib/prompt/rules/critical-rules.js.map +1 -1
  491. package/lib/prompt/rules/editing.d.ts +0 -1
  492. package/lib/prompt/rules/editing.js.map +1 -1
  493. package/lib/prompt/rules/error-handling.d.ts +0 -1
  494. package/lib/prompt/rules/error-handling.js.map +1 -1
  495. package/lib/prompt/rules/index.d.ts +1 -1
  496. package/lib/prompt/rules/index.js +1 -0
  497. package/lib/prompt/rules/index.js.map +1 -1
  498. package/lib/prompt/rules/memory.d.ts +0 -1
  499. package/lib/prompt/rules/memory.js.map +1 -1
  500. package/lib/prompt/rules/task-completion.d.ts +0 -1
  501. package/lib/prompt/rules/task-completion.js.map +1 -1
  502. package/lib/prompt/rules/workflow-rules.d.ts +0 -1
  503. package/lib/prompt/rules/workflow-rules.js.map +1 -1
  504. package/lib/prompt/system-prompt.d.ts +7 -1
  505. package/lib/prompt/system-prompt.js +31 -12
  506. package/lib/prompt/system-prompt.js.map +1 -1
  507. package/lib/prompt/templates.d.ts +0 -1
  508. package/lib/prompt/templates.js.map +1 -1
  509. package/lib/prompt/tokens.d.ts +0 -1
  510. package/lib/prompt/tokens.js.map +1 -1
  511. package/lib/prompt/turn-prompt-profile.d.ts +0 -1
  512. package/lib/prompt/turn-prompt-profile.js.map +1 -1
  513. package/lib/prompt/workspace-prompt.d.ts +0 -1
  514. package/lib/prompt/workspace-prompt.js.map +1 -1
  515. package/lib/reserved-tools.d.ts +0 -1
  516. package/lib/reserved-tools.js.map +1 -1
  517. package/lib/resource-hub/hook-registry.d.ts +0 -1
  518. package/lib/resource-hub/hook-registry.js.map +1 -1
  519. package/lib/resource-hub/index.d.ts +0 -1
  520. package/lib/resource-hub/index.js.map +1 -1
  521. package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
  522. package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
  523. package/lib/resource-hub/mcp-registry.d.ts +0 -1
  524. package/lib/resource-hub/mcp-registry.js.map +1 -1
  525. package/lib/resource-hub/public-api.d.ts +0 -1
  526. package/lib/resource-hub/public-api.js.map +1 -1
  527. package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
  528. package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
  529. package/lib/resource-hub/resource-registry.d.ts +0 -1
  530. package/lib/resource-hub/resource-registry.js.map +1 -1
  531. package/lib/resource-hub/role-configs.d.ts +0 -1
  532. package/lib/resource-hub/role-configs.js.map +1 -1
  533. package/lib/resource-hub/skill-registry.d.ts +0 -1
  534. package/lib/resource-hub/skill-registry.js.map +1 -1
  535. package/lib/resource-hub/subagent-registry.d.ts +0 -1
  536. package/lib/resource-hub/subagent-registry.js.map +1 -1
  537. package/lib/resource-hub/tool-selection.d.ts +0 -1
  538. package/lib/resource-hub/tool-selection.js.map +1 -1
  539. package/lib/resource-hub/types.d.ts +0 -1
  540. package/lib/resource-hub/types.js.map +1 -1
  541. package/lib/routing/runtime-binding.d.ts +0 -1
  542. package/lib/routing/runtime-binding.js.map +1 -1
  543. package/lib/routing/subagent-summarize.d.ts +0 -1
  544. package/lib/routing/subagent-summarize.js.map +1 -1
  545. package/lib/schedule-cron.d.ts +0 -1
  546. package/lib/schedule-cron.js.map +1 -1
  547. package/lib/schedule-domain/audit-logger.d.ts +0 -1
  548. package/lib/schedule-domain/audit-logger.js.map +1 -1
  549. package/lib/schedule-domain/budget-guard.d.ts +0 -1
  550. package/lib/schedule-domain/budget-guard.js.map +1 -1
  551. package/lib/schedule-domain/execution-domain.d.ts +0 -1
  552. package/lib/schedule-domain/execution-domain.js.map +1 -1
  553. package/lib/schedule-domain/index.d.ts +0 -1
  554. package/lib/schedule-domain/index.js.map +1 -1
  555. package/lib/schedule-domain/output-validator.d.ts +0 -1
  556. package/lib/schedule-domain/output-validator.js.map +1 -1
  557. package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
  558. package/lib/schedule-domain/prompt-assembler.js.map +1 -1
  559. package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
  560. package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
  561. package/lib/schedule-domain/security-harness.d.ts +0 -1
  562. package/lib/schedule-domain/security-harness.js.map +1 -1
  563. package/lib/schedule-manager.d.ts +0 -1
  564. package/lib/schedule-manager.js.map +1 -1
  565. package/lib/seam/index.d.ts +0 -1
  566. package/lib/seam/index.js.map +1 -1
  567. package/lib/seam/seam-integration.d.ts +0 -1
  568. package/lib/seam/seam-integration.js.map +1 -1
  569. package/lib/seam/seam-provider.d.ts +0 -1
  570. package/lib/seam/seam-provider.js.map +1 -1
  571. package/lib/seam/skill-service.d.ts +0 -1
  572. package/lib/seam/skill-service.js.map +1 -1
  573. package/lib/seam/tokens.d.ts +0 -1
  574. package/lib/seam/tokens.js.map +1 -1
  575. package/lib/seam/tool-service.d.ts +0 -1
  576. package/lib/seam/tool-service.js.map +1 -1
  577. package/lib/security/anomaly-detection.d.ts +0 -1
  578. package/lib/security/anomaly-detection.js.map +1 -1
  579. package/lib/security/audit-logger.d.ts +0 -1
  580. package/lib/security/audit-logger.js.map +1 -1
  581. package/lib/security/comm-message-context.d.ts +0 -1
  582. package/lib/security/comm-message-context.js.map +1 -1
  583. package/lib/security/dangerous-tool-policy.d.ts +0 -1
  584. package/lib/security/dangerous-tool-policy.js.map +1 -1
  585. package/lib/security/exec-policy.d.ts +0 -1
  586. package/lib/security/exec-policy.js.map +1 -1
  587. package/lib/security/file-policy.d.ts +0 -1
  588. package/lib/security/file-policy.js.map +1 -1
  589. package/lib/security/file-role-policy.d.ts +0 -1
  590. package/lib/security/file-role-policy.js.map +1 -1
  591. package/lib/security/index.d.ts +0 -1
  592. package/lib/security/index.js.map +1 -1
  593. package/lib/security/network-authority.d.ts +0 -1
  594. package/lib/security/network-authority.js.map +1 -1
  595. package/lib/security/network-policy-context.d.ts +0 -1
  596. package/lib/security/network-policy-context.js.map +1 -1
  597. package/lib/security/network-policy.d.ts +0 -1
  598. package/lib/security/network-policy.js.map +1 -1
  599. package/lib/security/outbound-leak-guard.d.ts +0 -1
  600. package/lib/security/outbound-leak-guard.js.map +1 -1
  601. package/lib/security/owner-approval-contracts.d.ts +0 -1
  602. package/lib/security/owner-approval-contracts.js.map +1 -1
  603. package/lib/security/owner-approval-runtime.d.ts +0 -1
  604. package/lib/security/owner-approval-runtime.js.map +1 -1
  605. package/lib/security/owner-approval-store.d.ts +0 -1
  606. package/lib/security/owner-approval-store.js.map +1 -1
  607. package/lib/security/policy-facade.d.ts +0 -1
  608. package/lib/security/policy-facade.js.map +1 -1
  609. package/lib/security/policy-narrowing.d.ts +0 -1
  610. package/lib/security/policy-narrowing.js.map +1 -1
  611. package/lib/security/provenance.d.ts +0 -1
  612. package/lib/security/provenance.js.map +1 -1
  613. package/lib/security/sandbox-docker.d.ts +0 -1
  614. package/lib/security/sandbox-docker.js.map +1 -1
  615. package/lib/security/sandbox.d.ts +0 -1
  616. package/lib/security/sandbox.js.map +1 -1
  617. package/lib/security/trust-level.d.ts +0 -1
  618. package/lib/security/trust-level.js.map +1 -1
  619. package/lib/security/turn-file-authority.d.ts +0 -1
  620. package/lib/security/turn-file-authority.js.map +1 -1
  621. package/lib/security/turn-network-client.d.ts +0 -1
  622. package/lib/security/turn-network-client.js.map +1 -1
  623. package/lib/security/usage-quota.d.ts +3 -7
  624. package/lib/security/usage-quota.js.map +1 -1
  625. package/lib/segment/filter-im-delivery.d.ts +0 -1
  626. package/lib/segment/filter-im-delivery.js.map +1 -1
  627. package/lib/service.d.ts +0 -1
  628. package/lib/service.js.map +1 -1
  629. package/lib/session/approval-port.d.ts +0 -1
  630. package/lib/session/approval-port.js.map +1 -1
  631. package/lib/session/approval-review-agent.d.ts +0 -1
  632. package/lib/session/approval-review-agent.js.map +1 -1
  633. package/lib/session/branch-summarization-runtime.d.ts +0 -1
  634. package/lib/session/branch-summarization-runtime.js.map +1 -1
  635. package/lib/session/contracts.d.ts +0 -1
  636. package/lib/session/contracts.js.map +1 -1
  637. package/lib/session/index.d.ts +0 -1
  638. package/lib/session/index.js.map +1 -1
  639. package/lib/session/session-io.d.ts +0 -1
  640. package/lib/session/session-io.js.map +1 -1
  641. package/lib/session/session-key.d.ts +0 -1
  642. package/lib/session/session-key.js.map +1 -1
  643. package/lib/session/session-system.d.ts +7 -1
  644. package/lib/session/session-system.js +26 -12
  645. package/lib/session/session-system.js.map +1 -1
  646. package/lib/session/session-tree-commands.d.ts +0 -1
  647. package/lib/session/session-tree-commands.js.map +1 -1
  648. package/lib/session/strategies.d.ts +0 -1
  649. package/lib/session/strategies.js.map +1 -1
  650. package/lib/session/turn-ingress-session.d.ts +0 -1
  651. package/lib/session/turn-ingress-session.js.map +1 -1
  652. package/lib/session-tree-runtime.d.ts +0 -1
  653. package/lib/session-tree-runtime.js.map +1 -1
  654. package/lib/skill/capability-catalog.d.ts +0 -1
  655. package/lib/skill/capability-catalog.js.map +1 -1
  656. package/lib/skill/contracts.d.ts +0 -1
  657. package/lib/skill/contracts.js.map +1 -1
  658. package/lib/skill/index.d.ts +0 -1
  659. package/lib/skill/index.js.map +1 -1
  660. package/lib/skill/progressive-disclosure.d.ts +0 -1
  661. package/lib/skill/progressive-disclosure.js.map +1 -1
  662. package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
  663. package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
  664. package/lib/skill/skill-instruction-reader.d.ts +0 -1
  665. package/lib/skill/skill-instruction-reader.js.map +1 -1
  666. package/lib/skill/skill-instructions.d.ts +0 -1
  667. package/lib/skill/skill-instructions.js.map +1 -1
  668. package/lib/skill/skill-registry-as-service.d.ts +0 -1
  669. package/lib/skill/skill-registry-as-service.js.map +1 -1
  670. package/lib/skill/skill-system.d.ts +0 -1
  671. package/lib/skill/skill-system.js.map +1 -1
  672. package/lib/spawn/permission-task.d.ts +0 -1
  673. package/lib/spawn/permission-task.js.map +1 -1
  674. package/lib/spawn/spawn-task-tool.d.ts +0 -1
  675. package/lib/spawn/spawn-task-tool.js.map +1 -1
  676. package/lib/stability/memory-pressure.d.ts +0 -1
  677. package/lib/stability/memory-pressure.js.map +1 -1
  678. package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
  679. package/lib/standalone/standalone-tool-catalog.js.map +1 -1
  680. package/lib/subagent/contracts.d.ts +0 -1
  681. package/lib/subagent/contracts.js.map +1 -1
  682. package/lib/subagent/im-result-sink.d.ts +0 -1
  683. package/lib/subagent/im-result-sink.js.map +1 -1
  684. package/lib/subagent/index.d.ts +0 -1
  685. package/lib/subagent/index.js.map +1 -1
  686. package/lib/subagent/subagent-runtime.d.ts +0 -1
  687. package/lib/subagent/subagent-runtime.js.map +1 -1
  688. package/lib/subagent/subagent-system-init.d.ts +0 -1
  689. package/lib/subagent/subagent-system-init.js.map +1 -1
  690. package/lib/subagent/subagent-system.d.ts +0 -1
  691. package/lib/subagent/subagent-system.js.map +1 -1
  692. package/lib/subagent-ai-events.d.ts +0 -1
  693. package/lib/subagent-ai-events.js.map +1 -1
  694. package/lib/subagent-artifact.d.ts +0 -1
  695. package/lib/subagent-artifact.js.map +1 -1
  696. package/lib/subagent-goal-notify.d.ts +0 -1
  697. package/lib/subagent-goal-notify.js.map +1 -1
  698. package/lib/subagent-parent-context.d.ts +0 -1
  699. package/lib/subagent-parent-context.js.map +1 -1
  700. package/lib/subagent-preset.d.ts +0 -1
  701. package/lib/subagent-preset.js.map +1 -1
  702. package/lib/subagent-prompt.d.ts +0 -1
  703. package/lib/subagent-prompt.js.map +1 -1
  704. package/lib/task-executor.d.ts +0 -1
  705. package/lib/task-executor.js.map +1 -1
  706. package/lib/tool/builtin-policy-extractors.d.ts +0 -1
  707. package/lib/tool/builtin-policy-extractors.js.map +1 -1
  708. package/lib/tool/context-tools.d.ts +0 -1
  709. package/lib/tool/context-tools.js.map +1 -1
  710. package/lib/tool/contracts.d.ts +0 -1
  711. package/lib/tool/contracts.js.map +1 -1
  712. package/lib/tool/conversation-reference-tool.d.ts +0 -1
  713. package/lib/tool/conversation-reference-tool.js.map +1 -1
  714. package/lib/tool/deferred-resolution.d.ts +0 -1
  715. package/lib/tool/deferred-resolution.js.map +1 -1
  716. package/lib/tool/executable-tool-registry.d.ts +0 -1
  717. package/lib/tool/executable-tool-registry.js.map +1 -1
  718. package/lib/tool/index.d.ts +0 -1
  719. package/lib/tool/index.js.map +1 -1
  720. package/lib/tool/pre-exec.d.ts +0 -1
  721. package/lib/tool/pre-exec.js.map +1 -1
  722. package/lib/tool/prepare-turn-tools.d.ts +0 -1
  723. package/lib/tool/prepare-turn-tools.js.map +1 -1
  724. package/lib/tool/runtime.d.ts +0 -1
  725. package/lib/tool/runtime.js.map +1 -1
  726. package/lib/tool/sources.d.ts +0 -1
  727. package/lib/tool/sources.js.map +1 -1
  728. package/lib/tool/tool-approval-gate.d.ts +0 -1
  729. package/lib/tool/tool-approval-gate.js.map +1 -1
  730. package/lib/tool/tool-approval-once-store.d.ts +0 -1
  731. package/lib/tool/tool-approval-once-store.js.map +1 -1
  732. package/lib/tool/tool-execution-authority.d.ts +0 -1
  733. package/lib/tool/tool-execution-authority.js.map +1 -1
  734. package/lib/tool/tool-model-output.d.ts +0 -1
  735. package/lib/tool/tool-model-output.js.map +1 -1
  736. package/lib/tool/tool-runtime.d.ts +0 -1
  737. package/lib/tool/tool-runtime.js.map +1 -1
  738. package/lib/tool/tool-system.d.ts +0 -1
  739. package/lib/tool/tool-system.js.map +1 -1
  740. package/lib/tool/turn-tool-runtime.d.ts +0 -1
  741. package/lib/tool/turn-tool-runtime.js.map +1 -1
  742. package/lib/tool-bridge.d.ts +0 -1
  743. package/lib/tool-bridge.js.map +1 -1
  744. package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
  745. package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
  746. package/lib/tool-catalog/index.d.ts +0 -1
  747. package/lib/tool-catalog/index.js.map +1 -1
  748. package/lib/tool-catalog/resolve-config.d.ts +0 -1
  749. package/lib/tool-catalog/resolve-config.js.map +1 -1
  750. package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
  751. package/lib/tool-catalog/session-deferred-store.js.map +1 -1
  752. package/lib/tool-catalog/tool-catalog.d.ts +8 -1
  753. package/lib/tool-catalog/tool-catalog.js +15 -0
  754. package/lib/tool-catalog/tool-catalog.js.map +1 -1
  755. package/lib/tool-catalog/types.d.ts +0 -1
  756. package/lib/tool-catalog/types.js.map +1 -1
  757. package/lib/trace/context-budget.d.ts +0 -1
  758. package/lib/trace/context-budget.js.map +1 -1
  759. package/lib/trace/index.d.ts +0 -1
  760. package/lib/trace/index.js.map +1 -1
  761. package/lib/trace/turn-trace-archive.d.ts +0 -1
  762. package/lib/trace/turn-trace-archive.js.map +1 -1
  763. package/lib/trace/turn-trace-format.d.ts +0 -1
  764. package/lib/trace/turn-trace-format.js.map +1 -1
  765. package/lib/trace/turn-trace-registry.d.ts +0 -1
  766. package/lib/trace/turn-trace-registry.js.map +1 -1
  767. package/lib/trace/turn-trace-store.d.ts +0 -1
  768. package/lib/trace/turn-trace-store.js.map +1 -1
  769. package/lib/trace/turn-trace.d.ts +0 -1
  770. package/lib/trace/turn-trace.js.map +1 -1
  771. package/lib/turn/agent-turn-context.d.ts +0 -1
  772. package/lib/turn/agent-turn-context.js.map +1 -1
  773. package/lib/turn/auto-continue.d.ts +0 -1
  774. package/lib/turn/auto-continue.js.map +1 -1
  775. package/lib/turn/cancel-intent.d.ts +0 -1
  776. package/lib/turn/cancel-intent.js.map +1 -1
  777. package/lib/turn/deferred-auto-continue.d.ts +0 -1
  778. package/lib/turn/deferred-auto-continue.js.map +1 -1
  779. package/lib/turn/deferred-delivery.d.ts +0 -1
  780. package/lib/turn/deferred-delivery.js.map +1 -1
  781. package/lib/turn/deferred-turn-state.d.ts +0 -1
  782. package/lib/turn/deferred-turn-state.js.map +1 -1
  783. package/lib/turn/execute-agent-turn.d.ts +0 -1
  784. package/lib/turn/execute-agent-turn.js.map +1 -1
  785. package/lib/turn/inbound-media.d.ts +3 -2
  786. package/lib/turn/inbound-media.js +15 -2
  787. package/lib/turn/inbound-media.js.map +1 -1
  788. package/lib/turn/inbound-queue-config.d.ts +0 -1
  789. package/lib/turn/inbound-queue-config.js.map +1 -1
  790. package/lib/turn/inbound-queue-runtime.d.ts +0 -1
  791. package/lib/turn/inbound-queue-runtime.js.map +1 -1
  792. package/lib/turn/inbound-turn-queue.d.ts +0 -1
  793. package/lib/turn/inbound-turn-queue.js.map +1 -1
  794. package/lib/turn/index.d.ts +0 -1
  795. package/lib/turn/index.js.map +1 -1
  796. package/lib/turn/journal-feed.d.ts +0 -1
  797. package/lib/turn/journal-feed.js.map +1 -1
  798. package/lib/turn/journal-integrity.d.ts +0 -1
  799. package/lib/turn/journal-integrity.js.map +1 -1
  800. package/lib/turn/persist-deferred-context.d.ts +0 -1
  801. package/lib/turn/persist-deferred-context.js.map +1 -1
  802. package/lib/turn/persist-subagent-context.d.ts +0 -1
  803. package/lib/turn/persist-subagent-context.js.map +1 -1
  804. package/lib/turn/process-stream.d.ts +0 -1
  805. package/lib/turn/process-stream.js.map +1 -1
  806. package/lib/turn/prompt-access.d.ts +0 -1
  807. package/lib/turn/prompt-access.js.map +1 -1
  808. package/lib/turn/prompt-api.d.ts +0 -1
  809. package/lib/turn/prompt-api.js.map +1 -1
  810. package/lib/turn/prompt-controller.d.ts +0 -1
  811. package/lib/turn/prompt-controller.js.map +1 -1
  812. package/lib/turn/prompt-input.d.ts +0 -1
  813. package/lib/turn/prompt-input.js.map +1 -1
  814. package/lib/turn/session-message-queue.d.ts +0 -1
  815. package/lib/turn/session-message-queue.js.map +1 -1
  816. package/lib/turn/subagent-auto-continue.d.ts +0 -1
  817. package/lib/turn/subagent-auto-continue.js.map +1 -1
  818. package/lib/turn/task-continuation.d.ts +0 -1
  819. package/lib/turn/task-continuation.js.map +1 -1
  820. package/lib/turn/trigger-cancelled-error.d.ts +0 -1
  821. package/lib/turn/trigger-cancelled-error.js.map +1 -1
  822. package/lib/turn/turn-admission-gate.d.ts +0 -1
  823. package/lib/turn/turn-admission-gate.js.map +1 -1
  824. package/lib/turn/turn-complete.d.ts +0 -1
  825. package/lib/turn/turn-complete.js.map +1 -1
  826. package/lib/turn/turn-context-bridge.d.ts +0 -1
  827. package/lib/turn/turn-context-bridge.js.map +1 -1
  828. package/lib/turn/turn-deferred-delta.d.ts +0 -1
  829. package/lib/turn/turn-deferred-delta.js.map +1 -1
  830. package/lib/turn/turn-event-source.d.ts +0 -1
  831. package/lib/turn/turn-event-source.js.map +1 -1
  832. package/lib/turn/turn-ingress.d.ts +3 -1
  833. package/lib/turn/turn-ingress.js.map +1 -1
  834. package/lib/turn/turn-metrics.d.ts +0 -1
  835. package/lib/turn/turn-metrics.js.map +1 -1
  836. package/lib/turn/turn-pipeline.d.ts +0 -1
  837. package/lib/turn/turn-pipeline.js.map +1 -1
  838. package/lib/turn/turn-terminal.d.ts +0 -1
  839. package/lib/turn/turn-terminal.js.map +1 -1
  840. package/lib/turn/turn-tracker.d.ts +0 -1
  841. package/lib/turn/turn-tracker.js.map +1 -1
  842. package/lib/types/disposable.d.ts +0 -1
  843. package/lib/types/disposable.js.map +1 -1
  844. package/lib/typing-indicator/adapter-integration.d.ts +0 -1
  845. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  846. package/lib/typing-indicator/index.d.ts +0 -1
  847. package/lib/typing-indicator/index.js.map +1 -1
  848. package/lib/user-profile.d.ts +0 -1
  849. package/lib/user-profile.js.map +1 -1
  850. package/lib/utils/config-env.d.ts +0 -1
  851. package/lib/utils/config-env.js.map +1 -1
  852. package/lib/utils/keyed-mutex.d.ts +0 -1
  853. package/lib/utils/keyed-mutex.js.map +1 -1
  854. package/lib/web/bing-search-html.d.ts +0 -1
  855. package/lib/web/bing-search-html.js.map +1 -1
  856. package/lib/web/web-search-locale.d.ts +0 -1
  857. package/lib/web/web-search-locale.js.map +1 -1
  858. package/lib/web/web-tool-utils.d.ts +0 -1
  859. package/lib/web/web-tool-utils.js.map +1 -1
  860. package/lib/zhin-agent/index.d.ts +0 -1
  861. package/lib/zhin-agent/index.js.map +1 -1
  862. package/lib/zhin-agent/runtime-modules.d.ts +0 -1
  863. package/lib/zhin-agent/runtime-modules.js.map +1 -1
  864. package/package.json +11 -11
  865. package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
  866. package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
  867. package/lib/activity-feedback/event-context.d.ts.map +0 -1
  868. package/lib/activity-feedback/index.d.ts.map +0 -1
  869. package/lib/activity-feedback/manager.d.ts.map +0 -1
  870. package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
  871. package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
  872. package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
  873. package/lib/activity-feedback/types.d.ts.map +0 -1
  874. package/lib/ai-event-bus.d.ts.map +0 -1
  875. package/lib/ai-event-contract.d.ts.map +0 -1
  876. package/lib/ai-event-subscriber.d.ts.map +0 -1
  877. package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
  878. package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
  879. package/lib/assistant/config.d.ts.map +0 -1
  880. package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
  881. package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
  882. package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
  883. package/lib/assistant/domains/home-entity.d.ts.map +0 -1
  884. package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
  885. package/lib/assistant/event-ingress.d.ts.map +0 -1
  886. package/lib/assistant/event-types.d.ts.map +0 -1
  887. package/lib/assistant/home-config.d.ts.map +0 -1
  888. package/lib/assistant/home-facade.d.ts.map +0 -1
  889. package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
  890. package/lib/assistant/home-policy.d.ts.map +0 -1
  891. package/lib/assistant/home-tools.d.ts.map +0 -1
  892. package/lib/assistant/index.d.ts.map +0 -1
  893. package/lib/assistant/job-creator.d.ts.map +0 -1
  894. package/lib/assistant/job-engine.d.ts.map +0 -1
  895. package/lib/assistant/job-scheduler.d.ts.map +0 -1
  896. package/lib/assistant/job-store.d.ts.map +0 -1
  897. package/lib/assistant/job-utils.d.ts.map +0 -1
  898. package/lib/assistant/job-worker.d.ts.map +0 -1
  899. package/lib/assistant/notification-router.d.ts.map +0 -1
  900. package/lib/assistant/profile-loader.d.ts.map +0 -1
  901. package/lib/assistant/profile-types.d.ts.map +0 -1
  902. package/lib/assistant/runtime-contract.d.ts.map +0 -1
  903. package/lib/assistant/schedule-execution.d.ts.map +0 -1
  904. package/lib/assistant/schedule-job-service.d.ts.map +0 -1
  905. package/lib/assistant/schedule-skills.d.ts.map +0 -1
  906. package/lib/assistant/types.d.ts.map +0 -1
  907. package/lib/authoring/bridge.d.ts.map +0 -1
  908. package/lib/authoring/define-eval.d.ts.map +0 -1
  909. package/lib/authoring/define-hook.d.ts.map +0 -1
  910. package/lib/authoring/define-skill.d.ts.map +0 -1
  911. package/lib/authoring/disable-tool.d.ts.map +0 -1
  912. package/lib/authoring/entries/evals.d.ts.map +0 -1
  913. package/lib/authoring/entries/hooks.d.ts.map +0 -1
  914. package/lib/authoring/entries/skills.d.ts.map +0 -1
  915. package/lib/authoring/index.d.ts.map +0 -1
  916. package/lib/authoring/types.d.ts.map +0 -1
  917. package/lib/bootstrap.d.ts.map +0 -1
  918. package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
  919. package/lib/common-adapter-tools.d.ts.map +0 -1
  920. package/lib/config/agent-binding-registry.d.ts.map +0 -1
  921. package/lib/config/agent-bindings.d.ts.map +0 -1
  922. package/lib/config/agent-interfaces.d.ts.map +0 -1
  923. package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
  924. package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
  925. package/lib/config/fix-ai-config.d.ts.map +0 -1
  926. package/lib/config/index.d.ts.map +0 -1
  927. package/lib/config/keyword-triggers.d.ts.map +0 -1
  928. package/lib/config/model-harness-runtime.d.ts.map +0 -1
  929. package/lib/config/model-harness.d.ts.map +0 -1
  930. package/lib/config/normalize-ai-config.d.ts.map +0 -1
  931. package/lib/config/perception-config.d.ts.map +0 -1
  932. package/lib/config/provider-instance.d.ts.map +0 -1
  933. package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
  934. package/lib/config/types.d.ts.map +0 -1
  935. package/lib/config/validate-ai-config.d.ts.map +0 -1
  936. package/lib/config/zhin-agent-config.d.ts.map +0 -1
  937. package/lib/config/zhin-agent-constants.d.ts.map +0 -1
  938. package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
  939. package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
  940. package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
  941. package/lib/context/agents-instruction.d.ts.map +0 -1
  942. package/lib/context/context-system.d.ts.map +0 -1
  943. package/lib/context/context-tail-limit.d.ts.map +0 -1
  944. package/lib/context/contracts.d.ts.map +0 -1
  945. package/lib/context/default-builders.d.ts.map +0 -1
  946. package/lib/context/envelope-parts.d.ts.map +0 -1
  947. package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
  948. package/lib/context/index.d.ts.map +0 -1
  949. package/lib/context/model-resolver.d.ts.map +0 -1
  950. package/lib/context/turn-envelope.d.ts.map +0 -1
  951. package/lib/context/turn-user-message.d.ts.map +0 -1
  952. package/lib/core/agent-core-run.d.ts.map +0 -1
  953. package/lib/core/agent-core.d.ts.map +0 -1
  954. package/lib/core/agent-loop-standalone.d.ts.map +0 -1
  955. package/lib/core/agent-loop-turn.d.ts.map +0 -1
  956. package/lib/core/agent-run-shared.d.ts.map +0 -1
  957. package/lib/core/compose-deps.d.ts.map +0 -1
  958. package/lib/core/contracts.d.ts.map +0 -1
  959. package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
  960. package/lib/core/exploration-budget.d.ts.map +0 -1
  961. package/lib/core/index.d.ts.map +0 -1
  962. package/lib/core/missing-tool-resolver.d.ts.map +0 -1
  963. package/lib/core/progress-reporter.d.ts.map +0 -1
  964. package/lib/core/spawn-delegation.d.ts.map +0 -1
  965. package/lib/core/structured-reply-recovery.d.ts.map +0 -1
  966. package/lib/core/text-sanitize.d.ts.map +0 -1
  967. package/lib/core/tool-calls-user-format.d.ts.map +0 -1
  968. package/lib/core/tool-execution-authority.d.ts.map +0 -1
  969. package/lib/core/turn-completion-usage.d.ts.map +0 -1
  970. package/lib/core/turn-event-mapper.d.ts.map +0 -1
  971. package/lib/core/turn-progress.d.ts.map +0 -1
  972. package/lib/create-agent-session.d.ts.map +0 -1
  973. package/lib/decision/approval-judgment.d.ts.map +0 -1
  974. package/lib/decision/approval.d.ts.map +0 -1
  975. package/lib/decision/config.d.ts.map +0 -1
  976. package/lib/decision/index.d.ts.map +0 -1
  977. package/lib/decision/rank.d.ts.map +0 -1
  978. package/lib/decision/retrieval.d.ts.map +0 -1
  979. package/lib/decision/types.d.ts.map +0 -1
  980. package/lib/deferred-worker-runner.d.ts.map +0 -1
  981. package/lib/deferred-worker-tool-load.d.ts.map +0 -1
  982. package/lib/detached-task/index.d.ts.map +0 -1
  983. package/lib/detached-task/interjection.d.ts.map +0 -1
  984. package/lib/detached-task/runner.d.ts.map +0 -1
  985. package/lib/detached-task/store.d.ts.map +0 -1
  986. package/lib/detached-task/token.d.ts.map +0 -1
  987. package/lib/detached-task/types.d.ts.map +0 -1
  988. package/lib/discovery/agent-surface-info.d.ts.map +0 -1
  989. package/lib/discovery/agent-surface.d.ts.map +0 -1
  990. package/lib/discovery/agents.d.ts.map +0 -1
  991. package/lib/discovery/utils.d.ts.map +0 -1
  992. package/lib/event/agent-stream-bus.d.ts.map +0 -1
  993. package/lib/event/agent-stream-hooks.d.ts.map +0 -1
  994. package/lib/event/ai-event-bus.d.ts.map +0 -1
  995. package/lib/event/contracts.d.ts.map +0 -1
  996. package/lib/event/event-emitter.d.ts.map +0 -1
  997. package/lib/event/event-system.d.ts.map +0 -1
  998. package/lib/event/filtering-middleware.d.ts.map +0 -1
  999. package/lib/event/hook-stream-sink.d.ts.map +0 -1
  1000. package/lib/event/index.d.ts.map +0 -1
  1001. package/lib/event/logging-middleware.d.ts.map +0 -1
  1002. package/lib/event/publish-agent-stream.d.ts.map +0 -1
  1003. package/lib/event/session-events.d.ts.map +0 -1
  1004. package/lib/event/turn-event.d.ts.map +0 -1
  1005. package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
  1006. package/lib/index.d.ts.map +0 -1
  1007. package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
  1008. package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
  1009. package/lib/init/configure-zhin-agent.d.ts.map +0 -1
  1010. package/lib/init/define-ai-database-models.d.ts.map +0 -1
  1011. package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
  1012. package/lib/init/introspection-output.d.ts.map +0 -1
  1013. package/lib/init/runtime-management-commands.d.ts.map +0 -1
  1014. package/lib/interaction/index.d.ts.map +0 -1
  1015. package/lib/interaction/interaction-router.d.ts.map +0 -1
  1016. package/lib/internal/agent-host.d.ts.map +0 -1
  1017. package/lib/internal/ai-service-refs.d.ts.map +0 -1
  1018. package/lib/internal/as-private.d.ts.map +0 -1
  1019. package/lib/internal/host-types.d.ts.map +0 -1
  1020. package/lib/internal/phase-trace.d.ts.map +0 -1
  1021. package/lib/internal/prompt-trace.d.ts.map +0 -1
  1022. package/lib/internal/turn-context.d.ts.map +0 -1
  1023. package/lib/journal/file-journal-store.d.ts.map +0 -1
  1024. package/lib/journal/index.d.ts.map +0 -1
  1025. package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
  1026. package/lib/mcp-client/bridge.d.ts.map +0 -1
  1027. package/lib/mcp-client/connection.d.ts.map +0 -1
  1028. package/lib/mcp-client/index.d.ts.map +0 -1
  1029. package/lib/media/deliver-subagent-result.d.ts.map +0 -1
  1030. package/lib/media/inbound-refs.d.ts.map +0 -1
  1031. package/lib/media/index.d.ts.map +0 -1
  1032. package/lib/media/media-capabilities.d.ts.map +0 -1
  1033. package/lib/media/media-normalize.d.ts.map +0 -1
  1034. package/lib/media/media-publisher.d.ts.map +0 -1
  1035. package/lib/media/media-router.d.ts.map +0 -1
  1036. package/lib/media/media-spool.d.ts.map +0 -1
  1037. package/lib/media/media-tool-bridge.d.ts.map +0 -1
  1038. package/lib/media/media-types.d.ts.map +0 -1
  1039. package/lib/media/perception.d.ts.map +0 -1
  1040. package/lib/media/resolve-config.d.ts.map +0 -1
  1041. package/lib/media/subagent-inbound.d.ts.map +0 -1
  1042. package/lib/media/subagent-user-delivery.d.ts.map +0 -1
  1043. package/lib/media/vision-capability.d.ts.map +0 -1
  1044. package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
  1045. package/lib/memory/compaction-runtime.d.ts.map +0 -1
  1046. package/lib/memory/context-repository-store.d.ts.map +0 -1
  1047. package/lib/memory/contracts.d.ts.map +0 -1
  1048. package/lib/memory/index.d.ts.map +0 -1
  1049. package/lib/memory/memory-system.d.ts.map +0 -1
  1050. package/lib/memory/memory-write-policy.d.ts.map +0 -1
  1051. package/lib/memory/semantic-recall.d.ts.map +0 -1
  1052. package/lib/memory/told-ledger.d.ts.map +0 -1
  1053. package/lib/memory-layers.d.ts.map +0 -1
  1054. package/lib/orchestration/five-agent/index.d.ts.map +0 -1
  1055. package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
  1056. package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
  1057. package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
  1058. package/lib/outbound/agent-output.d.ts.map +0 -1
  1059. package/lib/outbound/send-proactive.d.ts.map +0 -1
  1060. package/lib/outbound/structured-reply.d.ts.map +0 -1
  1061. package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
  1062. package/lib/plugin-loop-hooks.d.ts.map +0 -1
  1063. package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
  1064. package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
  1065. package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
  1066. package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
  1067. package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
  1068. package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
  1069. package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
  1070. package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
  1071. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
  1072. package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
  1073. package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
  1074. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
  1075. package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
  1076. package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
  1077. package/lib/plugin-runtime/index.d.ts.map +0 -1
  1078. package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
  1079. package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
  1080. package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
  1081. package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
  1082. package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
  1083. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
  1084. package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
  1085. package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
  1086. package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
  1087. package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
  1088. package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
  1089. package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
  1090. package/lib/prompt/assembly.d.ts.map +0 -1
  1091. package/lib/prompt/estimate-tokens.d.ts.map +0 -1
  1092. package/lib/prompt/git-context.d.ts.map +0 -1
  1093. package/lib/prompt/index.d.ts.map +0 -1
  1094. package/lib/prompt/model-aware-builder.d.ts.map +0 -1
  1095. package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
  1096. package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
  1097. package/lib/prompt/prompt-budget.d.ts.map +0 -1
  1098. package/lib/prompt/prompt-builder.d.ts.map +0 -1
  1099. package/lib/prompt/rules/code-references.d.ts.map +0 -1
  1100. package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
  1101. package/lib/prompt/rules/editing.d.ts.map +0 -1
  1102. package/lib/prompt/rules/error-handling.d.ts.map +0 -1
  1103. package/lib/prompt/rules/index.d.ts.map +0 -1
  1104. package/lib/prompt/rules/memory.d.ts.map +0 -1
  1105. package/lib/prompt/rules/task-completion.d.ts.map +0 -1
  1106. package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
  1107. package/lib/prompt/system-prompt.d.ts.map +0 -1
  1108. package/lib/prompt/templates.d.ts.map +0 -1
  1109. package/lib/prompt/tokens.d.ts.map +0 -1
  1110. package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
  1111. package/lib/prompt/workspace-prompt.d.ts.map +0 -1
  1112. package/lib/reserved-tools.d.ts.map +0 -1
  1113. package/lib/resource-hub/hook-registry.d.ts.map +0 -1
  1114. package/lib/resource-hub/index.d.ts.map +0 -1
  1115. package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
  1116. package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
  1117. package/lib/resource-hub/public-api.d.ts.map +0 -1
  1118. package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
  1119. package/lib/resource-hub/resource-registry.d.ts.map +0 -1
  1120. package/lib/resource-hub/role-configs.d.ts.map +0 -1
  1121. package/lib/resource-hub/skill-registry.d.ts.map +0 -1
  1122. package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
  1123. package/lib/resource-hub/tool-selection.d.ts.map +0 -1
  1124. package/lib/resource-hub/types.d.ts.map +0 -1
  1125. package/lib/routing/runtime-binding.d.ts.map +0 -1
  1126. package/lib/routing/subagent-summarize.d.ts.map +0 -1
  1127. package/lib/schedule-cron.d.ts.map +0 -1
  1128. package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
  1129. package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
  1130. package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
  1131. package/lib/schedule-domain/index.d.ts.map +0 -1
  1132. package/lib/schedule-domain/output-validator.d.ts.map +0 -1
  1133. package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
  1134. package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
  1135. package/lib/schedule-domain/security-harness.d.ts.map +0 -1
  1136. package/lib/schedule-manager.d.ts.map +0 -1
  1137. package/lib/seam/index.d.ts.map +0 -1
  1138. package/lib/seam/seam-integration.d.ts.map +0 -1
  1139. package/lib/seam/seam-provider.d.ts.map +0 -1
  1140. package/lib/seam/skill-service.d.ts.map +0 -1
  1141. package/lib/seam/tokens.d.ts.map +0 -1
  1142. package/lib/seam/tool-service.d.ts.map +0 -1
  1143. package/lib/security/anomaly-detection.d.ts.map +0 -1
  1144. package/lib/security/audit-logger.d.ts.map +0 -1
  1145. package/lib/security/comm-message-context.d.ts.map +0 -1
  1146. package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
  1147. package/lib/security/exec-policy.d.ts.map +0 -1
  1148. package/lib/security/file-policy.d.ts.map +0 -1
  1149. package/lib/security/file-role-policy.d.ts.map +0 -1
  1150. package/lib/security/index.d.ts.map +0 -1
  1151. package/lib/security/network-authority.d.ts.map +0 -1
  1152. package/lib/security/network-policy-context.d.ts.map +0 -1
  1153. package/lib/security/network-policy.d.ts.map +0 -1
  1154. package/lib/security/outbound-leak-guard.d.ts.map +0 -1
  1155. package/lib/security/owner-approval-contracts.d.ts.map +0 -1
  1156. package/lib/security/owner-approval-runtime.d.ts.map +0 -1
  1157. package/lib/security/owner-approval-store.d.ts.map +0 -1
  1158. package/lib/security/policy-facade.d.ts.map +0 -1
  1159. package/lib/security/policy-narrowing.d.ts.map +0 -1
  1160. package/lib/security/provenance.d.ts.map +0 -1
  1161. package/lib/security/sandbox-docker.d.ts.map +0 -1
  1162. package/lib/security/sandbox.d.ts.map +0 -1
  1163. package/lib/security/trust-level.d.ts.map +0 -1
  1164. package/lib/security/turn-file-authority.d.ts.map +0 -1
  1165. package/lib/security/turn-network-client.d.ts.map +0 -1
  1166. package/lib/security/usage-quota.d.ts.map +0 -1
  1167. package/lib/segment/filter-im-delivery.d.ts.map +0 -1
  1168. package/lib/service.d.ts.map +0 -1
  1169. package/lib/session/approval-port.d.ts.map +0 -1
  1170. package/lib/session/approval-review-agent.d.ts.map +0 -1
  1171. package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
  1172. package/lib/session/contracts.d.ts.map +0 -1
  1173. package/lib/session/index.d.ts.map +0 -1
  1174. package/lib/session/session-io.d.ts.map +0 -1
  1175. package/lib/session/session-key.d.ts.map +0 -1
  1176. package/lib/session/session-system.d.ts.map +0 -1
  1177. package/lib/session/session-tree-commands.d.ts.map +0 -1
  1178. package/lib/session/strategies.d.ts.map +0 -1
  1179. package/lib/session/turn-ingress-session.d.ts.map +0 -1
  1180. package/lib/session-tree-runtime.d.ts.map +0 -1
  1181. package/lib/skill/capability-catalog.d.ts.map +0 -1
  1182. package/lib/skill/contracts.d.ts.map +0 -1
  1183. package/lib/skill/index.d.ts.map +0 -1
  1184. package/lib/skill/progressive-disclosure.d.ts.map +0 -1
  1185. package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
  1186. package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
  1187. package/lib/skill/skill-instructions.d.ts.map +0 -1
  1188. package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
  1189. package/lib/skill/skill-system.d.ts.map +0 -1
  1190. package/lib/spawn/permission-task.d.ts.map +0 -1
  1191. package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
  1192. package/lib/stability/memory-pressure.d.ts.map +0 -1
  1193. package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
  1194. package/lib/subagent/contracts.d.ts.map +0 -1
  1195. package/lib/subagent/im-result-sink.d.ts.map +0 -1
  1196. package/lib/subagent/index.d.ts.map +0 -1
  1197. package/lib/subagent/subagent-runtime.d.ts.map +0 -1
  1198. package/lib/subagent/subagent-system-init.d.ts.map +0 -1
  1199. package/lib/subagent/subagent-system.d.ts.map +0 -1
  1200. package/lib/subagent-ai-events.d.ts.map +0 -1
  1201. package/lib/subagent-artifact.d.ts.map +0 -1
  1202. package/lib/subagent-goal-notify.d.ts.map +0 -1
  1203. package/lib/subagent-parent-context.d.ts.map +0 -1
  1204. package/lib/subagent-preset.d.ts.map +0 -1
  1205. package/lib/subagent-prompt.d.ts.map +0 -1
  1206. package/lib/task-executor.d.ts.map +0 -1
  1207. package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
  1208. package/lib/tool/context-tools.d.ts.map +0 -1
  1209. package/lib/tool/contracts.d.ts.map +0 -1
  1210. package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
  1211. package/lib/tool/deferred-resolution.d.ts.map +0 -1
  1212. package/lib/tool/executable-tool-registry.d.ts.map +0 -1
  1213. package/lib/tool/index.d.ts.map +0 -1
  1214. package/lib/tool/pre-exec.d.ts.map +0 -1
  1215. package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
  1216. package/lib/tool/runtime.d.ts.map +0 -1
  1217. package/lib/tool/sources.d.ts.map +0 -1
  1218. package/lib/tool/tool-approval-gate.d.ts.map +0 -1
  1219. package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
  1220. package/lib/tool/tool-execution-authority.d.ts.map +0 -1
  1221. package/lib/tool/tool-model-output.d.ts.map +0 -1
  1222. package/lib/tool/tool-runtime.d.ts.map +0 -1
  1223. package/lib/tool/tool-system.d.ts.map +0 -1
  1224. package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
  1225. package/lib/tool-bridge.d.ts.map +0 -1
  1226. package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
  1227. package/lib/tool-catalog/index.d.ts.map +0 -1
  1228. package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
  1229. package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
  1230. package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
  1231. package/lib/tool-catalog/types.d.ts.map +0 -1
  1232. package/lib/trace/context-budget.d.ts.map +0 -1
  1233. package/lib/trace/index.d.ts.map +0 -1
  1234. package/lib/trace/turn-trace-archive.d.ts.map +0 -1
  1235. package/lib/trace/turn-trace-format.d.ts.map +0 -1
  1236. package/lib/trace/turn-trace-registry.d.ts.map +0 -1
  1237. package/lib/trace/turn-trace-store.d.ts.map +0 -1
  1238. package/lib/trace/turn-trace.d.ts.map +0 -1
  1239. package/lib/turn/agent-turn-context.d.ts.map +0 -1
  1240. package/lib/turn/auto-continue.d.ts.map +0 -1
  1241. package/lib/turn/cancel-intent.d.ts.map +0 -1
  1242. package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
  1243. package/lib/turn/deferred-delivery.d.ts.map +0 -1
  1244. package/lib/turn/deferred-turn-state.d.ts.map +0 -1
  1245. package/lib/turn/execute-agent-turn.d.ts.map +0 -1
  1246. package/lib/turn/inbound-media.d.ts.map +0 -1
  1247. package/lib/turn/inbound-queue-config.d.ts.map +0 -1
  1248. package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
  1249. package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
  1250. package/lib/turn/index.d.ts.map +0 -1
  1251. package/lib/turn/journal-feed.d.ts.map +0 -1
  1252. package/lib/turn/journal-integrity.d.ts.map +0 -1
  1253. package/lib/turn/persist-deferred-context.d.ts.map +0 -1
  1254. package/lib/turn/persist-subagent-context.d.ts.map +0 -1
  1255. package/lib/turn/process-stream.d.ts.map +0 -1
  1256. package/lib/turn/prompt-access.d.ts.map +0 -1
  1257. package/lib/turn/prompt-api.d.ts.map +0 -1
  1258. package/lib/turn/prompt-controller.d.ts.map +0 -1
  1259. package/lib/turn/prompt-input.d.ts.map +0 -1
  1260. package/lib/turn/session-message-queue.d.ts.map +0 -1
  1261. package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
  1262. package/lib/turn/task-continuation.d.ts.map +0 -1
  1263. package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
  1264. package/lib/turn/turn-admission-gate.d.ts.map +0 -1
  1265. package/lib/turn/turn-complete.d.ts.map +0 -1
  1266. package/lib/turn/turn-context-bridge.d.ts.map +0 -1
  1267. package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
  1268. package/lib/turn/turn-event-source.d.ts.map +0 -1
  1269. package/lib/turn/turn-ingress.d.ts.map +0 -1
  1270. package/lib/turn/turn-metrics.d.ts.map +0 -1
  1271. package/lib/turn/turn-pipeline.d.ts.map +0 -1
  1272. package/lib/turn/turn-terminal.d.ts.map +0 -1
  1273. package/lib/turn/turn-tracker.d.ts.map +0 -1
  1274. package/lib/types/disposable.d.ts.map +0 -1
  1275. package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
  1276. package/lib/typing-indicator/index.d.ts.map +0 -1
  1277. package/lib/user-profile.d.ts.map +0 -1
  1278. package/lib/utils/config-env.d.ts.map +0 -1
  1279. package/lib/utils/keyed-mutex.d.ts.map +0 -1
  1280. package/lib/web/bing-search-html.d.ts.map +0 -1
  1281. package/lib/web/web-search-locale.d.ts.map +0 -1
  1282. package/lib/web/web-tool-utils.d.ts.map +0 -1
  1283. package/lib/zhin-agent/index.d.ts.map +0 -1
  1284. package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
@@ -70,4 +70,3 @@ export declare class AdapterActivityFeedbackManager {
70
70
  }
71
71
  export declare function enableActivityFeedbackForBot(endpoint: EndpointWithActivityFeedback, platform: string, outbound?: ActivityFeedbackOutbound): ActivityFeedbackManager;
72
72
  export declare function isGenericActivityFeedbackManager(manager: BotActivityFeedbackManager): manager is ActivityFeedbackManager;
73
- //# sourceMappingURL=adapter-integration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-integration.js","sourceRoot":"","sources":["../../src/activity-feedback/adapter-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-integration.js","sourceRoot":"","sources":["../../src/activity-feedback/adapter-integration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Activity Feedback — endpoint 适配器集成(复用 typing-indicator 底层适配器)\n */\n\nimport { getLogger } from '@zhin.js/logger';\nimport type { EndpointControl } from '@zhin.js/adapter';\nimport type { ConversationRef, MessageRef } from '@zhin.js/im-contract';\nimport {\n MessageTypingIndicator,\n NativeTypingIndicator,\n NoneTypingIndicator,\n ReactionTypingIndicator,\n type TypingIndicator,\n type TypingIndicatorAdapter,\n type TypingIndicatorConfig,\n type TypingIndicatorOptions,\n} from '../typing-indicator/index.js';\nimport {\n PLATFORM_FEATURES,\n buildTypingSendContent,\n type PlatformFeatures,\n} from '../typing-indicator/adapter-integration.js';\nimport { ActivityFeedbackManager } from './manager.js';\nimport type { ActivityFeedbackPhase, ResolvedActivityFeedbackPhaseConfig } from './types.js';\n\nconst logger = getLogger('ActivityFeedback');\n\nexport { PLATFORM_FEATURES, buildTypingSendContent, type PlatformFeatures };\n\n/**\n * Narrow outbound seam used by activity feedback.\n *\n * An Adapter definition selects and constructs Endpoints; it is not a live\n * message sender. Runtime integrations therefore depend on this port instead\n * of importing or fabricating the legacy all-in-one Adapter class.\n */\nexport interface ActivityFeedbackSendPort {\n send(input: Readonly<{\n conversation: ConversationRef;\n content: unknown;\n }>): Promise<string | null | undefined>;\n}\n\n/** Structural compatibility for callers that still expose legacy sendMessage. */\nexport interface LegacyActivityFeedbackSendPort {\n sendMessage(options: Readonly<{\n type: 'private' | 'group';\n id: string;\n context: string;\n endpoint: string;\n content: unknown;\n }>): Promise<string | null | undefined>;\n}\n\nexport type ActivityFeedbackOutbound =\n | ActivityFeedbackSendPort\n | LegacyActivityFeedbackSendPort;\n\nfunction resolveSendTarget(options: TypingIndicatorOptions): { type: 'private' | 'group'; id: string } {\n if ((options.sceneType === 'group' || options.sceneType === 'channel') && options.groupId) {\n return { type: 'group', id: options.groupId };\n }\n if (options.sceneType === 'private') {\n if (options.groupId) {\n return { type: 'private', id: options.groupId };\n }\n if (options.userId) {\n return { type: 'private', id: options.userId };\n }\n }\n const parts = (options.sessionId ?? '').split(':').filter((p) => p.length > 0);\n if (parts.length >= 3) return { type: 'group', id: parts[1]! };\n if (parts.length >= 2) return { type: 'private', id: parts[parts.length - 1]! };\n return { type: 'private', id: options.sessionId ?? '' };\n}\n\nfunction createOutboundSendMessage(\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n messages: Map<string, MessageRef>,\n outbound?: ActivityFeedbackOutbound,\n): (options: TypingIndicatorOptions, content: string) => Promise<string | null> {\n return async (options, content) => {\n try {\n const segments = buildTypingSendContent(platform, options, content);\n if (!segments) return null;\n const { type, id } = resolveSendTarget(options);\n if (outbound) {\n const messageId = 'send' in outbound\n ? await outbound.send({\n conversation: toConversationRef(endpoint, platform, options),\n content: segments,\n })\n : await outbound.sendMessage({\n type,\n id,\n context: platform,\n endpoint: endpoint.$id,\n content: segments,\n });\n if (messageId) messages.set(messageId, toMessageRef(endpoint, platform, options, messageId));\n return messageId ?? null;\n }\n logger.error(`[${platform}] Activity feedback requires an outbound send port; endpoint ${endpoint.$id} has none`);\n return null;\n } catch (error) {\n logger.error(`[${platform}] Failed to send activity feedback message:`, error);\n return null;\n }\n };\n}\n\nexport interface PlatformActivityFeedbackStartOptions {\n messageId?: string;\n sessionId: string;\n userId?: string;\n groupId?: string;\n sceneType: 'private' | 'group';\n phase?: ActivityFeedbackPhase;\n /** 由 service 插件策略层解析;adapter 不再自行 resolve */\n phaseConfig: ResolvedActivityFeedbackPhaseConfig;\n}\n\n/** 平台自管 Activity Feedback IO(如 ICQQ 群临时私聊 parent) */\nexport interface PlatformActivityFeedbackManager {\n start(options: PlatformActivityFeedbackStartOptions): Promise<unknown>;\n stop(options: {\n sessionId: string;\n userId?: string;\n groupId?: string;\n phase?: ActivityFeedbackPhase;\n }): Promise<void>;\n getActiveIndicator?(\n phase: ActivityFeedbackPhase,\n options: TypingIndicatorOptions,\n ): TypingIndicator | undefined;\n}\n\nexport type BotActivityFeedbackManager = ActivityFeedbackManager | PlatformActivityFeedbackManager;\n\nexport interface EndpointWithActivityFeedback {\n /** Concrete Endpoint identity within one Adapter definition. */\n readonly $id: string;\n /** Runtime IO/control belongs to the concrete Endpoint, never the Adapter definition. */\n readonly control?: EndpointControl;\n $activityFeedback?: BotActivityFeedbackManager;\n}\n\nfunction registerPlatformAdapters(\n manager: ActivityFeedbackManager,\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n outbound?: ActivityFeedbackOutbound,\n): void {\n const messages = new Map<string, MessageRef>();\n const sendMessage = createOutboundSendMessage(endpoint, platform, messages, outbound);\n manager.registerAdapter(new EndpointActivityFeedbackAdapter(\n platform,\n endpoint,\n messages,\n sendMessage,\n ));\n}\n\n/** One adapter selected from the concrete Endpoint control contract, not its platform name. */\nclass EndpointActivityFeedbackAdapter implements TypingIndicatorAdapter {\n readonly supportedTypes: import('../typing-indicator/index.js').TypingIndicatorType[];\n\n constructor(\n readonly platform: string,\n private readonly endpoint: EndpointWithActivityFeedback,\n private readonly messages: Map<string, MessageRef>,\n private readonly sendMessage: (options: TypingIndicatorOptions, content: string) => Promise<string | null>,\n ) {\n const types: import('../typing-indicator/index.js').TypingIndicatorType[] = [];\n if (endpoint.control?.addReaction && endpoint.control.removeReaction) types.push('reaction');\n if (endpoint.control?.typing) types.push('typing');\n // Activity messages are transient state, so advertising them without a\n // matching recall operation would leave permanent “processing” debris in IM.\n if (endpoint.control?.recall) types.push('message');\n types.push('none');\n this.supportedTypes = types;\n }\n\n createIndicator(options: TypingIndicatorOptions, config: TypingIndicatorConfig): TypingIndicator {\n if (config.type === 'reaction' && this.endpoint.control?.addReaction && this.endpoint.control.removeReaction) {\n return new ReactionTypingIndicator(\n options,\n config,\n async (messageId, emoji, current) => {\n const message = toMessageRef(this.endpoint, this.platform, current, messageId);\n this.messages.set(messageId, message);\n return this.endpoint.control!.addReaction!(message, emoji, {\n sceneType: current.sceneType,\n channelId: current.groupId,\n });\n },\n async (messageId, reactionId) => {\n const message = this.messages.get(messageId);\n if (message) await this.endpoint.control!.removeReaction!(message, reactionId);\n },\n );\n }\n if (config.type === 'typing' && this.endpoint.control?.typing) {\n return new NativeTypingIndicator(\n options,\n config,\n async (current) => this.endpoint.control!.typing!(toConversationRef(\n this.endpoint,\n this.platform,\n current,\n ), true),\n async (current) => this.endpoint.control!.typing!(toConversationRef(\n this.endpoint,\n this.platform,\n current,\n ), false),\n );\n }\n if (config.type === 'message' && this.endpoint.control?.recall) {\n return new MessageTypingIndicator(\n options,\n config,\n this.sendMessage,\n async (messageId) => {\n const message = this.messages.get(messageId);\n if (message) await this.endpoint.control!.recall!(message);\n },\n async (messageId, content) => {\n const message = this.messages.get(messageId);\n if (message && this.endpoint.control?.edit) await this.endpoint.control.edit(message, content);\n },\n );\n }\n return new NoneTypingIndicator();\n }\n}\n\nfunction toMessageRef(\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n options: TypingIndicatorOptions,\n id: string,\n): MessageRef {\n return {\n conversation: toConversationRef(endpoint, platform, options),\n id,\n };\n}\n\nfunction toConversationRef(\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n options: TypingIndicatorOptions,\n): ConversationRef {\n const target = resolveSendTarget(options);\n return {\n endpoint: { id: endpoint.$id, adapter: platform },\n kind: options.sceneType,\n id: target.id,\n };\n}\n\nexport class AdapterActivityFeedbackManager {\n private managers = new Map<string, ActivityFeedbackManager>();\n\n enableForEndpoint(\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n outbound?: ActivityFeedbackOutbound,\n ): ActivityFeedbackManager {\n const botKey = JSON.stringify([platform, endpoint.$id]);\n if (this.managers.has(botKey)) {\n return this.managers.get(botKey)!;\n }\n const manager = new ActivityFeedbackManager();\n registerPlatformAdapters(manager, endpoint, platform, outbound);\n this.managers.set(botKey, manager);\n endpoint.$activityFeedback = manager;\n return manager;\n }\n\n getManager(platform: string, endpointKey: string): ActivityFeedbackManager | undefined {\n return this.managers.get(JSON.stringify([platform, endpointKey]));\n }\n\n async stopAll(platform: string, endpointKey: string): Promise<void> {\n await this.managers.get(JSON.stringify([platform, endpointKey]))?.stopAll();\n }\n\n clearAll(): void {\n this.managers.clear();\n }\n}\n\nexport function enableActivityFeedbackForBot(\n endpoint: EndpointWithActivityFeedback,\n platform: string,\n outbound?: ActivityFeedbackOutbound,\n): ActivityFeedbackManager {\n const existing = endpoint.$activityFeedback;\n if (existing instanceof ActivityFeedbackManager) return existing;\n const manager = new ActivityFeedbackManager();\n registerPlatformAdapters(manager, endpoint, platform, outbound);\n endpoint.$activityFeedback = manager;\n return manager;\n}\n\nexport function isGenericActivityFeedbackManager(\n manager: BotActivityFeedbackManager,\n): manager is ActivityFeedbackManager {\n return manager instanceof ActivityFeedbackManager;\n}\n"]}
@@ -1,3 +1,2 @@
1
1
  import type { ActivityFeedbackConfig, ActivityFeedbackPhase, ActivitySceneType, ResolvedActivityFeedbackPhaseConfig } from './types.js';
2
2
  export declare function resolveActivityFeedbackPhaseConfig(platform: string, endpointConfig: ActivityFeedbackConfig | undefined, phase: ActivityFeedbackPhase, sceneType: ActivitySceneType): ResolvedActivityFeedbackPhaseConfig;
3
- //# sourceMappingURL=config-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../src/activity-feedback/config-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../src/activity-feedback/config-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { PLATFORM_FEATURES } from '../typing-indicator/adapter-integration.js';\nimport type {\n ActivityFeedbackConfig,\n ActivityFeedbackPhase,\n ActivityFeedbackPhaseConfig,\n ActivitySceneType,\n ResolvedActivityFeedbackPhaseConfig,\n} from './types.js';\n\nconst PHASE_DEFAULT_MESSAGE: Record<ActivityFeedbackPhase, string> = {\n queued: '⏳',\n active: '正在处理中...',\n thinking: '思考中...',\n schedule_start: '⏰ 定时任务执行中...',\n schedule_finish: '✅ 定时任务完成',\n schedule_error: '❌ 定时任务失败',\n};\n\nfunction sceneKey(sceneType: ActivitySceneType): keyof ActivityFeedbackConfig['phases'] extends infer _ ? 'private' | 'group' | 'channel' : never {\n return sceneType;\n}\n\nfunction resolvePlatformPhaseDefault(\n platform: string,\n phase: ActivityFeedbackPhase,\n): ResolvedActivityFeedbackPhaseConfig {\n const features = PLATFORM_FEATURES[platform] ?? {\n platform,\n supportsReaction: false,\n supportsEdit: false,\n supportsDelete: true,\n supportsTyping: false,\n defaultType: 'message' as const,\n };\n\n if (phase === 'queued') {\n if (features.supportsReaction) {\n return { type: 'reaction', emoji: PHASE_DEFAULT_MESSAGE.queued, autoRemove: true };\n }\n return { type: 'none' };\n }\n\n if (phase === 'thinking') {\n if (features.supportsEdit) {\n return { type: 'message', message: PHASE_DEFAULT_MESSAGE.thinking, autoRemove: true };\n }\n if (features.supportsReaction) {\n return { type: 'reaction', emoji: PHASE_DEFAULT_MESSAGE.queued, autoRemove: true };\n }\n if (features.supportsTyping) {\n return { type: 'typing', autoRemove: true };\n }\n return { type: 'message', message: PHASE_DEFAULT_MESSAGE.thinking, autoRemove: true };\n }\n\n if (phase === 'schedule_start' || phase === 'schedule_finish' || phase === 'schedule_error') {\n return { type: 'message', message: PHASE_DEFAULT_MESSAGE[phase], autoRemove: true };\n }\n\n // active\n // Group-oriented reaction APIs (icqq GROUP_SET_REACTION, etc.) do not work in\n // private chats — fall back to a short status message (classic typingIndicator).\n if (features.defaultType === 'reaction') {\n return { type: 'reaction', emoji: PHASE_DEFAULT_MESSAGE.queued, autoRemove: true };\n }\n if (features.defaultType === 'typing') {\n return { type: 'typing', autoRemove: true };\n }\n if (features.defaultType === 'none') {\n return { type: 'message', message: PHASE_DEFAULT_MESSAGE.active, autoRemove: true };\n }\n return { type: 'message', message: PHASE_DEFAULT_MESSAGE.active, autoRemove: true };\n}\n\nfunction resolvePrivateSceneDefault(\n platform: string,\n phase: ActivityFeedbackPhase,\n): ResolvedActivityFeedbackPhaseConfig {\n const groupDefault = resolvePlatformPhaseDefault(platform, phase);\n if (groupDefault.type !== 'reaction') return groupDefault;\n // Private: reaction → status message (icqq / napcat group-only emoji APIs).\n if (phase === 'queued' || phase === 'active' || phase === 'thinking') {\n return {\n type: 'message',\n message: phase === 'thinking'\n ? PHASE_DEFAULT_MESSAGE.thinking\n : phase === 'queued'\n ? '⏳'\n : PHASE_DEFAULT_MESSAGE.active,\n autoRemove: true,\n };\n }\n return groupDefault;\n}\n\nexport function resolveActivityFeedbackPhaseConfig(\n platform: string,\n endpointConfig: ActivityFeedbackConfig | undefined,\n phase: ActivityFeedbackPhase,\n sceneType: ActivitySceneType,\n): ResolvedActivityFeedbackPhaseConfig {\n if (endpointConfig?.enabled === false) {\n return { type: 'none' };\n }\n\n const sceneCfg = endpointConfig?.phases?.[phase]?.[sceneKey(sceneType)];\n const defaults = sceneType === 'private'\n ? resolvePrivateSceneDefault(platform, phase)\n : resolvePlatformPhaseDefault(platform, phase);\n const merged: ActivityFeedbackPhaseConfig = { ...defaults, ...sceneCfg };\n\n if (merged.type === 'none') {\n return { type: 'none' };\n }\n\n // Private + reaction only when the scene config explicitly asks for it.\n // Otherwise coerce to message (icqq GROUP_SET_REACTION is group-only).\n let type = merged.type ?? defaults.type;\n if (type === 'reaction' && sceneType === 'private' && sceneCfg?.type !== 'reaction') {\n type = 'message';\n }\n\n if (type === 'reaction') {\n return {\n type: 'reaction',\n emoji: merged.emoji ?? defaults.emoji ?? PHASE_DEFAULT_MESSAGE.queued,\n autoRemove: merged.autoRemove ?? true,\n removeDelay: merged.removeDelay,\n platformConfig: merged.platformConfig,\n };\n }\n if (type === 'typing') {\n return {\n type: 'typing',\n autoRemove: merged.autoRemove ?? true,\n removeDelay: merged.removeDelay,\n platformConfig: merged.platformConfig,\n };\n }\n return {\n type: 'message',\n message: merged.message ?? defaults.message ?? PHASE_DEFAULT_MESSAGE[phase],\n autoRemove: merged.autoRemove ?? true,\n removeDelay: merged.removeDelay,\n platformConfig: merged.platformConfig,\n };\n}\n"]}
@@ -19,4 +19,3 @@ export declare function resolveActivityEventTargets(payload: AIEventPayload, sce
19
19
  };
20
20
  /** 将 AI 生命周期事件转为 activity 执行上下文 */
21
21
  export declare function toActivityFeedbackEventContext(payload: AIEventPayload): ActivityFeedbackEventContext | null;
22
- //# sourceMappingURL=event-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-context.js","sourceRoot":"","sources":["../../src/activity-feedback/event-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAcxE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEtE,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAuB,EACvB,SAA4B;IAE5B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,IAAI,cAAc,GAAG,MAAM,CAAC;IAC5B,IAAI,OAA2B,CAAC;IAEhC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;QAC/D,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC;YAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAClF,IACH,CAAC,CAAC,cAAc,IAAI,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;eAC1D,OAAO;eACP,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,cAAc,GAAG,OAAO,CAAC;QAC3B,CAAC;aAAM,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChD,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,uEAAuE;QACvE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrF,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,8BAA8B,CAC5C,OAAuB;IAEvB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,qEAAqE;IACrE,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAEpE,OAAO;QACL,QAAQ;QACR,WAAW;QACX,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS;QACT,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE;YACP,QAAQ;YACR,WAAW;YACX,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"event-context.js","sourceRoot":"","sources":["../../src/activity-feedback/event-context.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypingIndicatorOptions } from '../typing-indicator/index.js';\nimport type { AIEventPayload } from '../ai-event-subscriber.js';\nimport type { ActivitySceneType } from './types.js';\nimport { resolveActivityFeedbackSessionId } from './subagent-prefix.js';\n\n/** 单次 activity phase 操作的归一化上下文(由 AI 事件 payload 解析) */\nexport interface ActivityFeedbackEventContext {\n platform: string;\n endpointKey: string;\n sessionId: string;\n messageId?: string;\n sceneType: ActivitySceneType;\n userId?: string;\n groupId?: string;\n options: TypingIndicatorOptions;\n}\n\nconst SYNTHETIC_SENDER_IDS = new Set(['system', 'cron', 'assistant']);\n\nexport function resolveActivitySceneType(payload: AIEventPayload): ActivitySceneType {\n const scope = payload.scope;\n if (scope === 'group' || scope === 'channel' || scope === 'private') return scope;\n const sceneId = payload.sceneId ?? '';\n if (sceneId.startsWith('group:')) return 'group';\n if (sceneId.startsWith('channel:')) return 'channel';\n return 'private';\n}\n\nexport function resolveActivityEventTargets(\n payload: AIEventPayload,\n sceneType: ActivitySceneType,\n): { userId?: string; groupId?: string } {\n const { sceneId, userId, sessionId } = payload;\n const parts = sessionId.split(':').filter((p) => p.length > 0);\n let resolvedUserId = userId;\n let groupId: string | undefined;\n\n if (sceneType === 'group' || sceneType === 'channel') {\n groupId = sceneId?.replace(/^(group|channel):/, '') || sceneId;\n if (!groupId && parts.length >= 3) groupId = parts[1];\n if (!resolvedUserId && parts.length >= 3) resolvedUserId = parts[parts.length - 1];\n } else {\n if (sceneId?.startsWith('private:')) resolvedUserId = sceneId.slice('private:'.length);\n else if (\n (!resolvedUserId || SYNTHETIC_SENDER_IDS.has(resolvedUserId))\n && sceneId\n && !SYNTHETIC_SENDER_IDS.has(sceneId)\n ) {\n resolvedUserId = sceneId;\n } else if (!resolvedUserId && parts.length >= 2) {\n resolvedUserId = parts.length >= 3 ? parts[parts.length - 1]! : parts[1];\n }\n // 私聊 sceneId 多为会话 channel(Slack D*),与 sender userId 不同,出站需用 channel id\n if (sceneId && !sceneId.startsWith('private:') && !SYNTHETIC_SENDER_IDS.has(sceneId)) {\n groupId = sceneId;\n }\n }\n\n return { userId: resolvedUserId, groupId };\n}\n\n/** 将 AI 生命周期事件转为 activity 执行上下文 */\nexport function toActivityFeedbackEventContext(\n payload: AIEventPayload,\n): ActivityFeedbackEventContext | null {\n const { platform, endpointKey, sessionId } = payload;\n if (!platform || !endpointKey) return null;\n\n const sceneType = resolveActivitySceneType(payload);\n const targets = resolveActivityEventTargets(payload, sceneType);\n // Subagent shares the IM session but uses an isolated indicator key.\n const activitySessionId = resolveActivityFeedbackSessionId(payload);\n\n return {\n platform,\n endpointKey,\n sessionId: activitySessionId,\n messageId: payload.messageId,\n sceneType,\n userId: targets.userId,\n groupId: targets.groupId,\n options: {\n platform,\n endpointKey,\n sessionId: activitySessionId,\n messageId: payload.messageId,\n sceneType,\n userId: targets.userId,\n groupId: targets.groupId,\n },\n };\n}\n"]}
@@ -8,4 +8,3 @@ export { resolveSubagentActivityTag, formatSubagentActivityPrefix, withSubagentA
8
8
  export { ActivityFeedbackManager, } from './manager.js';
9
9
  export { PLATFORM_FEATURES, buildTypingSendContent, enableActivityFeedbackForBot, isGenericActivityFeedbackManager, } from './adapter-integration.js';
10
10
  export type { PlatformFeatures, EndpointWithActivityFeedback, ActivityFeedbackSendPort, PlatformActivityFeedbackManager, PlatformActivityFeedbackStartOptions, BotActivityFeedbackManager, } from './adapter-integration.js';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/activity-feedback/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,EACnC,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/activity-feedback/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,EACnC,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,0BAA0B,CAAC","sourcesContent":["export type {\n ActivityFeedbackType,\n ActivityFeedbackPhase,\n ActivitySceneType,\n ActivityFeedbackPhaseConfig,\n ActivityFeedbackScenePhases,\n ActivityFeedbackConfig,\n ResolvedActivityFeedbackPhaseConfig,\n} from './types.js';\nexport { toTypingIndicatorConfig } from './types.js';\n\nexport {\n resolveActivityFeedbackPhaseConfig,\n} from './config-resolver.js';\nexport { isActivityFeedbackEnabled } from './schedule-guard.js';\nexport type { ActivityFeedbackGatePhase } from './schedule-guard.js';\n\nexport {\n toActivityFeedbackEventContext,\n resolveActivitySceneType,\n resolveActivityEventTargets,\n type ActivityFeedbackEventContext,\n} from './event-context.js';\n\nexport {\n resolveSubagentActivityTag,\n formatSubagentActivityPrefix,\n withSubagentActivityPrefix,\n applySubagentActivityPrefixToConfig,\n resolveActivityFeedbackSessionId,\n} from './subagent-prefix.js';\n\nexport {\n ActivityFeedbackManager,\n} from './manager.js';\n\nexport {\n PLATFORM_FEATURES,\n buildTypingSendContent,\n enableActivityFeedbackForBot,\n isGenericActivityFeedbackManager,\n} from './adapter-integration.js';\nexport type {\n PlatformFeatures,\n EndpointWithActivityFeedback,\n ActivityFeedbackSendPort,\n PlatformActivityFeedbackManager,\n PlatformActivityFeedbackStartOptions,\n BotActivityFeedbackManager,\n} from './adapter-integration.js';\n"]}
@@ -10,4 +10,3 @@ export declare class ActivityFeedbackManager {
10
10
  stopAll(): Promise<void>;
11
11
  dispose(): Promise<void>;
12
12
  }
13
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/activity-feedback/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/activity-feedback/manager.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TypingIndicatorManager,\n type TypingIndicator,\n type TypingIndicatorConfig,\n type TypingIndicatorOptions,\n} from '../typing-indicator/index.js';\nimport { type ActivityFeedbackPhase, toTypingIndicatorConfig, type ResolvedActivityFeedbackPhaseConfig } from './types.js';\nfunction phaseSessionId(sessionId: string, phase: ActivityFeedbackPhase): string {\n return `${sessionId}::phase:${phase}`;\n}\n\nfunction reactionPhaseSessionId(\n sessionId: string,\n phase: ActivityFeedbackPhase,\n messageId: string,\n): string {\n return `${phaseSessionId(sessionId, phase)}::message:${messageId}`;\n}\n\nfunction withPhase(\n options: TypingIndicatorOptions,\n phase: ActivityFeedbackPhase,\n messageScoped = false,\n): TypingIndicatorOptions {\n const sessionId = options.sessionId ?? options.messageId ?? '';\n return {\n ...options,\n sessionId: messageScoped && options.messageId\n ? reactionPhaseSessionId(sessionId, phase, options.messageId)\n : phaseSessionId(sessionId, phase),\n };\n}\n\nexport class ActivityFeedbackManager {\n private readonly inner = new TypingIndicatorManager();\n\n registerAdapter(...args: Parameters<TypingIndicatorManager['registerAdapter']>): void {\n this.inner.registerAdapter(...args);\n }\n\n getAdapter(platform: string) {\n return this.inner.getAdapter(platform);\n }\n\n async start(\n phase: ActivityFeedbackPhase,\n options: TypingIndicatorOptions,\n config: ResolvedActivityFeedbackPhaseConfig,\n ): Promise<TypingIndicator> {\n const typingConfig = toTypingIndicatorConfig(config);\n const adapter = this.inner.getAdapter(options.platform);\n const resolvedType = adapter?.supportedTypes.includes(config.type)\n ? config.type\n : adapter?.supportedTypes[0];\n return this.inner.start(\n withPhase(options, phase, resolvedType === 'reaction'),\n typingConfig,\n );\n }\n\n async stop(phase: ActivityFeedbackPhase, options: TypingIndicatorOptions): Promise<void> {\n if (options.messageId) {\n await this.inner.stop(withPhase(options, phase, true));\n }\n return this.inner.stop(withPhase(options, phase));\n }\n\n getActiveIndicator(\n phase: ActivityFeedbackPhase,\n options: TypingIndicatorOptions,\n ): TypingIndicator | undefined {\n return (options.messageId\n ? this.inner.getActiveIndicator(withPhase(options, phase, true))\n : undefined)\n ?? this.inner.getActiveIndicator(withPhase(options, phase));\n }\n\n async stopAll(): Promise<void> {\n return this.inner.stopAll();\n }\n\n async dispose(): Promise<void> {\n return this.inner.dispose();\n }\n}\n"]}
@@ -5,4 +5,3 @@ export type ActivityFeedbackGatePhase = 'queued' | 'thinking' | 'active' | 'sche
5
5
  * Schedule turn:仅 scheduleActivityFeedback===true → schedule 三相位。
6
6
  */
7
7
  export declare function isActivityFeedbackEnabled(payload: AIEventPayload, phase: ActivityFeedbackGatePhase): boolean;
8
- //# sourceMappingURL=schedule-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-guard.js","sourceRoot":"","sources":["../../src/activity-feedback/schedule-guard.ts"],"names":[],"mappings":"AAUA,SAAS,QAAQ,CAAC,OAAuB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,IAA6B;IACnD,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI;WAC5B,IAAI,CAAC,eAAe,KAAK,IAAI;WAC7B,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAuB,EACvB,KAAgC;IAEhC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC;IAE9D,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC5F,OAAO,YAAY,IAAI,UAAU,CAAC;IACpC,CAAC;IAED,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"schedule-guard.js","sourceRoot":"","sources":["../../src/activity-feedback/schedule-guard.ts"],"names":[],"mappings":"AAUA,SAAS,QAAQ,CAAC,OAAuB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,IAA6B;IACnD,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI;WAC5B,IAAI,CAAC,eAAe,KAAK,IAAI;WAC7B,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAuB,EACvB,KAAgC;IAEhC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC;IAE9D,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC5F,OAAO,YAAY,IAAI,UAAU,CAAC;IACpC,CAAC;IAED,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import type { AIEventPayload } from '../ai-event-subscriber.js';\n\nexport type ActivityFeedbackGatePhase =\n | 'queued'\n | 'thinking'\n | 'active'\n | 'schedule_start'\n | 'schedule_finish'\n | 'schedule_error';\n\nfunction readHook(payload: AIEventPayload): Record<string, unknown> {\n const ctx = payload.hookContext;\n return ctx && typeof ctx === 'object' ? ctx as Record<string, unknown> : {};\n}\n\nfunction isScheduleTurn(hook: Record<string, unknown>): boolean {\n return hook.scheduleJobId != null\n || hook.schedulePreview === true\n || hook.scheduleCreatedBy != null;\n}\n\n/**\n * 手动 turn:activityFeedbackEligible===true → queued/thinking/active;\n * Schedule turn:仅 scheduleActivityFeedback===true → schedule 三相位。\n */\nexport function isActivityFeedbackEnabled(\n payload: AIEventPayload,\n phase: ActivityFeedbackGatePhase,\n): boolean {\n const hook = readHook(payload);\n const scheduleTurn = isScheduleTurn(hook);\n const scheduleAf = hook.scheduleActivityFeedback === true;\n const manualEligible = hook.activityFeedbackEligible === true;\n\n if (phase === 'schedule_start' || phase === 'schedule_finish' || phase === 'schedule_error') {\n return scheduleTurn && scheduleAf;\n }\n\n if (scheduleTurn) return false;\n return manualEligible;\n}\n"]}
@@ -14,4 +14,3 @@ export declare function applySubagentActivityPrefixToConfig(config: ResolvedActi
14
14
  * appear in the same IM session without stomping each other.
15
15
  */
16
16
  export declare function resolveActivityFeedbackSessionId(payload: Pick<AIEventPayload, 'source' | 'agentId' | 'sessionId' | 'taskId'>): string;
17
- //# sourceMappingURL=subagent-prefix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-prefix.js","sourceRoot":"","sources":["../../src/activity-feedback/subagent-prefix.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmD;IAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,CAAC;IAC5B,sEAAsE;IACtE,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACzD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,GAAW;IACtD,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,OAAmD;IAEnD,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,mCAAmC,CACjD,MAA2C,EAC3C,OAAmD;IAEnD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAChE,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAA4E;IAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAC/B,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QACtE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;IACX,OAAO,GAAG,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"subagent-prefix.js","sourceRoot":"","sources":["../../src/activity-feedback/subagent-prefix.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmD;IAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,CAAC;IAC5B,sEAAsE;IACtE,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACzD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,GAAW;IACtD,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,OAAmD;IAEnD,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,mCAAmC,CACjD,MAA2C,EAC3C,OAAmD;IAEnD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAChE,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAA4E;IAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAC/B,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QACtE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;IACX,OAAO,GAAG,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC","sourcesContent":["import type { AIEventPayload } from '../ai-event-subscriber.js';\nimport type { ResolvedActivityFeedbackPhaseConfig } from './types.js';\n\n/**\n * Subagent activity feedback tag (e.g. researcher).\n * Prefer ai.agents / agents/<name>/agent.json name; fall back to role; never use long task labels.\n */\nexport function resolveSubagentActivityTag(\n payload: Pick<AIEventPayload, 'source' | 'agentId'>,\n): string | undefined {\n if (payload.source !== 'subagent') return undefined;\n const raw = typeof payload.agentId === 'string' ? payload.agentId.trim() : '';\n if (!raw) return 'subagent';\n // Keep tags short so IM prefixes stay readable ([researcher] 思考中...).\n if (raw.length > 32 || /\\s/.test(raw)) return 'subagent';\n return raw;\n}\n\nexport function formatSubagentActivityPrefix(tag: string): string {\n return `[${tag}]`;\n}\n\nexport function withSubagentActivityPrefix(\n message: string,\n payload: Pick<AIEventPayload, 'source' | 'agentId'>,\n): string {\n const tag = resolveSubagentActivityTag(payload);\n if (!tag) return message;\n const prefix = formatSubagentActivityPrefix(tag);\n const text = message.trim();\n if (!text) return prefix;\n if (text.startsWith(prefix)) return text;\n return `${prefix} ${text}`;\n}\n\n/** Prefix message-type phase configs for subagent status bubbles. */\nexport function applySubagentActivityPrefixToConfig(\n config: ResolvedActivityFeedbackPhaseConfig,\n payload: Pick<AIEventPayload, 'source' | 'agentId'>,\n): ResolvedActivityFeedbackPhaseConfig {\n if (config.type !== 'message' || !config.message) return config;\n const message = withSubagentActivityPrefix(config.message, payload);\n if (message === config.message) return config;\n return { ...config, message };\n}\n\n/**\n * Isolate subagent typing indicators from the parent turn so both can\n * appear in the same IM session without stomping each other.\n */\nexport function resolveActivityFeedbackSessionId(\n payload: Pick<AIEventPayload, 'source' | 'agentId' | 'sessionId' | 'taskId'>,\n): string {\n const base = payload.sessionId;\n const tag = resolveSubagentActivityTag(payload);\n if (!tag) return base;\n const task = typeof payload.taskId === 'string' && payload.taskId.trim()\n ? payload.taskId.trim().slice(0, 12)\n : 'task';\n return `${base}::agent:${tag}:${task}`;\n}\n"]}
@@ -8,4 +8,3 @@ export interface TurnActivityProjectorOptions {
8
8
  }
9
9
  /** Projects canonical TurnEvents into the shared IM activity lifecycle. */
10
10
  export declare function createTurnActivityProjector(options: TurnActivityProjectorOptions): (event: TurnEvent) => void;
11
- //# sourceMappingURL=turn-event-projector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-event-projector.js","sourceRoot":"","sources":["../../src/activity-feedback/turn-event-projector.ts"],"names":[],"mappings":"AAUA,2EAA2E;AAC3E,MAAM,UAAU,2BAA2B,CAAC,OAAqC;IAE/E,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC9B,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAChC,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,aAAa;eACzB,KAAK,CAAC,IAAI,KAAK,aAAa;eAC5B,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAClC,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAChC,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;gBAChE,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBACrC,GAAG,OAAO;gBACV,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,OAAO,EAAE,QAAQ,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,MAAM;aAC9D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO;QACrD,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC;QAClC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB;gBACpE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,KAAK;gBACjE,CAAC,CAAC,mBAAmB,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"turn-event-projector.js","sourceRoot":"","sources":["../../src/activity-feedback/turn-event-projector.ts"],"names":[],"mappings":"AAUA,2EAA2E;AAC3E,MAAM,UAAU,2BAA2B,CAAC,OAAqC;IAE/E,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC9B,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAChC,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,aAAa;eACzB,KAAK,CAAC,IAAI,KAAK,aAAa;eAC5B,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAClC,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAChC,GAAG,OAAO;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;gBAChE,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBACrC,GAAG,OAAO;gBACV,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,OAAO,EAAE,QAAQ,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,MAAM;aAC9D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO;QACrD,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC;QAClC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB;gBACpE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,KAAK;gBACjE,CAAC,CAAC,mBAAmB,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { TurnEvent } from '../event/turn-event.js';\nimport type { AIEventName, AIEventPayload } from '../ai-event-subscriber.js';\n\nexport interface TurnActivityProjectorOptions {\n readonly payload: AIEventPayload;\n readonly publish: (event: AIEventName, payload: AIEventPayload) => void;\n readonly thinkingPreview: boolean;\n readonly thinkingMaxLength: number;\n}\n\n/** Projects canonical TurnEvents into the shared IM activity lifecycle. */\nexport function createTurnActivityProjector(options: TurnActivityProjectorOptions):\n(event: TurnEvent) => void {\n let thinkingSent = false;\n let accumulatedThinking = '';\n return (event) => {\n const payload = options.payload;\n if (event.type === 'tool_call') {\n options.publish('ai.tool.call', {\n ...payload,\n toolName: event.toolName,\n args: event.args,\n });\n return;\n }\n if (event.type === 'tool_result') {\n options.publish('ai.tool.result', {\n ...payload,\n toolName: event.toolName,\n result: event.output,\n status: 'ok',\n });\n return;\n }\n if (\n event.type === 'tool_failed'\n || event.type === 'tool_denied'\n || event.type === 'tool_cancelled'\n ) {\n options.publish('ai.tool.result', {\n ...payload,\n toolName: event.toolName,\n error: event.type === 'tool_failed' ? event.error : event.reason,\n status: 'error',\n });\n return;\n }\n if (event.type === 'iteration_start' && event.iteration > 1) {\n options.publish('ai.processing.start', {\n ...payload,\n iterations: event.iteration,\n content: `处理中 [${event.iteration}/${event.maxIterations}]...`,\n });\n return;\n }\n if (event.type !== 'thinking' || !event.text) return;\n accumulatedThinking += event.text;\n if (options.thinkingPreview) {\n const preview = accumulatedThinking.length > options.thinkingMaxLength\n ? accumulatedThinking.slice(0, options.thinkingMaxLength) + '...'\n : accumulatedThinking;\n options.publish('ai.thinking', { ...payload, thinking: preview });\n } else if (!thinkingSent) {\n thinkingSent = true;\n options.publish('ai.thinking', { ...payload, thinking: event.text });\n }\n };\n}\n"]}
@@ -21,4 +21,3 @@ export interface ActivityFeedbackConfig {
21
21
  }
22
22
  export type ResolvedActivityFeedbackPhaseConfig = Required<Pick<ActivityFeedbackPhaseConfig, 'type'>> & ActivityFeedbackPhaseConfig;
23
23
  export declare function toTypingIndicatorConfig(phase: ResolvedActivityFeedbackPhaseConfig): Partial<TypingIndicatorConfig>;
24
- //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/activity-feedback/types.ts"],"names":[],"mappings":"AAoCA,MAAM,UAAU,uBAAuB,CACrC,KAA0C;IAE1C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/activity-feedback/types.ts"],"names":[],"mappings":"AAoCA,MAAM,UAAU,uBAAuB,CACrC,KAA0C;IAE1C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC","sourcesContent":["import type { TypingIndicatorConfig, TypingIndicatorType } from '../typing-indicator/index.js';\n\nexport type ActivityFeedbackType = TypingIndicatorType;\nexport type ActivityFeedbackPhase =\n | 'queued'\n | 'active'\n | 'thinking'\n | 'schedule_start'\n | 'schedule_finish'\n | 'schedule_error';\nexport type ActivitySceneType = 'private' | 'group' | 'channel';\n\nexport interface ActivityFeedbackPhaseConfig {\n type?: ActivityFeedbackType;\n emoji?: string;\n message?: string;\n autoRemove?: boolean;\n removeDelay?: number;\n platformConfig?: Record<string, unknown>;\n}\n\nexport interface ActivityFeedbackScenePhases {\n private?: ActivityFeedbackPhaseConfig;\n group?: ActivityFeedbackPhaseConfig;\n channel?: ActivityFeedbackPhaseConfig;\n}\n\nexport interface ActivityFeedbackConfig {\n enabled?: boolean;\n phases?: Partial<Record<ActivityFeedbackPhase, ActivityFeedbackScenePhases>>;\n}\n\nexport type ResolvedActivityFeedbackPhaseConfig = Required<\n Pick<ActivityFeedbackPhaseConfig, 'type'>\n> & ActivityFeedbackPhaseConfig;\n\nexport function toTypingIndicatorConfig(\n phase: ResolvedActivityFeedbackPhaseConfig,\n): Partial<TypingIndicatorConfig> {\n return {\n type: phase.type,\n emoji: phase.emoji,\n message: phase.message,\n autoRemove: phase.autoRemove,\n removeDelay: phase.removeDelay,\n platformConfig: phase.platformConfig,\n };\n}\n"]}
@@ -12,4 +12,3 @@ export interface AISessionCompactPayload extends AIEventPayload {
12
12
  export declare function createAIHookBusPayload(event: AIHookEvent, source: AIEventPayload['source'], agentId?: string): AIEventPayload;
13
13
  export declare function isAISessionNewPayload(payload: AIEventPayload): payload is AISessionNewPayload;
14
14
  export declare function isAISessionCompactPayload(payload: AIEventPayload): payload is AISessionCompactPayload;
15
- //# sourceMappingURL=ai-event-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-event-bus.js","sourceRoot":"","sources":["../src/ai-event-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-event-bus.js","sourceRoot":"","sources":["../src/ai-event-bus.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Message, commMessageFromHookContext, resolveIMSessionId, resolveIMSessionIdFromMessage } from '@zhin.js/core';\nimport type { AIHookEvent } from './resource-hub/types.js';\nimport type { AIEventPayload } from './ai-event-contract.js';\n\nexport interface AISessionNewPayload extends AIEventPayload {\n reason: 'first_message';\n}\n\nexport interface AISessionCompactPayload extends AIEventPayload {\n compactedCount: number;\n savedTokens: number;\n totalTokensBefore: number;\n totalTokensAfter: number;\n}\n\nfunction resolveCommMessage(event: AIHookEvent): Message<any> | undefined {\n return commMessageFromHookContext(event.context);\n}\n\nfunction resolveSessionId(event: AIHookEvent): string {\n if (event.sessionId) return event.sessionId;\n const commMessage = resolveCommMessage(event);\n if (commMessage) {\n return resolveIMSessionIdFromMessage(commMessage);\n }\n return resolveIMSessionId({\n platform: 'system',\n endpointKey: 'default',\n kind: 'private',\n sceneId: 'unknown',\n });\n}\n\nexport function createAIHookBusPayload(\n event: AIHookEvent,\n source: AIEventPayload['source'],\n agentId?: string,\n): AIEventPayload {\n const commMessage = resolveCommMessage(event);\n return {\n sessionId: resolveSessionId(event),\n source,\n hookType: event.type,\n hookAction: event.action,\n hookContext: event.context,\n messages: event.messages,\n agentId,\n platform: commMessage\n ? String(commMessage.clientAdapter ?? commMessage.conversation.endpoint.adapter)\n : undefined,\n endpointKey: commMessage?.endpointId ?? commMessage?.conversation.endpoint.id,\n userId: commMessage?.sender?.id,\n sceneId: commMessage?.conversation.id,\n messageId: typeof event.context.messageId === 'string' ? event.context.messageId : commMessage?.id,\n content: typeof event.context.content === 'string' ? event.context.content : undefined,\n toolName: typeof event.context.toolName === 'string' ? event.context.toolName : undefined,\n args: typeof event.context.args === 'object' && event.context.args !== null\n ? event.context.args as Record<string, unknown>\n : undefined,\n result: event.context.result,\n error: typeof event.context.error === 'string' ? event.context.error : undefined,\n reply: event.messages[0],\n compactedCount: typeof event.context.compactedCount === 'number' ? event.context.compactedCount : undefined,\n savedTokens: typeof event.context.savedTokens === 'number' ? event.context.savedTokens : undefined,\n totalTokensBefore: typeof event.context.totalTokensBefore === 'number' ? event.context.totalTokensBefore : undefined,\n totalTokensAfter: typeof event.context.totalTokensAfter === 'number' ? event.context.totalTokensAfter : undefined,\n };\n}\n\nexport function isAISessionNewPayload(payload: AIEventPayload): payload is AISessionNewPayload {\n return payload.reason === 'first_message';\n}\n\nexport function isAISessionCompactPayload(payload: AIEventPayload): payload is AISessionCompactPayload {\n return typeof payload.compactedCount === 'number'\n && typeof payload.savedTokens === 'number'\n && typeof payload.totalTokensBefore === 'number'\n && typeof payload.totalTokensAfter === 'number';\n}\n"]}
@@ -40,4 +40,3 @@ export interface AIEventPayload {
40
40
  totalTokensAfter?: number;
41
41
  keepTyping?: boolean;
42
42
  }
43
- //# sourceMappingURL=ai-event-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-event-contract.js","sourceRoot":"","sources":["../src/ai-event-contract.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ai-event-contract.js","sourceRoot":"","sources":["../src/ai-event-contract.ts"],"names":[],"mappings":"","sourcesContent":["/** Agent-owned lifecycle event contract shared by Runtime publishers and subscribers. */\nexport type AIEventName =\n | 'ai.processing.start'\n | 'ai.processing.finish'\n | 'ai.processing.error'\n | 'ai.agent.start'\n | 'ai.agent.finish'\n | 'ai.thinking'\n | 'ai.tool.call'\n | 'ai.tool.result'\n | 'ai.response'\n | 'ai.typing.start'\n | 'ai.typing.stop'\n | 'ai.activity.queued.start'\n | 'ai.activity.queued.clear'\n | 'ai.subagent.spawn'\n | 'ai.subagent.start'\n | 'ai.subagent.finish'\n | 'ai.deferred.start'\n | 'ai.deferred.finish'\n | 'ai.mcp.connect.start'\n | 'ai.mcp.connect.finish'\n | 'ai.mcp.connect.error'\n | 'ai.session.new'\n | 'ai.session.compact'\n | 'ai.hook'\n | 'schedule.start'\n | 'schedule.finish'\n | 'schedule.error';\n\nexport type AIEventSource = 'zhin-agent' | 'subagent' | 'ai-hook' | 'orchestrator-hook';\nexport type AIEventMode = 'text' | 'multimodal';\nexport type AIEventPath = 'chat' | 'fast' | 'agent' | 'multimodal' | 'rate_limited';\n\nexport interface AIEventPayload {\n sessionId: string;\n source: AIEventSource;\n mode?: AIEventMode;\n path?: AIEventPath;\n userId?: string;\n platform?: string;\n endpointKey?: string;\n sceneId?: string;\n messageId?: string;\n scope?: string;\n content?: string;\n reply?: string;\n thinking?: string;\n toolName?: string;\n args?: Record<string, unknown>;\n result?: unknown;\n error?: string;\n model?: string;\n iterations?: number;\n reason?: string;\n taskId?: string;\n label?: string;\n status?: 'ok' | 'partial' | 'error';\n serverName?: string;\n loadedToolNames?: string[];\n hookType?: string;\n hookAction?: string;\n hookContext?: Record<string, unknown>;\n messages?: string[];\n agentId?: string;\n compactedCount?: number;\n savedTokens?: number;\n totalTokensBefore?: number;\n totalTokensAfter?: number;\n keepTyping?: boolean;\n}\n"]}
@@ -48,4 +48,3 @@ export interface AIEventTarget {
48
48
  * Does **not** restore Plugin ALS — safe for Plugin Runtime setup.
49
49
  */
50
50
  export declare function subscribeAIEventsOnTarget(target: AIEventTarget, handlers: AIEventHandlers, filter?: AIEventFilter): () => void;
51
- //# sourceMappingURL=ai-event-subscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-event-subscriber.js","sourceRoot":"","sources":["../src/ai-event-subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-event-subscriber.js","sourceRoot":"","sources":["../src/ai-event-subscriber.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AIEventName, AIEventPayload, AIEventSource } from './ai-event-contract.js';\nexport type { AIEventName, AIEventPayload } from './ai-event-contract.js';\n\nexport interface AIEventFilter {\n sessionId?: string;\n platform?: string;\n endpointKey?: string;\n sceneId?: string;\n source?: AIEventSource;\n}\n\nexport interface AIEventHandlers {\n onAny?: (event: AIEventName, payload: AIEventPayload) => void;\n onProcessingStart?: (payload: AIEventPayload) => void;\n onProcessingFinish?: (payload: AIEventPayload) => void;\n onProcessingError?: (payload: AIEventPayload) => void;\n onAgentStart?: (payload: AIEventPayload) => void;\n onAgentFinish?: (payload: AIEventPayload) => void;\n onThinking?: (payload: AIEventPayload) => void;\n onToolCall?: (payload: AIEventPayload) => void;\n onToolResult?: (payload: AIEventPayload) => void;\n onResponse?: (payload: AIEventPayload) => void;\n onTypingStart?: (payload: AIEventPayload) => void;\n onTypingStop?: (payload: AIEventPayload) => void;\n onQueuedStart?: (payload: AIEventPayload) => void;\n onQueuedClear?: (payload: AIEventPayload) => void;\n onSubagentSpawn?: (payload: AIEventPayload) => void;\n onSubagentStart?: (payload: AIEventPayload) => void;\n onSubagentFinish?: (payload: AIEventPayload) => void;\n onDeferredStart?: (payload: AIEventPayload) => void;\n onDeferredFinish?: (payload: AIEventPayload) => void;\n onMcpConnectStart?: (payload: AIEventPayload) => void;\n onMcpConnectFinish?: (payload: AIEventPayload) => void;\n onMcpConnectError?: (payload: AIEventPayload) => void;\n onSessionNew?: (payload: AIEventPayload) => void;\n onSessionCompact?: (payload: AIEventPayload) => void;\n onHook?: (payload: AIEventPayload) => void;\n onScheduleStart?: (payload: AIEventPayload) => void;\n onScheduleFinish?: (payload: AIEventPayload) => void;\n onScheduleError?: (payload: AIEventPayload) => void;\n}\n\nconst EVENT_HANDLER_MAP: Record<AIEventName, keyof AIEventHandlers | undefined> = {\n 'ai.processing.start': 'onProcessingStart',\n 'ai.processing.finish': 'onProcessingFinish',\n 'ai.processing.error': 'onProcessingError',\n 'ai.agent.start': 'onAgentStart',\n 'ai.agent.finish': 'onAgentFinish',\n 'ai.thinking': 'onThinking',\n 'ai.tool.call': 'onToolCall',\n 'ai.tool.result': 'onToolResult',\n 'ai.response': 'onResponse',\n 'ai.typing.start': 'onTypingStart',\n 'ai.typing.stop': 'onTypingStop',\n 'ai.activity.queued.start': 'onQueuedStart',\n 'ai.activity.queued.clear': 'onQueuedClear',\n 'ai.subagent.spawn': 'onSubagentSpawn',\n 'ai.subagent.start': 'onSubagentStart',\n 'ai.subagent.finish': 'onSubagentFinish',\n 'ai.deferred.start': 'onDeferredStart',\n 'ai.deferred.finish': 'onDeferredFinish',\n 'ai.mcp.connect.start': 'onMcpConnectStart',\n 'ai.mcp.connect.finish': 'onMcpConnectFinish',\n 'ai.mcp.connect.error': 'onMcpConnectError',\n 'ai.session.new': 'onSessionNew',\n 'ai.session.compact': 'onSessionCompact',\n 'ai.hook': 'onHook',\n 'schedule.start': 'onScheduleStart',\n 'schedule.finish': 'onScheduleFinish',\n 'schedule.error': 'onScheduleError',\n};\n\nexport const AI_EVENT_NAMES = Object.keys(EVENT_HANDLER_MAP) as AIEventName[];\n\nfunction matchesFilter(payload: AIEventPayload, filter?: AIEventFilter): boolean {\n if (!filter) return true;\n if (filter.sessionId && payload.sessionId !== filter.sessionId) return false;\n if (filter.platform && payload.platform !== filter.platform) return false;\n if (filter.endpointKey && payload.endpointKey !== filter.endpointKey) return false;\n if (filter.sceneId && payload.sceneId !== filter.sceneId) return false;\n if (filter.source && payload.source !== filter.source) return false;\n return true;\n}\n\n/** Plugin-agnostic on/off target (no AsyncLocalStorage). */\nexport interface AIEventTarget {\n on(event: string, listener: (payload: AIEventPayload) => void | Promise<void>): unknown;\n off(event: string, listener: (payload: AIEventPayload) => void | Promise<void>): unknown;\n}\n\nfunction invokeHandlers(\n eventName: AIEventName,\n payload: AIEventPayload,\n handlers: AIEventHandlers,\n): Promise<void> {\n return (async () => {\n handlers.onAny?.(eventName, payload);\n const handlerName = EVENT_HANDLER_MAP[eventName];\n const handler = handlerName ? handlers[handlerName] : undefined;\n if (typeof handler === 'function') {\n await (handler as (payload: AIEventPayload) => void | Promise<void>)(payload);\n }\n })();\n}\n\n/**\n * Subscribe AI lifecycle handlers on any `{ on, off }` target.\n * Does **not** restore Plugin ALS — safe for Plugin Runtime setup.\n */\nexport function subscribeAIEventsOnTarget(\n target: AIEventTarget,\n handlers: AIEventHandlers,\n filter?: AIEventFilter,\n): () => void {\n const disposers = AI_EVENT_NAMES.map((eventName) => {\n const listener = (payload: AIEventPayload) => {\n if (!matchesFilter(payload, filter)) return;\n return invokeHandlers(eventName, payload, handlers);\n };\n target.on(eventName, listener);\n return () => {\n target.off(eventName, listener);\n };\n });\n return () => {\n for (const dispose of disposers) dispose();\n };\n}\n"]}
@@ -15,4 +15,3 @@ export declare class AIHookRuntimeBus {
15
15
  }
16
16
  export declare const aiHookRuntimeBus: AIHookRuntimeBus;
17
17
  export {};
18
- //# sourceMappingURL=ai-hook-runtime-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-hook-runtime-bus.js","sourceRoot":"","sources":["../src/ai-hook-runtime-bus.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEvE,EAAE,CAAC,KAAa,EAAE,QAA2B;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAA2B;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAAuB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QACnC,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"ai-hook-runtime-bus.js","sourceRoot":"","sources":["../src/ai-hook-runtime-bus.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEvE,EAAE,CAAC,KAAa,EAAE,QAA2B;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAA2B;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAAuB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QACnC,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC","sourcesContent":["import type { AIEventPayload } from './ai-event-contract.js';\n\ntype AIHookBusListener = (payload: AIEventPayload) => void;\n\n/**\n * Runtime AI hook event bus.\n *\n * `emitAIHookBusEvent` fans out here so Runtime plugins can observe hooks\n * without a classic host Plugin.\n */\nexport class AIHookRuntimeBus {\n private readonly listeners = new Map<string, Set<AIHookBusListener>>();\n\n on(event: string, listener: AIHookBusListener): this {\n let set = this.listeners.get(event);\n if (!set) {\n set = new Set();\n this.listeners.set(event, set);\n }\n set.add(listener);\n return this;\n }\n\n off(event: string, listener: AIHookBusListener): this {\n this.listeners.get(event)?.delete(listener);\n return this;\n }\n\n emit(event: string, payload: AIEventPayload): void {\n const set = this.listeners.get(event);\n if (!set || set.size === 0) return;\n for (const listener of set) {\n try {\n listener(payload);\n } catch {\n // Listener errors must not break the Agent emit path.\n }\n }\n }\n\n clear(): void {\n this.listeners.clear();\n }\n}\n\nexport const aiHookRuntimeBus = new AIHookRuntimeBus();\n"]}
@@ -28,4 +28,3 @@ export interface BootstrapAssistantHomeResult {
28
28
  backend: HaHomeBackend | null;
29
29
  }
30
30
  export declare function bootstrapAssistantHome(options: BootstrapAssistantHomeOptions): Promise<BootstrapAssistantHomeResult>;
31
- //# sourceMappingURL=bootstrap-assistant-home.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-assistant-home.js","sourceRoot":"","sources":["../../src/assistant/bootstrap-assistant-home.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-assistant-home.js","sourceRoot":"","sources":["../../src/assistant/bootstrap-assistant-home.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * bootstrapAssistantHome — Plugin Runtime 可注入装配(无 getPlugin)\n */\nimport type { AIConfig } from '@zhin.js/ai';\nimport {\n resolveAssistantHomeConfig,\n type AssistantHomeConfig,\n} from './home-config.js';\nimport { HaHomeBackend } from './domains/ha-home-backend.js';\nimport { HomeFacade } from './home-facade.js';\nimport { createHomeTools, type HomeToolRegistration } from './home-tools.js';\nimport {\n HomeStateWatch,\n buildWatchEntityMap,\n buildWsUrl,\n} from './domains/home-state-watch.js';\nimport { loadAssistantProfileFile, mergeProfileDeviceAliases } from './profile-loader.js';\nimport { validateHomeMcpServer } from './home-mcp-bridge.js';\nimport type { JobNotify } from './types.js';\nimport {\n resolveEffectiveNotify,\n parseJobNotify,\n type NotificationRouter,\n} from './notification-router.js';\n\nexport interface BootstrapAssistantHomeOptions {\n homeRaw?: AssistantHomeConfig;\n /** assistant.profile for device alias merge */\n profile?: import('./profile-types.js').AssistantProfileConfig;\n ai?: AIConfig;\n projectRoot: string;\n notificationRouter: NotificationRouter;\n /** assistant.defaults.notify — required for watch */\n defaultNotify?: JobNotify;\n /** Assign after backend created so JobNotify channel:ha works */\n bindCallHaService?: (fn: (service: string, target?: string, data?: unknown) => Promise<void>) => void;\n log?: (payload: Record<string, string | number | boolean | null | undefined>) => void;\n}\n\nexport interface BootstrapAssistantHomeResult {\n tools: readonly HomeToolRegistration[];\n dispose: () => void;\n homeActive: boolean;\n watchActive: boolean;\n backend: HaHomeBackend | null;\n}\n\nfunction isDeliverableImNotify(notify: JobNotify | undefined): notify is Extract<JobNotify, { channel: 'im' }> {\n if (!notify || notify.channel !== 'im') return false;\n const scene = notify.target?.scene;\n return Boolean(scene?.platform && scene.endpointKey && scene.sceneId && scene.kind);\n}\n\nexport async function bootstrapAssistantHome(\n options: BootstrapAssistantHomeOptions,\n): Promise<BootstrapAssistantHomeResult> {\n const log = options.log ?? ((p) => { /* noop */ void p; });\n const empty: BootstrapAssistantHomeResult = {\n tools: [],\n dispose: () => {},\n homeActive: false,\n watchActive: false,\n backend: null,\n };\n\n if (options.homeRaw?.enabled !== true) return empty;\n if (!options.homeRaw.restUrl?.trim()) {\n throw new TypeError('assistant.home.restUrl is required when Home is enabled');\n }\n if (!options.homeRaw.restToken?.trim()) {\n throw new TypeError('assistant.home.restToken is required when Home is enabled');\n }\n const profile = await loadAssistantProfileFile(options.projectRoot, options.profile);\n const homeCfg = resolveAssistantHomeConfig({\n ...options.homeRaw,\n aliases: mergeProfileDeviceAliases(profile, options.homeRaw?.aliases),\n });\n\n const mcpWarn = validateHomeMcpServer(homeCfg, options.ai);\n if (mcpWarn) log({ assistant_home_mcp: mcpWarn });\n\n const backend = new HaHomeBackend(homeCfg);\n options.bindCallHaService?.((service, target, data) =>\n backend.callHaNotifyService(service, target, data),\n );\n\n const facade = new HomeFacade({ backend, policy: homeCfg.policy });\n const tools = createHomeTools({ facade });\n\n let watch: HomeStateWatch | undefined;\n let watchActive = false;\n const watchAliases = homeCfg.watch;\n if (watchAliases.length > 0 && homeCfg.restUrl && homeCfg.restToken) {\n let notify: JobNotify | undefined = options.defaultNotify;\n if (notify) {\n try {\n notify = resolveEffectiveNotify(parseJobNotify(notify), undefined);\n } catch {\n notify = undefined;\n }\n }\n if (!isDeliverableImNotify(notify)) {\n log({\n op: 'ha_ws_watch_skip',\n reason: 'defaults_notify_not_im',\n });\n } else {\n const entityToAlias = buildWatchEntityMap(homeCfg.aliases, watchAliases);\n watch = new HomeStateWatch({\n wsUrl: buildWsUrl(homeCfg.restUrl),\n token: homeCfg.restToken,\n entityToAlias,\n debounceMs: homeCfg.debounceMs,\n notify,\n router: options.notificationRouter,\n });\n watch.start();\n watchActive = entityToAlias.size > 0;\n log({\n ha_ws_watch: watchActive,\n aliases: entityToAlias.size,\n debounceMs: homeCfg.debounceMs,\n });\n }\n }\n\n log({\n assistant_home: true,\n aliases: Object.keys(homeCfg.aliases).length,\n mcpServer: homeCfg.mcpServer,\n });\n\n return {\n tools,\n homeActive: true,\n watchActive,\n backend,\n dispose: () => {\n watch?.dispose();\n },\n };\n}\n"]}
@@ -50,4 +50,3 @@ export declare function resolveAssistantEventsConfig(raw?: AssistantEventsConfig
50
50
  rateLimitPerMinute: number;
51
51
  };
52
52
  export declare function isAssistantEventsActive(assistant?: AssistantConfig): boolean;
53
- //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/assistant/config.ts"],"names":[],"mappings":"AA4CA,MAAM,CAAC,MAAM,qBAAqB,GAAgE;IAChG,kBAAkB,EAAE,EAAE;CACvB,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACzC,GAA0B;IAE1B,OAAO;QACL,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,CAAC;QAChC,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,IAAI,OAAO;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAqB;IAC1D,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI;QAC9B,KAAK,EAAE,GAAG,EAAE,KAAK;QACjB,QAAQ,EAAE,GAAG,EAAE,QAAQ;QACvB,OAAO,EAAE,GAAG,EAAE,OAAO;QACrB,IAAI,EAAE,GAAG,EAAE,IAAI;QACf,MAAM,EAAE,GAAG,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAA6B;IAE7B,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,MAAM;QACnB,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,GAA2B;IAE3B,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI;QAC9B,KAAK,EAAE,GAAG,EAAE,KAAK;QACjB,cAAc,EAAE,GAAG,EAAE,cAAc;QACnC,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,IAAI,qBAAqB,CAAC,kBAAkB;KACxF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAA2B;IAE3B,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/assistant/config.ts"],"names":[],"mappings":"AA4CA,MAAM,CAAC,MAAM,qBAAqB,GAAgE;IAChG,kBAAkB,EAAE,EAAE;CACvB,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACzC,GAA0B;IAE1B,OAAO;QACL,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,CAAC;QAChC,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,IAAI,OAAO;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAqB;IAC1D,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI;QAC9B,KAAK,EAAE,GAAG,EAAE,KAAK;QACjB,QAAQ,EAAE,GAAG,EAAE,QAAQ;QACvB,OAAO,EAAE,GAAG,EAAE,OAAO;QACrB,IAAI,EAAE,GAAG,EAAE,IAAI;QACf,MAAM,EAAE,GAAG,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAA6B;IAE7B,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,MAAM;QACnB,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,GAA2B;IAE3B,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI;QAC9B,KAAK,EAAE,GAAG,EAAE,KAAK;QACjB,cAAc,EAAE,GAAG,EAAE,cAAc;QACnC,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,IAAI,qBAAqB,CAAC,kBAAkB;KACxF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAA2B;IAE3B,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;AACxC,CAAC","sourcesContent":["/**\n * Assistant Runtime 配置(应用级,zhin.config.yml 顶层 assistant 块)\n */\nimport type { AssistantHomeConfig } from './home-config.js';\nimport type { JobNotify } from './types.js';\n\nexport interface AssistantDefaultsConfig {\n /** 未显式指定 notify 时的默认投递目标(M3) */\n notify?: JobNotify;\n /** Job 失败时是否通知(默认 false) */\n notifyOnFailure?: boolean;\n}\n\nexport interface AssistantEventsConfig {\n /** 启用 POST /api/assistant/events(需 assistant.enabled) */\n enabled?: boolean;\n /**\n * 可选专用 Bearer;未设时复用 http.token(路由仍在 /api 下受全局鉴权保护)。\n */\n token?: string;\n /** 允许的来源白名单;空数组表示不限制 */\n allowedSources?: string[];\n /** 每来源每分钟最大请求数(默认 60) */\n rateLimitPerMinute?: number;\n}\n\nexport interface AssistantQueueConfig {\n /** Schedule execution 并发上限 */\n maxConcurrency?: number;\n maxRetries?: number;\n defaultTimeoutMs?: number;\n}\n\nexport interface AssistantConfig {\n /** 启用统一 JobStore(默认 false,Stable 行为不变) */\n enabled?: boolean;\n /** Schedule execution queue(重试 / 并发 / 死信) */\n queue?: AssistantQueueConfig;\n defaults?: AssistantDefaultsConfig;\n profile?: import('./profile-types.js').AssistantProfileConfig;\n home?: AssistantHomeConfig;\n events?: AssistantEventsConfig;\n}\n\nexport const DEFAULT_EVENTS_CONFIG: Required<Pick<AssistantEventsConfig, 'rateLimitPerMinute'>> = {\n rateLimitPerMinute: 60,\n};\n\nexport function resolveAssistantQueueConfig(\n raw?: AssistantQueueConfig,\n): Required<AssistantQueueConfig> {\n return {\n maxConcurrency: raw?.maxConcurrency ?? 3,\n maxRetries: raw?.maxRetries ?? 2,\n defaultTimeoutMs: raw?.defaultTimeoutMs ?? 120_000,\n };\n}\n\nexport function resolveAssistantConfig(raw?: AssistantConfig): AssistantConfig & { enabled: boolean } {\n return {\n enabled: raw?.enabled === true,\n queue: raw?.queue,\n defaults: raw?.defaults,\n profile: raw?.profile,\n home: raw?.home,\n events: raw?.events,\n };\n}\n\nexport function resolveAssistantDefaultsConfig(\n raw?: AssistantDefaultsConfig,\n): AssistantDefaultsConfig & { notifyOnFailure: boolean } {\n return {\n notify: raw?.notify,\n notifyOnFailure: raw?.notifyOnFailure === true,\n };\n}\n\nexport function resolveAssistantEventsConfig(\n raw?: AssistantEventsConfig,\n): AssistantEventsConfig & { enabled: boolean; rateLimitPerMinute: number } {\n return {\n enabled: raw?.enabled === true,\n token: raw?.token,\n allowedSources: raw?.allowedSources,\n rateLimitPerMinute: raw?.rateLimitPerMinute ?? DEFAULT_EVENTS_CONFIG.rateLimitPerMinute,\n };\n}\n\nexport function isAssistantEventsActive(\n assistant?: AssistantConfig,\n): boolean {\n const base = resolveAssistantConfig(assistant);\n const events = resolveAssistantEventsConfig(base.events);\n return base.enabled && events.enabled;\n}\n"]}
@@ -16,4 +16,3 @@ export interface DeliverScheduleToAdapterInput {
16
16
  * Deliver schedule/cron task output to IM via the unified outbound chain.
17
17
  */
18
18
  export declare function deliverScheduleToAdapter(input: DeliverScheduleToAdapterInput): Promise<DeliverResult>;
19
- //# sourceMappingURL=deliver-schedule-to-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deliver-schedule-to-adapter.js","sourceRoot":"","sources":["../../src/assistant/deliver-schedule-to-adapter.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"deliver-schedule-to-adapter.js","sourceRoot":"","sources":["../../src/assistant/deliver-schedule-to-adapter.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,CAAC","sourcesContent":["/**\n * Schedule → adapter delivery helper — ADR 0039 P1.\n * Routes scheduled task output through NotificationRouter (unified outbound chain).\n */\nimport type { JobNotify } from './types.js';\nimport {\n type DeliverResult,\n type NotificationRouter,\n} from './notification-router.js';\n\nexport interface DeliverScheduleToAdapterInput {\n notify: JobNotify;\n content: string;\n jobId?: string;\n label?: string;\n router: NotificationRouter;\n source?: string;\n}\n\n/**\n * Deliver schedule/cron task output to IM via the unified outbound chain.\n */\nexport async function deliverScheduleToAdapter(\n input: DeliverScheduleToAdapterInput,\n): Promise<DeliverResult> {\n const { notify, content, jobId, label, source, router } = input;\n return router.deliver({ notify, content, jobId, label, source });\n}\n"]}
@@ -37,4 +37,3 @@ export declare class HaHomeBackend {
37
37
  turnOn(alias: string): Promise<HaServiceResult>;
38
38
  turnOff(alias: string): Promise<HaServiceResult>;
39
39
  }
40
- //# sourceMappingURL=ha-home-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ha-home-backend.js","sourceRoot":"","sources":["../../../src/assistant/domains/ha-home-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ha-home-backend.js","sourceRoot":"","sources":["../../../src/assistant/domains/ha-home-backend.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * HaHomeBackend — Home Assistant REST client(别名解析 + 服务调用)\n */\nimport { getLogger, formatCompact } from '@zhin.js/logger';\nimport { type AssistantHomeConfig, resolveAssistantHomeConfig, type ResolvedAssistantHomeConfig } from '../home-config.js';\nimport { parseEntityDomain } from './home-entity.js';\n\nexport { parseEntityDomain };\n\nconst logger = getLogger('home-assistant');\n\nexport type HaFetch = (url: string, init?: RequestInit) => Promise<Response>;\n\nexport interface HaEntityState {\n entityId: string;\n state: string;\n attributes: Record<string, unknown>;\n lastChanged?: string;\n lastUpdated?: string;\n}\n\nexport interface HaServiceResult {\n alias: string;\n entityId: string;\n service: string;\n}\n\nconst DOMAIN_SERVICE_MAP: Record<string, { on: string; off: string }> = {\n light: { on: 'turn_on', off: 'turn_off' },\n switch: { on: 'turn_on', off: 'turn_off' },\n fan: { on: 'turn_on', off: 'turn_off' },\n cover: { on: 'open_cover', off: 'close_cover' },\n lock: { on: 'unlock', off: 'lock' },\n climate: { on: 'turn_on', off: 'turn_off' },\n media_player: { on: 'turn_on', off: 'turn_off' },\n};\n\nexport class HaHomeBackend {\n private cfg: ResolvedAssistantHomeConfig;\n private fetchFn: HaFetch;\n\n constructor(homeConfig: AssistantHomeConfig, fetchFn: HaFetch = globalThis.fetch.bind(globalThis)) {\n this.cfg = resolveAssistantHomeConfig(homeConfig);\n this.fetchFn = fetchFn;\n }\n\n listAliases(): Record<string, string> {\n return { ...this.cfg.aliases };\n }\n\n resolveAlias(alias: string): string {\n const key = alias.trim();\n const entity = this.cfg.aliases?.[key];\n if (!entity) {\n throw new Error(`未知设备别名: ${alias}(可用: ${Object.keys(this.cfg.aliases ?? {}).join('、') || '无'})`);\n }\n return entity;\n }\n\n private baseUrl(): string {\n const url = this.cfg.restUrl?.replace(/\\/$/, '');\n if (!url) throw new Error('assistant.home.restUrl 未配置');\n return url;\n }\n\n private token(): string {\n if (!this.cfg.restToken) throw new Error('assistant.home.restToken 未配置');\n return this.cfg.restToken;\n }\n\n private async haRequest(path: string, init?: RequestInit): Promise<unknown> {\n const url = `${this.baseUrl()}${path}`;\n const res = await this.fetchFn(url, {\n ...init,\n headers: {\n Authorization: `Bearer ${this.token()}`,\n 'Content-Type': 'application/json',\n ...(init?.headers ?? {}),\n },\n });\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`HA API ${res.status}: ${body.slice(0, 200) || res.statusText}`);\n }\n if (res.status === 204) return null;\n const text = await res.text();\n if (!text) return null;\n return JSON.parse(text) as unknown;\n }\n\n async getState(alias: string): Promise<HaEntityState> {\n const entityId = this.resolveAlias(alias);\n const raw = await this.haRequest(`/api/states/${encodeURIComponent(entityId)}`) as Record<string, unknown>;\n return {\n entityId,\n state: String(raw.state ?? 'unknown'),\n attributes: (raw.attributes as Record<string, unknown>) ?? {},\n lastChanged: raw.last_changed as string | undefined,\n lastUpdated: raw.last_updated as string | undefined,\n };\n }\n\n resolveServiceForToggle(entityId: string, on: boolean): { domain: string; service: string } {\n const domain = parseEntityDomain(entityId);\n const mapped = DOMAIN_SERVICE_MAP[domain];\n const service = on ? mapped?.on : mapped?.off;\n if (!service) {\n throw new Error(`不支持的控制类型: ${domain}(entity: ${entityId})`);\n }\n return { domain, service };\n }\n\n async callService(\n alias: string,\n service: string,\n data?: Record<string, unknown>,\n ): Promise<void> {\n const entityId = this.resolveAlias(alias);\n const domain = parseEntityDomain(entityId);\n await this.haRequest(`/api/services/${domain}/${service}`, {\n method: 'POST',\n body: JSON.stringify({ entity_id: entityId, ...data }),\n });\n logger.debug(formatCompact({ op: 'ha_service', alias, entityId, domain, service }));\n }\n\n /**\n * JobNotify channel:ha — call by domain/service with optional entity target.\n * `service` may be `domain.service` or bare service name (requires target entity).\n */\n async callHaNotifyService(service: string, target?: string, data?: unknown): Promise<void> {\n const payload = (data && typeof data === 'object') ? data as Record<string, unknown> : {};\n let domain: string;\n let svc: string;\n if (service.includes('.')) {\n const [d, s] = service.split('.', 2);\n domain = d;\n svc = s;\n } else if (target) {\n domain = parseEntityDomain(target);\n svc = service;\n } else {\n throw new Error(`callHaService 需要 domain.service 或 target entity(got: ${service})`);\n }\n const body = target ? { entity_id: target, ...payload } : { ...payload };\n await this.haRequest(`/api/services/${domain}/${svc}`, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n logger.debug(formatCompact({ op: 'ha_notify_service', domain, service: svc, target }));\n }\n\n async turnOn(alias: string): Promise<HaServiceResult> {\n const entityId = this.resolveAlias(alias);\n const { domain, service } = this.resolveServiceForToggle(entityId, true);\n await this.callService(alias, service);\n return { alias, entityId, service: `${domain}.${service}` };\n }\n\n async turnOff(alias: string): Promise<HaServiceResult> {\n const entityId = this.resolveAlias(alias);\n const { domain, service } = this.resolveServiceForToggle(entityId, false);\n await this.callService(alias, service);\n return { alias, entityId, service: `${domain}.${service}` };\n }\n}\n"]}
@@ -56,4 +56,3 @@ export declare class HaWsTransport {
56
56
  }
57
57
  export declare function buildWsUrl(restUrl: string): string;
58
58
  export {};
59
- //# sourceMappingURL=ha-ws-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ha-ws-transport.js","sourceRoot":"","sources":["../../../src/assistant/domains/ha-ws-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ha-ws-transport.js","sourceRoot":"","sources":["../../../src/assistant/domains/ha-ws-transport.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * HaWsTransport — HA WebSocket auth / subscribe / reconnect.\n * Inject createSocket for tests.\n */\nimport { getLogger, formatCompact } from '@zhin.js/logger';\n\nconst logger = getLogger('ha-ws-transport');\nconst RECONNECT_DELAY_MS = 10_000;\n\nexport type HaSocketLike = {\n readyState: number;\n send(data: string): void;\n close(): void;\n addEventListener(type: string, listener: (ev: { data?: unknown }) => void): void;\n};\n\nexport type CreateHaSocket = (url: string) => HaSocketLike;\n\nexport interface HaStateChangedEvent {\n entityId: string;\n newState: string;\n oldState?: string;\n attributes: Record<string, unknown>;\n}\n\nexport interface HaWsTransportOptions {\n wsUrl: string;\n token: string;\n createSocket?: CreateHaSocket;\n onStateChanged: (event: HaStateChangedEvent) => void;\n reconnectDelayMs?: number;\n}\n\nconst OPEN = 1;\nconst CONNECTING = 0;\n\ninterface HaWsMessage {\n id?: number;\n type: string;\n event?: {\n data?: {\n entity_id?: string;\n new_state?: { state?: string; attributes?: Record<string, unknown> };\n old_state?: { state?: string };\n };\n };\n}\n\nexport class HaWsTransport {\n private ws: HaSocketLike | null = null;\n private disposed = false;\n private msgId = 1;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private readonly createSocket: CreateHaSocket;\n\n constructor(private readonly options: HaWsTransportOptions) {\n this.createSocket = options.createSocket\n ?? ((url) => new (globalThis as unknown as { WebSocket: new (u: string) => HaSocketLike }).WebSocket(url));\n }\n\n start(): void {\n if (this.disposed) return;\n if (typeof globalThis.WebSocket === 'undefined' && !this.options.createSocket) {\n logger.warn('ha-ws-transport: WebSocket not available');\n return;\n }\n this.connect();\n }\n\n private connect(): void {\n if (this.disposed) return;\n try {\n this.ws = this.createSocket(this.options.wsUrl);\n } catch (err) {\n logger.warn(formatCompact({ op: 'ha_ws_connect_error', error: String(err) }));\n this.scheduleReconnect();\n return;\n }\n\n this.ws.addEventListener('open', () => {\n logger.debug('ha-ws connected');\n });\n this.ws.addEventListener('message', (event) => {\n try {\n const msg = JSON.parse(String(event.data)) as HaWsMessage;\n this.handleMessage(msg);\n } catch {\n // ignore\n }\n });\n this.ws.addEventListener('close', () => {\n logger.debug('ha-ws closed');\n this.scheduleReconnect();\n });\n this.ws.addEventListener('error', () => {\n logger.warn(formatCompact({ op: 'ha_ws_error' }));\n });\n }\n\n /** Test/helper: feed a parsed HA message as if received from the socket. */\n handleMessage(msg: HaWsMessage): void {\n switch (msg.type) {\n case 'auth_required':\n this.send({ type: 'auth', access_token: this.options.token });\n break;\n case 'auth_ok':\n this.subscribeEvents();\n break;\n case 'auth_invalid':\n logger.error('ha-ws auth failed — check restToken');\n this.dispose();\n break;\n case 'event':\n this.emitStateChange(msg);\n break;\n }\n }\n\n private subscribeEvents(): void {\n const id = this.msgId++;\n this.send({ id, type: 'subscribe_events', event_type: 'state_changed' });\n logger.info(formatCompact({ op: 'ha_ws_subscribed' }));\n }\n\n private emitStateChange(msg: HaWsMessage): void {\n const data = msg.event?.data;\n if (!data?.entity_id) return;\n const newState = data.new_state?.state ?? 'unknown';\n const oldState = data.old_state?.state;\n if (newState === oldState) return;\n this.options.onStateChanged({\n entityId: data.entity_id,\n newState,\n oldState,\n attributes: data.new_state?.attributes ?? {},\n });\n }\n\n private send(data: Record<string, unknown>): void {\n if (this.ws && this.ws.readyState === OPEN) {\n this.ws.send(JSON.stringify(data));\n }\n }\n\n private scheduleReconnect(): void {\n if (this.disposed) return;\n const delay = this.options.reconnectDelayMs ?? RECONNECT_DELAY_MS;\n this.reconnectTimer = setTimeout(() => {\n this.reconnectTimer = null;\n this.connect();\n }, delay);\n }\n\n dispose(): void {\n this.disposed = true;\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.ws) {\n if (this.ws.readyState === OPEN || this.ws.readyState === CONNECTING) {\n this.ws.close();\n }\n this.ws = null;\n }\n }\n}\n\nexport function buildWsUrl(restUrl: string): string {\n const url = new URL(restUrl);\n url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';\n url.pathname = '/api/websocket';\n return url.toString();\n}\n"]}
@@ -2,4 +2,3 @@
2
2
  * HA entity_id helpers (domain parsing shared by policy / facade / backend).
3
3
  */
4
4
  export declare function parseEntityDomain(entityId: string): string;
5
- //# sourceMappingURL=home-entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"home-entity.js","sourceRoot":"","sources":["../../../src/assistant/domains/home-entity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"home-entity.js","sourceRoot":"","sources":["../../../src/assistant/domains/home-entity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC","sourcesContent":["/**\n * HA entity_id helpers (domain parsing shared by policy / facade / backend).\n */\n\nexport function parseEntityDomain(entityId: string): string {\n const dot = entityId.indexOf('.');\n return dot > 0 ? entityId.slice(0, dot) : entityId;\n}\n"]}
@@ -37,4 +37,3 @@ export declare function formatStateMessage(alias: string, state: string, attribu
37
37
  export { buildWsUrl };
38
38
  /** Build entity→alias map from alias→entity record for watch list. */
39
39
  export declare function buildWatchEntityMap(aliases: Record<string, string>, watchAliases: string[]): Map<string, string>;
40
- //# sourceMappingURL=home-state-watch.d.ts.map