@zhin.js/agent 1.1.36 → 1.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1287) hide show
  1. package/lib/activity-feedback/adapter-integration.d.ts +0 -1
  2. package/lib/activity-feedback/adapter-integration.js.map +1 -1
  3. package/lib/activity-feedback/config-resolver.d.ts +0 -1
  4. package/lib/activity-feedback/config-resolver.js.map +1 -1
  5. package/lib/activity-feedback/event-context.d.ts +0 -1
  6. package/lib/activity-feedback/event-context.js.map +1 -1
  7. package/lib/activity-feedback/index.d.ts +0 -1
  8. package/lib/activity-feedback/index.js.map +1 -1
  9. package/lib/activity-feedback/manager.d.ts +0 -1
  10. package/lib/activity-feedback/manager.js.map +1 -1
  11. package/lib/activity-feedback/schedule-guard.d.ts +0 -1
  12. package/lib/activity-feedback/schedule-guard.js.map +1 -1
  13. package/lib/activity-feedback/subagent-prefix.d.ts +0 -1
  14. package/lib/activity-feedback/subagent-prefix.js.map +1 -1
  15. package/lib/activity-feedback/turn-event-projector.d.ts +0 -1
  16. package/lib/activity-feedback/turn-event-projector.js.map +1 -1
  17. package/lib/activity-feedback/types.d.ts +0 -1
  18. package/lib/activity-feedback/types.js.map +1 -1
  19. package/lib/ai-event-bus.d.ts +0 -1
  20. package/lib/ai-event-bus.js.map +1 -1
  21. package/lib/ai-event-contract.d.ts +0 -1
  22. package/lib/ai-event-contract.js.map +1 -1
  23. package/lib/ai-event-subscriber.d.ts +0 -1
  24. package/lib/ai-event-subscriber.js.map +1 -1
  25. package/lib/ai-hook-runtime-bus.d.ts +0 -1
  26. package/lib/ai-hook-runtime-bus.js.map +1 -1
  27. package/lib/assistant/bootstrap-assistant-home.d.ts +0 -1
  28. package/lib/assistant/bootstrap-assistant-home.js.map +1 -1
  29. package/lib/assistant/config.d.ts +0 -1
  30. package/lib/assistant/config.js.map +1 -1
  31. package/lib/assistant/deliver-schedule-to-adapter.d.ts +0 -1
  32. package/lib/assistant/deliver-schedule-to-adapter.js.map +1 -1
  33. package/lib/assistant/domains/ha-home-backend.d.ts +0 -1
  34. package/lib/assistant/domains/ha-home-backend.js.map +1 -1
  35. package/lib/assistant/domains/ha-ws-transport.d.ts +0 -1
  36. package/lib/assistant/domains/ha-ws-transport.js.map +1 -1
  37. package/lib/assistant/domains/home-entity.d.ts +0 -1
  38. package/lib/assistant/domains/home-entity.js.map +1 -1
  39. package/lib/assistant/domains/home-state-watch.d.ts +0 -1
  40. package/lib/assistant/domains/home-state-watch.js.map +1 -1
  41. package/lib/assistant/event-ingress.d.ts +0 -1
  42. package/lib/assistant/event-ingress.js.map +1 -1
  43. package/lib/assistant/event-types.d.ts +0 -1
  44. package/lib/assistant/event-types.js.map +1 -1
  45. package/lib/assistant/home-config.d.ts +0 -1
  46. package/lib/assistant/home-config.js.map +1 -1
  47. package/lib/assistant/home-facade.d.ts +0 -1
  48. package/lib/assistant/home-facade.js.map +1 -1
  49. package/lib/assistant/home-mcp-bridge.d.ts +0 -1
  50. package/lib/assistant/home-mcp-bridge.js.map +1 -1
  51. package/lib/assistant/home-policy.d.ts +0 -1
  52. package/lib/assistant/home-policy.js.map +1 -1
  53. package/lib/assistant/home-tools.d.ts +0 -1
  54. package/lib/assistant/home-tools.js.map +1 -1
  55. package/lib/assistant/index.d.ts +0 -1
  56. package/lib/assistant/index.js.map +1 -1
  57. package/lib/assistant/job-creator.d.ts +0 -1
  58. package/lib/assistant/job-creator.js.map +1 -1
  59. package/lib/assistant/job-engine.d.ts +5 -1
  60. package/lib/assistant/job-engine.js +20 -1
  61. package/lib/assistant/job-engine.js.map +1 -1
  62. package/lib/assistant/job-scheduler.d.ts +0 -1
  63. package/lib/assistant/job-scheduler.js.map +1 -1
  64. package/lib/assistant/job-store.d.ts +0 -1
  65. package/lib/assistant/job-store.js.map +1 -1
  66. package/lib/assistant/job-utils.d.ts +0 -1
  67. package/lib/assistant/job-utils.js.map +1 -1
  68. package/lib/assistant/job-worker.d.ts +0 -1
  69. package/lib/assistant/job-worker.js.map +1 -1
  70. package/lib/assistant/notification-router.d.ts +0 -1
  71. package/lib/assistant/notification-router.js.map +1 -1
  72. package/lib/assistant/profile-loader.d.ts +0 -1
  73. package/lib/assistant/profile-loader.js.map +1 -1
  74. package/lib/assistant/profile-types.d.ts +0 -1
  75. package/lib/assistant/profile-types.js.map +1 -1
  76. package/lib/assistant/runtime-contract.d.ts +0 -1
  77. package/lib/assistant/runtime-contract.js.map +1 -1
  78. package/lib/assistant/schedule-execution.d.ts +0 -1
  79. package/lib/assistant/schedule-execution.js.map +1 -1
  80. package/lib/assistant/schedule-job-service.d.ts +0 -1
  81. package/lib/assistant/schedule-job-service.js.map +1 -1
  82. package/lib/assistant/schedule-skills.d.ts +0 -1
  83. package/lib/assistant/schedule-skills.js.map +1 -1
  84. package/lib/assistant/types.d.ts +0 -1
  85. package/lib/assistant/types.js.map +1 -1
  86. package/lib/authoring/bridge.d.ts +0 -1
  87. package/lib/authoring/bridge.js.map +1 -1
  88. package/lib/authoring/define-eval.d.ts +0 -1
  89. package/lib/authoring/define-eval.js.map +1 -1
  90. package/lib/authoring/define-hook.d.ts +0 -1
  91. package/lib/authoring/define-hook.js.map +1 -1
  92. package/lib/authoring/define-skill.d.ts +0 -1
  93. package/lib/authoring/define-skill.js.map +1 -1
  94. package/lib/authoring/disable-tool.d.ts +0 -1
  95. package/lib/authoring/disable-tool.js.map +1 -1
  96. package/lib/authoring/entries/evals.d.ts +0 -1
  97. package/lib/authoring/entries/evals.js.map +1 -1
  98. package/lib/authoring/entries/hooks.d.ts +0 -1
  99. package/lib/authoring/entries/hooks.js.map +1 -1
  100. package/lib/authoring/entries/skills.d.ts +0 -1
  101. package/lib/authoring/entries/skills.js.map +1 -1
  102. package/lib/authoring/index.d.ts +0 -1
  103. package/lib/authoring/index.js.map +1 -1
  104. package/lib/authoring/types.d.ts +0 -1
  105. package/lib/authoring/types.js.map +1 -1
  106. package/lib/bootstrap.d.ts +0 -1
  107. package/lib/bootstrap.js.map +1 -1
  108. package/lib/builtins/builtin-tool-service.d.ts +0 -1
  109. package/lib/builtins/builtin-tool-service.js.map +1 -1
  110. package/lib/common-adapter-tools.d.ts +0 -1
  111. package/lib/common-adapter-tools.js.map +1 -1
  112. package/lib/config/agent-binding-registry.d.ts +0 -1
  113. package/lib/config/agent-binding-registry.js.map +1 -1
  114. package/lib/config/agent-bindings.d.ts +0 -1
  115. package/lib/config/agent-bindings.js.map +1 -1
  116. package/lib/config/agent-interfaces.d.ts +0 -1
  117. package/lib/config/agent-interfaces.js.map +1 -1
  118. package/lib/config/deprecated-agent-binding-keys.d.ts +0 -1
  119. package/lib/config/deprecated-agent-binding-keys.js.map +1 -1
  120. package/lib/config/deprecated-agent-keys.d.ts +0 -1
  121. package/lib/config/deprecated-agent-keys.js.map +1 -1
  122. package/lib/config/fix-ai-config.d.ts +0 -1
  123. package/lib/config/fix-ai-config.js.map +1 -1
  124. package/lib/config/index.d.ts +0 -1
  125. package/lib/config/index.js.map +1 -1
  126. package/lib/config/keyword-triggers.d.ts +0 -1
  127. package/lib/config/keyword-triggers.js.map +1 -1
  128. package/lib/config/model-harness-runtime.d.ts +0 -1
  129. package/lib/config/model-harness-runtime.js.map +1 -1
  130. package/lib/config/model-harness.d.ts +0 -1
  131. package/lib/config/model-harness.js.map +1 -1
  132. package/lib/config/normalize-ai-config.d.ts +0 -1
  133. package/lib/config/normalize-ai-config.js.map +1 -1
  134. package/lib/config/perception-config.d.ts +0 -1
  135. package/lib/config/perception-config.js.map +1 -1
  136. package/lib/config/provider-instance.d.ts +0 -1
  137. package/lib/config/provider-instance.js.map +1 -1
  138. package/lib/config/resolve-five-agent-binding.d.ts +0 -1
  139. package/lib/config/resolve-five-agent-binding.js.map +1 -1
  140. package/lib/config/types.d.ts +0 -1
  141. package/lib/config/types.js.map +1 -1
  142. package/lib/config/validate-ai-config.d.ts +0 -1
  143. package/lib/config/validate-ai-config.js.map +1 -1
  144. package/lib/config/zhin-agent-config.d.ts +0 -1
  145. package/lib/config/zhin-agent-config.js.map +1 -1
  146. package/lib/config/zhin-agent-constants.d.ts +0 -1
  147. package/lib/config/zhin-agent-constants.js.map +1 -1
  148. package/lib/config/zhin-agent-defaults.d.ts +0 -1
  149. package/lib/config/zhin-agent-defaults.js +1 -1
  150. package/lib/config/zhin-agent-defaults.js.map +1 -1
  151. package/lib/config/zhin-agent-dependencies.d.ts +0 -1
  152. package/lib/config/zhin-agent-dependencies.js.map +1 -1
  153. package/lib/config/zhin-agent-runtime.d.ts +0 -1
  154. package/lib/config/zhin-agent-runtime.js.map +1 -1
  155. package/lib/context/agents-instruction.d.ts +0 -1
  156. package/lib/context/agents-instruction.js.map +1 -1
  157. package/lib/context/context-system.d.ts +0 -1
  158. package/lib/context/context-system.js.map +1 -1
  159. package/lib/context/context-tail-limit.d.ts +0 -1
  160. package/lib/context/context-tail-limit.js.map +1 -1
  161. package/lib/context/contracts.d.ts +0 -1
  162. package/lib/context/contracts.js.map +1 -1
  163. package/lib/context/default-builders.d.ts +0 -1
  164. package/lib/context/default-builders.js.map +1 -1
  165. package/lib/context/envelope-parts.d.ts +0 -1
  166. package/lib/context/envelope-parts.js.map +1 -1
  167. package/lib/context/im-turn-context-adapter.d.ts +0 -1
  168. package/lib/context/im-turn-context-adapter.js.map +1 -1
  169. package/lib/context/index.d.ts +1 -2
  170. package/lib/context/index.js +1 -1
  171. package/lib/context/index.js.map +1 -1
  172. package/lib/context/model-resolver.d.ts +0 -1
  173. package/lib/context/model-resolver.js.map +1 -1
  174. package/lib/context/turn-envelope.d.ts +3 -2
  175. package/lib/context/turn-envelope.js +6 -0
  176. package/lib/context/turn-envelope.js.map +1 -1
  177. package/lib/context/turn-user-message.d.ts +0 -1
  178. package/lib/context/turn-user-message.js.map +1 -1
  179. package/lib/core/agent-core-run.d.ts +3 -1
  180. package/lib/core/agent-core-run.js +40 -36
  181. package/lib/core/agent-core-run.js.map +1 -1
  182. package/lib/core/agent-core.d.ts +0 -1
  183. package/lib/core/agent-core.js.map +1 -1
  184. package/lib/core/agent-loop-standalone.d.ts +0 -1
  185. package/lib/core/agent-loop-standalone.js.map +1 -1
  186. package/lib/core/agent-loop-turn.d.ts +0 -1
  187. package/lib/core/agent-loop-turn.js.map +1 -1
  188. package/lib/core/agent-run-shared.d.ts +0 -1
  189. package/lib/core/agent-run-shared.js.map +1 -1
  190. package/lib/core/compose-deps.d.ts +0 -1
  191. package/lib/core/compose-deps.js.map +1 -1
  192. package/lib/core/contracts.d.ts +0 -1
  193. package/lib/core/contracts.js.map +1 -1
  194. package/lib/core/exhausted-turn-reply.d.ts +0 -1
  195. package/lib/core/exhausted-turn-reply.js.map +1 -1
  196. package/lib/core/exploration-budget.d.ts +0 -1
  197. package/lib/core/exploration-budget.js.map +1 -1
  198. package/lib/core/index.d.ts +0 -1
  199. package/lib/core/index.js.map +1 -1
  200. package/lib/core/missing-tool-resolver.d.ts +0 -1
  201. package/lib/core/missing-tool-resolver.js.map +1 -1
  202. package/lib/core/progress-reporter.d.ts +0 -1
  203. package/lib/core/progress-reporter.js.map +1 -1
  204. package/lib/core/spawn-delegation.d.ts +0 -1
  205. package/lib/core/spawn-delegation.js.map +1 -1
  206. package/lib/core/structured-reply-recovery.d.ts +18 -3
  207. package/lib/core/structured-reply-recovery.js +28 -7
  208. package/lib/core/structured-reply-recovery.js.map +1 -1
  209. package/lib/core/text-sanitize.d.ts +0 -1
  210. package/lib/core/text-sanitize.js.map +1 -1
  211. package/lib/core/tool-calls-user-format.d.ts +0 -1
  212. package/lib/core/tool-calls-user-format.js.map +1 -1
  213. package/lib/core/tool-execution-authority.d.ts +0 -1
  214. package/lib/core/tool-execution-authority.js.map +1 -1
  215. package/lib/core/turn-completion-usage.d.ts +0 -1
  216. package/lib/core/turn-completion-usage.js.map +1 -1
  217. package/lib/core/turn-event-mapper.d.ts +0 -1
  218. package/lib/core/turn-event-mapper.js.map +1 -1
  219. package/lib/core/turn-progress.d.ts +0 -1
  220. package/lib/core/turn-progress.js.map +1 -1
  221. package/lib/create-agent-session.d.ts +0 -1
  222. package/lib/create-agent-session.js.map +1 -1
  223. package/lib/decision/approval-judgment.d.ts +0 -1
  224. package/lib/decision/approval-judgment.js.map +1 -1
  225. package/lib/decision/approval.d.ts +0 -1
  226. package/lib/decision/approval.js.map +1 -1
  227. package/lib/decision/config.d.ts +0 -1
  228. package/lib/decision/config.js.map +1 -1
  229. package/lib/decision/index.d.ts +0 -1
  230. package/lib/decision/index.js.map +1 -1
  231. package/lib/decision/rank.d.ts +0 -1
  232. package/lib/decision/rank.js.map +1 -1
  233. package/lib/decision/retrieval.d.ts +0 -1
  234. package/lib/decision/retrieval.js.map +1 -1
  235. package/lib/decision/types.d.ts +0 -1
  236. package/lib/decision/types.js.map +1 -1
  237. package/lib/deferred-worker-runner.d.ts +0 -1
  238. package/lib/deferred-worker-runner.js.map +1 -1
  239. package/lib/deferred-worker-tool-load.d.ts +0 -1
  240. package/lib/deferred-worker-tool-load.js.map +1 -1
  241. package/lib/detached-task/index.d.ts +0 -1
  242. package/lib/detached-task/index.js.map +1 -1
  243. package/lib/detached-task/interjection.d.ts +0 -1
  244. package/lib/detached-task/interjection.js.map +1 -1
  245. package/lib/detached-task/runner.d.ts +0 -1
  246. package/lib/detached-task/runner.js.map +1 -1
  247. package/lib/detached-task/store.d.ts +0 -1
  248. package/lib/detached-task/store.js.map +1 -1
  249. package/lib/detached-task/token.d.ts +0 -1
  250. package/lib/detached-task/token.js.map +1 -1
  251. package/lib/detached-task/types.d.ts +0 -1
  252. package/lib/detached-task/types.js.map +1 -1
  253. package/lib/discovery/agent-surface-info.d.ts +0 -1
  254. package/lib/discovery/agent-surface-info.js.map +1 -1
  255. package/lib/discovery/agent-surface.d.ts +0 -1
  256. package/lib/discovery/agent-surface.js.map +1 -1
  257. package/lib/discovery/agents.d.ts +0 -1
  258. package/lib/discovery/agents.js.map +1 -1
  259. package/lib/discovery/utils.d.ts +0 -1
  260. package/lib/discovery/utils.js.map +1 -1
  261. package/lib/event/agent-stream-bus.d.ts +0 -1
  262. package/lib/event/agent-stream-bus.js.map +1 -1
  263. package/lib/event/agent-stream-hooks.d.ts +0 -1
  264. package/lib/event/agent-stream-hooks.js.map +1 -1
  265. package/lib/event/ai-event-bus.d.ts +0 -1
  266. package/lib/event/ai-event-bus.js.map +1 -1
  267. package/lib/event/contracts.d.ts +0 -1
  268. package/lib/event/contracts.js.map +1 -1
  269. package/lib/event/event-emitter.d.ts +0 -1
  270. package/lib/event/event-emitter.js.map +1 -1
  271. package/lib/event/event-system.d.ts +0 -1
  272. package/lib/event/event-system.js.map +1 -1
  273. package/lib/event/filtering-middleware.d.ts +0 -1
  274. package/lib/event/filtering-middleware.js.map +1 -1
  275. package/lib/event/hook-stream-sink.d.ts +0 -1
  276. package/lib/event/hook-stream-sink.js.map +1 -1
  277. package/lib/event/index.d.ts +0 -1
  278. package/lib/event/index.js.map +1 -1
  279. package/lib/event/logging-middleware.d.ts +0 -1
  280. package/lib/event/logging-middleware.js.map +1 -1
  281. package/lib/event/publish-agent-stream.d.ts +0 -1
  282. package/lib/event/publish-agent-stream.js.map +1 -1
  283. package/lib/event/session-events.d.ts +0 -1
  284. package/lib/event/session-events.js.map +1 -1
  285. package/lib/event/turn-event.d.ts +0 -1
  286. package/lib/event/turn-event.js.map +1 -1
  287. package/lib/event/turn-to-agent-stream.d.ts +0 -1
  288. package/lib/event/turn-to-agent-stream.js.map +1 -1
  289. package/lib/index.d.ts +4 -5
  290. package/lib/index.js +2 -2
  291. package/lib/index.js.map +1 -1
  292. package/lib/init/activate-ai-database-storage.d.ts +0 -1
  293. package/lib/init/activate-ai-database-storage.js.map +1 -1
  294. package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
  295. package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
  296. package/lib/init/configure-zhin-agent.d.ts +0 -1
  297. package/lib/init/configure-zhin-agent.js.map +1 -1
  298. package/lib/init/define-ai-database-models.d.ts +0 -1
  299. package/lib/init/define-ai-database-models.js.map +1 -1
  300. package/lib/init/dispose-zhin-agent.d.ts +0 -1
  301. package/lib/init/dispose-zhin-agent.js.map +1 -1
  302. package/lib/init/introspection-output.d.ts +0 -1
  303. package/lib/init/introspection-output.js.map +1 -1
  304. package/lib/init/runtime-management-commands.d.ts +0 -1
  305. package/lib/init/runtime-management-commands.js.map +1 -1
  306. package/lib/interaction/index.d.ts +0 -1
  307. package/lib/interaction/index.js.map +1 -1
  308. package/lib/interaction/interaction-router.d.ts +0 -1
  309. package/lib/interaction/interaction-router.js.map +1 -1
  310. package/lib/internal/agent-host.d.ts +0 -1
  311. package/lib/internal/agent-host.js.map +1 -1
  312. package/lib/internal/ai-service-refs.d.ts +0 -1
  313. package/lib/internal/ai-service-refs.js.map +1 -1
  314. package/lib/internal/as-private.d.ts +0 -1
  315. package/lib/internal/as-private.js.map +1 -1
  316. package/lib/internal/host-types.d.ts +0 -1
  317. package/lib/internal/host-types.js.map +1 -1
  318. package/lib/internal/phase-trace.d.ts +0 -1
  319. package/lib/internal/phase-trace.js.map +1 -1
  320. package/lib/internal/prompt-trace.d.ts +0 -1
  321. package/lib/internal/prompt-trace.js.map +1 -1
  322. package/lib/internal/turn-context.d.ts +0 -1
  323. package/lib/internal/turn-context.js.map +1 -1
  324. package/lib/journal/file-journal-store.d.ts +0 -1
  325. package/lib/journal/file-journal-store.js.map +1 -1
  326. package/lib/journal/index.d.ts +0 -1
  327. package/lib/journal/index.js.map +1 -1
  328. package/lib/journal/persistent-turn-journal.d.ts +0 -1
  329. package/lib/journal/persistent-turn-journal.js.map +1 -1
  330. package/lib/mcp-client/bridge.d.ts +0 -1
  331. package/lib/mcp-client/bridge.js.map +1 -1
  332. package/lib/mcp-client/connection.d.ts +0 -1
  333. package/lib/mcp-client/connection.js.map +1 -1
  334. package/lib/mcp-client/index.d.ts +0 -1
  335. package/lib/mcp-client/index.js.map +1 -1
  336. package/lib/media/deliver-subagent-result.d.ts +0 -1
  337. package/lib/media/deliver-subagent-result.js +4 -1
  338. package/lib/media/deliver-subagent-result.js.map +1 -1
  339. package/lib/media/inbound-refs.d.ts +0 -1
  340. package/lib/media/inbound-refs.js.map +1 -1
  341. package/lib/media/index.d.ts +0 -1
  342. package/lib/media/index.js.map +1 -1
  343. package/lib/media/media-capabilities.d.ts +0 -1
  344. package/lib/media/media-capabilities.js.map +1 -1
  345. package/lib/media/media-normalize.d.ts +31 -3
  346. package/lib/media/media-normalize.js +38 -5
  347. package/lib/media/media-normalize.js.map +1 -1
  348. package/lib/media/media-publisher.d.ts +4 -2
  349. package/lib/media/media-publisher.js +50 -31
  350. package/lib/media/media-publisher.js.map +1 -1
  351. package/lib/media/media-router.d.ts +0 -1
  352. package/lib/media/media-router.js.map +1 -1
  353. package/lib/media/media-spool.d.ts +0 -1
  354. package/lib/media/media-spool.js.map +1 -1
  355. package/lib/media/media-tool-bridge.d.ts +0 -1
  356. package/lib/media/media-tool-bridge.js.map +1 -1
  357. package/lib/media/media-types.d.ts +0 -1
  358. package/lib/media/media-types.js.map +1 -1
  359. package/lib/media/perception.d.ts +8 -2
  360. package/lib/media/perception.js +55 -5
  361. package/lib/media/perception.js.map +1 -1
  362. package/lib/media/resolve-config.d.ts +0 -1
  363. package/lib/media/resolve-config.js.map +1 -1
  364. package/lib/media/subagent-inbound.d.ts +0 -1
  365. package/lib/media/subagent-inbound.js.map +1 -1
  366. package/lib/media/subagent-user-delivery.d.ts +0 -1
  367. package/lib/media/subagent-user-delivery.js.map +1 -1
  368. package/lib/media/vision-capability.d.ts +0 -1
  369. package/lib/media/vision-capability.js.map +1 -1
  370. package/lib/memory/ai-compaction-strategy.d.ts +0 -1
  371. package/lib/memory/ai-compaction-strategy.js.map +1 -1
  372. package/lib/memory/compaction-runtime.d.ts +0 -1
  373. package/lib/memory/compaction-runtime.js.map +1 -1
  374. package/lib/memory/context-repository-store.d.ts +0 -1
  375. package/lib/memory/context-repository-store.js.map +1 -1
  376. package/lib/memory/contracts.d.ts +0 -1
  377. package/lib/memory/contracts.js.map +1 -1
  378. package/lib/memory/index.d.ts +0 -1
  379. package/lib/memory/index.js.map +1 -1
  380. package/lib/memory/memory-system.d.ts +0 -1
  381. package/lib/memory/memory-system.js.map +1 -1
  382. package/lib/memory/memory-write-policy.d.ts +0 -1
  383. package/lib/memory/memory-write-policy.js.map +1 -1
  384. package/lib/memory/semantic-recall.d.ts +0 -1
  385. package/lib/memory/semantic-recall.js.map +1 -1
  386. package/lib/memory/told-ledger.d.ts +0 -1
  387. package/lib/memory/told-ledger.js.map +1 -1
  388. package/lib/memory-layers.d.ts +0 -1
  389. package/lib/memory-layers.js.map +1 -1
  390. package/lib/orchestration/five-agent/index.d.ts +0 -1
  391. package/lib/orchestration/five-agent/index.js.map +1 -1
  392. package/lib/orchestration/five-agent/prompts.d.ts +0 -1
  393. package/lib/orchestration/five-agent/prompts.js.map +1 -1
  394. package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
  395. package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
  396. package/lib/orchestration/five-agent/roles.d.ts +0 -1
  397. package/lib/orchestration/five-agent/roles.js.map +1 -1
  398. package/lib/outbound/agent-output.d.ts +5 -1
  399. package/lib/outbound/agent-output.js +14 -0
  400. package/lib/outbound/agent-output.js.map +1 -1
  401. package/lib/outbound/send-proactive.d.ts +0 -1
  402. package/lib/outbound/send-proactive.js.map +1 -1
  403. package/lib/outbound/structured-reply.d.ts +6 -2
  404. package/lib/outbound/structured-reply.js +85 -14
  405. package/lib/outbound/structured-reply.js.map +1 -1
  406. package/lib/plugin-ai-hook-bus.d.ts +0 -1
  407. package/lib/plugin-ai-hook-bus.js.map +1 -1
  408. package/lib/plugin-loop-hooks.d.ts +0 -1
  409. package/lib/plugin-loop-hooks.js.map +1 -1
  410. package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
  411. package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
  412. package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
  413. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  414. package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
  415. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  416. package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
  417. package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
  418. package/lib/plugin-runtime/ai-completion.d.ts +11 -43
  419. package/lib/plugin-runtime/ai-completion.js +28 -10
  420. package/lib/plugin-runtime/ai-completion.js.map +1 -1
  421. package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
  422. package/lib/plugin-runtime/capability-ingress.js.map +1 -1
  423. package/lib/plugin-runtime/capability-tools.d.ts +0 -1
  424. package/lib/plugin-runtime/capability-tools.js.map +1 -1
  425. package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
  426. package/lib/plugin-runtime/decision-runtime.js.map +1 -1
  427. package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
  428. package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
  429. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  430. package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
  431. package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
  432. package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
  433. package/lib/plugin-runtime/file-search-scope.js.map +1 -1
  434. package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
  435. package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
  436. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  437. package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
  438. package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
  439. package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
  440. package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
  441. package/lib/plugin-runtime/index.d.ts +0 -1
  442. package/lib/plugin-runtime/index.js.map +1 -1
  443. package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
  444. package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
  445. package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
  446. package/lib/plugin-runtime/native-file-tools.js.map +1 -1
  447. package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
  448. package/lib/plugin-runtime/native-image-tool.js.map +1 -1
  449. package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
  450. package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
  451. package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
  452. package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
  453. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
  454. package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
  455. package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
  456. package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
  457. package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
  458. package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
  459. package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
  460. package/lib/plugin-runtime/native-web-tools.js.map +1 -1
  461. package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
  462. package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
  463. package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
  464. package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
  465. package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
  466. package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
  467. package/lib/prompt/assembly.d.ts +0 -1
  468. package/lib/prompt/assembly.js +2 -2
  469. package/lib/prompt/assembly.js.map +1 -1
  470. package/lib/prompt/estimate-tokens.d.ts +0 -1
  471. package/lib/prompt/estimate-tokens.js.map +1 -1
  472. package/lib/prompt/git-context.d.ts +0 -1
  473. package/lib/prompt/git-context.js.map +1 -1
  474. package/lib/prompt/index.d.ts +0 -1
  475. package/lib/prompt/index.js.map +1 -1
  476. package/lib/prompt/model-aware-builder.d.ts +0 -1
  477. package/lib/prompt/model-aware-builder.js.map +1 -1
  478. package/lib/prompt/model-prompt-strategy.d.ts +0 -1
  479. package/lib/prompt/model-prompt-strategy.js.map +1 -1
  480. package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
  481. package/lib/prompt/prompt-assembly-registry.js.map +1 -1
  482. package/lib/prompt/prompt-budget.d.ts +0 -1
  483. package/lib/prompt/prompt-budget.js.map +1 -1
  484. package/lib/prompt/prompt-builder.d.ts +0 -1
  485. package/lib/prompt/prompt-builder.js.map +1 -1
  486. package/lib/prompt/rules/chat-rules.d.ts +6 -0
  487. package/lib/prompt/rules/chat-rules.js +20 -0
  488. package/lib/prompt/rules/chat-rules.js.map +1 -0
  489. package/lib/prompt/rules/code-references.d.ts +0 -1
  490. package/lib/prompt/rules/code-references.js.map +1 -1
  491. package/lib/prompt/rules/critical-rules.d.ts +0 -1
  492. package/lib/prompt/rules/critical-rules.js +2 -2
  493. package/lib/prompt/rules/critical-rules.js.map +1 -1
  494. package/lib/prompt/rules/editing.d.ts +0 -1
  495. package/lib/prompt/rules/editing.js.map +1 -1
  496. package/lib/prompt/rules/error-handling.d.ts +0 -1
  497. package/lib/prompt/rules/error-handling.js.map +1 -1
  498. package/lib/prompt/rules/index.d.ts +1 -1
  499. package/lib/prompt/rules/index.js +1 -0
  500. package/lib/prompt/rules/index.js.map +1 -1
  501. package/lib/prompt/rules/memory.d.ts +0 -1
  502. package/lib/prompt/rules/memory.js.map +1 -1
  503. package/lib/prompt/rules/task-completion.d.ts +0 -1
  504. package/lib/prompt/rules/task-completion.js.map +1 -1
  505. package/lib/prompt/rules/workflow-rules.d.ts +0 -1
  506. package/lib/prompt/rules/workflow-rules.js.map +1 -1
  507. package/lib/prompt/system-prompt.d.ts +7 -1
  508. package/lib/prompt/system-prompt.js +31 -12
  509. package/lib/prompt/system-prompt.js.map +1 -1
  510. package/lib/prompt/templates.d.ts +0 -1
  511. package/lib/prompt/templates.js.map +1 -1
  512. package/lib/prompt/tokens.d.ts +0 -1
  513. package/lib/prompt/tokens.js.map +1 -1
  514. package/lib/prompt/turn-prompt-profile.d.ts +0 -1
  515. package/lib/prompt/turn-prompt-profile.js.map +1 -1
  516. package/lib/prompt/workspace-prompt.d.ts +0 -1
  517. package/lib/prompt/workspace-prompt.js.map +1 -1
  518. package/lib/reserved-tools.d.ts +0 -1
  519. package/lib/reserved-tools.js.map +1 -1
  520. package/lib/resource-hub/hook-registry.d.ts +0 -1
  521. package/lib/resource-hub/hook-registry.js.map +1 -1
  522. package/lib/resource-hub/index.d.ts +0 -1
  523. package/lib/resource-hub/index.js.map +1 -1
  524. package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
  525. package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
  526. package/lib/resource-hub/mcp-registry.d.ts +0 -1
  527. package/lib/resource-hub/mcp-registry.js.map +1 -1
  528. package/lib/resource-hub/public-api.d.ts +0 -1
  529. package/lib/resource-hub/public-api.js.map +1 -1
  530. package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
  531. package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
  532. package/lib/resource-hub/resource-registry.d.ts +0 -1
  533. package/lib/resource-hub/resource-registry.js.map +1 -1
  534. package/lib/resource-hub/role-configs.d.ts +0 -1
  535. package/lib/resource-hub/role-configs.js.map +1 -1
  536. package/lib/resource-hub/skill-registry.d.ts +0 -1
  537. package/lib/resource-hub/skill-registry.js.map +1 -1
  538. package/lib/resource-hub/subagent-registry.d.ts +0 -1
  539. package/lib/resource-hub/subagent-registry.js.map +1 -1
  540. package/lib/resource-hub/tool-selection.d.ts +0 -1
  541. package/lib/resource-hub/tool-selection.js.map +1 -1
  542. package/lib/resource-hub/types.d.ts +0 -1
  543. package/lib/resource-hub/types.js.map +1 -1
  544. package/lib/routing/runtime-binding.d.ts +0 -1
  545. package/lib/routing/runtime-binding.js.map +1 -1
  546. package/lib/routing/subagent-summarize.d.ts +0 -1
  547. package/lib/routing/subagent-summarize.js.map +1 -1
  548. package/lib/schedule-cron.d.ts +0 -1
  549. package/lib/schedule-cron.js.map +1 -1
  550. package/lib/schedule-domain/audit-logger.d.ts +0 -1
  551. package/lib/schedule-domain/audit-logger.js.map +1 -1
  552. package/lib/schedule-domain/budget-guard.d.ts +0 -1
  553. package/lib/schedule-domain/budget-guard.js.map +1 -1
  554. package/lib/schedule-domain/execution-domain.d.ts +0 -1
  555. package/lib/schedule-domain/execution-domain.js.map +1 -1
  556. package/lib/schedule-domain/index.d.ts +0 -1
  557. package/lib/schedule-domain/index.js.map +1 -1
  558. package/lib/schedule-domain/output-validator.d.ts +0 -1
  559. package/lib/schedule-domain/output-validator.js.map +1 -1
  560. package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
  561. package/lib/schedule-domain/prompt-assembler.js.map +1 -1
  562. package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
  563. package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
  564. package/lib/schedule-domain/security-harness.d.ts +0 -1
  565. package/lib/schedule-domain/security-harness.js.map +1 -1
  566. package/lib/schedule-manager.d.ts +0 -1
  567. package/lib/schedule-manager.js.map +1 -1
  568. package/lib/seam/index.d.ts +0 -1
  569. package/lib/seam/index.js.map +1 -1
  570. package/lib/seam/seam-integration.d.ts +0 -1
  571. package/lib/seam/seam-integration.js.map +1 -1
  572. package/lib/seam/seam-provider.d.ts +0 -1
  573. package/lib/seam/seam-provider.js.map +1 -1
  574. package/lib/seam/skill-service.d.ts +0 -1
  575. package/lib/seam/skill-service.js.map +1 -1
  576. package/lib/seam/tokens.d.ts +0 -1
  577. package/lib/seam/tokens.js.map +1 -1
  578. package/lib/seam/tool-service.d.ts +0 -1
  579. package/lib/seam/tool-service.js.map +1 -1
  580. package/lib/security/anomaly-detection.d.ts +0 -1
  581. package/lib/security/anomaly-detection.js.map +1 -1
  582. package/lib/security/audit-logger.d.ts +0 -1
  583. package/lib/security/audit-logger.js.map +1 -1
  584. package/lib/security/comm-message-context.d.ts +0 -1
  585. package/lib/security/comm-message-context.js.map +1 -1
  586. package/lib/security/dangerous-tool-policy.d.ts +0 -1
  587. package/lib/security/dangerous-tool-policy.js.map +1 -1
  588. package/lib/security/exec-policy.d.ts +0 -1
  589. package/lib/security/exec-policy.js.map +1 -1
  590. package/lib/security/file-policy.d.ts +0 -1
  591. package/lib/security/file-policy.js.map +1 -1
  592. package/lib/security/file-role-policy.d.ts +0 -1
  593. package/lib/security/file-role-policy.js.map +1 -1
  594. package/lib/security/index.d.ts +0 -1
  595. package/lib/security/index.js.map +1 -1
  596. package/lib/security/network-authority.d.ts +0 -1
  597. package/lib/security/network-authority.js.map +1 -1
  598. package/lib/security/network-policy-context.d.ts +0 -1
  599. package/lib/security/network-policy-context.js.map +1 -1
  600. package/lib/security/network-policy.d.ts +0 -1
  601. package/lib/security/network-policy.js.map +1 -1
  602. package/lib/security/outbound-leak-guard.d.ts +0 -1
  603. package/lib/security/outbound-leak-guard.js.map +1 -1
  604. package/lib/security/owner-approval-contracts.d.ts +0 -1
  605. package/lib/security/owner-approval-contracts.js.map +1 -1
  606. package/lib/security/owner-approval-runtime.d.ts +0 -1
  607. package/lib/security/owner-approval-runtime.js.map +1 -1
  608. package/lib/security/owner-approval-store.d.ts +0 -1
  609. package/lib/security/owner-approval-store.js.map +1 -1
  610. package/lib/security/policy-facade.d.ts +0 -1
  611. package/lib/security/policy-facade.js.map +1 -1
  612. package/lib/security/policy-narrowing.d.ts +0 -1
  613. package/lib/security/policy-narrowing.js.map +1 -1
  614. package/lib/security/provenance.d.ts +0 -1
  615. package/lib/security/provenance.js.map +1 -1
  616. package/lib/security/sandbox-docker.d.ts +0 -1
  617. package/lib/security/sandbox-docker.js.map +1 -1
  618. package/lib/security/sandbox.d.ts +0 -1
  619. package/lib/security/sandbox.js.map +1 -1
  620. package/lib/security/trust-level.d.ts +0 -1
  621. package/lib/security/trust-level.js.map +1 -1
  622. package/lib/security/turn-file-authority.d.ts +0 -1
  623. package/lib/security/turn-file-authority.js.map +1 -1
  624. package/lib/security/turn-network-client.d.ts +0 -1
  625. package/lib/security/turn-network-client.js.map +1 -1
  626. package/lib/security/usage-quota.d.ts +3 -7
  627. package/lib/security/usage-quota.js.map +1 -1
  628. package/lib/segment/filter-im-delivery.d.ts +0 -1
  629. package/lib/segment/filter-im-delivery.js.map +1 -1
  630. package/lib/service.d.ts +0 -1
  631. package/lib/service.js.map +1 -1
  632. package/lib/session/approval-port.d.ts +0 -1
  633. package/lib/session/approval-port.js.map +1 -1
  634. package/lib/session/approval-review-agent.d.ts +0 -1
  635. package/lib/session/approval-review-agent.js.map +1 -1
  636. package/lib/session/branch-summarization-runtime.d.ts +0 -1
  637. package/lib/session/branch-summarization-runtime.js.map +1 -1
  638. package/lib/session/contracts.d.ts +0 -1
  639. package/lib/session/contracts.js.map +1 -1
  640. package/lib/session/index.d.ts +0 -1
  641. package/lib/session/index.js.map +1 -1
  642. package/lib/session/session-io.d.ts +0 -1
  643. package/lib/session/session-io.js.map +1 -1
  644. package/lib/session/session-key.d.ts +0 -1
  645. package/lib/session/session-key.js.map +1 -1
  646. package/lib/session/session-system.d.ts +7 -1
  647. package/lib/session/session-system.js +26 -12
  648. package/lib/session/session-system.js.map +1 -1
  649. package/lib/session/session-tree-commands.d.ts +0 -1
  650. package/lib/session/session-tree-commands.js.map +1 -1
  651. package/lib/session/strategies.d.ts +0 -1
  652. package/lib/session/strategies.js.map +1 -1
  653. package/lib/session/turn-ingress-session.d.ts +0 -1
  654. package/lib/session/turn-ingress-session.js.map +1 -1
  655. package/lib/session-tree-runtime.d.ts +0 -1
  656. package/lib/session-tree-runtime.js.map +1 -1
  657. package/lib/skill/capability-catalog.d.ts +0 -1
  658. package/lib/skill/capability-catalog.js.map +1 -1
  659. package/lib/skill/contracts.d.ts +0 -1
  660. package/lib/skill/contracts.js.map +1 -1
  661. package/lib/skill/index.d.ts +0 -1
  662. package/lib/skill/index.js.map +1 -1
  663. package/lib/skill/progressive-disclosure.d.ts +0 -1
  664. package/lib/skill/progressive-disclosure.js.map +1 -1
  665. package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
  666. package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
  667. package/lib/skill/skill-instruction-reader.d.ts +0 -1
  668. package/lib/skill/skill-instruction-reader.js.map +1 -1
  669. package/lib/skill/skill-instructions.d.ts +0 -1
  670. package/lib/skill/skill-instructions.js.map +1 -1
  671. package/lib/skill/skill-registry-as-service.d.ts +0 -1
  672. package/lib/skill/skill-registry-as-service.js.map +1 -1
  673. package/lib/skill/skill-system.d.ts +0 -1
  674. package/lib/skill/skill-system.js.map +1 -1
  675. package/lib/spawn/permission-task.d.ts +0 -1
  676. package/lib/spawn/permission-task.js.map +1 -1
  677. package/lib/spawn/spawn-task-tool.d.ts +0 -1
  678. package/lib/spawn/spawn-task-tool.js.map +1 -1
  679. package/lib/stability/memory-pressure.d.ts +0 -1
  680. package/lib/stability/memory-pressure.js.map +1 -1
  681. package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
  682. package/lib/standalone/standalone-tool-catalog.js.map +1 -1
  683. package/lib/subagent/contracts.d.ts +0 -1
  684. package/lib/subagent/contracts.js.map +1 -1
  685. package/lib/subagent/im-result-sink.d.ts +0 -1
  686. package/lib/subagent/im-result-sink.js.map +1 -1
  687. package/lib/subagent/index.d.ts +0 -1
  688. package/lib/subagent/index.js.map +1 -1
  689. package/lib/subagent/subagent-runtime.d.ts +0 -1
  690. package/lib/subagent/subagent-runtime.js.map +1 -1
  691. package/lib/subagent/subagent-system-init.d.ts +0 -1
  692. package/lib/subagent/subagent-system-init.js.map +1 -1
  693. package/lib/subagent/subagent-system.d.ts +0 -1
  694. package/lib/subagent/subagent-system.js.map +1 -1
  695. package/lib/subagent-ai-events.d.ts +0 -1
  696. package/lib/subagent-ai-events.js.map +1 -1
  697. package/lib/subagent-artifact.d.ts +0 -1
  698. package/lib/subagent-artifact.js.map +1 -1
  699. package/lib/subagent-goal-notify.d.ts +0 -1
  700. package/lib/subagent-goal-notify.js.map +1 -1
  701. package/lib/subagent-parent-context.d.ts +0 -1
  702. package/lib/subagent-parent-context.js.map +1 -1
  703. package/lib/subagent-preset.d.ts +0 -1
  704. package/lib/subagent-preset.js.map +1 -1
  705. package/lib/subagent-prompt.d.ts +0 -1
  706. package/lib/subagent-prompt.js.map +1 -1
  707. package/lib/task-executor.d.ts +0 -1
  708. package/lib/task-executor.js.map +1 -1
  709. package/lib/tool/builtin-policy-extractors.d.ts +0 -1
  710. package/lib/tool/builtin-policy-extractors.js.map +1 -1
  711. package/lib/tool/context-tools.d.ts +0 -1
  712. package/lib/tool/context-tools.js.map +1 -1
  713. package/lib/tool/contracts.d.ts +0 -1
  714. package/lib/tool/contracts.js.map +1 -1
  715. package/lib/tool/conversation-reference-tool.d.ts +0 -1
  716. package/lib/tool/conversation-reference-tool.js.map +1 -1
  717. package/lib/tool/deferred-resolution.d.ts +0 -1
  718. package/lib/tool/deferred-resolution.js.map +1 -1
  719. package/lib/tool/executable-tool-registry.d.ts +0 -1
  720. package/lib/tool/executable-tool-registry.js.map +1 -1
  721. package/lib/tool/index.d.ts +0 -1
  722. package/lib/tool/index.js.map +1 -1
  723. package/lib/tool/pre-exec.d.ts +0 -1
  724. package/lib/tool/pre-exec.js.map +1 -1
  725. package/lib/tool/prepare-turn-tools.d.ts +0 -1
  726. package/lib/tool/prepare-turn-tools.js.map +1 -1
  727. package/lib/tool/runtime.d.ts +0 -1
  728. package/lib/tool/runtime.js.map +1 -1
  729. package/lib/tool/sources.d.ts +0 -1
  730. package/lib/tool/sources.js.map +1 -1
  731. package/lib/tool/tool-approval-gate.d.ts +0 -1
  732. package/lib/tool/tool-approval-gate.js.map +1 -1
  733. package/lib/tool/tool-approval-once-store.d.ts +0 -1
  734. package/lib/tool/tool-approval-once-store.js.map +1 -1
  735. package/lib/tool/tool-execution-authority.d.ts +0 -1
  736. package/lib/tool/tool-execution-authority.js.map +1 -1
  737. package/lib/tool/tool-model-output.d.ts +0 -1
  738. package/lib/tool/tool-model-output.js.map +1 -1
  739. package/lib/tool/tool-runtime.d.ts +0 -1
  740. package/lib/tool/tool-runtime.js.map +1 -1
  741. package/lib/tool/tool-system.d.ts +0 -1
  742. package/lib/tool/tool-system.js.map +1 -1
  743. package/lib/tool/turn-tool-runtime.d.ts +0 -1
  744. package/lib/tool/turn-tool-runtime.js.map +1 -1
  745. package/lib/tool-bridge.d.ts +0 -1
  746. package/lib/tool-bridge.js.map +1 -1
  747. package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
  748. package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
  749. package/lib/tool-catalog/index.d.ts +0 -1
  750. package/lib/tool-catalog/index.js.map +1 -1
  751. package/lib/tool-catalog/resolve-config.d.ts +0 -1
  752. package/lib/tool-catalog/resolve-config.js.map +1 -1
  753. package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
  754. package/lib/tool-catalog/session-deferred-store.js.map +1 -1
  755. package/lib/tool-catalog/tool-catalog.d.ts +8 -1
  756. package/lib/tool-catalog/tool-catalog.js +15 -0
  757. package/lib/tool-catalog/tool-catalog.js.map +1 -1
  758. package/lib/tool-catalog/types.d.ts +0 -1
  759. package/lib/tool-catalog/types.js.map +1 -1
  760. package/lib/trace/context-budget.d.ts +0 -1
  761. package/lib/trace/context-budget.js.map +1 -1
  762. package/lib/trace/index.d.ts +0 -1
  763. package/lib/trace/index.js.map +1 -1
  764. package/lib/trace/turn-trace-archive.d.ts +0 -1
  765. package/lib/trace/turn-trace-archive.js.map +1 -1
  766. package/lib/trace/turn-trace-format.d.ts +0 -1
  767. package/lib/trace/turn-trace-format.js.map +1 -1
  768. package/lib/trace/turn-trace-registry.d.ts +0 -1
  769. package/lib/trace/turn-trace-registry.js.map +1 -1
  770. package/lib/trace/turn-trace-store.d.ts +0 -1
  771. package/lib/trace/turn-trace-store.js.map +1 -1
  772. package/lib/trace/turn-trace.d.ts +0 -1
  773. package/lib/trace/turn-trace.js.map +1 -1
  774. package/lib/turn/agent-turn-context.d.ts +0 -1
  775. package/lib/turn/agent-turn-context.js.map +1 -1
  776. package/lib/turn/auto-continue.d.ts +0 -1
  777. package/lib/turn/auto-continue.js.map +1 -1
  778. package/lib/turn/cancel-intent.d.ts +0 -1
  779. package/lib/turn/cancel-intent.js.map +1 -1
  780. package/lib/turn/deferred-auto-continue.d.ts +0 -1
  781. package/lib/turn/deferred-auto-continue.js.map +1 -1
  782. package/lib/turn/deferred-delivery.d.ts +0 -1
  783. package/lib/turn/deferred-delivery.js.map +1 -1
  784. package/lib/turn/deferred-turn-state.d.ts +0 -1
  785. package/lib/turn/deferred-turn-state.js.map +1 -1
  786. package/lib/turn/execute-agent-turn.d.ts +0 -1
  787. package/lib/turn/execute-agent-turn.js.map +1 -1
  788. package/lib/turn/inbound-media.d.ts +3 -2
  789. package/lib/turn/inbound-media.js +15 -2
  790. package/lib/turn/inbound-media.js.map +1 -1
  791. package/lib/turn/inbound-queue-config.d.ts +0 -1
  792. package/lib/turn/inbound-queue-config.js.map +1 -1
  793. package/lib/turn/inbound-queue-runtime.d.ts +0 -1
  794. package/lib/turn/inbound-queue-runtime.js.map +1 -1
  795. package/lib/turn/inbound-turn-queue.d.ts +0 -1
  796. package/lib/turn/inbound-turn-queue.js.map +1 -1
  797. package/lib/turn/index.d.ts +0 -1
  798. package/lib/turn/index.js.map +1 -1
  799. package/lib/turn/journal-feed.d.ts +0 -1
  800. package/lib/turn/journal-feed.js.map +1 -1
  801. package/lib/turn/journal-integrity.d.ts +0 -1
  802. package/lib/turn/journal-integrity.js.map +1 -1
  803. package/lib/turn/persist-deferred-context.d.ts +0 -1
  804. package/lib/turn/persist-deferred-context.js.map +1 -1
  805. package/lib/turn/persist-subagent-context.d.ts +0 -1
  806. package/lib/turn/persist-subagent-context.js.map +1 -1
  807. package/lib/turn/process-stream.d.ts +0 -1
  808. package/lib/turn/process-stream.js.map +1 -1
  809. package/lib/turn/prompt-access.d.ts +0 -1
  810. package/lib/turn/prompt-access.js.map +1 -1
  811. package/lib/turn/prompt-api.d.ts +0 -1
  812. package/lib/turn/prompt-api.js.map +1 -1
  813. package/lib/turn/prompt-controller.d.ts +0 -1
  814. package/lib/turn/prompt-controller.js.map +1 -1
  815. package/lib/turn/prompt-input.d.ts +0 -1
  816. package/lib/turn/prompt-input.js.map +1 -1
  817. package/lib/turn/session-message-queue.d.ts +0 -1
  818. package/lib/turn/session-message-queue.js.map +1 -1
  819. package/lib/turn/subagent-auto-continue.d.ts +0 -1
  820. package/lib/turn/subagent-auto-continue.js.map +1 -1
  821. package/lib/turn/task-continuation.d.ts +0 -1
  822. package/lib/turn/task-continuation.js.map +1 -1
  823. package/lib/turn/trigger-cancelled-error.d.ts +0 -1
  824. package/lib/turn/trigger-cancelled-error.js.map +1 -1
  825. package/lib/turn/turn-admission-gate.d.ts +0 -1
  826. package/lib/turn/turn-admission-gate.js.map +1 -1
  827. package/lib/turn/turn-complete.d.ts +0 -1
  828. package/lib/turn/turn-complete.js.map +1 -1
  829. package/lib/turn/turn-context-bridge.d.ts +0 -1
  830. package/lib/turn/turn-context-bridge.js.map +1 -1
  831. package/lib/turn/turn-deferred-delta.d.ts +0 -1
  832. package/lib/turn/turn-deferred-delta.js.map +1 -1
  833. package/lib/turn/turn-event-source.d.ts +0 -1
  834. package/lib/turn/turn-event-source.js.map +1 -1
  835. package/lib/turn/turn-ingress.d.ts +3 -1
  836. package/lib/turn/turn-ingress.js.map +1 -1
  837. package/lib/turn/turn-metrics.d.ts +0 -1
  838. package/lib/turn/turn-metrics.js.map +1 -1
  839. package/lib/turn/turn-pipeline.d.ts +0 -1
  840. package/lib/turn/turn-pipeline.js.map +1 -1
  841. package/lib/turn/turn-terminal.d.ts +0 -1
  842. package/lib/turn/turn-terminal.js.map +1 -1
  843. package/lib/turn/turn-tracker.d.ts +0 -1
  844. package/lib/turn/turn-tracker.js.map +1 -1
  845. package/lib/types/disposable.d.ts +0 -1
  846. package/lib/types/disposable.js.map +1 -1
  847. package/lib/typing-indicator/adapter-integration.d.ts +0 -1
  848. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  849. package/lib/typing-indicator/index.d.ts +0 -1
  850. package/lib/typing-indicator/index.js.map +1 -1
  851. package/lib/user-profile.d.ts +0 -1
  852. package/lib/user-profile.js.map +1 -1
  853. package/lib/utils/config-env.d.ts +0 -1
  854. package/lib/utils/config-env.js.map +1 -1
  855. package/lib/utils/keyed-mutex.d.ts +0 -1
  856. package/lib/utils/keyed-mutex.js.map +1 -1
  857. package/lib/web/bing-search-html.d.ts +0 -1
  858. package/lib/web/bing-search-html.js.map +1 -1
  859. package/lib/web/web-search-locale.d.ts +0 -1
  860. package/lib/web/web-search-locale.js.map +1 -1
  861. package/lib/web/web-tool-utils.d.ts +0 -1
  862. package/lib/web/web-tool-utils.js.map +1 -1
  863. package/lib/zhin-agent/index.d.ts +0 -1
  864. package/lib/zhin-agent/index.js.map +1 -1
  865. package/lib/zhin-agent/runtime-modules.d.ts +0 -1
  866. package/lib/zhin-agent/runtime-modules.js.map +1 -1
  867. package/package.json +12 -12
  868. package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
  869. package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
  870. package/lib/activity-feedback/event-context.d.ts.map +0 -1
  871. package/lib/activity-feedback/index.d.ts.map +0 -1
  872. package/lib/activity-feedback/manager.d.ts.map +0 -1
  873. package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
  874. package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
  875. package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
  876. package/lib/activity-feedback/types.d.ts.map +0 -1
  877. package/lib/ai-event-bus.d.ts.map +0 -1
  878. package/lib/ai-event-contract.d.ts.map +0 -1
  879. package/lib/ai-event-subscriber.d.ts.map +0 -1
  880. package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
  881. package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
  882. package/lib/assistant/config.d.ts.map +0 -1
  883. package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
  884. package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
  885. package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
  886. package/lib/assistant/domains/home-entity.d.ts.map +0 -1
  887. package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
  888. package/lib/assistant/event-ingress.d.ts.map +0 -1
  889. package/lib/assistant/event-types.d.ts.map +0 -1
  890. package/lib/assistant/home-config.d.ts.map +0 -1
  891. package/lib/assistant/home-facade.d.ts.map +0 -1
  892. package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
  893. package/lib/assistant/home-policy.d.ts.map +0 -1
  894. package/lib/assistant/home-tools.d.ts.map +0 -1
  895. package/lib/assistant/index.d.ts.map +0 -1
  896. package/lib/assistant/job-creator.d.ts.map +0 -1
  897. package/lib/assistant/job-engine.d.ts.map +0 -1
  898. package/lib/assistant/job-scheduler.d.ts.map +0 -1
  899. package/lib/assistant/job-store.d.ts.map +0 -1
  900. package/lib/assistant/job-utils.d.ts.map +0 -1
  901. package/lib/assistant/job-worker.d.ts.map +0 -1
  902. package/lib/assistant/notification-router.d.ts.map +0 -1
  903. package/lib/assistant/profile-loader.d.ts.map +0 -1
  904. package/lib/assistant/profile-types.d.ts.map +0 -1
  905. package/lib/assistant/runtime-contract.d.ts.map +0 -1
  906. package/lib/assistant/schedule-execution.d.ts.map +0 -1
  907. package/lib/assistant/schedule-job-service.d.ts.map +0 -1
  908. package/lib/assistant/schedule-skills.d.ts.map +0 -1
  909. package/lib/assistant/types.d.ts.map +0 -1
  910. package/lib/authoring/bridge.d.ts.map +0 -1
  911. package/lib/authoring/define-eval.d.ts.map +0 -1
  912. package/lib/authoring/define-hook.d.ts.map +0 -1
  913. package/lib/authoring/define-skill.d.ts.map +0 -1
  914. package/lib/authoring/disable-tool.d.ts.map +0 -1
  915. package/lib/authoring/entries/evals.d.ts.map +0 -1
  916. package/lib/authoring/entries/hooks.d.ts.map +0 -1
  917. package/lib/authoring/entries/skills.d.ts.map +0 -1
  918. package/lib/authoring/index.d.ts.map +0 -1
  919. package/lib/authoring/types.d.ts.map +0 -1
  920. package/lib/bootstrap.d.ts.map +0 -1
  921. package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
  922. package/lib/common-adapter-tools.d.ts.map +0 -1
  923. package/lib/config/agent-binding-registry.d.ts.map +0 -1
  924. package/lib/config/agent-bindings.d.ts.map +0 -1
  925. package/lib/config/agent-interfaces.d.ts.map +0 -1
  926. package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
  927. package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
  928. package/lib/config/fix-ai-config.d.ts.map +0 -1
  929. package/lib/config/index.d.ts.map +0 -1
  930. package/lib/config/keyword-triggers.d.ts.map +0 -1
  931. package/lib/config/model-harness-runtime.d.ts.map +0 -1
  932. package/lib/config/model-harness.d.ts.map +0 -1
  933. package/lib/config/normalize-ai-config.d.ts.map +0 -1
  934. package/lib/config/perception-config.d.ts.map +0 -1
  935. package/lib/config/provider-instance.d.ts.map +0 -1
  936. package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
  937. package/lib/config/types.d.ts.map +0 -1
  938. package/lib/config/validate-ai-config.d.ts.map +0 -1
  939. package/lib/config/zhin-agent-config.d.ts.map +0 -1
  940. package/lib/config/zhin-agent-constants.d.ts.map +0 -1
  941. package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
  942. package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
  943. package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
  944. package/lib/context/agents-instruction.d.ts.map +0 -1
  945. package/lib/context/context-system.d.ts.map +0 -1
  946. package/lib/context/context-tail-limit.d.ts.map +0 -1
  947. package/lib/context/contracts.d.ts.map +0 -1
  948. package/lib/context/default-builders.d.ts.map +0 -1
  949. package/lib/context/envelope-parts.d.ts.map +0 -1
  950. package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
  951. package/lib/context/index.d.ts.map +0 -1
  952. package/lib/context/model-resolver.d.ts.map +0 -1
  953. package/lib/context/turn-envelope.d.ts.map +0 -1
  954. package/lib/context/turn-user-message.d.ts.map +0 -1
  955. package/lib/core/agent-core-run.d.ts.map +0 -1
  956. package/lib/core/agent-core.d.ts.map +0 -1
  957. package/lib/core/agent-loop-standalone.d.ts.map +0 -1
  958. package/lib/core/agent-loop-turn.d.ts.map +0 -1
  959. package/lib/core/agent-run-shared.d.ts.map +0 -1
  960. package/lib/core/compose-deps.d.ts.map +0 -1
  961. package/lib/core/contracts.d.ts.map +0 -1
  962. package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
  963. package/lib/core/exploration-budget.d.ts.map +0 -1
  964. package/lib/core/index.d.ts.map +0 -1
  965. package/lib/core/missing-tool-resolver.d.ts.map +0 -1
  966. package/lib/core/progress-reporter.d.ts.map +0 -1
  967. package/lib/core/spawn-delegation.d.ts.map +0 -1
  968. package/lib/core/structured-reply-recovery.d.ts.map +0 -1
  969. package/lib/core/text-sanitize.d.ts.map +0 -1
  970. package/lib/core/tool-calls-user-format.d.ts.map +0 -1
  971. package/lib/core/tool-execution-authority.d.ts.map +0 -1
  972. package/lib/core/turn-completion-usage.d.ts.map +0 -1
  973. package/lib/core/turn-event-mapper.d.ts.map +0 -1
  974. package/lib/core/turn-progress.d.ts.map +0 -1
  975. package/lib/create-agent-session.d.ts.map +0 -1
  976. package/lib/decision/approval-judgment.d.ts.map +0 -1
  977. package/lib/decision/approval.d.ts.map +0 -1
  978. package/lib/decision/config.d.ts.map +0 -1
  979. package/lib/decision/index.d.ts.map +0 -1
  980. package/lib/decision/rank.d.ts.map +0 -1
  981. package/lib/decision/retrieval.d.ts.map +0 -1
  982. package/lib/decision/types.d.ts.map +0 -1
  983. package/lib/deferred-worker-runner.d.ts.map +0 -1
  984. package/lib/deferred-worker-tool-load.d.ts.map +0 -1
  985. package/lib/detached-task/index.d.ts.map +0 -1
  986. package/lib/detached-task/interjection.d.ts.map +0 -1
  987. package/lib/detached-task/runner.d.ts.map +0 -1
  988. package/lib/detached-task/store.d.ts.map +0 -1
  989. package/lib/detached-task/token.d.ts.map +0 -1
  990. package/lib/detached-task/types.d.ts.map +0 -1
  991. package/lib/discovery/agent-surface-info.d.ts.map +0 -1
  992. package/lib/discovery/agent-surface.d.ts.map +0 -1
  993. package/lib/discovery/agents.d.ts.map +0 -1
  994. package/lib/discovery/utils.d.ts.map +0 -1
  995. package/lib/event/agent-stream-bus.d.ts.map +0 -1
  996. package/lib/event/agent-stream-hooks.d.ts.map +0 -1
  997. package/lib/event/ai-event-bus.d.ts.map +0 -1
  998. package/lib/event/contracts.d.ts.map +0 -1
  999. package/lib/event/event-emitter.d.ts.map +0 -1
  1000. package/lib/event/event-system.d.ts.map +0 -1
  1001. package/lib/event/filtering-middleware.d.ts.map +0 -1
  1002. package/lib/event/hook-stream-sink.d.ts.map +0 -1
  1003. package/lib/event/index.d.ts.map +0 -1
  1004. package/lib/event/logging-middleware.d.ts.map +0 -1
  1005. package/lib/event/publish-agent-stream.d.ts.map +0 -1
  1006. package/lib/event/session-events.d.ts.map +0 -1
  1007. package/lib/event/turn-event.d.ts.map +0 -1
  1008. package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
  1009. package/lib/index.d.ts.map +0 -1
  1010. package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
  1011. package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
  1012. package/lib/init/configure-zhin-agent.d.ts.map +0 -1
  1013. package/lib/init/define-ai-database-models.d.ts.map +0 -1
  1014. package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
  1015. package/lib/init/introspection-output.d.ts.map +0 -1
  1016. package/lib/init/runtime-management-commands.d.ts.map +0 -1
  1017. package/lib/interaction/index.d.ts.map +0 -1
  1018. package/lib/interaction/interaction-router.d.ts.map +0 -1
  1019. package/lib/internal/agent-host.d.ts.map +0 -1
  1020. package/lib/internal/ai-service-refs.d.ts.map +0 -1
  1021. package/lib/internal/as-private.d.ts.map +0 -1
  1022. package/lib/internal/host-types.d.ts.map +0 -1
  1023. package/lib/internal/phase-trace.d.ts.map +0 -1
  1024. package/lib/internal/prompt-trace.d.ts.map +0 -1
  1025. package/lib/internal/turn-context.d.ts.map +0 -1
  1026. package/lib/journal/file-journal-store.d.ts.map +0 -1
  1027. package/lib/journal/index.d.ts.map +0 -1
  1028. package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
  1029. package/lib/mcp-client/bridge.d.ts.map +0 -1
  1030. package/lib/mcp-client/connection.d.ts.map +0 -1
  1031. package/lib/mcp-client/index.d.ts.map +0 -1
  1032. package/lib/media/deliver-subagent-result.d.ts.map +0 -1
  1033. package/lib/media/inbound-refs.d.ts.map +0 -1
  1034. package/lib/media/index.d.ts.map +0 -1
  1035. package/lib/media/media-capabilities.d.ts.map +0 -1
  1036. package/lib/media/media-normalize.d.ts.map +0 -1
  1037. package/lib/media/media-publisher.d.ts.map +0 -1
  1038. package/lib/media/media-router.d.ts.map +0 -1
  1039. package/lib/media/media-spool.d.ts.map +0 -1
  1040. package/lib/media/media-tool-bridge.d.ts.map +0 -1
  1041. package/lib/media/media-types.d.ts.map +0 -1
  1042. package/lib/media/perception.d.ts.map +0 -1
  1043. package/lib/media/resolve-config.d.ts.map +0 -1
  1044. package/lib/media/subagent-inbound.d.ts.map +0 -1
  1045. package/lib/media/subagent-user-delivery.d.ts.map +0 -1
  1046. package/lib/media/vision-capability.d.ts.map +0 -1
  1047. package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
  1048. package/lib/memory/compaction-runtime.d.ts.map +0 -1
  1049. package/lib/memory/context-repository-store.d.ts.map +0 -1
  1050. package/lib/memory/contracts.d.ts.map +0 -1
  1051. package/lib/memory/index.d.ts.map +0 -1
  1052. package/lib/memory/memory-system.d.ts.map +0 -1
  1053. package/lib/memory/memory-write-policy.d.ts.map +0 -1
  1054. package/lib/memory/semantic-recall.d.ts.map +0 -1
  1055. package/lib/memory/told-ledger.d.ts.map +0 -1
  1056. package/lib/memory-layers.d.ts.map +0 -1
  1057. package/lib/orchestration/five-agent/index.d.ts.map +0 -1
  1058. package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
  1059. package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
  1060. package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
  1061. package/lib/outbound/agent-output.d.ts.map +0 -1
  1062. package/lib/outbound/send-proactive.d.ts.map +0 -1
  1063. package/lib/outbound/structured-reply.d.ts.map +0 -1
  1064. package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
  1065. package/lib/plugin-loop-hooks.d.ts.map +0 -1
  1066. package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
  1067. package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
  1068. package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
  1069. package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
  1070. package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
  1071. package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
  1072. package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
  1073. package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
  1074. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
  1075. package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
  1076. package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
  1077. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
  1078. package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
  1079. package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
  1080. package/lib/plugin-runtime/index.d.ts.map +0 -1
  1081. package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
  1082. package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
  1083. package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
  1084. package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
  1085. package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
  1086. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
  1087. package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
  1088. package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
  1089. package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
  1090. package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
  1091. package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
  1092. package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
  1093. package/lib/prompt/assembly.d.ts.map +0 -1
  1094. package/lib/prompt/estimate-tokens.d.ts.map +0 -1
  1095. package/lib/prompt/git-context.d.ts.map +0 -1
  1096. package/lib/prompt/index.d.ts.map +0 -1
  1097. package/lib/prompt/model-aware-builder.d.ts.map +0 -1
  1098. package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
  1099. package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
  1100. package/lib/prompt/prompt-budget.d.ts.map +0 -1
  1101. package/lib/prompt/prompt-builder.d.ts.map +0 -1
  1102. package/lib/prompt/rules/code-references.d.ts.map +0 -1
  1103. package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
  1104. package/lib/prompt/rules/editing.d.ts.map +0 -1
  1105. package/lib/prompt/rules/error-handling.d.ts.map +0 -1
  1106. package/lib/prompt/rules/index.d.ts.map +0 -1
  1107. package/lib/prompt/rules/memory.d.ts.map +0 -1
  1108. package/lib/prompt/rules/task-completion.d.ts.map +0 -1
  1109. package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
  1110. package/lib/prompt/system-prompt.d.ts.map +0 -1
  1111. package/lib/prompt/templates.d.ts.map +0 -1
  1112. package/lib/prompt/tokens.d.ts.map +0 -1
  1113. package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
  1114. package/lib/prompt/workspace-prompt.d.ts.map +0 -1
  1115. package/lib/reserved-tools.d.ts.map +0 -1
  1116. package/lib/resource-hub/hook-registry.d.ts.map +0 -1
  1117. package/lib/resource-hub/index.d.ts.map +0 -1
  1118. package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
  1119. package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
  1120. package/lib/resource-hub/public-api.d.ts.map +0 -1
  1121. package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
  1122. package/lib/resource-hub/resource-registry.d.ts.map +0 -1
  1123. package/lib/resource-hub/role-configs.d.ts.map +0 -1
  1124. package/lib/resource-hub/skill-registry.d.ts.map +0 -1
  1125. package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
  1126. package/lib/resource-hub/tool-selection.d.ts.map +0 -1
  1127. package/lib/resource-hub/types.d.ts.map +0 -1
  1128. package/lib/routing/runtime-binding.d.ts.map +0 -1
  1129. package/lib/routing/subagent-summarize.d.ts.map +0 -1
  1130. package/lib/schedule-cron.d.ts.map +0 -1
  1131. package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
  1132. package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
  1133. package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
  1134. package/lib/schedule-domain/index.d.ts.map +0 -1
  1135. package/lib/schedule-domain/output-validator.d.ts.map +0 -1
  1136. package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
  1137. package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
  1138. package/lib/schedule-domain/security-harness.d.ts.map +0 -1
  1139. package/lib/schedule-manager.d.ts.map +0 -1
  1140. package/lib/seam/index.d.ts.map +0 -1
  1141. package/lib/seam/seam-integration.d.ts.map +0 -1
  1142. package/lib/seam/seam-provider.d.ts.map +0 -1
  1143. package/lib/seam/skill-service.d.ts.map +0 -1
  1144. package/lib/seam/tokens.d.ts.map +0 -1
  1145. package/lib/seam/tool-service.d.ts.map +0 -1
  1146. package/lib/security/anomaly-detection.d.ts.map +0 -1
  1147. package/lib/security/audit-logger.d.ts.map +0 -1
  1148. package/lib/security/comm-message-context.d.ts.map +0 -1
  1149. package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
  1150. package/lib/security/exec-policy.d.ts.map +0 -1
  1151. package/lib/security/file-policy.d.ts.map +0 -1
  1152. package/lib/security/file-role-policy.d.ts.map +0 -1
  1153. package/lib/security/index.d.ts.map +0 -1
  1154. package/lib/security/network-authority.d.ts.map +0 -1
  1155. package/lib/security/network-policy-context.d.ts.map +0 -1
  1156. package/lib/security/network-policy.d.ts.map +0 -1
  1157. package/lib/security/outbound-leak-guard.d.ts.map +0 -1
  1158. package/lib/security/owner-approval-contracts.d.ts.map +0 -1
  1159. package/lib/security/owner-approval-runtime.d.ts.map +0 -1
  1160. package/lib/security/owner-approval-store.d.ts.map +0 -1
  1161. package/lib/security/policy-facade.d.ts.map +0 -1
  1162. package/lib/security/policy-narrowing.d.ts.map +0 -1
  1163. package/lib/security/provenance.d.ts.map +0 -1
  1164. package/lib/security/sandbox-docker.d.ts.map +0 -1
  1165. package/lib/security/sandbox.d.ts.map +0 -1
  1166. package/lib/security/trust-level.d.ts.map +0 -1
  1167. package/lib/security/turn-file-authority.d.ts.map +0 -1
  1168. package/lib/security/turn-network-client.d.ts.map +0 -1
  1169. package/lib/security/usage-quota.d.ts.map +0 -1
  1170. package/lib/segment/filter-im-delivery.d.ts.map +0 -1
  1171. package/lib/service.d.ts.map +0 -1
  1172. package/lib/session/approval-port.d.ts.map +0 -1
  1173. package/lib/session/approval-review-agent.d.ts.map +0 -1
  1174. package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
  1175. package/lib/session/contracts.d.ts.map +0 -1
  1176. package/lib/session/index.d.ts.map +0 -1
  1177. package/lib/session/session-io.d.ts.map +0 -1
  1178. package/lib/session/session-key.d.ts.map +0 -1
  1179. package/lib/session/session-system.d.ts.map +0 -1
  1180. package/lib/session/session-tree-commands.d.ts.map +0 -1
  1181. package/lib/session/strategies.d.ts.map +0 -1
  1182. package/lib/session/turn-ingress-session.d.ts.map +0 -1
  1183. package/lib/session-tree-runtime.d.ts.map +0 -1
  1184. package/lib/skill/capability-catalog.d.ts.map +0 -1
  1185. package/lib/skill/contracts.d.ts.map +0 -1
  1186. package/lib/skill/index.d.ts.map +0 -1
  1187. package/lib/skill/progressive-disclosure.d.ts.map +0 -1
  1188. package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
  1189. package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
  1190. package/lib/skill/skill-instructions.d.ts.map +0 -1
  1191. package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
  1192. package/lib/skill/skill-system.d.ts.map +0 -1
  1193. package/lib/spawn/permission-task.d.ts.map +0 -1
  1194. package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
  1195. package/lib/stability/memory-pressure.d.ts.map +0 -1
  1196. package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
  1197. package/lib/subagent/contracts.d.ts.map +0 -1
  1198. package/lib/subagent/im-result-sink.d.ts.map +0 -1
  1199. package/lib/subagent/index.d.ts.map +0 -1
  1200. package/lib/subagent/subagent-runtime.d.ts.map +0 -1
  1201. package/lib/subagent/subagent-system-init.d.ts.map +0 -1
  1202. package/lib/subagent/subagent-system.d.ts.map +0 -1
  1203. package/lib/subagent-ai-events.d.ts.map +0 -1
  1204. package/lib/subagent-artifact.d.ts.map +0 -1
  1205. package/lib/subagent-goal-notify.d.ts.map +0 -1
  1206. package/lib/subagent-parent-context.d.ts.map +0 -1
  1207. package/lib/subagent-preset.d.ts.map +0 -1
  1208. package/lib/subagent-prompt.d.ts.map +0 -1
  1209. package/lib/task-executor.d.ts.map +0 -1
  1210. package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
  1211. package/lib/tool/context-tools.d.ts.map +0 -1
  1212. package/lib/tool/contracts.d.ts.map +0 -1
  1213. package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
  1214. package/lib/tool/deferred-resolution.d.ts.map +0 -1
  1215. package/lib/tool/executable-tool-registry.d.ts.map +0 -1
  1216. package/lib/tool/index.d.ts.map +0 -1
  1217. package/lib/tool/pre-exec.d.ts.map +0 -1
  1218. package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
  1219. package/lib/tool/runtime.d.ts.map +0 -1
  1220. package/lib/tool/sources.d.ts.map +0 -1
  1221. package/lib/tool/tool-approval-gate.d.ts.map +0 -1
  1222. package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
  1223. package/lib/tool/tool-execution-authority.d.ts.map +0 -1
  1224. package/lib/tool/tool-model-output.d.ts.map +0 -1
  1225. package/lib/tool/tool-runtime.d.ts.map +0 -1
  1226. package/lib/tool/tool-system.d.ts.map +0 -1
  1227. package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
  1228. package/lib/tool-bridge.d.ts.map +0 -1
  1229. package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
  1230. package/lib/tool-catalog/index.d.ts.map +0 -1
  1231. package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
  1232. package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
  1233. package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
  1234. package/lib/tool-catalog/types.d.ts.map +0 -1
  1235. package/lib/trace/context-budget.d.ts.map +0 -1
  1236. package/lib/trace/index.d.ts.map +0 -1
  1237. package/lib/trace/turn-trace-archive.d.ts.map +0 -1
  1238. package/lib/trace/turn-trace-format.d.ts.map +0 -1
  1239. package/lib/trace/turn-trace-registry.d.ts.map +0 -1
  1240. package/lib/trace/turn-trace-store.d.ts.map +0 -1
  1241. package/lib/trace/turn-trace.d.ts.map +0 -1
  1242. package/lib/turn/agent-turn-context.d.ts.map +0 -1
  1243. package/lib/turn/auto-continue.d.ts.map +0 -1
  1244. package/lib/turn/cancel-intent.d.ts.map +0 -1
  1245. package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
  1246. package/lib/turn/deferred-delivery.d.ts.map +0 -1
  1247. package/lib/turn/deferred-turn-state.d.ts.map +0 -1
  1248. package/lib/turn/execute-agent-turn.d.ts.map +0 -1
  1249. package/lib/turn/inbound-media.d.ts.map +0 -1
  1250. package/lib/turn/inbound-queue-config.d.ts.map +0 -1
  1251. package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
  1252. package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
  1253. package/lib/turn/index.d.ts.map +0 -1
  1254. package/lib/turn/journal-feed.d.ts.map +0 -1
  1255. package/lib/turn/journal-integrity.d.ts.map +0 -1
  1256. package/lib/turn/persist-deferred-context.d.ts.map +0 -1
  1257. package/lib/turn/persist-subagent-context.d.ts.map +0 -1
  1258. package/lib/turn/process-stream.d.ts.map +0 -1
  1259. package/lib/turn/prompt-access.d.ts.map +0 -1
  1260. package/lib/turn/prompt-api.d.ts.map +0 -1
  1261. package/lib/turn/prompt-controller.d.ts.map +0 -1
  1262. package/lib/turn/prompt-input.d.ts.map +0 -1
  1263. package/lib/turn/session-message-queue.d.ts.map +0 -1
  1264. package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
  1265. package/lib/turn/task-continuation.d.ts.map +0 -1
  1266. package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
  1267. package/lib/turn/turn-admission-gate.d.ts.map +0 -1
  1268. package/lib/turn/turn-complete.d.ts.map +0 -1
  1269. package/lib/turn/turn-context-bridge.d.ts.map +0 -1
  1270. package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
  1271. package/lib/turn/turn-event-source.d.ts.map +0 -1
  1272. package/lib/turn/turn-ingress.d.ts.map +0 -1
  1273. package/lib/turn/turn-metrics.d.ts.map +0 -1
  1274. package/lib/turn/turn-pipeline.d.ts.map +0 -1
  1275. package/lib/turn/turn-terminal.d.ts.map +0 -1
  1276. package/lib/turn/turn-tracker.d.ts.map +0 -1
  1277. package/lib/types/disposable.d.ts.map +0 -1
  1278. package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
  1279. package/lib/typing-indicator/index.d.ts.map +0 -1
  1280. package/lib/user-profile.d.ts.map +0 -1
  1281. package/lib/utils/config-env.d.ts.map +0 -1
  1282. package/lib/utils/keyed-mutex.d.ts.map +0 -1
  1283. package/lib/web/bing-search-html.d.ts.map +0 -1
  1284. package/lib/web/web-search-locale.d.ts.map +0 -1
  1285. package/lib/web/web-tool-utils.d.ts.map +0 -1
  1286. package/lib/zhin-agent/index.d.ts.map +0 -1
  1287. package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
