fengming 0.3.8 → 0.3.10

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 (1255) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/abort-CCR8oZyg.js +277 -0
  3. package/dist/abort.runtime-eqx84NZa.js +2 -0
  4. package/dist/abort.runtime.js +1 -1
  5. package/dist/acp-spawn-BcDyvaXh.js +2 -0
  6. package/dist/acp-spawn-CCtSel-_.js +1286 -0
  7. package/dist/acp-stateful-target-driver-B3pCvuOV.js +89 -0
  8. package/dist/active-tool-schema-warnings-Cf-5q5WU.js +105 -0
  9. package/dist/active-tool-schema-warnings-Dzt3XE-y.js +2 -0
  10. package/dist/agent-1M2dVE2G.js +2 -0
  11. package/dist/agent-DLDIbUT4.js +1825 -0
  12. package/dist/agent-DZi6j3o6.js +3 -0
  13. package/dist/agent-command-ppfDBwET.js +1435 -0
  14. package/dist/agent-harness-runtime-C0bo62eY.d.ts +913 -0
  15. package/dist/agent-harness-runtime-RkTGiliR.js +207 -0
  16. package/dist/agent-runner-utils-B4YeVAO_.js +267 -0
  17. package/dist/agent-runner.runtime-T_3tlZN1.js +3784 -0
  18. package/dist/agent-runner.runtime.js +1 -1
  19. package/dist/agent-runtime-CloshyK-.d.ts +207 -0
  20. package/dist/agent-runtime-DZsmp1xr.js +199 -0
  21. package/dist/agent-tools-CET9usCz.js +2506 -0
  22. package/dist/agent-via-gateway-CZ0X0YkM.js +486 -0
  23. package/dist/agent-wait-dedupe-I81_F2tr.js +180 -0
  24. package/dist/agents/embedded-agent-runner/run/runtime-context-prompt.d.ts +1 -1
  25. package/dist/agents/embedded-agent-runner/tool-split.d.ts +1 -1
  26. package/dist/agents/model-catalog.runtime.d.ts +1 -1
  27. package/dist/api-BDB5xHYj.js +3 -0
  28. package/dist/api-BH7bfI5d.js +6 -0
  29. package/dist/api-BxJNXitd.js +2 -0
  30. package/dist/approval-client-helpers-CfQA9Jzh.d.ts +78 -0
  31. package/dist/approval-native-helpers-B2zyhxWc.d.ts +241 -0
  32. package/dist/approval-renderers-CMqSXyvm.d.ts +39 -0
  33. package/dist/assistant-Cu_Mzzgu.js +291 -0
  34. package/dist/attachment-normalize-Bb3v5iCC.js +213 -0
  35. package/dist/attempt-execution-BskbAq5I.js +584 -0
  36. package/dist/attempt-execution.runtime-BuT1wpNS.js +3 -0
  37. package/dist/attempt-execution.runtime.js +1 -1
  38. package/dist/attempt.prompt-helpers-ByKj-vQ7.js +543 -0
  39. package/dist/auto-reply/reply/commands-crestodian.d.ts +1 -1
  40. package/dist/binding-routing-EGRNvRC4.js +113 -0
  41. package/dist/binding-targets-B9vYS8n6.js +121 -0
  42. package/dist/bridge-server-DG9YtKQe.js +113 -0
  43. package/dist/browser-cli-B0Ou-Nbm.js +2 -0
  44. package/dist/browser-cli-GF25gL6M.js +230 -0
  45. package/dist/browser-cli-actions-input-CuER6RVe.js +522 -0
  46. package/dist/browser-cli-actions-observe-Dq-Zz_FA.js +81 -0
  47. package/dist/browser-cli-debug-7hvb49S1.js +137 -0
  48. package/dist/browser-cli-inspect-WU5KeWOK.js +117 -0
  49. package/dist/browser-cli-manage-B9D9BvSe.js +446 -0
  50. package/dist/browser-cli-resize-BUOusOPb.js +32 -0
  51. package/dist/browser-cli-shared-DmpSN-Qi.js +69 -0
  52. package/dist/browser-cli-state-D_YxTqRw.js +371 -0
  53. package/dist/browser-control-auth-Cqd1n9FA.js +2 -0
  54. package/dist/browser-profiles-9tQ05wYh.js +2 -0
  55. package/dist/browser-runtime-Bbzumoha.js +389 -0
  56. package/dist/build-CBXuT2K1.js +261 -0
  57. package/dist/build-info.json +3 -3
  58. package/dist/bundled/boot-md/handler.js +2 -2
  59. package/dist/bundled/session-memory/handler.js +1 -1
  60. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  61. package/dist/capability-cli-CiVGX7ut.js +1809 -0
  62. package/dist/channel-BIVwHq7P.js +2309 -0
  63. package/dist/channel-CiA2FVdL.d.ts +427 -0
  64. package/dist/channel-core-Cj9JTqeu.js +5 -0
  65. package/dist/channel-core-DjVpcH1C.d.ts +6 -0
  66. package/dist/channel-entry-contract-Bs_54m1D.d.ts +114 -0
  67. package/dist/channel-inbound-CdUdeQRa.js +121 -0
  68. package/dist/channel-inbound-iGiqx6CS.d.ts +97 -0
  69. package/dist/channel-message-C3QPaDUk.js +12 -0
  70. package/dist/channel-message-CXDjxb2U.d.ts +9 -0
  71. package/dist/channel-outbound-ofvvmMSK.d.ts +325 -0
  72. package/dist/channel-pairing-DKscOV1K.d.ts +58 -0
  73. package/dist/channel.runtime-VW6PW_ez.js +697 -0
  74. package/dist/channel.runtime.js +1 -1
  75. package/dist/chat-CFkQepUQ.js +3 -0
  76. package/dist/chat-Czh_tXM0.js +2940 -0
  77. package/dist/chrome-B2cq8YyH.js +1517 -0
  78. package/dist/cli/run-main.js +5 -5
  79. package/dist/cli-compaction-Dxv4nt7R.js +363 -0
  80. package/dist/cli-runner-CimXSTVs.js +2 -0
  81. package/dist/cli-runner-orCzE1Sr.js +597 -0
  82. package/dist/cli-runner.runtime-CsW0dXJW.js +3 -0
  83. package/dist/cli-runner.runtime-DgPrc1do.js +4 -0
  84. package/dist/cli-runner.runtime.js +1 -1
  85. package/dist/cli-startup-metadata.json +10 -12
  86. package/dist/command-registry-C5ooX6PF.js +4 -0
  87. package/dist/command-registry-DMB-HKIk.js +9 -0
  88. package/dist/command-registry-core-B2w_XWvn.js +114 -0
  89. package/dist/command-status.runtime-Bdy3Dkar.js +90 -0
  90. package/dist/command-status.runtime.js +1 -1
  91. package/dist/commands-compact.runtime-Bk2jTQo6.js +10 -0
  92. package/dist/commands-compact.runtime.js +1 -1
  93. package/dist/commands-handlers.runtime-Csw1og0U.js +6327 -0
  94. package/dist/commands-handlers.runtime.js +1 -1
  95. package/dist/commands-mRqmLIVz.d.ts +117 -0
  96. package/dist/commands-status-Dgrj_ubK.js +3 -0
  97. package/dist/commands-status-s32HJOpD.js +16 -0
  98. package/dist/commands-status.runtime-Dgrj_ubK.js +3 -0
  99. package/dist/commands-status.runtime.js +1 -1
  100. package/dist/commands-subagents-control.runtime-C_hnOO9l.js +2 -0
  101. package/dist/commands-subagents-control.runtime.js +1 -1
  102. package/dist/commands-system-prompt-CQV742Cc.js +2 -0
  103. package/dist/commands-system-prompt-DTfsKwK1.js +161 -0
  104. package/dist/commands-types-MXHhrssO.d.ts +132 -0
  105. package/dist/commands.runtime-akiVK67l.js +175 -0
  106. package/dist/commands.runtime.js +1 -1
  107. package/dist/commitments/runtime.js +1 -1
  108. package/dist/compact-U6ZhvPtD.js +1165 -0
  109. package/dist/compact.runtime-36E5vKsC.js +12 -0
  110. package/dist/compact.runtime.js +1 -1
  111. package/dist/completion-cli-Bf4mEw2W.js +393 -0
  112. package/dist/config-BJJhHN9E.js +374 -0
  113. package/dist/config-mutations-swLu-j_p.js +161 -0
  114. package/dist/config-schema-Tjner6bM.d.ts +20 -0
  115. package/dist/context-engine-host-compat-6fkn_daV.js +280 -0
  116. package/dist/context-engine-host-compat-DtAZC1bS.js +2 -0
  117. package/dist/context-engine-lifecycle-R__Idxi1.js +627 -0
  118. package/dist/control-auth-DnkI94_D.js +114 -0
  119. package/dist/control-service-BBsamNjq.js +40 -0
  120. package/dist/control-service-BGpHj7RL.js +3 -0
  121. package/dist/control-ui/assets/activity-D-mnRThU.js +124 -0
  122. package/dist/control-ui/assets/agents-U_KSP5I_.js +1030 -0
  123. package/dist/control-ui/assets/channels-ohK9_G1O.js +120 -0
  124. package/dist/control-ui/assets/cron-6ZCzfU29.js +1016 -0
  125. package/dist/control-ui/assets/debug-CSsDLg_s.js +97 -0
  126. package/dist/control-ui/assets/index-jUDczxhd.js +7214 -0
  127. package/dist/control-ui/assets/instances-782ZoDT4.js +57 -0
  128. package/dist/control-ui/assets/nodes-BMX16BKM.js +444 -0
  129. package/dist/control-ui/assets/sessions-jLGSApYa.js +425 -0
  130. package/dist/control-ui/assets/skills-DweBwUhs.js +362 -0
  131. package/dist/control-ui/assets/workboard-BsU-FXIo.js +402 -0
  132. package/dist/control-ui/index.html +1 -1
  133. package/dist/control-ui/sw.js +1 -1
  134. package/dist/conversation-runtime-DDekWU-U.js +31 -0
  135. package/dist/core-Bpk-qSJH.js +284 -0
  136. package/dist/core-Chrz4oRB.d.ts +223 -0
  137. package/dist/core-api-DSpUKNVW.js +2 -0
  138. package/dist/core-api-hLsW03Wo.js +5 -0
  139. package/dist/crestodian/crestodian.js +1 -1
  140. package/dist/crestodian/rescue-message.d.ts +1 -1
  141. package/dist/crestodian/rescue-message.js +1 -1
  142. package/dist/crestodian-C0x7JjF-.js +55 -0
  143. package/dist/delegate-BArFIZ4B.d.ts +30 -0
  144. package/dist/deliver-BnVp3VbL.d.ts +111 -0
  145. package/dist/delivery-queue-BFOASdf5.d.ts +161 -0
  146. package/dist/delivery-queue-runtime-BFfc8AEs.d.ts +9 -0
  147. package/dist/dialogue-No0NvYX7.js +37 -0
  148. package/dist/direct-dm-C-h88JJH.d.ts +79 -0
  149. package/dist/directive-handling.fast-lane-DTyDKhZb.js +70 -0
  150. package/dist/directive-handling.impl-DMReM6tu.js +2 -0
  151. package/dist/directive-handling.impl-DzPouhV-.js +823 -0
  152. package/dist/directive-handling.model-selection-BjwTBAZJ.js +122 -0
  153. package/dist/directive-handling.persist.runtime-D_O1okkR.js +274 -0
  154. package/dist/directive-handling.persist.runtime.js +1 -1
  155. package/dist/dispatch-Dtl-oRuN.js +2057 -0
  156. package/dist/dispatch-acp-transcript.runtime-M4y0Dq74.js +40 -0
  157. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  158. package/dist/dispatch-acp.runtime-B8uCIKZS.js +18 -0
  159. package/dist/dispatch-acp.runtime.js +1 -1
  160. package/dist/dispatcher-DslvaRcj.js +106 -0
  161. package/dist/doctor-config-flow-LU2C94af.js +1819 -0
  162. package/dist/doctor-core-checks-BqcjExIZ.js +666 -0
  163. package/dist/doctor-core-checks-Diuk8l0N.js +2 -0
  164. package/dist/doctor-core-checks.runtime-DbS-kMZN.js +278 -0
  165. package/dist/doctor-core-checks.runtime.js +1 -1
  166. package/dist/doctor-health-BdqHwfYE.js +65 -0
  167. package/dist/doctor-health-contributions-DLLTVnll.js +874 -0
  168. package/dist/doctor-lint-PZqkVMWf.js +95 -0
  169. package/dist/doctor-mRfJMSb5.js +6 -0
  170. package/dist/doctor-state-integrity-Cdlm-peH.js +1257 -0
  171. package/dist/draft-stream-controls-B7uLonbw.d.ts +159 -0
  172. package/dist/embedded-agent-CEpOPW6X.js +4 -0
  173. package/dist/embedded-agent-CNINO_M-.d.ts +5 -0
  174. package/dist/embedded-agent-DxwzoZkp.js +4074 -0
  175. package/dist/embedded-agent.runtime-DDbhA85-.js +4 -0
  176. package/dist/embedded-agent.runtime.js +1 -1
  177. package/dist/embedded-backend-ChaKCepC.js +1581 -0
  178. package/dist/embedded-gateway-stub.runtime-e_ZxGhcW.js +12 -0
  179. package/dist/embedded-gateway-stub.runtime.js +1 -1
  180. package/dist/entry.d.ts +1 -1
  181. package/dist/extensionAPI.d.ts +2 -2
  182. package/dist/extensionAPI.js +1 -1
  183. package/dist/extensions/active-memory/index.d.ts +1 -1
  184. package/dist/extensions/active-memory/index.js +1 -1
  185. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  186. package/dist/extensions/admin-http-rpc/index.js +1 -1
  187. package/dist/extensions/bonjour/index.d.ts +1 -1
  188. package/dist/extensions/browser/browser-bridge.js +1 -1
  189. package/dist/extensions/browser/browser-config.js +4 -4
  190. package/dist/extensions/browser/browser-control-auth.js +2 -2
  191. package/dist/extensions/browser/browser-doctor.js +2 -2
  192. package/dist/extensions/browser/browser-maintenance.js +1 -1
  193. package/dist/extensions/browser/browser-profiles.js +2 -2
  194. package/dist/extensions/browser/browser-runtime-api.js +12 -12
  195. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  196. package/dist/extensions/browser/cli-metadata.js +1 -1
  197. package/dist/extensions/browser/index.d.ts +1 -1
  198. package/dist/extensions/browser/index.js +1 -1
  199. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  200. package/dist/extensions/browser/plugin-registration.js +1 -1
  201. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  202. package/dist/extensions/browser/register.runtime.js +4 -4
  203. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  204. package/dist/extensions/browser/runtime-api.js +14 -14
  205. package/dist/extensions/browser/setup-api.d.ts +1 -1
  206. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  207. package/dist/extensions/canvas/index.d.ts +1 -1
  208. package/dist/extensions/canvas/index.js +1 -1
  209. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  210. package/dist/extensions/deepseek/api.d.ts +1 -1
  211. package/dist/extensions/deepseek/index.d.ts +1 -1
  212. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  213. package/dist/extensions/deepseek/stream.d.ts +1 -1
  214. package/dist/extensions/device-pair/api.d.ts +4 -4
  215. package/dist/extensions/device-pair/api.js +1 -1
  216. package/dist/extensions/device-pair/index.d.ts +1 -1
  217. package/dist/extensions/device-pair/notify.d.ts +1 -1
  218. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  219. package/dist/extensions/device-pair/qr-image.d.ts +1 -1
  220. package/dist/extensions/memory-core/api.d.ts +1 -1
  221. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  222. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  223. package/dist/extensions/memory-core/index.d.ts +1 -1
  224. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  225. package/dist/extensions/memory-core/runtime-api.d.ts +3 -3
  226. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  227. package/dist/extensions/skill-workshop/api.js +1 -1
  228. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  229. package/dist/extensions/skill-workshop/index.js +2 -2
  230. package/dist/extensions/tavily/index.d.ts +1 -1
  231. package/dist/extensions/tavily/web-search-contract-api.d.ts +1 -1
  232. package/dist/extensions/tavily/web-search-provider.d.ts +1 -1
  233. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  234. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  235. package/dist/extensions/webhooks/api.d.ts +2 -2
  236. package/dist/extensions/webhooks/api.js +1 -1
  237. package/dist/extensions/webhooks/index.d.ts +1 -1
  238. package/dist/extensions/webhooks/index.js +1 -1
  239. package/dist/extensions/webhooks/runtime-api.d.ts +1 -1
  240. package/dist/extensions/workboard/api.d.ts +2 -2
  241. package/dist/extensions/workboard/index.d.ts +1 -1
  242. package/dist/extensions/workboard/index.js +1 -1
  243. package/dist/extensions/workboard/runtime-api.d.ts +1 -1
  244. package/dist/fengming-runtime-CtRd5677.d.ts +153 -0
  245. package/dist/fengming-tools-DBLsJfsf.js +12221 -0
  246. package/dist/gateway-cli-BgDV2HF9.js +443 -0
  247. package/dist/gateway-method-runtime-d9oN_XO9.js +21 -0
  248. package/dist/get-reply-CEMtvaTJ.js +5198 -0
  249. package/dist/get-reply-from-config.runtime-CE8zmX7o.js +2 -0
  250. package/dist/get-reply-from-config.runtime.js +1 -1
  251. package/dist/heartbeat-runner-H8SmaKmJ.js +5 -0
  252. package/dist/heartbeat-runner.runtime-6hUaxEbl.js +3 -0
  253. package/dist/heartbeat-runner.runtime.js +1 -1
  254. package/dist/hooks-DkEvkwzS.js +536 -0
  255. package/dist/host-compat-DeAq3dnI.d.ts +21 -0
  256. package/dist/http-registry-BDoApjTY.d.ts +23 -0
  257. package/dist/inbound-reply-dispatch-CIYP2OPo.d.ts +156 -0
  258. package/dist/inbound-reply-dispatch-geHu6oUK.js +147 -0
  259. package/dist/inbound-reply-dispatch-vwW5Hl-_.js +2 -0
  260. package/dist/index.js +1 -1
  261. package/dist/init-DpE_6dG4.js +59 -0
  262. package/dist/interactive-Cb_1f91G.d.ts +26 -0
  263. package/dist/isolated-agent-B_upYOOM.js +2 -0
  264. package/dist/isolated-agent-KH9uwWhw.js +1097 -0
  265. package/dist/kernel-BHnBXnm2.d.ts +241 -0
  266. package/dist/lifecycle-BmZwopzF.js +570 -0
  267. package/dist/list.probe-5kzWm9Jk.js +451 -0
  268. package/dist/list.probe-9zBcGGQ4.js +2 -0
  269. package/dist/list.status-command-DY2ifqp1.js +815 -0
  270. package/dist/llm-slug-generator-Bmx0I84M.js +78 -0
  271. package/dist/llm-slug-generator.js +1 -1
  272. package/dist/loader-BVz75gSb.d.ts +142 -0
  273. package/dist/local-dispatch.runtime-CX3IOY1E.js +10 -0
  274. package/dist/local-dispatch.runtime.js +1 -1
  275. package/dist/manager-BXGg8bfG.d.ts +409 -0
  276. package/dist/mcp-http-B1lnh67s.js +2 -0
  277. package/dist/mcp-http-CamghE-W.js +583 -0
  278. package/dist/media-runtime-DpykroJR.d.ts +261 -0
  279. package/dist/memory-core-host-engine-embeddings-N2dX5P40.d.ts +324 -0
  280. package/dist/memory-core-host-engine-storage-WQfkQMer.d.ts +54 -0
  281. package/dist/message-handler-Ca_pqGVS.js +1806 -0
  282. package/dist/model-catalog-BBMLIjhq.d.ts +88 -0
  283. package/dist/model-selection-Cq82FXLy.js +352 -0
  284. package/dist/models-cli-Dm_393dw.js +257 -0
  285. package/dist/monitor-d0eyE2k0.js +60 -0
  286. package/dist/monitor.account-vLQ3bKHu.js +5382 -0
  287. package/dist/nodes-Bunvrb33.js +1483 -0
  288. package/dist/nodes-edNlxb2I.js +3 -0
  289. package/dist/nodes-pending-DEIwVh9v.js +211 -0
  290. package/dist/openai-compat-errors-CvWEoG98.js +136 -0
  291. package/dist/openai-http-Bskdv4Tv.js +836 -0
  292. package/dist/openresponses-http-DxdgCxFU.js +1175 -0
  293. package/dist/operations-Z85LFqsT.js +805 -0
  294. package/dist/outbound.types-DVkbsxo8.d.ts +291 -0
  295. package/dist/plugin-enabled-fvhTpvYS.js +232 -0
  296. package/dist/plugin-entry-CunlVUw6.d.ts +47 -0
  297. package/dist/plugin-registration-9ovnK_Tk.js +97 -0
  298. package/dist/plugin-runtime-DH2ZM9P5.d.ts +117 -0
  299. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  300. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  301. package/dist/plugin-sdk/acp-runtime.js +1 -1
  302. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  303. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  304. package/dist/plugin-sdk/agent-harness.js +6 -6
  305. package/dist/plugin-sdk/agent-runtime.js +2 -2
  306. package/dist/plugin-sdk/bundled-channel-config-schema-Dfn3b8sF.d.ts +3169 -0
  307. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  308. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  309. package/dist/plugin-sdk/channel-core.js +2 -2
  310. package/dist/plugin-sdk/channel-envelope.js +1 -1
  311. package/dist/plugin-sdk/channel-inbound-roots.js +1 -1
  312. package/dist/plugin-sdk/channel-inbound.js +2 -2
  313. package/dist/plugin-sdk/channel-location.js +1 -1
  314. package/dist/plugin-sdk/channel-message-runtime.js +3 -3
  315. package/dist/plugin-sdk/channel-message.js +2 -2
  316. package/dist/plugin-sdk/channel-runtime.js +0 -1
  317. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  318. package/dist/plugin-sdk/compat.js +1 -1
  319. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  320. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  321. package/dist/plugin-sdk/core.js +2 -2
  322. package/dist/plugin-sdk/discord.d.ts +1 -1
  323. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  324. package/dist/plugin-sdk/health.js +1 -1
  325. package/dist/plugin-sdk/hook-runtime.js +0 -1
  326. package/dist/plugin-sdk/inbound-reply-dispatch.js +2 -2
  327. package/dist/plugin-sdk/index.js +1 -1
  328. package/dist/plugin-sdk/infra-runtime.js +3 -1
  329. package/dist/plugin-sdk/provider-auth-api-key.js +0 -1
  330. package/dist/plugin-sdk/provider-stream-family.js +0 -1
  331. package/dist/plugin-sdk/provider-usage.js +649 -1
  332. package/dist/plugin-sdk/reply-runtime.js +4 -4
  333. package/dist/plugin-sdk/video-generation.js +206 -1
  334. package/dist/plugin-service-BdZxoKBZ.js +1249 -0
  335. package/dist/plugin-service-quTl5hT0.d.ts +24 -0
  336. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  337. package/dist/plugins/loader.d.ts +1 -1
  338. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  339. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  340. package/dist/plugins/runtime/index.d.ts +1 -1
  341. package/dist/plugins/runtime/index.js +4 -4
  342. package/dist/plugins/tools.d.ts +1 -1
  343. package/dist/prepare.runtime-DFvkUqBZ.js +798 -0
  344. package/dist/prepare.runtime.js +1 -1
  345. package/dist/preview-warnings-CGzc8ccG.js +618 -0
  346. package/dist/program-D19g2jaa.js +131 -0
  347. package/dist/provider-api-key-auth-B8GgTfo8.d.ts +27 -0
  348. package/dist/provider-auth-result-Diw-woMA.d.ts +21 -0
  349. package/dist/provider-catalog-shared-hMvzzDgL.d.ts +62 -0
  350. package/dist/provider-dispatcher-DCTc4lG_.js +22 -0
  351. package/dist/provider-dispatcher.runtime.js +1 -1
  352. package/dist/provider-model-shared-BUCh3uCL.d.ts +143 -0
  353. package/dist/provider-registry-BIokPlxa.d.ts +8 -0
  354. package/dist/provider-registry-CyUOXHG-.d.ts +8 -0
  355. package/dist/provider-registry-i--H79Ao.d.ts +29 -0
  356. package/dist/provider-self-hosted-setup-BF8UR8wg.d.ts +74 -0
  357. package/dist/provider-stream-NF0XJnar.d.ts +139 -0
  358. package/dist/provider-stream-shared-DLwDaYed.d.ts +132 -0
  359. package/dist/provider-web-search-contract-fields-D61Vl5Kl.d.ts +25 -0
  360. package/dist/pw-ai-DYR-D7xR.js +3064 -0
  361. package/dist/register.agent-DwW0mQPk.js +152 -0
  362. package/dist/register.crestodian-BhIukKDA.js +24 -0
  363. package/dist/register.maintenance-DWHlvztJ.js +85 -0
  364. package/dist/register.subclis-Bsvdh8RI.js +3 -0
  365. package/dist/register.subclis-DVk0HU4k.js +31 -0
  366. package/dist/register.subclis-core-BK7nVvl6.js +278 -0
  367. package/dist/registry-hscEPAcC.d.ts +8 -0
  368. package/dist/registry-types-Ce-n1tuw.d.ts +392 -0
  369. package/dist/repair-sequencing-0-qGNSUO.js +652 -0
  370. package/dist/reply-payload-mCw4ZND6.d.ts +200 -0
  371. package/dist/reply-turn-admission-DMWNadoS.js +2056 -0
  372. package/dist/reply.runtime-CE8zmX7o.js +2 -0
  373. package/dist/reply.runtime.js +1 -1
  374. package/dist/result-fallback-classifier-BZmv2ACy.js +98 -0
  375. package/dist/route-qQ-jYpFa.js +475 -0
  376. package/dist/routes-dTCmw98g.js +2 -0
  377. package/dist/routes-r8DRKa83.js +3701 -0
  378. package/dist/run-BgH7EPGH.js +1162 -0
  379. package/dist/run-command-DCsM-BVh.js +23 -0
  380. package/dist/run-command-I2ib4dwS.js +2 -0
  381. package/dist/run-context-CWaKUKKJ.js +66 -0
  382. package/dist/run-embedded.runtime-CBnDBWN0.js +4 -0
  383. package/dist/run-embedded.runtime.js +1 -1
  384. package/dist/run-execution-cli.runtime-DlYXI-lw.js +4 -0
  385. package/dist/run-execution-cli.runtime.js +1 -1
  386. package/dist/run-executor.runtime-DwepGrmB.js +330 -0
  387. package/dist/run-executor.runtime.js +1 -1
  388. package/dist/run-subagent-registry.runtime-CeVpoIhj.js +2 -0
  389. package/dist/run-subagent-registry.runtime.js +1 -1
  390. package/dist/runtime-D2ee-rNh.js +436 -0
  391. package/dist/runtime-api-B99ZlkNt.d.ts +5 -0
  392. package/dist/runtime-api-Cta2L_Yo.js +12 -0
  393. package/dist/runtime-channel-LKOkML3M.js +2 -0
  394. package/dist/runtime-channel-UtWvrTZ5.js +148 -0
  395. package/dist/runtime-embedded-agent.runtime-9O2Idzyb.js +2 -0
  396. package/dist/runtime-embedded-agent.runtime.js +1 -1
  397. package/dist/runtime-forwarders-DjI8RFL5.d.ts +39 -0
  398. package/dist/sdk-setup-tools-B-X04pa6.js +8 -0
  399. package/dist/selection-B02h8Old.js +3 -0
  400. package/dist/selection-DEPvzrW2.js +18365 -0
  401. package/dist/server-CMYi8gDo.js +24 -0
  402. package/dist/server-Cx07rsiY.js +72 -0
  403. package/dist/server-close.runtime.js +1 -1
  404. package/dist/server-context-BIemGRt4.js +2 -0
  405. package/dist/server-context-CB_an9iy.js +955 -0
  406. package/dist/server-cron-BeyuBUjb.js +3173 -0
  407. package/dist/server-cron-CV7KkVeB.js +2 -0
  408. package/dist/server-methods-C7EnpOhB.js +497 -0
  409. package/dist/server-node-events-DMMzZciN.js +597 -0
  410. package/dist/server-plugin-bootstrap-O6MzvzL8.js +71 -0
  411. package/dist/server-plugins-Dwnaz9kX.js +435 -0
  412. package/dist/server-reload-handlers-C-6TyPvI.js +719 -0
  413. package/dist/server-restart-sentinel-Dc35eYgk.js +700 -0
  414. package/dist/server-runtime-services-DCs-gqh_.js +3 -0
  415. package/dist/server-runtime-services-DF2fzzVd.js +147 -0
  416. package/dist/server-startup-plugins-t-YeYibm.js +127 -0
  417. package/dist/server-startup-post-attach-CiEki-DC.js +793 -0
  418. package/dist/server-ws-runtime-uaUpI-e8.js +374 -0
  419. package/dist/server.impl-MoHjSMr5.js +2622 -0
  420. package/dist/session-kill-http-CYCiQpt2.js +121 -0
  421. package/dist/session-reset-service-BYbADY57.js +651 -0
  422. package/dist/session-status.runtime-8NASbeO4.js +2 -0
  423. package/dist/session-status.runtime.js +1 -1
  424. package/dist/session-subagent-reactivation.runtime-DGeNY2Rb.js +2 -0
  425. package/dist/session-subagent-reactivation.runtime.js +1 -1
  426. package/dist/session-tab-registry-C2eElZrt.js +551 -0
  427. package/dist/sessions-DXAdVXIx.js +1917 -0
  428. package/dist/sessions-history-http-BwK7b8OH.js +432 -0
  429. package/dist/sessions-patch-BYC5gvY1.js +401 -0
  430. package/dist/sessions-resolve-C3ORcdmo.js +180 -0
  431. package/dist/sessions.runtime-BijldeSY.js +2 -0
  432. package/dist/sessions.runtime.js +1 -1
  433. package/dist/snapshot-urls-C5CfP3Co.js +317 -0
  434. package/dist/speech-core-wWkTZPpQ.d.ts +49 -0
  435. package/dist/standalone-CHrieUsw.js +42 -0
  436. package/dist/startup-context-CZfmG8-g.js +314 -0
  437. package/dist/status-subagents.runtime-D2XMebiS.js +32 -0
  438. package/dist/status-subagents.runtime.js +1 -1
  439. package/dist/status-text-JR7IPyzZ.js +301 -0
  440. package/dist/stream-BJgTkLEI.d.ts +5 -0
  441. package/dist/subagent-announce-B9cfs_KZ.js +353 -0
  442. package/dist/subagent-announce-delivery-CtmEvLTS.js +1369 -0
  443. package/dist/subagent-control-DVqLHi9O.js +492 -0
  444. package/dist/subagent-hooks-D251uSvy.js +230 -0
  445. package/dist/subagent-hooks-api-DvdMKxsC.js +23 -0
  446. package/dist/subagent-hooks-uLORYChc.js +2 -0
  447. package/dist/subagent-registry-BW2l_oYu.js +3 -0
  448. package/dist/subagent-registry-BxEMHuiN.js +2627 -0
  449. package/dist/subagent-registry.runtime.d.ts +1 -1
  450. package/dist/subagent-registry.runtime.js +1 -1
  451. package/dist/subagent-session-cleanup-BC5wV2qQ.js +390 -0
  452. package/dist/system-fvgHsr2x.js +111 -0
  453. package/dist/talk-DU0Sod_K.js +2454 -0
  454. package/dist/target-id-BR2xJIkd.js +107 -0
  455. package/dist/task-registry-control.runtime.js +1 -1
  456. package/dist/thread-bindings-8XNu5U2p.js +228 -0
  457. package/dist/tool-Boeg0N5g.js +143 -0
  458. package/dist/tool-dispatch-BhLLaL2g.js +155 -0
  459. package/dist/tool-resolution-CzsLs-87.js +153 -0
  460. package/dist/tool-split-Bedy42Ms.d.ts +19 -0
  461. package/dist/tools-B6egHpE3.d.ts +38 -0
  462. package/dist/tools-effective-NXscxK8n.js +442 -0
  463. package/dist/tools-effective-inventory-NsGMUVo-.js +379 -0
  464. package/dist/tools-invoke-_sSu96Kq.js +51 -0
  465. package/dist/tools-invoke-http-BDhlRl-G.js +68 -0
  466. package/dist/tools-invoke-shared-BH-T9Bcg.js +200 -0
  467. package/dist/tts-runtime-C1wu3o15.d.ts +230 -0
  468. package/dist/tui-C733Qov0.js +2 -0
  469. package/dist/tui-DqbscVN5.js +3 -0
  470. package/dist/tui-backend-_Pn3Byj-.js +257 -0
  471. package/dist/tui-cli-CAiC39zd.js +40 -0
  472. package/dist/tui-ink-run-ChXEGj1h.js +7414 -0
  473. package/dist/tui-ink-run-D4mSfLHj.js +2 -0
  474. package/dist/types-BQw1qXGl.d.ts +7034 -0
  475. package/dist/types-BzMoU6-C.d.ts +111 -0
  476. package/dist/types-DltHmoCX.d.ts +393 -0
  477. package/dist/types.public-C_bVIMBl.d.ts +70 -0
  478. package/dist/web-fetch/runtime.d.ts +1 -1
  479. package/dist/webhook-targets-DW2jhddP.d.ts +99 -0
  480. package/npm-shrinkwrap.json +12861 -11889
  481. package/package.json +2 -5
  482. package/skills/batch/SKILL.md +118 -0
  483. package/skills/code-review/SKILL.md +107 -0
  484. package/skills/debug/SKILL.md +83 -0
  485. package/skills/loop/SKILL.md +118 -0
  486. package/skills/run/SKILL.md +79 -0
  487. package/skills/run-skill-generator/SKILL.md +179 -0
  488. package/skills/verify/SKILL.md +103 -0
  489. package/dist/abort-DGskei2p.js +0 -277
  490. package/dist/abort.runtime-Buq9IZxn.js +0 -2
  491. package/dist/acp-spawn-DC6IyYaB.js +0 -1286
  492. package/dist/acp-spawn-Diqb3nel.js +0 -2
  493. package/dist/acp-stateful-target-driver-Clhe_L8v.js +0 -89
  494. package/dist/active-tool-schema-warnings-BRhKkyvt.js +0 -2
  495. package/dist/active-tool-schema-warnings-C6N0-ce6.js +0 -105
  496. package/dist/agent-C5lhsEZJ.js +0 -2
  497. package/dist/agent-WEb757bl.js +0 -1825
  498. package/dist/agent-command-iLD_nsVY.js +0 -1435
  499. package/dist/agent-core-BeDN8Ns5.d.ts +0 -13
  500. package/dist/agent-harness-runtime-C89_Q-bW.d.ts +0 -913
  501. package/dist/agent-harness-runtime-Dfn5rik2.js +0 -207
  502. package/dist/agent-runner-utils-DNiuuo43.js +0 -267
  503. package/dist/agent-runner.runtime-CFF_qJ5V.js +0 -3784
  504. package/dist/agent-runtime-BkMtWXxn.js +0 -199
  505. package/dist/agent-runtime-HufMO_YR.d.ts +0 -207
  506. package/dist/agent-tools-HmaDv4ot.js +0 -2506
  507. package/dist/agent-via-gateway-CZQG8RYL.js +0 -486
  508. package/dist/agent-wait-dedupe-C3xQk2Ww.js +0 -180
  509. package/dist/agent-z1cs3c7n.js +0 -3
  510. package/dist/api-B4IMKjSe.js +0 -3
  511. package/dist/api-BwSbBWI8.js +0 -3
  512. package/dist/api-CE9In9m4.js +0 -5
  513. package/dist/api-ClPvYNGa.js +0 -32
  514. package/dist/api-CntBCaZf.js +0 -3
  515. package/dist/api-DBZBwTsn.js +0 -6
  516. package/dist/api-OCPwGOvK.js +0 -2
  517. package/dist/api-yYhEo7gK.js +0 -4
  518. package/dist/approval-client-helpers-CfdQ3-vv.d.ts +0 -78
  519. package/dist/approval-native-helpers-DSHPksK4.d.ts +0 -241
  520. package/dist/approval-renderers-BfEfwk44.d.ts +0 -39
  521. package/dist/assistant-v5fdOYu7.js +0 -291
  522. package/dist/attachment-normalize-BHAbLiL2.js +0 -213
  523. package/dist/attempt-execution-5w9WYbaJ.js +0 -584
  524. package/dist/attempt-execution.runtime-DnhOWGzr.js +0 -3
  525. package/dist/attempt.prompt-helpers-C4M4erF7.js +0 -543
  526. package/dist/binding-routing-Dpes-QF1.js +0 -113
  527. package/dist/binding-targets-B6H5Pd-A.js +0 -121
  528. package/dist/bridge-server-BCpxCRm_.js +0 -113
  529. package/dist/browser-cli-DMhXHopl.js +0 -230
  530. package/dist/browser-cli-Dy_VugK0.js +0 -2
  531. package/dist/browser-cli-actions-input-WMP7_lm6.js +0 -522
  532. package/dist/browser-cli-actions-observe-DQWAWhwU.js +0 -81
  533. package/dist/browser-cli-debug-CaT2ZKAx.js +0 -137
  534. package/dist/browser-cli-inspect-DU-LUXq1.js +0 -117
  535. package/dist/browser-cli-manage-DAuogqIh.js +0 -446
  536. package/dist/browser-cli-resize-Cz5uO_aR.js +0 -32
  537. package/dist/browser-cli-shared-CjPZcG3j.js +0 -69
  538. package/dist/browser-cli-state-CC3l77-K.js +0 -371
  539. package/dist/browser-control-auth-ELccIUZy.js +0 -2
  540. package/dist/browser-profiles-Cuy4ia6_.js +0 -2
  541. package/dist/browser-runtime-De-iUfME.js +0 -389
  542. package/dist/build-DEF8Per9.js +0 -261
  543. package/dist/capability-cli-Bydel4E7.js +0 -1809
  544. package/dist/channel-6SGL4R5P.js +0 -2309
  545. package/dist/channel-D3Q3b8J-.d.ts +0 -427
  546. package/dist/channel-core-Bj71kAB5.d.ts +0 -6
  547. package/dist/channel-core-DMvyWnHg.js +0 -5
  548. package/dist/channel-entry-contract-zYxRmEdf.d.ts +0 -114
  549. package/dist/channel-inbound-DVJzBcJ8.d.ts +0 -97
  550. package/dist/channel-inbound-DlCa7eJe.js +0 -121
  551. package/dist/channel-message-CyPGMMFB.js +0 -12
  552. package/dist/channel-message-Czl4cdoA.d.ts +0 -9
  553. package/dist/channel-outbound-BNbhmruA.d.ts +0 -325
  554. package/dist/channel-pairing-BiS-tSvl.d.ts +0 -58
  555. package/dist/channel-runtime-D8hntg7H.js +0 -7
  556. package/dist/channel.runtime-DxErReJR.js +0 -697
  557. package/dist/chat-BLA8ORQI.js +0 -3
  558. package/dist/chat-DWRXkuvU.js +0 -2940
  559. package/dist/chrome-DPwFYi-g.js +0 -1517
  560. package/dist/cli-compaction-YZpssARf.js +0 -363
  561. package/dist/cli-runner-D2OAqxu3.js +0 -597
  562. package/dist/cli-runner-DO4SORQf.js +0 -2
  563. package/dist/cli-runner.runtime-CNSIpbeT.js +0 -4
  564. package/dist/cli-runner.runtime-DAOYvpVQ.js +0 -3
  565. package/dist/command-registry-DpD0fb8D.js +0 -4
  566. package/dist/command-registry-core-Cl3tLG8G.js +0 -114
  567. package/dist/command-registry-nbP7c8RT.js +0 -9
  568. package/dist/command-status.runtime-BBuXTkq0.js +0 -90
  569. package/dist/commands-CR8MVvlD.d.ts +0 -117
  570. package/dist/commands-compact.runtime-BoafIjjg.js +0 -10
  571. package/dist/commands-handlers.runtime-D9jViG_x.js +0 -6327
  572. package/dist/commands-status-BqqJ7PVq.js +0 -16
  573. package/dist/commands-status-CMd41Vxf.js +0 -3
  574. package/dist/commands-status.runtime-CMd41Vxf.js +0 -3
  575. package/dist/commands-subagents-control.runtime-CU4I3A_n.js +0 -2
  576. package/dist/commands-system-prompt-CTtu1D3-.js +0 -2
  577. package/dist/commands-system-prompt-xswhORdM.js +0 -161
  578. package/dist/commands-types-B67CsqXf.d.ts +0 -132
  579. package/dist/commands.runtime-BUFhkrjQ.js +0 -175
  580. package/dist/compact-Dz_WvRkQ.js +0 -1165
  581. package/dist/compact.runtime-n-AKErni.js +0 -12
  582. package/dist/completion-cli-DJYs_L4_.js +0 -393
  583. package/dist/config-CFMbHJb0.js +0 -374
  584. package/dist/config-mutations-DCAloTKR.js +0 -161
  585. package/dist/config-schema-Drw1zrnG.d.ts +0 -20
  586. package/dist/context-engine-host-compat-4mNm1HCE.js +0 -2
  587. package/dist/context-engine-host-compat-BzJ7fUIn.js +0 -280
  588. package/dist/context-engine-lifecycle-V4PNQp6k.js +0 -627
  589. package/dist/control-auth-DG_cw-aN.js +0 -114
  590. package/dist/control-service-CurYipgK.js +0 -3
  591. package/dist/control-service-VyncoV7j.js +0 -40
  592. package/dist/control-ui/assets/activity-D5Plhlo-.js +0 -124
  593. package/dist/control-ui/assets/agents-Chcdfe1E.js +0 -1030
  594. package/dist/control-ui/assets/channels-BEtB4H37.js +0 -120
  595. package/dist/control-ui/assets/cron-CZyPkxSU.js +0 -1016
  596. package/dist/control-ui/assets/debug-DvM8iG47.js +0 -97
  597. package/dist/control-ui/assets/index-Rmpgh0f1.js +0 -7214
  598. package/dist/control-ui/assets/instances-yTC_uu60.js +0 -57
  599. package/dist/control-ui/assets/nodes-vbAxVHIH.js +0 -444
  600. package/dist/control-ui/assets/sessions-DOviHme5.js +0 -425
  601. package/dist/control-ui/assets/skills-Bfp5HEGW.js +0 -362
  602. package/dist/control-ui/assets/workboard-5sU2kHsV.js +0 -402
  603. package/dist/conversation-runtime-DgaABwHh.js +0 -31
  604. package/dist/core-BeBXdneV.js +0 -284
  605. package/dist/core-Chqb7X6l.d.ts +0 -223
  606. package/dist/core-api-BlK0FgBM.js +0 -2
  607. package/dist/core-api-pAvYk716.js +0 -5
  608. package/dist/crestodian-FeGTBqO1.js +0 -55
  609. package/dist/delegate-BjIjSU_E.d.ts +0 -30
  610. package/dist/deliver-CvtWN4Ey.d.ts +0 -111
  611. package/dist/delivery-queue-CQ-cj3KG.d.ts +0 -161
  612. package/dist/delivery-queue-runtime-ut7MG04m.d.ts +0 -9
  613. package/dist/detect-BjXPyrwn.js +0 -115
  614. package/dist/detect-C1xeIemQ.d.ts +0 -16
  615. package/dist/dialogue-BowVYhEC.js +0 -37
  616. package/dist/direct-dm-DoZZHpA0.d.ts +0 -79
  617. package/dist/directive-handling.fast-lane-hnmQ_CvD.js +0 -70
  618. package/dist/directive-handling.impl-Cai-CFS1.js +0 -2
  619. package/dist/directive-handling.impl-DY84qIfU.js +0 -823
  620. package/dist/directive-handling.model-selection-DASssLFQ.js +0 -122
  621. package/dist/directive-handling.persist.runtime-BY7tJUs2.js +0 -274
  622. package/dist/dispatch-D5iG5A8j.js +0 -2057
  623. package/dist/dispatch-acp-transcript.runtime-D3r16hbD.js +0 -40
  624. package/dist/dispatch-acp.runtime-CAIau5qX.js +0 -18
  625. package/dist/dispatcher-7-d2gw3J.js +0 -106
  626. package/dist/doctor-DD5YEMmf.js +0 -6
  627. package/dist/doctor-config-flow-CdlLHJmX.js +0 -1819
  628. package/dist/doctor-core-checks-6MP99TQG.js +0 -666
  629. package/dist/doctor-core-checks-Dm_o576z.js +0 -2
  630. package/dist/doctor-core-checks.runtime-B2qbKATd.js +0 -278
  631. package/dist/doctor-health-BKrhOv1v.js +0 -65
  632. package/dist/doctor-health-contributions-bIBLmw69.js +0 -874
  633. package/dist/doctor-lint-aOLOWli4.js +0 -95
  634. package/dist/doctor-state-integrity-23NQNNuo.js +0 -1257
  635. package/dist/draft-stream-controls-Bk1GVJ1l.d.ts +0 -159
  636. package/dist/embedded-agent-BeK8FhZr.d.ts +0 -5
  637. package/dist/embedded-agent-CNp_y7jW.js +0 -4074
  638. package/dist/embedded-agent-NEmNlXDR.js +0 -4
  639. package/dist/embedded-agent.runtime-hEby8P2s.js +0 -4
  640. package/dist/embedded-backend-BdbgfpBP.js +0 -1581
  641. package/dist/embedded-gateway-stub.runtime-ySZUA3Gy.js +0 -12
  642. package/dist/extensions/alibaba/fengming.plugin.json +0 -47
  643. package/dist/extensions/alibaba/index.d.ts +0 -12
  644. package/dist/extensions/alibaba/index.js +0 -13
  645. package/dist/extensions/alibaba/package.json +0 -15
  646. package/dist/extensions/alibaba/video-generation-provider.d.ts +0 -6
  647. package/dist/extensions/alibaba/video-generation-provider.js +0 -2
  648. package/dist/extensions/baichuan/fengming.plugin.json +0 -69
  649. package/dist/extensions/baichuan/index.d.ts +0 -11
  650. package/dist/extensions/baichuan/index.js +0 -45
  651. package/dist/extensions/baichuan/models.d.ts +0 -7
  652. package/dist/extensions/baichuan/models.js +0 -2
  653. package/dist/extensions/baichuan/onboard.d.ts +0 -5
  654. package/dist/extensions/baichuan/onboard.js +0 -2
  655. package/dist/extensions/baichuan/package.json +0 -15
  656. package/dist/extensions/baichuan/provider-catalog.d.ts +0 -2
  657. package/dist/extensions/baichuan/provider-catalog.js +0 -2
  658. package/dist/extensions/baichuan/provider-discovery.d.ts +0 -2
  659. package/dist/extensions/baichuan/provider-discovery.js +0 -5
  660. package/dist/extensions/byteplus/api.d.ts +0 -3
  661. package/dist/extensions/byteplus/api.js +0 -3
  662. package/dist/extensions/byteplus/fengming.plugin.json +0 -196
  663. package/dist/extensions/byteplus/index.d.ts +0 -12
  664. package/dist/extensions/byteplus/index.js +0 -85
  665. package/dist/extensions/byteplus/models.d.ts +0 -2
  666. package/dist/extensions/byteplus/models.js +0 -2
  667. package/dist/extensions/byteplus/package.json +0 -15
  668. package/dist/extensions/byteplus/provider-catalog.d.ts +0 -2
  669. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  670. package/dist/extensions/byteplus/provider-discovery.d.ts +0 -5
  671. package/dist/extensions/byteplus/provider-discovery.js +0 -23
  672. package/dist/extensions/byteplus/video-generation-provider.d.ts +0 -6
  673. package/dist/extensions/byteplus/video-generation-provider.js +0 -2
  674. package/dist/extensions/longcat/fengming.plugin.json +0 -84
  675. package/dist/extensions/longcat/index.d.ts +0 -11
  676. package/dist/extensions/longcat/index.js +0 -45
  677. package/dist/extensions/longcat/models.d.ts +0 -7
  678. package/dist/extensions/longcat/models.js +0 -2
  679. package/dist/extensions/longcat/onboard.d.ts +0 -5
  680. package/dist/extensions/longcat/onboard.js +0 -2
  681. package/dist/extensions/longcat/package.json +0 -15
  682. package/dist/extensions/longcat/provider-catalog.d.ts +0 -2
  683. package/dist/extensions/longcat/provider-catalog.js +0 -2
  684. package/dist/extensions/longcat/provider-discovery.d.ts +0 -2
  685. package/dist/extensions/longcat/provider-discovery.js +0 -5
  686. package/dist/extensions/minimax/api.d.ts +0 -5
  687. package/dist/extensions/minimax/api.js +0 -6
  688. package/dist/extensions/minimax/fengming.plugin.json +0 -206
  689. package/dist/extensions/minimax/image-generation-provider.d.ts +0 -6
  690. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  691. package/dist/extensions/minimax/index.d.ts +0 -12
  692. package/dist/extensions/minimax/index.js +0 -29
  693. package/dist/extensions/minimax/media-understanding-provider.d.ts +0 -6
  694. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  695. package/dist/extensions/minimax/model-definitions.d.ts +0 -2
  696. package/dist/extensions/minimax/model-definitions.js +0 -2
  697. package/dist/extensions/minimax/music-generation-provider.d.ts +0 -6
  698. package/dist/extensions/minimax/music-generation-provider.js +0 -2
  699. package/dist/extensions/minimax/oauth.d.ts +0 -2
  700. package/dist/extensions/minimax/oauth.js +0 -2
  701. package/dist/extensions/minimax/oauth.runtime.d.ts +0 -2
  702. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  703. package/dist/extensions/minimax/onboard.d.ts +0 -2
  704. package/dist/extensions/minimax/onboard.js +0 -2
  705. package/dist/extensions/minimax/package.json +0 -15
  706. package/dist/extensions/minimax/provider-catalog.d.ts +0 -2
  707. package/dist/extensions/minimax/provider-catalog.js +0 -2
  708. package/dist/extensions/minimax/provider-contract-api.d.ts +0 -6
  709. package/dist/extensions/minimax/provider-contract-api.js +0 -77
  710. package/dist/extensions/minimax/provider-discovery.d.ts +0 -5
  711. package/dist/extensions/minimax/provider-discovery.js +0 -23
  712. package/dist/extensions/minimax/provider-models.d.ts +0 -2
  713. package/dist/extensions/minimax/provider-models.js +0 -2
  714. package/dist/extensions/minimax/provider-registration.d.ts +0 -7
  715. package/dist/extensions/minimax/provider-registration.js +0 -2
  716. package/dist/extensions/minimax/speech-provider.d.ts +0 -5
  717. package/dist/extensions/minimax/speech-provider.js +0 -2
  718. package/dist/extensions/minimax/tts.d.ts +0 -20
  719. package/dist/extensions/minimax/tts.js +0 -2
  720. package/dist/extensions/minimax/video-generation-provider.d.ts +0 -7
  721. package/dist/extensions/minimax/video-generation-provider.js +0 -2
  722. package/dist/extensions/minimax/web-search-contract-api.d.ts +0 -5
  723. package/dist/extensions/minimax/web-search-contract-api.js +0 -31
  724. package/dist/extensions/minimax/web-search-provider.d.ts +0 -5
  725. package/dist/extensions/minimax/web-search-provider.js +0 -2
  726. package/dist/extensions/moonshot/api.d.ts +0 -3
  727. package/dist/extensions/moonshot/api.js +0 -4
  728. package/dist/extensions/moonshot/fengming.plugin.json +0 -250
  729. package/dist/extensions/moonshot/index.d.ts +0 -11
  730. package/dist/extensions/moonshot/index.js +0 -70
  731. package/dist/extensions/moonshot/media-understanding-provider.d.ts +0 -6
  732. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  733. package/dist/extensions/moonshot/onboard.d.ts +0 -2
  734. package/dist/extensions/moonshot/onboard.js +0 -2
  735. package/dist/extensions/moonshot/package.json +0 -15
  736. package/dist/extensions/moonshot/provider-catalog.d.ts +0 -2
  737. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  738. package/dist/extensions/moonshot/provider-contract-api.d.ts +0 -5
  739. package/dist/extensions/moonshot/provider-contract-api.js +0 -27
  740. package/dist/extensions/moonshot/provider-discovery.d.ts +0 -5
  741. package/dist/extensions/moonshot/provider-discovery.js +0 -15
  742. package/dist/extensions/moonshot/web-search-contract-api.d.ts +0 -5
  743. package/dist/extensions/moonshot/web-search-contract-api.js +0 -29
  744. package/dist/extensions/moonshot/web-search-provider.d.ts +0 -5
  745. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  746. package/dist/extensions/qianfan/api.d.ts +0 -3
  747. package/dist/extensions/qianfan/api.js +0 -3
  748. package/dist/extensions/qianfan/fengming.plugin.json +0 -89
  749. package/dist/extensions/qianfan/index.d.ts +0 -11
  750. package/dist/extensions/qianfan/index.js +0 -26
  751. package/dist/extensions/qianfan/onboard.d.ts +0 -2
  752. package/dist/extensions/qianfan/onboard.js +0 -2
  753. package/dist/extensions/qianfan/package.json +0 -15
  754. package/dist/extensions/qianfan/provider-catalog.d.ts +0 -2
  755. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  756. package/dist/extensions/qwen/api.d.ts +0 -4
  757. package/dist/extensions/qwen/api.js +0 -5
  758. package/dist/extensions/qwen/fengming.plugin.json +0 -389
  759. package/dist/extensions/qwen/index.d.ts +0 -11
  760. package/dist/extensions/qwen/index.js +0 -202
  761. package/dist/extensions/qwen/media-understanding-provider.d.ts +0 -6
  762. package/dist/extensions/qwen/media-understanding-provider.js +0 -2
  763. package/dist/extensions/qwen/model-definitions.d.ts +0 -2
  764. package/dist/extensions/qwen/model-definitions.js +0 -2
  765. package/dist/extensions/qwen/models.d.ts +0 -2
  766. package/dist/extensions/qwen/models.js +0 -2
  767. package/dist/extensions/qwen/onboard.d.ts +0 -21
  768. package/dist/extensions/qwen/onboard.js +0 -2
  769. package/dist/extensions/qwen/package.json +0 -15
  770. package/dist/extensions/qwen/provider-catalog.d.ts +0 -2
  771. package/dist/extensions/qwen/provider-catalog.js +0 -2
  772. package/dist/extensions/qwen/stream.d.ts +0 -2
  773. package/dist/extensions/qwen/stream.js +0 -2
  774. package/dist/extensions/qwen/video-generation-provider.d.ts +0 -6
  775. package/dist/extensions/qwen/video-generation-provider.js +0 -2
  776. package/dist/extensions/sensenova/fengming.plugin.json +0 -69
  777. package/dist/extensions/sensenova/index.d.ts +0 -11
  778. package/dist/extensions/sensenova/index.js +0 -45
  779. package/dist/extensions/sensenova/models.d.ts +0 -7
  780. package/dist/extensions/sensenova/models.js +0 -2
  781. package/dist/extensions/sensenova/onboard.d.ts +0 -5
  782. package/dist/extensions/sensenova/onboard.js +0 -2
  783. package/dist/extensions/sensenova/package.json +0 -15
  784. package/dist/extensions/sensenova/provider-catalog.d.ts +0 -2
  785. package/dist/extensions/sensenova/provider-catalog.js +0 -2
  786. package/dist/extensions/sensenova/provider-discovery.d.ts +0 -2
  787. package/dist/extensions/sensenova/provider-discovery.js +0 -5
  788. package/dist/extensions/stepfun/fengming.plugin.json +0 -162
  789. package/dist/extensions/stepfun/index.d.ts +0 -12
  790. package/dist/extensions/stepfun/index.js +0 -165
  791. package/dist/extensions/stepfun/onboard.d.ts +0 -7
  792. package/dist/extensions/stepfun/onboard.js +0 -2
  793. package/dist/extensions/stepfun/package.json +0 -15
  794. package/dist/extensions/stepfun/provider-catalog.d.ts +0 -14
  795. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  796. package/dist/extensions/tencent/api.d.ts +0 -3
  797. package/dist/extensions/tencent/api.js +0 -4
  798. package/dist/extensions/tencent/fengming.plugin.json +0 -105
  799. package/dist/extensions/tencent/index.d.ts +0 -12
  800. package/dist/extensions/tencent/index.js +0 -62
  801. package/dist/extensions/tencent/models.d.ts +0 -2
  802. package/dist/extensions/tencent/models.js +0 -2
  803. package/dist/extensions/tencent/onboard.d.ts +0 -6
  804. package/dist/extensions/tencent/onboard.js +0 -2
  805. package/dist/extensions/tencent/package.json +0 -15
  806. package/dist/extensions/tencent/provider-catalog.d.ts +0 -2
  807. package/dist/extensions/tencent/provider-catalog.js +0 -2
  808. package/dist/extensions/tencent/provider-discovery.d.ts +0 -5
  809. package/dist/extensions/tencent/provider-discovery.js +0 -14
  810. package/dist/extensions/tiangong/fengming.plugin.json +0 -69
  811. package/dist/extensions/tiangong/index.d.ts +0 -11
  812. package/dist/extensions/tiangong/index.js +0 -45
  813. package/dist/extensions/tiangong/models.d.ts +0 -7
  814. package/dist/extensions/tiangong/models.js +0 -2
  815. package/dist/extensions/tiangong/onboard.d.ts +0 -5
  816. package/dist/extensions/tiangong/onboard.js +0 -2
  817. package/dist/extensions/tiangong/package.json +0 -15
  818. package/dist/extensions/tiangong/provider-catalog.d.ts +0 -2
  819. package/dist/extensions/tiangong/provider-catalog.js +0 -2
  820. package/dist/extensions/tiangong/provider-discovery.d.ts +0 -2
  821. package/dist/extensions/tiangong/provider-discovery.js +0 -5
  822. package/dist/extensions/volcengine/api.d.ts +0 -12
  823. package/dist/extensions/volcengine/api.js +0 -4
  824. package/dist/extensions/volcengine/fengming.plugin.json +0 -263
  825. package/dist/extensions/volcengine/index.d.ts +0 -12
  826. package/dist/extensions/volcengine/index.js +0 -88
  827. package/dist/extensions/volcengine/models.d.ts +0 -2
  828. package/dist/extensions/volcengine/models.js +0 -2
  829. package/dist/extensions/volcengine/package.json +0 -15
  830. package/dist/extensions/volcengine/provider-catalog.d.ts +0 -2
  831. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  832. package/dist/extensions/volcengine/provider-discovery.d.ts +0 -5
  833. package/dist/extensions/volcengine/provider-discovery.js +0 -23
  834. package/dist/extensions/volcengine/speech-provider.d.ts +0 -5
  835. package/dist/extensions/volcengine/speech-provider.js +0 -2
  836. package/dist/extensions/volcengine/tts.d.ts +0 -22
  837. package/dist/extensions/volcengine/tts.js +0 -2
  838. package/dist/extensions/weixin/fengming.plugin.json +0 -22
  839. package/dist/extensions/weixin/index.d.ts +0 -26
  840. package/dist/extensions/weixin/index.js +0 -862
  841. package/dist/extensions/weixin/package.json +0 -45
  842. package/dist/extensions/xiaomi/api.d.ts +0 -3
  843. package/dist/extensions/xiaomi/api.js +0 -3
  844. package/dist/extensions/xiaomi/fengming.plugin.json +0 -260
  845. package/dist/extensions/xiaomi/index.d.ts +0 -12
  846. package/dist/extensions/xiaomi/index.js +0 -284
  847. package/dist/extensions/xiaomi/onboard.d.ts +0 -2
  848. package/dist/extensions/xiaomi/onboard.js +0 -2
  849. package/dist/extensions/xiaomi/package.json +0 -15
  850. package/dist/extensions/xiaomi/provider-catalog.d.ts +0 -2
  851. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  852. package/dist/extensions/xiaomi/speech-provider.d.ts +0 -5
  853. package/dist/extensions/xiaomi/speech-provider.js +0 -2
  854. package/dist/extensions/xiaomi/stream.d.ts +0 -5
  855. package/dist/extensions/xiaomi/stream.js +0 -2
  856. package/dist/extensions/xiaomi/thinking.d.ts +0 -11
  857. package/dist/extensions/xiaomi/thinking.js +0 -2
  858. package/dist/extensions/xingchen/fengming.plugin.json +0 -69
  859. package/dist/extensions/xingchen/index.d.ts +0 -11
  860. package/dist/extensions/xingchen/index.js +0 -45
  861. package/dist/extensions/xingchen/models.d.ts +0 -7
  862. package/dist/extensions/xingchen/models.js +0 -2
  863. package/dist/extensions/xingchen/onboard.d.ts +0 -5
  864. package/dist/extensions/xingchen/onboard.js +0 -2
  865. package/dist/extensions/xingchen/package.json +0 -15
  866. package/dist/extensions/xingchen/provider-catalog.d.ts +0 -2
  867. package/dist/extensions/xingchen/provider-catalog.js +0 -2
  868. package/dist/extensions/xingchen/provider-discovery.d.ts +0 -2
  869. package/dist/extensions/xingchen/provider-discovery.js +0 -5
  870. package/dist/extensions/yi/fengming.plugin.json +0 -84
  871. package/dist/extensions/yi/index.d.ts +0 -11
  872. package/dist/extensions/yi/index.js +0 -45
  873. package/dist/extensions/yi/models.d.ts +0 -7
  874. package/dist/extensions/yi/models.js +0 -2
  875. package/dist/extensions/yi/onboard.d.ts +0 -5
  876. package/dist/extensions/yi/onboard.js +0 -2
  877. package/dist/extensions/yi/package.json +0 -15
  878. package/dist/extensions/yi/provider-catalog.d.ts +0 -2
  879. package/dist/extensions/yi/provider-catalog.js +0 -2
  880. package/dist/extensions/yi/provider-discovery.d.ts +0 -2
  881. package/dist/extensions/yi/provider-discovery.js +0 -5
  882. package/dist/extensions/zai/api.d.ts +0 -4
  883. package/dist/extensions/zai/api.js +0 -4
  884. package/dist/extensions/zai/detect.d.ts +0 -2
  885. package/dist/extensions/zai/detect.js +0 -2
  886. package/dist/extensions/zai/fengming.plugin.json +0 -377
  887. package/dist/extensions/zai/index.d.ts +0 -12
  888. package/dist/extensions/zai/index.js +0 -297
  889. package/dist/extensions/zai/media-understanding-provider.d.ts +0 -5
  890. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  891. package/dist/extensions/zai/model-definitions.d.ts +0 -2
  892. package/dist/extensions/zai/model-definitions.js +0 -2
  893. package/dist/extensions/zai/onboard.d.ts +0 -2
  894. package/dist/extensions/zai/onboard.js +0 -2
  895. package/dist/extensions/zai/package.json +0 -15
  896. package/dist/extensions/zai/runtime-api.d.ts +0 -2
  897. package/dist/extensions/zai/runtime-api.js +0 -2
  898. package/dist/extensions/zhinao/fengming.plugin.json +0 -69
  899. package/dist/extensions/zhinao/index.d.ts +0 -11
  900. package/dist/extensions/zhinao/index.js +0 -45
  901. package/dist/extensions/zhinao/models.d.ts +0 -7
  902. package/dist/extensions/zhinao/models.js +0 -2
  903. package/dist/extensions/zhinao/onboard.d.ts +0 -5
  904. package/dist/extensions/zhinao/onboard.js +0 -2
  905. package/dist/extensions/zhinao/package.json +0 -15
  906. package/dist/extensions/zhinao/provider-catalog.d.ts +0 -2
  907. package/dist/extensions/zhinao/provider-catalog.js +0 -2
  908. package/dist/extensions/zhinao/provider-discovery.d.ts +0 -2
  909. package/dist/extensions/zhinao/provider-discovery.js +0 -5
  910. package/dist/fengming-runtime-0jdu_329.d.ts +0 -153
  911. package/dist/fengming-tools-gQkwsWYz.js +0 -12221
  912. package/dist/fengming.plugin-C-Kdi1_5.js +0 -130
  913. package/dist/fengming.plugin-CRPqMj85.js +0 -166
  914. package/dist/gateway-cli-BV1V43-D.js +0 -443
  915. package/dist/gateway-method-runtime-J2OPP_oH.js +0 -21
  916. package/dist/get-reply-BE8ZGJos.js +0 -5198
  917. package/dist/get-reply-from-config.runtime-C5wfxVI_.js +0 -2
  918. package/dist/heartbeat-runner-_0HlObMb.js +0 -5
  919. package/dist/heartbeat-runner.runtime-DvYz_4Z3.js +0 -3
  920. package/dist/hook-runtime-BH9moP5T.js +0 -4
  921. package/dist/hooks-icCwsmrQ.js +0 -536
  922. package/dist/host-compat-dfJvEfe7.d.ts +0 -21
  923. package/dist/http-registry-Buj7R-F_.d.ts +0 -23
  924. package/dist/image-generation-provider-hrRXkkGc.js +0 -152
  925. package/dist/inbound-reply-dispatch-5AYt56Yt.js +0 -147
  926. package/dist/inbound-reply-dispatch-B5weFW8i.js +0 -2
  927. package/dist/inbound-reply-dispatch-cJh4H31y.d.ts +0 -156
  928. package/dist/infra-runtime-3_0R8nmO.js +0 -32
  929. package/dist/init-BnfkYG_k.js +0 -59
  930. package/dist/interactive-V8NfYsTW.d.ts +0 -26
  931. package/dist/isolated-agent-CgH7dfOj.js +0 -1097
  932. package/dist/isolated-agent-dBWkiw0a.js +0 -2
  933. package/dist/kernel-Ds2aqAJF.d.ts +0 -241
  934. package/dist/kimi-web-search-provider-QJT3Ftj3.js +0 -80
  935. package/dist/kimi-web-search-provider.runtime-Dj3SS4T5.js +0 -307
  936. package/dist/kimi-web-search-provider.runtime.js +0 -1
  937. package/dist/lib-Dg4yjNFQ.js +0 -871
  938. package/dist/lifecycle-B9k7QGsS.js +0 -570
  939. package/dist/list.probe-CbVHFNwf.js +0 -2
  940. package/dist/list.probe-CxiEBmyW.js +0 -451
  941. package/dist/list.status-command-DE-edGgB.js +0 -815
  942. package/dist/llm-slug-generator-DJgq9eFd.js +0 -78
  943. package/dist/loader-5AqYM9PC.d.ts +0 -142
  944. package/dist/local-dispatch.runtime-D3F4v51B.js +0 -10
  945. package/dist/manager-BWf1ks-Z.d.ts +0 -409
  946. package/dist/mcp-http-DU7Nsg4P.js +0 -583
  947. package/dist/mcp-http-iZCW6Cet.js +0 -2
  948. package/dist/media-runtime-DZ5RpQN7.d.ts +0 -261
  949. package/dist/media-understanding-DEdEyoQB.d.ts +0 -46
  950. package/dist/media-understanding-provider-4JHrQOUE.js +0 -70
  951. package/dist/media-understanding-provider-BV7O82XV.js +0 -29
  952. package/dist/media-understanding-provider-BlPRhYkx.js +0 -69
  953. package/dist/media-understanding-provider-BuX8eQLj.js +0 -13
  954. package/dist/memory-core-host-engine-embeddings-BDu5fx8E.d.ts +0 -324
  955. package/dist/memory-core-host-engine-storage-CdCuH-E2.d.ts +0 -54
  956. package/dist/message-handler-L6QLWNVP.js +0 -1806
  957. package/dist/minimax-web-search-provider-_gxeEOy8.js +0 -58
  958. package/dist/minimax-web-search-provider.runtime-BF4mGi6U.js +0 -148
  959. package/dist/minimax-web-search-provider.runtime.js +0 -1
  960. package/dist/model-catalog-DCnRkX8f.d.ts +0 -88
  961. package/dist/model-definitions-B2gY43hI.d.ts +0 -34
  962. package/dist/model-definitions-BLOyeH5h.js +0 -73
  963. package/dist/model-definitions-CoByf5mT.js +0 -243
  964. package/dist/model-definitions-WP3OmzbS.d.ts +0 -57
  965. package/dist/model-selection-DhTE6GZD.js +0 -352
  966. package/dist/models--iAR9QkZ.js +0 -175
  967. package/dist/models-8ImVEkvh.js +0 -36
  968. package/dist/models-BIDM8htk.js +0 -48
  969. package/dist/models-BRgRfrcS.js +0 -36
  970. package/dist/models-Bib5-APc.js +0 -67
  971. package/dist/models-Bl67zOoe.js +0 -36
  972. package/dist/models-BqDDYFE3.d.ts +0 -65
  973. package/dist/models-BtRQoRIu.js +0 -36
  974. package/dist/models-BvXmOXik.js +0 -48
  975. package/dist/models-C-sJciOD.d.ts +0 -9
  976. package/dist/models-COnXPdlL.js +0 -24
  977. package/dist/models-CXTmk-Da.d.ts +0 -8
  978. package/dist/models-Cz0C_8re.js +0 -36
  979. package/dist/models-DbwEIt-m.d.ts +0 -15
  980. package/dist/models-DgXkSADi.js +0 -30
  981. package/dist/models-cli-Bv3y3JgQ.js +0 -257
  982. package/dist/monitor-BiVOsbbN.js +0 -1024
  983. package/dist/monitor-BumfRp1t.js +0 -60
  984. package/dist/monitor.account-Cd6EwtuZ.js +0 -5382
  985. package/dist/music-generation-provider-ZdDMiC-c.js +0 -308
  986. package/dist/nodes-C0f8XgD5.js +0 -1483
  987. package/dist/nodes-Dk4vOgg9.js +0 -3
  988. package/dist/nodes-pending-Cjg09MXz.js +0 -211
  989. package/dist/oauth-BIO69Qw0.d.ts +0 -25
  990. package/dist/oauth-CnO10TN2.js +0 -207
  991. package/dist/onboard-B3BYT5k7.js +0 -34
  992. package/dist/onboard-BDMNV6RE.js +0 -23
  993. package/dist/onboard-B_WNNy5F.d.ts +0 -6
  994. package/dist/onboard-BbyMaErU.js +0 -69
  995. package/dist/onboard-BuYPNE6j2.js +0 -23
  996. package/dist/onboard-C394zMnM.d.ts +0 -11
  997. package/dist/onboard-CHn4oVbY.js +0 -24
  998. package/dist/onboard-CPpVbb0O.js +0 -73
  999. package/dist/onboard-CWDx7Crt.js +0 -23
  1000. package/dist/onboard-CbzkwBzu.d.ts +0 -12
  1001. package/dist/onboard-D099qUd0.js +0 -23
  1002. package/dist/onboard-D7dbzfHc.js +0 -23
  1003. package/dist/onboard-DB-x0nHF.js +0 -30
  1004. package/dist/onboard-DFVrRnxJ.js +0 -23
  1005. package/dist/onboard-DFiqoOc2.d.ts +0 -7
  1006. package/dist/onboard-DJaMK3rr.d.ts +0 -6
  1007. package/dist/onboard-DMdK8D_h.js +0 -67
  1008. package/dist/onboard-J-KL-I6m.js +0 -48
  1009. package/dist/onboard-MIBU-Rmv.js +0 -39
  1010. package/dist/onboard-vmGylfFe.js +0 -23
  1011. package/dist/openai-compat-errors-Dcr5Y8bF.js +0 -136
  1012. package/dist/openai-http-CcqspzU6.js +0 -836
  1013. package/dist/openresponses-http-BnyYYvUF.js +0 -1175
  1014. package/dist/operations-H2Oq0KYz.js +0 -805
  1015. package/dist/outbound.types-BhRehecY.d.ts +0 -291
  1016. package/dist/plugin-enabled-CEIKWKrq.js +0 -232
  1017. package/dist/plugin-entry-CTVRRaaA.d.ts +0 -47
  1018. package/dist/plugin-registration-BTyO5Fwt.js +0 -97
  1019. package/dist/plugin-runtime-_XF2N_UQ.d.ts +0 -117
  1020. package/dist/plugin-sdk/bundled-channel-config-schema-BsOWCrJT.d.ts +0 -3169
  1021. package/dist/plugin-service-B91jVlmZ.d.ts +0 -24
  1022. package/dist/plugin-service-CtGwVz8V.js +0 -1249
  1023. package/dist/prepare.runtime-9dlboph7.js +0 -798
  1024. package/dist/preview-warnings-DJx4KJpC.js +0 -618
  1025. package/dist/program-CWC-NBBB.js +0 -131
  1026. package/dist/provider-api-key-auth-BmNcYRMl.d.ts +0 -27
  1027. package/dist/provider-auth-api-key-CCaFiqY3.js +0 -5
  1028. package/dist/provider-auth-result-D_E9dcVc.d.ts +0 -21
  1029. package/dist/provider-catalog-5KZLmrDO.js +0 -11
  1030. package/dist/provider-catalog-7P6AvDzS.js +0 -11
  1031. package/dist/provider-catalog-B2gyTjTU.js +0 -88
  1032. package/dist/provider-catalog-B3YBhe77.js +0 -17
  1033. package/dist/provider-catalog-B7XEeuUm.js +0 -11
  1034. package/dist/provider-catalog-BFGPRd9v.js +0 -17
  1035. package/dist/provider-catalog-BLvkIMSk.d.ts +0 -6
  1036. package/dist/provider-catalog-BPBL9mJf.d.ts +0 -5
  1037. package/dist/provider-catalog-BRkZ6-HD.d.ts +0 -5
  1038. package/dist/provider-catalog-Bfl_AoTZ.js +0 -142
  1039. package/dist/provider-catalog-BpiHWHu1.js +0 -11
  1040. package/dist/provider-catalog-C1qDLekT.d.ts +0 -5
  1041. package/dist/provider-catalog-CKWNCfry.js +0 -11
  1042. package/dist/provider-catalog-CUHB2pSt.d.ts +0 -7
  1043. package/dist/provider-catalog-CWqN2j6J.d.ts +0 -5
  1044. package/dist/provider-catalog-CZ8oYbx3.js +0 -11
  1045. package/dist/provider-catalog-CcQ5-4ZW.d.ts +0 -6
  1046. package/dist/provider-catalog-Cd16uZ0U.js +0 -20
  1047. package/dist/provider-catalog-CpF2D0VK.js +0 -61
  1048. package/dist/provider-catalog-CvXq36zW.d.ts +0 -5
  1049. package/dist/provider-catalog-D2pgEME3.js +0 -48
  1050. package/dist/provider-catalog-DPzcupEl.d.ts +0 -5
  1051. package/dist/provider-catalog-DaeI606G.d.ts +0 -9
  1052. package/dist/provider-catalog-DrOCtTb-.js +0 -11
  1053. package/dist/provider-catalog-DwZ1J2Al.d.ts +0 -6
  1054. package/dist/provider-catalog-Dy7IcHmS.js +0 -107
  1055. package/dist/provider-catalog-TsZS52nq.d.ts +0 -10
  1056. package/dist/provider-catalog-YqIFRCND.d.ts +0 -5
  1057. package/dist/provider-catalog-Ywb5jRwG.d.ts +0 -5
  1058. package/dist/provider-catalog-evknl1oN.js +0 -11
  1059. package/dist/provider-catalog-l0hFpFO2.d.ts +0 -17
  1060. package/dist/provider-catalog-shared-DsRBv0Tp.d.ts +0 -62
  1061. package/dist/provider-dispatcher-BMy9mBJ1.js +0 -22
  1062. package/dist/provider-model-shared-CPAfQBNs.d.ts +0 -143
  1063. package/dist/provider-models-Diu65OcG.d.ts +0 -18
  1064. package/dist/provider-models-LE7PlLYY.js +0 -22
  1065. package/dist/provider-onboard-CpvXEmvz.d.ts +0 -91
  1066. package/dist/provider-registration-DF-LkmNE.js +0 -235
  1067. package/dist/provider-registry-D9cTPW1F.d.ts +0 -8
  1068. package/dist/provider-registry-DI7gMKUP.d.ts +0 -8
  1069. package/dist/provider-registry-DZtgZDkl.d.ts +0 -29
  1070. package/dist/provider-self-hosted-setup-CoHvoyKm.d.ts +0 -74
  1071. package/dist/provider-stream-BpXJr5Ap.d.ts +0 -139
  1072. package/dist/provider-stream-family-Bj5aBD8w.js +0 -2
  1073. package/dist/provider-stream-shared-BaUkhUHj.d.ts +0 -132
  1074. package/dist/provider-usage-DFUhW2do.js +0 -651
  1075. package/dist/provider-web-search-contract-fields-CkXzSsWu.d.ts +0 -25
  1076. package/dist/pw-ai-9Q_dIq4B.js +0 -3064
  1077. package/dist/register.agent-CbfrlzXB.js +0 -152
  1078. package/dist/register.crestodian-CEg0rPfK.js +0 -24
  1079. package/dist/register.maintenance-k9N8I4Wg.js +0 -85
  1080. package/dist/register.subclis-CrXOeaS3.js +0 -3
  1081. package/dist/register.subclis-DfKlni8N.js +0 -31
  1082. package/dist/register.subclis-core-Bg4wbDsO.js +0 -278
  1083. package/dist/registry-Bh3-P2HL.d.ts +0 -8
  1084. package/dist/registry-types-BmEUS4d3.d.ts +0 -392
  1085. package/dist/repair-sequencing-E4yViXG9.js +0 -652
  1086. package/dist/reply-payload-S2mrc_Mh.d.ts +0 -200
  1087. package/dist/reply-turn-admission-BBoPjmGB.js +0 -2056
  1088. package/dist/reply.runtime-C5wfxVI_.js +0 -2
  1089. package/dist/result-fallback-classifier-CX4iLD1G.js +0 -98
  1090. package/dist/route-CifxcQZ1.js +0 -475
  1091. package/dist/routes-B3XAOeWo.js +0 -2
  1092. package/dist/routes-H185h3U-.js +0 -3701
  1093. package/dist/run-CTJFbwbB.js +0 -1162
  1094. package/dist/run-command-B7B53tYk.js +0 -23
  1095. package/dist/run-command-BFuxRDxS.js +0 -2
  1096. package/dist/run-context-C7im9ICg.js +0 -66
  1097. package/dist/run-embedded.runtime-TljBTbzh.js +0 -4
  1098. package/dist/run-execution-cli.runtime-Bt5zwx1W.js +0 -4
  1099. package/dist/run-executor.runtime-hmbWX2Ct.js +0 -330
  1100. package/dist/run-subagent-registry.runtime-B70X80nS.js +0 -2
  1101. package/dist/runtime-DoKE0o7v.js +0 -436
  1102. package/dist/runtime-api-Ca4Llbgf.js +0 -12
  1103. package/dist/runtime-api-pa8xcEmg.d.ts +0 -5
  1104. package/dist/runtime-channel-CFQ59svm.js +0 -148
  1105. package/dist/runtime-channel-DRwCWGUx.js +0 -2
  1106. package/dist/runtime-embedded-agent.runtime-DwmqKUVp.js +0 -2
  1107. package/dist/runtime-forwarders-BMThPHg_.d.ts +0 -39
  1108. package/dist/sdk-setup-tools-Cg_Tabrf.js +0 -8
  1109. package/dist/selection-COhr7g82.js +0 -18365
  1110. package/dist/selection-_G44EVqd.js +0 -3
  1111. package/dist/send-media-BNc67G7I.js +0 -2072
  1112. package/dist/server-5rR0RCpI.js +0 -24
  1113. package/dist/server-context-BhiPROPA.js +0 -955
  1114. package/dist/server-context-OShBAJZQ.js +0 -2
  1115. package/dist/server-cron-Bkzb9edh.js +0 -3173
  1116. package/dist/server-cron-DdR-ugiU.js +0 -2
  1117. package/dist/server-lwtC1vaS.js +0 -72
  1118. package/dist/server-methods-BY_ZqDFJ.js +0 -497
  1119. package/dist/server-node-events-CLvE94AS.js +0 -597
  1120. package/dist/server-plugin-bootstrap-cKOAH5GL.js +0 -71
  1121. package/dist/server-plugins-CPpUykw5.js +0 -435
  1122. package/dist/server-reload-handlers-uzt4VDZ-.js +0 -719
  1123. package/dist/server-restart-sentinel-CpvV0t4O.js +0 -700
  1124. package/dist/server-runtime-services-BhOHoerM.js +0 -147
  1125. package/dist/server-runtime-services-D3Ig68nC.js +0 -3
  1126. package/dist/server-startup-plugins-DslzKVHK.js +0 -127
  1127. package/dist/server-startup-post-attach-DPFBTQez.js +0 -793
  1128. package/dist/server-ws-runtime-D0zoWoiz.js +0 -374
  1129. package/dist/server.impl-CzqLQ3qt.js +0 -2622
  1130. package/dist/session-kill-http-D8JhwZVS.js +0 -121
  1131. package/dist/session-reset-service-uoi7E4Xp.js +0 -651
  1132. package/dist/session-status.runtime-CZK5IU8w.js +0 -2
  1133. package/dist/session-subagent-reactivation.runtime-BSO00-FY.js +0 -2
  1134. package/dist/session-tab-registry-DM9U7e3o.js +0 -551
  1135. package/dist/sessions-B-SkIoaa.js +0 -1917
  1136. package/dist/sessions-history-http-DCiOG4FK.js +0 -432
  1137. package/dist/sessions-patch-DlAAvQvB.js +0 -401
  1138. package/dist/sessions-resolve-DfMXookg.js +0 -180
  1139. package/dist/sessions.runtime-0V2YxKxB.js +0 -2
  1140. package/dist/snapshot-urls-Ble1-NEW.js +0 -317
  1141. package/dist/speech-core-Bk60ZS_y.d.ts +0 -49
  1142. package/dist/speech-provider-DQO9eZd0.js +0 -233
  1143. package/dist/speech-provider-DnBCla4V.js +0 -171
  1144. package/dist/speech-provider-DyYHFxT5.js +0 -227
  1145. package/dist/standalone-9EWfcxeO.js +0 -42
  1146. package/dist/startup-context-nti4X0_w.js +0 -314
  1147. package/dist/status-subagents.runtime-CPZb1EF1.js +0 -32
  1148. package/dist/status-text-C1Hf37lF.js +0 -301
  1149. package/dist/stream-9VBt1MDs.js +0 -26
  1150. package/dist/stream-B_3P7v7P.js +0 -86
  1151. package/dist/stream-CXsue2-v.d.ts +0 -9
  1152. package/dist/stream-oNBFxfKt.d.ts +0 -5
  1153. package/dist/subagent-announce-CPjQQLy8.js +0 -353
  1154. package/dist/subagent-announce-delivery-B6iBOicL.js +0 -1369
  1155. package/dist/subagent-control-DP72sk-l.js +0 -492
  1156. package/dist/subagent-hooks-B1oUIYH3.js +0 -2
  1157. package/dist/subagent-hooks-BkGj4_xI.js +0 -230
  1158. package/dist/subagent-hooks-api-D2mulK3S.js +0 -23
  1159. package/dist/subagent-registry-CEKAUB5h.js +0 -3
  1160. package/dist/subagent-registry-OUVucPAn.js +0 -2627
  1161. package/dist/subagent-session-cleanup-Bx8d3kw0.js +0 -390
  1162. package/dist/system-CelaP2zI.js +0 -111
  1163. package/dist/talk-DGOI3Lu3.js +0 -2454
  1164. package/dist/target-id-BXRG7x9x.js +0 -107
  1165. package/dist/thinking-B8V29FhB.js +0 -35
  1166. package/dist/thread-bindings-DpVdEPZ0.js +0 -228
  1167. package/dist/tool-DHzDpxE4.js +0 -143
  1168. package/dist/tool-dispatch-ClP3Rc7g.js +0 -155
  1169. package/dist/tool-resolution-CZcLod1d.js +0 -153
  1170. package/dist/tool-split-BhiQ8676.d.ts +0 -19
  1171. package/dist/tools-ZvSvbsCW.d.ts +0 -38
  1172. package/dist/tools-effective-C2mHZT-A.js +0 -442
  1173. package/dist/tools-effective-inventory-ctnM7hc6.js +0 -379
  1174. package/dist/tools-invoke-Ci6Rux2s.js +0 -51
  1175. package/dist/tools-invoke-http-CJflXcJk.js +0 -68
  1176. package/dist/tools-invoke-shared-BLu_mJEX.js +0 -200
  1177. package/dist/tts-B2rPJPij.js +0 -83
  1178. package/dist/tts-Gp9FI3_n.js +0 -163
  1179. package/dist/tts-runtime-DNi1HXPF.d.ts +0 -230
  1180. package/dist/tui-BUhfQ9vD.js +0 -3
  1181. package/dist/tui-BhH5mvLf.js +0 -2
  1182. package/dist/tui-backend-C_4ajTHI.js +0 -257
  1183. package/dist/tui-cli-BhWJ-QoB.js +0 -40
  1184. package/dist/tui-ink-run-BTWbUQGb.js +0 -7414
  1185. package/dist/tui-ink-run-DfTdivkh.js +0 -2
  1186. package/dist/types-B4fW3r5y.d.ts +0 -111
  1187. package/dist/types-DI62NfFe.d.ts +0 -7034
  1188. package/dist/types-sAih_uQb.d.ts +0 -393
  1189. package/dist/types.public-B3MKhuo2.d.ts +0 -70
  1190. package/dist/video-generation-B9c6a5cw.js +0 -207
  1191. package/dist/video-generation-BgJp7UIA.d.ts +0 -224
  1192. package/dist/video-generation-provider-BjiVjf40.js +0 -325
  1193. package/dist/video-generation-provider-CsnQJg_h.js +0 -297
  1194. package/dist/video-generation-provider-DtU-ZPqP.js +0 -64
  1195. package/dist/video-generation-provider-wZ0bzv0e.js +0 -77
  1196. package/dist/webhook-targets-Cy8e7y3g.d.ts +0 -99
  1197. package/skills/canvas/SKILL.md +0 -78
  1198. package/skills/clawhub/SKILL.md +0 -77
  1199. package/skills/coding-agent/SKILL.md +0 -143
  1200. package/skills/diagram-maker/SKILL.md +0 -53
  1201. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -85
  1202. package/skills/diagram-maker/references/svg-template.md +0 -112
  1203. package/skills/gemini/SKILL.md +0 -47
  1204. package/skills/gh-issues/SKILL.md +0 -213
  1205. package/skills/gifgrep/SKILL.md +0 -85
  1206. package/skills/github/SKILL.md +0 -84
  1207. package/skills/healthcheck/SKILL.md +0 -105
  1208. package/skills/mcporter/SKILL.md +0 -61
  1209. package/skills/meme-maker/SKILL.md +0 -42
  1210. package/skills/meme-maker/references/templates.json +0 -358
  1211. package/skills/meme-maker/scripts/meme.mjs +0 -398
  1212. package/skills/model-usage/SKILL.md +0 -71
  1213. package/skills/model-usage/references/codexbar-cli.md +0 -33
  1214. package/skills/model-usage/scripts/model_usage.py +0 -319
  1215. package/skills/model-usage/scripts/test_model_usage.py +0 -40
  1216. package/skills/nano-pdf/SKILL.md +0 -38
  1217. package/skills/node-connect/SKILL.md +0 -143
  1218. package/skills/node-inspect-debugger/SKILL.md +0 -85
  1219. package/skills/openai-whisper/SKILL.md +0 -38
  1220. package/skills/openai-whisper-api/SKILL.md +0 -71
  1221. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -154
  1222. package/skills/oracle/SKILL.md +0 -126
  1223. package/skills/pyproject.toml +0 -10
  1224. package/skills/python-debugpy/SKILL.md +0 -73
  1225. package/skills/sag/SKILL.md +0 -87
  1226. package/skills/session-logs/SKILL.md +0 -151
  1227. package/skills/sherpa-onnx-tts/SKILL.md +0 -109
  1228. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1229. package/skills/skill-creator/SKILL.md +0 -78
  1230. package/skills/skill-creator/license.txt +0 -202
  1231. package/skills/skill-creator/scripts/init_skill.py +0 -378
  1232. package/skills/skill-creator/scripts/package_skill.py +0 -139
  1233. package/skills/skill-creator/scripts/quick_validate.py +0 -169
  1234. package/skills/skill-creator/scripts/test_package_skill.py +0 -161
  1235. package/skills/skill-creator/scripts/test_quick_validate.py +0 -116
  1236. package/skills/spike/SKILL.md +0 -51
  1237. package/skills/summarize/SKILL.md +0 -87
  1238. package/skills/taskflow/SKILL.md +0 -149
  1239. package/skills/taskflow/examples/inbox-triage.lobster +0 -33
  1240. package/skills/taskflow/examples/pr-intake.lobster +0 -32
  1241. package/skills/taskflow-inbox-triage/SKILL.md +0 -119
  1242. package/skills/video-frames/SKILL.md +0 -46
  1243. package/skills/video-frames/scripts/frame.sh +0 -81
  1244. package/skills/voice-call/SKILL.md +0 -45
  1245. package/skills/weather/SKILL.md +0 -64
  1246. /package/dist/{acp-runtime-backend-DbchQ02o.js → acp-runtime-backend-DZ1Lnt7f.js} +0 -0
  1247. /package/dist/{delegate-k1aptKei.js → delegate-CwhxUdeb.js} +0 -0
  1248. /package/dist/{dispatch-acp-CD4YxPpf.js → dispatch-acp-BP4I5ZQf.js} +0 -0
  1249. /package/dist/{exec-approvals-ByWUCFQM.js → exec-approvals-ByWUCFQM2.js} +0 -0
  1250. /package/dist/{heartbeat-runner-CM0UZxa_.js → heartbeat-runner-CL3alQ8-.js} +0 -0
  1251. /package/dist/{index-B0VJdRJQ.d.ts → index-B0VJdRJQ2.d.ts} +0 -0
  1252. /package/dist/{library-CQ71yATP.js → library-CiTr_aqC.js} +0 -0
  1253. /package/dist/{run-session-state-DbDeH-q6.js → run-session-state-BOMUtBKZ.js} +0 -0
  1254. /package/dist/{session-subagent-reactivation-Bj91A2ms.js → session-subagent-reactivation-CH0C2I6Y.js} +0 -0
  1255. /package/dist/{types-C4HgagiY2.d.ts → types-C4HgagiY.d.ts} +0 -0
