fengming 0.3.7 → 0.3.9

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 (1264) hide show
  1. package/CHANGELOG.md +8 -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/bundled-channel-config-schema-DpdKMATU.d.ts +3168 -0
  61. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  62. package/dist/capability-cli-CiVGX7ut.js +1809 -0
  63. package/dist/channel-BIVwHq7P.js +2309 -0
  64. package/dist/channel-CiA2FVdL.d.ts +427 -0
  65. package/dist/channel-core-Cj9JTqeu.js +5 -0
  66. package/dist/channel-core-DjVpcH1C.d.ts +6 -0
  67. package/dist/channel-entry-contract-Bs_54m1D.d.ts +114 -0
  68. package/dist/channel-inbound-CdUdeQRa.js +121 -0
  69. package/dist/channel-inbound-iGiqx6CS.d.ts +97 -0
  70. package/dist/channel-message-C3QPaDUk.js +12 -0
  71. package/dist/channel-message-CXDjxb2U.d.ts +9 -0
  72. package/dist/channel-outbound-ofvvmMSK.d.ts +325 -0
  73. package/dist/channel-pairing-DKscOV1K.d.ts +58 -0
  74. package/dist/channel.runtime-VW6PW_ez.js +697 -0
  75. package/dist/channel.runtime.js +1 -1
  76. package/dist/chat-CFkQepUQ.js +3 -0
  77. package/dist/chat-Czh_tXM0.js +2940 -0
  78. package/dist/chrome-B2cq8YyH.js +1517 -0
  79. package/dist/cli/run-main.js +5 -5
  80. package/dist/cli-compaction-Dxv4nt7R.js +363 -0
  81. package/dist/cli-runner-CimXSTVs.js +2 -0
  82. package/dist/cli-runner-orCzE1Sr.js +597 -0
  83. package/dist/cli-runner.runtime-CsW0dXJW.js +3 -0
  84. package/dist/cli-runner.runtime-DgPrc1do.js +4 -0
  85. package/dist/cli-runner.runtime.js +1 -1
  86. package/dist/cli-startup-metadata.json +10 -12
  87. package/dist/command-registry-C5ooX6PF.js +4 -0
  88. package/dist/command-registry-DMB-HKIk.js +9 -0
  89. package/dist/command-registry-core-B2w_XWvn.js +114 -0
  90. package/dist/command-status.runtime-Bdy3Dkar.js +90 -0
  91. package/dist/command-status.runtime.js +1 -1
  92. package/dist/commands-compact.runtime-Bk2jTQo6.js +10 -0
  93. package/dist/commands-compact.runtime.js +1 -1
  94. package/dist/commands-handlers.runtime-Csw1og0U.js +6327 -0
  95. package/dist/commands-handlers.runtime.js +1 -1
  96. package/dist/commands-mRqmLIVz.d.ts +117 -0
  97. package/dist/commands-status-Dgrj_ubK.js +3 -0
  98. package/dist/commands-status-s32HJOpD.js +16 -0
  99. package/dist/commands-status.runtime-Dgrj_ubK.js +3 -0
  100. package/dist/commands-status.runtime.js +1 -1
  101. package/dist/commands-subagents-control.runtime-C_hnOO9l.js +2 -0
  102. package/dist/commands-subagents-control.runtime.js +1 -1
  103. package/dist/commands-system-prompt-CQV742Cc.js +2 -0
  104. package/dist/commands-system-prompt-DTfsKwK1.js +161 -0
  105. package/dist/commands-types-MXHhrssO.d.ts +132 -0
  106. package/dist/commands.runtime-akiVK67l.js +175 -0
  107. package/dist/commands.runtime.js +1 -1
  108. package/dist/commitments/runtime.js +1 -1
  109. package/dist/compact-U6ZhvPtD.js +1165 -0
  110. package/dist/compact.runtime-36E5vKsC.js +12 -0
  111. package/dist/compact.runtime.js +1 -1
  112. package/dist/completion-cli-Bf4mEw2W.js +393 -0
  113. package/dist/config-BJJhHN9E.js +374 -0
  114. package/dist/config-mutations-swLu-j_p.js +161 -0
  115. package/dist/config-schema-Tjner6bM.d.ts +20 -0
  116. package/dist/context-engine-host-compat-6fkn_daV.js +280 -0
  117. package/dist/context-engine-host-compat-DtAZC1bS.js +2 -0
  118. package/dist/context-engine-lifecycle-R__Idxi1.js +627 -0
  119. package/dist/control-auth-DnkI94_D.js +114 -0
  120. package/dist/control-service-BBsamNjq.js +40 -0
  121. package/dist/control-service-BGpHj7RL.js +3 -0
  122. package/dist/control-ui/assets/activity-B2W-IeAT.js +124 -0
  123. package/dist/control-ui/assets/agents-mRUyNVCz.js +1030 -0
  124. package/dist/control-ui/assets/channels-8QHOqBnt.js +120 -0
  125. package/dist/control-ui/assets/cron-H3unP_mO.js +1016 -0
  126. package/dist/control-ui/assets/debug-CxLsQ9vH.js +97 -0
  127. package/dist/control-ui/assets/index-jtIYT0Eh.js +7214 -0
  128. package/dist/control-ui/assets/instances-B1JQeCRb.js +57 -0
  129. package/dist/control-ui/assets/nodes-RGOmq_1l.js +444 -0
  130. package/dist/control-ui/assets/sessions-C2O-Jgpg.js +425 -0
  131. package/dist/control-ui/assets/skills-jyJOYA4I.js +362 -0
  132. package/dist/control-ui/assets/workboard-uM_kK8cQ.js +402 -0
  133. package/dist/control-ui/index.html +1 -1
  134. package/dist/control-ui/sw.js +1 -1
  135. package/dist/conversation-runtime-DDekWU-U.js +31 -0
  136. package/dist/core-Bpk-qSJH.js +284 -0
  137. package/dist/core-Chrz4oRB.d.ts +223 -0
  138. package/dist/core-api-DSpUKNVW.js +2 -0
  139. package/dist/core-api-hLsW03Wo.js +5 -0
  140. package/dist/crestodian/crestodian.js +1 -1
  141. package/dist/crestodian/rescue-message.d.ts +1 -1
  142. package/dist/crestodian/rescue-message.js +1 -1
  143. package/dist/crestodian-C0x7JjF-.js +55 -0
  144. package/dist/delegate-BArFIZ4B.d.ts +30 -0
  145. package/dist/deliver-BnVp3VbL.d.ts +111 -0
  146. package/dist/delivery-queue-BFOASdf5.d.ts +161 -0
  147. package/dist/delivery-queue-runtime-BFfc8AEs.d.ts +9 -0
  148. package/dist/dialogue-No0NvYX7.js +37 -0
  149. package/dist/direct-dm-C-h88JJH.d.ts +79 -0
  150. package/dist/directive-handling.fast-lane-DTyDKhZb.js +70 -0
  151. package/dist/directive-handling.impl-DMReM6tu.js +2 -0
  152. package/dist/directive-handling.impl-DzPouhV-.js +823 -0
  153. package/dist/directive-handling.model-selection-BjwTBAZJ.js +122 -0
  154. package/dist/directive-handling.persist.runtime-D_O1okkR.js +274 -0
  155. package/dist/directive-handling.persist.runtime.js +1 -1
  156. package/dist/dispatch-Dtl-oRuN.js +2057 -0
  157. package/dist/dispatch-acp-transcript.runtime-M4y0Dq74.js +40 -0
  158. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  159. package/dist/dispatch-acp.runtime-B8uCIKZS.js +18 -0
  160. package/dist/dispatch-acp.runtime.js +1 -1
  161. package/dist/dispatcher-DslvaRcj.js +106 -0
  162. package/dist/doctor-config-flow-LU2C94af.js +1819 -0
  163. package/dist/doctor-core-checks-BqcjExIZ.js +666 -0
  164. package/dist/doctor-core-checks-Diuk8l0N.js +2 -0
  165. package/dist/doctor-core-checks.runtime-DbS-kMZN.js +278 -0
  166. package/dist/doctor-core-checks.runtime.js +1 -1
  167. package/dist/doctor-health-BdqHwfYE.js +65 -0
  168. package/dist/doctor-health-contributions-DLLTVnll.js +874 -0
  169. package/dist/doctor-lint-PZqkVMWf.js +95 -0
  170. package/dist/doctor-mRfJMSb5.js +6 -0
  171. package/dist/doctor-state-integrity-Cdlm-peH.js +1257 -0
  172. package/dist/draft-stream-controls-B7uLonbw.d.ts +159 -0
  173. package/dist/embedded-agent-CEpOPW6X.js +4 -0
  174. package/dist/embedded-agent-CNINO_M-.d.ts +5 -0
  175. package/dist/embedded-agent-DxwzoZkp.js +4074 -0
  176. package/dist/embedded-agent.runtime-DDbhA85-.js +4 -0
  177. package/dist/embedded-agent.runtime.js +1 -1
  178. package/dist/embedded-backend-ChaKCepC.js +1581 -0
  179. package/dist/embedded-gateway-stub.runtime-e_ZxGhcW.js +12 -0
  180. package/dist/embedded-gateway-stub.runtime.js +1 -1
  181. package/dist/entry.d.ts +1 -1
  182. package/dist/extensionAPI.d.ts +2 -2
  183. package/dist/extensionAPI.js +1 -1
  184. package/dist/extensions/active-memory/index.d.ts +1 -1
  185. package/dist/extensions/active-memory/index.js +1 -1
  186. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  187. package/dist/extensions/admin-http-rpc/index.js +1 -1
  188. package/dist/extensions/bonjour/index.d.ts +1 -1
  189. package/dist/extensions/browser/browser-bridge.js +1 -1
  190. package/dist/extensions/browser/browser-config.js +4 -4
  191. package/dist/extensions/browser/browser-control-auth.js +2 -2
  192. package/dist/extensions/browser/browser-doctor.js +2 -2
  193. package/dist/extensions/browser/browser-maintenance.js +1 -1
  194. package/dist/extensions/browser/browser-profiles.js +2 -2
  195. package/dist/extensions/browser/browser-runtime-api.js +12 -12
  196. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  197. package/dist/extensions/browser/cli-metadata.js +1 -1
  198. package/dist/extensions/browser/index.d.ts +1 -1
  199. package/dist/extensions/browser/index.js +1 -1
  200. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  201. package/dist/extensions/browser/plugin-registration.js +1 -1
  202. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  203. package/dist/extensions/browser/register.runtime.js +4 -4
  204. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  205. package/dist/extensions/browser/runtime-api.js +14 -14
  206. package/dist/extensions/browser/setup-api.d.ts +1 -1
  207. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  208. package/dist/extensions/canvas/index.d.ts +1 -1
  209. package/dist/extensions/canvas/index.js +1 -1
  210. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  211. package/dist/extensions/deepseek/api.d.ts +1 -1
  212. package/dist/extensions/deepseek/index.d.ts +1 -1
  213. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  214. package/dist/extensions/deepseek/stream.d.ts +1 -1
  215. package/dist/extensions/device-pair/api.d.ts +4 -4
  216. package/dist/extensions/device-pair/api.js +1 -1
  217. package/dist/extensions/device-pair/index.d.ts +1 -1
  218. package/dist/extensions/device-pair/notify.d.ts +1 -1
  219. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  220. package/dist/extensions/device-pair/qr-image.d.ts +1 -1
  221. package/dist/extensions/memory-core/api.d.ts +1 -1
  222. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  223. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  224. package/dist/extensions/memory-core/index.d.ts +1 -1
  225. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  226. package/dist/extensions/memory-core/runtime-api.d.ts +3 -3
  227. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  228. package/dist/extensions/skill-workshop/api.js +1 -1
  229. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  230. package/dist/extensions/skill-workshop/index.js +2 -2
  231. package/dist/extensions/tavily/index.d.ts +1 -1
  232. package/dist/extensions/tavily/web-search-contract-api.d.ts +1 -1
  233. package/dist/extensions/tavily/web-search-provider.d.ts +1 -1
  234. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  235. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  236. package/dist/extensions/webhooks/api.d.ts +2 -2
  237. package/dist/extensions/webhooks/api.js +1 -1
  238. package/dist/extensions/webhooks/index.d.ts +1 -1
  239. package/dist/extensions/webhooks/index.js +1 -1
  240. package/dist/extensions/webhooks/runtime-api.d.ts +1 -1
  241. package/dist/extensions/workboard/api.d.ts +2 -2
  242. package/dist/extensions/workboard/index.d.ts +1 -1
  243. package/dist/extensions/workboard/index.js +1 -1
  244. package/dist/extensions/workboard/runtime-api.d.ts +1 -1
  245. package/dist/fengming-runtime-CtRd5677.d.ts +153 -0
  246. package/dist/fengming-tools-DBLsJfsf.js +12221 -0
  247. package/dist/gateway/protocol/index.d.ts +1 -1
  248. package/dist/gateway-cli-BgDV2HF9.js +443 -0
  249. package/dist/gateway-method-runtime-d9oN_XO9.js +21 -0
  250. package/dist/get-reply-CEMtvaTJ.js +5198 -0
  251. package/dist/get-reply-from-config.runtime-CE8zmX7o.js +2 -0
  252. package/dist/get-reply-from-config.runtime.js +1 -1
  253. package/dist/heartbeat-runner-H8SmaKmJ.js +5 -0
  254. package/dist/heartbeat-runner.runtime-6hUaxEbl.js +3 -0
  255. package/dist/heartbeat-runner.runtime.js +1 -1
  256. package/dist/hooks-DkEvkwzS.js +536 -0
  257. package/dist/host-compat-DeAq3dnI.d.ts +21 -0
  258. package/dist/http-registry-BDoApjTY.d.ts +23 -0
  259. package/dist/inbound-reply-dispatch-CIYP2OPo.d.ts +156 -0
  260. package/dist/inbound-reply-dispatch-geHu6oUK.js +147 -0
  261. package/dist/inbound-reply-dispatch-vwW5Hl-_.js +2 -0
  262. package/dist/index-DhOQs6M_.d.ts +1497 -0
  263. package/dist/index.js +1 -1
  264. package/dist/init-DpE_6dG4.js +59 -0
  265. package/dist/interactive-Cb_1f91G.d.ts +26 -0
  266. package/dist/isolated-agent-B_upYOOM.js +2 -0
  267. package/dist/isolated-agent-KH9uwWhw.js +1097 -0
  268. package/dist/kernel-BHnBXnm2.d.ts +241 -0
  269. package/dist/lifecycle-BmZwopzF.js +570 -0
  270. package/dist/list.probe-5kzWm9Jk.js +451 -0
  271. package/dist/list.probe-9zBcGGQ4.js +2 -0
  272. package/dist/list.status-command-DY2ifqp1.js +815 -0
  273. package/dist/llm-slug-generator-Bmx0I84M.js +78 -0
  274. package/dist/llm-slug-generator.js +1 -1
  275. package/dist/loader-BVz75gSb.d.ts +142 -0
  276. package/dist/local-dispatch.runtime-CX3IOY1E.js +10 -0
  277. package/dist/local-dispatch.runtime.js +1 -1
  278. package/dist/manager-BXGg8bfG.d.ts +409 -0
  279. package/dist/mcp-http-B1lnh67s.js +2 -0
  280. package/dist/mcp-http-CamghE-W.js +583 -0
  281. package/dist/media-runtime-DpykroJR.d.ts +261 -0
  282. package/dist/memory-core-host-engine-embeddings-N2dX5P40.d.ts +324 -0
  283. package/dist/memory-core-host-engine-storage-WQfkQMer.d.ts +54 -0
  284. package/dist/message-handler-Ca_pqGVS.js +1806 -0
  285. package/dist/model-catalog-BBMLIjhq.d.ts +88 -0
  286. package/dist/model-selection-Cq82FXLy.js +352 -0
  287. package/dist/models-cli-Dm_393dw.js +257 -0
  288. package/dist/monitor-d0eyE2k0.js +60 -0
  289. package/dist/monitor.account-vLQ3bKHu.js +5382 -0
  290. package/dist/nodes-Bunvrb33.js +1483 -0
  291. package/dist/nodes-edNlxb2I.js +3 -0
  292. package/dist/nodes-pending-DEIwVh9v.js +211 -0
  293. package/dist/openai-compat-errors-CvWEoG98.js +136 -0
  294. package/dist/openai-http-Bskdv4Tv.js +836 -0
  295. package/dist/openresponses-http-DxdgCxFU.js +1175 -0
  296. package/dist/operations-Z85LFqsT.js +805 -0
  297. package/dist/outbound.types-DVkbsxo8.d.ts +291 -0
  298. package/dist/plugin-enabled-fvhTpvYS.js +232 -0
  299. package/dist/plugin-entry-CunlVUw6.d.ts +47 -0
  300. package/dist/plugin-registration-9ovnK_Tk.js +97 -0
  301. package/dist/plugin-runtime-DH2ZM9P5.d.ts +117 -0
  302. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  303. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  304. package/dist/plugin-sdk/acp-runtime.js +1 -1
  305. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  306. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  307. package/dist/plugin-sdk/agent-harness.js +6 -6
  308. package/dist/plugin-sdk/agent-runtime.js +2 -2
  309. package/dist/plugin-sdk/bundled-channel-config-schema-Dfn3b8sF.d.ts +3169 -0
  310. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  311. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  312. package/dist/plugin-sdk/channel-core.js +2 -2
  313. package/dist/plugin-sdk/channel-envelope.js +1 -1
  314. package/dist/plugin-sdk/channel-inbound-roots.js +1 -1
  315. package/dist/plugin-sdk/channel-inbound.js +2 -2
  316. package/dist/plugin-sdk/channel-location.js +1 -1
  317. package/dist/plugin-sdk/channel-message-runtime.js +3 -3
  318. package/dist/plugin-sdk/channel-message.js +2 -2
  319. package/dist/plugin-sdk/channel-runtime.js +0 -1
  320. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  321. package/dist/plugin-sdk/compat.js +1 -1
  322. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  323. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  324. package/dist/plugin-sdk/core.js +2 -2
  325. package/dist/plugin-sdk/discord.d.ts +1 -1
  326. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  327. package/dist/plugin-sdk/health.js +1 -1
  328. package/dist/plugin-sdk/hook-runtime.js +0 -1
  329. package/dist/plugin-sdk/inbound-reply-dispatch.js +2 -2
  330. package/dist/plugin-sdk/index.js +1 -1
  331. package/dist/plugin-sdk/infra-runtime.js +3 -1
  332. package/dist/plugin-sdk/provider-auth-api-key.js +0 -1
  333. package/dist/plugin-sdk/provider-stream-family.js +0 -1
  334. package/dist/plugin-sdk/provider-usage.js +649 -1
  335. package/dist/plugin-sdk/reply-runtime.js +4 -4
  336. package/dist/plugin-sdk/scripts/lib/plugin-sdk-doc-metadata.d.ts +122 -0
  337. package/dist/plugin-sdk/video-generation.js +206 -1
  338. package/dist/plugin-service-BdZxoKBZ.js +1249 -0
  339. package/dist/plugin-service-quTl5hT0.d.ts +24 -0
  340. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  341. package/dist/plugins/loader.d.ts +1 -1
  342. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  343. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  344. package/dist/plugins/runtime/index.d.ts +1 -1
  345. package/dist/plugins/runtime/index.js +4 -4
  346. package/dist/plugins/tools.d.ts +1 -1
  347. package/dist/prepare.runtime-DFvkUqBZ.js +798 -0
  348. package/dist/prepare.runtime.js +1 -1
  349. package/dist/preview-warnings-CGzc8ccG.js +618 -0
  350. package/dist/program-D19g2jaa.js +131 -0
  351. package/dist/provider-api-key-auth-B8GgTfo8.d.ts +27 -0
  352. package/dist/provider-auth-result-Diw-woMA.d.ts +21 -0
  353. package/dist/provider-catalog-shared-hMvzzDgL.d.ts +62 -0
  354. package/dist/provider-dispatcher-DCTc4lG_.js +22 -0
  355. package/dist/provider-dispatcher.runtime.js +1 -1
  356. package/dist/provider-model-shared-BUCh3uCL.d.ts +143 -0
  357. package/dist/provider-registry-BIokPlxa.d.ts +8 -0
  358. package/dist/provider-registry-CyUOXHG-.d.ts +8 -0
  359. package/dist/provider-registry-i--H79Ao.d.ts +29 -0
  360. package/dist/provider-self-hosted-setup-BF8UR8wg.d.ts +74 -0
  361. package/dist/provider-stream-NF0XJnar.d.ts +139 -0
  362. package/dist/provider-stream-shared-DLwDaYed.d.ts +132 -0
  363. package/dist/provider-web-search-contract-fields-D61Vl5Kl.d.ts +25 -0
  364. package/dist/pw-ai-DYR-D7xR.js +3064 -0
  365. package/dist/register.agent-DwW0mQPk.js +152 -0
  366. package/dist/register.crestodian-BhIukKDA.js +24 -0
  367. package/dist/register.maintenance-DWHlvztJ.js +85 -0
  368. package/dist/register.subclis-Bsvdh8RI.js +3 -0
  369. package/dist/register.subclis-DVk0HU4k.js +31 -0
  370. package/dist/register.subclis-core-BK7nVvl6.js +278 -0
  371. package/dist/registry-hscEPAcC.d.ts +8 -0
  372. package/dist/registry-types-Ce-n1tuw.d.ts +392 -0
  373. package/dist/repair-sequencing-0-qGNSUO.js +652 -0
  374. package/dist/reply-payload-mCw4ZND6.d.ts +200 -0
  375. package/dist/reply-turn-admission-DMWNadoS.js +2056 -0
  376. package/dist/reply.runtime-CE8zmX7o.js +2 -0
  377. package/dist/reply.runtime.js +1 -1
  378. package/dist/result-fallback-classifier-BZmv2ACy.js +98 -0
  379. package/dist/route-qQ-jYpFa.js +475 -0
  380. package/dist/routes-dTCmw98g.js +2 -0
  381. package/dist/routes-r8DRKa83.js +3701 -0
  382. package/dist/run-BgH7EPGH.js +1162 -0
  383. package/dist/run-command-DCsM-BVh.js +23 -0
  384. package/dist/run-command-I2ib4dwS.js +2 -0
  385. package/dist/run-context-CWaKUKKJ.js +66 -0
  386. package/dist/run-embedded.runtime-CBnDBWN0.js +4 -0
  387. package/dist/run-embedded.runtime.js +1 -1
  388. package/dist/run-execution-cli.runtime-DlYXI-lw.js +4 -0
  389. package/dist/run-execution-cli.runtime.js +1 -1
  390. package/dist/run-executor.runtime-DwepGrmB.js +330 -0
  391. package/dist/run-executor.runtime.js +1 -1
  392. package/dist/run-subagent-registry.runtime-CeVpoIhj.js +2 -0
  393. package/dist/run-subagent-registry.runtime.js +1 -1
  394. package/dist/runtime-D2ee-rNh.js +436 -0
  395. package/dist/runtime-api-B99ZlkNt.d.ts +5 -0
  396. package/dist/runtime-api-Cta2L_Yo.js +12 -0
  397. package/dist/runtime-channel-LKOkML3M.js +2 -0
  398. package/dist/runtime-channel-UtWvrTZ5.js +148 -0
  399. package/dist/runtime-embedded-agent.runtime-9O2Idzyb.js +2 -0
  400. package/dist/runtime-embedded-agent.runtime.js +1 -1
  401. package/dist/runtime-forwarders-DjI8RFL5.d.ts +39 -0
  402. package/dist/sdk-setup-tools-B-X04pa6.js +8 -0
  403. package/dist/selection-B02h8Old.js +3 -0
  404. package/dist/selection-DEPvzrW2.js +18365 -0
  405. package/dist/server-CMYi8gDo.js +24 -0
  406. package/dist/server-Cx07rsiY.js +72 -0
  407. package/dist/server-close.runtime.js +1 -1
  408. package/dist/server-context-BIemGRt4.js +2 -0
  409. package/dist/server-context-CB_an9iy.js +955 -0
  410. package/dist/server-cron-BeyuBUjb.js +3173 -0
  411. package/dist/server-cron-CV7KkVeB.js +2 -0
  412. package/dist/server-methods-C7EnpOhB.js +497 -0
  413. package/dist/server-node-events-DMMzZciN.js +597 -0
  414. package/dist/server-plugin-bootstrap-O6MzvzL8.js +71 -0
  415. package/dist/server-plugins-Dwnaz9kX.js +435 -0
  416. package/dist/server-reload-handlers-C-6TyPvI.js +719 -0
  417. package/dist/server-restart-sentinel-Dc35eYgk.js +700 -0
  418. package/dist/server-runtime-services-DCs-gqh_.js +3 -0
  419. package/dist/server-runtime-services-DF2fzzVd.js +147 -0
  420. package/dist/server-startup-plugins-t-YeYibm.js +127 -0
  421. package/dist/server-startup-post-attach-CiEki-DC.js +793 -0
  422. package/dist/server-ws-runtime-uaUpI-e8.js +374 -0
  423. package/dist/server.impl-MoHjSMr5.js +2622 -0
  424. package/dist/session-kill-http-CYCiQpt2.js +121 -0
  425. package/dist/session-reset-service-BYbADY57.js +651 -0
  426. package/dist/session-status.runtime-8NASbeO4.js +2 -0
  427. package/dist/session-status.runtime.js +1 -1
  428. package/dist/session-subagent-reactivation.runtime-DGeNY2Rb.js +2 -0
  429. package/dist/session-subagent-reactivation.runtime.js +1 -1
  430. package/dist/session-tab-registry-C2eElZrt.js +551 -0
  431. package/dist/sessions-DXAdVXIx.js +1917 -0
  432. package/dist/sessions-history-http-BwK7b8OH.js +432 -0
  433. package/dist/sessions-patch-BYC5gvY1.js +401 -0
  434. package/dist/sessions-resolve-C3ORcdmo.js +180 -0
  435. package/dist/sessions.runtime-BijldeSY.js +2 -0
  436. package/dist/sessions.runtime.js +1 -1
  437. package/dist/snapshot-urls-C5CfP3Co.js +317 -0
  438. package/dist/speech-core-wWkTZPpQ.d.ts +49 -0
  439. package/dist/standalone-CHrieUsw.js +42 -0
  440. package/dist/startup-context-CZfmG8-g.js +314 -0
  441. package/dist/status-subagents.runtime-D2XMebiS.js +32 -0
  442. package/dist/status-subagents.runtime.js +1 -1
  443. package/dist/status-text-JR7IPyzZ.js +301 -0
  444. package/dist/stream-BJgTkLEI.d.ts +5 -0
  445. package/dist/subagent-announce-B9cfs_KZ.js +353 -0
  446. package/dist/subagent-announce-delivery-CtmEvLTS.js +1369 -0
  447. package/dist/subagent-control-DVqLHi9O.js +492 -0
  448. package/dist/subagent-hooks-D251uSvy.js +230 -0
  449. package/dist/subagent-hooks-api-DvdMKxsC.js +23 -0
  450. package/dist/subagent-hooks-uLORYChc.js +2 -0
  451. package/dist/subagent-registry-BW2l_oYu.js +3 -0
  452. package/dist/subagent-registry-BxEMHuiN.js +2627 -0
  453. package/dist/subagent-registry.runtime.d.ts +1 -1
  454. package/dist/subagent-registry.runtime.js +1 -1
  455. package/dist/subagent-session-cleanup-BC5wV2qQ.js +390 -0
  456. package/dist/system-fvgHsr2x.js +111 -0
  457. package/dist/talk-DU0Sod_K.js +2454 -0
  458. package/dist/target-id-BR2xJIkd.js +107 -0
  459. package/dist/task-registry-control.runtime.js +1 -1
  460. package/dist/thread-bindings-8XNu5U2p.js +228 -0
  461. package/dist/tool-Boeg0N5g.js +143 -0
  462. package/dist/tool-dispatch-BhLLaL2g.js +155 -0
  463. package/dist/tool-resolution-CzsLs-87.js +153 -0
  464. package/dist/tool-split-Bedy42Ms.d.ts +19 -0
  465. package/dist/tools-B6egHpE3.d.ts +38 -0
  466. package/dist/tools-effective-NXscxK8n.js +442 -0
  467. package/dist/tools-effective-inventory-NsGMUVo-.js +379 -0
  468. package/dist/tools-invoke-_sSu96Kq.js +51 -0
  469. package/dist/tools-invoke-http-BDhlRl-G.js +68 -0
  470. package/dist/tools-invoke-shared-BH-T9Bcg.js +200 -0
  471. package/dist/tts-runtime-C1wu3o15.d.ts +230 -0
  472. package/dist/tui-C733Qov0.js +2 -0
  473. package/dist/tui-DqbscVN5.js +3 -0
  474. package/dist/tui-backend-_Pn3Byj-.js +257 -0
  475. package/dist/tui-cli-CAiC39zd.js +40 -0
  476. package/dist/tui-ink-run-ChXEGj1h.js +7414 -0
  477. package/dist/tui-ink-run-D4mSfLHj.js +2 -0
  478. package/dist/types-BQw1qXGl.d.ts +7034 -0
  479. package/dist/types-BzMoU6-C.d.ts +111 -0
  480. package/dist/types-DltHmoCX.d.ts +393 -0
  481. package/dist/types.public-C_bVIMBl.d.ts +70 -0
  482. package/dist/web-fetch/runtime.d.ts +1 -1
  483. package/dist/webhook-targets-DW2jhddP.d.ts +99 -0
  484. package/dist/zod-schema.core-Cuz0lz6m.d.ts +166 -0
  485. package/npm-shrinkwrap.json +12861 -11889
  486. package/package.json +1 -1
  487. package/skills/batch/SKILL.md +118 -0
  488. package/skills/code-review/SKILL.md +107 -0
  489. package/skills/debug/SKILL.md +83 -0
  490. package/skills/loop/SKILL.md +118 -0
  491. package/skills/run/SKILL.md +79 -0
  492. package/skills/run-skill-generator/SKILL.md +179 -0
  493. package/skills/verify/SKILL.md +103 -0
  494. package/dist/abort-DGskei2p.js +0 -277
  495. package/dist/abort.runtime-Buq9IZxn.js +0 -2
  496. package/dist/acp-spawn-DC6IyYaB.js +0 -1286
  497. package/dist/acp-spawn-Diqb3nel.js +0 -2
  498. package/dist/acp-stateful-target-driver-Clhe_L8v.js +0 -89
  499. package/dist/active-tool-schema-warnings-BRhKkyvt.js +0 -2
  500. package/dist/active-tool-schema-warnings-C6N0-ce6.js +0 -105
  501. package/dist/agent-C5lhsEZJ.js +0 -2
  502. package/dist/agent-WEb757bl.js +0 -1825
  503. package/dist/agent-command-iLD_nsVY.js +0 -1435
  504. package/dist/agent-core-BeDN8Ns5.d.ts +0 -13
  505. package/dist/agent-harness-runtime-C89_Q-bW.d.ts +0 -913
  506. package/dist/agent-harness-runtime-Dfn5rik2.js +0 -207
  507. package/dist/agent-runner-utils-DNiuuo43.js +0 -267
  508. package/dist/agent-runner.runtime-CFF_qJ5V.js +0 -3784
  509. package/dist/agent-runtime-BkMtWXxn.js +0 -199
  510. package/dist/agent-runtime-HufMO_YR.d.ts +0 -207
  511. package/dist/agent-tools-HmaDv4ot.js +0 -2506
  512. package/dist/agent-via-gateway-CZQG8RYL.js +0 -486
  513. package/dist/agent-wait-dedupe-C3xQk2Ww.js +0 -180
  514. package/dist/agent-z1cs3c7n.js +0 -3
  515. package/dist/api-B4IMKjSe.js +0 -3
  516. package/dist/api-BwSbBWI8.js +0 -3
  517. package/dist/api-CE9In9m4.js +0 -5
  518. package/dist/api-ClPvYNGa.js +0 -32
  519. package/dist/api-CntBCaZf.js +0 -3
  520. package/dist/api-DBZBwTsn.js +0 -6
  521. package/dist/api-OCPwGOvK.js +0 -2
  522. package/dist/api-yYhEo7gK.js +0 -4
  523. package/dist/approval-client-helpers-CfdQ3-vv.d.ts +0 -78
  524. package/dist/approval-native-helpers-DSHPksK4.d.ts +0 -241
  525. package/dist/approval-renderers-BfEfwk44.d.ts +0 -39
  526. package/dist/assistant-v5fdOYu7.js +0 -291
  527. package/dist/attachment-normalize-BHAbLiL2.js +0 -213
  528. package/dist/attempt-execution-5w9WYbaJ.js +0 -584
  529. package/dist/attempt-execution.runtime-DnhOWGzr.js +0 -3
  530. package/dist/attempt.prompt-helpers-C4M4erF7.js +0 -543
  531. package/dist/binding-routing-Dpes-QF1.js +0 -113
  532. package/dist/binding-targets-B6H5Pd-A.js +0 -121
  533. package/dist/bridge-server-BCpxCRm_.js +0 -113
  534. package/dist/browser-cli-DMhXHopl.js +0 -230
  535. package/dist/browser-cli-Dy_VugK0.js +0 -2
  536. package/dist/browser-cli-actions-input-WMP7_lm6.js +0 -522
  537. package/dist/browser-cli-actions-observe-DQWAWhwU.js +0 -81
  538. package/dist/browser-cli-debug-CaT2ZKAx.js +0 -137
  539. package/dist/browser-cli-inspect-DU-LUXq1.js +0 -117
  540. package/dist/browser-cli-manage-DAuogqIh.js +0 -446
  541. package/dist/browser-cli-resize-Cz5uO_aR.js +0 -32
  542. package/dist/browser-cli-shared-CjPZcG3j.js +0 -69
  543. package/dist/browser-cli-state-CC3l77-K.js +0 -371
  544. package/dist/browser-control-auth-ELccIUZy.js +0 -2
  545. package/dist/browser-profiles-Cuy4ia6_.js +0 -2
  546. package/dist/browser-runtime-De-iUfME.js +0 -389
  547. package/dist/build-DEF8Per9.js +0 -261
  548. package/dist/bundled-channel-config-schema-Bte--ZlY.d.ts +0 -3168
  549. package/dist/capability-cli-Bydel4E7.js +0 -1809
  550. package/dist/channel-6SGL4R5P.js +0 -2309
  551. package/dist/channel-D3Q3b8J-.d.ts +0 -427
  552. package/dist/channel-core-Bj71kAB5.d.ts +0 -6
  553. package/dist/channel-core-DMvyWnHg.js +0 -5
  554. package/dist/channel-entry-contract-zYxRmEdf.d.ts +0 -114
  555. package/dist/channel-inbound-DVJzBcJ8.d.ts +0 -97
  556. package/dist/channel-inbound-DlCa7eJe.js +0 -121
  557. package/dist/channel-message-CyPGMMFB.js +0 -12
  558. package/dist/channel-message-Czl4cdoA.d.ts +0 -9
  559. package/dist/channel-outbound-BNbhmruA.d.ts +0 -325
  560. package/dist/channel-pairing-BiS-tSvl.d.ts +0 -58
  561. package/dist/channel-runtime-D8hntg7H.js +0 -7
  562. package/dist/channel.runtime-DxErReJR.js +0 -697
  563. package/dist/chat-BLA8ORQI.js +0 -3
  564. package/dist/chat-DWRXkuvU.js +0 -2940
  565. package/dist/chrome-DPwFYi-g.js +0 -1517
  566. package/dist/cli-compaction-YZpssARf.js +0 -363
  567. package/dist/cli-runner-D2OAqxu3.js +0 -597
  568. package/dist/cli-runner-DO4SORQf.js +0 -2
  569. package/dist/cli-runner.runtime-CNSIpbeT.js +0 -4
  570. package/dist/cli-runner.runtime-DAOYvpVQ.js +0 -3
  571. package/dist/command-registry-DpD0fb8D.js +0 -4
  572. package/dist/command-registry-core-Cl3tLG8G.js +0 -114
  573. package/dist/command-registry-nbP7c8RT.js +0 -9
  574. package/dist/command-status.runtime-BBuXTkq0.js +0 -90
  575. package/dist/commands-CR8MVvlD.d.ts +0 -117
  576. package/dist/commands-compact.runtime-BoafIjjg.js +0 -10
  577. package/dist/commands-handlers.runtime-D9jViG_x.js +0 -6327
  578. package/dist/commands-status-BqqJ7PVq.js +0 -16
  579. package/dist/commands-status-CMd41Vxf.js +0 -3
  580. package/dist/commands-status.runtime-CMd41Vxf.js +0 -3
  581. package/dist/commands-subagents-control.runtime-CU4I3A_n.js +0 -2
  582. package/dist/commands-system-prompt-CTtu1D3-.js +0 -2
  583. package/dist/commands-system-prompt-xswhORdM.js +0 -161
  584. package/dist/commands-types-B67CsqXf.d.ts +0 -132
  585. package/dist/commands.runtime-BUFhkrjQ.js +0 -175
  586. package/dist/compact-Dz_WvRkQ.js +0 -1165
  587. package/dist/compact.runtime-n-AKErni.js +0 -12
  588. package/dist/completion-cli-DJYs_L4_.js +0 -393
  589. package/dist/config-CFMbHJb0.js +0 -374
  590. package/dist/config-mutations-DCAloTKR.js +0 -161
  591. package/dist/config-schema-Drw1zrnG.d.ts +0 -20
  592. package/dist/context-engine-host-compat-4mNm1HCE.js +0 -2
  593. package/dist/context-engine-host-compat-BzJ7fUIn.js +0 -280
  594. package/dist/context-engine-lifecycle-V4PNQp6k.js +0 -627
  595. package/dist/control-auth-DG_cw-aN.js +0 -114
  596. package/dist/control-service-CurYipgK.js +0 -3
  597. package/dist/control-service-VyncoV7j.js +0 -40
  598. package/dist/control-ui/assets/activity-BvGWC_j9.js +0 -124
  599. package/dist/control-ui/assets/agents-XOPBFHre.js +0 -1030
  600. package/dist/control-ui/assets/channels-B3E6Zw4-.js +0 -120
  601. package/dist/control-ui/assets/cron-r1sJdAbI.js +0 -1016
  602. package/dist/control-ui/assets/debug-EJlC-Qxz.js +0 -97
  603. package/dist/control-ui/assets/index-DBWFWpqU.js +0 -7214
  604. package/dist/control-ui/assets/instances-DqYhTGuq.js +0 -57
  605. package/dist/control-ui/assets/nodes-CPozuEst.js +0 -444
  606. package/dist/control-ui/assets/sessions-vJlr6aBb.js +0 -425
  607. package/dist/control-ui/assets/skills-wNA5l4y0.js +0 -362
  608. package/dist/control-ui/assets/workboard-BwoP_UJU.js +0 -402
  609. package/dist/conversation-runtime-DgaABwHh.js +0 -31
  610. package/dist/core-BeBXdneV.js +0 -284
  611. package/dist/core-Chqb7X6l.d.ts +0 -223
  612. package/dist/core-api-BlK0FgBM.js +0 -2
  613. package/dist/core-api-pAvYk716.js +0 -5
  614. package/dist/crestodian-FeGTBqO1.js +0 -55
  615. package/dist/delegate-BjIjSU_E.d.ts +0 -30
  616. package/dist/deliver-CvtWN4Ey.d.ts +0 -111
  617. package/dist/delivery-queue-CQ-cj3KG.d.ts +0 -161
  618. package/dist/delivery-queue-runtime-ut7MG04m.d.ts +0 -9
  619. package/dist/detect-BjXPyrwn.js +0 -115
  620. package/dist/detect-C1xeIemQ.d.ts +0 -16
  621. package/dist/dialogue-BowVYhEC.js +0 -37
  622. package/dist/direct-dm-DoZZHpA0.d.ts +0 -79
  623. package/dist/directive-handling.fast-lane-hnmQ_CvD.js +0 -70
  624. package/dist/directive-handling.impl-Cai-CFS1.js +0 -2
  625. package/dist/directive-handling.impl-DY84qIfU.js +0 -823
  626. package/dist/directive-handling.model-selection-DASssLFQ.js +0 -122
  627. package/dist/directive-handling.persist.runtime-BY7tJUs2.js +0 -274
  628. package/dist/dispatch-D5iG5A8j.js +0 -2057
  629. package/dist/dispatch-acp-transcript.runtime-D3r16hbD.js +0 -40
  630. package/dist/dispatch-acp.runtime-CAIau5qX.js +0 -18
  631. package/dist/dispatcher-7-d2gw3J.js +0 -106
  632. package/dist/doctor-DD5YEMmf.js +0 -6
  633. package/dist/doctor-config-flow-CdlLHJmX.js +0 -1819
  634. package/dist/doctor-core-checks-6MP99TQG.js +0 -666
  635. package/dist/doctor-core-checks-Dm_o576z.js +0 -2
  636. package/dist/doctor-core-checks.runtime-B2qbKATd.js +0 -278
  637. package/dist/doctor-health-BKrhOv1v.js +0 -65
  638. package/dist/doctor-health-contributions-bIBLmw69.js +0 -874
  639. package/dist/doctor-lint-aOLOWli4.js +0 -95
  640. package/dist/doctor-state-integrity-23NQNNuo.js +0 -1257
  641. package/dist/draft-stream-controls-Bk1GVJ1l.d.ts +0 -159
  642. package/dist/embedded-agent-BeK8FhZr.d.ts +0 -5
  643. package/dist/embedded-agent-CNp_y7jW.js +0 -4074
  644. package/dist/embedded-agent-NEmNlXDR.js +0 -4
  645. package/dist/embedded-agent.runtime-hEby8P2s.js +0 -4
  646. package/dist/embedded-backend-BdbgfpBP.js +0 -1581
  647. package/dist/embedded-gateway-stub.runtime-ySZUA3Gy.js +0 -12
  648. package/dist/extensions/alibaba/fengming.plugin.json +0 -47
  649. package/dist/extensions/alibaba/index.d.ts +0 -12
  650. package/dist/extensions/alibaba/index.js +0 -13
  651. package/dist/extensions/alibaba/package.json +0 -15
  652. package/dist/extensions/alibaba/video-generation-provider.d.ts +0 -6
  653. package/dist/extensions/alibaba/video-generation-provider.js +0 -2
  654. package/dist/extensions/baichuan/fengming.plugin.json +0 -69
  655. package/dist/extensions/baichuan/index.d.ts +0 -11
  656. package/dist/extensions/baichuan/index.js +0 -45
  657. package/dist/extensions/baichuan/models.d.ts +0 -7
  658. package/dist/extensions/baichuan/models.js +0 -2
  659. package/dist/extensions/baichuan/onboard.d.ts +0 -5
  660. package/dist/extensions/baichuan/onboard.js +0 -2
  661. package/dist/extensions/baichuan/package.json +0 -15
  662. package/dist/extensions/baichuan/provider-catalog.d.ts +0 -2
  663. package/dist/extensions/baichuan/provider-catalog.js +0 -2
  664. package/dist/extensions/baichuan/provider-discovery.d.ts +0 -2
  665. package/dist/extensions/baichuan/provider-discovery.js +0 -5
  666. package/dist/extensions/byteplus/api.d.ts +0 -3
  667. package/dist/extensions/byteplus/api.js +0 -3
  668. package/dist/extensions/byteplus/fengming.plugin.json +0 -196
  669. package/dist/extensions/byteplus/index.d.ts +0 -12
  670. package/dist/extensions/byteplus/index.js +0 -85
  671. package/dist/extensions/byteplus/models.d.ts +0 -2
  672. package/dist/extensions/byteplus/models.js +0 -2
  673. package/dist/extensions/byteplus/package.json +0 -15
  674. package/dist/extensions/byteplus/provider-catalog.d.ts +0 -2
  675. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  676. package/dist/extensions/byteplus/provider-discovery.d.ts +0 -5
  677. package/dist/extensions/byteplus/provider-discovery.js +0 -23
  678. package/dist/extensions/byteplus/video-generation-provider.d.ts +0 -6
  679. package/dist/extensions/byteplus/video-generation-provider.js +0 -2
  680. package/dist/extensions/longcat/fengming.plugin.json +0 -84
  681. package/dist/extensions/longcat/index.d.ts +0 -11
  682. package/dist/extensions/longcat/index.js +0 -45
  683. package/dist/extensions/longcat/models.d.ts +0 -7
  684. package/dist/extensions/longcat/models.js +0 -2
  685. package/dist/extensions/longcat/onboard.d.ts +0 -5
  686. package/dist/extensions/longcat/onboard.js +0 -2
  687. package/dist/extensions/longcat/package.json +0 -15
  688. package/dist/extensions/longcat/provider-catalog.d.ts +0 -2
  689. package/dist/extensions/longcat/provider-catalog.js +0 -2
  690. package/dist/extensions/longcat/provider-discovery.d.ts +0 -2
  691. package/dist/extensions/longcat/provider-discovery.js +0 -5
  692. package/dist/extensions/minimax/api.d.ts +0 -5
  693. package/dist/extensions/minimax/api.js +0 -6
  694. package/dist/extensions/minimax/fengming.plugin.json +0 -206
  695. package/dist/extensions/minimax/image-generation-provider.d.ts +0 -6
  696. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  697. package/dist/extensions/minimax/index.d.ts +0 -12
  698. package/dist/extensions/minimax/index.js +0 -29
  699. package/dist/extensions/minimax/media-understanding-provider.d.ts +0 -6
  700. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  701. package/dist/extensions/minimax/model-definitions.d.ts +0 -2
  702. package/dist/extensions/minimax/model-definitions.js +0 -2
  703. package/dist/extensions/minimax/music-generation-provider.d.ts +0 -6
  704. package/dist/extensions/minimax/music-generation-provider.js +0 -2
  705. package/dist/extensions/minimax/oauth.d.ts +0 -2
  706. package/dist/extensions/minimax/oauth.js +0 -2
  707. package/dist/extensions/minimax/oauth.runtime.d.ts +0 -2
  708. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  709. package/dist/extensions/minimax/onboard.d.ts +0 -2
  710. package/dist/extensions/minimax/onboard.js +0 -2
  711. package/dist/extensions/minimax/package.json +0 -15
  712. package/dist/extensions/minimax/provider-catalog.d.ts +0 -2
  713. package/dist/extensions/minimax/provider-catalog.js +0 -2
  714. package/dist/extensions/minimax/provider-contract-api.d.ts +0 -6
  715. package/dist/extensions/minimax/provider-contract-api.js +0 -77
  716. package/dist/extensions/minimax/provider-discovery.d.ts +0 -5
  717. package/dist/extensions/minimax/provider-discovery.js +0 -23
  718. package/dist/extensions/minimax/provider-models.d.ts +0 -2
  719. package/dist/extensions/minimax/provider-models.js +0 -2
  720. package/dist/extensions/minimax/provider-registration.d.ts +0 -7
  721. package/dist/extensions/minimax/provider-registration.js +0 -2
  722. package/dist/extensions/minimax/speech-provider.d.ts +0 -5
  723. package/dist/extensions/minimax/speech-provider.js +0 -2
  724. package/dist/extensions/minimax/tts.d.ts +0 -20
  725. package/dist/extensions/minimax/tts.js +0 -2
  726. package/dist/extensions/minimax/video-generation-provider.d.ts +0 -7
  727. package/dist/extensions/minimax/video-generation-provider.js +0 -2
  728. package/dist/extensions/minimax/web-search-contract-api.d.ts +0 -5
  729. package/dist/extensions/minimax/web-search-contract-api.js +0 -31
  730. package/dist/extensions/minimax/web-search-provider.d.ts +0 -5
  731. package/dist/extensions/minimax/web-search-provider.js +0 -2
  732. package/dist/extensions/moonshot/api.d.ts +0 -3
  733. package/dist/extensions/moonshot/api.js +0 -4
  734. package/dist/extensions/moonshot/fengming.plugin.json +0 -250
  735. package/dist/extensions/moonshot/index.d.ts +0 -11
  736. package/dist/extensions/moonshot/index.js +0 -70
  737. package/dist/extensions/moonshot/media-understanding-provider.d.ts +0 -6
  738. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  739. package/dist/extensions/moonshot/onboard.d.ts +0 -2
  740. package/dist/extensions/moonshot/onboard.js +0 -2
  741. package/dist/extensions/moonshot/package.json +0 -15
  742. package/dist/extensions/moonshot/provider-catalog.d.ts +0 -2
  743. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  744. package/dist/extensions/moonshot/provider-contract-api.d.ts +0 -5
  745. package/dist/extensions/moonshot/provider-contract-api.js +0 -27
  746. package/dist/extensions/moonshot/provider-discovery.d.ts +0 -5
  747. package/dist/extensions/moonshot/provider-discovery.js +0 -15
  748. package/dist/extensions/moonshot/web-search-contract-api.d.ts +0 -5
  749. package/dist/extensions/moonshot/web-search-contract-api.js +0 -29
  750. package/dist/extensions/moonshot/web-search-provider.d.ts +0 -5
  751. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  752. package/dist/extensions/qianfan/api.d.ts +0 -3
  753. package/dist/extensions/qianfan/api.js +0 -3
  754. package/dist/extensions/qianfan/fengming.plugin.json +0 -89
  755. package/dist/extensions/qianfan/index.d.ts +0 -11
  756. package/dist/extensions/qianfan/index.js +0 -26
  757. package/dist/extensions/qianfan/onboard.d.ts +0 -2
  758. package/dist/extensions/qianfan/onboard.js +0 -2
  759. package/dist/extensions/qianfan/package.json +0 -15
  760. package/dist/extensions/qianfan/provider-catalog.d.ts +0 -2
  761. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  762. package/dist/extensions/qwen/api.d.ts +0 -4
  763. package/dist/extensions/qwen/api.js +0 -5
  764. package/dist/extensions/qwen/fengming.plugin.json +0 -389
  765. package/dist/extensions/qwen/index.d.ts +0 -11
  766. package/dist/extensions/qwen/index.js +0 -202
  767. package/dist/extensions/qwen/media-understanding-provider.d.ts +0 -6
  768. package/dist/extensions/qwen/media-understanding-provider.js +0 -2
  769. package/dist/extensions/qwen/model-definitions.d.ts +0 -2
  770. package/dist/extensions/qwen/model-definitions.js +0 -2
  771. package/dist/extensions/qwen/models.d.ts +0 -2
  772. package/dist/extensions/qwen/models.js +0 -2
  773. package/dist/extensions/qwen/onboard.d.ts +0 -21
  774. package/dist/extensions/qwen/onboard.js +0 -2
  775. package/dist/extensions/qwen/package.json +0 -15
  776. package/dist/extensions/qwen/provider-catalog.d.ts +0 -2
  777. package/dist/extensions/qwen/provider-catalog.js +0 -2
  778. package/dist/extensions/qwen/stream.d.ts +0 -2
  779. package/dist/extensions/qwen/stream.js +0 -2
  780. package/dist/extensions/qwen/video-generation-provider.d.ts +0 -6
  781. package/dist/extensions/qwen/video-generation-provider.js +0 -2
  782. package/dist/extensions/sensenova/fengming.plugin.json +0 -69
  783. package/dist/extensions/sensenova/index.d.ts +0 -11
  784. package/dist/extensions/sensenova/index.js +0 -45
  785. package/dist/extensions/sensenova/models.d.ts +0 -7
  786. package/dist/extensions/sensenova/models.js +0 -2
  787. package/dist/extensions/sensenova/onboard.d.ts +0 -5
  788. package/dist/extensions/sensenova/onboard.js +0 -2
  789. package/dist/extensions/sensenova/package.json +0 -15
  790. package/dist/extensions/sensenova/provider-catalog.d.ts +0 -2
  791. package/dist/extensions/sensenova/provider-catalog.js +0 -2
  792. package/dist/extensions/sensenova/provider-discovery.d.ts +0 -2
  793. package/dist/extensions/sensenova/provider-discovery.js +0 -5
  794. package/dist/extensions/stepfun/fengming.plugin.json +0 -162
  795. package/dist/extensions/stepfun/index.d.ts +0 -12
  796. package/dist/extensions/stepfun/index.js +0 -165
  797. package/dist/extensions/stepfun/onboard.d.ts +0 -7
  798. package/dist/extensions/stepfun/onboard.js +0 -2
  799. package/dist/extensions/stepfun/package.json +0 -15
  800. package/dist/extensions/stepfun/provider-catalog.d.ts +0 -14
  801. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  802. package/dist/extensions/tencent/api.d.ts +0 -3
  803. package/dist/extensions/tencent/api.js +0 -4
  804. package/dist/extensions/tencent/fengming.plugin.json +0 -105
  805. package/dist/extensions/tencent/index.d.ts +0 -12
  806. package/dist/extensions/tencent/index.js +0 -62
  807. package/dist/extensions/tencent/models.d.ts +0 -2
  808. package/dist/extensions/tencent/models.js +0 -2
  809. package/dist/extensions/tencent/onboard.d.ts +0 -6
  810. package/dist/extensions/tencent/onboard.js +0 -2
  811. package/dist/extensions/tencent/package.json +0 -15
  812. package/dist/extensions/tencent/provider-catalog.d.ts +0 -2
  813. package/dist/extensions/tencent/provider-catalog.js +0 -2
  814. package/dist/extensions/tencent/provider-discovery.d.ts +0 -5
  815. package/dist/extensions/tencent/provider-discovery.js +0 -14
  816. package/dist/extensions/tiangong/fengming.plugin.json +0 -69
  817. package/dist/extensions/tiangong/index.d.ts +0 -11
  818. package/dist/extensions/tiangong/index.js +0 -45
  819. package/dist/extensions/tiangong/models.d.ts +0 -7
  820. package/dist/extensions/tiangong/models.js +0 -2
  821. package/dist/extensions/tiangong/onboard.d.ts +0 -5
  822. package/dist/extensions/tiangong/onboard.js +0 -2
  823. package/dist/extensions/tiangong/package.json +0 -15
  824. package/dist/extensions/tiangong/provider-catalog.d.ts +0 -2
  825. package/dist/extensions/tiangong/provider-catalog.js +0 -2
  826. package/dist/extensions/tiangong/provider-discovery.d.ts +0 -2
  827. package/dist/extensions/tiangong/provider-discovery.js +0 -5
  828. package/dist/extensions/volcengine/api.d.ts +0 -12
  829. package/dist/extensions/volcengine/api.js +0 -4
  830. package/dist/extensions/volcengine/fengming.plugin.json +0 -263
  831. package/dist/extensions/volcengine/index.d.ts +0 -12
  832. package/dist/extensions/volcengine/index.js +0 -88
  833. package/dist/extensions/volcengine/models.d.ts +0 -2
  834. package/dist/extensions/volcengine/models.js +0 -2
  835. package/dist/extensions/volcengine/package.json +0 -15
  836. package/dist/extensions/volcengine/provider-catalog.d.ts +0 -2
  837. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  838. package/dist/extensions/volcengine/provider-discovery.d.ts +0 -5
  839. package/dist/extensions/volcengine/provider-discovery.js +0 -23
  840. package/dist/extensions/volcengine/speech-provider.d.ts +0 -5
  841. package/dist/extensions/volcengine/speech-provider.js +0 -2
  842. package/dist/extensions/volcengine/tts.d.ts +0 -22
  843. package/dist/extensions/volcengine/tts.js +0 -2
  844. package/dist/extensions/weixin/fengming.plugin.json +0 -22
  845. package/dist/extensions/weixin/index.d.ts +0 -26
  846. package/dist/extensions/weixin/index.js +0 -862
  847. package/dist/extensions/weixin/package.json +0 -45
  848. package/dist/extensions/xiaomi/api.d.ts +0 -3
  849. package/dist/extensions/xiaomi/api.js +0 -3
  850. package/dist/extensions/xiaomi/fengming.plugin.json +0 -260
  851. package/dist/extensions/xiaomi/index.d.ts +0 -12
  852. package/dist/extensions/xiaomi/index.js +0 -284
  853. package/dist/extensions/xiaomi/onboard.d.ts +0 -2
  854. package/dist/extensions/xiaomi/onboard.js +0 -2
  855. package/dist/extensions/xiaomi/package.json +0 -15
  856. package/dist/extensions/xiaomi/provider-catalog.d.ts +0 -2
  857. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  858. package/dist/extensions/xiaomi/speech-provider.d.ts +0 -5
  859. package/dist/extensions/xiaomi/speech-provider.js +0 -2
  860. package/dist/extensions/xiaomi/stream.d.ts +0 -5
  861. package/dist/extensions/xiaomi/stream.js +0 -2
  862. package/dist/extensions/xiaomi/thinking.d.ts +0 -11
  863. package/dist/extensions/xiaomi/thinking.js +0 -2
  864. package/dist/extensions/xingchen/fengming.plugin.json +0 -69
  865. package/dist/extensions/xingchen/index.d.ts +0 -11
  866. package/dist/extensions/xingchen/index.js +0 -45
  867. package/dist/extensions/xingchen/models.d.ts +0 -7
  868. package/dist/extensions/xingchen/models.js +0 -2
  869. package/dist/extensions/xingchen/onboard.d.ts +0 -5
  870. package/dist/extensions/xingchen/onboard.js +0 -2
  871. package/dist/extensions/xingchen/package.json +0 -15
  872. package/dist/extensions/xingchen/provider-catalog.d.ts +0 -2
  873. package/dist/extensions/xingchen/provider-catalog.js +0 -2
  874. package/dist/extensions/xingchen/provider-discovery.d.ts +0 -2
  875. package/dist/extensions/xingchen/provider-discovery.js +0 -5
  876. package/dist/extensions/yi/fengming.plugin.json +0 -84
  877. package/dist/extensions/yi/index.d.ts +0 -11
  878. package/dist/extensions/yi/index.js +0 -45
  879. package/dist/extensions/yi/models.d.ts +0 -7
  880. package/dist/extensions/yi/models.js +0 -2
  881. package/dist/extensions/yi/onboard.d.ts +0 -5
  882. package/dist/extensions/yi/onboard.js +0 -2
  883. package/dist/extensions/yi/package.json +0 -15
  884. package/dist/extensions/yi/provider-catalog.d.ts +0 -2
  885. package/dist/extensions/yi/provider-catalog.js +0 -2
  886. package/dist/extensions/yi/provider-discovery.d.ts +0 -2
  887. package/dist/extensions/yi/provider-discovery.js +0 -5
  888. package/dist/extensions/zai/api.d.ts +0 -4
  889. package/dist/extensions/zai/api.js +0 -4
  890. package/dist/extensions/zai/detect.d.ts +0 -2
  891. package/dist/extensions/zai/detect.js +0 -2
  892. package/dist/extensions/zai/fengming.plugin.json +0 -377
  893. package/dist/extensions/zai/index.d.ts +0 -12
  894. package/dist/extensions/zai/index.js +0 -297
  895. package/dist/extensions/zai/media-understanding-provider.d.ts +0 -5
  896. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  897. package/dist/extensions/zai/model-definitions.d.ts +0 -2
  898. package/dist/extensions/zai/model-definitions.js +0 -2
  899. package/dist/extensions/zai/onboard.d.ts +0 -2
  900. package/dist/extensions/zai/onboard.js +0 -2
  901. package/dist/extensions/zai/package.json +0 -15
  902. package/dist/extensions/zai/runtime-api.d.ts +0 -2
  903. package/dist/extensions/zai/runtime-api.js +0 -2
  904. package/dist/extensions/zhinao/fengming.plugin.json +0 -69
  905. package/dist/extensions/zhinao/index.d.ts +0 -11
  906. package/dist/extensions/zhinao/index.js +0 -45
  907. package/dist/extensions/zhinao/models.d.ts +0 -7
  908. package/dist/extensions/zhinao/models.js +0 -2
  909. package/dist/extensions/zhinao/onboard.d.ts +0 -5
  910. package/dist/extensions/zhinao/onboard.js +0 -2
  911. package/dist/extensions/zhinao/package.json +0 -15
  912. package/dist/extensions/zhinao/provider-catalog.d.ts +0 -2
  913. package/dist/extensions/zhinao/provider-catalog.js +0 -2
  914. package/dist/extensions/zhinao/provider-discovery.d.ts +0 -2
  915. package/dist/extensions/zhinao/provider-discovery.js +0 -5
  916. package/dist/fengming-runtime-0jdu_329.d.ts +0 -153
  917. package/dist/fengming-tools-gQkwsWYz.js +0 -12221
  918. package/dist/fengming.plugin-C-Kdi1_5.js +0 -130
  919. package/dist/fengming.plugin-CRPqMj85.js +0 -166
  920. package/dist/gateway-cli-BV1V43-D.js +0 -443
  921. package/dist/gateway-method-runtime-J2OPP_oH.js +0 -21
  922. package/dist/get-reply-BE8ZGJos.js +0 -5198
  923. package/dist/get-reply-from-config.runtime-C5wfxVI_.js +0 -2
  924. package/dist/heartbeat-runner-_0HlObMb.js +0 -5
  925. package/dist/heartbeat-runner.runtime-DvYz_4Z3.js +0 -3
  926. package/dist/hook-runtime-BH9moP5T.js +0 -4
  927. package/dist/hooks-icCwsmrQ.js +0 -536
  928. package/dist/host-compat-dfJvEfe7.d.ts +0 -21
  929. package/dist/http-registry-Buj7R-F_.d.ts +0 -23
  930. package/dist/image-generation-provider-hrRXkkGc.js +0 -152
  931. package/dist/inbound-reply-dispatch-5AYt56Yt.js +0 -147
  932. package/dist/inbound-reply-dispatch-B5weFW8i.js +0 -2
  933. package/dist/inbound-reply-dispatch-cJh4H31y.d.ts +0 -156
  934. package/dist/index-DbpfOFUf.d.ts +0 -1497
  935. package/dist/infra-runtime-3_0R8nmO.js +0 -32
  936. package/dist/init-BnfkYG_k.js +0 -59
  937. package/dist/interactive-V8NfYsTW.d.ts +0 -26
  938. package/dist/isolated-agent-CgH7dfOj.js +0 -1097
  939. package/dist/isolated-agent-dBWkiw0a.js +0 -2
  940. package/dist/kernel-Ds2aqAJF.d.ts +0 -241
  941. package/dist/kimi-web-search-provider-QJT3Ftj3.js +0 -80
  942. package/dist/kimi-web-search-provider.runtime-Dj3SS4T5.js +0 -307
  943. package/dist/kimi-web-search-provider.runtime.js +0 -1
  944. package/dist/lib-Dg4yjNFQ.js +0 -871
  945. package/dist/lifecycle-B9k7QGsS.js +0 -570
  946. package/dist/list.probe-CbVHFNwf.js +0 -2
  947. package/dist/list.probe-CxiEBmyW.js +0 -451
  948. package/dist/list.status-command-DE-edGgB.js +0 -815
  949. package/dist/llm-slug-generator-DJgq9eFd.js +0 -78
  950. package/dist/loader-5AqYM9PC.d.ts +0 -142
  951. package/dist/local-dispatch.runtime-D3F4v51B.js +0 -10
  952. package/dist/manager-BWf1ks-Z.d.ts +0 -409
  953. package/dist/mcp-http-DU7Nsg4P.js +0 -583
  954. package/dist/mcp-http-iZCW6Cet.js +0 -2
  955. package/dist/media-runtime-DZ5RpQN7.d.ts +0 -261
  956. package/dist/media-understanding-DEdEyoQB.d.ts +0 -46
  957. package/dist/media-understanding-provider-4JHrQOUE.js +0 -70
  958. package/dist/media-understanding-provider-BV7O82XV.js +0 -29
  959. package/dist/media-understanding-provider-BlPRhYkx.js +0 -69
  960. package/dist/media-understanding-provider-BuX8eQLj.js +0 -13
  961. package/dist/memory-core-host-engine-embeddings-BDu5fx8E.d.ts +0 -324
  962. package/dist/memory-core-host-engine-storage-CdCuH-E2.d.ts +0 -54
  963. package/dist/message-handler-L6QLWNVP.js +0 -1806
  964. package/dist/minimax-web-search-provider-_gxeEOy8.js +0 -58
  965. package/dist/minimax-web-search-provider.runtime-BF4mGi6U.js +0 -148
  966. package/dist/minimax-web-search-provider.runtime.js +0 -1
  967. package/dist/model-catalog-DCnRkX8f.d.ts +0 -88
  968. package/dist/model-definitions-B2gY43hI.d.ts +0 -34
  969. package/dist/model-definitions-BLOyeH5h.js +0 -73
  970. package/dist/model-definitions-CoByf5mT.js +0 -243
  971. package/dist/model-definitions-WP3OmzbS.d.ts +0 -57
  972. package/dist/model-selection-DhTE6GZD.js +0 -352
  973. package/dist/models--iAR9QkZ.js +0 -175
  974. package/dist/models-8ImVEkvh.js +0 -36
  975. package/dist/models-BIDM8htk.js +0 -48
  976. package/dist/models-BRgRfrcS.js +0 -36
  977. package/dist/models-Bib5-APc.js +0 -67
  978. package/dist/models-Bl67zOoe.js +0 -36
  979. package/dist/models-BqDDYFE3.d.ts +0 -65
  980. package/dist/models-BtRQoRIu.js +0 -36
  981. package/dist/models-BvXmOXik.js +0 -48
  982. package/dist/models-C-sJciOD.d.ts +0 -9
  983. package/dist/models-COnXPdlL.js +0 -24
  984. package/dist/models-CXTmk-Da.d.ts +0 -8
  985. package/dist/models-Cz0C_8re.js +0 -36
  986. package/dist/models-DbwEIt-m.d.ts +0 -15
  987. package/dist/models-DgXkSADi.js +0 -30
  988. package/dist/models-cli-Bv3y3JgQ.js +0 -257
  989. package/dist/monitor-BiVOsbbN.js +0 -1024
  990. package/dist/monitor-BumfRp1t.js +0 -60
  991. package/dist/monitor.account-Cd6EwtuZ.js +0 -5382
  992. package/dist/music-generation-provider-ZdDMiC-c.js +0 -308
  993. package/dist/nodes-C0f8XgD5.js +0 -1483
  994. package/dist/nodes-Dk4vOgg9.js +0 -3
  995. package/dist/nodes-pending-Cjg09MXz.js +0 -211
  996. package/dist/oauth-BIO69Qw0.d.ts +0 -25
  997. package/dist/oauth-CnO10TN2.js +0 -207
  998. package/dist/onboard-B3BYT5k7.js +0 -34
  999. package/dist/onboard-BDMNV6RE.js +0 -23
  1000. package/dist/onboard-B_WNNy5F.d.ts +0 -6
  1001. package/dist/onboard-BbyMaErU.js +0 -69
  1002. package/dist/onboard-BuYPNE6j2.js +0 -23
  1003. package/dist/onboard-C394zMnM.d.ts +0 -11
  1004. package/dist/onboard-CHn4oVbY.js +0 -24
  1005. package/dist/onboard-CPpVbb0O.js +0 -73
  1006. package/dist/onboard-CWDx7Crt.js +0 -23
  1007. package/dist/onboard-CbzkwBzu.d.ts +0 -12
  1008. package/dist/onboard-D099qUd0.js +0 -23
  1009. package/dist/onboard-D7dbzfHc.js +0 -23
  1010. package/dist/onboard-DB-x0nHF.js +0 -30
  1011. package/dist/onboard-DFVrRnxJ.js +0 -23
  1012. package/dist/onboard-DFiqoOc2.d.ts +0 -7
  1013. package/dist/onboard-DJaMK3rr.d.ts +0 -6
  1014. package/dist/onboard-DMdK8D_h.js +0 -67
  1015. package/dist/onboard-J-KL-I6m.js +0 -48
  1016. package/dist/onboard-MIBU-Rmv.js +0 -39
  1017. package/dist/onboard-vmGylfFe.js +0 -23
  1018. package/dist/openai-compat-errors-Dcr5Y8bF.js +0 -136
  1019. package/dist/openai-http-CcqspzU6.js +0 -836
  1020. package/dist/openresponses-http-BnyYYvUF.js +0 -1175
  1021. package/dist/operations-H2Oq0KYz.js +0 -805
  1022. package/dist/outbound.types-BhRehecY.d.ts +0 -291
  1023. package/dist/plugin-enabled-CEIKWKrq.js +0 -232
  1024. package/dist/plugin-entry-CTVRRaaA.d.ts +0 -47
  1025. package/dist/plugin-registration-BTyO5Fwt.js +0 -97
  1026. package/dist/plugin-runtime-_XF2N_UQ.d.ts +0 -117
  1027. package/dist/plugin-sdk/bundled-channel-config-schema-BsOWCrJT.d.ts +0 -3169
  1028. package/dist/plugin-service-B91jVlmZ.d.ts +0 -24
  1029. package/dist/plugin-service-CtGwVz8V.js +0 -1249
  1030. package/dist/postinstall-inventory.json +0 -5410
  1031. package/dist/prepare.runtime-9dlboph7.js +0 -798
  1032. package/dist/preview-warnings-DJx4KJpC.js +0 -618
  1033. package/dist/program-CWC-NBBB.js +0 -131
  1034. package/dist/provider-api-key-auth-BmNcYRMl.d.ts +0 -27
  1035. package/dist/provider-auth-api-key-CCaFiqY3.js +0 -5
  1036. package/dist/provider-auth-result-D_E9dcVc.d.ts +0 -21
  1037. package/dist/provider-catalog-5KZLmrDO.js +0 -11
  1038. package/dist/provider-catalog-7P6AvDzS.js +0 -11
  1039. package/dist/provider-catalog-B2gyTjTU.js +0 -88
  1040. package/dist/provider-catalog-B3YBhe77.js +0 -17
  1041. package/dist/provider-catalog-B7XEeuUm.js +0 -11
  1042. package/dist/provider-catalog-BFGPRd9v.js +0 -17
  1043. package/dist/provider-catalog-BLvkIMSk.d.ts +0 -6
  1044. package/dist/provider-catalog-BPBL9mJf.d.ts +0 -5
  1045. package/dist/provider-catalog-BRkZ6-HD.d.ts +0 -5
  1046. package/dist/provider-catalog-Bfl_AoTZ.js +0 -142
  1047. package/dist/provider-catalog-BpiHWHu1.js +0 -11
  1048. package/dist/provider-catalog-C1qDLekT.d.ts +0 -5
  1049. package/dist/provider-catalog-CKWNCfry.js +0 -11
  1050. package/dist/provider-catalog-CUHB2pSt.d.ts +0 -7
  1051. package/dist/provider-catalog-CWqN2j6J.d.ts +0 -5
  1052. package/dist/provider-catalog-CZ8oYbx3.js +0 -11
  1053. package/dist/provider-catalog-CcQ5-4ZW.d.ts +0 -6
  1054. package/dist/provider-catalog-Cd16uZ0U.js +0 -20
  1055. package/dist/provider-catalog-CpF2D0VK.js +0 -61
  1056. package/dist/provider-catalog-CvXq36zW.d.ts +0 -5
  1057. package/dist/provider-catalog-D2pgEME3.js +0 -48
  1058. package/dist/provider-catalog-DPzcupEl.d.ts +0 -5
  1059. package/dist/provider-catalog-DaeI606G.d.ts +0 -9
  1060. package/dist/provider-catalog-DrOCtTb-.js +0 -11
  1061. package/dist/provider-catalog-DwZ1J2Al.d.ts +0 -6
  1062. package/dist/provider-catalog-Dy7IcHmS.js +0 -107
  1063. package/dist/provider-catalog-TsZS52nq.d.ts +0 -10
  1064. package/dist/provider-catalog-YqIFRCND.d.ts +0 -5
  1065. package/dist/provider-catalog-Ywb5jRwG.d.ts +0 -5
  1066. package/dist/provider-catalog-evknl1oN.js +0 -11
  1067. package/dist/provider-catalog-l0hFpFO2.d.ts +0 -17
  1068. package/dist/provider-catalog-shared-DsRBv0Tp.d.ts +0 -62
  1069. package/dist/provider-dispatcher-BMy9mBJ1.js +0 -22
  1070. package/dist/provider-model-shared-CPAfQBNs.d.ts +0 -143
  1071. package/dist/provider-models-Diu65OcG.d.ts +0 -18
  1072. package/dist/provider-models-LE7PlLYY.js +0 -22
  1073. package/dist/provider-onboard-CpvXEmvz.d.ts +0 -91
  1074. package/dist/provider-registration-DF-LkmNE.js +0 -235
  1075. package/dist/provider-registry-D9cTPW1F.d.ts +0 -8
  1076. package/dist/provider-registry-DI7gMKUP.d.ts +0 -8
  1077. package/dist/provider-registry-DZtgZDkl.d.ts +0 -29
  1078. package/dist/provider-self-hosted-setup-CoHvoyKm.d.ts +0 -74
  1079. package/dist/provider-stream-BpXJr5Ap.d.ts +0 -139
  1080. package/dist/provider-stream-family-Bj5aBD8w.js +0 -2
  1081. package/dist/provider-stream-shared-BaUkhUHj.d.ts +0 -132
  1082. package/dist/provider-usage-DFUhW2do.js +0 -651
  1083. package/dist/provider-web-search-contract-fields-CkXzSsWu.d.ts +0 -25
  1084. package/dist/pw-ai-9Q_dIq4B.js +0 -3064
  1085. package/dist/register.agent-CbfrlzXB.js +0 -152
  1086. package/dist/register.crestodian-CEg0rPfK.js +0 -24
  1087. package/dist/register.maintenance-k9N8I4Wg.js +0 -85
  1088. package/dist/register.subclis-CrXOeaS3.js +0 -3
  1089. package/dist/register.subclis-DfKlni8N.js +0 -31
  1090. package/dist/register.subclis-core-Bg4wbDsO.js +0 -278
  1091. package/dist/registry-Bh3-P2HL.d.ts +0 -8
  1092. package/dist/registry-types-BmEUS4d3.d.ts +0 -392
  1093. package/dist/repair-sequencing-E4yViXG9.js +0 -652
  1094. package/dist/reply-payload-S2mrc_Mh.d.ts +0 -200
  1095. package/dist/reply-turn-admission-BBoPjmGB.js +0 -2056
  1096. package/dist/reply.runtime-C5wfxVI_.js +0 -2
  1097. package/dist/result-fallback-classifier-CX4iLD1G.js +0 -98
  1098. package/dist/route-CifxcQZ1.js +0 -475
  1099. package/dist/routes-B3XAOeWo.js +0 -2
  1100. package/dist/routes-H185h3U-.js +0 -3701
  1101. package/dist/run-CTJFbwbB.js +0 -1162
  1102. package/dist/run-command-B7B53tYk.js +0 -23
  1103. package/dist/run-command-BFuxRDxS.js +0 -2
  1104. package/dist/run-context-C7im9ICg.js +0 -66
  1105. package/dist/run-embedded.runtime-TljBTbzh.js +0 -4
  1106. package/dist/run-execution-cli.runtime-Bt5zwx1W.js +0 -4
  1107. package/dist/run-executor.runtime-hmbWX2Ct.js +0 -330
  1108. package/dist/run-subagent-registry.runtime-B70X80nS.js +0 -2
  1109. package/dist/runtime-DoKE0o7v.js +0 -436
  1110. package/dist/runtime-api-Ca4Llbgf.js +0 -12
  1111. package/dist/runtime-api-pa8xcEmg.d.ts +0 -5
  1112. package/dist/runtime-channel-CFQ59svm.js +0 -148
  1113. package/dist/runtime-channel-DRwCWGUx.js +0 -2
  1114. package/dist/runtime-embedded-agent.runtime-DwmqKUVp.js +0 -2
  1115. package/dist/runtime-forwarders-BMThPHg_.d.ts +0 -39
  1116. package/dist/sdk-setup-tools-Cg_Tabrf.js +0 -8
  1117. package/dist/selection-COhr7g82.js +0 -18365
  1118. package/dist/selection-_G44EVqd.js +0 -3
  1119. package/dist/send-media-BNc67G7I.js +0 -2072
  1120. package/dist/server-5rR0RCpI.js +0 -24
  1121. package/dist/server-context-BhiPROPA.js +0 -955
  1122. package/dist/server-context-OShBAJZQ.js +0 -2
  1123. package/dist/server-cron-Bkzb9edh.js +0 -3173
  1124. package/dist/server-cron-DdR-ugiU.js +0 -2
  1125. package/dist/server-lwtC1vaS.js +0 -72
  1126. package/dist/server-methods-BY_ZqDFJ.js +0 -497
  1127. package/dist/server-node-events-CLvE94AS.js +0 -597
  1128. package/dist/server-plugin-bootstrap-cKOAH5GL.js +0 -71
  1129. package/dist/server-plugins-CPpUykw5.js +0 -435
  1130. package/dist/server-reload-handlers-uzt4VDZ-.js +0 -719
  1131. package/dist/server-restart-sentinel-CpvV0t4O.js +0 -700
  1132. package/dist/server-runtime-services-BhOHoerM.js +0 -147
  1133. package/dist/server-runtime-services-D3Ig68nC.js +0 -3
  1134. package/dist/server-startup-plugins-DslzKVHK.js +0 -127
  1135. package/dist/server-startup-post-attach-DPFBTQez.js +0 -793
  1136. package/dist/server-ws-runtime-D0zoWoiz.js +0 -374
  1137. package/dist/server.impl-CzqLQ3qt.js +0 -2622
  1138. package/dist/session-kill-http-D8JhwZVS.js +0 -121
  1139. package/dist/session-reset-service-uoi7E4Xp.js +0 -651
  1140. package/dist/session-status.runtime-CZK5IU8w.js +0 -2
  1141. package/dist/session-subagent-reactivation.runtime-BSO00-FY.js +0 -2
  1142. package/dist/session-tab-registry-DM9U7e3o.js +0 -551
  1143. package/dist/sessions-B-SkIoaa.js +0 -1917
  1144. package/dist/sessions-history-http-DCiOG4FK.js +0 -432
  1145. package/dist/sessions-patch-DlAAvQvB.js +0 -401
  1146. package/dist/sessions-resolve-DfMXookg.js +0 -180
  1147. package/dist/sessions.runtime-0V2YxKxB.js +0 -2
  1148. package/dist/snapshot-urls-Ble1-NEW.js +0 -317
  1149. package/dist/speech-core-Bk60ZS_y.d.ts +0 -49
  1150. package/dist/speech-provider-DQO9eZd0.js +0 -233
  1151. package/dist/speech-provider-DnBCla4V.js +0 -171
  1152. package/dist/speech-provider-DyYHFxT5.js +0 -227
  1153. package/dist/standalone-9EWfcxeO.js +0 -42
  1154. package/dist/startup-context-nti4X0_w.js +0 -314
  1155. package/dist/status-subagents.runtime-CPZb1EF1.js +0 -32
  1156. package/dist/status-text-C1Hf37lF.js +0 -301
  1157. package/dist/stream-9VBt1MDs.js +0 -26
  1158. package/dist/stream-B_3P7v7P.js +0 -86
  1159. package/dist/stream-CXsue2-v.d.ts +0 -9
  1160. package/dist/stream-oNBFxfKt.d.ts +0 -5
  1161. package/dist/subagent-announce-CPjQQLy8.js +0 -353
  1162. package/dist/subagent-announce-delivery-B6iBOicL.js +0 -1369
  1163. package/dist/subagent-control-DP72sk-l.js +0 -492
  1164. package/dist/subagent-hooks-B1oUIYH3.js +0 -2
  1165. package/dist/subagent-hooks-BkGj4_xI.js +0 -230
  1166. package/dist/subagent-hooks-api-D2mulK3S.js +0 -23
  1167. package/dist/subagent-registry-CEKAUB5h.js +0 -3
  1168. package/dist/subagent-registry-OUVucPAn.js +0 -2627
  1169. package/dist/subagent-session-cleanup-Bx8d3kw0.js +0 -390
  1170. package/dist/system-CelaP2zI.js +0 -111
  1171. package/dist/talk-DGOI3Lu3.js +0 -2454
  1172. package/dist/target-id-BXRG7x9x.js +0 -107
  1173. package/dist/thinking-B8V29FhB.js +0 -35
  1174. package/dist/thread-bindings-DpVdEPZ0.js +0 -228
  1175. package/dist/tool-DHzDpxE4.js +0 -143
  1176. package/dist/tool-dispatch-ClP3Rc7g.js +0 -155
  1177. package/dist/tool-resolution-CZcLod1d.js +0 -153
  1178. package/dist/tool-split-BhiQ8676.d.ts +0 -19
  1179. package/dist/tools-ZvSvbsCW.d.ts +0 -38
  1180. package/dist/tools-effective-C2mHZT-A.js +0 -442
  1181. package/dist/tools-effective-inventory-ctnM7hc6.js +0 -379
  1182. package/dist/tools-invoke-Ci6Rux2s.js +0 -51
  1183. package/dist/tools-invoke-http-CJflXcJk.js +0 -68
  1184. package/dist/tools-invoke-shared-BLu_mJEX.js +0 -200
  1185. package/dist/tts-B2rPJPij.js +0 -83
  1186. package/dist/tts-Gp9FI3_n.js +0 -163
  1187. package/dist/tts-runtime-DNi1HXPF.d.ts +0 -230
  1188. package/dist/tui-BUhfQ9vD.js +0 -3
  1189. package/dist/tui-BhH5mvLf.js +0 -2
  1190. package/dist/tui-backend-C_4ajTHI.js +0 -257
  1191. package/dist/tui-cli-BhWJ-QoB.js +0 -40
  1192. package/dist/tui-ink-run-BTWbUQGb.js +0 -7414
  1193. package/dist/tui-ink-run-DfTdivkh.js +0 -2
  1194. package/dist/types-B4fW3r5y.d.ts +0 -111
  1195. package/dist/types-DI62NfFe.d.ts +0 -7034
  1196. package/dist/types-sAih_uQb.d.ts +0 -393
  1197. package/dist/types.public-B3MKhuo2.d.ts +0 -70
  1198. package/dist/video-generation-B9c6a5cw.js +0 -207
  1199. package/dist/video-generation-BgJp7UIA.d.ts +0 -224
  1200. package/dist/video-generation-provider-BjiVjf40.js +0 -325
  1201. package/dist/video-generation-provider-CsnQJg_h.js +0 -297
  1202. package/dist/video-generation-provider-DtU-ZPqP.js +0 -64
  1203. package/dist/video-generation-provider-wZ0bzv0e.js +0 -77
  1204. package/dist/webhook-targets-Cy8e7y3g.d.ts +0 -99
  1205. package/dist/zod-schema.core-BGLctDlK.d.ts +0 -166
  1206. package/skills/canvas/SKILL.md +0 -78
  1207. package/skills/clawhub/SKILL.md +0 -77
  1208. package/skills/coding-agent/SKILL.md +0 -143
  1209. package/skills/diagram-maker/SKILL.md +0 -53
  1210. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -85
  1211. package/skills/diagram-maker/references/svg-template.md +0 -112
  1212. package/skills/gemini/SKILL.md +0 -47
  1213. package/skills/gh-issues/SKILL.md +0 -213
  1214. package/skills/gifgrep/SKILL.md +0 -85
  1215. package/skills/github/SKILL.md +0 -84
  1216. package/skills/healthcheck/SKILL.md +0 -105
  1217. package/skills/mcporter/SKILL.md +0 -61
  1218. package/skills/meme-maker/SKILL.md +0 -42
  1219. package/skills/meme-maker/references/templates.json +0 -358
  1220. package/skills/meme-maker/scripts/meme.mjs +0 -398
  1221. package/skills/model-usage/SKILL.md +0 -71
  1222. package/skills/model-usage/references/codexbar-cli.md +0 -33
  1223. package/skills/model-usage/scripts/model_usage.py +0 -319
  1224. package/skills/model-usage/scripts/test_model_usage.py +0 -40
  1225. package/skills/nano-pdf/SKILL.md +0 -38
  1226. package/skills/node-connect/SKILL.md +0 -143
  1227. package/skills/node-inspect-debugger/SKILL.md +0 -85
  1228. package/skills/openai-whisper/SKILL.md +0 -38
  1229. package/skills/openai-whisper-api/SKILL.md +0 -71
  1230. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -154
  1231. package/skills/oracle/SKILL.md +0 -126
  1232. package/skills/pyproject.toml +0 -10
  1233. package/skills/python-debugpy/SKILL.md +0 -73
  1234. package/skills/sag/SKILL.md +0 -87
  1235. package/skills/session-logs/SKILL.md +0 -151
  1236. package/skills/sherpa-onnx-tts/SKILL.md +0 -109
  1237. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1238. package/skills/skill-creator/SKILL.md +0 -78
  1239. package/skills/skill-creator/license.txt +0 -202
  1240. package/skills/skill-creator/scripts/init_skill.py +0 -378
  1241. package/skills/skill-creator/scripts/package_skill.py +0 -139
  1242. package/skills/skill-creator/scripts/quick_validate.py +0 -169
  1243. package/skills/skill-creator/scripts/test_package_skill.py +0 -161
  1244. package/skills/skill-creator/scripts/test_quick_validate.py +0 -116
  1245. package/skills/spike/SKILL.md +0 -51
  1246. package/skills/summarize/SKILL.md +0 -87
  1247. package/skills/taskflow/SKILL.md +0 -149
  1248. package/skills/taskflow/examples/inbox-triage.lobster +0 -33
  1249. package/skills/taskflow/examples/pr-intake.lobster +0 -32
  1250. package/skills/taskflow-inbox-triage/SKILL.md +0 -119
  1251. package/skills/video-frames/SKILL.md +0 -46
  1252. package/skills/video-frames/scripts/frame.sh +0 -81
  1253. package/skills/voice-call/SKILL.md +0 -45
  1254. package/skills/weather/SKILL.md +0 -64
  1255. /package/dist/{acp-runtime-backend-DbchQ02o.js → acp-runtime-backend-DZ1Lnt7f.js} +0 -0
  1256. /package/dist/{delegate-k1aptKei.js → delegate-CwhxUdeb.js} +0 -0
  1257. /package/dist/{dispatch-acp-CD4YxPpf.js → dispatch-acp-BP4I5ZQf.js} +0 -0
  1258. /package/dist/{exec-approvals-ByWUCFQM.js → exec-approvals-ByWUCFQM2.js} +0 -0
  1259. /package/dist/{heartbeat-runner-CM0UZxa_.js → heartbeat-runner-CL3alQ8-.js} +0 -0
  1260. /package/dist/{index-B0VJdRJQ.d.ts → index-B0VJdRJQ2.d.ts} +0 -0
  1261. /package/dist/{library-CQ71yATP.js → library-CiTr_aqC.js} +0 -0
  1262. /package/dist/{run-session-state-DbDeH-q6.js → run-session-state-BOMUtBKZ.js} +0 -0
  1263. /package/dist/{session-subagent-reactivation-Bj91A2ms.js → session-subagent-reactivation-CH0C2I6Y.js} +0 -0
  1264. /package/dist/{types-C4HgagiY2.d.ts → types-C4HgagiY.d.ts} +0 -0