@@ -1,54 +1,22 @@
1
- import type { TokenUsage } from '@zhin.js/ai';
1
+ import type { AiCompletion } from '@zhin.js/core';
2
2
  import type { AIService } from '../service.js';
3
- import type { UsageQuota, UsageSubject } from '../security/usage-quota.js';
4
- export interface AiCompletionUntrustedInput {
5
- /** Where the text came from, e.g. `group-chat`; shown to the model as the block's source. */
6
- readonly source: string;
7
- readonly text: string;
8
- }
9
- export interface AiCompletionInput {
10
- /** Required label for logs and usage attribution, e.g. `summarize-chat`. */
11
- readonly purpose: string;
12
- /** Trusted instructions written by the plugin. */
13
- readonly system?: string;
14
- /** Trusted input written by the plugin. */
15
- readonly prompt: string;
16
- /** Untrusted content (group chat, web pages, files); always rendered as data, never as instructions. */
17
- readonly untrusted?: readonly AiCompletionUntrustedInput[];
18
- /** Agent binding whose provider / model is used; defaults to `zhin`. */
19
- readonly agent?: string;
20
- /** Model id on the binding's provider; defaults to the binding's model. */
21
- readonly model?: string;
22
- readonly maxTokens?: number;
23
- readonly temperature?: number;
24
- /** Per-request timeout in ms; defaults to the provider resilience setting. */
25
- readonly timeoutMs?: number;
26
- readonly signal?: AbortSignal;
27
- /** The IM user (and group) this call is made for; counts against their usage quota. */
28
- readonly onBehalfOf?: UsageSubject;
29
- }
30
- export interface AiCompletionResult {
31
- readonly text: string;
32
- /** Model that actually answered (may be a fallback). */
33
- readonly model: string;
34
- readonly durationMs: number;
35
- readonly usage?: TokenUsage;
36
- }
37
- export interface AiCompletion {
38
- completeText(input: AiCompletionInput): Promise<AiCompletionResult>;
39
- }
40
- /** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. */
3
+ import type { UsageQuota } from '../security/usage-quota.js';
4
+ /**
5
+ * The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the
6
+ * `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).
7
+ */
8
+ export { aiCompletionToken } from '@zhin.js/core';
9
+ export type { AiCompletion, AiCompletionInput, AiCompletionResult, AiCompletionUntrustedInput, UsageSubject, } from '@zhin.js/core';
10
+ /** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */
41
11
  export declare class AiCompletionQuotaError extends Error {
12
+ readonly name: "AiCompletionQuotaError";
42
13
  readonly scope: 'user' | 'group';
43
14
  readonly retryAfterSeconds: number;
44
15
  constructor(message: string, scope: 'user' | 'group', retryAfterSeconds: number);
45
16
  }