@@ -0,0 +1,1825 @@
1
+ import { c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-DKw2K5wM.js";
2
+ import { a as formatUncaughtError, c as readErrorName } from "./errors-C_Wa6a5T.js";
3
+ import { n as isAbortError } from "./unhandled-rejections-CyXc0Srv.js";
4
+ import { _ as uniqueStrings, l as normalizeStringEntries } from "./string-normalization-B8G0vlWE.js";
5
+ import { n as defaultRuntime } from "./runtime-BkTkFkXs.js";
6
+ import "./agent-scope-EEbMCF2I.js";
7
+ import { a as isSubagentSessionKey, c as parseAgentSessionKey, l as parseRawSessionConversationRef, n as isAcpSessionKey, u as parseThreadSessionSuffix } from "./session-key-utils-CdfsDYvz.js";
8
+ import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, o as classifySessionKeyShape } from "./session-key-CJf5_zWs.js";
9
+ import { c as resolveDefaultAgentId, n as listAgentIds, o as resolveAgentWorkspaceDir } from "./agent-scope-config-BHdZonI2.js";
10
+ import { r as resolveProviderIdForAuth } from "./provider-auth-aliases-hXKyFMus.js";
11
+ import { a as hasGatewayClientCap, r as GATEWAY_CLIENT_MODES, t as GATEWAY_CLIENT_CAPS } from "./client-info-D6_UASoA.js";
12
+ import { Ri as ErrorCodes, i as validateAgentWaitParams, n as validateAgentIdentityParams, r as validateAgentParams, t as formatValidationErrors, zi as errorShape } from "./src-B1Y482-m.js";
13
+ import { a as isInternalNonDeliveryChannel } from "./message-channel-core-rOsWksPZ.js";
14
+ import { i as normalizeMessageChannel, n as isGatewayMessageChannel, t as isDeliverableMessageChannel } from "./message-channel-normalize-CaOaCinb.js";
15
+ import "./message-channel-DcN_7tYD.js";
16
+ import { t as setSafeTimeout } from "./timer-delay-QZRLOpQs.js";
17
+ import { t as ADMIN_SCOPE } from "./operator-scopes-DGvgHuOd.js";
18
+ import "./method-scopes-CTk-6mpm.js";
19
+ import { i as resolveAssistantAvatarUrl } from "./control-ui-shared-AfP1FlbS.js";
20
+ import { l as onAgentEvent, u as registerAgentRunContext } from "./agent-events-Dl8p_DjC.js";
21
+ import { n as resolveAgentMainSessionKey, r as resolveExplicitAgentSessionKey } from "./main-session-BxJmPEXx.js";
22
+ import { i as resolveSessionStoreKey, n as canonicalizeSpawnedByForAgent } from "./session-store-key-dbCfepNe.js";
23
+ import { i as mergeDeliveryContext, o as normalizeDeliveryContext, s as normalizeSessionDeliveryFields } from "./delivery-context.shared-CHlZnq4E.js";
24
+ import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath } from "./paths-C79m3Aob.js";
25
+ import { T as resolveMaintenanceConfigFromInput } from "./store-load-CVdafI-Y.js";
26
+ import { d as updateSessionStore } from "./store-DH20opqS.js";
27
+ import { n as mergeSessionEntry } from "./types-D7s3-R_6.js";
28
+ import "./sessions-CtMqsEs2.js";
29
+ import { n as resolveSessionLifecycleTimestamps } from "./lifecycle-rFgZXsYo.js";
30
+ import { c as resolveSessionResetPolicy, n as resolveChannelResetConfig, o as evaluateSessionFreshness, r as resolveSessionResetType } from "./reset-DxKwvg03.js";
31
+ import { t as asBoolean } from "./boolean-CZag3-H2.js";
32
+ import { r as resolveAgentTimeoutMs } from "./task-completion-contract-BqW0VJsk.js";
33
+ import { a as normalizeAgentRunTimeoutPhase, i as mergeAgentRunTerminalOutcome, t as buildAgentRunTerminalOutcome } from "./agent-run-terminal-outcome-uM9dOCUm.js";
34
+ import { i as createRunningTaskRun, o as finalizeTaskRunByRunId } from "./detached-task-runtime-C6Jx9d2V.js";
35
+ import { c as shouldPreserveUserFacingSessionStateForInputProvenance, n as annotateInterSessionPromptText, s as normalizeInputProvenance } from "./input-provenance-DCrP7aPH.js";
36
+ import { c as loadSessionEntry, l as migrateAndPruneGatewaySessionStoreKey, m as resolveGatewaySessionStoreTarget, p as resolveGatewayModelSupportsImages, s as loadGatewaySessionRow, v as resolveSessionModelRef } from "./session-utils-pgndLXV7.js";
37
+ import { i as resolveSandboxConfigForAgent } from "./config-BT7xcTy8.js";
38
+ import { o as isTimeoutError } from "./failover-error-77jtO3vs.js";
39
+ import { s as resolveTrustedGroupId } from "./agent-tools.policy-CAz43ea3.js";
40
+ import { i as resolveIngressWorkspaceOverrideForSpawnedRun, r as normalizeSpawnedRunMetadata } from "./spawn-requester-origin-Cx8MeOy5.js";
41
+ import "./subagent-announce-delivery-CtmEvLTS.js";
42
+ import { n as shouldDowngradeDeliveryToSessionOnly } from "./best-effort-delivery-B8Rfs1sR.js";
43
+ import { n as resolveMessageChannelSelection } from "./channel-selection-YbyZhzrf.js";
44
+ import { n as resolveSendPolicy } from "./send-policy-C6dhXszH.js";
45
+ import { a as resolveAgentRunExpiresAtMs, i as registerChatAbortController, o as updateChatRunProvider } from "./chat-abort-wipQF0Ih.js";
46
+ import { a as emitGatewaySessionEndPluginHook, c as performGatewaySessionReset, o as emitGatewaySessionStartPluginHook } from "./session-reset-service-BYbADY57.js";
47
+ import { i as resolveBareSessionResetPromptState, n as shouldApplyStartupContext, r as resolveBareResetBootstrapFileAccess, t as buildSessionStartupContextPrelude } from "./startup-context-CZfmG8-g.js";
48
+ import { n as resolvePublicAgentAvatarSource, t as resolveAgentAvatar } from "./identity-avatar-Cbsreyhk.js";
49
+ import { n as agentCommandFromIngress } from "./agent-command-ppfDBwET.js";
50
+ import { t as formatForLog } from "./ws-log-BzGc41ZC.js";
51
+ import "./agent-1M2dVE2G.js";
52
+ import { n as consumeExecApprovalFollowupRuntimeHandoff, r as parseExecApprovalFollowupApprovalId } from "./bash-tools.exec-approval-followup-state-CZKm2nN5.js";
53
+ import { n as resolveAgentOutboundTarget, t as resolveAgentDeliveryPlanWithSessionRoute } from "./agent-delivery-DzK74C1L.js";
54
+ import { a as resolveChatAttachmentMaxBytes, i as parseMessageWithAttachments, n as MediaOffloadError, t as normalizeRpcAttachmentsToChatAttachments } from "./attachment-normalize-Bb3v5iCC.js";
55
+ import { n as timestampOptsFromConfig, t as injectTimestamp } from "./agent-timestamp-ClgiA1GA.js";
56
+ import { n as setGatewayDedupeEntry, r as waitForTerminalGatewayDedupe, t as readTerminalSnapshotFromGatewayDedupe } from "./agent-wait-dedupe-I81_F2tr.js";
57
+ import { n as resolveAssistantIdentity } from "./assistant-identity-Q4krpxtt.js";
58
+ import { r as resolveVoiceWakeRouteByTrigger, t as loadVoiceWakeRoutingConfig } from "./voicewake-routing-Hlporigi.js";
59
+ import { t as reactivateCompletedSubagentSession } from "./session-subagent-reactivation-CH0C2I6Y.js";
60
+ import { existsSync } from "node:fs";
61
+ import { randomUUID } from "node:crypto";
62
+ //#region src/gateway/server-methods/agent-job.ts
63
+ const AGENT_RUN_CACHE_TTL_MS = 10 * 6e4;
64
+ /**
65
+ * Embedded runs can emit transient lifecycle `error` events while auth/model
66
+ * failover is still in progress. Give errors a short grace window so a
67
+ * subsequent `start` event can cancel premature terminal snapshots.
68
+ */
69
+ const AGENT_RUN_ERROR_RETRY_GRACE_MS = 15e3;
70
+ /**
71
+ * Some embedded runtimes emit an intermediate lifecycle `end` with
72
+ * `aborted=true` immediately before retrying the same run. Hold timeout
73
+ * snapshots briefly so `agent.wait` does not resolve to a stale timeout when a
74
+ * final success is about to arrive.
75
+ */
76
+ const AGENT_RUN_TIMEOUT_RETRY_GRACE_MS = 15e3;
77
+ const agentRunCache = /* @__PURE__ */ new Map();
78
+ const agentRunStarts = /* @__PURE__ */ new Map();
79
+ const pendingAgentRunErrors = /* @__PURE__ */ new Map();
80
+ const pendingAgentRunTimeouts = /* @__PURE__ */ new Map();
81
+ const agentRunWaiterCounts = /* @__PURE__ */ new Map();
82
+ let agentRunListenerStarted = false;
83
+ function pruneAgentRunCache(now = Date.now()) {
84
+ for (const [runId, entry] of agentRunCache) if (now - entry.ts > AGENT_RUN_CACHE_TTL_MS) agentRunCache.delete(runId);
85
+ }
86
+ function recordAgentRunSnapshot(entry) {
87
+ pruneAgentRunCache(entry.ts);
88
+ const existing = agentRunCache.get(entry.runId);
89
+ if (existing && shouldPreserveTerminalSnapshot(existing, entry)) {
90
+ agentRunCache.set(entry.runId, {
91
+ ...existing,
92
+ ts: entry.ts
93
+ });
94
+ return;
95
+ }
96
+ agentRunCache.set(entry.runId, entry);
97
+ }
98
+ function shouldPreserveTerminalSnapshot(existing, incoming) {
99
+ const existingOutcome = terminalOutcomeFromSnapshot(existing);
100
+ const incomingOutcome = terminalOutcomeFromSnapshot(incoming);
101
+ if (!existingOutcome) return false;
102
+ if (!incomingOutcome) return false;
103
+ return mergeAgentRunTerminalOutcome(existingOutcome, incomingOutcome) === existingOutcome;
104
+ }
105
+ function terminalOutcomeFromSnapshot(snapshot) {
106
+ if (snapshot.pendingError) return;
107
+ return buildAgentRunTerminalOutcome(snapshot);
108
+ }
109
+ function clearPendingAgentRunError(runId) {
110
+ const pending = pendingAgentRunErrors.get(runId);
111
+ if (!pending) return;
112
+ clearTimeout(pending.timer);
113
+ pendingAgentRunErrors.delete(runId);
114
+ }
115
+ function clearPendingAgentRunTimeout(runId) {
116
+ const pending = pendingAgentRunTimeouts.get(runId);
117
+ if (!pending) return;
118
+ clearTimeout(pending.timer);
119
+ pendingAgentRunTimeouts.delete(runId);
120
+ }
121
+ function schedulePendingAgentRunError(snapshot) {
122
+ const pendingTimeout = pendingAgentRunTimeouts.get(snapshot.runId);
123
+ if (pendingTimeout && shouldPreserveTerminalSnapshot(pendingTimeout.snapshot, snapshot)) return;
124
+ clearPendingAgentRunTimeout(snapshot.runId);
125
+ clearPendingAgentRunError(snapshot.runId);
126
+ const dueAt = Date.now() + AGENT_RUN_ERROR_RETRY_GRACE_MS;
127
+ const timer = setTimeout(() => {
128
+ const pending = pendingAgentRunErrors.get(snapshot.runId);
129
+ if (!pending) return;
130
+ pendingAgentRunErrors.delete(snapshot.runId);
131
+ recordAgentRunSnapshot(pending.snapshot);
132
+ }, AGENT_RUN_ERROR_RETRY_GRACE_MS);
133
+ timer.unref?.();
134
+ pendingAgentRunErrors.set(snapshot.runId, {
135
+ snapshot,
136
+ dueAt,
137
+ timer
138
+ });
139
+ }
140
+ function schedulePendingAgentRunTimeout(snapshot) {
141
+ const pendingTimeout = pendingAgentRunTimeouts.get(snapshot.runId);
142
+ if (pendingTimeout && shouldPreserveTerminalSnapshot(pendingTimeout.snapshot, snapshot)) return;
143
+ clearPendingAgentRunError(snapshot.runId);
144
+ clearPendingAgentRunTimeout(snapshot.runId);
145
+ const dueAt = Date.now() + AGENT_RUN_TIMEOUT_RETRY_GRACE_MS;
146
+ const timer = setTimeout(() => {
147
+ const pending = pendingAgentRunTimeouts.get(snapshot.runId);
148
+ if (!pending) return;
149
+ pendingAgentRunTimeouts.delete(snapshot.runId);
150
+ recordAgentRunSnapshot(pending.snapshot);
151
+ }, AGENT_RUN_TIMEOUT_RETRY_GRACE_MS);
152
+ timer.unref?.();
153
+ pendingAgentRunTimeouts.set(snapshot.runId, {
154
+ snapshot,
155
+ dueAt,
156
+ timer
157
+ });
158
+ }
159
+ function getPendingAgentRunError(runId) {
160
+ const pending = pendingAgentRunErrors.get(runId);
161
+ if (!pending) return;
162
+ return {
163
+ snapshot: pending.snapshot,
164
+ dueAt: pending.dueAt
165
+ };
166
+ }
167
+ function getPendingAgentRunTimeout(runId) {
168
+ const pending = pendingAgentRunTimeouts.get(runId);
169
+ if (!pending) return;
170
+ return {
171
+ snapshot: pending.snapshot,
172
+ dueAt: pending.dueAt
173
+ };
174
+ }
175
+ function createPendingErrorTimeoutSnapshot(snapshot) {
176
+ return {
177
+ runId: snapshot.runId,
178
+ status: "timeout",
179
+ startedAt: snapshot.startedAt,
180
+ error: snapshot.error,
181
+ pendingError: true,
182
+ ...snapshot.providerStarted !== void 0 ? { providerStarted: snapshot.providerStarted } : {},
183
+ ts: Date.now()
184
+ };
185
+ }
186
+ function createSnapshotFromLifecycleEvent(params) {
187
+ const { runId, phase, data } = params;
188
+ const startedAt = typeof data?.startedAt === "number" ? data.startedAt : agentRunStarts.get(runId);
189
+ const endedAt = typeof data?.endedAt === "number" ? data.endedAt : void 0;
190
+ const error = typeof data?.error === "string" ? data.error : void 0;
191
+ const stopReason = typeof data?.stopReason === "string" ? data.stopReason : void 0;
192
+ const livenessState = typeof data?.livenessState === "string" ? data.livenessState : void 0;
193
+ const terminalOutcome = buildAgentRunTerminalOutcome({
194
+ status: phase === "error" ? "error" : data?.aborted ? "timeout" : "ok",
195
+ error,
196
+ stopReason,
197
+ livenessState,
198
+ timeoutPhase: data?.timeoutPhase,
199
+ providerStarted: data?.providerStarted,
200
+ startedAt,
201
+ endedAt
202
+ });
203
+ return {
204
+ runId,
205
+ status: terminalOutcome.status,
206
+ startedAt,
207
+ endedAt,
208
+ error: terminalOutcome.error,
209
+ stopReason,
210
+ livenessState,
211
+ ...data?.yielded === true ? { yielded: true } : {},
212
+ ...terminalOutcome.timeoutPhase ? { timeoutPhase: terminalOutcome.timeoutPhase } : {},
213
+ ...terminalOutcome.providerStarted !== void 0 ? { providerStarted: terminalOutcome.providerStarted } : {},
214
+ ts: Date.now()
215
+ };
216
+ }
217
+ function ensureAgentRunListener() {
218
+ if (agentRunListenerStarted) return;
219
+ agentRunListenerStarted = true;
220
+ onAgentEvent((evt) => {
221
+ if (!evt) return;
222
+ if (evt.stream !== "lifecycle") return;
223
+ const phase = evt.data?.phase;
224
+ if (phase === "start") {
225
+ const startedAt = typeof evt.data?.startedAt === "number" ? evt.data.startedAt : void 0;
226
+ agentRunStarts.set(evt.runId, startedAt ?? Date.now());
227
+ clearPendingAgentRunError(evt.runId);
228
+ clearPendingAgentRunTimeout(evt.runId);
229
+ agentRunCache.delete(evt.runId);
230
+ return;
231
+ }
232
+ if (phase !== "end" && phase !== "error") return;
233
+ const snapshot = createSnapshotFromLifecycleEvent({
234
+ runId: evt.runId,
235
+ phase,
236
+ data: evt.data
237
+ });
238
+ agentRunStarts.delete(evt.runId);
239
+ if (phase === "error") {
240
+ schedulePendingAgentRunError(snapshot);
241
+ return;
242
+ }
243
+ if (snapshot.status === "timeout") {
244
+ schedulePendingAgentRunTimeout(snapshot);
245
+ return;
246
+ }
247
+ const pendingTimeout = pendingAgentRunTimeouts.get(evt.runId);
248
+ if (pendingTimeout && shouldPreserveTerminalSnapshot(pendingTimeout.snapshot, snapshot)) return;
249
+ clearPendingAgentRunError(evt.runId);
250
+ clearPendingAgentRunTimeout(evt.runId);
251
+ recordAgentRunSnapshot(snapshot);
252
+ });
253
+ }
254
+ function getCachedAgentRun(runId) {
255
+ pruneAgentRunCache();
256
+ return agentRunCache.get(runId);
257
+ }
258
+ function addAgentRunWaiter(runId) {
259
+ agentRunWaiterCounts.set(runId, (agentRunWaiterCounts.get(runId) ?? 0) + 1);
260
+ let removed = false;
261
+ return () => {
262
+ if (removed) return;
263
+ removed = true;
264
+ const nextCount = (agentRunWaiterCounts.get(runId) ?? 1) - 1;
265
+ if (nextCount <= 0) {
266
+ agentRunWaiterCounts.delete(runId);
267
+ return;
268
+ }
269
+ agentRunWaiterCounts.set(runId, nextCount);
270
+ };
271
+ }
272
+ async function waitForAgentJob(params) {
273
+ const { runId, timeoutMs, signal, ignoreCachedSnapshot = false } = params;
274
+ ensureAgentRunListener();
275
+ const cached = ignoreCachedSnapshot ? void 0 : getCachedAgentRun(runId);
276
+ if (cached) return cached;
277
+ if (timeoutMs <= 0 || signal?.aborted) return null;
278
+ return await new Promise((resolve) => {
279
+ let settled = false;
280
+ let pendingErrorTimer;
281
+ let pendingTimeoutTimer;
282
+ let pendingTimeoutSnapshot;
283
+ let onAbort;
284
+ let removeWaiter = () => {};
285
+ const clearPendingErrorTimer = () => {
286
+ if (!pendingErrorTimer) return;
287
+ clearTimeout(pendingErrorTimer);
288
+ pendingErrorTimer = void 0;
289
+ };
290
+ const clearPendingTimeoutTimer = () => {
291
+ if (!pendingTimeoutTimer) return;
292
+ clearTimeout(pendingTimeoutTimer);
293
+ pendingTimeoutTimer = void 0;
294
+ pendingTimeoutSnapshot = void 0;
295
+ };
296
+ const finish = (entry) => {
297
+ if (settled) return;
298
+ settled = true;
299
+ clearTimeout(timer);
300
+ clearPendingErrorTimer();
301
+ clearPendingTimeoutTimer();
302
+ unsubscribe();
303
+ removeWaiter();
304
+ if (onAbort) signal?.removeEventListener("abort", onAbort);
305
+ resolve(entry);
306
+ };
307
+ const scheduleTerminalFinish = (kind, snapshot, delayMs) => {
308
+ if (pendingTimeoutSnapshot && shouldPreserveTerminalSnapshot(pendingTimeoutSnapshot, snapshot)) return;
309
+ clearPendingErrorTimer();
310
+ clearPendingTimeoutTimer();
311
+ const timerRef = setSafeTimeout(() => {
312
+ const latest = ignoreCachedSnapshot ? void 0 : getCachedAgentRun(runId);
313
+ if (latest) {
314
+ finish(latest);
315
+ return;
316
+ }
317
+ recordAgentRunSnapshot(snapshot);
318
+ finish(snapshot);
319
+ }, delayMs);
320
+ timerRef.unref?.();
321
+ if (kind === "error") pendingErrorTimer = timerRef;
322
+ else {
323
+ pendingTimeoutTimer = timerRef;
324
+ pendingTimeoutSnapshot = snapshot;
325
+ }
326
+ };
327
+ const scheduleErrorFinish = (snapshot, delayMs = AGENT_RUN_ERROR_RETRY_GRACE_MS) => {
328
+ scheduleTerminalFinish("error", snapshot, delayMs);
329
+ };
330
+ const scheduleTimeoutFinish = (snapshot, delayMs = AGENT_RUN_TIMEOUT_RETRY_GRACE_MS) => {
331
+ scheduleTerminalFinish("timeout", snapshot, delayMs);
332
+ };
333
+ if (!ignoreCachedSnapshot) {
334
+ const pendingError = getPendingAgentRunError(runId);
335
+ if (pendingError) scheduleErrorFinish(pendingError.snapshot, pendingError.dueAt - Date.now());
336
+ const pendingTimeout = getPendingAgentRunTimeout(runId);
337
+ if (pendingTimeout) scheduleTimeoutFinish(pendingTimeout.snapshot, pendingTimeout.dueAt - Date.now());
338
+ }
339
+ const unsubscribe = onAgentEvent((evt) => {
340
+ if (!evt || evt.stream !== "lifecycle") return;
341
+ if (evt.runId !== runId) return;
342
+ const phase = evt.data?.phase;
343
+ if (phase === "start") {
344
+ clearPendingErrorTimer();
345
+ clearPendingTimeoutTimer();
346
+ return;
347
+ }
348
+ if (phase !== "end" && phase !== "error") return;
349
+ const latest = ignoreCachedSnapshot ? void 0 : getCachedAgentRun(runId);
350
+ if (latest) {
351
+ if (pendingTimeoutSnapshot && shouldPreserveTerminalSnapshot(pendingTimeoutSnapshot, latest)) return;
352
+ finish(latest);
353
+ return;
354
+ }
355
+ const snapshot = createSnapshotFromLifecycleEvent({
356
+ runId: evt.runId,
357
+ phase,
358
+ data: evt.data
359
+ });
360
+ if (phase === "error") {
361
+ scheduleErrorFinish(snapshot);
362
+ return;
363
+ }
364
+ if (snapshot.status === "timeout") {
365
+ scheduleTimeoutFinish(snapshot);
366
+ return;
367
+ }
368
+ if (pendingTimeoutSnapshot && shouldPreserveTerminalSnapshot(pendingTimeoutSnapshot, snapshot)) return;
369
+ recordAgentRunSnapshot(snapshot);
370
+ finish(snapshot);
371
+ });
372
+ removeWaiter = addAgentRunWaiter(runId);
373
+ const timer = setSafeTimeout(() => {
374
+ const pendingError = getPendingAgentRunError(runId);
375
+ finish(pendingError ? createPendingErrorTimeoutSnapshot(pendingError.snapshot) : null);
376
+ }, timeoutMs);
377
+ onAbort = () => finish(null);
378
+ signal?.addEventListener("abort", onAbort, { once: true });
379
+ });
380
+ }
381
+ ensureAgentRunListener();
382
+ //#endregion
383
+ //#region src/gateway/server-methods/agent.ts
384
+ const RESET_COMMAND_RE = /^\/(new|reset)(?:\s+([\s\S]*))?$/i;
385
+ function formatAttachmentFailureForLog(err) {
386
+ const primary = formatUncaughtError(err);
387
+ const cause = err instanceof Error ? err.cause : void 0;
388
+ if (cause === void 0) return primary;
389
+ const causeText = formatUncaughtError(cause);
390
+ if (!causeText || causeText === primary) return primary;
391
+ return `${primary}\nCaused by: ${causeText}`;
392
+ }
393
+ function logAttachmentFailure(logGateway, label, err) {
394
+ logGateway.error(label, {
395
+ error: formatAttachmentFailureForLog(err),
396
+ consoleMessage: `${label}: ${formatForLog(err)}`
397
+ });
398
+ }
399
+ function clientHasAdminScope(client) {
400
+ return (Array.isArray(client?.connect?.scopes) ? client.connect.scopes : []).includes(ADMIN_SCOPE);
401
+ }
402
+ function resolveAllowModelOverrideFromClient(client) {
403
+ return clientHasAdminScope(client) || client?.internal?.allowModelOverride === true;
404
+ }
405
+ function resolveCanResetSessionFromClient(client) {
406
+ return clientHasAdminScope(client);
407
+ }
408
+ function resolveCanUseInternalRuntimeHandoff(client) {
409
+ return client?.connect?.client?.mode === GATEWAY_CLIENT_MODES.BACKEND;
410
+ }
411
+ function emitAgentSendSessionLifecycleTransition(transition) {
412
+ if (!transition) return;
413
+ if (transition.previousSessionId) emitGatewaySessionEndPluginHook({
414
+ cfg: transition.cfg,
415
+ sessionKey: transition.sessionKey,
416
+ sessionId: transition.previousSessionId,
417
+ storePath: transition.storePath,
418
+ sessionFile: transition.previousSessionFile,
419
+ agentId: transition.agentId,
420
+ reason: transition.previousEndReason ?? "unknown",
421
+ nextSessionId: transition.sessionId,
422
+ nextSessionKey: transition.sessionKey
423
+ });
424
+ emitGatewaySessionStartPluginHook({
425
+ cfg: transition.cfg,
426
+ sessionKey: transition.sessionKey,
427
+ sessionId: transition.sessionId,
428
+ resumedFrom: transition.previousSessionId,
429
+ storePath: transition.storePath,
430
+ sessionFile: transition.sessionFile,
431
+ agentId: transition.agentId
432
+ });
433
+ }
434
+ async function runSessionResetFromAgent(params) {
435
+ const result = await performGatewaySessionReset({
436
+ key: params.key,
437
+ ...params.agentId ? { agentId: params.agentId } : {},
438
+ reason: params.reason,
439
+ commandSource: "gateway:agent"
440
+ });
441
+ if (!result.ok) return result;
442
+ return {
443
+ ok: true,
444
+ key: result.key,
445
+ sessionId: result.entry.sessionId
446
+ };
447
+ }
448
+ function resolveSessionRuntimeWorkspace(params) {
449
+ const sessionAgentId = params.agentId ? normalizeAgentId(params.agentId) : resolveAgentIdFromSessionKey(params.sessionKey);
450
+ const workspaceOverride = resolveIngressWorkspaceOverrideForSpawnedRun({
451
+ spawnedBy: params.spawnedBy,
452
+ workspaceDir: params.sessionEntry?.spawnedWorkspaceDir
453
+ });
454
+ return {
455
+ runtimeWorkspaceDir: workspaceOverride ?? resolveAgentWorkspaceDir(params.cfg, sessionAgentId),
456
+ isCanonicalWorkspace: !workspaceOverride
457
+ };
458
+ }
459
+ function resolveSessionRuntimeCwd(params) {
460
+ return normalizeOptionalString(params.sessionEntry?.spawnedCwd);
461
+ }
462
+ function shouldSkipStartupContextForSpawnedSandbox(params) {
463
+ if (!params.spawnedBy) return false;
464
+ const agentId = params.agentId ? normalizeAgentId(params.agentId) : resolveAgentIdFromSessionKey(params.sessionKey);
465
+ const sandboxCfg = resolveSandboxConfigForAgent(params.cfg, agentId);
466
+ if (sandboxCfg.mode === "off") return false;
467
+ if (sandboxCfg.mode === "non-main") {
468
+ const mainSessionKey = resolveAgentMainSessionKey({
469
+ cfg: params.cfg,
470
+ agentId
471
+ });
472
+ if (params.sessionKey.trim() === mainSessionKey.trim()) return false;
473
+ }
474
+ return sandboxCfg.workspaceAccess !== "rw";
475
+ }
476
+ function normalizeTrustedGroupMetadata(value) {
477
+ return {
478
+ groupId: normalizeOptionalString(value?.groupId),
479
+ groupChannel: normalizeOptionalString(value?.groupChannel),
480
+ groupSpace: normalizeOptionalString(value?.groupSpace ?? value?.space)
481
+ };
482
+ }
483
+ function resolveSessionKeyGroupId(sessionKey) {
484
+ const { baseSessionKey } = parseThreadSessionSuffix(sessionKey);
485
+ const conversation = parseRawSessionConversationRef(baseSessionKey ?? sessionKey);
486
+ if (!conversation || conversation.kind !== "group" && conversation.kind !== "channel") return;
487
+ return conversation.rawId;
488
+ }
489
+ function resolveTrustedGroupMetadata(params) {
490
+ return {
491
+ groupId: params.stored.groupId ?? params.inherited?.groupId ?? resolveSessionKeyGroupId(params.sessionKey) ?? (params.spawnedBy ? resolveSessionKeyGroupId(params.spawnedBy) : void 0),
492
+ groupChannel: params.stored.groupChannel ?? params.inherited?.groupChannel,
493
+ groupSpace: params.stored.groupSpace ?? params.inherited?.groupSpace
494
+ };
495
+ }
496
+ function requestGroupMatchesTrusted(params) {
497
+ const requestGroupId = params.requestGroupId?.trim();
498
+ if (!requestGroupId) return true;
499
+ return Boolean(params.trustedGroupId && requestGroupId === params.trustedGroupId);
500
+ }
501
+ function emitSessionsChanged(context, payload) {
502
+ const connIds = context.getSessionEventSubscriberConnIds();
503
+ if (connIds.size === 0) return;
504
+ const sessionRow = payload.sessionKey ? loadGatewaySessionRow(payload.sessionKey, payload.sessionKey === "global" && payload.agentId ? { agentId: payload.agentId } : void 0) : null;
505
+ const omitUnscopedGlobalGoal = payload.sessionKey === "global" && !payload.agentId;
506
+ context.broadcastToConnIds("sessions.changed", {
507
+ ...payload,
508
+ ts: Date.now(),
509
+ ...sessionRow ? {
510
+ updatedAt: sessionRow.updatedAt ?? void 0,
511
+ sessionId: sessionRow.sessionId,
512
+ kind: sessionRow.kind,
513
+ channel: sessionRow.channel,
514
+ subject: sessionRow.subject,
515
+ groupChannel: sessionRow.groupChannel,
516
+ space: sessionRow.space,
517
+ chatType: sessionRow.chatType,
518
+ origin: sessionRow.origin,
519
+ spawnedBy: sessionRow.spawnedBy,
520
+ spawnedWorkspaceDir: sessionRow.spawnedWorkspaceDir,
521
+ spawnedCwd: sessionRow.spawnedCwd,
522
+ forkedFromParent: sessionRow.forkedFromParent,
523
+ spawnDepth: sessionRow.spawnDepth,
524
+ subagentRole: sessionRow.subagentRole,
525
+ subagentControlScope: sessionRow.subagentControlScope,
526
+ label: sessionRow.label,
527
+ displayName: sessionRow.displayName,
528
+ deliveryContext: sessionRow.deliveryContext,
529
+ parentSessionKey: sessionRow.parentSessionKey,
530
+ childSessions: sessionRow.childSessions,
531
+ thinkingLevel: sessionRow.thinkingLevel,
532
+ fastMode: sessionRow.fastMode,
533
+ verboseLevel: sessionRow.verboseLevel,
534
+ traceLevel: sessionRow.traceLevel,
535
+ reasoningLevel: sessionRow.reasoningLevel,
536
+ elevatedLevel: sessionRow.elevatedLevel,
537
+ sendPolicy: sessionRow.sendPolicy,
538
+ systemSent: sessionRow.systemSent,
539
+ abortedLastRun: sessionRow.abortedLastRun,
540
+ inputTokens: sessionRow.inputTokens,
541
+ outputTokens: sessionRow.outputTokens,
542
+ lastChannel: sessionRow.lastChannel,
543
+ lastTo: sessionRow.lastTo,
544
+ lastAccountId: sessionRow.lastAccountId,
545
+ lastThreadId: sessionRow.lastThreadId,
546
+ totalTokens: sessionRow.totalTokens,
547
+ totalTokensFresh: sessionRow.totalTokensFresh,
548
+ ...omitUnscopedGlobalGoal ? {} : { goal: sessionRow.goal ?? null },
549
+ contextTokens: sessionRow.contextTokens,
550
+ estimatedCostUsd: sessionRow.estimatedCostUsd,
551
+ responseUsage: sessionRow.responseUsage,
552
+ modelProvider: sessionRow.modelProvider,
553
+ model: sessionRow.model,
554
+ status: sessionRow.status,
555
+ startedAt: sessionRow.startedAt,
556
+ endedAt: sessionRow.endedAt,
557
+ runtimeMs: sessionRow.runtimeMs,
558
+ compactionCheckpointCount: sessionRow.compactionCheckpointCount,
559
+ latestCompactionCheckpoint: sessionRow.latestCompactionCheckpoint
560
+ } : {}
561
+ }, connIds, { dropIfSlow: true });
562
+ }
563
+ function resolveFailedTrackedAgentTaskStatus(error) {
564
+ return isAbortError(error) || isTimeoutError(error) ? "timed_out" : "failed";
565
+ }
566
+ function tryFinalizeTrackedAgentTask(params) {
567
+ try {
568
+ finalizeTaskRunByRunId({
569
+ runId: params.runId,
570
+ runtime: "cli",
571
+ status: params.status,
572
+ endedAt: Date.now(),
573
+ ...params.error !== void 0 ? { error: params.error } : {},
574
+ ...params.terminalSummary !== void 0 ? { terminalSummary: params.terminalSummary } : {}
575
+ });
576
+ } catch {}
577
+ }
578
+ function resolveAgentDedupeKeys(params) {
579
+ const keys = [`agent:${params.idempotencyKey}`];
580
+ const approvalId = params.execApprovalFollowupApprovalId?.trim();
581
+ if (approvalId) keys.push(`agent:exec-approval-followup:${approvalId}`);
582
+ return uniqueStrings(keys);
583
+ }
584
+ function readGatewayDedupeEntry(params) {
585
+ for (const key of params.keys) {
586
+ const entry = params.dedupe.get(key);
587
+ if (entry) return entry;
588
+ }
589
+ }
590
+ function isAcceptedAgentDedupePayload(payload) {
591
+ return typeof payload === "object" && payload !== null && payload.status === "accepted";
592
+ }
593
+ function isPreRegistrationAbortedAgentDedupePayload(payload) {
594
+ const stopReason = payload?.stopReason;
595
+ return typeof payload === "object" && payload !== null && payload.status === "timeout" && (stopReason === "rpc" || stopReason === "stop");
596
+ }
597
+ function isPreRegistrationAbortedAgentDedupeEntryForSession(params) {
598
+ if (!params.entry?.ok || !isPreRegistrationAbortedAgentDedupePayload(params.entry.payload)) return false;
599
+ const payload = params.entry.payload;
600
+ const payloadRunId = typeof payload.runId === "string" ? payload.runId.trim() : "";
601
+ if (payloadRunId && payloadRunId !== params.runId) return false;
602
+ const payloadSessionKey = typeof payload.sessionKey === "string" && payload.sessionKey.trim() ? payload.sessionKey.trim() : void 0;
603
+ const expectedSessionKeys = new Set([params.sessionKey, ...params.alternateSessionKeys ?? []].filter((value) => Boolean(value?.trim())));
604
+ return !payloadSessionKey || expectedSessionKeys.size === 0 || expectedSessionKeys.has(payloadSessionKey);
605
+ }
606
+ function setGatewayDedupeEntries(params) {
607
+ for (const key of params.keys) setGatewayDedupeEntry({
608
+ dedupe: params.dedupe,
609
+ key,
610
+ entry: params.entry
611
+ });
612
+ }
613
+ function setAbortedAgentDedupeEntries(params) {
614
+ setGatewayDedupeEntries({
615
+ dedupe: params.dedupe,
616
+ keys: params.keys,
617
+ entry: {
618
+ ts: Date.now(),
619
+ ok: true,
620
+ payload: {
621
+ runId: params.runId,
622
+ ...params.agentId ? { agentId: params.agentId } : {},
623
+ status: "timeout",
624
+ summary: "aborted",
625
+ stopReason: params.stopReason,
626
+ timeoutPhase: "queue",
627
+ providerStarted: false
628
+ }
629
+ }
630
+ });
631
+ }
632
+ function readAgentRunTimeoutAttribution(meta) {
633
+ const record = meta && typeof meta === "object" && !Array.isArray(meta) ? meta : void 0;
634
+ return {
635
+ timeoutPhase: normalizeAgentRunTimeoutPhase(record?.timeoutPhase),
636
+ providerStarted: asBoolean(record?.providerStarted)
637
+ };
638
+ }
639
+ function isGatewayAbortSignalReason(reason) {
640
+ return reason === void 0 || isAbortError(reason) || readErrorName(reason) === "TimeoutError";
641
+ }
642
+ function isGatewayAgentAbortRejection(error, signal) {
643
+ if (!signal.aborted) return false;
644
+ if (readErrorName(signal.reason) === "TimeoutError") return true;
645
+ if (!isGatewayAbortSignalReason(signal.reason)) return false;
646
+ return isAbortError(error) || readErrorName(error) === "TimeoutError";
647
+ }
648
+ function resolveGatewayAgentAbortStopReason(signal) {
649
+ return readErrorName(signal.reason) === "TimeoutError" ? "timeout" : "rpc";
650
+ }
651
+ function resolveAbortedAgentStopReason(entry) {
652
+ return entry?.abortStopReason?.trim() || "rpc";
653
+ }
654
+ function deleteGatewayDedupeEntries(params) {
655
+ for (const key of params.keys) params.dedupe.delete(key);
656
+ }
657
+ function dispatchAgentRunFromGateway(params) {
658
+ const inputProvenance = normalizeInputProvenance(params.ingressOpts.inputProvenance);
659
+ const shouldTrackTask = params.ingressOpts.sessionKey?.trim() && inputProvenance?.kind !== "inter_session";
660
+ if (shouldTrackTask) try {
661
+ createRunningTaskRun({
662
+ runtime: "cli",
663
+ sourceId: params.runId,
664
+ ownerKey: params.ingressOpts.sessionKey,
665
+ scopeKind: "session",
666
+ requesterOrigin: normalizeDeliveryContext({
667
+ channel: params.ingressOpts.channel,
668
+ to: params.ingressOpts.to,
669
+ accountId: params.ingressOpts.accountId,
670
+ threadId: params.ingressOpts.threadId
671
+ }),
672
+ childSessionKey: params.ingressOpts.sessionKey,
673
+ runId: params.runId,
674
+ task: params.ingressOpts.message,
675
+ deliveryStatus: "not_applicable",
676
+ startedAt: Date.now()
677
+ });
678
+ } catch {}
679
+ agentCommandFromIngress(params.ingressOpts, defaultRuntime, params.context.deps).then((result) => {
680
+ const aborted = result?.meta?.aborted === true;
681
+ const timeoutAttribution = readAgentRunTimeoutAttribution(result?.meta);
682
+ if (shouldTrackTask) tryFinalizeTrackedAgentTask({
683
+ runId: params.runId,
684
+ status: aborted ? "timed_out" : "succeeded",
685
+ terminalSummary: aborted ? "aborted" : "completed"
686
+ });
687
+ const payload = {
688
+ runId: params.runId,
689
+ status: aborted ? "timeout" : "ok",
690
+ summary: aborted ? "aborted" : "completed",
691
+ ...aborted ? { stopReason: result?.meta?.stopReason ?? "rpc" } : {},
692
+ ...aborted && timeoutAttribution.timeoutPhase ? { timeoutPhase: timeoutAttribution.timeoutPhase } : {},
693
+ ...aborted && timeoutAttribution.providerStarted !== void 0 ? { providerStarted: timeoutAttribution.providerStarted } : {},
694
+ result
695
+ };
696
+ setGatewayDedupeEntries({
697
+ dedupe: params.context.dedupe,
698
+ keys: params.dedupeKeys,
699
+ entry: {
700
+ ts: Date.now(),
701
+ ok: true,
702
+ payload
703
+ }
704
+ });
705
+ params.respond(true, payload, void 0, { runId: params.runId });
706
+ }).catch((err) => {
707
+ const aborted = isGatewayAgentAbortRejection(err, params.abortController.signal);
708
+ const renderedErr = formatForLog(err);
709
+ if (shouldTrackTask) tryFinalizeTrackedAgentTask({
710
+ runId: params.runId,
711
+ status: aborted ? "timed_out" : resolveFailedTrackedAgentTaskStatus(err),
712
+ error: renderedErr,
713
+ terminalSummary: renderedErr
714
+ });
715
+ const error = errorShape(ErrorCodes.UNAVAILABLE, renderedErr);
716
+ const stopReason = resolveGatewayAgentAbortStopReason(params.abortController.signal);
717
+ const payload = {
718
+ runId: params.runId,
719
+ status: aborted ? "timeout" : "error",
720
+ summary: aborted ? "aborted" : renderedErr,
721
+ ...aborted ? {
722
+ stopReason,
723
+ timeoutPhase: "gateway_draining"
724
+ } : {}
725
+ };
726
+ setGatewayDedupeEntries({
727
+ dedupe: params.context.dedupe,
728
+ keys: params.dedupeKeys,
729
+ entry: {
730
+ ts: Date.now(),
731
+ ok: aborted,
732
+ payload,
733
+ ...aborted ? {} : { error }
734
+ }
735
+ });
736
+ params.respond(aborted, payload, aborted ? void 0 : error, {
737
+ runId: params.runId,
738
+ ...aborted ? {} : { error: formatForLog(err) }
739
+ });
740
+ }).finally(() => {
741
+ if (params.context.chatAbortControllers.get(params.runId)?.controller === params.abortController) params.context.chatAbortControllers.delete(params.runId);
742
+ });
743
+ }
744
+ function shouldSuppressAgentPromptPersistence(params) {
745
+ if (params.inputProvenance?.kind !== "inter_session" || params.inputProvenance.sourceTool !== "subagent_announce") return false;
746
+ return params.internalEvents?.some((event) => event.type === "task_completion" && event.source === "subagent") === true;
747
+ }
748
+ function yieldAfterAgentAcceptedAck() {
749
+ return new Promise((resolve) => {
750
+ setTimeout(resolve, 10);
751
+ });
752
+ }
753
+ const agentHandlers = {
754
+ agent: async ({ params, respond, context, client, isWebchatConnect }) => {
755
+ const p = params;
756
+ if (!validateAgentParams(p)) {
757
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: ${formatValidationErrors(validateAgentParams.errors)}`));
758
+ return;
759
+ }
760
+ const request = p;
761
+ const allowModelOverride = resolveAllowModelOverrideFromClient(client);
762
+ const canResetSession = resolveCanResetSessionFromClient(client);
763
+ const canUseInternalRuntimeHandoff = resolveCanUseInternalRuntimeHandoff(client);
764
+ const requestedModelOverride = Boolean(request.provider || request.model);
765
+ const requestedInternalSessionEffects = request.sessionEffects === "internal";
766
+ const requestedPromptPersistenceSuppression = request.suppressPromptPersistence === true;
767
+ const isRawModelRun = request.modelRun === true || request.promptMode === "none";
768
+ if (requestedModelOverride && !allowModelOverride) {
769
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "provider/model overrides are not authorized for this caller."));
770
+ return;
771
+ }
772
+ if ((requestedInternalSessionEffects || requestedPromptPersistenceSuppression) && !canUseInternalRuntimeHandoff) {
773
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "internal session-effect controls are reserved for backend callers."));
774
+ return;
775
+ }
776
+ const providerOverride = allowModelOverride ? request.provider : void 0;
777
+ const modelOverride = allowModelOverride ? request.model : void 0;
778
+ const cfg = context.getRuntimeConfig();
779
+ const idem = request.idempotencyKey;
780
+ const runId = idem;
781
+ const execApprovalFollowupApprovalId = parseExecApprovalFollowupApprovalId(idem);
782
+ if (execApprovalFollowupApprovalId && !canUseInternalRuntimeHandoff) {
783
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "exec approval followup idempotency keys are reserved for backend callers."));
784
+ return;
785
+ }
786
+ const normalizedSpawned = normalizeSpawnedRunMetadata({
787
+ groupId: request.groupId,
788
+ groupChannel: request.groupChannel,
789
+ groupSpace: request.groupSpace
790
+ });
791
+ let resolvedGroupId = normalizedSpawned.groupId;
792
+ let resolvedGroupChannel = normalizedSpawned.groupChannel;
793
+ let resolvedGroupSpace = normalizedSpawned.groupSpace;
794
+ let spawnedByValue;
795
+ const inputProvenance = normalizeInputProvenance(request.inputProvenance);
796
+ const preserveUserFacingSessionModelState = canUseInternalRuntimeHandoff && shouldPreserveUserFacingSessionStateForInputProvenance(inputProvenance);
797
+ const sessionEffects = requestedInternalSessionEffects ? "internal" : request.sessionEffects;
798
+ const suppressVisibleSessionEffects = sessionEffects === "internal";
799
+ const agentDedupeKeys = resolveAgentDedupeKeys({
800
+ idempotencyKey: idem,
801
+ execApprovalFollowupApprovalId
802
+ });
803
+ const cached = readGatewayDedupeEntry({
804
+ dedupe: context.dedupe,
805
+ keys: agentDedupeKeys
806
+ });
807
+ if (cached) {
808
+ if (cached.ok && isAcceptedAgentDedupePayload(cached.payload)) {
809
+ const cachedRunId = typeof cached.payload.runId === "string" && cached.payload.runId.trim() ? cached.payload.runId.trim() : runId;
810
+ const cachedSessionKey = typeof cached.payload.sessionKey === "string" && cached.payload.sessionKey.trim() ? cached.payload.sessionKey.trim() : void 0;
811
+ const cachedAgentId = cachedSessionKey === "global" && typeof cached.payload.agentId === "string" && cached.payload.agentId.trim() ? cached.payload.agentId.trim() : void 0;
812
+ respond(true, {
813
+ runId: cachedRunId,
814
+ status: "in_flight",
815
+ ...cachedSessionKey ? { sessionKey: cachedSessionKey } : {},
816
+ ...cachedAgentId ? { agentId: cachedAgentId } : {}
817
+ }, void 0, {
818
+ cached: true,
819
+ runId: cachedRunId
820
+ });
821
+ return;
822
+ }
823
+ respond(cached.ok, cached.payload, cached.error, { cached: true });
824
+ return;
825
+ }
826
+ let agentDedupeReserved = false;
827
+ let agentRunAccepted = false;
828
+ const ownerConnId = typeof client?.connId === "string" ? client.connId : void 0;
829
+ const ownerDeviceId = typeof client?.connect?.device?.id === "string" ? client.connect.device.id : void 0;
830
+ const reservePreAcceptedAgentDedupe = (sessionKey, dedupeAgentId) => {
831
+ if (agentDedupeReserved || !sessionKey) return;
832
+ const dedupeSessionResolvesGlobal = resolveSessionStoreKey({
833
+ cfg,
834
+ sessionKey
835
+ }) === "global";
836
+ const acceptedAt = Date.now();
837
+ const pendingTimeoutMs = resolveAgentTimeoutMs({
838
+ cfg,
839
+ overrideSeconds: typeof request.timeout === "number" ? request.timeout : void 0
840
+ });
841
+ setGatewayDedupeEntries({
842
+ dedupe: context.dedupe,
843
+ keys: agentDedupeKeys,
844
+ entry: {
845
+ ts: acceptedAt,
846
+ ok: true,
847
+ payload: {
848
+ runId,
849
+ status: "accepted",
850
+ sessionKey,
851
+ ...dedupeSessionResolvesGlobal && dedupeAgentId ? { agentId: dedupeAgentId } : {},
852
+ acceptedAt,
853
+ dedupeKeys: agentDedupeKeys,
854
+ expiresAtMs: resolveAgentRunExpiresAtMs({
855
+ now: acceptedAt,
856
+ timeoutMs: pendingTimeoutMs
857
+ }),
858
+ ownerConnId,
859
+ ownerDeviceId
860
+ }
861
+ }
862
+ });
863
+ agentDedupeReserved = true;
864
+ };
865
+ const clearUnacceptedExecApprovalFollowupDedupe = () => {
866
+ if (!agentDedupeReserved || agentRunAccepted) return;
867
+ if (isPreRegistrationAbortedAgentDedupeEntryForSession({
868
+ entry: readGatewayDedupeEntry({
869
+ dedupe: context.dedupe,
870
+ keys: agentDedupeKeys
871
+ }),
872
+ runId
873
+ })) return;
874
+ deleteGatewayDedupeEntries({
875
+ dedupe: context.dedupe,
876
+ keys: agentDedupeKeys
877
+ });
878
+ agentDedupeReserved = false;
879
+ };
880
+ const normalizedAttachments = normalizeRpcAttachmentsToChatAttachments(request.attachments);
881
+ const requestedBestEffortDeliver = typeof request.bestEffortDeliver === "boolean" ? request.bestEffortDeliver : void 0;
882
+ const knownAgents = listAgentIds(cfg);
883
+ const agentIdRaw = normalizeOptionalString(request.agentId) ?? "";
884
+ let agentId = agentIdRaw ? normalizeAgentId(agentIdRaw) : void 0;
885
+ if (agentId && !knownAgents.includes(agentId)) {
886
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: unknown agent id "${request.agentId}"`));
887
+ return;
888
+ }
889
+ const requestedSessionKeyRaw = normalizeOptionalString(request.sessionKey);
890
+ if (requestedSessionKeyRaw && classifySessionKeyShape(requestedSessionKeyRaw) === "malformed_agent") {
891
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: malformed session key "${requestedSessionKeyRaw}"`));
892
+ return;
893
+ }
894
+ if (!agentId && requestedSessionKeyRaw) {
895
+ const parsed = parseAgentSessionKey(requestedSessionKeyRaw);
896
+ const inferredAgentId = parsed && resolveSessionStoreKey({
897
+ cfg,
898
+ sessionKey: requestedSessionKeyRaw
899
+ }) === "global" ? normalizeAgentId(parsed.agentId) : void 0;
900
+ if (inferredAgentId) {
901
+ if (!knownAgents.includes(inferredAgentId)) {
902
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: unknown agent id "${parsed?.agentId}"`));
903
+ return;
904
+ }
905
+ agentId = inferredAgentId;
906
+ }
907
+ }
908
+ const requestedSessionId = normalizeOptionalString(request.sessionId);
909
+ let requestedSessionKey = requestedSessionKeyRaw ?? (!requestedSessionId ? resolveExplicitAgentSessionKey({
910
+ cfg,
911
+ agentId
912
+ }) : void 0);
913
+ if (agentId && requestedSessionKeyRaw) {
914
+ const parsedRequestedSessionKey = parseAgentSessionKey(requestedSessionKeyRaw);
915
+ const requestedCanonicalKey = resolveSessionStoreKey({
916
+ cfg,
917
+ sessionKey: requestedSessionKeyRaw
918
+ });
919
+ const sessionAgentId = parsedRequestedSessionKey?.agentId ? normalizeAgentId(parsedRequestedSessionKey.agentId) : requestedCanonicalKey === "global" ? agentId : resolveAgentIdFromSessionKey(requestedSessionKeyRaw);
920
+ if (sessionAgentId !== agentId) {
921
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: agent "${request.agentId}" does not match session key agent "${sessionAgentId}"`));
922
+ return;
923
+ }
924
+ }
925
+ const preAcceptedReservedSessionKey = requestedSessionKey && resolveSessionStoreKey({
926
+ cfg,
927
+ sessionKey: requestedSessionKey
928
+ }) === "global" ? "global" : requestedSessionKey;
929
+ reservePreAcceptedAgentDedupe(preAcceptedReservedSessionKey, agentId);
930
+ try {
931
+ let message = (request.message ?? "").trim();
932
+ if (!isRawModelRun) message = annotateInterSessionPromptText(message, inputProvenance);
933
+ let images = [];
934
+ let imageOrder = [];
935
+ if (normalizedAttachments.length > 0) {
936
+ let baseProvider;
937
+ let baseModel;
938
+ let requestedSessionEntry;
939
+ if (requestedSessionKeyRaw) {
940
+ const { cfg: sessCfg, entry: sessEntry, canonicalKey: sessCanonicalKey } = loadSessionEntry(requestedSessionKeyRaw, {
941
+ ...agentId ? { agentId } : {},
942
+ clone: false
943
+ });
944
+ requestedSessionEntry = sessEntry;
945
+ const modelRef = resolveSessionModelRef(sessCfg, sessEntry, sessCanonicalKey === "global" && agentId ? agentId : resolveAgentIdFromSessionKey(sessCanonicalKey));
946
+ baseProvider = modelRef.provider;
947
+ baseModel = modelRef.model;
948
+ }
949
+ const effectiveProvider = providerOverride || baseProvider;
950
+ const effectiveModel = modelOverride || baseModel;
951
+ const supportsInlineImages = request.acpTurnSource === "manual_spawn" && isAcpSessionKey(requestedSessionKeyRaw) && requestedSessionEntry?.acp != null ? true : await resolveGatewayModelSupportsImages({
952
+ loadGatewayModelCatalog: context.loadGatewayModelCatalog,
953
+ provider: effectiveProvider,
954
+ model: effectiveModel
955
+ });
956
+ try {
957
+ const parsed = await parseMessageWithAttachments(message, normalizedAttachments, {
958
+ maxBytes: resolveChatAttachmentMaxBytes(cfg),
959
+ log: context.logGateway,
960
+ supportsInlineImages,
961
+ acceptNonImage: false
962
+ });
963
+ message = parsed.message.trim();
964
+ images = parsed.images;
965
+ imageOrder = parsed.imageOrder;
966
+ } catch (err) {
967
+ logAttachmentFailure(context.logGateway, "agent attachment parse failed", err);
968
+ respond(false, void 0, errorShape(err instanceof MediaOffloadError ? ErrorCodes.UNAVAILABLE : ErrorCodes.INVALID_REQUEST, String(err)));
969
+ return;
970
+ }
971
+ }
972
+ const isKnownGatewayChannel = (value) => isGatewayMessageChannel(value) || isInternalNonDeliveryChannel(value);
973
+ const channelHints = normalizeStringEntries([request.channel, request.replyChannel].filter((value) => typeof value === "string"));
974
+ for (const rawChannel of channelHints) {
975
+ const normalized = normalizeMessageChannel(rawChannel);
976
+ if (normalized && normalized !== "last" && !isKnownGatewayChannel(normalized)) {
977
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent params: unknown channel: ${normalized}`));
978
+ return;
979
+ }
980
+ }
981
+ const voiceWakeTrigger = normalizeOptionalString(request.voiceWakeTrigger) ?? "";
982
+ const replyTo = normalizeOptionalString(request.replyTo) ?? "";
983
+ const to = normalizeOptionalString(request.to) ?? "";
984
+ const explicitVoiceWakeSessionTarget = !agentId && requestedSessionKeyRaw ? (() => {
985
+ const { cfg: sessionCfg, canonicalKey } = loadSessionEntry(requestedSessionKeyRaw, { clone: false });
986
+ const routedAgentId = resolveAgentIdFromSessionKey(canonicalKey);
987
+ if (routedAgentId !== normalizeAgentId(resolveDefaultAgentId(sessionCfg))) return true;
988
+ return canonicalKey !== resolveAgentMainSessionKey({
989
+ cfg: sessionCfg,
990
+ agentId: routedAgentId
991
+ });
992
+ })() : false;
993
+ const canAutoRouteVoiceWake = !agentId && !explicitVoiceWakeSessionTarget && !requestedSessionId && !replyTo && !to;
994
+ if (Object.prototype.hasOwnProperty.call(request, "voiceWakeTrigger") && canAutoRouteVoiceWake) try {
995
+ const routingConfig = await loadVoiceWakeRoutingConfig();
996
+ const route = resolveVoiceWakeRouteByTrigger({
997
+ trigger: voiceWakeTrigger || void 0,
998
+ config: routingConfig
999
+ });
1000
+ if ("agentId" in route) if (knownAgents.includes(route.agentId)) {
1001
+ agentId = route.agentId;
1002
+ requestedSessionKey = resolveExplicitAgentSessionKey({
1003
+ cfg,
1004
+ agentId
1005
+ });
1006
+ } else context.logGateway.warn(`voicewake routing ignored unknown agentId="${route.agentId}" trigger="${voiceWakeTrigger}"`);
1007
+ else if ("sessionKey" in route) if (classifySessionKeyShape(route.sessionKey) !== "malformed_agent") {
1008
+ const canonicalRouteSession = loadSessionEntry(route.sessionKey, { clone: false }).canonicalKey;
1009
+ const routedAgentId = resolveAgentIdFromSessionKey(canonicalRouteSession);
1010
+ if (knownAgents.includes(routedAgentId)) {
1011
+ requestedSessionKey = canonicalRouteSession;
1012
+ agentId = routedAgentId;
1013
+ } else context.logGateway.warn(`voicewake routing ignored unknown session agent="${routedAgentId}" sessionKey="${canonicalRouteSession}" trigger="${voiceWakeTrigger}"`);
1014
+ } else context.logGateway.warn(`voicewake routing ignored malformed sessionKey="${route.sessionKey}" trigger="${voiceWakeTrigger}"`);
1015
+ } catch (err) {
1016
+ context.logGateway.warn(`voicewake routing load failed: ${formatForLog(err)}`);
1017
+ }
1018
+ let resolvedSessionId = requestedSessionId;
1019
+ let sessionEntry;
1020
+ let bestEffortDeliver = requestedBestEffortDeliver ?? false;
1021
+ let cfgForAgent;
1022
+ let resolvedSessionKey = requestedSessionKey;
1023
+ let resolvedSessionAgentId;
1024
+ let isNewSession = false;
1025
+ let skipTimestampInjection = false;
1026
+ let shouldPrependStartupContext = false;
1027
+ let skipAgentInitialSessionTouch = false;
1028
+ const resetCommandMatch = message.match(RESET_COMMAND_RE);
1029
+ if (resetCommandMatch && requestedSessionKey) {
1030
+ if (!canResetSession) {
1031
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `missing scope: ${ADMIN_SCOPE}`));
1032
+ return;
1033
+ }
1034
+ const resetReason = normalizeOptionalLowercaseString(resetCommandMatch[1]) === "new" ? "new" : "reset";
1035
+ const resetResult = await runSessionResetFromAgent({
1036
+ key: requestedSessionKey,
1037
+ ...requestedSessionKey === "global" && agentId ? { agentId } : {},
1038
+ reason: resetReason
1039
+ });
1040
+ if (!resetResult.ok) {
1041
+ respond(false, void 0, resetResult.error);
1042
+ return;
1043
+ }
1044
+ requestedSessionKey = resetResult.key;
1045
+ resolvedSessionId = resetResult.sessionId ?? resolvedSessionId;
1046
+ const postResetMessage = normalizeOptionalString(resetCommandMatch[2]) ?? "";
1047
+ if (postResetMessage) message = postResetMessage;
1048
+ else {
1049
+ const selectedGlobalResetAgentId = requestedSessionKey === "global" && agentId ? agentId : void 0;
1050
+ const resetLoadedSession = loadSessionEntry(requestedSessionKey, {
1051
+ clone: false,
1052
+ ...selectedGlobalResetAgentId ? { agentId: selectedGlobalResetAgentId } : {}
1053
+ });
1054
+ const resetCfg = resetLoadedSession?.cfg ?? cfg;
1055
+ const resetSessionEntry = resetLoadedSession?.entry;
1056
+ const resetSessionAgentId = selectedGlobalResetAgentId ?? resolveAgentIdFromSessionKey(requestedSessionKey) ?? resolveDefaultAgentId(resetCfg);
1057
+ const resetSpawnedBy = canonicalizeSpawnedByForAgent(resetCfg, resetSessionAgentId, resetSessionEntry?.spawnedBy);
1058
+ const { runtimeWorkspaceDir, isCanonicalWorkspace } = resolveSessionRuntimeWorkspace({
1059
+ cfg: resetCfg,
1060
+ sessionKey: requestedSessionKey,
1061
+ sessionEntry: resetSessionEntry,
1062
+ spawnedBy: resetSpawnedBy,
1063
+ agentId: resetSessionAgentId
1064
+ });
1065
+ const resetBaseModelRef = resolveSessionModelRef(resetCfg, resetSessionEntry, resetSessionAgentId);
1066
+ const resetEffectiveModelRef = {
1067
+ provider: providerOverride || resetBaseModelRef.provider,
1068
+ model: modelOverride || resetBaseModelRef.model
1069
+ };
1070
+ const bareResetPromptState = await resolveBareSessionResetPromptState({
1071
+ cfg: resetCfg,
1072
+ workspaceDir: runtimeWorkspaceDir,
1073
+ isPrimaryRun: !isSubagentSessionKey(requestedSessionKey) && !isAcpSessionKey(requestedSessionKey),
1074
+ isCanonicalWorkspace,
1075
+ hasBootstrapFileAccess: resolveBareResetBootstrapFileAccess({
1076
+ cfg: resetCfg,
1077
+ agentId: resetSessionAgentId,
1078
+ sessionKey: requestedSessionKey,
1079
+ workspaceDir: runtimeWorkspaceDir,
1080
+ modelProvider: resetEffectiveModelRef.provider,
1081
+ modelId: resetEffectiveModelRef.model
1082
+ })
1083
+ });
1084
+ message = bareResetPromptState.prompt;
1085
+ skipTimestampInjection = true;
1086
+ shouldPrependStartupContext = bareResetPromptState.shouldPrependStartupContext && shouldApplyStartupContext({
1087
+ cfg,
1088
+ action: resetReason
1089
+ });
1090
+ }
1091
+ }
1092
+ if (!skipTimestampInjection && !isRawModelRun && inputProvenance?.kind !== "inter_session") message = injectTimestamp(message, timestampOptsFromConfig(cfg));
1093
+ if (requestedSessionKey) {
1094
+ const sessionLoadOptions = {
1095
+ ...agentId ? { agentId } : {},
1096
+ clone: false
1097
+ };
1098
+ const { cfg, storePath, entry, canonicalKey } = loadSessionEntry(requestedSessionKey, sessionLoadOptions);
1099
+ cfgForAgent = cfg;
1100
+ const sessionMaintenanceConfig = resolveMaintenanceConfigFromInput(cfg.session?.maintenance);
1101
+ const canonicalSessionAgentId = canonicalKey === "global" ? agentId ?? resolveDefaultAgentId(cfg) : resolveAgentIdFromSessionKey(canonicalKey);
1102
+ const now = Date.now();
1103
+ const resetPolicy = resolveSessionResetPolicy({
1104
+ sessionCfg: cfg.session,
1105
+ resetType: resolveSessionResetType({ sessionKey: canonicalKey }),
1106
+ resetOverride: resolveChannelResetConfig({
1107
+ sessionCfg: cfg.session,
1108
+ channel: entry?.lastChannel ?? entry?.channel ?? request.channel
1109
+ })
1110
+ });
1111
+ const lifecycleTimestamps = entry ? resolveSessionLifecycleTimestamps({
1112
+ entry,
1113
+ storePath,
1114
+ agentId: canonicalSessionAgentId
1115
+ }) : void 0;
1116
+ const freshness = entry ? evaluateSessionFreshness({
1117
+ updatedAt: entry.updatedAt,
1118
+ ...lifecycleTimestamps,
1119
+ now,
1120
+ policy: resetPolicy
1121
+ }) : void 0;
1122
+ let failedSessionTranscriptMissing = false;
1123
+ if (entry?.status === "failed" && entry.sessionId?.trim()) try {
1124
+ const sessionPathOpts = resolveSessionFilePathOptions({
1125
+ storePath,
1126
+ agentId: canonicalSessionAgentId
1127
+ });
1128
+ failedSessionTranscriptMissing = !existsSync(resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts));
1129
+ } catch {
1130
+ failedSessionTranscriptMissing = true;
1131
+ }
1132
+ const canReuseSession = Boolean(entry?.sessionId) && (freshness?.fresh ?? false) && !failedSessionTranscriptMissing;
1133
+ const usableRequestedSessionId = requestedSessionId && (!entry?.sessionId || canReuseSession) ? requestedSessionId : void 0;
1134
+ const sessionId = usableRequestedSessionId ? usableRequestedSessionId : (canReuseSession ? entry?.sessionId : void 0) ?? randomUUID();
1135
+ isNewSession = !entry || !canReuseSession && !usableRequestedSessionId || Boolean(usableRequestedSessionId && entry?.sessionId !== usableRequestedSessionId);
1136
+ const rotatedSessionId = Boolean(entry?.sessionId && entry.sessionId !== sessionId);
1137
+ const touchInteraction = request.bootstrapContextRunKind !== "cron" && request.bootstrapContextRunKind !== "heartbeat" && !request.internalEvents?.length;
1138
+ const sessionAgent = canonicalSessionAgentId;
1139
+ const requestDeliveryHint = normalizeDeliveryContext({
1140
+ channel: request.channel?.trim(),
1141
+ to: request.to?.trim(),
1142
+ accountId: request.accountId?.trim(),
1143
+ threadId: request.threadId
1144
+ });
1145
+ const buildSessionPatch = (freshEntry) => {
1146
+ const freshSpawnedBy = canonicalizeSpawnedByForAgent(cfg, sessionAgent, freshEntry?.spawnedBy);
1147
+ const storedGroup = normalizeTrustedGroupMetadata(freshEntry);
1148
+ let inheritedGroup;
1149
+ if (freshSpawnedBy && (!storedGroup.groupId || !storedGroup.groupChannel || !storedGroup.groupSpace)) try {
1150
+ const parentEntry = loadSessionEntry(freshSpawnedBy)?.entry;
1151
+ inheritedGroup = normalizeTrustedGroupMetadata({
1152
+ groupId: parentEntry?.groupId,
1153
+ groupChannel: parentEntry?.groupChannel,
1154
+ groupSpace: parentEntry?.space
1155
+ });
1156
+ } catch {
1157
+ inheritedGroup = void 0;
1158
+ }
1159
+ const trustedGroup = resolveTrustedGroupMetadata({
1160
+ sessionKey: canonicalKey,
1161
+ spawnedBy: freshSpawnedBy,
1162
+ stored: storedGroup,
1163
+ inherited: inheritedGroup
1164
+ });
1165
+ const nextGroup = (trustedGroup.groupId ? resolveTrustedGroupId({
1166
+ groupId: trustedGroup.groupId,
1167
+ sessionKey: canonicalKey,
1168
+ spawnedBy: freshSpawnedBy
1169
+ }) : void 0)?.dropped === true ? {
1170
+ groupId: void 0,
1171
+ groupChannel: void 0,
1172
+ groupSpace: void 0
1173
+ } : (() => {
1174
+ const trustRequestSelectors = Boolean(trustedGroup.groupId) && requestGroupMatchesTrusted({
1175
+ requestGroupId: normalizedSpawned.groupId,
1176
+ trustedGroupId: trustedGroup.groupId
1177
+ });
1178
+ return {
1179
+ groupId: trustedGroup.groupId,
1180
+ groupChannel: trustedGroup.groupChannel ?? (trustRequestSelectors ? normalizedSpawned.groupChannel : void 0),
1181
+ groupSpace: trustedGroup.groupSpace ?? (trustRequestSelectors ? normalizedSpawned.groupSpace : void 0)
1182
+ };
1183
+ })();
1184
+ const deliveryFields = normalizeSessionDeliveryFields(freshEntry);
1185
+ const effectiveDelivery = mergeDeliveryContext(deliveryFields.deliveryContext, requestDeliveryHint);
1186
+ const effectiveDeliveryFields = normalizeSessionDeliveryFields({
1187
+ route: deliveryFields.route,
1188
+ deliveryContext: effectiveDelivery
1189
+ });
1190
+ const labelValue = normalizeOptionalString(request.label) || freshEntry?.label;
1191
+ const channelValue = freshEntry?.channel ?? request.channel?.trim();
1192
+ const pluginOwnerId = freshEntry === void 0 ? normalizeOptionalString(client?.internal?.pluginRuntimeOwnerId) : void 0;
1193
+ const freshSessionRotatedSinceLoad = Boolean(entry?.sessionId && freshEntry?.sessionId && freshEntry.sessionId !== entry.sessionId);
1194
+ const patchSessionId = freshSessionRotatedSinceLoad ? freshEntry?.sessionId : sessionId;
1195
+ const shouldClearRotatedState = rotatedSessionId && !freshSessionRotatedSinceLoad;
1196
+ return {
1197
+ patch: {
1198
+ sessionId: patchSessionId,
1199
+ updatedAt: now,
1200
+ ...isNewSession && !freshSessionRotatedSinceLoad ? { sessionStartedAt: now } : {},
1201
+ ...touchInteraction ? { lastInteractionAt: now } : {},
1202
+ ...effectiveDeliveryFields.route ? { route: effectiveDeliveryFields.route } : {},
1203
+ ...effectiveDeliveryFields.deliveryContext ? { deliveryContext: effectiveDeliveryFields.deliveryContext } : {},
1204
+ ...effectiveDeliveryFields.lastChannel ? { lastChannel: effectiveDeliveryFields.lastChannel } : {},
1205
+ ...effectiveDeliveryFields.lastTo ? { lastTo: effectiveDeliveryFields.lastTo } : {},
1206
+ ...effectiveDeliveryFields.lastAccountId ? { lastAccountId: effectiveDeliveryFields.lastAccountId } : {},
1207
+ ...effectiveDeliveryFields.lastThreadId != null ? { lastThreadId: effectiveDeliveryFields.lastThreadId } : {},
1208
+ ...labelValue ? { label: labelValue } : {},
1209
+ ...freshSpawnedBy ? { spawnedBy: freshSpawnedBy } : {},
1210
+ ...channelValue ? { channel: channelValue } : {},
1211
+ groupId: nextGroup.groupId,
1212
+ groupChannel: nextGroup.groupChannel,
1213
+ space: nextGroup.groupSpace,
1214
+ ...pluginOwnerId ? { pluginOwnerId } : {},
1215
+ ...shouldClearRotatedState ? {
1216
+ status: void 0,
1217
+ startedAt: void 0,
1218
+ endedAt: void 0,
1219
+ runtimeMs: void 0,
1220
+ abortedLastRun: void 0,
1221
+ sessionFile: void 0
1222
+ } : {}
1223
+ },
1224
+ spawnedBy: freshSpawnedBy,
1225
+ groupId: nextGroup.groupId,
1226
+ groupChannel: nextGroup.groupChannel,
1227
+ groupSpace: nextGroup.groupSpace,
1228
+ freshSessionRotatedSinceLoad
1229
+ };
1230
+ };
1231
+ let patchBuild = buildSessionPatch(entry);
1232
+ sessionEntry = mergeSessionEntry(entry, patchBuild.patch);
1233
+ resolvedSessionId = sessionEntry?.sessionId ?? sessionId;
1234
+ const canonicalSessionKey = canonicalKey;
1235
+ resolvedSessionKey = canonicalSessionKey;
1236
+ const sessionAgentId = canonicalSessionAgentId;
1237
+ resolvedSessionAgentId = sessionAgentId;
1238
+ const mainSessionKey = resolveAgentMainSessionKey({
1239
+ cfg,
1240
+ agentId: sessionAgentId
1241
+ });
1242
+ const recoveredSessionStartedAt = !isNewSession && entry !== void 0 && entry.sessionStartedAt === void 0 ? resolveSessionLifecycleTimestamps({
1243
+ entry,
1244
+ storePath,
1245
+ agentId: sessionAgentId
1246
+ }).sessionStartedAt : void 0;
1247
+ if (storePath && !suppressVisibleSessionEffects) {
1248
+ const requestedStoreKey = requestedSessionKey;
1249
+ let deniedBySendPolicy = false;
1250
+ let singleEntryPersistence;
1251
+ const persisted = await updateSessionStore(storePath, (store) => {
1252
+ const storeKeysBeforeMigration = new Set(Object.keys(store));
1253
+ const preMigrationTarget = resolveGatewaySessionStoreTarget({
1254
+ cfg,
1255
+ key: requestedStoreKey,
1256
+ store,
1257
+ ...sessionAgentId ? { agentId: sessionAgentId } : {}
1258
+ });
1259
+ const hadLegacyStoreKey = preMigrationTarget.storeKeys.some((storeKey) => storeKey !== preMigrationTarget.canonicalKey && Object.prototype.hasOwnProperty.call(store, storeKey));
1260
+ const { target, primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1261
+ cfg,
1262
+ key: requestedStoreKey,
1263
+ store
1264
+ });
1265
+ const prunedStoreKey = [...storeKeysBeforeMigration].some((storeKey) => !Object.prototype.hasOwnProperty.call(store, storeKey));
1266
+ const freshEntry = store[primaryKey];
1267
+ patchBuild = buildSessionPatch(freshEntry);
1268
+ const merged = mergeSessionEntry(freshEntry, recoveredSessionStartedAt !== void 0 && freshEntry?.sessionStartedAt === void 0 && freshEntry?.sessionId === entry?.sessionId ? {
1269
+ ...patchBuild.patch,
1270
+ sessionStartedAt: recoveredSessionStartedAt
1271
+ } : patchBuild.patch);
1272
+ if ((request.deliver === true ? resolveSendPolicy({
1273
+ cfg,
1274
+ entry: merged,
1275
+ sessionKey: canonicalKey,
1276
+ channel: merged?.channel,
1277
+ chatType: merged?.chatType
1278
+ }) : "allow") === "deny") {
1279
+ deniedBySendPolicy = true;
1280
+ return merged;
1281
+ }
1282
+ store[primaryKey] = merged;
1283
+ const canonicalKeyChanged = target.canonicalKey !== preMigrationTarget.canonicalKey;
1284
+ singleEntryPersistence = freshEntry && !hadLegacyStoreKey && !canonicalKeyChanged && !prunedStoreKey ? {
1285
+ sessionKey: primaryKey,
1286
+ entry: merged
1287
+ } : void 0;
1288
+ return merged;
1289
+ }, {
1290
+ takeCacheOwnership: true,
1291
+ maintenanceConfig: sessionMaintenanceConfig,
1292
+ resolveSingleEntryPersistence: () => singleEntryPersistence
1293
+ });
1294
+ if (persisted) {
1295
+ sessionEntry = persisted;
1296
+ resolvedSessionId = sessionEntry.sessionId;
1297
+ }
1298
+ skipAgentInitialSessionTouch = touchInteraction;
1299
+ if (deniedBySendPolicy) {
1300
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "send blocked by session policy"));
1301
+ return;
1302
+ }
1303
+ }
1304
+ spawnedByValue = patchBuild.spawnedBy;
1305
+ resolvedGroupId = patchBuild.groupId;
1306
+ resolvedGroupChannel = patchBuild.groupChannel;
1307
+ resolvedGroupSpace = patchBuild.groupSpace;
1308
+ if (!suppressVisibleSessionEffects && isNewSession && resolvedSessionId && storePath && !patchBuild.freshSessionRotatedSinceLoad) {
1309
+ const previousSessionId = rotatedSessionId ? entry?.sessionId : void 0;
1310
+ emitAgentSendSessionLifecycleTransition({
1311
+ cfg,
1312
+ sessionKey: canonicalSessionKey,
1313
+ sessionId: resolvedSessionId,
1314
+ storePath,
1315
+ sessionFile: sessionEntry?.sessionFile,
1316
+ agentId: sessionAgentId,
1317
+ previousSessionId,
1318
+ previousSessionFile: previousSessionId ? entry?.sessionFile : void 0,
1319
+ previousEndReason: previousSessionId ? freshness?.staleReason ?? (usableRequestedSessionId && entry?.sessionId !== usableRequestedSessionId ? "new" : "unknown") : void 0
1320
+ });
1321
+ }
1322
+ if (request.deliver === true) {
1323
+ if (resolveSendPolicy({
1324
+ cfg,
1325
+ entry: sessionEntry,
1326
+ sessionKey: canonicalKey,
1327
+ channel: sessionEntry?.channel,
1328
+ chatType: sessionEntry?.chatType
1329
+ }) === "deny") {
1330
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "send blocked by session policy"));
1331
+ return;
1332
+ }
1333
+ }
1334
+ if (!suppressVisibleSessionEffects && (canonicalSessionKey === mainSessionKey || canonicalSessionKey === "global")) {
1335
+ const selectedGlobalAgentId = canonicalSessionKey === "global" ? sessionAgentId : void 0;
1336
+ context.addChatRun(idem, {
1337
+ sessionKey: canonicalSessionKey,
1338
+ ...selectedGlobalAgentId ? { agentId: selectedGlobalAgentId } : {},
1339
+ clientRunId: idem
1340
+ });
1341
+ if (requestedBestEffortDeliver === void 0) bestEffortDeliver = true;
1342
+ }
1343
+ registerAgentRunContext(idem, suppressVisibleSessionEffects ? { isControlUiVisible: false } : { sessionKey: canonicalSessionKey });
1344
+ }
1345
+ const activeSessionAgentId = resolvedSessionKey === "global" && resolvedSessionAgentId ? resolvedSessionAgentId : resolvedSessionKey ? resolveAgentIdFromSessionKey(resolvedSessionKey) : agentId ?? resolveDefaultAgentId(cfgForAgent ?? cfg);
1346
+ const connId = typeof client?.connId === "string" ? client.connId : void 0;
1347
+ const wantsToolEvents = hasGatewayClientCap(client?.connect?.caps, GATEWAY_CLIENT_CAPS.TOOL_EVENTS);
1348
+ if (connId && wantsToolEvents) {
1349
+ context.registerToolEventRecipient(runId, connId);
1350
+ for (const [activeRunId, active] of context.chatAbortControllers) {
1351
+ const sameSession = active.sessionKey === resolvedSessionKey;
1352
+ const sameSelectedGlobalAgent = resolvedSessionKey === "global" ? active.agentId === activeSessionAgentId : true;
1353
+ if (activeRunId !== runId && sameSession && sameSelectedGlobalAgent) context.registerToolEventRecipient(activeRunId, connId);
1354
+ }
1355
+ }
1356
+ const wantsDelivery = request.deliver === true;
1357
+ const explicitTo = normalizeOptionalString(request.replyTo) ?? normalizeOptionalString(request.to);
1358
+ const explicitThreadId = normalizeOptionalString(request.threadId);
1359
+ const turnSourceChannel = normalizeOptionalString(request.channel);
1360
+ const turnSourceTo = normalizeOptionalString(request.to);
1361
+ const turnSourceAccountId = normalizeOptionalString(request.accountId);
1362
+ const deliveryPlan = await resolveAgentDeliveryPlanWithSessionRoute({
1363
+ cfg: cfgForAgent ?? cfg,
1364
+ agentId: activeSessionAgentId,
1365
+ currentSessionKey: resolvedSessionKey,
1366
+ sessionEntry,
1367
+ requestedChannel: request.replyChannel ?? request.channel,
1368
+ explicitTo,
1369
+ explicitThreadId,
1370
+ accountId: request.replyAccountId ?? request.accountId,
1371
+ wantsDelivery,
1372
+ turnSourceChannel,
1373
+ turnSourceTo,
1374
+ turnSourceAccountId,
1375
+ turnSourceThreadId: explicitThreadId
1376
+ });
1377
+ let resolvedChannel = deliveryPlan.resolvedChannel;
1378
+ let deliveryTargetMode = deliveryPlan.deliveryTargetMode;
1379
+ let resolvedAccountId = deliveryPlan.resolvedAccountId;
1380
+ let resolvedTo = deliveryPlan.resolvedTo;
1381
+ let effectivePlan = deliveryPlan;
1382
+ let deliveryDowngradeReason = null;
1383
+ let deliveryTargetResolutionError;
1384
+ if (wantsDelivery && resolvedChannel === "webchat") {
1385
+ const cfgResolved = cfgForAgent ?? cfg;
1386
+ try {
1387
+ resolvedChannel = (await resolveMessageChannelSelection({ cfg: cfgResolved })).channel;
1388
+ deliveryTargetMode = deliveryTargetMode ?? "implicit";
1389
+ effectivePlan = {
1390
+ ...deliveryPlan,
1391
+ resolvedChannel,
1392
+ deliveryTargetMode,
1393
+ resolvedAccountId
1394
+ };
1395
+ } catch (err) {
1396
+ if (!shouldDowngradeDeliveryToSessionOnly({
1397
+ wantsDelivery,
1398
+ bestEffortDeliver,
1399
+ resolvedChannel
1400
+ })) {
1401
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, formatForLog(err)));
1402
+ return;
1403
+ }
1404
+ deliveryDowngradeReason = String(err);
1405
+ }
1406
+ }
1407
+ if (!resolvedTo && isDeliverableMessageChannel(resolvedChannel)) {
1408
+ const fallback = resolveAgentOutboundTarget({
1409
+ cfg: cfgForAgent ?? cfg,
1410
+ plan: effectivePlan,
1411
+ targetMode: deliveryTargetMode ?? "implicit",
1412
+ validateExplicitTarget: false
1413
+ });
1414
+ if (fallback.resolvedTarget?.ok) resolvedTo = fallback.resolvedTo;
1415
+ else if (fallback.resolvedTarget && !fallback.resolvedTarget.ok) deliveryTargetResolutionError = fallback.resolvedTarget.error;
1416
+ }
1417
+ if (wantsDelivery && isDeliverableMessageChannel(resolvedChannel) && !resolvedTo) {
1418
+ if (!bestEffortDeliver) {
1419
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, deliveryTargetResolutionError ? String(deliveryTargetResolutionError) : `delivery target is required for ${resolvedChannel}: pass --to/--reply-to or configure a default target`));
1420
+ return;
1421
+ }
1422
+ context.logGateway.info(deliveryTargetResolutionError ? `agent delivery target missing (bestEffortDeliver): ${String(deliveryTargetResolutionError)}` : "agent delivery target missing (bestEffortDeliver): no deliverable target");
1423
+ }
1424
+ if (wantsDelivery && resolvedChannel === "webchat") {
1425
+ if (!shouldDowngradeDeliveryToSessionOnly({
1426
+ wantsDelivery,
1427
+ bestEffortDeliver,
1428
+ resolvedChannel
1429
+ })) {
1430
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "delivery channel is required: pass --channel/--reply-channel or use a main session with a previous channel"));
1431
+ return;
1432
+ }
1433
+ context.logGateway.info(deliveryDowngradeReason ? `agent delivery downgraded to session-only (bestEffortDeliver): ${deliveryDowngradeReason}` : "agent delivery downgraded to session-only (bestEffortDeliver): no deliverable channel");
1434
+ }
1435
+ const normalizedTurnSource = normalizeMessageChannel(turnSourceChannel);
1436
+ const originMessageChannel = (normalizedTurnSource && isKnownGatewayChannel(normalizedTurnSource) ? normalizedTurnSource : void 0) ?? (client?.connect && isWebchatConnect(client.connect) ? "webchat" : resolvedChannel);
1437
+ const deliver = request.deliver === true && resolvedChannel !== "webchat";
1438
+ const preRegistrationAbort = readGatewayDedupeEntry({
1439
+ dedupe: context.dedupe,
1440
+ keys: agentDedupeKeys
1441
+ });
1442
+ if (isPreRegistrationAbortedAgentDedupeEntryForSession({
1443
+ entry: preRegistrationAbort,
1444
+ runId,
1445
+ sessionKey: resolvedSessionKey,
1446
+ alternateSessionKeys: [preAcceptedReservedSessionKey, requestedSessionKey]
1447
+ })) {
1448
+ agentRunAccepted = true;
1449
+ respond(true, preRegistrationAbort?.payload, void 0, {
1450
+ cached: true,
1451
+ runId
1452
+ });
1453
+ return;
1454
+ }
1455
+ const now = Date.now();
1456
+ const timeoutMs = resolveAgentTimeoutMs({
1457
+ cfg: cfgForAgent ?? cfg,
1458
+ overrideSeconds: typeof request.timeout === "number" ? request.timeout : void 0
1459
+ });
1460
+ const activeModelProvider = providerOverride ?? resolveSessionModelRef(cfgForAgent ?? cfg, sessionEntry, activeSessionAgentId).provider;
1461
+ const activeAuthProvider = resolveProviderIdForAuth(activeModelProvider, { config: cfgForAgent ?? cfg });
1462
+ const activeRunAbort = registerChatAbortController({
1463
+ chatAbortControllers: context.chatAbortControllers,
1464
+ runId,
1465
+ sessionId: resolvedSessionId ?? runId,
1466
+ sessionKey: resolvedSessionKey,
1467
+ agentId: resolvedSessionKey === "global" ? activeSessionAgentId : void 0,
1468
+ timeoutMs,
1469
+ now,
1470
+ expiresAtMs: resolveAgentRunExpiresAtMs({
1471
+ now,
1472
+ timeoutMs
1473
+ }),
1474
+ ownerConnId,
1475
+ ownerDeviceId,
1476
+ providerId: activeModelProvider,
1477
+ authProviderId: activeAuthProvider,
1478
+ kind: "agent"
1479
+ });
1480
+ const existingRunAbort = context.chatAbortControllers.get(runId);
1481
+ if (!activeRunAbort.registered && existingRunAbort) {
1482
+ agentRunAccepted = existingRunAbort.kind === "agent";
1483
+ respond(true, {
1484
+ runId,
1485
+ status: "in_flight"
1486
+ }, void 0, {
1487
+ cached: true,
1488
+ runId
1489
+ });
1490
+ return;
1491
+ }
1492
+ const accepted = {
1493
+ runId,
1494
+ sessionKey: resolvedSessionKey,
1495
+ ...resolvedSessionKey === "global" ? { agentId: activeSessionAgentId } : {},
1496
+ status: "accepted",
1497
+ acceptedAt: Date.now()
1498
+ };
1499
+ const acceptedDedupePayload = {
1500
+ ...accepted,
1501
+ dedupeKeys: agentDedupeKeys,
1502
+ ownerConnId,
1503
+ ownerDeviceId
1504
+ };
1505
+ agentRunAccepted = true;
1506
+ setGatewayDedupeEntries({
1507
+ dedupe: context.dedupe,
1508
+ keys: agentDedupeKeys,
1509
+ entry: {
1510
+ ts: Date.now(),
1511
+ ok: true,
1512
+ payload: acceptedDedupePayload
1513
+ }
1514
+ });
1515
+ respond(true, accepted, void 0, { runId });
1516
+ (async () => {
1517
+ await yieldAfterAgentAcceptedAck();
1518
+ let dispatched = false;
1519
+ try {
1520
+ if (activeRunAbort.controller.signal.aborted) {
1521
+ const stopReason = resolveAbortedAgentStopReason(activeRunAbort.entry);
1522
+ setAbortedAgentDedupeEntries({
1523
+ dedupe: context.dedupe,
1524
+ keys: agentDedupeKeys,
1525
+ agentId: resolvedSessionKey === "global" ? activeSessionAgentId : void 0,
1526
+ runId,
1527
+ stopReason
1528
+ });
1529
+ respond(true, {
1530
+ runId,
1531
+ status: "timeout",
1532
+ summary: "aborted",
1533
+ stopReason,
1534
+ timeoutPhase: "queue",
1535
+ providerStarted: false
1536
+ }, void 0, { runId });
1537
+ return;
1538
+ }
1539
+ if (resolvedSessionKey) await reactivateCompletedSubagentSession({
1540
+ sessionKey: resolvedSessionKey,
1541
+ runId
1542
+ });
1543
+ if (requestedSessionKey && resolvedSessionKey && isNewSession) emitSessionsChanged(context, {
1544
+ sessionKey: resolvedSessionKey,
1545
+ ...resolvedSessionKey === "global" ? { agentId: activeSessionAgentId } : {},
1546
+ reason: "create"
1547
+ });
1548
+ if (resolvedSessionKey) emitSessionsChanged(context, {
1549
+ sessionKey: resolvedSessionKey,
1550
+ ...resolvedSessionKey === "global" ? { agentId: activeSessionAgentId } : {},
1551
+ reason: "send"
1552
+ });
1553
+ if (shouldPrependStartupContext && resolvedSessionKey) {
1554
+ const startupCfg = cfgForAgent ?? cfg;
1555
+ if (!shouldSkipStartupContextForSpawnedSandbox({
1556
+ cfg: startupCfg,
1557
+ sessionKey: resolvedSessionKey,
1558
+ spawnedBy: spawnedByValue,
1559
+ agentId: activeSessionAgentId
1560
+ })) {
1561
+ const { runtimeWorkspaceDir } = resolveSessionRuntimeWorkspace({
1562
+ cfg: startupCfg,
1563
+ sessionKey: resolvedSessionKey,
1564
+ sessionEntry,
1565
+ spawnedBy: spawnedByValue,
1566
+ agentId: activeSessionAgentId
1567
+ });
1568
+ const startupContextPrelude = await buildSessionStartupContextPrelude({
1569
+ workspaceDir: runtimeWorkspaceDir,
1570
+ cfg: startupCfg
1571
+ });
1572
+ if (startupContextPrelude) message = `${startupContextPrelude}\n\n${message}`;
1573
+ }
1574
+ }
1575
+ if (!isRawModelRun) message = annotateInterSessionPromptText(message, inputProvenance);
1576
+ const resolvedThreadId = explicitThreadId ?? deliveryPlan.resolvedThreadId;
1577
+ const ingressAgentId = resolvedSessionKey === "global" ? activeSessionAgentId : agentId && (!resolvedSessionKey || resolveAgentIdFromSessionKey(resolvedSessionKey) === agentId) ? agentId : void 0;
1578
+ let execApprovalFollowupRuntimeHandoff = canUseInternalRuntimeHandoff && execApprovalFollowupApprovalId ? consumeExecApprovalFollowupRuntimeHandoff({
1579
+ handoffId: request.internalRuntimeHandoffId,
1580
+ approvalId: execApprovalFollowupApprovalId,
1581
+ idempotencyKey: idem,
1582
+ sessionKey: resolvedSessionKey
1583
+ }) : void 0;
1584
+ if (!execApprovalFollowupRuntimeHandoff && canUseInternalRuntimeHandoff && execApprovalFollowupApprovalId && requestedSessionKeyRaw && requestedSessionKeyRaw !== resolvedSessionKey) execApprovalFollowupRuntimeHandoff = consumeExecApprovalFollowupRuntimeHandoff({
1585
+ handoffId: request.internalRuntimeHandoffId,
1586
+ approvalId: execApprovalFollowupApprovalId,
1587
+ idempotencyKey: idem,
1588
+ sessionKey: requestedSessionKeyRaw
1589
+ });
1590
+ const execApprovalFollowupElevatedDefaults = execApprovalFollowupRuntimeHandoff?.bashElevated;
1591
+ dispatchAgentRunFromGateway({
1592
+ ingressOpts: {
1593
+ message,
1594
+ images,
1595
+ imageOrder,
1596
+ agentId: ingressAgentId,
1597
+ provider: providerOverride,
1598
+ model: modelOverride,
1599
+ to: resolvedTo,
1600
+ sessionId: resolvedSessionId,
1601
+ sessionKey: resolvedSessionKey,
1602
+ thinking: request.thinking,
1603
+ deliver,
1604
+ deliveryTargetMode,
1605
+ channel: resolvedChannel,
1606
+ accountId: resolvedAccountId,
1607
+ threadId: resolvedThreadId,
1608
+ runContext: {
1609
+ messageChannel: originMessageChannel,
1610
+ accountId: resolvedAccountId,
1611
+ groupId: resolvedGroupId,
1612
+ groupChannel: resolvedGroupChannel,
1613
+ groupSpace: resolvedGroupSpace,
1614
+ currentThreadTs: resolvedThreadId != null ? String(resolvedThreadId) : void 0
1615
+ },
1616
+ ...execApprovalFollowupElevatedDefaults ? { bashElevated: execApprovalFollowupElevatedDefaults } : {},
1617
+ groupId: resolvedGroupId,
1618
+ groupChannel: resolvedGroupChannel,
1619
+ groupSpace: resolvedGroupSpace,
1620
+ spawnedBy: spawnedByValue,
1621
+ timeout: request.timeout?.toString(),
1622
+ bestEffortDeliver,
1623
+ messageChannel: originMessageChannel,
1624
+ runId,
1625
+ lane: request.lane,
1626
+ modelRun: request.modelRun === true,
1627
+ promptMode: request.promptMode,
1628
+ extraSystemPrompt: request.extraSystemPrompt,
1629
+ bootstrapContextMode: request.bootstrapContextMode,
1630
+ bootstrapContextRunKind: request.bootstrapContextRunKind,
1631
+ acpTurnSource: request.acpTurnSource,
1632
+ internalEvents: request.internalEvents,
1633
+ inputProvenance,
1634
+ sessionEffects,
1635
+ skipInitialSessionTouch: skipAgentInitialSessionTouch,
1636
+ preserveUserFacingSessionModelState,
1637
+ sourceReplyDeliveryMode: request.sourceReplyDeliveryMode,
1638
+ disableMessageTool: request.disableMessageTool,
1639
+ suppressPromptPersistence: requestedPromptPersistenceSuppression || shouldSuppressAgentPromptPersistence({
1640
+ inputProvenance,
1641
+ internalEvents: request.internalEvents
1642
+ }),
1643
+ cleanupBundleMcpOnRunEnd: request.cleanupBundleMcpOnRunEnd,
1644
+ abortSignal: activeRunAbort.controller.signal,
1645
+ onActiveModelSelected: ({ provider }) => {
1646
+ updateChatRunProvider(context.chatAbortControllers, {
1647
+ runId,
1648
+ providerId: provider,
1649
+ authProviderId: resolveProviderIdForAuth(provider, { config: cfgForAgent ?? cfg })
1650
+ });
1651
+ },
1652
+ workspaceDir: resolveIngressWorkspaceOverrideForSpawnedRun({
1653
+ spawnedBy: spawnedByValue,
1654
+ workspaceDir: sessionEntry?.spawnedWorkspaceDir
1655
+ }),
1656
+ cwd: resolveSessionRuntimeCwd({
1657
+ spawnedBy: spawnedByValue,
1658
+ sessionEntry
1659
+ }),
1660
+ allowModelOverride
1661
+ },
1662
+ runId,
1663
+ dedupeKeys: agentDedupeKeys,
1664
+ abortController: activeRunAbort.controller,
1665
+ respond,
1666
+ context
1667
+ });
1668
+ dispatched = true;
1669
+ } catch (err) {
1670
+ const error = errorShape(ErrorCodes.UNAVAILABLE, formatForLog(err));
1671
+ const payload = {
1672
+ runId,
1673
+ status: "error",
1674
+ summary: formatForLog(err)
1675
+ };
1676
+ setGatewayDedupeEntries({
1677
+ dedupe: context.dedupe,
1678
+ keys: agentDedupeKeys,
1679
+ entry: {
1680
+ ts: Date.now(),
1681
+ ok: false,
1682
+ payload,
1683
+ error
1684
+ }
1685
+ });
1686
+ respond(false, payload, error, {
1687
+ runId,
1688
+ error: formatForLog(err)
1689
+ });
1690
+ } finally {
1691
+ if (!dispatched) activeRunAbort.cleanup();
1692
+ }
1693
+ })();
1694
+ } finally {
1695
+ clearUnacceptedExecApprovalFollowupDedupe();
1696
+ }
1697
+ },
1698
+ "agent.identity.get": ({ params, respond, context }) => {
1699
+ if (!validateAgentIdentityParams(params)) {
1700
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent.identity.get params: ${formatValidationErrors(validateAgentIdentityParams.errors)}`));
1701
+ return;
1702
+ }
1703
+ const p = params;
1704
+ const agentIdRaw = normalizeOptionalString(p.agentId) ?? "";
1705
+ const sessionKeyRaw = normalizeOptionalString(p.sessionKey) ?? "";
1706
+ let agentId = agentIdRaw ? normalizeAgentId(agentIdRaw) : void 0;
1707
+ if (sessionKeyRaw) {
1708
+ if (classifySessionKeyShape(sessionKeyRaw) === "malformed_agent") {
1709
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent.identity.get params: malformed session key "${sessionKeyRaw}"`));
1710
+ return;
1711
+ }
1712
+ const resolved = resolveAgentIdFromSessionKey(sessionKeyRaw);
1713
+ if (agentId && resolved !== agentId) {
1714
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent.identity.get params: agent "${agentIdRaw}" does not match session key agent "${resolved}"`));
1715
+ return;
1716
+ }
1717
+ agentId = resolved;
1718
+ }
1719
+ const cfg = context.getRuntimeConfig();
1720
+ const identity = resolveAssistantIdentity({
1721
+ cfg,
1722
+ agentId
1723
+ });
1724
+ const avatarValue = resolveAssistantAvatarUrl({
1725
+ avatar: identity.avatar,
1726
+ agentId: identity.agentId,
1727
+ basePath: cfg.gateway?.controlUi?.basePath
1728
+ }) ?? identity.avatar;
1729
+ const avatarResolution = resolveAgentAvatar(cfg, identity.agentId, { includeUiOverride: true });
1730
+ respond(true, {
1731
+ ...identity,
1732
+ avatar: avatarValue,
1733
+ avatarSource: resolvePublicAgentAvatarSource(avatarResolution),
1734
+ avatarStatus: avatarResolution.kind,
1735
+ avatarReason: avatarResolution.kind === "none" ? avatarResolution.reason : void 0
1736
+ }, void 0);
1737
+ },
1738
+ "agent.wait": async ({ params, respond, context }) => {
1739
+ if (!validateAgentWaitParams(params)) {
1740
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid agent.wait params: ${formatValidationErrors(validateAgentWaitParams.errors)}`));
1741
+ return;
1742
+ }
1743
+ const p = params;
1744
+ const runId = (p.runId ?? "").trim();
1745
+ const timeoutMs = typeof p.timeoutMs === "number" && Number.isFinite(p.timeoutMs) ? Math.max(0, Math.floor(p.timeoutMs)) : 3e4;
1746
+ const activeChatEntry = context.chatAbortControllers.get(runId);
1747
+ const hasActiveChatRun = activeChatEntry !== void 0 && activeChatEntry.kind !== "agent";
1748
+ const cachedGatewaySnapshot = readTerminalSnapshotFromGatewayDedupe({
1749
+ dedupe: context.dedupe,
1750
+ runId,
1751
+ ignoreAgentTerminalSnapshot: hasActiveChatRun
1752
+ });
1753
+ if (cachedGatewaySnapshot) {
1754
+ respond(true, {
1755
+ runId,
1756
+ status: cachedGatewaySnapshot.status,
1757
+ startedAt: cachedGatewaySnapshot.startedAt,
1758
+ endedAt: cachedGatewaySnapshot.endedAt,
1759
+ error: cachedGatewaySnapshot.error,
1760
+ stopReason: cachedGatewaySnapshot.stopReason,
1761
+ livenessState: cachedGatewaySnapshot.livenessState,
1762
+ yielded: cachedGatewaySnapshot.yielded,
1763
+ pendingError: cachedGatewaySnapshot.pendingError,
1764
+ timeoutPhase: cachedGatewaySnapshot.timeoutPhase,
1765
+ providerStarted: cachedGatewaySnapshot.providerStarted
1766
+ });
1767
+ return;
1768
+ }
1769
+ const lifecycleAbortController = new AbortController();
1770
+ const dedupeAbortController = new AbortController();
1771
+ const lifecyclePromise = waitForAgentJob({
1772
+ runId,
1773
+ timeoutMs,
1774
+ signal: lifecycleAbortController.signal,
1775
+ ignoreCachedSnapshot: hasActiveChatRun
1776
+ });
1777
+ const dedupePromise = waitForTerminalGatewayDedupe({
1778
+ dedupe: context.dedupe,
1779
+ runId,
1780
+ timeoutMs,
1781
+ signal: dedupeAbortController.signal,
1782
+ ignoreAgentTerminalSnapshot: hasActiveChatRun
1783
+ });
1784
+ const first = await Promise.race([lifecyclePromise.then((snapshot) => ({
1785
+ source: "lifecycle",
1786
+ snapshot
1787
+ })), dedupePromise.then((snapshot) => ({
1788
+ source: "dedupe",
1789
+ snapshot
1790
+ }))]);
1791
+ let snapshot = first.snapshot;
1792
+ if (snapshot) if (first.source === "lifecycle") dedupeAbortController.abort();
1793
+ else lifecycleAbortController.abort();
1794
+ else {
1795
+ snapshot = first.source === "lifecycle" ? await dedupePromise : await lifecyclePromise;
1796
+ lifecycleAbortController.abort();
1797
+ dedupeAbortController.abort();
1798
+ }
1799
+ if (!snapshot) {
1800
+ const activeRunRegistered = activeChatEntry !== void 0;
1801
+ respond(true, {
1802
+ runId,
1803
+ status: "timeout",
1804
+ timeoutPhase: activeRunRegistered ? "gateway_draining" : "queue",
1805
+ ...activeRunRegistered ? {} : { providerStarted: false }
1806
+ });
1807
+ return;
1808
+ }
1809
+ respond(true, {
1810
+ runId,
1811
+ status: snapshot.status,
1812
+ startedAt: snapshot.startedAt,
1813
+ endedAt: snapshot.endedAt,
1814
+ error: snapshot.error,
1815
+ stopReason: snapshot.stopReason,
1816
+ livenessState: snapshot.livenessState,
1817
+ yielded: snapshot.yielded,
1818
+ pendingError: snapshot.pendingError,
1819
+ timeoutPhase: snapshot.timeoutPhase,
1820
+ providerStarted: snapshot.providerStarted
1821
+ });
1822
+ }
1823
+ };
1824
+ //#endregion
1825
+ export { agentHandlers };