@@ -0,0 +1,1917 @@
1
+ import { c as normalizeOptionalString, p as readStringValue, s as normalizeOptionalLowercaseString } from "./string-coerce-DKw2K5wM.js";
2
+ import { i as formatErrorMessage } from "./errors-C_Wa6a5T.js";
3
+ import "./agent-scope-EEbMCF2I.js";
4
+ import { c as parseAgentSessionKey } from "./session-key-utils-CdfsDYvz.js";
5
+ import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, v as toAgentStoreSessionKey } from "./session-key-CJf5_zWs.js";
6
+ import { c as resolveDefaultAgentId, n as listAgentIds, o as resolveAgentWorkspaceDir } from "./agent-scope-config-BHdZonI2.js";
7
+ import { c as measureDiagnosticsTimelineSpan, l as measureDiagnosticsTimelineSpanSync } from "./plugin-metadata-snapshot-CHymO30I.js";
8
+ import { f as normalizeReasoningLevel, p as normalizeThinkLevel } from "./thinking-BmfCvr5O.js";
9
+ import { n as GATEWAY_CLIENT_IDS } from "./client-info-D6_UASoA.js";
10
+ import { $t as validateSessionsSendParams, Bt as validateSessionsCompactionListParams, Ft as validateSessionsAbortParams, Gt as validateSessionsListParams, Ht as validateSessionsCreateParams, It as validateSessionsCleanupParams, Jt as validateSessionsPatchParams, Kt as validateSessionsMessagesSubscribeParams, Lt as validateSessionsCompactParams, Qt as validateSessionsResolveParams, Ri as ErrorCodes, Rt as validateSessionsCompactionBranchParams, Ut as validateSessionsDeleteParams, Vt as validateSessionsCompactionRestoreParams, Wt as validateSessionsDescribeParams, Xt as validateSessionsPreviewParams, Yt as validateSessionsPluginPatchParams, Zt as validateSessionsResetParams, qt as validateSessionsMessagesUnsubscribeParams, zi as errorShape, zt as validateSessionsCompactionGetParams } from "./src-B1Y482-m.js";
11
+ import { t as ADMIN_SCOPE } from "./operator-scopes-DGvgHuOd.js";
12
+ import { T as patchPluginSessionExtension } from "./loader-Ct7uZnva.js";
13
+ import { i as hasInternalHookListeners, m as triggerInternalHook, n as createInternalHookEvent } from "./internal-hooks-DgzYHw8L.js";
14
+ import { t as isPluginJsonValue } from "./host-hook-json-BHsxXV1L.js";
15
+ import { i as resolveMainSessionKey, n as resolveAgentMainSessionKey } from "./main-session-BxJmPEXx.js";
16
+ import { a as resolveStoredSessionKeyForAgentStore, i as resolveSessionStoreKey, o as resolveStoredSessionOwnerAgentId, r as resolveSessionStoreAgentId } from "./session-store-key-dbCfepNe.js";
17
+ import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath } from "./paths-C79m3Aob.js";
18
+ import { t as loadSessionStore } from "./store-load-CVdafI-Y.js";
19
+ import { d as updateSessionStore } from "./store-DH20opqS.js";
20
+ import { t as listConfiguredSessionStoreAgentIds } from "./targets-CQE5epyU.js";
21
+ import { t as loadCombinedSessionStoreForGateway } from "./combined-store-gateway-n-bwAWEx.js";
22
+ import { i as serializeSessionCleanupResult, r as runSessionsCleanup } from "./sessions-CtMqsEs2.js";
23
+ import "./transcript-jsonl-LFU2CQ2E.js";
24
+ import { S as waitForEmbeddedAgentRunEnd, n as abortEmbeddedAgentRun, o as isEmbeddedAgentRunActive } from "./runs-B0iD89hy.js";
25
+ import { a as readRecentSessionMessagesWithStatsAsync, c as readSessionMessageCountAsync, o as readRecentSessionTranscriptLines, u as readSessionPreviewItemsFromTranscript } from "./session-utils.fs-D-Ly08WB.js";
26
+ import { a as resolveSessionTranscriptCandidates, t as archiveFileOnDisk } from "./session-transcript-files.fs-CusxaEql.js";
27
+ import { t as resolveModelAgentRuntimeMetadata } from "./agent-runtime-metadata-CbrTK-1N.js";
28
+ import { c as loadSessionEntry, d as resolveDeletedAgentIdFromSessionKey, f as resolveFreshestSessionEntryFromStoreKeys, g as resolveSessionDisplayModelIdentityRef, l as migrateAndPruneGatewaySessionStoreKey, m as resolveGatewaySessionStoreTarget, o as listSessionsFromStoreAsync, s as loadGatewaySessionRow, t as buildGatewaySessionRow, v as resolveSessionModelRef } from "./session-utils-pgndLXV7.js";
29
+ import { r as triggerSessionPatchHook } from "./fengming-tools-DBLsJfsf.js";
30
+ import { a as clearSessionQueues } from "./queue-Bp_sf0n7.js";
31
+ import { g as listSessionCompactionCheckpoints, h as getSessionCompactionCheckpoint, m as forkCompactionCheckpointTranscriptAsync } from "./model-context-tokens-BT85ZQUi.js";
32
+ import { n as compactEmbeddedAgentSession } from "./embedded-agent-DxwzoZkp.js";
33
+ import { i as chatHandlers } from "./chat-Czh_tXM0.js";
34
+ import { n as setGatewayDedupeEntry } from "./agent-wait-dedupe-I81_F2tr.js";
35
+ import { t as resolveSessionKeyFromResolveParams } from "./sessions-resolve-C3ORcdmo.js";
36
+ import { t as reactivateCompletedSubagentSession } from "./session-subagent-reactivation-CH0C2I6Y.js";
37
+ import { n as resolveSessionKeyForRun } from "./server-session-key-BKIo1HjL.js";
38
+ import { t as assertValidParams } from "./validation-V7yffIu7.js";
39
+ import { t as applySessionsPatchToStore } from "./sessions-patch-BYC5gvY1.js";
40
+ import fs from "node:fs";
41
+ import path from "node:path";
42
+ import { randomUUID } from "node:crypto";
43
+ //#region src/gateway/server-methods/sessions.ts
44
+ function filterSessionStoreToConfiguredAgents(cfg, store) {
45
+ const configuredAgentIds = new Set(listConfiguredSessionStoreAgentIds(cfg));
46
+ const isConfiguredSessionKey = (key) => {
47
+ const normalizedKey = normalizeOptionalString(key);
48
+ if (!normalizedKey) return false;
49
+ const agentId = resolveSessionStoreAgentId(cfg, resolveSessionStoreKey({
50
+ cfg,
51
+ sessionKey: normalizedKey
52
+ }));
53
+ return configuredAgentIds.has(normalizeAgentId(agentId));
54
+ };
55
+ return Object.fromEntries(Object.entries(store).filter(([key, entry]) => {
56
+ if (key === "global" || key === "unknown") return true;
57
+ if (isConfiguredSessionKey(key)) return true;
58
+ return isConfiguredSessionKey(entry?.spawnedBy) || isConfiguredSessionKey(entry?.parentSessionKey);
59
+ }));
60
+ }
61
+ function inheritSessionRuntimeSelection(parentEntry) {
62
+ if (!parentEntry) return {};
63
+ return {
64
+ ...parentEntry.providerOverride ? { providerOverride: parentEntry.providerOverride } : {},
65
+ ...parentEntry.modelOverride ? { modelOverride: parentEntry.modelOverride } : {},
66
+ ...parentEntry.modelOverrideSource ? { modelOverrideSource: parentEntry.modelOverrideSource } : {},
67
+ ...parentEntry.agentRuntimeOverride ? { agentRuntimeOverride: parentEntry.agentRuntimeOverride } : {},
68
+ ...parentEntry.modelProvider ? { modelProvider: parentEntry.modelProvider } : {},
69
+ ...parentEntry.model ? { model: parentEntry.model } : {},
70
+ ...typeof parentEntry.contextTokens === "number" ? { contextTokens: parentEntry.contextTokens } : {},
71
+ ...parentEntry.thinkingLevel ? { thinkingLevel: parentEntry.thinkingLevel } : {},
72
+ ...typeof parentEntry.fastMode === "boolean" ? { fastMode: parentEntry.fastMode } : {},
73
+ ...parentEntry.verboseLevel ? { verboseLevel: parentEntry.verboseLevel } : {},
74
+ ...parentEntry.traceLevel ? { traceLevel: parentEntry.traceLevel } : {},
75
+ ...parentEntry.reasoningLevel ? { reasoningLevel: parentEntry.reasoningLevel } : {},
76
+ ...parentEntry.elevatedLevel ? { elevatedLevel: parentEntry.elevatedLevel } : {},
77
+ ...parentEntry.authProfileOverride ? { authProfileOverride: parentEntry.authProfileOverride } : {},
78
+ ...parentEntry.authProfileOverrideSource ? { authProfileOverrideSource: parentEntry.authProfileOverrideSource } : {}
79
+ };
80
+ }
81
+ let sessionsRuntimeModulePromise;
82
+ let loggedSlowSessionsListCatalog = false;
83
+ const SESSIONS_LIST_MODEL_CATALOG_TIMEOUT_MS = 750;
84
+ function loadSessionsRuntimeModule() {
85
+ sessionsRuntimeModulePromise ??= import("./sessions.runtime.js");
86
+ return sessionsRuntimeModulePromise;
87
+ }
88
+ async function loadOptionalSessionsListModelCatalog(context) {
89
+ let timeout;
90
+ const timedOut = Symbol("sessions-list-model-catalog-timeout");
91
+ const timeoutPromise = new Promise((resolve) => {
92
+ timeout = setTimeout(() => resolve(timedOut), SESSIONS_LIST_MODEL_CATALOG_TIMEOUT_MS);
93
+ timeout.unref?.();
94
+ });
95
+ try {
96
+ const result = await Promise.race([context.loadGatewayModelCatalog().catch(() => void 0), timeoutPromise]);
97
+ if (result === timedOut) {
98
+ if (!loggedSlowSessionsListCatalog) {
99
+ loggedSlowSessionsListCatalog = true;
100
+ context.logGateway.debug(`sessions.list continuing without model catalog after ${SESSIONS_LIST_MODEL_CATALOG_TIMEOUT_MS}ms`);
101
+ }
102
+ return;
103
+ }
104
+ return Array.isArray(result) ? result : void 0;
105
+ } finally {
106
+ if (timeout) clearTimeout(timeout);
107
+ }
108
+ }
109
+ function requireSessionKey(key, respond) {
110
+ const normalized = normalizeOptionalString(typeof key === "string" ? key : typeof key === "number" ? String(key) : typeof key === "bigint" ? String(key) : "") ?? "";
111
+ if (!normalized) {
112
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "key required"));
113
+ return null;
114
+ }
115
+ return normalized;
116
+ }
117
+ function rejectPluginRuntimeDeleteMismatch(params) {
118
+ const pluginOwnerId = normalizeOptionalString(params.client?.internal?.pluginRuntimeOwnerId);
119
+ if (!pluginOwnerId || !params.entry) return false;
120
+ if (normalizeOptionalString(params.entry.pluginOwnerId) === pluginOwnerId) return false;
121
+ params.respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `Plugin "${pluginOwnerId}" cannot delete session "${params.key}" because it did not create it.`));
122
+ return true;
123
+ }
124
+ function resolveGatewaySessionTargetFromKey(key, cfg, opts) {
125
+ const target = resolveGatewaySessionStoreTarget({
126
+ cfg,
127
+ key,
128
+ ...opts?.agentId ? { agentId: opts.agentId } : {}
129
+ });
130
+ return {
131
+ cfg,
132
+ target,
133
+ storePath: target.storePath
134
+ };
135
+ }
136
+ function resolveOptionalInitialSessionMessage(params) {
137
+ if (typeof params.task === "string" && params.task.trim()) return params.task;
138
+ if (typeof params.message === "string" && params.message.trim()) return params.message;
139
+ }
140
+ function shouldAttachPendingMessageSeq(params) {
141
+ if (params.cached) return false;
142
+ return (params.payload && typeof params.payload === "object" ? params.payload.status : void 0) === "started";
143
+ }
144
+ function emitSessionsChanged(context, payload) {
145
+ const connIds = context.getSessionEventSubscriberConnIds();
146
+ if (connIds.size === 0) return;
147
+ const sessionRow = payload.sessionKey ? loadGatewaySessionRow(payload.sessionKey, payload.sessionKey === "global" && payload.agentId ? { agentId: payload.agentId } : void 0) : null;
148
+ const omitUnscopedGlobalGoal = payload.sessionKey === "global" && !payload.agentId;
149
+ const defaultAgentId = resolveDefaultAgentId(context.getRuntimeConfig());
150
+ context.broadcastToConnIds("sessions.changed", {
151
+ ...payload,
152
+ ts: Date.now(),
153
+ ...sessionRow ? {
154
+ updatedAt: sessionRow.updatedAt ?? void 0,
155
+ sessionId: sessionRow.sessionId,
156
+ kind: sessionRow.kind,
157
+ channel: sessionRow.channel,
158
+ subject: sessionRow.subject,
159
+ groupChannel: sessionRow.groupChannel,
160
+ space: sessionRow.space,
161
+ chatType: sessionRow.chatType,
162
+ origin: sessionRow.origin,
163
+ spawnedBy: sessionRow.spawnedBy,
164
+ spawnedWorkspaceDir: sessionRow.spawnedWorkspaceDir,
165
+ spawnedCwd: sessionRow.spawnedCwd,
166
+ forkedFromParent: sessionRow.forkedFromParent,
167
+ spawnDepth: sessionRow.spawnDepth,
168
+ subagentRole: sessionRow.subagentRole,
169
+ subagentControlScope: sessionRow.subagentControlScope,
170
+ label: sessionRow.label,
171
+ displayName: sessionRow.displayName,
172
+ deliveryContext: sessionRow.deliveryContext,
173
+ parentSessionKey: sessionRow.parentSessionKey,
174
+ childSessions: sessionRow.childSessions,
175
+ thinkingLevel: sessionRow.thinkingLevel,
176
+ fastMode: sessionRow.fastMode,
177
+ verboseLevel: sessionRow.verboseLevel,
178
+ traceLevel: sessionRow.traceLevel,
179
+ reasoningLevel: sessionRow.reasoningLevel,
180
+ elevatedLevel: sessionRow.elevatedLevel,
181
+ sendPolicy: sessionRow.sendPolicy,
182
+ systemSent: sessionRow.systemSent,
183
+ abortedLastRun: sessionRow.abortedLastRun,
184
+ inputTokens: sessionRow.inputTokens,
185
+ outputTokens: sessionRow.outputTokens,
186
+ lastChannel: sessionRow.lastChannel,
187
+ lastTo: sessionRow.lastTo,
188
+ lastAccountId: sessionRow.lastAccountId,
189
+ lastThreadId: sessionRow.lastThreadId,
190
+ totalTokens: sessionRow.totalTokens,
191
+ totalTokensFresh: sessionRow.totalTokensFresh,
192
+ ...omitUnscopedGlobalGoal ? {} : { goal: sessionRow.goal ?? null },
193
+ contextTokens: sessionRow.contextTokens,
194
+ estimatedCostUsd: sessionRow.estimatedCostUsd,
195
+ responseUsage: sessionRow.responseUsage,
196
+ modelProvider: sessionRow.modelProvider,
197
+ model: sessionRow.model,
198
+ status: sessionRow.status,
199
+ hasActiveRun: hasTrackedActiveSessionRun({
200
+ context,
201
+ requestedKey: payload.sessionKey ?? sessionRow.key,
202
+ canonicalKey: sessionRow.key,
203
+ agentId: sessionRow.key === "global" ? payload.agentId : void 0,
204
+ defaultAgentId
205
+ }),
206
+ startedAt: sessionRow.startedAt,
207
+ endedAt: sessionRow.endedAt,
208
+ runtimeMs: sessionRow.runtimeMs,
209
+ compactionCheckpointCount: sessionRow.compactionCheckpointCount,
210
+ latestCompactionCheckpoint: sessionRow.latestCompactionCheckpoint,
211
+ pluginExtensions: sessionRow.pluginExtensions
212
+ } : {}
213
+ }, connIds, { dropIfSlow: true });
214
+ }
215
+ function emitSessionOperation(context, payload) {
216
+ const connIds = context.getSessionEventSubscriberConnIds();
217
+ if (connIds.size === 0) return;
218
+ context.broadcastToConnIds("session.operation", {
219
+ ...payload,
220
+ ts: Date.now()
221
+ }, connIds, { dropIfSlow: true });
222
+ }
223
+ function rejectWebchatSessionMutation(params) {
224
+ if (!params.client?.connect || !params.isWebchatConnect(params.client.connect)) return false;
225
+ if (params.client.connect.client.id === GATEWAY_CLIENT_IDS.CONTROL_UI) return false;
226
+ params.respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `webchat clients cannot ${params.action} sessions; use chat.send for session-scoped updates`));
227
+ return true;
228
+ }
229
+ function buildDashboardSessionKey(agentId) {
230
+ return `agent:${agentId}:dashboard:${randomUUID()}`;
231
+ }
232
+ function cloneCheckpointSessionEntry(params) {
233
+ return {
234
+ ...params.currentEntry,
235
+ sessionId: params.nextSessionId,
236
+ sessionFile: params.nextSessionFile,
237
+ updatedAt: Date.now(),
238
+ systemSent: false,
239
+ abortedLastRun: false,
240
+ startedAt: void 0,
241
+ endedAt: void 0,
242
+ runtimeMs: void 0,
243
+ status: void 0,
244
+ inputTokens: void 0,
245
+ outputTokens: void 0,
246
+ cacheRead: void 0,
247
+ cacheWrite: void 0,
248
+ estimatedCostUsd: void 0,
249
+ totalTokens: typeof params.totalTokens === "number" && Number.isFinite(params.totalTokens) ? params.totalTokens : void 0,
250
+ totalTokensFresh: typeof params.totalTokens === "number" && Number.isFinite(params.totalTokens) ? true : void 0,
251
+ label: params.label ?? params.currentEntry.label,
252
+ parentSessionKey: params.parentSessionKey ?? params.currentEntry.parentSessionKey,
253
+ compactionCheckpoints: params.preserveCompactionCheckpoints ? params.currentEntry.compactionCheckpoints : void 0
254
+ };
255
+ }
256
+ function resolveCheckpointForkSource(checkpoint) {
257
+ const preCompactionFile = checkpoint.preCompaction.sessionFile?.trim();
258
+ if (preCompactionFile) return {
259
+ sourceFile: preCompactionFile,
260
+ sourceLeafId: checkpoint.preCompaction.leafId,
261
+ totalTokens: checkpoint.tokensBefore
262
+ };
263
+ const postCompactionFile = checkpoint.postCompaction.sessionFile?.trim();
264
+ if (!postCompactionFile) return null;
265
+ const postCompactionLeafId = checkpoint.postCompaction.leafId ?? checkpoint.postCompaction.entryId;
266
+ if (!postCompactionLeafId) return null;
267
+ return {
268
+ sourceFile: postCompactionFile,
269
+ sourceLeafId: postCompactionLeafId,
270
+ totalTokens: checkpoint.tokensAfter
271
+ };
272
+ }
273
+ function isAgentMainSessionKey(cfg, sessionKey) {
274
+ const parsed = parseAgentSessionKey(sessionKey);
275
+ if (!parsed) return false;
276
+ return sessionKey === resolveAgentMainSessionKey({
277
+ cfg,
278
+ agentId: parsed.agentId
279
+ });
280
+ }
281
+ async function createAgentMainSessionForSend(params) {
282
+ const agentId = parseAgentSessionKey(params.canonicalKey)?.agentId;
283
+ if (!agentId) return {
284
+ ok: false,
285
+ error: errorShape(ErrorCodes.INVALID_REQUEST, `session not found: ${params.canonicalKey}`)
286
+ };
287
+ let createResult;
288
+ await sessionsHandlers["sessions.create"]({
289
+ req: params.req,
290
+ params: {
291
+ key: params.canonicalKey,
292
+ agentId
293
+ },
294
+ respond: (ok, payload, error) => {
295
+ createResult = {
296
+ ok,
297
+ payload: payload && typeof payload === "object" ? payload : void 0,
298
+ error
299
+ };
300
+ },
301
+ context: params.context,
302
+ client: params.client,
303
+ isWebchatConnect: params.isWebchatConnect
304
+ });
305
+ if (!createResult) return {
306
+ ok: false,
307
+ error: errorShape(ErrorCodes.UNAVAILABLE, "sessions.create did not respond")
308
+ };
309
+ if (!createResult.ok) return {
310
+ ok: false,
311
+ error: createResult.error ?? errorShape(ErrorCodes.UNAVAILABLE, "failed to create session")
312
+ };
313
+ const createdKey = normalizeOptionalString(createResult.payload?.key) ?? params.canonicalKey;
314
+ const loaded = loadSessionEntry(createdKey);
315
+ if (!loaded.entry?.sessionId) return {
316
+ ok: false,
317
+ error: errorShape(ErrorCodes.UNAVAILABLE, `session not created: ${createdKey}`)
318
+ };
319
+ return {
320
+ ok: true,
321
+ entry: loaded.entry,
322
+ canonicalKey: loaded.canonicalKey,
323
+ storePath: loaded.storePath
324
+ };
325
+ }
326
+ function ensureSessionTranscriptFile(params) {
327
+ try {
328
+ const transcriptPath = resolveSessionFilePath(params.sessionId, params.sessionFile ? { sessionFile: params.sessionFile } : void 0, resolveSessionFilePathOptions({
329
+ storePath: params.storePath,
330
+ agentId: params.agentId
331
+ }));
332
+ if (!fs.existsSync(transcriptPath)) {
333
+ fs.mkdirSync(path.dirname(transcriptPath), { recursive: true });
334
+ const header = {
335
+ type: "session",
336
+ version: 3,
337
+ id: params.sessionId,
338
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
339
+ cwd: process.cwd()
340
+ };
341
+ fs.writeFileSync(transcriptPath, `${JSON.stringify(header)}\n`, {
342
+ encoding: "utf-8",
343
+ mode: 384
344
+ });
345
+ }
346
+ return {
347
+ ok: true,
348
+ transcriptPath
349
+ };
350
+ } catch (err) {
351
+ return {
352
+ ok: false,
353
+ error: formatErrorMessage(err)
354
+ };
355
+ }
356
+ }
357
+ function resolveAbortSessionKey(params) {
358
+ if (params.activeRunSessionKey) return params.activeRunSessionKey;
359
+ const candidates = [
360
+ params.canonicalKey,
361
+ params.requestedKey,
362
+ ...params.aliasKeys ?? []
363
+ ];
364
+ for (const active of params.context.chatAbortControllers.values()) for (const candidate of candidates) if (active.sessionKey === candidate) return candidate;
365
+ return params.requestedKey;
366
+ }
367
+ function resolveSessionKeyAgentId(sessionKey, cfg) {
368
+ const key = normalizeOptionalString(sessionKey);
369
+ if (!key) return;
370
+ if (!parseAgentSessionKey(key) && key.toLowerCase().startsWith("agent:")) return;
371
+ return resolveSessionStoreAgentId(cfg, resolveSessionStoreKey({
372
+ cfg,
373
+ sessionKey: key
374
+ }));
375
+ }
376
+ function sessionKeyBelongsToAgent(sessionKey, agentId, cfg) {
377
+ const key = normalizeOptionalString(sessionKey);
378
+ if (cfg.session?.scope === "global" && key?.toLowerCase() === "global") return true;
379
+ const sessionAgentId = resolveSessionKeyAgentId(sessionKey, cfg);
380
+ return Boolean(sessionAgentId && sessionAgentId === normalizeAgentId(agentId));
381
+ }
382
+ function resolveScopedAbortKey(params) {
383
+ const key = normalizeOptionalString(params.key);
384
+ if (!key) return;
385
+ const requestedAgentId = normalizeOptionalString(params.agentId);
386
+ if (!requestedAgentId) return key;
387
+ const scopedAgentId = normalizeAgentId(requestedAgentId);
388
+ const ownerAgentId = resolveStoredSessionOwnerAgentId({
389
+ cfg: params.cfg,
390
+ agentId: scopedAgentId,
391
+ sessionKey: key
392
+ });
393
+ if (ownerAgentId && ownerAgentId !== scopedAgentId) return;
394
+ return resolveStoredSessionKeyForAgentStore({
395
+ cfg: params.cfg,
396
+ agentId: scopedAgentId,
397
+ sessionKey: key
398
+ });
399
+ }
400
+ function collectTrackedActiveSessionRuns(context) {
401
+ const runs = [];
402
+ if (!(context.chatAbortControllers instanceof Map)) return runs;
403
+ for (const active of context.chatAbortControllers.values()) if (active.projectSessionActive !== false && typeof active.sessionKey === "string" && active.sessionKey.trim()) runs.push({
404
+ sessionKey: active.sessionKey,
405
+ agentId: typeof active.agentId === "string" ? normalizeAgentId(active.agentId) : void 0
406
+ });
407
+ return runs;
408
+ }
409
+ function isTrackedActiveSessionRunForKey(active, key, agentId, defaultAgentId) {
410
+ if (active.sessionKey !== key) return false;
411
+ if (key !== "global" || agentId === void 0) return true;
412
+ const activeAgentId = active.agentId ?? defaultAgentId;
413
+ return activeAgentId ? normalizeAgentId(activeAgentId) === normalizeAgentId(agentId) : false;
414
+ }
415
+ function hasTrackedActiveSessionRun(params) {
416
+ return collectTrackedActiveSessionRuns(params.context).some((active) => isTrackedActiveSessionRunForKey(active, params.canonicalKey, params.agentId, params.defaultAgentId) || isTrackedActiveSessionRunForKey(active, params.requestedKey, params.agentId, params.defaultAgentId));
417
+ }
418
+ function resolveSessionMessageSubscriptionKey(params) {
419
+ const agentId = params.agentId ? normalizeAgentId(params.agentId) : params.canonicalKey === "global" && params.defaultAgentId ? normalizeAgentId(params.defaultAgentId) : void 0;
420
+ return params.canonicalKey === "global" && agentId ? `agent:${agentId}:global` : params.canonicalKey;
421
+ }
422
+ function resolveRequestedGlobalAgentId(cfg, key, explicitAgentId) {
423
+ const canonicalKey = resolveSessionStoreKey({
424
+ cfg,
425
+ sessionKey: key
426
+ });
427
+ const parsed = parseAgentSessionKey(key);
428
+ const requestedAgentId = normalizeOptionalString(explicitAgentId);
429
+ if (requestedAgentId) {
430
+ const agentId = normalizeAgentId(requestedAgentId);
431
+ if (!listAgentIds(cfg).includes(agentId)) return {
432
+ ok: false,
433
+ error: errorShape(ErrorCodes.INVALID_REQUEST, `Unknown agent id "${explicitAgentId}"`)
434
+ };
435
+ if (parsed?.agentId && normalizeAgentId(parsed.agentId) !== agentId) return {
436
+ ok: false,
437
+ error: errorShape(ErrorCodes.INVALID_REQUEST, "session key agent does not match agentId")
438
+ };
439
+ if (canonicalKey !== "global") {
440
+ if ((parsed?.agentId ? normalizeAgentId(parsed.agentId) : normalizeAgentId(resolveSessionStoreAgentId(cfg, canonicalKey))) !== agentId) return {
441
+ ok: false,
442
+ error: errorShape(ErrorCodes.INVALID_REQUEST, "session key agent does not match agentId")
443
+ };
444
+ }
445
+ return {
446
+ ok: true,
447
+ agentId
448
+ };
449
+ }
450
+ if (!parsed?.agentId) return { ok: true };
451
+ const inferredAgentId = normalizeAgentId(parsed.agentId);
452
+ if (canonicalKey === "global" && !listAgentIds(cfg).includes(inferredAgentId)) return {
453
+ ok: false,
454
+ error: errorShape(ErrorCodes.INVALID_REQUEST, `Unknown agent id "${parsed.agentId}"`)
455
+ };
456
+ return {
457
+ ok: true,
458
+ agentId: canonicalKey === "global" ? inferredAgentId : void 0
459
+ };
460
+ }
461
+ async function interruptSessionRunIfActive(params) {
462
+ const cfg = params.context.getRuntimeConfig();
463
+ const hasTrackedRun = hasTrackedActiveSessionRun({
464
+ context: params.context,
465
+ requestedKey: params.requestedKey,
466
+ canonicalKey: params.canonicalKey,
467
+ agentId: params.agentId,
468
+ defaultAgentId: resolveDefaultAgentId(cfg)
469
+ });
470
+ const hasEmbeddedRun = typeof params.sessionId === "string" && params.sessionId ? isEmbeddedAgentRunActive(params.sessionId) : false;
471
+ if (!hasTrackedRun && !hasEmbeddedRun) return { interrupted: false };
472
+ if (hasTrackedRun) {
473
+ let abortOk = true;
474
+ let abortError;
475
+ const abortSessionKey = resolveAbortSessionKey({
476
+ context: params.context,
477
+ requestedKey: params.requestedKey,
478
+ canonicalKey: params.canonicalKey
479
+ });
480
+ await chatHandlers["chat.abort"]({
481
+ req: params.req,
482
+ params: {
483
+ sessionKey: abortSessionKey,
484
+ ...params.canonicalKey === "global" && params.agentId ? { agentId: params.agentId } : {}
485
+ },
486
+ respond: (ok, _payload, error) => {
487
+ abortOk = ok;
488
+ abortError = error;
489
+ },
490
+ context: params.context,
491
+ client: params.client,
492
+ isWebchatConnect: params.isWebchatConnect
493
+ });
494
+ if (!abortOk) return {
495
+ interrupted: true,
496
+ error: abortError ?? errorShape(ErrorCodes.UNAVAILABLE, "failed to interrupt active session")
497
+ };
498
+ }
499
+ if (hasEmbeddedRun && params.sessionId) abortEmbeddedAgentRun(params.sessionId);
500
+ clearSessionQueues([
501
+ params.requestedKey,
502
+ params.canonicalKey,
503
+ params.sessionId
504
+ ]);
505
+ if (hasEmbeddedRun && params.sessionId) {
506
+ if (!await waitForEmbeddedAgentRunEnd(params.sessionId, 15e3)) return {
507
+ interrupted: true,
508
+ error: errorShape(ErrorCodes.UNAVAILABLE, `Session ${params.requestedKey} is still active; try again in a moment.`)
509
+ };
510
+ }
511
+ return { interrupted: true };
512
+ }
513
+ async function handleSessionSend(params) {
514
+ if (!assertValidParams(params.params, validateSessionsSendParams, params.method, params.respond)) return;
515
+ const p = params.params;
516
+ const key = requireSessionKey(p.key, params.respond);
517
+ if (!key) return;
518
+ const cfg = params.context.getRuntimeConfig();
519
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
520
+ if (!requestedAgent.ok) {
521
+ params.respond(false, void 0, requestedAgent.error);
522
+ return;
523
+ }
524
+ const requestedAgentId = requestedAgent.agentId;
525
+ let { entry, canonicalKey, storePath } = loadSessionEntry(key, { agentId: requestedAgentId });
526
+ const deletedAgentId = resolveDeletedAgentIdFromSessionKey(cfg, canonicalKey);
527
+ if (deletedAgentId !== null) {
528
+ params.respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `Agent "${deletedAgentId}" no longer exists in configuration`));
529
+ return;
530
+ }
531
+ if (!entry?.sessionId && !params.interruptIfActive && isAgentMainSessionKey(cfg, canonicalKey)) {
532
+ const created = await createAgentMainSessionForSend({
533
+ req: params.req,
534
+ canonicalKey,
535
+ context: params.context,
536
+ client: params.client,
537
+ isWebchatConnect: params.isWebchatConnect
538
+ });
539
+ if (!created.ok) {
540
+ params.respond(false, void 0, created.error);
541
+ return;
542
+ }
543
+ entry = created.entry;
544
+ canonicalKey = created.canonicalKey;
545
+ storePath = created.storePath;
546
+ }
547
+ if (!entry?.sessionId) {
548
+ params.respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `session not found: ${key}`));
549
+ return;
550
+ }
551
+ let interruptedActiveRun = false;
552
+ if (params.interruptIfActive) {
553
+ const interruptResult = await interruptSessionRunIfActive({
554
+ req: params.req,
555
+ context: params.context,
556
+ client: params.client,
557
+ isWebchatConnect: params.isWebchatConnect,
558
+ requestedKey: key,
559
+ canonicalKey,
560
+ agentId: requestedAgentId,
561
+ sessionId: entry.sessionId
562
+ });
563
+ if (interruptResult.error) {
564
+ params.respond(false, void 0, interruptResult.error);
565
+ return;
566
+ }
567
+ interruptedActiveRun = interruptResult.interrupted;
568
+ }
569
+ const messageSeq = await readSessionMessageCountAsync(entry.sessionId, storePath, entry.sessionFile) + 1;
570
+ let sendAcked = false;
571
+ let sendPayload;
572
+ let sendCached = false;
573
+ let startedRunId;
574
+ const rawIdempotencyKey = p.idempotencyKey;
575
+ const idempotencyKey = typeof rawIdempotencyKey === "string" && rawIdempotencyKey.trim() ? rawIdempotencyKey.trim() : randomUUID();
576
+ await chatHandlers["chat.send"]({
577
+ req: params.req,
578
+ params: {
579
+ sessionKey: canonicalKey,
580
+ ...canonicalKey === "global" && requestedAgentId ? { agentId: requestedAgentId } : {},
581
+ message: p.message,
582
+ thinking: p.thinking,
583
+ attachments: p.attachments,
584
+ timeoutMs: p.timeoutMs,
585
+ idempotencyKey
586
+ },
587
+ respond: (ok, payload, error, meta) => {
588
+ sendAcked = ok;
589
+ sendPayload = payload;
590
+ sendCached = meta?.cached === true;
591
+ startedRunId = payload && typeof payload === "object" && typeof payload.runId === "string" ? payload.runId : void 0;
592
+ if (ok && shouldAttachPendingMessageSeq({
593
+ payload,
594
+ cached: meta?.cached === true
595
+ })) {
596
+ params.respond(true, {
597
+ ...payload && typeof payload === "object" ? payload : {},
598
+ messageSeq,
599
+ ...interruptedActiveRun ? { interruptedActiveRun: true } : {}
600
+ }, void 0, meta);
601
+ return;
602
+ }
603
+ params.respond(ok, ok && payload && typeof payload === "object" ? {
604
+ ...payload,
605
+ ...interruptedActiveRun ? { interruptedActiveRun: true } : {}
606
+ } : payload, error, meta);
607
+ },
608
+ context: params.context,
609
+ client: params.client,
610
+ isWebchatConnect: params.isWebchatConnect
611
+ });
612
+ if (sendAcked) {
613
+ if (shouldAttachPendingMessageSeq({
614
+ payload: sendPayload,
615
+ cached: sendCached
616
+ })) await reactivateCompletedSubagentSession({
617
+ sessionKey: canonicalKey,
618
+ runId: startedRunId
619
+ });
620
+ emitSessionsChanged(params.context, {
621
+ sessionKey: canonicalKey,
622
+ ...canonicalKey === "global" && requestedAgentId ? { agentId: requestedAgentId } : {},
623
+ reason: interruptedActiveRun ? "steer" : "send"
624
+ });
625
+ }
626
+ }
627
+ const sessionsHandlers = {
628
+ "sessions.list": async ({ params, respond, context }) => {
629
+ if (!assertValidParams(params, validateSessionsListParams, "sessions.list", respond)) return;
630
+ const p = params;
631
+ const cfg = context.getRuntimeConfig();
632
+ const configuredAgentsOnly = p.configuredAgentsOnly === true;
633
+ respond(true, await measureDiagnosticsTimelineSpan("gateway.sessions.list", async () => {
634
+ const { storePath, store } = measureDiagnosticsTimelineSpanSync("gateway.sessions.list.store_load", () => loadCombinedSessionStoreForGateway(cfg, { agentId: p.agentId }), {
635
+ config: cfg,
636
+ phase: "sessions.list",
637
+ attributes: {
638
+ agentId: p.agentId ?? null,
639
+ configuredAgentsOnly
640
+ }
641
+ });
642
+ const listStore = configuredAgentsOnly ? filterSessionStoreToConfiguredAgents(cfg, store) : store;
643
+ const modelCatalog = await measureDiagnosticsTimelineSpan("gateway.sessions.list.model_catalog", () => loadOptionalSessionsListModelCatalog(context), {
644
+ config: cfg,
645
+ phase: "sessions.list"
646
+ });
647
+ const result = await measureDiagnosticsTimelineSpan("gateway.sessions.list.rows", () => listSessionsFromStoreAsync({
648
+ cfg,
649
+ storePath,
650
+ store: listStore,
651
+ modelCatalog,
652
+ opts: p
653
+ }), {
654
+ config: cfg,
655
+ phase: "sessions.list",
656
+ attributes: { storeEntries: Object.keys(listStore).length }
657
+ });
658
+ const sessions = measureDiagnosticsTimelineSpanSync("gateway.sessions.list.active_run_flags", () => {
659
+ const activeRuns = collectTrackedActiveSessionRuns(context);
660
+ return result.sessions.map((session) => Object.assign({}, session, { hasActiveRun: activeRuns.some((active) => isTrackedActiveSessionRunForKey(active, session.key, session.key === "global" ? p.agentId : void 0, resolveDefaultAgentId(cfg))) }));
661
+ }, {
662
+ config: cfg,
663
+ phase: "sessions.list",
664
+ attributes: { sessions: result.sessions.length }
665
+ });
666
+ return {
667
+ ...result,
668
+ sessions
669
+ };
670
+ }, {
671
+ config: cfg,
672
+ phase: "sessions.list",
673
+ attributes: {
674
+ agentId: p.agentId ?? null,
675
+ configuredAgentsOnly
676
+ }
677
+ }), void 0);
678
+ },
679
+ "sessions.cleanup": async ({ params, respond, context }) => {
680
+ if (!assertValidParams(params, validateSessionsCleanupParams, "sessions.cleanup", respond)) return;
681
+ const p = params;
682
+ try {
683
+ const { mode, appliedSummaries } = await runSessionsCleanup({
684
+ cfg: context.getRuntimeConfig(),
685
+ opts: {
686
+ agent: p.agent,
687
+ allAgents: p.allAgents,
688
+ enforce: p.enforce,
689
+ activeKey: p.activeKey,
690
+ fixMissing: p.fixMissing,
691
+ fixDmScope: p.fixDmScope
692
+ }
693
+ });
694
+ respond(true, serializeSessionCleanupResult({
695
+ mode,
696
+ dryRun: false,
697
+ summaries: appliedSummaries
698
+ }), void 0);
699
+ for (const summary of appliedSummaries) {
700
+ emitSessionsChanged(context, {
701
+ reason: "cleanup",
702
+ sessionKey: void 0
703
+ });
704
+ if (summary.wouldMutate) context.logGateway.debug(`sessions.cleanup applied ${summary.storePath}: ${summary.beforeCount} -> ${summary.afterCount}`);
705
+ }
706
+ } catch (error) {
707
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, formatErrorMessage(error)));
708
+ }
709
+ },
710
+ "sessions.subscribe": ({ client, context, respond }) => {
711
+ const connId = client?.connId?.trim();
712
+ if (connId) context.subscribeSessionEvents(connId);
713
+ respond(true, { subscribed: Boolean(connId) }, void 0);
714
+ },
715
+ "sessions.unsubscribe": ({ client, context, respond }) => {
716
+ const connId = client?.connId?.trim();
717
+ if (connId) context.unsubscribeSessionEvents(connId);
718
+ respond(true, { subscribed: false }, void 0);
719
+ },
720
+ "sessions.messages.subscribe": ({ params, client, context, respond }) => {
721
+ if (!assertValidParams(params, validateSessionsMessagesSubscribeParams, "sessions.messages.subscribe", respond)) return;
722
+ const connId = client?.connId?.trim();
723
+ const p = params;
724
+ const key = requireSessionKey(p.key, respond);
725
+ if (!key) return;
726
+ const cfg = context.getRuntimeConfig();
727
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
728
+ if (!requestedAgent.ok) {
729
+ respond(false, void 0, requestedAgent.error);
730
+ return;
731
+ }
732
+ const requestedAgentId = requestedAgent.agentId;
733
+ const { canonicalKey } = loadSessionEntry(key, { agentId: requestedAgentId });
734
+ const subscriptionKey = resolveSessionMessageSubscriptionKey({
735
+ canonicalKey,
736
+ agentId: requestedAgentId,
737
+ defaultAgentId: resolveDefaultAgentId(cfg)
738
+ });
739
+ if (connId) {
740
+ context.subscribeSessionMessageEvents(connId, subscriptionKey);
741
+ respond(true, {
742
+ subscribed: true,
743
+ key: canonicalKey
744
+ }, void 0);
745
+ return;
746
+ }
747
+ respond(true, {
748
+ subscribed: false,
749
+ key: canonicalKey
750
+ }, void 0);
751
+ },
752
+ "sessions.messages.unsubscribe": ({ params, client, context, respond }) => {
753
+ if (!assertValidParams(params, validateSessionsMessagesUnsubscribeParams, "sessions.messages.unsubscribe", respond)) return;
754
+ const connId = client?.connId?.trim();
755
+ const p = params;
756
+ const key = requireSessionKey(p.key, respond);
757
+ if (!key) return;
758
+ const cfg = context.getRuntimeConfig();
759
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
760
+ if (!requestedAgent.ok) {
761
+ respond(false, void 0, requestedAgent.error);
762
+ return;
763
+ }
764
+ const requestedAgentId = requestedAgent.agentId;
765
+ const { canonicalKey } = loadSessionEntry(key, { agentId: requestedAgentId });
766
+ const subscriptionKey = resolveSessionMessageSubscriptionKey({
767
+ canonicalKey,
768
+ agentId: requestedAgentId,
769
+ defaultAgentId: resolveDefaultAgentId(cfg)
770
+ });
771
+ if (connId) context.unsubscribeSessionMessageEvents(connId, subscriptionKey);
772
+ respond(true, {
773
+ subscribed: false,
774
+ key: canonicalKey
775
+ }, void 0);
776
+ },
777
+ "sessions.preview": ({ params, respond, context }) => {
778
+ if (!assertValidParams(params, validateSessionsPreviewParams, "sessions.preview", respond)) return;
779
+ const p = params;
780
+ const keys = (Array.isArray(p.keys) ? p.keys : []).map((key) => normalizeOptionalString(key ?? "")).filter((key) => Boolean(key)).slice(0, 64);
781
+ const limit = typeof p.limit === "number" && Number.isFinite(p.limit) ? Math.max(1, p.limit) : 12;
782
+ const maxChars = typeof p.maxChars === "number" && Number.isFinite(p.maxChars) ? Math.max(20, p.maxChars) : 240;
783
+ if (keys.length === 0) {
784
+ respond(true, {
785
+ ts: Date.now(),
786
+ previews: []
787
+ }, void 0);
788
+ return;
789
+ }
790
+ const cfg = context.getRuntimeConfig();
791
+ const storeCache = /* @__PURE__ */ new Map();
792
+ const previews = [];
793
+ for (const key of keys) try {
794
+ const storeTarget = resolveGatewaySessionStoreTarget({
795
+ cfg,
796
+ key,
797
+ scanLegacyKeys: false
798
+ });
799
+ const store = storeCache.get(storeTarget.storePath) ?? loadSessionStore(storeTarget.storePath);
800
+ storeCache.set(storeTarget.storePath, store);
801
+ const target = resolveGatewaySessionStoreTarget({
802
+ cfg,
803
+ key,
804
+ store
805
+ });
806
+ const entry = resolveFreshestSessionEntryFromStoreKeys(store, target.storeKeys);
807
+ if (!entry?.sessionId) {
808
+ previews.push({
809
+ key,
810
+ status: "missing",
811
+ items: []
812
+ });
813
+ continue;
814
+ }
815
+ const items = readSessionPreviewItemsFromTranscript(entry.sessionId, target.storePath, entry.sessionFile, target.agentId, limit, maxChars);
816
+ previews.push({
817
+ key,
818
+ status: items.length > 0 ? "ok" : "empty",
819
+ items
820
+ });
821
+ } catch {
822
+ previews.push({
823
+ key,
824
+ status: "error",
825
+ items: []
826
+ });
827
+ }
828
+ respond(true, {
829
+ ts: Date.now(),
830
+ previews
831
+ }, void 0);
832
+ },
833
+ "sessions.describe": ({ params, respond, context }) => {
834
+ if (!assertValidParams(params, validateSessionsDescribeParams, "sessions.describe", respond)) return;
835
+ const p = params;
836
+ const key = requireSessionKey(p.key, respond);
837
+ if (!key) return;
838
+ const cfg = context.getRuntimeConfig();
839
+ const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg);
840
+ const store = loadSessionStore(storePath);
841
+ const entry = resolveFreshestSessionEntryFromStoreKeys(store, target.storeKeys);
842
+ if (!entry) {
843
+ respond(true, { session: null }, void 0);
844
+ return;
845
+ }
846
+ respond(true, { session: buildGatewaySessionRow({
847
+ cfg,
848
+ storePath,
849
+ store,
850
+ key: target.canonicalKey,
851
+ entry,
852
+ includeDerivedTitles: p.includeDerivedTitles,
853
+ includeLastMessage: p.includeLastMessage,
854
+ transcriptUsageMaxBytes: 64 * 1024
855
+ }) }, void 0);
856
+ },
857
+ "sessions.resolve": async ({ params, respond, context }) => {
858
+ if (!assertValidParams(params, validateSessionsResolveParams, "sessions.resolve", respond)) return;
859
+ const p = params;
860
+ const resolved = await resolveSessionKeyFromResolveParams({
861
+ cfg: context.getRuntimeConfig(),
862
+ p
863
+ });
864
+ if (!resolved.ok) {
865
+ respond(false, void 0, resolved.error);
866
+ return;
867
+ }
868
+ respond(true, {
869
+ ok: true,
870
+ key: resolved.key
871
+ }, void 0);
872
+ },
873
+ "sessions.compaction.list": ({ params, respond, context }) => {
874
+ if (!assertValidParams(params, validateSessionsCompactionListParams, "sessions.compaction.list", respond)) return;
875
+ const p = params;
876
+ const key = requireSessionKey(p.key, respond);
877
+ if (!key) return;
878
+ const requestedAgent = resolveRequestedGlobalAgentId(context.getRuntimeConfig(), key, p.agentId);
879
+ if (!requestedAgent.ok) {
880
+ respond(false, void 0, requestedAgent.error);
881
+ return;
882
+ }
883
+ const { entry, canonicalKey } = loadSessionEntry(key, { agentId: requestedAgent.agentId });
884
+ respond(true, {
885
+ ok: true,
886
+ key: canonicalKey,
887
+ checkpoints: listSessionCompactionCheckpoints(entry)
888
+ }, void 0);
889
+ },
890
+ "sessions.compaction.get": ({ params, respond, context }) => {
891
+ if (!assertValidParams(params, validateSessionsCompactionGetParams, "sessions.compaction.get", respond)) return;
892
+ const p = params;
893
+ const key = requireSessionKey(p.key, respond);
894
+ if (!key) return;
895
+ const checkpointId = normalizeOptionalString(p.checkpointId) ?? "";
896
+ if (!checkpointId) {
897
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "checkpointId required"));
898
+ return;
899
+ }
900
+ const requestedAgent = resolveRequestedGlobalAgentId(context.getRuntimeConfig(), key, p.agentId);
901
+ if (!requestedAgent.ok) {
902
+ respond(false, void 0, requestedAgent.error);
903
+ return;
904
+ }
905
+ const { entry, canonicalKey } = loadSessionEntry(key, { agentId: requestedAgent.agentId });
906
+ const checkpoint = getSessionCompactionCheckpoint({
907
+ entry,
908
+ checkpointId
909
+ });
910
+ if (!checkpoint) {
911
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `checkpoint not found: ${checkpointId}`));
912
+ return;
913
+ }
914
+ respond(true, {
915
+ ok: true,
916
+ key: canonicalKey,
917
+ checkpoint
918
+ }, void 0);
919
+ },
920
+ "sessions.create": async ({ req, params, respond, context, client, isWebchatConnect }) => {
921
+ if (!assertValidParams(params, validateSessionsCreateParams, "sessions.create", respond)) return;
922
+ const p = params;
923
+ const cfg = context.getRuntimeConfig();
924
+ const requestedKey = normalizeOptionalString(p.key);
925
+ const agentId = normalizeAgentId(normalizeOptionalString(p.agentId) ?? resolveDefaultAgentId(cfg));
926
+ if (requestedKey) {
927
+ const requestedAgentId = parseAgentSessionKey(requestedKey)?.agentId;
928
+ if (requestedAgentId && requestedAgentId !== agentId && normalizeOptionalString(p.agentId)) {
929
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `sessions.create key agent (${requestedAgentId}) does not match agentId (${agentId})`));
930
+ return;
931
+ }
932
+ }
933
+ const parentSessionKey = normalizeOptionalString(p.parentSessionKey);
934
+ let canonicalParentSessionKey;
935
+ let parentSessionEntry;
936
+ let parentSelectedAgentId;
937
+ if (parentSessionKey) {
938
+ if (resolveSessionStoreKey({
939
+ cfg,
940
+ sessionKey: parentSessionKey
941
+ }) === "global") {
942
+ const parentRequestedAgent = resolveRequestedGlobalAgentId(cfg, parentSessionKey, p.agentId);
943
+ if (!parentRequestedAgent.ok) {
944
+ respond(false, void 0, parentRequestedAgent.error);
945
+ return;
946
+ }
947
+ parentSelectedAgentId = parentRequestedAgent.agentId;
948
+ }
949
+ const parent = loadSessionEntry(parentSessionKey, parentSelectedAgentId ? { agentId: parentSelectedAgentId } : void 0);
950
+ if (!parent.entry?.sessionId) {
951
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `unknown parent session: ${parentSessionKey}`));
952
+ return;
953
+ }
954
+ canonicalParentSessionKey = parent.canonicalKey;
955
+ parentSessionEntry = parent.entry;
956
+ }
957
+ if (canonicalParentSessionKey && p.emitCommandHooks === true && !requestedKey && !resolveOptionalInitialSessionMessage(p) && cfg.session?.dmScope === "main") {
958
+ const parentMainKey = resolveAgentMainSessionKey({
959
+ cfg,
960
+ agentId: normalizeAgentId(parentSelectedAgentId ?? resolveAgentIdFromSessionKey(canonicalParentSessionKey) ?? resolveDefaultAgentId(cfg))
961
+ });
962
+ if (canonicalParentSessionKey === parentMainKey) {
963
+ const { performGatewaySessionReset } = await loadSessionsRuntimeModule();
964
+ const resetResult = await performGatewaySessionReset({
965
+ key: canonicalParentSessionKey,
966
+ ...canonicalParentSessionKey === "global" && parentSelectedAgentId ? { agentId: parentSelectedAgentId } : {},
967
+ reason: "new",
968
+ commandSource: "webchat"
969
+ });
970
+ if (!resetResult.ok) {
971
+ respond(false, void 0, resetResult.error);
972
+ return;
973
+ }
974
+ respond(true, {
975
+ ok: true,
976
+ key: resetResult.key,
977
+ sessionId: resetResult.entry.sessionId,
978
+ entry: resetResult.entry,
979
+ runStarted: false
980
+ }, void 0);
981
+ emitSessionsChanged(context, {
982
+ sessionKey: resetResult.key,
983
+ ...resetResult.key === "global" ? { agentId: resetResult.agentId } : {},
984
+ reason: "new"
985
+ });
986
+ return;
987
+ }
988
+ }
989
+ if (canonicalParentSessionKey && p.emitCommandHooks === true) {
990
+ const { entry: parentEntry } = loadSessionEntry(canonicalParentSessionKey, parentSelectedAgentId ? { agentId: parentSelectedAgentId } : void 0);
991
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, normalizeAgentId(parentSelectedAgentId ?? resolveAgentIdFromSessionKey(canonicalParentSessionKey) ?? resolveDefaultAgentId(cfg)));
992
+ if (hasInternalHookListeners("command", "new")) await triggerInternalHook(createInternalHookEvent("command", "new", canonicalParentSessionKey, {
993
+ sessionEntry: parentEntry,
994
+ previousSessionEntry: parentEntry,
995
+ commandSource: "webchat",
996
+ cfg,
997
+ workspaceDir
998
+ }));
999
+ const parentTarget = resolveGatewaySessionStoreTarget({
1000
+ cfg,
1001
+ key: canonicalParentSessionKey,
1002
+ ...canonicalParentSessionKey === "global" && parentSelectedAgentId ? { agentId: parentSelectedAgentId } : {}
1003
+ });
1004
+ const { emitGatewayBeforeResetPluginHook } = await loadSessionsRuntimeModule();
1005
+ await emitGatewayBeforeResetPluginHook({
1006
+ cfg,
1007
+ key: canonicalParentSessionKey,
1008
+ target: parentTarget,
1009
+ storePath: parentTarget.storePath,
1010
+ entry: parentEntry,
1011
+ reason: "new"
1012
+ });
1013
+ }
1014
+ const loweredRequestedKey = normalizeOptionalLowercaseString(requestedKey);
1015
+ const target = resolveGatewaySessionStoreTarget({
1016
+ cfg,
1017
+ key: requestedKey ? loweredRequestedKey === "global" || loweredRequestedKey === "unknown" ? loweredRequestedKey : toAgentStoreSessionKey({
1018
+ agentId,
1019
+ requestKey: requestedKey,
1020
+ mainKey: cfg.session?.mainKey
1021
+ }) : buildDashboardSessionKey(agentId),
1022
+ agentId
1023
+ });
1024
+ const targetAgentId = target.agentId;
1025
+ const created = await updateSessionStore(target.storePath, async (store) => {
1026
+ const patched = await applySessionsPatchToStore({
1027
+ cfg,
1028
+ store,
1029
+ storeKey: target.canonicalKey,
1030
+ agentId: targetAgentId,
1031
+ patch: {
1032
+ key: target.canonicalKey,
1033
+ label: normalizeOptionalString(p.label),
1034
+ model: normalizeOptionalString(p.model)
1035
+ },
1036
+ loadGatewayModelCatalog: context.loadGatewayModelCatalog
1037
+ });
1038
+ if (!patched.ok || !canonicalParentSessionKey) return patched;
1039
+ const inheritedSelection = normalizeOptionalString(p.model) ? {} : inheritSessionRuntimeSelection(parentSessionEntry);
1040
+ const nextEntry = {
1041
+ ...patched.entry,
1042
+ ...inheritedSelection,
1043
+ parentSessionKey: canonicalParentSessionKey
1044
+ };
1045
+ store[target.canonicalKey] = nextEntry;
1046
+ return {
1047
+ ...patched,
1048
+ entry: nextEntry
1049
+ };
1050
+ });
1051
+ if (!created.ok) {
1052
+ respond(false, void 0, created.error);
1053
+ return;
1054
+ }
1055
+ const ensured = ensureSessionTranscriptFile({
1056
+ sessionId: created.entry.sessionId,
1057
+ storePath: target.storePath,
1058
+ sessionFile: created.entry.sessionFile,
1059
+ agentId: targetAgentId
1060
+ });
1061
+ if (!ensured.ok) {
1062
+ await updateSessionStore(target.storePath, (store) => {
1063
+ delete store[target.canonicalKey];
1064
+ });
1065
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `failed to create session transcript: ${ensured.error}`));
1066
+ return;
1067
+ }
1068
+ const createdEntry = created.entry.sessionFile === ensured.transcriptPath ? created.entry : {
1069
+ ...created.entry,
1070
+ sessionFile: ensured.transcriptPath
1071
+ };
1072
+ if (createdEntry !== created.entry) await updateSessionStore(target.storePath, (store) => {
1073
+ const existing = store[target.canonicalKey];
1074
+ if (existing) store[target.canonicalKey] = {
1075
+ ...existing,
1076
+ sessionFile: ensured.transcriptPath
1077
+ };
1078
+ });
1079
+ const initialMessage = resolveOptionalInitialSessionMessage(p);
1080
+ let runPayload;
1081
+ let runError;
1082
+ let runMeta;
1083
+ const messageSeq = initialMessage ? await readSessionMessageCountAsync(createdEntry.sessionId, target.storePath, createdEntry.sessionFile) + 1 : void 0;
1084
+ if (initialMessage) await chatHandlers["chat.send"]({
1085
+ req,
1086
+ params: {
1087
+ sessionKey: target.canonicalKey,
1088
+ ...target.canonicalKey === "global" ? { agentId: target.agentId } : {},
1089
+ message: initialMessage,
1090
+ idempotencyKey: randomUUID()
1091
+ },
1092
+ respond: (ok, payload, error, meta) => {
1093
+ if (ok && payload && typeof payload === "object") runPayload = payload;
1094
+ else runError = error;
1095
+ runMeta = meta;
1096
+ },
1097
+ context,
1098
+ client,
1099
+ isWebchatConnect
1100
+ });
1101
+ const runStarted = runPayload !== void 0 && shouldAttachPendingMessageSeq({
1102
+ payload: runPayload,
1103
+ cached: runMeta?.cached === true
1104
+ });
1105
+ respond(true, {
1106
+ ok: true,
1107
+ key: target.canonicalKey,
1108
+ sessionId: createdEntry.sessionId,
1109
+ entry: createdEntry,
1110
+ runStarted,
1111
+ ...runPayload ? runPayload : {},
1112
+ ...runStarted && typeof messageSeq === "number" ? { messageSeq } : {},
1113
+ ...runError ? { runError } : {}
1114
+ }, void 0);
1115
+ emitSessionsChanged(context, {
1116
+ sessionKey: target.canonicalKey,
1117
+ ...target.canonicalKey === "global" ? { agentId: target.agentId } : {},
1118
+ reason: "create"
1119
+ });
1120
+ if (runStarted) emitSessionsChanged(context, {
1121
+ sessionKey: target.canonicalKey,
1122
+ ...target.canonicalKey === "global" ? { agentId: target.agentId } : {},
1123
+ reason: "send"
1124
+ });
1125
+ if (canonicalParentSessionKey && p.emitCommandHooks === true) {
1126
+ const { entry: parentEntry } = loadSessionEntry(canonicalParentSessionKey, parentSelectedAgentId ? { agentId: parentSelectedAgentId } : void 0);
1127
+ const parentTarget = resolveGatewaySessionStoreTarget({
1128
+ cfg,
1129
+ key: canonicalParentSessionKey,
1130
+ ...canonicalParentSessionKey === "global" && parentSelectedAgentId ? { agentId: parentSelectedAgentId } : {}
1131
+ });
1132
+ const { emitGatewaySessionEndPluginHook, emitGatewaySessionStartPluginHook } = await loadSessionsRuntimeModule();
1133
+ emitGatewaySessionEndPluginHook({
1134
+ cfg,
1135
+ sessionKey: canonicalParentSessionKey,
1136
+ sessionId: parentEntry?.sessionId,
1137
+ storePath: parentTarget.storePath,
1138
+ sessionFile: parentEntry?.sessionFile,
1139
+ agentId: parentTarget.agentId,
1140
+ reason: "new",
1141
+ nextSessionId: createdEntry.sessionId,
1142
+ nextSessionKey: target.canonicalKey
1143
+ });
1144
+ emitGatewaySessionStartPluginHook({
1145
+ cfg,
1146
+ sessionKey: target.canonicalKey,
1147
+ sessionId: createdEntry.sessionId,
1148
+ resumedFrom: parentEntry?.sessionId,
1149
+ storePath: target.storePath,
1150
+ sessionFile: createdEntry.sessionFile,
1151
+ agentId: target.agentId
1152
+ });
1153
+ }
1154
+ },
1155
+ "sessions.compaction.branch": async ({ params, respond, context }) => {
1156
+ if (!assertValidParams(params, validateSessionsCompactionBranchParams, "sessions.compaction.branch", respond)) return;
1157
+ const p = params;
1158
+ const key = requireSessionKey(p.key, respond);
1159
+ if (!key) return;
1160
+ const checkpointId = typeof p.checkpointId === "string" && p.checkpointId.trim() ? p.checkpointId.trim() : "";
1161
+ if (!checkpointId) {
1162
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "checkpointId required"));
1163
+ return;
1164
+ }
1165
+ const requestedAgent = resolveRequestedGlobalAgentId(context.getRuntimeConfig(), key, p.agentId);
1166
+ if (!requestedAgent.ok) {
1167
+ respond(false, void 0, requestedAgent.error);
1168
+ return;
1169
+ }
1170
+ const { cfg: loadedCfg, entry, canonicalKey } = loadSessionEntry(key, { agentId: requestedAgent.agentId });
1171
+ const target = resolveGatewaySessionStoreTarget({
1172
+ cfg: loadedCfg,
1173
+ key: canonicalKey,
1174
+ agentId: requestedAgent.agentId
1175
+ });
1176
+ if (!entry?.sessionId) {
1177
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `session not found: ${key}`));
1178
+ return;
1179
+ }
1180
+ const checkpoint = getSessionCompactionCheckpoint({
1181
+ entry,
1182
+ checkpointId
1183
+ });
1184
+ const forkSource = checkpoint ? resolveCheckpointForkSource(checkpoint) : null;
1185
+ if (!checkpoint || !forkSource) {
1186
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `checkpoint not found: ${checkpointId}`));
1187
+ return;
1188
+ }
1189
+ const branchedSession = await forkCompactionCheckpointTranscriptAsync({
1190
+ sourceFile: forkSource.sourceFile,
1191
+ sourceLeafId: forkSource.sourceLeafId,
1192
+ sessionDir: path.dirname(forkSource.sourceFile)
1193
+ });
1194
+ if (!branchedSession?.sessionFile) {
1195
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "failed to create checkpoint branch transcript"));
1196
+ return;
1197
+ }
1198
+ const nextKey = buildDashboardSessionKey(target.agentId);
1199
+ const label = entry.label?.trim() ? `${entry.label.trim()} (checkpoint)` : "Checkpoint branch";
1200
+ const nextEntry = cloneCheckpointSessionEntry({
1201
+ currentEntry: entry,
1202
+ nextSessionId: branchedSession.sessionId,
1203
+ nextSessionFile: branchedSession.sessionFile,
1204
+ label,
1205
+ parentSessionKey: canonicalKey,
1206
+ totalTokens: forkSource.totalTokens
1207
+ });
1208
+ await updateSessionStore(target.storePath, (store) => {
1209
+ store[nextKey] = nextEntry;
1210
+ });
1211
+ respond(true, {
1212
+ ok: true,
1213
+ sourceKey: canonicalKey,
1214
+ key: nextKey,
1215
+ sessionId: nextEntry.sessionId,
1216
+ checkpoint,
1217
+ entry: nextEntry
1218
+ }, void 0);
1219
+ emitSessionsChanged(context, {
1220
+ sessionKey: canonicalKey,
1221
+ ...canonicalKey === "global" && requestedAgent.agentId ? { agentId: requestedAgent.agentId } : {},
1222
+ reason: "checkpoint-branch"
1223
+ });
1224
+ emitSessionsChanged(context, {
1225
+ sessionKey: nextKey,
1226
+ reason: "checkpoint-branch"
1227
+ });
1228
+ },
1229
+ "sessions.compaction.restore": async ({ req, params, respond, context, client, isWebchatConnect }) => {
1230
+ if (!assertValidParams(params, validateSessionsCompactionRestoreParams, "sessions.compaction.restore", respond)) return;
1231
+ const p = params;
1232
+ const key = requireSessionKey(p.key, respond);
1233
+ if (!key) return;
1234
+ if (rejectWebchatSessionMutation({
1235
+ action: "restore",
1236
+ client,
1237
+ isWebchatConnect,
1238
+ respond
1239
+ })) return;
1240
+ const checkpointId = typeof p.checkpointId === "string" && p.checkpointId.trim() ? p.checkpointId.trim() : "";
1241
+ if (!checkpointId) {
1242
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "checkpointId required"));
1243
+ return;
1244
+ }
1245
+ const requestedAgent = resolveRequestedGlobalAgentId(context.getRuntimeConfig(), key, p.agentId);
1246
+ if (!requestedAgent.ok) {
1247
+ respond(false, void 0, requestedAgent.error);
1248
+ return;
1249
+ }
1250
+ const { entry, canonicalKey, storePath } = loadSessionEntry(key, { agentId: requestedAgent.agentId });
1251
+ if (!entry?.sessionId) {
1252
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `session not found: ${key}`));
1253
+ return;
1254
+ }
1255
+ const checkpoint = getSessionCompactionCheckpoint({
1256
+ entry,
1257
+ checkpointId
1258
+ });
1259
+ const forkSource = checkpoint ? resolveCheckpointForkSource(checkpoint) : null;
1260
+ if (!checkpoint || !forkSource) {
1261
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `checkpoint not found: ${checkpointId}`));
1262
+ return;
1263
+ }
1264
+ const interruptResult = await interruptSessionRunIfActive({
1265
+ req,
1266
+ context,
1267
+ client,
1268
+ isWebchatConnect,
1269
+ requestedKey: key,
1270
+ canonicalKey,
1271
+ agentId: requestedAgent.agentId,
1272
+ sessionId: entry.sessionId
1273
+ });
1274
+ if (interruptResult.error) {
1275
+ respond(false, void 0, interruptResult.error);
1276
+ return;
1277
+ }
1278
+ const restoredSession = await forkCompactionCheckpointTranscriptAsync({
1279
+ sourceFile: forkSource.sourceFile,
1280
+ sourceLeafId: forkSource.sourceLeafId,
1281
+ sessionDir: path.dirname(forkSource.sourceFile)
1282
+ });
1283
+ if (!restoredSession?.sessionFile) {
1284
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "failed to restore checkpoint transcript"));
1285
+ return;
1286
+ }
1287
+ const nextEntry = cloneCheckpointSessionEntry({
1288
+ currentEntry: entry,
1289
+ nextSessionId: restoredSession.sessionId,
1290
+ nextSessionFile: restoredSession.sessionFile,
1291
+ totalTokens: forkSource.totalTokens,
1292
+ preserveCompactionCheckpoints: true
1293
+ });
1294
+ await updateSessionStore(storePath, (store) => {
1295
+ store[canonicalKey] = nextEntry;
1296
+ });
1297
+ respond(true, {
1298
+ ok: true,
1299
+ key: canonicalKey,
1300
+ sessionId: nextEntry.sessionId,
1301
+ checkpoint,
1302
+ entry: nextEntry
1303
+ }, void 0);
1304
+ emitSessionsChanged(context, {
1305
+ sessionKey: canonicalKey,
1306
+ ...canonicalKey === "global" && requestedAgent.agentId ? { agentId: requestedAgent.agentId } : {},
1307
+ reason: "checkpoint-restore"
1308
+ });
1309
+ },
1310
+ "sessions.send": async ({ req, params, respond, context, client, isWebchatConnect }) => {
1311
+ await handleSessionSend({
1312
+ method: "sessions.send",
1313
+ req,
1314
+ params,
1315
+ respond,
1316
+ context,
1317
+ client,
1318
+ isWebchatConnect,
1319
+ interruptIfActive: false
1320
+ });
1321
+ },
1322
+ "sessions.steer": async ({ req, params, respond, context, client, isWebchatConnect }) => {
1323
+ await handleSessionSend({
1324
+ method: "sessions.steer",
1325
+ req,
1326
+ params,
1327
+ respond,
1328
+ context,
1329
+ client,
1330
+ isWebchatConnect,
1331
+ interruptIfActive: true
1332
+ });
1333
+ },
1334
+ "sessions.abort": async ({ req, params, respond, context, client, isWebchatConnect }) => {
1335
+ if (!assertValidParams(params, validateSessionsAbortParams, "sessions.abort", respond)) return;
1336
+ const p = params;
1337
+ const cfg = context.getRuntimeConfig();
1338
+ const requestedRunId = readStringValue(p.runId);
1339
+ const requestedKey = normalizeOptionalString(p.key);
1340
+ const requestedParamAgentId = normalizeOptionalString(p.agentId);
1341
+ const scopedRequestedKey = resolveScopedAbortKey({
1342
+ cfg,
1343
+ key: requestedKey,
1344
+ agentId: requestedParamAgentId
1345
+ });
1346
+ if (requestedKey && requestedParamAgentId && !scopedRequestedKey) {
1347
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "session key agent does not match agentId"));
1348
+ return;
1349
+ }
1350
+ const requestedKeyAgentId = scopedRequestedKey ? resolveSessionKeyAgentId(scopedRequestedKey, cfg) : void 0;
1351
+ const activeRun = requestedRunId ? context.chatAbortControllers.get(requestedRunId) : void 0;
1352
+ const activeRunSessionKey = activeRun?.sessionKey;
1353
+ const activeRunAgentId = normalizeOptionalString(activeRun?.agentId);
1354
+ const inferredRunAgentId = requestedParamAgentId ?? (requestedRunId && scopedRequestedKey?.toLowerCase() === "global" ? activeRunAgentId : void 0) ?? requestedKeyAgentId ?? (requestedRunId && !activeRunSessionKey ? resolveDefaultAgentId(cfg) : void 0);
1355
+ const requestedRunAgentId = requestedRunId ? inferredRunAgentId ? normalizeAgentId(inferredRunAgentId) : void 0 : void 0;
1356
+ const scopedActiveRunSessionKey = activeRunSessionKey ? requestedRunAgentId ? sessionKeyBelongsToAgent(activeRunSessionKey, requestedRunAgentId, cfg) ? activeRunSessionKey : void 0 : activeRunSessionKey : void 0;
1357
+ const keyCandidate = scopedRequestedKey ?? scopedActiveRunSessionKey ?? (requestedRunId ? resolveSessionKeyForRun(requestedRunId, { agentId: requestedRunAgentId ?? resolveDefaultAgentId(cfg) }) : void 0);
1358
+ if (!keyCandidate && requestedRunId) {
1359
+ respond(true, {
1360
+ ok: true,
1361
+ abortedRunId: null,
1362
+ status: "no-active-run"
1363
+ });
1364
+ return;
1365
+ }
1366
+ const key = requireSessionKey(keyCandidate, respond);
1367
+ if (!key) return;
1368
+ const requestedGlobalAgent = resolveRequestedGlobalAgentId(cfg, key, requestedParamAgentId ?? requestedRunAgentId);
1369
+ if (!requestedGlobalAgent.ok) {
1370
+ respond(false, void 0, requestedGlobalAgent.error);
1371
+ return;
1372
+ }
1373
+ const requestedGlobalAgentId = requestedGlobalAgent.agentId;
1374
+ const { canonicalKey } = loadSessionEntry(key, { agentId: requestedGlobalAgentId });
1375
+ const resolvedAbortSessionKey = resolveAbortSessionKey({
1376
+ context,
1377
+ requestedKey: key,
1378
+ canonicalKey,
1379
+ activeRunSessionKey: scopedActiveRunSessionKey,
1380
+ aliasKeys: requestedKey && requestedKey !== key && (!requestedParamAgentId || sessionKeyBelongsToAgent(requestedKey, requestedParamAgentId, cfg)) ? [requestedKey] : void 0
1381
+ });
1382
+ const abortSessionKey = canonicalKey === "global" && requestedGlobalAgentId ? "global" : resolvedAbortSessionKey;
1383
+ const abortAgentId = abortSessionKey === "global" ? requestedGlobalAgentId ?? activeRunAgentId : void 0;
1384
+ const preAbortRunKinds = /* @__PURE__ */ new Map();
1385
+ if (requestedRunId) preAbortRunKinds.set(requestedRunId, context.chatAbortControllers.get(requestedRunId)?.kind);
1386
+ else for (const [rid, entry] of context.chatAbortControllers) preAbortRunKinds.set(rid, entry.kind);
1387
+ let abortedRunId = null;
1388
+ await chatHandlers["chat.abort"]({
1389
+ req,
1390
+ params: {
1391
+ sessionKey: abortSessionKey,
1392
+ runId: requestedRunId,
1393
+ ...abortAgentId ? { agentId: abortAgentId } : {}
1394
+ },
1395
+ respond: (ok, payload, error, meta) => {
1396
+ if (!ok) {
1397
+ respond(ok, payload, error, meta);
1398
+ return;
1399
+ }
1400
+ const firstAbortedRunId = (payload && typeof payload === "object" && Array.isArray(payload.runIds) ? payload.runIds.filter((value) => Boolean(normalizeOptionalString(value))) : [])[0] ?? null;
1401
+ abortedRunId = firstAbortedRunId;
1402
+ if (firstAbortedRunId) {
1403
+ const endedAt = Date.now();
1404
+ const dedupePrefix = preAbortRunKinds.get(firstAbortedRunId) === "agent" ? "agent" : "chat";
1405
+ setGatewayDedupeEntry({
1406
+ dedupe: context.dedupe,
1407
+ key: `${dedupePrefix}:${firstAbortedRunId}`,
1408
+ entry: {
1409
+ ts: endedAt,
1410
+ ok: true,
1411
+ payload: {
1412
+ status: "timeout",
1413
+ runId: firstAbortedRunId,
1414
+ ...abortAgentId ? { agentId: abortAgentId } : {},
1415
+ stopReason: "rpc",
1416
+ endedAt
1417
+ }
1418
+ }
1419
+ });
1420
+ }
1421
+ respond(true, {
1422
+ ok: true,
1423
+ abortedRunId,
1424
+ status: abortedRunId ? "aborted" : "no-active-run"
1425
+ }, void 0, meta);
1426
+ },
1427
+ context,
1428
+ client,
1429
+ isWebchatConnect
1430
+ });
1431
+ if (abortedRunId) emitSessionsChanged(context, {
1432
+ sessionKey: canonicalKey,
1433
+ ...canonicalKey === "global" && abortAgentId ? { agentId: abortAgentId } : {},
1434
+ reason: "abort"
1435
+ });
1436
+ },
1437
+ "sessions.patch": async ({ params, respond, context, client, isWebchatConnect }) => {
1438
+ if (!assertValidParams(params, validateSessionsPatchParams, "sessions.patch", respond)) return;
1439
+ const p = params;
1440
+ const key = requireSessionKey(p.key, respond);
1441
+ if (!key) return;
1442
+ if (rejectWebchatSessionMutation({
1443
+ action: "patch",
1444
+ client,
1445
+ isWebchatConnect,
1446
+ respond
1447
+ })) return;
1448
+ const cfg = context.getRuntimeConfig();
1449
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
1450
+ if (!requestedAgent.ok) {
1451
+ respond(false, void 0, requestedAgent.error);
1452
+ return;
1453
+ }
1454
+ const requestedAgentId = requestedAgent.agentId;
1455
+ const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg, { agentId: requestedAgentId });
1456
+ const applied = await updateSessionStore(storePath, async (store) => {
1457
+ const { primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1458
+ cfg,
1459
+ key,
1460
+ store,
1461
+ agentId: requestedAgentId
1462
+ });
1463
+ return await applySessionsPatchToStore({
1464
+ cfg,
1465
+ store,
1466
+ storeKey: primaryKey,
1467
+ agentId: requestedAgentId,
1468
+ patch: p,
1469
+ loadGatewayModelCatalog: context.loadGatewayModelCatalog
1470
+ });
1471
+ });
1472
+ if (!applied.ok) {
1473
+ respond(false, void 0, applied.error);
1474
+ return;
1475
+ }
1476
+ triggerSessionPatchHook({
1477
+ cfg,
1478
+ sessionEntry: applied.entry,
1479
+ sessionKey: target.canonicalKey ?? key,
1480
+ patch: p
1481
+ });
1482
+ const parsed = parseAgentSessionKey(target.canonicalKey ?? key);
1483
+ const agentId = normalizeAgentId(target.canonicalKey === "global" ? target.agentId : parsed?.agentId ?? resolveDefaultAgentId(cfg));
1484
+ const resolved = resolveSessionModelRef(cfg, applied.entry, agentId);
1485
+ const resolvedDisplayModel = resolveSessionDisplayModelIdentityRef({
1486
+ cfg,
1487
+ agentId,
1488
+ provider: resolved.provider,
1489
+ model: resolved.model
1490
+ });
1491
+ const agentRuntime = resolveModelAgentRuntimeMetadata({
1492
+ cfg,
1493
+ agentId,
1494
+ provider: resolvedDisplayModel.provider,
1495
+ model: resolvedDisplayModel.model,
1496
+ sessionKey: target.canonicalKey ?? key,
1497
+ acpRuntime: applied.entry?.acp != null,
1498
+ acpBackend: applied.entry?.acp?.backend
1499
+ });
1500
+ respond(true, {
1501
+ ok: true,
1502
+ path: storePath,
1503
+ key: target.canonicalKey,
1504
+ entry: applied.entry,
1505
+ resolved: {
1506
+ modelProvider: resolvedDisplayModel.provider,
1507
+ model: resolvedDisplayModel.model,
1508
+ agentRuntime
1509
+ }
1510
+ }, void 0);
1511
+ emitSessionsChanged(context, {
1512
+ sessionKey: target.canonicalKey,
1513
+ ...target.canonicalKey === "global" && requestedAgentId ? { agentId: requestedAgentId } : {},
1514
+ reason: "patch"
1515
+ });
1516
+ },
1517
+ "sessions.pluginPatch": async ({ params, respond, context, client, isWebchatConnect }) => {
1518
+ if (!assertValidParams(params, validateSessionsPluginPatchParams, "sessions.pluginPatch", respond)) return;
1519
+ const key = requireSessionKey(params.key, respond);
1520
+ if (!key) return;
1521
+ if (rejectWebchatSessionMutation({
1522
+ action: "patch",
1523
+ client,
1524
+ isWebchatConnect,
1525
+ respond
1526
+ })) return;
1527
+ if (!(Array.isArray(client?.connect.scopes) ? client.connect.scopes : []).includes("operator.admin")) {
1528
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `sessions.pluginPatch requires gateway scope: ${ADMIN_SCOPE}`));
1529
+ return;
1530
+ }
1531
+ const pluginId = normalizeOptionalString(params.pluginId);
1532
+ const namespace = normalizeOptionalString(params.namespace);
1533
+ if (!pluginId || !namespace) {
1534
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "pluginId and namespace are required"));
1535
+ return;
1536
+ }
1537
+ if (params.unset === true && params.value !== void 0) {
1538
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "sessions.pluginPatch cannot specify both unset and value"));
1539
+ return;
1540
+ }
1541
+ if (params.value !== void 0 && !isPluginJsonValue(params.value)) {
1542
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "sessions.pluginPatch value must be JSON-compatible"));
1543
+ return;
1544
+ }
1545
+ const patched = await patchPluginSessionExtension({
1546
+ cfg: context.getRuntimeConfig(),
1547
+ sessionKey: key,
1548
+ pluginId,
1549
+ namespace,
1550
+ value: params.value,
1551
+ unset: params.unset === true
1552
+ });
1553
+ if (!patched.ok) {
1554
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, patched.error));
1555
+ return;
1556
+ }
1557
+ respond(true, {
1558
+ ok: true,
1559
+ key: patched.key,
1560
+ value: patched.value
1561
+ }, void 0);
1562
+ emitSessionsChanged(context, {
1563
+ sessionKey: patched.key,
1564
+ reason: "plugin-patch"
1565
+ });
1566
+ },
1567
+ "sessions.reset": async ({ params, respond, context }) => {
1568
+ if (!assertValidParams(params, validateSessionsResetParams, "sessions.reset", respond)) return;
1569
+ const p = params;
1570
+ const key = requireSessionKey(p.key, respond);
1571
+ if (!key) return;
1572
+ const reason = p.reason === "new" ? "new" : "reset";
1573
+ const { performGatewaySessionReset } = await loadSessionsRuntimeModule();
1574
+ const result = await performGatewaySessionReset({
1575
+ key,
1576
+ ...p.agentId ? { agentId: p.agentId } : {},
1577
+ reason,
1578
+ commandSource: "gateway:sessions.reset"
1579
+ });
1580
+ if (!result.ok) {
1581
+ respond(false, void 0, result.error);
1582
+ return;
1583
+ }
1584
+ respond(true, {
1585
+ ok: true,
1586
+ key: result.key,
1587
+ entry: result.entry
1588
+ }, void 0);
1589
+ emitSessionsChanged(context, {
1590
+ sessionKey: result.key,
1591
+ ...result.key === "global" ? { agentId: result.agentId } : {},
1592
+ reason
1593
+ });
1594
+ },
1595
+ "sessions.delete": async ({ params, respond, client, isWebchatConnect, context }) => {
1596
+ if (!assertValidParams(params, validateSessionsDeleteParams, "sessions.delete", respond)) return;
1597
+ const p = params;
1598
+ const key = requireSessionKey(p.key, respond);
1599
+ if (!key) return;
1600
+ if (rejectWebchatSessionMutation({
1601
+ action: "delete",
1602
+ client,
1603
+ isWebchatConnect,
1604
+ respond
1605
+ })) return;
1606
+ const cfg = context.getRuntimeConfig();
1607
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
1608
+ if (!requestedAgent.ok) {
1609
+ respond(false, void 0, requestedAgent.error);
1610
+ return;
1611
+ }
1612
+ const requestedAgentId = requestedAgent.agentId;
1613
+ const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg, { agentId: requestedAgentId });
1614
+ const mainKey = resolveMainSessionKey(cfg);
1615
+ const isSelectedNonDefaultGlobal = target.canonicalKey === "global" && requestedAgentId !== void 0 && requestedAgentId !== resolveDefaultAgentId(cfg);
1616
+ if (target.canonicalKey === mainKey && !isSelectedNonDefaultGlobal) {
1617
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `Cannot delete the main session (${mainKey}).`));
1618
+ return;
1619
+ }
1620
+ const deleteTranscript = typeof p.deleteTranscript === "boolean" ? p.deleteTranscript : true;
1621
+ const { archiveSessionTranscriptsForSessionDetailed, cleanupSessionBeforeMutation, emitGatewaySessionEndPluginHook, emitSessionUnboundLifecycleEvent } = await loadSessionsRuntimeModule();
1622
+ const { entry, legacyKey, canonicalKey } = loadSessionEntry(key, { agentId: requestedAgentId });
1623
+ if (rejectPluginRuntimeDeleteMismatch({
1624
+ client,
1625
+ key: canonicalKey ?? key,
1626
+ entry,
1627
+ respond
1628
+ })) return;
1629
+ const mutationCleanupError = await cleanupSessionBeforeMutation({
1630
+ cfg,
1631
+ key,
1632
+ target,
1633
+ entry,
1634
+ legacyKey,
1635
+ canonicalKey,
1636
+ reason: "session-delete"
1637
+ });
1638
+ if (mutationCleanupError) {
1639
+ respond(false, void 0, mutationCleanupError);
1640
+ return;
1641
+ }
1642
+ const sessionId = entry?.sessionId;
1643
+ const deleted = await updateSessionStore(storePath, (store) => {
1644
+ const { primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1645
+ cfg,
1646
+ key,
1647
+ store,
1648
+ agentId: requestedAgentId
1649
+ });
1650
+ const hadEntry = Boolean(store[primaryKey]);
1651
+ if (hadEntry) delete store[primaryKey];
1652
+ return hadEntry;
1653
+ });
1654
+ const archivedTranscripts = deleted && deleteTranscript ? archiveSessionTranscriptsForSessionDetailed({
1655
+ sessionId,
1656
+ storePath,
1657
+ sessionFile: entry?.sessionFile,
1658
+ agentId: target.agentId,
1659
+ reason: "deleted"
1660
+ }) : [];
1661
+ const archived = archivedTranscripts.map((entry) => entry.archivedPath);
1662
+ if (deleted) {
1663
+ emitGatewaySessionEndPluginHook({
1664
+ cfg,
1665
+ sessionKey: target.canonicalKey ?? key,
1666
+ sessionId,
1667
+ storePath,
1668
+ sessionFile: entry?.sessionFile,
1669
+ agentId: target.agentId,
1670
+ reason: "deleted",
1671
+ archivedTranscripts
1672
+ });
1673
+ const emitLifecycleHooks = p.emitLifecycleHooks !== false;
1674
+ await emitSessionUnboundLifecycleEvent({
1675
+ targetSessionKey: target.canonicalKey ?? key,
1676
+ reason: "session-delete",
1677
+ emitHooks: emitLifecycleHooks
1678
+ });
1679
+ }
1680
+ respond(true, {
1681
+ ok: true,
1682
+ key: target.canonicalKey,
1683
+ deleted,
1684
+ archived
1685
+ }, void 0);
1686
+ if (deleted) emitSessionsChanged(context, {
1687
+ sessionKey: target.canonicalKey,
1688
+ ...target.canonicalKey === "global" && requestedAgentId ? { agentId: requestedAgentId } : {},
1689
+ reason: "delete"
1690
+ });
1691
+ },
1692
+ "sessions.get": async ({ params, respond, context }) => {
1693
+ const p = params;
1694
+ const key = requireSessionKey(p.key ?? p.sessionKey, respond);
1695
+ if (!key) return;
1696
+ const limit = typeof p.limit === "number" && Number.isFinite(p.limit) ? Math.max(1, Math.floor(p.limit)) : 200;
1697
+ const cfg = context.getRuntimeConfig();
1698
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, normalizeOptionalString(p.agentId));
1699
+ if (!requestedAgent.ok) {
1700
+ respond(false, void 0, requestedAgent.error);
1701
+ return;
1702
+ }
1703
+ const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg, { agentId: requestedAgent.agentId });
1704
+ const entry = resolveFreshestSessionEntryFromStoreKeys(loadSessionStore(storePath), target.storeKeys);
1705
+ if (!entry?.sessionId) {
1706
+ respond(true, { messages: [] }, void 0);
1707
+ return;
1708
+ }
1709
+ const { messages } = await readRecentSessionMessagesWithStatsAsync(entry.sessionId, storePath, entry.sessionFile, {
1710
+ maxMessages: limit,
1711
+ maxLines: limit * 20 + 20
1712
+ });
1713
+ respond(true, { messages }, void 0);
1714
+ },
1715
+ "sessions.compact": async ({ req, params, respond, context, client, isWebchatConnect }) => {
1716
+ if (!assertValidParams(params, validateSessionsCompactParams, "sessions.compact", respond)) return;
1717
+ const p = params;
1718
+ const key = requireSessionKey(p.key, respond);
1719
+ if (!key) return;
1720
+ if (rejectWebchatSessionMutation({
1721
+ action: "compact",
1722
+ client,
1723
+ isWebchatConnect,
1724
+ respond
1725
+ })) return;
1726
+ const maxLines = typeof p.maxLines === "number" && Number.isFinite(p.maxLines) ? Math.max(1, Math.floor(p.maxLines)) : void 0;
1727
+ const cfg = context.getRuntimeConfig();
1728
+ const requestedAgent = resolveRequestedGlobalAgentId(cfg, key, p.agentId);
1729
+ if (!requestedAgent.ok) {
1730
+ respond(false, void 0, requestedAgent.error);
1731
+ return;
1732
+ }
1733
+ const requestedAgentId = requestedAgent.agentId;
1734
+ const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg, { agentId: requestedAgentId });
1735
+ const compactTarget = await updateSessionStore(storePath, (store) => {
1736
+ const { entry, primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1737
+ cfg,
1738
+ key,
1739
+ store,
1740
+ agentId: requestedAgentId
1741
+ });
1742
+ return {
1743
+ entry,
1744
+ primaryKey
1745
+ };
1746
+ });
1747
+ const entry = compactTarget.entry;
1748
+ const sessionId = entry?.sessionId;
1749
+ if (!sessionId) {
1750
+ respond(true, {
1751
+ ok: true,
1752
+ key: target.canonicalKey,
1753
+ compacted: false,
1754
+ reason: "no sessionId"
1755
+ }, void 0);
1756
+ return;
1757
+ }
1758
+ const filePath = resolveSessionTranscriptCandidates(sessionId, storePath, entry?.sessionFile, target.agentId).find((candidate) => fs.existsSync(candidate));
1759
+ if (!filePath) {
1760
+ respond(true, {
1761
+ ok: true,
1762
+ key: target.canonicalKey,
1763
+ compacted: false,
1764
+ reason: "no transcript"
1765
+ }, void 0);
1766
+ return;
1767
+ }
1768
+ if (maxLines === void 0) {
1769
+ const interruptResult = await interruptSessionRunIfActive({
1770
+ req,
1771
+ context,
1772
+ client,
1773
+ isWebchatConnect,
1774
+ requestedKey: key,
1775
+ canonicalKey: target.canonicalKey,
1776
+ agentId: requestedAgentId,
1777
+ sessionId
1778
+ });
1779
+ if (interruptResult.error) {
1780
+ respond(false, void 0, interruptResult.error);
1781
+ return;
1782
+ }
1783
+ const resolvedModel = resolveSessionModelRef(cfg, entry, target.agentId);
1784
+ const workspaceDir = normalizeOptionalString(entry?.spawnedWorkspaceDir) || resolveAgentWorkspaceDir(cfg, target.agentId);
1785
+ const cwd = normalizeOptionalString(entry?.spawnedCwd);
1786
+ const operationId = randomUUID();
1787
+ emitSessionOperation(context, {
1788
+ operationId,
1789
+ operation: "compact",
1790
+ phase: "start",
1791
+ sessionKey: target.canonicalKey,
1792
+ ...target.canonicalKey === "global" && target.agentId ? { agentId: target.agentId } : {}
1793
+ });
1794
+ let result;
1795
+ try {
1796
+ result = await compactEmbeddedAgentSession({
1797
+ sessionId,
1798
+ sessionKey: target.canonicalKey,
1799
+ agentId: target.agentId,
1800
+ allowGatewaySubagentBinding: true,
1801
+ sessionFile: filePath,
1802
+ workspaceDir,
1803
+ cwd,
1804
+ config: cfg,
1805
+ provider: resolvedModel.provider,
1806
+ model: resolvedModel.model,
1807
+ agentHarnessId: entry?.sessionId === sessionId ? entry.agentHarnessId : void 0,
1808
+ thinkLevel: normalizeThinkLevel(entry?.thinkingLevel),
1809
+ reasoningLevel: normalizeReasoningLevel(entry?.reasoningLevel),
1810
+ bashElevated: {
1811
+ enabled: false,
1812
+ allowed: false,
1813
+ defaultLevel: "off"
1814
+ },
1815
+ trigger: "manual"
1816
+ });
1817
+ } catch (err) {
1818
+ emitSessionOperation(context, {
1819
+ operationId,
1820
+ operation: "compact",
1821
+ phase: "end",
1822
+ sessionKey: target.canonicalKey,
1823
+ ...target.canonicalKey === "global" && target.agentId ? { agentId: target.agentId } : {},
1824
+ completed: false,
1825
+ reason: formatErrorMessage(err)
1826
+ });
1827
+ throw err;
1828
+ }
1829
+ emitSessionOperation(context, {
1830
+ operationId,
1831
+ operation: "compact",
1832
+ phase: "end",
1833
+ sessionKey: target.canonicalKey,
1834
+ ...target.canonicalKey === "global" && target.agentId ? { agentId: target.agentId } : {},
1835
+ completed: result.ok && result.compacted,
1836
+ reason: result.reason
1837
+ });
1838
+ if (result.ok && result.compacted) await updateSessionStore(storePath, (store) => {
1839
+ const entryToUpdate = store[compactTarget.primaryKey];
1840
+ if (!entryToUpdate) return;
1841
+ entryToUpdate.updatedAt = Date.now();
1842
+ entryToUpdate.compactionCount = Math.max(0, entryToUpdate.compactionCount ?? 0) + 1;
1843
+ if (result.result?.sessionId && result.result.sessionId !== entryToUpdate.sessionId) entryToUpdate.sessionId = result.result.sessionId;
1844
+ if (result.result?.sessionFile) entryToUpdate.sessionFile = result.result.sessionFile;
1845
+ delete entryToUpdate.inputTokens;
1846
+ delete entryToUpdate.outputTokens;
1847
+ delete entryToUpdate.contextBudgetStatus;
1848
+ if (typeof result.result?.tokensAfter === "number" && Number.isFinite(result.result.tokensAfter)) {
1849
+ entryToUpdate.totalTokens = result.result.tokensAfter;
1850
+ entryToUpdate.totalTokensFresh = true;
1851
+ } else {
1852
+ delete entryToUpdate.totalTokens;
1853
+ delete entryToUpdate.totalTokensFresh;
1854
+ }
1855
+ });
1856
+ respond(true, {
1857
+ ok: result.ok,
1858
+ key: target.canonicalKey,
1859
+ compacted: result.compacted,
1860
+ reason: result.reason,
1861
+ result: result.result
1862
+ }, void 0);
1863
+ if (result.ok) emitSessionsChanged(context, {
1864
+ sessionKey: target.canonicalKey,
1865
+ ...target.canonicalKey === "global" && target.agentId ? { agentId: target.agentId } : {},
1866
+ reason: "compact",
1867
+ compacted: result.compacted
1868
+ });
1869
+ return;
1870
+ }
1871
+ const tail = readRecentSessionTranscriptLines({
1872
+ sessionId,
1873
+ storePath,
1874
+ sessionFile: entry?.sessionFile,
1875
+ agentId: target.agentId,
1876
+ maxLines
1877
+ });
1878
+ const lines = tail?.lines ?? [];
1879
+ const totalLines = tail?.totalLines ?? 0;
1880
+ if (totalLines <= maxLines) {
1881
+ respond(true, {
1882
+ ok: true,
1883
+ key: target.canonicalKey,
1884
+ compacted: false,
1885
+ kept: totalLines
1886
+ }, void 0);
1887
+ return;
1888
+ }
1889
+ const archived = archiveFileOnDisk(filePath, "bak");
1890
+ fs.writeFileSync(filePath, `${lines.join("\n")}\n`, "utf-8");
1891
+ await updateSessionStore(storePath, (store) => {
1892
+ const entryToUpdate = store[compactTarget.primaryKey];
1893
+ if (!entryToUpdate) return;
1894
+ delete entryToUpdate.inputTokens;
1895
+ delete entryToUpdate.outputTokens;
1896
+ delete entryToUpdate.totalTokens;
1897
+ delete entryToUpdate.totalTokensFresh;
1898
+ delete entryToUpdate.contextBudgetStatus;
1899
+ entryToUpdate.updatedAt = Date.now();
1900
+ });
1901
+ respond(true, {
1902
+ ok: true,
1903
+ key: target.canonicalKey,
1904
+ compacted: true,
1905
+ archived,
1906
+ kept: lines.length
1907
+ }, void 0);
1908
+ emitSessionsChanged(context, {
1909
+ sessionKey: target.canonicalKey,
1910
+ ...target.canonicalKey === "global" && target.agentId ? { agentId: target.agentId } : {},
1911
+ reason: "compact",
1912
+ compacted: true
1913
+ });
1914
+ }
1915
+ };
1916
+ //#endregion
1917
+ export { sessionsHandlers };