46
- /** Generation-owned plain text completion for plugins. Absent when no AI host is installed. */
47
- export declare const aiCompletionToken: import("@zhin.js/plugin-runtime").Token<AiCompletion>;
48
17
  export interface AiCompletionOptions {
49
- readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'>;
18
+ readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'> & Partial<Pick<AIService, 'getModelRegistry'>>;
50
19
  readonly usageQuota?: Pick<UsageQuota, 'check' | 'record'>;
51
20
  readonly now?: () => number;
52
21
  }
53
22
  export declare function createAiCompletion(options: AiCompletionOptions): AiCompletion;
54
- //# sourceMappingURL=ai-completion.d.ts.map
@@ -6,29 +6,35 @@
6
6
  * tools such as file access while it reads untrusted group chat. This port does
7
7
  * one completion with **no tools at all** — the request carries no tool
8
8
  * definitions, so nothing the model writes can be executed — and reuses the
9
- * provider resilience chain (retry, backoff, timeout, same-provider fallback).
9
+ * provider resilience chain (retry, backoff, timeout). There is no automatic model
10
+ * fallback: a plugin call must never silently fail over to a pricier model, and no
11
+ * per-binding fallback list exists to opt in to.
10
12
  *
11
13
  * Untrusted text is rendered as `external_content` data blocks (#726), and a
12
14
  * call made on behalf of an IM user counts against that user's / group's usage
13
15
  * quota (#727).
14
16
  */
15
- import { createToken } from '@zhin.js/plugin-runtime';
17
+ import { resolveModelCandidates } from '../context/model-resolver.js';
16
18
  import { formatCompact, getLogger } from '@zhin.js/logger';
17
19
  import { renderExternalContent } from '../security/trust-level.js';
20
+ import { estimatePromptTokens } from '../prompt/estimate-tokens.js';
21
+ /**
22
+ * The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the
23
+ * `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).
24
+ */
25
+ export { aiCompletionToken } from '@zhin.js/core';
18
26
  const logger = getLogger('agent');
19
- /** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. */
27
+ /** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */
20
28
  export class AiCompletionQuotaError extends Error {
29
+ name = 'AiCompletionQuotaError';
21
30
  scope;
22
31
  retryAfterSeconds;
23
32
  constructor(message, scope, retryAfterSeconds) {
24
33
  super(message);
25
- this.name = 'AiCompletionQuotaError';
26
34
  this.scope = scope;
27
35
  this.retryAfterSeconds = retryAfterSeconds;
28
36
  }
29
37
  }
30
- /** Generation-owned plain text completion for plugins. Absent when no AI host is installed. */
31
- export const aiCompletionToken = createToken('zhin.agent.ai-completion', 'Tool-free text completion with retry and fallback, for plugins');
32
38
  export function createAiCompletion(options) {
33
39
  const now = options.now ?? Date.now;
34
40
  return Object.freeze({
@@ -57,9 +63,17 @@ export function createAiCompletion(options) {
57
63
  maxTokens: input.maxTokens,
58
64
  timeoutMs: input.timeoutMs,
59
65
  signal: input.signal,
60
- fallbackModels: provider.models.filter(id => id && id !== model),
66
+ // Same candidates as the conversation path (bound model, registry picks, then the
67
+ // provider's models); whether they are tried is up to `providerResilience.fallback`.
68
+ fallbackModels: resolveModelCandidates(provider.models, options.service.getModelRegistry?.() ?? null, binding.providerAlias, { chatModel: binding.model }, 'chat', model).filter(id => id && id !== model),
61
69
  resilience: options.service.getAgentConfig()?.providerResilience,
62
70
  };
71
+ // Reserve the prompt estimate before the call: concurrent calls then see each other's
72
+ // spend at `check`, and a call that fails after reaching the provider is still billed.
73
+ const quotaSubject = input.onBehalfOf && options.usageQuota ? input.onBehalfOf : undefined;
74
+ const reserved = quotaSubject ? estimatePromptTokens(`${input.system ?? ''}\n${user}`) : 0;
75
+ if (quotaSubject && reserved > 0)
76
+ options.usageQuota.record(quotaSubject, reserved);
63
77
  const started = now();
64
78
  let result;
65
79
  try {
@@ -80,9 +94,13 @@ export function createAiCompletion(options) {
80
94
  throw error;
81
95
  }
82
96
  const durationMs = now() - started;
83
- const totalTokens = result.usage?.totalTokens;
84
- if (input.onBehalfOf && options.usageQuota && totalTokens) {
85
- options.usageQuota.record(input.onBehalfOf, totalTokens);
97
+ const reportedTokens = result.usage?.totalTokens;
98
+ const totalTokens = reportedTokens || undefined;
99
+ if (quotaSubject) {
100
+ // Reported usage settles the reservation; without it, estimate the answer on top of the prompt.
101
+ const settled = totalTokens ?? reserved + estimatePromptTokens(result.text);
102
+ if (settled > reserved)
103
+ options.usageQuota.record(quotaSubject, settled - reserved);
86
104
  }
87
105
  logger.info(formatCompact({
88
106
  op: 'ai_completion',
@@ -1 +1 @@
1
- {"version":3,"file":"ai-completion.js","sourceRoot":"","sources":["../../src/plugin-runtime/ai-completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-completion.js","sourceRoot":"","sources":["../../src/plugin-runtime/ai-completion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plain text completion for plugins (#804).\n *\n * Plugins that only need text (summarise a chat, classify a message, rewrite a\n * reply) should not borrow a whole Agent turn: that is slow, and the model gets\n * tools such as file access while it reads untrusted group chat. This port does\n * one completion with **no tools at all** — the request carries no tool\n * definitions, so nothing the model writes can be executed — and reuses the\n * provider resilience chain (retry, backoff, timeout). There is no automatic model\n * fallback: a plugin call must never silently fail over to a pricier model, and no\n * per-binding fallback list exists to opt in to.\n *\n * Untrusted text is rendered as `external_content` data blocks (#726), and a\n * call made on behalf of an IM user counts against that user's / group's usage\n * quota (#727).\n */\nimport { resolveModelCandidates } from '../context/model-resolver.js';\nimport type { AIProvider, ProviderResilienceConfig, TextCompleteResult } from '@zhin.js/ai';\nimport type { AiCompletion, AiCompletionInput, AiCompletionResult } from '@zhin.js/core';\nimport { formatCompact, getLogger } from '@zhin.js/logger';\nimport type { AIService } from '../service.js';\nimport { renderExternalContent } from '../security/trust-level.js';\nimport type { UsageQuota } from '../security/usage-quota.js';\nimport { estimatePromptTokens } from '../prompt/estimate-tokens.js';\n\n/**\n * The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the\n * `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).\n */\nexport { aiCompletionToken } from '@zhin.js/core';\nexport type {\n AiCompletion,\n AiCompletionInput,\n AiCompletionResult,\n AiCompletionUntrustedInput,\n UsageSubject,\n} from '@zhin.js/core';\n\nconst logger = getLogger('agent');\n\n/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */\nexport class AiCompletionQuotaError extends Error {\n override readonly name = 'AiCompletionQuotaError' as const;\n readonly scope: 'user' | 'group';\n readonly retryAfterSeconds: number;\n\n constructor(message: string, scope: 'user' | 'group', retryAfterSeconds: number) {\n super(message);\n this.scope = scope;\n this.retryAfterSeconds = retryAfterSeconds;\n }\n}\n\nexport interface AiCompletionOptions {\n readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'>\n & Partial<Pick<AIService, 'getModelRegistry'>>;\n readonly usageQuota?: Pick<UsageQuota, 'check' | 'record'>;\n readonly now?: () => number;\n}\n\nexport function createAiCompletion(options: AiCompletionOptions): AiCompletion {\n const now = options.now ?? Date.now;\n return Object.freeze({\n async completeText(input: AiCompletionInput): Promise<AiCompletionResult> {\n const purpose = requiredText(input.purpose, 'purpose');\n const prompt = requiredText(input.prompt, 'prompt');\n const registry = options.service.getBindingRegistry();\n const binding = input.agent ? registry.getBinding(input.agent) : registry.requireZhinBinding();\n if (!binding) throw new Error(`AI completion: agent binding \"${input.agent}\" not found`);\n const provider: AIProvider = options.service.getProvider(binding.providerAlias);\n const model = input.model?.trim() || binding.model || provider.models[0] || '';\n\n if (input.onBehalfOf && options.usageQuota) {\n const decision = options.usageQuota.check(input.onBehalfOf);\n if (!decision.allowed) {\n throw new AiCompletionQuotaError(decision.message, decision.scope, decision.retryAfterSeconds);\n }\n }\n\n const user = [\n prompt,\n ...(input.untrusted ?? []).map(item => renderExternalContent(sourceLabel(item.source), neutralizeBlockMarkers(String(item.text ?? '')))),\n ].join('\\n\\n');\n const opts = {\n model,\n temperature: input.temperature,\n maxTokens: input.maxTokens,\n timeoutMs: input.timeoutMs,\n signal: input.signal,\n // Same candidates as the conversation path (bound model, registry picks, then the\n // provider's models); whether they are tried is up to `providerResilience.fallback`.\n fallbackModels: resolveModelCandidates(\n provider.models,\n options.service.getModelRegistry?.() ?? null,\n binding.providerAlias,\n { chatModel: binding.model },\n 'chat',\n model,\n ).filter(id => id && id !== model),\n resilience: options.service.getAgentConfig()?.providerResilience as ProviderResilienceConfig | undefined,\n };\n // Reserve the prompt estimate before the call: concurrent calls then see each other's\n // spend at `check`, and a call that fails after reaching the provider is still billed.\n const quotaSubject = input.onBehalfOf && options.usageQuota ? input.onBehalfOf : undefined;\n const reserved = quotaSubject ? estimatePromptTokens(`${input.system ?? ''}\\n${user}`) : 0;\n if (quotaSubject && reserved > 0) options.usageQuota!.record(quotaSubject, reserved);\n const started = now();\n let result: TextCompleteResult;\n try {\n result = provider.completeTextResult\n ? await provider.completeTextResult(input.system ?? '', user, opts)\n : { text: await provider.completeText(input.system ?? '', user, opts), model };\n } catch (error) {\n logger.warn(formatCompact({\n op: 'ai_completion',\n purpose,\n provider: binding.providerAlias,\n model,\n outcome: 'error',\n durationMs: now() - started,\n error: error instanceof Error ? error.message : String(error),\n }));\n throw error;\n }\n const durationMs = now() - started;\n const reportedTokens = result.usage?.totalTokens;\n const totalTokens = reportedTokens || undefined;\n if (quotaSubject) {\n // Reported usage settles the reservation; without it, estimate the answer on top of the prompt.\n const settled = totalTokens ?? reserved + estimatePromptTokens(result.text);\n if (settled > reserved) options.usageQuota!.record(quotaSubject, settled - reserved);\n }\n logger.info(formatCompact({\n op: 'ai_completion',\n purpose,\n provider: binding.providerAlias,\n model: result.model,\n outcome: 'ok',\n durationMs,\n ...(totalTokens ? { tokens: totalTokens } : {}),\n untrusted: input.untrusted?.length ?? 0,\n }));\n return Object.freeze({\n text: result.text,\n model: result.model,\n durationMs,\n ...(result.usage ? { usage: result.usage } : {}),\n });\n },\n });\n}\n\nfunction requiredText(value: unknown, name: string): string {\n if (typeof value !== 'string' || !value.trim()) throw new TypeError(`AI completion: ${name} is required`);\n return value;\n}\n\n/** Untrusted text must not be able to close its data block early and continue as instructions. */\nfunction neutralizeBlockMarkers(text: string): string {\n return text.replace(/\\[(\\s*(?:end\\s+)?external_content)/giu, '[$1');\n}\n\n/** Keeps the source label from closing the data block or injecting quotes. */\nfunction sourceLabel(source: unknown): string {\n const text = String(source ?? '').replace(/[^\\p{L}\\p{N}_.:/-]+/gu, '-').slice(0, 64);\n return text || 'untrusted';\n}\n"]}
@@ -24,4 +24,3 @@ export interface AgentCapabilities {
24
24
  export declare class CapabilityIngress {
25
25
  read(snapshot: RuntimeSnapshot, owner: PluginId, isActive?: () => boolean, turn?: TurnAccessContext, selectedAgent?: string): Promise<AgentCapabilities>;
26
26
  }
27
- //# sourceMappingURL=capability-ingress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-ingress.js","sourceRoot":"","sources":["../../src/plugin-runtime/capability-ingress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-ingress.js","sourceRoot":"","sources":["../../src/plugin-runtime/capability-ingress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAA0B,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAEL,YAAY,EACZ,cAAc,GAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,UAAU,EACV,YAAY,GAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,YAAY,EACZ,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,WAAW,EACX,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyBxD,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,IAAI,CACR,QAAyB,EACzB,KAAe,EACf,WAA0B,GAAG,EAAE,CAAC,IAAI,EACpC,IAAwB,EACxB,aAAsB;QAEtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,MAAM,aAAa,GAAkB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;QACnG,MAAM,YAAY,GAAG,MAAM,SAAS,CAClC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,aAAa,EACb,QAAQ,CACT,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,UAAU,CACpC,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,EAClD,IAAI,EACJ,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,aAAa,CACd,CAAC;QACF,MAAM,IAAI,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI;YACpB,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,IAAI;YACrB,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC1E,CAAC,CAAC,EAAE,CAAC;QACP,0BAA0B,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QACpE,0BAA0B,CACxB,OAAO,EACP,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAClF,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,UAAU,CACpC,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,EAClD,KAAK,EACL,IAAI,EACJ,qBAAqB,CAAC,QAAQ,CAAC,CAChC,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;YACrD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC;YACxD,MAAM,EAAE,aAAa;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;YAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;iBACrF,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;mBAClC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC1F,CAAC,CAAC;IACL,CAAC;CACF;AAED,KAAK,UAAU,UAAU,CACvB,KAA6B,EAC7B,KAAe,EACf,IAAwB,EACxB,IAAqB;IAErB,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/E,UAAU;QACV,OAAO,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAyB;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,KAAK;WACP,OAAQ,KAAyB,CAAC,YAAY,KAAK,UAAU;WAC7D,OAAQ,KAAyB,CAAC,aAAa,KAAK,UAAU;QACjE,CAAC,CAAC,KAAwB;QAC1B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAqB,EACrB,KAAe,EACf,QAAuB,EACvB,IAAwB,EACxB,IAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9E,KAAK;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;QAChC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;QACzC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;QAC9C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;QAC7C,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,SAAS;QAC5D,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QACjC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;QAC3B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;QACrC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;QAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,KAAK,CAAC,UAAU,EAAE;QACzD,OAAO,EAAE,KAAK,EACZ,KAAa,EACb,UAAiC,EACf,EAAE;YACpB,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,qBAAqB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACxG,OAAO,MAAM,CAAC,MAAiB,CAAC;QAClC,CAAC;KACuB,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACpE,UAAU;QACV,OAAO,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAqB,EACrB,KAAe,EACf,IAAwB,EACxB,IAAqB;IAErB,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACvF,QAAQ,EAAE,cAAuB;QACjC,KAAK;QACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;QACzB,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;QAClC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;QACvC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS;QACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS;QACnC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;QAC7B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;QACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACjC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;QACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;QAC7B,MAAM,EAAE,QAAQ,KAAK,CAAC,UAAU,EAAE;KACT,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACpE,UAAU;QACV,OAAO,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,KAA6B,EAC7B,IAAwB,EACxB,IAAqB,EACrB,aAAsB;IAEtB,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACvE,UAAU;QACV,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC;eAC/D,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;KACvD,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,sBAAsB,CAAC,SAA6B,EAAE,aAAiC;IAC9F,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,aAAa,KAAK,SAAS,IAAI,aAAa,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;AAC3F,CAAC;AAED,SAAS,0BAA0B,CACjC,IAAsB,EACtB,YAAyC;IAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1G,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAA4B,EAC5B,KAAe,EACf,QAAuB,EACvB,IAAwB,EACxB,IAAqB,EACrB,aAAsB,EACtB,iBAAmC;IAEnC,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,UAAU;QACV,OAAO,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CACJ,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxB,GAAG,CAAC,CAAC,UAAU;QACf,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC;YAChE,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM;QACvB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa;QAChC,OAAO,EAAE,CAAkB,KAAa,EAAE,UAAiC,EAAE,EAAE;YAC7E,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC,OAAO,CAAkB,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACrH,CAAC;KACF,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAAsC,EACtC,aAAiC;IAEjC,OAAO,SAAS,EAAE,IAAI,KAAK,OAAO;WAC7B,sBAAsB,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,UAAwE,EACxE,IAAmC,EACnC,IAAqB;IAErB,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACjC,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,QAAyB;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,SAAS,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,IAAI,OAAQ,IAAuB,CAAC,KAAK,KAAK,UAAU;YACjE,CAAC,CAAC,IAAsB;YACxB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,KAA2B,EAC3B,KAAe,EACf,QAAuB;IAEvB,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1E,GAAG,UAAU;QACb,SAAS,EAAE,GAAG,EAAE;YACd,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ,EAAE,CAAU,IAAY,EAAE,KAAc,EAAE,EAAE;YAClD,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC,QAAQ,CAAU,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,QAAuB;IAC3C,IAAI,CAAC,QAAQ,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CACjB,QAAyB,EACzB,EAAa,EACb,KAAqC;IAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC","sourcesContent":["import type { FeatureId, PluginId, RuntimeSnapshot } from '@zhin.js/plugin-runtime';\nimport { permissionHostToken, type PermissionHost } from '@zhin.js/permission';\nimport { turnPermissionSubject, type TurnAccessContext } from '../turn/turn-ingress.js';\nimport {\n type AgentIndex,\n isAgentIndex,\n agentFeatureId,\n type AgentDescriptor,\n} from '@zhin.js/agent-feature';\nimport {\n type McpIndex,\n isMcpIndex,\n mcpFeatureId,\n type McpDescriptor,\n type McpToolDescriptor,\n} from '@zhin.js/mcp-feature';\nimport {\n type SkillIndex,\n isSkillIndex,\n skillFeatureId,\n type SkillDescriptor,\n} from '@zhin.js/skill';\nimport {\n type ToolIndex,\n isToolIndex,\n toolFeatureId,\n type ToolDescriptor,\n type ToolInvocationContext,\n} from '@zhin.js/tool';\nimport {\n isPromptSectionIndex,\n promptSectionFeatureId,\n type PromptSectionDescriptor,\n type PromptProfile,\n} from '@zhin.js/prompt-section';\nimport { capabilitySeamToken } from '../seam/tokens.js';\nimport type { SeamIntegration } from '../seam/seam-integration.js';\n\nexport interface ToolCapability extends ToolDescriptor {\n execute<TInput = unknown, TResult = unknown>(\n input: TInput,\n invocation: ToolInvocationContext,\n ): Promise<TResult>;\n}\n\nexport interface McpCapability extends McpDescriptor {\n listTools(): Promise<readonly McpToolDescriptor[]>;\n callTool<TResult = unknown>(tool: string, input: unknown): Promise<TResult>;\n}\n\nexport interface AgentCapabilities {\n readonly generation: number;\n readonly owner: PluginId;\n readonly tools: readonly ToolCapability[];\n readonly skills: readonly SkillDescriptor[];\n readonly agents: readonly AgentDescriptor[];\n readonly mcp: readonly McpCapability[];\n readonly promptSections: readonly PromptSectionDescriptor[];\n}\n\nexport class CapabilityIngress {\n async read(\n snapshot: RuntimeSnapshot,\n owner: PluginId,\n isActive: () => boolean = () => true,\n turn?: TurnAccessContext,\n selectedAgent?: string,\n ): Promise<AgentCapabilities> {\n if (!snapshot.tree.has(owner)) throw new Error(`Unknown Agent capability owner: ${owner}`);\n const tools = projection(snapshot, toolFeatureId, isToolIndex);\n const mcp = projection(snapshot, mcpFeatureId, isMcpIndex);\n const promptProjection = snapshot.projections.get(promptSectionFeatureId);\n const promptSections = isPromptSectionIndex(promptProjection) ? promptProjection : undefined;\n const promptProfile: PromptProfile = turn?.origin.kind === 'schedule' ? 'schedule' : 'interactive';\n const featureTools = await bindTools(\n tools,\n owner,\n isActive,\n turn,\n resolvePermissionHost(snapshot),\n selectedAgent,\n snapshot,\n );\n const featureSkills = await bindSkills(\n projection(snapshot, skillFeatureId, isSkillIndex),\n turn,\n resolvePermissionHost(snapshot),\n selectedAgent,\n );\n const seam = resolveSeamIntegration(snapshot);\n const seamTools = seam\n ? await bindSeamTools(seam, owner, isActive, turn, resolvePermissionHost(snapshot))\n : [];\n const seamSkills = seam\n ? await bindSeamSkills(seam, owner, turn, resolvePermissionHost(snapshot))\n : [];\n assertDistinctCapabilities('Tool', [...featureTools, ...seamTools]);\n assertDistinctCapabilities(\n 'Skill',\n [...featureSkills, ...seamSkills].map((skill) => ({ name: skill.qualifiedName })),\n );\n const featureAgents = await bindAgents(\n projection(snapshot, agentFeatureId, isAgentIndex),\n owner,\n turn,\n resolvePermissionHost(snapshot),\n );\n return Object.freeze({\n generation: snapshot.generation,\n owner,\n tools: Object.freeze([...featureTools, ...seamTools]),\n skills: Object.freeze([...featureSkills, ...seamSkills]),\n agents: featureAgents,\n mcp: bindMcp(mcp, owner, isActive),\n promptSections: Object.freeze([...(promptSections?.visible(owner, promptProfile) ?? [])]\n .filter((section) => !section.platforms\n || (turn?.origin.kind === 'im' && section.platforms.includes(turn.origin.platform)))),\n });\n }\n}\n\nasync function bindAgents(\n index: AgentIndex | undefined,\n owner: PluginId,\n turn?: TurnAccessContext,\n host?: PermissionHost,\n): Promise<readonly AgentDescriptor[]> {\n if (!index) return Object.freeze([]);\n const access = await Promise.all(index.visible(owner).map(async (descriptor) => ({\n descriptor,\n allowed: await canAccessDescriptor(descriptor, turn, host),\n })));\n return Object.freeze(access.filter(({ allowed }) => allowed).map(({ descriptor }) => descriptor));\n}\n\nfunction resolveSeamIntegration(snapshot: RuntimeSnapshot): SeamIntegration | undefined {\n const value = snapshot.resources.get(snapshot.root)?.get(capabilitySeamToken.id);\n return value\n && typeof (value as SeamIntegration).projectTools === 'function'\n && typeof (value as SeamIntegration).projectSkills === 'function'\n ? value as SeamIntegration\n : undefined;\n}\n\nasync function bindSeamTools(\n seam: SeamIntegration,\n owner: PluginId,\n isActive: () => boolean,\n turn?: TurnAccessContext,\n host?: PermissionHost,\n): Promise<readonly ToolCapability[]> {\n const projected = seam.projectTools(String(owner)).map((entry) => Object.freeze({\n owner,\n name: entry.schema.function.name,\n qualifiedName: entry.schema.function.name,\n description: entry.schema.function.description,\n inputSchema: entry.schema.function.parameters,\n requiresApproval: entry.schema.requiresApproval ?? 'on-risk',\n platforms: entry.schema.platforms,\n scopes: entry.schema.scopes,\n permissions: entry.schema.permissions,\n hidden: entry.schema.hidden,\n source: entry.schema.source ?? `seam:${entry.providerId}`,\n execute: async <TInput = unknown, TResult = unknown>(\n input: TInput,\n invocation: ToolInvocationContext,\n ): Promise<TResult> => {\n assertActive(isActive);\n const result = await entry.execute(input, invocation);\n if (!result.success) throw new Error(result.error ?? `Seam Tool failed: ${entry.schema.function.name}`);\n return result.output as TResult;\n },\n } satisfies ToolCapability));\n const access = await Promise.all(projected.map(async (descriptor) => ({\n descriptor,\n allowed: await canAccessDescriptor(descriptor, turn, host),\n })));\n return Object.freeze(access.filter(({ allowed }) => allowed).map(({ descriptor }) => descriptor));\n}\n\nasync function bindSeamSkills(\n seam: SeamIntegration,\n owner: PluginId,\n turn?: TurnAccessContext,\n host?: PermissionHost,\n): Promise<readonly SkillDescriptor[]> {\n const projected = (await seam.projectSkills(String(owner))).map((entry) => Object.freeze({\n $feature: 'zhin.skill/1' as const,\n owner,\n name: entry.metadata.name,\n qualifiedName: entry.metadata.name,\n description: entry.metadata.description,\n instructions: entry.instructions,\n toolNames: entry.metadata.toolNames,\n platforms: entry.metadata.platforms,\n scopes: entry.metadata.scopes,\n permissions: entry.metadata.permissions,\n keywords: entry.metadata.keywords,\n tags: entry.metadata.tags,\n always: entry.metadata.always,\n source: `seam:${entry.providerId}`,\n } satisfies SkillDescriptor));\n const access = await Promise.all(projected.map(async (descriptor) => ({\n descriptor,\n allowed: await canAccessDescriptor(descriptor, turn, host),\n })));\n return Object.freeze(access.filter(({ allowed }) => allowed).map(({ descriptor }) => descriptor));\n}\n\nasync function bindSkills(\n index: SkillIndex | undefined,\n turn?: TurnAccessContext,\n host?: PermissionHost,\n selectedAgent?: string,\n): Promise<readonly SkillDescriptor[]> {\n if (!index) return Object.freeze([]);\n const access = await Promise.all(index.list().map(async (descriptor) => ({\n descriptor,\n allowed: belongsToSelectedAgent(descriptor.agentName, selectedAgent)\n && await canAccessDescriptor(descriptor, turn, host),\n })));\n return Object.freeze(access.filter(({ allowed }) => allowed).map(({ descriptor }) => descriptor));\n}\n\nfunction belongsToSelectedAgent(agentName: string | undefined, selectedAgent: string | undefined): boolean {\n if (!agentName) return true;\n return selectedAgent === agentName || selectedAgent?.endsWith(`__${agentName}`) === true;\n}\n\nfunction assertDistinctCapabilities(\n kind: 'Tool' | 'Skill',\n capabilities: readonly { name: string }[],\n): void {\n const names = new Set<string>();\n for (const capability of capabilities) {\n if (names.has(capability.name)) throw new Error(`Duplicate Agent ${kind} capability: ${capability.name}`);\n names.add(capability.name);\n }\n}\n\nasync function bindTools(\n index: ToolIndex | undefined,\n owner: PluginId,\n isActive: () => boolean,\n turn?: TurnAccessContext,\n host?: PermissionHost,\n selectedAgent?: string,\n operationSnapshot?: RuntimeSnapshot,\n): Promise<readonly ToolCapability[]> {\n if (!index) return Object.freeze([]);\n const descriptors = index.list();\n const accessResults = await Promise.all(\n descriptors.map(async (descriptor) => ({\n descriptor,\n allowed: await canAccessDescriptor(descriptor, turn, host),\n })),\n );\n return Object.freeze(accessResults\n .filter((r) => r.allowed)\n .map((r) => Object.freeze({\n ...r.descriptor,\n hidden: isSelectedAgentTool(r.descriptor.placement, selectedAgent)\n ? false\n : r.descriptor.hidden,\n name: r.descriptor.qualifiedName,\n execute: <TInput, TResult>(input: TInput, invocation: ToolInvocationContext) => {\n assertActive(isActive);\n return index.execute<TInput, TResult>(r.descriptor.owner, r.descriptor.name, input, invocation, operationSnapshot);\n },\n })));\n}\n\nfunction isSelectedAgentTool(\n placement: ToolDescriptor['placement'],\n selectedAgent: string | undefined,\n): boolean {\n return placement?.kind === 'agent'\n && belongsToSelectedAgent(placement.agent, selectedAgent);\n}\n\nasync function canAccessDescriptor(\n descriptor: Pick<ToolDescriptor, 'platforms' | 'scopes' | 'permissions'>,\n turn: TurnAccessContext | undefined,\n host?: PermissionHost,\n): Promise<boolean> {\n if (descriptor.platforms?.length) {\n if (turn?.origin.kind !== 'im' || !descriptor.platforms.includes(turn.origin.platform)) {\n return false;\n }\n }\n if (descriptor.scopes?.length) {\n if (turn?.origin.kind !== 'im' || !descriptor.scopes.includes(turn.origin.scope)) {\n return false;\n }\n }\n if (!descriptor.permissions?.length) return true;\n if (!turn || !host) return false;\n return host.checkAll(descriptor.permissions, turnPermissionSubject(turn));\n}\n\n/** Root resources 上的 PermissionHost(command-index 同款解析;未安装时 fail-closed)。 */\nfunction resolvePermissionHost(snapshot: RuntimeSnapshot): PermissionHost | undefined {\n try {\n const resources = snapshot.resources.get(snapshot.root);\n const host = resources?.get(permissionHostToken.id);\n return host && typeof (host as PermissionHost).check === 'function'\n ? host as PermissionHost\n : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction bindMcp(\n index: McpIndex | undefined,\n owner: PluginId,\n isActive: () => boolean,\n): readonly McpCapability[] {\n if (!index) return Object.freeze([]);\n return Object.freeze(index.visible(owner).map((descriptor) => Object.freeze({\n ...descriptor,\n listTools: () => {\n assertActive(isActive);\n return index.listTools(owner, descriptor.name);\n },\n callTool: <TResult>(tool: string, input: unknown) => {\n assertActive(isActive);\n return index.callTool<TResult>(owner, descriptor.name, tool, input);\n },\n })));\n}\n\nfunction assertActive(isActive: () => boolean): void {\n if (!isActive()) throw new Error('Agent capability turn scope has ended');\n}\n\nfunction projection<T>(\n snapshot: RuntimeSnapshot,\n id: FeatureId,\n guard: (value: unknown) => value is T,\n): T | undefined {\n const value = snapshot.projections.get(id);\n return guard(value) ? value : undefined;\n}\n"]}
@@ -14,4 +14,3 @@ export declare function capabilityToTool(tool: ToolCapability, invocation: ToolI
14
14
  /** Owner-visible capabilities → generation-stamped tools for the turn runner. */
15
15
  export declare function toolsFromCapabilities(capabilities: AgentCapabilities, turn: TurnIngress | TurnRequest): GenerationStampedTool[];
16
16
  export declare function toolInvocationFromTurn(turn: TurnIngress | TurnRequest): ToolInvocationContext;
17
- //# sourceMappingURL=capability-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-tools.js","sourceRoot":"","sources":["../../src/plugin-runtime/capability-tools.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,MAAM,UAAU,gBAAgB,CAC9B,IAAoB,EACpB,UAAiC;IAEjC,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAqC;YAC7E,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SACrE;QACD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAClD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACjE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAyC,CAAC;QACtF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CACnC,YAA+B,EAC/B,IAA+B;IAE/B,OAAO,mBAAmB,CACxB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EACtF,YAAY,CAAC,UAAU,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA+B;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;QAC9B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;YACnC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW;YACvC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChD,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;gBAC9C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;gBACzC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;aAChF,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;gBACnB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;gBACxB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE;gBAC9D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"capability-tools.js","sourceRoot":"","sources":["../../src/plugin-runtime/capability-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ToolCapability → turn tool 转换(Plugin Runtime runner 注入点)。\n * 打上 snapshot generation 戳,ToolRuntime 在执行前校验戳与当前 turn 是否一致。\n */\nimport type { Tool } from '@zhin.js/core';\nimport { toolInputSchemaToParameters } from '@zhin.js/tool';\nimport { stampToolGeneration } from '../tool/tool-system.js';\nimport type { AgentCapabilities, ToolCapability } from './capability-ingress.js';\nimport type { ToolInvocationContext } from '@zhin.js/tool';\nimport type { TurnIngress, TurnRequest } from '../turn/turn-ingress.js';\n\n/** Core transport tool shape plus the generation stamp ToolRuntime validates. */\nexport type GenerationStampedTool = Tool & { generation?: number };\n\nexport function capabilityToTool(\n tool: ToolCapability,\n invocation: ToolInvocationContext,\n): GenerationStampedTool {\n const parameters = toolInputSchemaToParameters(tool.inputSchema);\n return {\n name: tool.name,\n description: tool.description,\n parameters: {\n type: 'object',\n properties: (parameters.properties ?? {}) as Tool['parameters']['properties'],\n required: parameters.required ? [...parameters.required] : undefined,\n },\n source: String(tool.owner),\n platforms: tool.platforms ? [...tool.platforms] : undefined,\n scopes: tool.scopes ? [...tool.scopes] : undefined,\n permissions: tool.permissions ? [...tool.permissions] : undefined,\n tags: tool.tags ? [...tool.tags] : undefined,\n keywords: tool.keywords ? [...tool.keywords] : undefined,\n hidden: tool.hidden,\n requiresApproval: tool.requiresApproval,\n async execute(args) {\n return await tool.execute(args, invocation) as Awaited<ReturnType<Tool['execute']>>;\n },\n };\n}\n\n/** Owner-visible capabilities → generation-stamped tools for the turn runner. */\nexport function toolsFromCapabilities(\n capabilities: AgentCapabilities,\n turn: TurnIngress | TurnRequest,\n): GenerationStampedTool[] {\n return stampToolGeneration(\n capabilities.tools.map((tool) => capabilityToTool(tool, toolInvocationFromTurn(turn))),\n capabilities.generation,\n );\n}\n\nexport function toolInvocationFromTurn(turn: TurnIngress | TurnRequest): ToolInvocationContext {\n return Object.freeze({\n signal: turn.signal,\n traceId: turn.identity.traceId,\n turnId: turn.identity.turnId,\n sessionKey: turn.session.key,\n origin: turn.origin,\n principal: Object.freeze({\n subjectId: turn.principal.subjectId,\n displayName: turn.principal.displayName,\n roles: Object.freeze([...turn.principal.roles]),\n }),\n policy: Object.freeze({\n permissions: Object.freeze([...turn.policy.permissions]),\n unattended: turn.policy.unattended,\n network: Object.freeze({\n enabled: turn.policy.network?.enabled === true,\n httpsOnly: turn.policy.network?.httpsOnly,\n allowedDomains: Object.freeze([...(turn.policy.network?.allowedDomains ?? [])]),\n }),\n ...(turn.policy.shell\n ? { shell: Object.freeze({ ...turn.policy.shell }) }\n : {}),\n ...(turn.policy.filesystem\n ? { filesystem: Object.freeze({ ...turn.policy.filesystem }) }\n : {}),\n }),\n ...(turn.ports.question ? { question: turn.ports.question } : {}),\n ...(turn.ports.client ? { client: turn.ports.client } : {}),\n });\n}\n"]}
@@ -26,4 +26,3 @@ export declare function runWithAgentDecisionTurn<T>(snapshot: RuntimeSnapshot, t
26
26
  readonly disabled?: boolean;
27
27
  readonly observe?: (observation: DecisionObservation) => void;
28
28
  }): Promise<T>;
29
- //# sourceMappingURL=decision-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/decision-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/decision-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAmD,MAAM,yBAAyB,CAAC;AAGtH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAgC,8BAA8B,CAAC,CAAC;AAChH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAsB,4BAA4B,CAAC,CAAC;AAEvG,4FAA4F;AAC5F,MAAM,UAAU,4BAA4B,CAAC,SAAgB,EAAE,QAA0B;IACvF,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,2BAA2B,CACzC,QAAyB,EACzB,OAAoD;IAEpD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAoC,CAAC;IAC1H,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAE,CAAC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAA8C,CAAC;IAC3H,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE,KAAK,KAAK,KAAK,IAAI,OAAO,QAAQ,CAAC,QAAQ,EAAE,QAAQ,KAAK,UAAU,EAAE,CAAC;QAChH,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,+CAA+C,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjG,CAAC;AAUD,6FAA6F;AAC7F,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAA4B,CAAC;AAE9E,MAAM,UAAU,2BAA2B;IACzC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,MAAc,EACd,GAA8D,EAC9D,UAA0G,EAAE;IAE5G,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC3C,IAAI,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9H,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;QACzF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC;YAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yCAAyC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5G,CAAC","sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport { createToken, childPluginId, type PluginId, type RuntimeSnapshot, type Scope } from '@zhin.js/plugin-runtime';\nimport type { DecisionProvider } from '@zhin.js/ai';\nimport type { AgentDecisionConfig, AgentDecisionRuntime, DecisionObservation } from '../decision/types.js';\nimport { DECISION_TASKS } from '../decision/config.js';\n\n/** Provided locally by an optional service Plugin; never a process-wide registry. */\nexport interface AgentDecisionProviderResource {\n readonly owner: PluginId;\n readonly provider: DecisionProvider;\n}\n\nexport const decisionProviderToken = createToken<AgentDecisionProviderResource>('zhin.agent.decision-provider');\nexport const agentDecisionConfigToken = createToken<AgentDecisionConfig>('zhin.agent.decision-config');\n\n/** Preserve declaration ownership even when Scope snapshots include inherited resources. */\nexport function provideAgentDecisionProvider(resources: Scope, provider: DecisionProvider): void {\n resources.provide(decisionProviderToken, Object.freeze({ owner: resources.owner, provider }));\n}\n\n/** Resolve the configured exact owner from the operation's held generation. */\nexport function resolveAgentDecisionRuntime(\n snapshot: RuntimeSnapshot,\n observe?: (observation: DecisionObservation) => void,\n): AgentDecisionRuntime | undefined {\n const config = snapshot.resources.get(snapshot.root)?.get(agentDecisionConfigToken.id) as AgentDecisionConfig | undefined;\n if (!config || !DECISION_TASKS.some(task => config[task] && config[task]!.mode !== 'off')) return undefined;\n const owner = config.provider.split('/').slice(1).reduce(childPluginId, snapshot.root);\n const resource = snapshot.resources.get(owner)?.get(decisionProviderToken.id) as AgentDecisionProviderResource | undefined;\n if (!snapshot.tree.has(owner) || resource?.owner !== owner || typeof resource.provider?.evaluate !== 'function') {\n throw new Error(`ai.decisions.provider ${config.provider} does not provide an enabled DecisionProvider`);\n }\n return Object.freeze({ provider: resource.provider, config, ...(observe ? { observe } : {}) });\n}\n\ninterface AgentDecisionTurnContext {\n readonly snapshot: RuntimeSnapshot;\n readonly turnId: string;\n readonly disabled: boolean;\n readonly runtime?: AgentDecisionRuntime;\n readonly observations: DecisionObservation[];\n}\n\n// This authority belongs to the runtime, separately from caller-supplied turn configuration.\nconst decisionTurnStorage = new AsyncLocalStorage<AgentDecisionTurnContext>();\n\nexport function getAgentTurnDecisionRuntime(): AgentDecisionRuntime | undefined {\n return decisionTurnStorage.getStore()?.runtime;\n}\n\nexport function drainAgentTurnDecisionObservations(): readonly DecisionObservation[] {\n return decisionTurnStorage.getStore()?.observations.splice(0) ?? [];\n}\n\n/** Ingress selection, approval, and native tools share one held-generation decision context. */\nexport function runWithAgentDecisionTurn<T>(\n snapshot: RuntimeSnapshot,\n turnId: string,\n run: (runtime: AgentDecisionRuntime | undefined) => Promise<T>,\n options: { readonly disabled?: boolean; readonly observe?: (observation: DecisionObservation) => void } = {},\n): Promise<T> {\n const current = decisionTurnStorage.getStore();\n const disabled = options.disabled ?? false;\n if (current?.snapshot === snapshot && current.turnId === turnId && current.disabled === disabled) return run(current.runtime);\n const observations: DecisionObservation[] = [];\n const runtime = disabled ? undefined : resolveAgentDecisionRuntime(snapshot, observation => {\n observations.push(observation);\n try { options.observe?.(observation); } catch { /* diagnostics do not change authority */ }\n });\n return decisionTurnStorage.run({ snapshot, turnId, disabled, runtime, observations }, () => run(runtime));\n}\n"]}
@@ -84,5 +84,24 @@ export declare function primeSkillsForIntent(options: Readonly<{
84
84
  * immutable generation projection and the session snapshot.
85
85
  */
86
86
  export declare function createDeferredCapabilityPlan(options: DeferredCapabilityPlanOptions): DeferredCapabilityPlan;
87
+ /**
88
+ * Upper bound on plugin tools that may become resident through their own
89
+ * `alwaysLoaded: true` flag in one turn. Each resident schema is sent on every
90
+ * model call, so a misbehaving plugin set must not silently flood the context.
91
+ * Tools past the limit stay deferred (still reachable via `discover` /
92
+ * `load_tool`) and a warning names them once. Operators who need more can list
93
+ * tools in `deferredTools.alwaysLoadedTools`, which this limit does not touch.
94
+ */
95
+ export declare const MAX_DECLARED_RESIDENT_TOOLS = 8;
96
+ /**
97
+ * Names of public tools whose author set `alwaysLoaded: true`, in projection
98
+ * order and capped at {@link MAX_DECLARED_RESIDENT_TOOLS}.
99
+ *
100
+ * - Absent or `false` keeps the tool deferred (the default for every plugin).
101
+ * - `deferredTools.alwaysLoadedMode: replace` means the operator's list is the
102
+ * complete resident set, so author declarations are ignored.
103
+ * - Only public (non-hidden) capabilities that already passed ingress and the
104
+ * capability ceiling are considered; the flag never grants access.
105
+ */
106
+ export declare function declaredResidentToolNames(tools: readonly Pick<ToolCapability, 'name' | 'alwaysLoaded'>[], config: DeferredCapabilityPlanOptions['config']): string[];
87
107
  export declare function capabilityAsAgentTool(tool: ToolCapability): AgentTool;
88
- //# sourceMappingURL=deferred-capability-plan.d.ts.map
@@ -1,9 +1,11 @@
1
1
  import { addSkillToSnapshot, getLoadedToolNamesFromSnapshot, touchToolInSnapshot, touchToolsInSnapshot, } from '@zhin.js/ai';
2
2
  import { toolInputSchemaToParameters, } from '@zhin.js/tool';
3
+ import { getLogger } from '@zhin.js/logger';
3
4
  import { rankDecisionCandidates } from '../decision/rank.js';
4
5
  import { buildDeferredStats, buildToolCatalog, discoverInCatalog, resolveDeferredApiTools } from '../tool-catalog/tool-catalog.js';
5
6
  import { resolveDeferredToolsConfig } from '../tool-catalog/resolve-config.js';
6
7
  import { DEFERRED_META_TOOL_NAMES } from '../tool-catalog/types.js';
8
+ const logger = getLogger('DeferredCapabilityPlan');
7
9
  /**
8
10
  * Reserved, model-invisible control namespace of the Agent runtime. Control
9
11
  * tools use this prefix and it is always filtered out of model-visible
@@ -70,6 +72,10 @@ export function createDeferredCapabilityPlan(options) {
70
72
  if (tool.platforms?.length)
71
73
  alwaysLoaded.add(tool.name);
72
74
  }
75
+ // Plugin authors may opt a tool into the resident set (#857 P1-10).
76
+ for (const name of declaredResidentToolNames(publicCapabilities, options.config)) {
77
+ alwaysLoaded.add(name);
78
+ }
73
79
  const publicTools = publicCapabilities.map(capabilityAsAgentTool);
74
80
  const publicCatalog = buildToolCatalog({ tools: publicTools, alwaysLoaded });
75
81
  let snapshot = projectSessionSnapshot(options.sessionSnapshot, projected);
@@ -116,6 +122,40 @@ export function createDeferredCapabilityPlan(options) {
116
122
  controller,
117
123
  });
118
124
  }
125
+ /**
126
+ * Upper bound on plugin tools that may become resident through their own
127
+ * `alwaysLoaded: true` flag in one turn. Each resident schema is sent on every
128
+ * model call, so a misbehaving plugin set must not silently flood the context.
129
+ * Tools past the limit stay deferred (still reachable via `discover` /
130
+ * `load_tool`) and a warning names them once. Operators who need more can list
131
+ * tools in `deferredTools.alwaysLoadedTools`, which this limit does not touch.
132
+ */
133
+ export const MAX_DECLARED_RESIDENT_TOOLS = 8;
134
+ const warnedOverLimitTools = new Set();
135
+ /**
136
+ * Names of public tools whose author set `alwaysLoaded: true`, in projection
137
+ * order and capped at {@link MAX_DECLARED_RESIDENT_TOOLS}.
138
+ *
139
+ * - Absent or `false` keeps the tool deferred (the default for every plugin).
140
+ * - `deferredTools.alwaysLoadedMode: replace` means the operator's list is the
141
+ * complete resident set, so author declarations are ignored.
142
+ * - Only public (non-hidden) capabilities that already passed ingress and the
143
+ * capability ceiling are considered; the flag never grants access.
144
+ */
145
+ export function declaredResidentToolNames(tools, config) {
146
+ if (config.deferredTools?.alwaysLoadedMode === 'replace')
147
+ return [];
148
+ const declared = tools.filter(tool => tool.alwaysLoaded === true).map(tool => tool.name);
149
+ const overLimit = declared.slice(MAX_DECLARED_RESIDENT_TOOLS)
150
+ .filter(name => !warnedOverLimitTools.has(name));
151
+ if (overLimit.length > 0) {
152
+ for (const name of overLimit)
153
+ warnedOverLimitTools.add(name);
154
+ logger.warn(`${declared.length} plugin tools declare alwaysLoaded; only the first ${MAX_DECLARED_RESIDENT_TOOLS} are resident. `
155
+ + `Still deferred: ${overLimit.join(', ')}. List them in ai.agent.deferredTools.alwaysLoadedTools to keep them loaded.`);
156
+ }
157
+ return declared.slice(0, MAX_DECLARED_RESIDENT_TOOLS);
158
+ }
119
159
  function projectCapabilities(capabilities, ceiling) {
120
160
  if (!ceiling) {
121
161
  return Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-capability-plan.js","sourceRoot":"","sources":["../../src/plugin-runtime/deferred-capability-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deferred-capability-plan.js","sourceRoot":"","sources":["../../src/plugin-runtime/deferred-capability-plan.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addSkillToSnapshot,\n getLoadedToolNamesFromSnapshot,\n touchToolInSnapshot,\n touchToolsInSnapshot,\n type AgentTool,\n type DeferredToolSessionSnapshot,\n} from '@zhin.js/ai';\nimport {\n toolInputSchemaToParameters,\n type ToolInvocationContext,\n type ToolInputSchema,\n} from '@zhin.js/tool';\nimport type { SkillDescriptor } from '@zhin.js/skill';\nimport { getLogger } from '@zhin.js/logger';\nimport { rankDecisionCandidates } from '../decision/rank.js';\nimport type { AgentDecisionRuntime } from '../decision/types.js';\nimport { buildDeferredStats, buildToolCatalog, discoverInCatalog, resolveDeferredApiTools } from '../tool-catalog/tool-catalog.js';\nimport { resolveDeferredToolsConfig } from '../tool-catalog/resolve-config.js';\nimport { DEFERRED_META_TOOL_NAMES, type ToolCatalogItem } from '../tool-catalog/types.js';\nimport type { AgentCapabilities, ToolCapability } from './capability-ingress.js';\n\nconst logger = getLogger('DeferredCapabilityPlan');\n\n/**\n * Injected capability ceiling. It must return a subset of the given projection\n * and throw when the projection is not trusted by the ceiling's owner.\n */\nexport interface DeferredCapabilityCeiling {\n project(capabilities: AgentCapabilities): Readonly<Pick<AgentCapabilities, 'tools' | 'skills'>>;\n}\n\n/**\n * Reserved, model-invisible control namespace of the Agent runtime. Control\n * tools use this prefix and it is always filtered out of model-visible\n * capabilities. It is a naming convention, not a dependency on Workroom code.\n */\nexport const RESERVED_CONTROL_TOOL_PREFIX = 'workroom_';\n\n/**\n * Reserved model-invisible control namespace; always filtered out of\n * model-visible capabilities.\n */\nexport function isReservedControlToolName(name: string): boolean {\n return (name.split('__').at(-1) ?? name).startsWith(RESERVED_CONTROL_TOOL_PREFIX);\n}\n\nexport interface DeferredCapabilityController {\n loadedToolNames(): string[];\n loadedSkillInstructions(): string[];\n /** Load a public catalog tool into the session. Returns false when it is not in this turn's catalog. */\n load(name: string): Promise<boolean>;\n}\n\nexport interface DeferredCapabilityPlan {\n readonly capabilities: readonly ToolCapability[];\n readonly allTools: readonly AgentTool[];\n readonly resolvedTools: readonly AgentTool[];\n readonly catalog: readonly ToolCatalogItem[];\n readonly deferredStats: string;\n readonly controller: DeferredCapabilityController;\n}\n\n/**\n * The legacy `authority` option no longer exists; passing it at runtime throws\n * (fail-closed) instead of being silently ignored.\n */\nexport interface DeferredCapabilityPlanOptions {\n readonly capabilities: AgentCapabilities;\n /**\n * Optional injected capability ceiling (e.g. a Workroom Assignment).\n * Ordinary chat omits it and retains its own capability projection.\n */\n readonly ceiling?: DeferredCapabilityCeiling;\n readonly sessionSnapshot: DeferredToolSessionSnapshot;\n readonly config: Parameters<typeof resolveDeferredToolsConfig>[0];\n readonly platform?: string;\n readonly persistSnapshot: (snapshot: DeferredToolSessionSnapshot) => Promise<void>;\n readonly decision?: AgentDecisionRuntime;\n}\n\nexport interface AgentSkillIntentPrimeResult {\n readonly snapshot: DeferredToolSessionSnapshot;\n readonly skill?: SkillDescriptor;\n readonly skills?: readonly SkillDescriptor[];\n}\n\n/**\n * Deterministically activates one Agent-private Skill when the current intent\n * has a unique best keyword match. Public Skills and ambiguous matches remain\n * deferred so the runtime keeps its progressive-disclosure boundary.\n */\nexport function primeAgentSkillForIntent(options: Readonly<{\n capabilities: Pick<AgentCapabilities, 'tools' | 'skills'>;\n sessionSnapshot: DeferredToolSessionSnapshot;\n intent: string;\n config: DeferredCapabilityPlanOptions['config'];\n}>): AgentSkillIntentPrimeResult {\n const snapshot = projectSessionSnapshot(options.sessionSnapshot, options.capabilities);\n const skill = uniqueBestAgentSkill(options.capabilities.skills, options.intent);\n if (!skill) return Object.freeze({ snapshot });\n\n const config = resolveDeferredToolsConfig(options.config);\n const withTools = activateSkill(\n snapshot,\n skill,\n options.capabilities.tools,\n config.maxLoadedPerSession,\n new Set(config.alwaysLoadedTools),\n );\n return Object.freeze({ snapshot: withTools, skill });\n}\n\n/** Model recommendation never enlarges the immutable, already-authorized projection. */\nexport async function primeSkillsForIntent(options: Readonly<{\n capabilities: Pick<AgentCapabilities, 'tools' | 'skills'>;\n sessionSnapshot: DeferredToolSessionSnapshot;\n intent: string;\n config: DeferredCapabilityPlanOptions['config'];\n decision?: AgentDecisionRuntime;\n signal: AbortSignal;\n}>): Promise<AgentSkillIntentPrimeResult> {\n const ranking = await rankDecisionCandidates(options.decision, 'skills', options.intent,\n options.capabilities.skills.map(skill => ({ name: skill.qualifiedName, description: skill.description })),\n options.signal);\n if (!ranking.applied) return primeAgentSkillForIntent(options);\n const maxSelections = options.decision?.config.skills?.maxSelections ?? 2;\n const skills = ranking.selectedNames.slice(0, maxSelections).flatMap(name => {\n const skill = options.capabilities.skills.find(candidate => candidate.qualifiedName === name);\n return skill ? [skill] : [];\n });\n const config = resolveDeferredToolsConfig(options.config);\n let snapshot = projectSessionSnapshot(options.sessionSnapshot, options.capabilities);\n for (const skill of [...skills].reverse()) {\n snapshot = activateSkill(\n snapshot,\n skill,\n options.capabilities.tools,\n config.maxLoadedPerSession,\n new Set(config.alwaysLoadedTools),\n );\n }\n return Object.freeze({ snapshot, skill: skills[0], skills: Object.freeze(skills) });\n}\n\n/**\n * Turn-owned deferred capability authority. It has no filesystem, registry,\n * AsyncLocalStorage, or classic Tool dependency: everything comes from the\n * immutable generation projection and the session snapshot.\n */\nexport function createDeferredCapabilityPlan(\n options: DeferredCapabilityPlanOptions,\n): DeferredCapabilityPlan {\n if (options !== null && typeof options === 'object' && 'authority' in options) {\n throw new Error('createDeferredCapabilityPlan no longer accepts \"authority\"; use createWorkroomDeferredCapabilityPlan or pass an injected \"ceiling\"');\n }\n const config = resolveDeferredToolsConfig(options.config);\n const alwaysLoaded = new Set(config.alwaysLoadedTools);\n const projected = projectCapabilities(options.capabilities, options.ceiling);\n const executableCapabilities = projected.tools.filter(\n (tool) => (!tool.hidden || tool.placement !== undefined)\n && !DEFERRED_META_TOOL_NAMES.has(tool.name)\n && !isReservedControlToolName(tool.name),\n );\n const publicCapabilities = executableCapabilities.filter(\n (tool) => !tool.hidden\n );\n // Platform-scoped adapter tools already passed canAccess for this turn.\n // Keep them in the model tool list so QQ/social actions are not hidden behind discover.\n for (const tool of publicCapabilities) {\n if (tool.platforms?.length) alwaysLoaded.add(tool.name);\n }\n // Plugin authors may opt a tool into the resident set (#857 P1-10).\n for (const name of declaredResidentToolNames(publicCapabilities, options.config)) {\n alwaysLoaded.add(name);\n }\n const publicTools = publicCapabilities.map(capabilityAsAgentTool);\n const publicCatalog = buildToolCatalog({ tools: publicTools, alwaysLoaded });\n let snapshot = projectSessionSnapshot(options.sessionSnapshot, projected);\n\n const persist = async (next: DeferredToolSessionSnapshot): Promise<void> => {\n snapshot = next;\n await options.persistSnapshot(structuredClone(snapshot));\n };\n\n const metaCapabilities = createMetaCapabilities({\n owner: options.capabilities.owner,\n catalog: publicCatalog,\n skills: projected.skills,\n tools: executableCapabilities,\n platform: options.platform,\n topK: config.discoverTopK,\n maxLoaded: config.maxLoadedPerSession,\n pinned: alwaysLoaded,\n getSnapshot: () => snapshot,\n persist,\n decision: options.decision,\n });\n const capabilities = Object.freeze([...executableCapabilities, ...metaCapabilities]);\n const allTools = capabilities.map(capabilityAsAgentTool);\n const catalog = buildToolCatalog({ tools: allTools, alwaysLoaded });\n const publicToolNames = new Set(publicCatalog.map(item => item.name));\n const controller: DeferredCapabilityController = Object.freeze({\n loadedToolNames: () => getLoadedToolNamesFromSnapshot(snapshot),\n loadedSkillInstructions: () => loadedSkillInstructions(projected.skills, snapshot),\n load: async (name: string) => {\n if (!publicToolNames.has(name)) return false;\n if (!alwaysLoaded.has(name)) {\n await persist(touchToolInSnapshot(snapshot, name, config.maxLoadedPerSession));\n }\n return true;\n },\n });\n const resolvedTools = resolveDeferredApiTools(\n catalog,\n alwaysLoaded,\n controller.loadedToolNames(),\n );\n\n return Object.freeze({\n capabilities,\n allTools: Object.freeze(allTools),\n resolvedTools: Object.freeze(resolvedTools),\n catalog: Object.freeze(catalog),\n deferredStats: buildDeferredStats(catalog, resolvedTools),\n controller,\n });\n}\n\n/**\n * Upper bound on plugin tools that may become resident through their own\n * `alwaysLoaded: true` flag in one turn. Each resident schema is sent on every\n * model call, so a misbehaving plugin set must not silently flood the context.\n * Tools past the limit stay deferred (still reachable via `discover` /\n * `load_tool`) and a warning names them once. Operators who need more can list\n * tools in `deferredTools.alwaysLoadedTools`, which this limit does not touch.\n */\nexport const MAX_DECLARED_RESIDENT_TOOLS = 8;\n\nconst warnedOverLimitTools = new Set<string>();\n\n/**\n * Names of public tools whose author set `alwaysLoaded: true`, in projection\n * order and capped at {@link MAX_DECLARED_RESIDENT_TOOLS}.\n *\n * - Absent or `false` keeps the tool deferred (the default for every plugin).\n * - `deferredTools.alwaysLoadedMode: replace` means the operator's list is the\n * complete resident set, so author declarations are ignored.\n * - Only public (non-hidden) capabilities that already passed ingress and the\n * capability ceiling are considered; the flag never grants access.\n */\nexport function declaredResidentToolNames(\n tools: readonly Pick<ToolCapability, 'name' | 'alwaysLoaded'>[],\n config: DeferredCapabilityPlanOptions['config'],\n): string[] {\n if (config.deferredTools?.alwaysLoadedMode === 'replace') return [];\n const declared = tools.filter(tool => tool.alwaysLoaded === true).map(tool => tool.name);\n const overLimit = declared.slice(MAX_DECLARED_RESIDENT_TOOLS)\n .filter(name => !warnedOverLimitTools.has(name));\n if (overLimit.length > 0) {\n for (const name of overLimit) warnedOverLimitTools.add(name);\n logger.warn(\n `${declared.length} plugin tools declare alwaysLoaded; only the first ${MAX_DECLARED_RESIDENT_TOOLS} are resident. `\n + `Still deferred: ${overLimit.join(', ')}. List them in ai.agent.deferredTools.alwaysLoadedTools to keep them loaded.`,\n );\n }\n return declared.slice(0, MAX_DECLARED_RESIDENT_TOOLS);\n}\n\nfunction projectCapabilities(\n capabilities: AgentCapabilities,\n ceiling: DeferredCapabilityCeiling | undefined,\n): Readonly<Pick<AgentCapabilities, 'tools' | 'skills'>> {\n if (!ceiling) {\n return Object.freeze({\n tools: Object.freeze(capabilities.tools.filter(tool => !isReservedControlToolName(tool.name))),\n skills: capabilities.skills,\n });\n }\n const out = ceiling.project(capabilities);\n if (!out || !Array.isArray(out.tools) || !Array.isArray(out.skills)) {\n throw new Error('capability ceiling must return arrays for tools and skills');\n }\n const allowedTools = new Set<ToolCapability>(capabilities.tools);\n const allowedSkills = new Set<SkillDescriptor>(capabilities.skills);\n for (const tool of out.tools) {\n if (!allowedTools.has(tool)) {\n throw new Error(`capability ceiling returned a tool/skill that is not part of the input projection: tool \"${tool?.name}\"`);\n }\n }\n for (const skill of out.skills) {\n if (!allowedSkills.has(skill)) {\n throw new Error(`capability ceiling returned a tool/skill that is not part of the input projection: skill \"${skill?.qualifiedName}\"`);\n }\n }\n return Object.freeze(out);\n}\n\nfunction projectSessionSnapshot(\n snapshot: DeferredToolSessionSnapshot,\n capabilities: Readonly<Pick<AgentCapabilities, 'tools' | 'skills'>>,\n): DeferredToolSessionSnapshot {\n const allowedSkills = new Set(capabilities.skills.flatMap(\n skill => [skill.qualifiedName, skill.name],\n ));\n const loadedSkills = snapshot.loadedSkills.filter(name => allowedSkills.has(name));\n const allowedTools = new Set(capabilities.tools\n .filter((tool) => !tool.hidden)\n .map((tool) => tool.name));\n const loadedSkillNames = new Set(loadedSkills);\n for (const skill of capabilities.skills) {\n if (!loadedSkillNames.has(skill.qualifiedName) && !loadedSkillNames.has(skill.name)) continue;\n for (const tool of resolveSkillTools(skill, capabilities.tools)) allowedTools.add(tool);\n }\n return {\n loadedTools: Object.fromEntries(Object.entries(snapshot.loadedTools)\n .filter(([name]) => allowedTools.has(name))),\n loadedSkills,\n };\n}\n\nexport function capabilityAsAgentTool(tool: ToolCapability): AgentTool {\n const parameters = toolInputSchemaToParameters(tool.inputSchema);\n const modelParameters = structuredClone(parameters) as AgentTool['parameters'];\n return Object.freeze({\n name: tool.name,\n description: tool.description,\n parameters: modelParameters,\n source: tool.source,\n permissions: tool.permissions,\n tags: tool.tags ? [...tool.tags] : undefined,\n keywords: tool.keywords ? [...tool.keywords] : undefined,\n requiresApproval: tool.requiresApproval,\n execute: async () => {\n throw new Error(`AgentCore must execute capability ${tool.name} through ToolExecutionAuthority`);\n },\n });\n}\n\ninterface MetaCapabilityOptions {\n readonly owner: AgentCapabilities['owner'];\n readonly catalog: readonly ToolCatalogItem[];\n readonly skills: readonly SkillDescriptor[];\n readonly tools: readonly ToolCapability[];\n readonly platform?: string;\n readonly topK: number;\n readonly maxLoaded: number;\n /** Always-loaded tools: never written to the snapshot, so they never count against `maxLoaded`. */\n readonly pinned: ReadonlySet<string>;\n readonly getSnapshot: () => DeferredToolSessionSnapshot;\n readonly persist: (snapshot: DeferredToolSessionSnapshot) => Promise<void>;\n readonly decision?: AgentDecisionRuntime;\n}\n\nfunction createMetaCapabilities(options: MetaCapabilityOptions): readonly ToolCapability[] {\n const byName = new Map(options.catalog.map((item) => [item.name, item]));\n return Object.freeze([\n metaCapability(options.owner, 'discover', 'Search deferred tools and skills by intent.', {\n type: 'object',\n properties: {\n query: { type: 'string' },\n kind: { type: 'string', enum: ['tool', 'skill', 'all'] },\n },\n }, async (raw, invocation) => {\n const input = recordOf(raw);\n const query = typeof input.query === 'string' ? input.query.trim() : '';\n const kind = input.kind === 'tool' || input.kind === 'skill' ? input.kind : 'all';\n const catalog = disclosedToolCatalog(options);\n const fallbackTools = kind === 'skill' ? [] : discoverInCatalog({\n query,\n kind: 'tool',\n topK: options.topK,\n platform: options.platform,\n skillRegistry: null,\n catalog,\n });\n const fallbackSkills = kind === 'tool' ? [] : discoverSkills(options.skills, query, options.topK);\n const [rankedTools, rankedSkills] = query ? await Promise.all([\n kind === 'skill' ? undefined : rankDecisionCandidates(options.decision, 'tools', query,\n catalog.map(item => ({ name: item.name, description: item.fullTool.description })), invocation.signal),\n kind === 'tool' ? undefined : rankDecisionCandidates(options.decision, 'skills', query,\n options.skills.map(skill => ({ name: skill.qualifiedName, description: skill.description })), invocation.signal),\n ]) : [];\n const tools = rankedTools?.applied\n ? rankedTools.selectedNames.flatMap(name => {\n const item = catalog.find(candidate => candidate.name === name);\n return item ? [{ kind: 'tool' as const, name, brief: item.brief }] : [];\n }) : fallbackTools;\n const skills = rankedSkills?.applied\n ? rankedSkills.selectedNames.flatMap(name => {\n const skill = options.skills.find(candidate => candidate.qualifiedName === name);\n return skill ? [{ kind: 'skill' as const, name, brief: skill.description }] : [];\n }) : fallbackSkills;\n const rows = [...tools, ...skills];\n return rows.length > 0\n ? rows.map((item) => `- [${item.kind}] ${item.name}: ${item.brief}`).join('\\n')\n : 'No matches.';\n }),\n metaCapability(options.owner, 'load_tool', 'Load a deferred tool schema into this session.', {\n type: 'object',\n properties: { name: { type: 'string' } },\n required: ['name'],\n }, async (raw) => {\n const name = String(recordOf(raw).name ?? '');\n const item = byName.get(name);\n if (!item) return `Tool \"${name}\" not found in catalog.`;\n if (!options.pinned.has(name)) {\n await options.persist(touchToolInSnapshot(options.getSnapshot(), name, options.maxLoaded));\n }\n return `Loaded tool \"${name}\".\\nParameters schema:\\n${JSON.stringify(item.fullTool.parameters, null, 2)}\\n__zhin_tools_mutated__`;\n }),\n metaCapability(options.owner, 'load_skill', 'Load projected skill instructions into this session.', {\n type: 'object',\n properties: { name: { type: 'string' } },\n required: ['name'],\n }, async (raw) => {\n const name = String(recordOf(raw).name ?? '');\n const skill = resolveSkill(options.skills, name);\n if (!skill) return `Skill '${name}' not found in the active generation.`;\n const toolNames = resolveSkillTools(skill, options.tools);\n await options.persist(\n activateSkill(options.getSnapshot(), skill, options.tools, options.maxLoaded, options.pinned),\n );\n const unlocked = toolNames.length > 0 ? `\\nUnlocked tools: ${toolNames.join(', ')}` : '';\n return `${skill.instructions}${unlocked}\\n__zhin_tools_mutated__`;\n }),\n ]);\n}\n\nfunction metaCapability(\n owner: AgentCapabilities['owner'],\n name: string,\n description: string,\n inputSchema: ToolInputSchema,\n execute: (input: unknown, context: ToolInvocationContext) => Promise<unknown>,\n): ToolCapability {\n return Object.freeze({\n owner,\n name,\n qualifiedName: name,\n description,\n inputSchema,\n requiresApproval: 'never',\n source: 'builtin:agent-runtime',\n execute: <TInput = unknown, TResult = unknown>(input: TInput, context: ToolInvocationContext) =>\n execute(input, context) as Promise<TResult>,\n });\n}\n\nfunction discoverSkills(\n skills: readonly SkillDescriptor[],\n query: string,\n topK: number,\n): Array<{ kind: 'skill'; name: string; brief: string }> {\n const needle = query.toLocaleLowerCase();\n return skills\n .filter((skill) => !needle || [\n skill.qualifiedName,\n skill.description,\n ...(skill.keywords ?? []),\n ...(skill.tags ?? []),\n ].join(' ').toLocaleLowerCase().includes(needle))\n .slice(0, topK)\n .map((skill) => ({ kind: 'skill', name: skill.qualifiedName, brief: skill.description }));\n}\n\nfunction resolveSkill(skills: readonly SkillDescriptor[], name: string): SkillDescriptor | undefined {\n const matches = skills.filter((skill) => skill.qualifiedName === name || skill.name === name);\n return matches.length === 1 ? matches[0] : undefined;\n}\n\nfunction loadedSkillInstructions(\n skills: readonly SkillDescriptor[],\n snapshot: DeferredToolSessionSnapshot,\n): string[] {\n const loaded = new Set(snapshot.loadedSkills);\n return skills\n .filter((skill) => skill.always === true\n || loaded.has(skill.qualifiedName)\n || loaded.has(skill.name))\n .map((skill) => skill.instructions);\n}\n\nfunction activateSkill(\n snapshot: DeferredToolSessionSnapshot,\n skill: SkillDescriptor,\n tools: readonly ToolCapability[],\n maxLoaded: number,\n pinned: ReadonlySet<string>,\n): DeferredToolSessionSnapshot {\n const toolNames = resolveSkillTools(skill, tools).filter(name => !pinned.has(name));\n return touchToolsInSnapshot(addSkillToSnapshot(snapshot, skill.qualifiedName), toolNames, maxLoaded);\n}\n\nfunction disclosedToolCatalog(options: MetaCapabilityOptions): ToolCatalogItem[] {\n const loaded = new Set(getLoadedToolNamesFromSnapshot(options.getSnapshot()));\n const privateTools = options.tools.filter(tool => tool.hidden && loaded.has(tool.name));\n return [...options.catalog,\n ...buildToolCatalog({ tools: privateTools.map(capabilityAsAgentTool), alwaysLoaded: new Set<string>() })];\n}\n\nfunction resolveSkillTools(\n skill: SkillDescriptor,\n tools: readonly ToolCapability[],\n): string[] {\n const requested = new Set(skill.toolNames ?? []);\n if (requested.size === 0) return [];\n return tools.filter((tool) => tool.owner === skill.owner\n && belongsToSkill(tool, skill) && [...requested].some(\n name => tool.name === name || tool.name.endsWith(`__${name}`),\n )).map((tool) => tool.name);\n}\n\nfunction belongsToSkill(tool: ToolCapability, skill: SkillDescriptor): boolean {\n const placement = tool.placement;\n if (!placement) return !tool.hidden;\n if (placement.kind === 'agent') return placement.agent === skill.agentName;\n if (placement.kind === 'skill') return !skill.agentName && placement.skill === skill.name;\n return placement.agent === skill.agentName && placement.skill === skill.name;\n}\n\nfunction uniqueBestAgentSkill(\n skills: readonly SkillDescriptor[],\n intent: string,\n): SkillDescriptor | undefined {\n const haystack = intent.normalize('NFKC').toLocaleLowerCase().trim();\n if (!haystack) return undefined;\n const scored = skills\n .filter((skill) => skill.agentName && skill.keywords?.length)\n .map((skill) => ({ skill, score: keywordAffinity(skill.keywords ?? [], haystack) }))\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score\n || left.skill.qualifiedName.localeCompare(right.skill.qualifiedName));\n if (!scored[0] || scored[0].score === scored[1]?.score) return undefined;\n return scored[0].skill;\n}\n\nfunction keywordAffinity(keywords: readonly string[], normalizedIntent: string): number {\n let score = 0;\n for (const value of new Set(keywords)) {\n const keyword = value.normalize('NFKC').toLocaleLowerCase().trim();\n if (keyword && normalizedIntent.includes(keyword)) score += [...keyword].length;\n }\n return score;\n}\n\nfunction recordOf(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? value as Record<string, unknown> : {};\n}\n"]}
@@ -19,4 +19,3 @@ export declare function findActualStringInFile(fileContent: string, searchString
19
19
  * 将 new_string 中的直引号替换为文件中原始的弯引号风格。
20
20
  */
21
21
  export declare function preserveQuoteStyleInEdit(oldString: string, actualOldString: string, newString: string): string;
22
- //# sourceMappingURL=file-edit-quote-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-edit-quote-utils.js","sourceRoot":"","sources":["../../src/plugin-runtime/file-edit-quote-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kBAAkB;AAClB,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG;SACP,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI;SAC5B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI;SAC5B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI;SAC5B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;AAClC,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,YAAoB;IAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,eAAuB,EAAE,SAAiB;IACpG,IAAI,SAAS,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAEpD,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3F,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/C,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"file-edit-quote-utils.js","sourceRoot":"","sources":["../../src/plugin-runtime/file-edit-quote-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 引号归一化 + 模糊匹配,供 edit_file 使用。\n */\n\n/** 将弯引号归一化为直引号 */\nexport function normalizeQuotes(str: string): string {\n return str\n .replace(/\\u2018/g, \"'\") // '\n .replace(/\\u2019/g, \"'\") // '\n .replace(/\\u201C/g, '\"') // \"\n .replace(/\\u201D/g, '\"'); // \"\n}\n\nexport interface FuzzyMatchResult {\n /** 文件中实际匹配到的字符串 */\n actual: string;\n /** 匹配次数 */\n count: number;\n /** 是否通过引号归一化匹配 */\n wasNormalized: boolean;\n}\n\n/**\n * 在文件内容中查找字符串,支持精确匹配和引号归一化模糊匹配。\n */\nexport function findActualStringInFile(fileContent: string, searchString: string): FuzzyMatchResult | null {\n const exactCount = fileContent.split(searchString).length - 1;\n if (exactCount > 0) {\n return { actual: searchString, count: exactCount, wasNormalized: false };\n }\n\n const normalizedSearch = normalizeQuotes(searchString);\n const normalizedFile = normalizeQuotes(fileContent);\n const idx = normalizedFile.indexOf(normalizedSearch);\n if (idx !== -1) {\n const actual = fileContent.substring(idx, idx + searchString.length);\n const normalizedCount = normalizedFile.split(normalizedSearch).length - 1;\n return { actual, count: normalizedCount, wasNormalized: true };\n }\n\n return null;\n}\n\n/**\n * 将 new_string 中的直引号替换为文件中原始的弯引号风格。\n */\nexport function preserveQuoteStyleInEdit(oldString: string, actualOldString: string, newString: string): string {\n if (oldString === actualOldString) return newString;\n\n const hasDouble = actualOldString.includes('\\u201C') || actualOldString.includes('\\u201D');\n const hasSingle = actualOldString.includes('\\u2018') || actualOldString.includes('\\u2019');\n if (!hasDouble && !hasSingle) return newString;\n\n let result = newString;\n if (hasDouble) {\n const chars = [...result];\n const out: string[] = [];\n for (let i = 0; i < chars.length; i++) {\n if (chars[i] === '\"') {\n const prev = i > 0 ? chars[i - 1] : ' ';\n const isOpening = /[\\s(\\[{]/.test(prev) || i === 0;\n out.push(isOpening ? '\\u201C' : '\\u201D');\n } else {\n out.push(chars[i]);\n }\n }\n result = out.join('');\n }\n if (hasSingle) {\n const chars = [...result];\n const out: string[] = [];\n for (let i = 0; i < chars.length; i++) {\n if (chars[i] === \"'\") {\n const prev = i > 0 ? chars[i - 1] : ' ';\n const next = i < chars.length - 1 ? chars[i + 1] : ' ';\n if (/\\p{L}/u.test(prev) && /\\p{L}/u.test(next)) {\n out.push('\\u2019');\n } else {\n const isOpening = /[\\s(\\[{]/.test(prev) || i === 0;\n out.push(isOpening ? '\\u2018' : '\\u2019');\n }\n } else {\n out.push(chars[i]);\n }\n }\n result = out.join('');\n }\n return result;\n}\n"]}