fengming 0.3.8 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1255) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/abort-CCR8oZyg.js +277 -0
  3. package/dist/abort.runtime-eqx84NZa.js +2 -0
  4. package/dist/abort.runtime.js +1 -1
  5. package/dist/acp-spawn-BcDyvaXh.js +2 -0
  6. package/dist/acp-spawn-CCtSel-_.js +1286 -0
  7. package/dist/acp-stateful-target-driver-B3pCvuOV.js +89 -0
  8. package/dist/active-tool-schema-warnings-Cf-5q5WU.js +105 -0
  9. package/dist/active-tool-schema-warnings-Dzt3XE-y.js +2 -0
  10. package/dist/agent-1M2dVE2G.js +2 -0
  11. package/dist/agent-DLDIbUT4.js +1825 -0
  12. package/dist/agent-DZi6j3o6.js +3 -0
  13. package/dist/agent-command-ppfDBwET.js +1435 -0
  14. package/dist/agent-harness-runtime-C0bo62eY.d.ts +913 -0
  15. package/dist/agent-harness-runtime-RkTGiliR.js +207 -0
  16. package/dist/agent-runner-utils-B4YeVAO_.js +267 -0
  17. package/dist/agent-runner.runtime-T_3tlZN1.js +3784 -0
  18. package/dist/agent-runner.runtime.js +1 -1
  19. package/dist/agent-runtime-CloshyK-.d.ts +207 -0
  20. package/dist/agent-runtime-DZsmp1xr.js +199 -0
  21. package/dist/agent-tools-CET9usCz.js +2506 -0
  22. package/dist/agent-via-gateway-CZ0X0YkM.js +486 -0
  23. package/dist/agent-wait-dedupe-I81_F2tr.js +180 -0
  24. package/dist/agents/embedded-agent-runner/run/runtime-context-prompt.d.ts +1 -1
  25. package/dist/agents/embedded-agent-runner/tool-split.d.ts +1 -1
  26. package/dist/agents/model-catalog.runtime.d.ts +1 -1
  27. package/dist/api-BDB5xHYj.js +3 -0
  28. package/dist/api-BH7bfI5d.js +6 -0
  29. package/dist/api-BxJNXitd.js +2 -0
  30. package/dist/approval-client-helpers-CfQA9Jzh.d.ts +78 -0
  31. package/dist/approval-native-helpers-B2zyhxWc.d.ts +241 -0
  32. package/dist/approval-renderers-CMqSXyvm.d.ts +39 -0
  33. package/dist/assistant-Cu_Mzzgu.js +291 -0
  34. package/dist/attachment-normalize-Bb3v5iCC.js +213 -0
  35. package/dist/attempt-execution-BskbAq5I.js +584 -0
  36. package/dist/attempt-execution.runtime-BuT1wpNS.js +3 -0
  37. package/dist/attempt-execution.runtime.js +1 -1
  38. package/dist/attempt.prompt-helpers-ByKj-vQ7.js +543 -0
  39. package/dist/auto-reply/reply/commands-crestodian.d.ts +1 -1
  40. package/dist/binding-routing-EGRNvRC4.js +113 -0
  41. package/dist/binding-targets-B9vYS8n6.js +121 -0
  42. package/dist/bridge-server-DG9YtKQe.js +113 -0
  43. package/dist/browser-cli-B0Ou-Nbm.js +2 -0
  44. package/dist/browser-cli-GF25gL6M.js +230 -0
  45. package/dist/browser-cli-actions-input-CuER6RVe.js +522 -0
  46. package/dist/browser-cli-actions-observe-Dq-Zz_FA.js +81 -0
  47. package/dist/browser-cli-debug-7hvb49S1.js +137 -0
  48. package/dist/browser-cli-inspect-WU5KeWOK.js +117 -0
  49. package/dist/browser-cli-manage-B9D9BvSe.js +446 -0
  50. package/dist/browser-cli-resize-BUOusOPb.js +32 -0
  51. package/dist/browser-cli-shared-DmpSN-Qi.js +69 -0
  52. package/dist/browser-cli-state-D_YxTqRw.js +371 -0
  53. package/dist/browser-control-auth-Cqd1n9FA.js +2 -0
  54. package/dist/browser-profiles-9tQ05wYh.js +2 -0
  55. package/dist/browser-runtime-Bbzumoha.js +389 -0
  56. package/dist/build-CBXuT2K1.js +261 -0
  57. package/dist/build-info.json +3 -3
  58. package/dist/bundled/boot-md/handler.js +2 -2
  59. package/dist/bundled/session-memory/handler.js +1 -1
  60. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  61. package/dist/capability-cli-CiVGX7ut.js +1809 -0
  62. package/dist/channel-BIVwHq7P.js +2309 -0
  63. package/dist/channel-CiA2FVdL.d.ts +427 -0
  64. package/dist/channel-core-Cj9JTqeu.js +5 -0
  65. package/dist/channel-core-DjVpcH1C.d.ts +6 -0
  66. package/dist/channel-entry-contract-Bs_54m1D.d.ts +114 -0
  67. package/dist/channel-inbound-CdUdeQRa.js +121 -0
  68. package/dist/channel-inbound-iGiqx6CS.d.ts +97 -0
  69. package/dist/channel-message-C3QPaDUk.js +12 -0
  70. package/dist/channel-message-CXDjxb2U.d.ts +9 -0
  71. package/dist/channel-outbound-ofvvmMSK.d.ts +325 -0
  72. package/dist/channel-pairing-DKscOV1K.d.ts +58 -0
  73. package/dist/channel.runtime-VW6PW_ez.js +697 -0
  74. package/dist/channel.runtime.js +1 -1
  75. package/dist/chat-CFkQepUQ.js +3 -0
  76. package/dist/chat-Czh_tXM0.js +2940 -0
  77. package/dist/chrome-B2cq8YyH.js +1517 -0
  78. package/dist/cli/run-main.js +5 -5
  79. package/dist/cli-compaction-Dxv4nt7R.js +363 -0
  80. package/dist/cli-runner-CimXSTVs.js +2 -0
  81. package/dist/cli-runner-orCzE1Sr.js +597 -0
  82. package/dist/cli-runner.runtime-CsW0dXJW.js +3 -0
  83. package/dist/cli-runner.runtime-DgPrc1do.js +4 -0
  84. package/dist/cli-runner.runtime.js +1 -1
  85. package/dist/cli-startup-metadata.json +10 -12
  86. package/dist/command-registry-C5ooX6PF.js +4 -0
  87. package/dist/command-registry-DMB-HKIk.js +9 -0
  88. package/dist/command-registry-core-B2w_XWvn.js +114 -0
  89. package/dist/command-status.runtime-Bdy3Dkar.js +90 -0
  90. package/dist/command-status.runtime.js +1 -1
  91. package/dist/commands-compact.runtime-Bk2jTQo6.js +10 -0
  92. package/dist/commands-compact.runtime.js +1 -1
  93. package/dist/commands-handlers.runtime-Csw1og0U.js +6327 -0
  94. package/dist/commands-handlers.runtime.js +1 -1
  95. package/dist/commands-mRqmLIVz.d.ts +117 -0
  96. package/dist/commands-status-Dgrj_ubK.js +3 -0
  97. package/dist/commands-status-s32HJOpD.js +16 -0
  98. package/dist/commands-status.runtime-Dgrj_ubK.js +3 -0
  99. package/dist/commands-status.runtime.js +1 -1
  100. package/dist/commands-subagents-control.runtime-C_hnOO9l.js +2 -0
  101. package/dist/commands-subagents-control.runtime.js +1 -1
  102. package/dist/commands-system-prompt-CQV742Cc.js +2 -0
  103. package/dist/commands-system-prompt-DTfsKwK1.js +161 -0
  104. package/dist/commands-types-MXHhrssO.d.ts +132 -0
  105. package/dist/commands.runtime-akiVK67l.js +175 -0
  106. package/dist/commands.runtime.js +1 -1
  107. package/dist/commitments/runtime.js +1 -1
  108. package/dist/compact-U6ZhvPtD.js +1165 -0
  109. package/dist/compact.runtime-36E5vKsC.js +12 -0
  110. package/dist/compact.runtime.js +1 -1
  111. package/dist/completion-cli-Bf4mEw2W.js +393 -0
  112. package/dist/config-BJJhHN9E.js +374 -0
  113. package/dist/config-mutations-swLu-j_p.js +161 -0
  114. package/dist/config-schema-Tjner6bM.d.ts +20 -0
  115. package/dist/context-engine-host-compat-6fkn_daV.js +280 -0
  116. package/dist/context-engine-host-compat-DtAZC1bS.js +2 -0
  117. package/dist/context-engine-lifecycle-R__Idxi1.js +627 -0
  118. package/dist/control-auth-DnkI94_D.js +114 -0
  119. package/dist/control-service-BBsamNjq.js +40 -0
  120. package/dist/control-service-BGpHj7RL.js +3 -0
  121. package/dist/control-ui/assets/activity-D-mnRThU.js +124 -0
  122. package/dist/control-ui/assets/agents-U_KSP5I_.js +1030 -0
  123. package/dist/control-ui/assets/channels-ohK9_G1O.js +120 -0
  124. package/dist/control-ui/assets/cron-6ZCzfU29.js +1016 -0
  125. package/dist/control-ui/assets/debug-CSsDLg_s.js +97 -0
  126. package/dist/control-ui/assets/index-jUDczxhd.js +7214 -0
  127. package/dist/control-ui/assets/instances-782ZoDT4.js +57 -0
  128. package/dist/control-ui/assets/nodes-BMX16BKM.js +444 -0
  129. package/dist/control-ui/assets/sessions-jLGSApYa.js +425 -0
  130. package/dist/control-ui/assets/skills-DweBwUhs.js +362 -0
  131. package/dist/control-ui/assets/workboard-BsU-FXIo.js +402 -0
  132. package/dist/control-ui/index.html +1 -1
  133. package/dist/control-ui/sw.js +1 -1
  134. package/dist/conversation-runtime-DDekWU-U.js +31 -0
  135. package/dist/core-Bpk-qSJH.js +284 -0
  136. package/dist/core-Chrz4oRB.d.ts +223 -0
  137. package/dist/core-api-DSpUKNVW.js +2 -0
  138. package/dist/core-api-hLsW03Wo.js +5 -0
  139. package/dist/crestodian/crestodian.js +1 -1
  140. package/dist/crestodian/rescue-message.d.ts +1 -1
  141. package/dist/crestodian/rescue-message.js +1 -1
  142. package/dist/crestodian-C0x7JjF-.js +55 -0
  143. package/dist/delegate-BArFIZ4B.d.ts +30 -0
  144. package/dist/deliver-BnVp3VbL.d.ts +111 -0
  145. package/dist/delivery-queue-BFOASdf5.d.ts +161 -0
  146. package/dist/delivery-queue-runtime-BFfc8AEs.d.ts +9 -0
  147. package/dist/dialogue-No0NvYX7.js +37 -0
  148. package/dist/direct-dm-C-h88JJH.d.ts +79 -0
  149. package/dist/directive-handling.fast-lane-DTyDKhZb.js +70 -0
  150. package/dist/directive-handling.impl-DMReM6tu.js +2 -0
  151. package/dist/directive-handling.impl-DzPouhV-.js +823 -0
  152. package/dist/directive-handling.model-selection-BjwTBAZJ.js +122 -0
  153. package/dist/directive-handling.persist.runtime-D_O1okkR.js +274 -0
  154. package/dist/directive-handling.persist.runtime.js +1 -1
  155. package/dist/dispatch-Dtl-oRuN.js +2057 -0
  156. package/dist/dispatch-acp-transcript.runtime-M4y0Dq74.js +40 -0
  157. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  158. package/dist/dispatch-acp.runtime-B8uCIKZS.js +18 -0
  159. package/dist/dispatch-acp.runtime.js +1 -1
  160. package/dist/dispatcher-DslvaRcj.js +106 -0
  161. package/dist/doctor-config-flow-LU2C94af.js +1819 -0
  162. package/dist/doctor-core-checks-BqcjExIZ.js +666 -0
  163. package/dist/doctor-core-checks-Diuk8l0N.js +2 -0
  164. package/dist/doctor-core-checks.runtime-DbS-kMZN.js +278 -0
  165. package/dist/doctor-core-checks.runtime.js +1 -1
  166. package/dist/doctor-health-BdqHwfYE.js +65 -0
  167. package/dist/doctor-health-contributions-DLLTVnll.js +874 -0
  168. package/dist/doctor-lint-PZqkVMWf.js +95 -0
  169. package/dist/doctor-mRfJMSb5.js +6 -0
  170. package/dist/doctor-state-integrity-Cdlm-peH.js +1257 -0
  171. package/dist/draft-stream-controls-B7uLonbw.d.ts +159 -0
  172. package/dist/embedded-agent-CEpOPW6X.js +4 -0
  173. package/dist/embedded-agent-CNINO_M-.d.ts +5 -0
  174. package/dist/embedded-agent-DxwzoZkp.js +4074 -0
  175. package/dist/embedded-agent.runtime-DDbhA85-.js +4 -0
  176. package/dist/embedded-agent.runtime.js +1 -1
  177. package/dist/embedded-backend-ChaKCepC.js +1581 -0
  178. package/dist/embedded-gateway-stub.runtime-e_ZxGhcW.js +12 -0
  179. package/dist/embedded-gateway-stub.runtime.js +1 -1
  180. package/dist/entry.d.ts +1 -1
  181. package/dist/extensionAPI.d.ts +2 -2
  182. package/dist/extensionAPI.js +1 -1
  183. package/dist/extensions/active-memory/index.d.ts +1 -1
  184. package/dist/extensions/active-memory/index.js +1 -1
  185. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  186. package/dist/extensions/admin-http-rpc/index.js +1 -1
  187. package/dist/extensions/bonjour/index.d.ts +1 -1
  188. package/dist/extensions/browser/browser-bridge.js +1 -1
  189. package/dist/extensions/browser/browser-config.js +4 -4
  190. package/dist/extensions/browser/browser-control-auth.js +2 -2
  191. package/dist/extensions/browser/browser-doctor.js +2 -2
  192. package/dist/extensions/browser/browser-maintenance.js +1 -1
  193. package/dist/extensions/browser/browser-profiles.js +2 -2
  194. package/dist/extensions/browser/browser-runtime-api.js +12 -12
  195. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  196. package/dist/extensions/browser/cli-metadata.js +1 -1
  197. package/dist/extensions/browser/index.d.ts +1 -1
  198. package/dist/extensions/browser/index.js +1 -1
  199. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  200. package/dist/extensions/browser/plugin-registration.js +1 -1
  201. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  202. package/dist/extensions/browser/register.runtime.js +4 -4
  203. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  204. package/dist/extensions/browser/runtime-api.js +14 -14
  205. package/dist/extensions/browser/setup-api.d.ts +1 -1
  206. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  207. package/dist/extensions/canvas/index.d.ts +1 -1
  208. package/dist/extensions/canvas/index.js +1 -1
  209. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  210. package/dist/extensions/deepseek/api.d.ts +1 -1
  211. package/dist/extensions/deepseek/index.d.ts +1 -1
  212. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  213. package/dist/extensions/deepseek/stream.d.ts +1 -1
  214. package/dist/extensions/device-pair/api.d.ts +4 -4
  215. package/dist/extensions/device-pair/api.js +1 -1
  216. package/dist/extensions/device-pair/index.d.ts +1 -1
  217. package/dist/extensions/device-pair/notify.d.ts +1 -1
  218. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  219. package/dist/extensions/device-pair/qr-image.d.ts +1 -1
  220. package/dist/extensions/memory-core/api.d.ts +1 -1
  221. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  222. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  223. package/dist/extensions/memory-core/index.d.ts +1 -1
  224. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  225. package/dist/extensions/memory-core/runtime-api.d.ts +3 -3
  226. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  227. package/dist/extensions/skill-workshop/api.js +1 -1
  228. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  229. package/dist/extensions/skill-workshop/index.js +2 -2
  230. package/dist/extensions/tavily/index.d.ts +1 -1
  231. package/dist/extensions/tavily/web-search-contract-api.d.ts +1 -1
  232. package/dist/extensions/tavily/web-search-provider.d.ts +1 -1
  233. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  234. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  235. package/dist/extensions/webhooks/api.d.ts +2 -2
  236. package/dist/extensions/webhooks/api.js +1 -1
  237. package/dist/extensions/webhooks/index.d.ts +1 -1
  238. package/dist/extensions/webhooks/index.js +1 -1
  239. package/dist/extensions/webhooks/runtime-api.d.ts +1 -1
  240. package/dist/extensions/workboard/api.d.ts +2 -2
  241. package/dist/extensions/workboard/index.d.ts +1 -1
  242. package/dist/extensions/workboard/index.js +1 -1
  243. package/dist/extensions/workboard/runtime-api.d.ts +1 -1
  244. package/dist/fengming-runtime-CtRd5677.d.ts +153 -0
  245. package/dist/fengming-tools-DBLsJfsf.js +12221 -0
  246. package/dist/gateway-cli-BgDV2HF9.js +443 -0
  247. package/dist/gateway-method-runtime-d9oN_XO9.js +21 -0
  248. package/dist/get-reply-CEMtvaTJ.js +5198 -0
  249. package/dist/get-reply-from-config.runtime-CE8zmX7o.js +2 -0
  250. package/dist/get-reply-from-config.runtime.js +1 -1
  251. package/dist/heartbeat-runner-H8SmaKmJ.js +5 -0
  252. package/dist/heartbeat-runner.runtime-6hUaxEbl.js +3 -0
  253. package/dist/heartbeat-runner.runtime.js +1 -1
  254. package/dist/hooks-DkEvkwzS.js +536 -0
  255. package/dist/host-compat-DeAq3dnI.d.ts +21 -0
  256. package/dist/http-registry-BDoApjTY.d.ts +23 -0
  257. package/dist/inbound-reply-dispatch-CIYP2OPo.d.ts +156 -0
  258. package/dist/inbound-reply-dispatch-geHu6oUK.js +147 -0
  259. package/dist/inbound-reply-dispatch-vwW5Hl-_.js +2 -0
  260. package/dist/index.js +1 -1
  261. package/dist/init-DpE_6dG4.js +59 -0
  262. package/dist/interactive-Cb_1f91G.d.ts +26 -0
  263. package/dist/isolated-agent-B_upYOOM.js +2 -0
  264. package/dist/isolated-agent-KH9uwWhw.js +1097 -0
  265. package/dist/kernel-BHnBXnm2.d.ts +241 -0
  266. package/dist/lifecycle-BmZwopzF.js +570 -0
  267. package/dist/list.probe-5kzWm9Jk.js +451 -0
  268. package/dist/list.probe-9zBcGGQ4.js +2 -0
  269. package/dist/list.status-command-DY2ifqp1.js +815 -0
  270. package/dist/llm-slug-generator-Bmx0I84M.js +78 -0
  271. package/dist/llm-slug-generator.js +1 -1
  272. package/dist/loader-BVz75gSb.d.ts +142 -0
  273. package/dist/local-dispatch.runtime-CX3IOY1E.js +10 -0
  274. package/dist/local-dispatch.runtime.js +1 -1
  275. package/dist/manager-BXGg8bfG.d.ts +409 -0
  276. package/dist/mcp-http-B1lnh67s.js +2 -0
  277. package/dist/mcp-http-CamghE-W.js +583 -0
  278. package/dist/media-runtime-DpykroJR.d.ts +261 -0
  279. package/dist/memory-core-host-engine-embeddings-N2dX5P40.d.ts +324 -0
  280. package/dist/memory-core-host-engine-storage-WQfkQMer.d.ts +54 -0
  281. package/dist/message-handler-Ca_pqGVS.js +1806 -0
  282. package/dist/model-catalog-BBMLIjhq.d.ts +88 -0
  283. package/dist/model-selection-Cq82FXLy.js +352 -0
  284. package/dist/models-cli-Dm_393dw.js +257 -0
  285. package/dist/monitor-d0eyE2k0.js +60 -0
  286. package/dist/monitor.account-vLQ3bKHu.js +5382 -0
  287. package/dist/nodes-Bunvrb33.js +1483 -0
  288. package/dist/nodes-edNlxb2I.js +3 -0
  289. package/dist/nodes-pending-DEIwVh9v.js +211 -0
  290. package/dist/openai-compat-errors-CvWEoG98.js +136 -0
  291. package/dist/openai-http-Bskdv4Tv.js +836 -0
  292. package/dist/openresponses-http-DxdgCxFU.js +1175 -0
  293. package/dist/operations-Z85LFqsT.js +805 -0
  294. package/dist/outbound.types-DVkbsxo8.d.ts +291 -0
  295. package/dist/plugin-enabled-fvhTpvYS.js +232 -0
  296. package/dist/plugin-entry-CunlVUw6.d.ts +47 -0
  297. package/dist/plugin-registration-9ovnK_Tk.js +97 -0
  298. package/dist/plugin-runtime-DH2ZM9P5.d.ts +117 -0
  299. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  300. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  301. package/dist/plugin-sdk/acp-runtime.js +1 -1
  302. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  303. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  304. package/dist/plugin-sdk/agent-harness.js +6 -6
  305. package/dist/plugin-sdk/agent-runtime.js +2 -2
  306. package/dist/plugin-sdk/bundled-channel-config-schema-Dfn3b8sF.d.ts +3169 -0
  307. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  308. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  309. package/dist/plugin-sdk/channel-core.js +2 -2
  310. package/dist/plugin-sdk/channel-envelope.js +1 -1
  311. package/dist/plugin-sdk/channel-inbound-roots.js +1 -1
  312. package/dist/plugin-sdk/channel-inbound.js +2 -2
  313. package/dist/plugin-sdk/channel-location.js +1 -1
  314. package/dist/plugin-sdk/channel-message-runtime.js +3 -3
  315. package/dist/plugin-sdk/channel-message.js +2 -2
  316. package/dist/plugin-sdk/channel-runtime.js +0 -1
  317. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  318. package/dist/plugin-sdk/compat.js +1 -1
  319. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  320. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  321. package/dist/plugin-sdk/core.js +2 -2
  322. package/dist/plugin-sdk/discord.d.ts +1 -1
  323. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  324. package/dist/plugin-sdk/health.js +1 -1
  325. package/dist/plugin-sdk/hook-runtime.js +0 -1
  326. package/dist/plugin-sdk/inbound-reply-dispatch.js +2 -2
  327. package/dist/plugin-sdk/index.js +1 -1
  328. package/dist/plugin-sdk/infra-runtime.js +3 -1
  329. package/dist/plugin-sdk/provider-auth-api-key.js +0 -1
  330. package/dist/plugin-sdk/provider-stream-family.js +0 -1
  331. package/dist/plugin-sdk/provider-usage.js +649 -1
  332. package/dist/plugin-sdk/reply-runtime.js +4 -4
  333. package/dist/plugin-sdk/video-generation.js +206 -1
  334. package/dist/plugin-service-BdZxoKBZ.js +1249 -0
  335. package/dist/plugin-service-quTl5hT0.d.ts +24 -0
  336. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  337. package/dist/plugins/loader.d.ts +1 -1
  338. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  339. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  340. package/dist/plugins/runtime/index.d.ts +1 -1
  341. package/dist/plugins/runtime/index.js +4 -4
  342. package/dist/plugins/tools.d.ts +1 -1
  343. package/dist/prepare.runtime-DFvkUqBZ.js +798 -0
  344. package/dist/prepare.runtime.js +1 -1
  345. package/dist/preview-warnings-CGzc8ccG.js +618 -0
  346. package/dist/program-D19g2jaa.js +131 -0
  347. package/dist/provider-api-key-auth-B8GgTfo8.d.ts +27 -0
  348. package/dist/provider-auth-result-Diw-woMA.d.ts +21 -0
  349. package/dist/provider-catalog-shared-hMvzzDgL.d.ts +62 -0
  350. package/dist/provider-dispatcher-DCTc4lG_.js +22 -0
  351. package/dist/provider-dispatcher.runtime.js +1 -1
  352. package/dist/provider-model-shared-BUCh3uCL.d.ts +143 -0
  353. package/dist/provider-registry-BIokPlxa.d.ts +8 -0
  354. package/dist/provider-registry-CyUOXHG-.d.ts +8 -0
  355. package/dist/provider-registry-i--H79Ao.d.ts +29 -0
  356. package/dist/provider-self-hosted-setup-BF8UR8wg.d.ts +74 -0
  357. package/dist/provider-stream-NF0XJnar.d.ts +139 -0
  358. package/dist/provider-stream-shared-DLwDaYed.d.ts +132 -0
  359. package/dist/provider-web-search-contract-fields-D61Vl5Kl.d.ts +25 -0
  360. package/dist/pw-ai-DYR-D7xR.js +3064 -0
  361. package/dist/register.agent-DwW0mQPk.js +152 -0
  362. package/dist/register.crestodian-BhIukKDA.js +24 -0
  363. package/dist/register.maintenance-DWHlvztJ.js +85 -0
  364. package/dist/register.subclis-Bsvdh8RI.js +3 -0
  365. package/dist/register.subclis-DVk0HU4k.js +31 -0
  366. package/dist/register.subclis-core-BK7nVvl6.js +278 -0
  367. package/dist/registry-hscEPAcC.d.ts +8 -0
  368. package/dist/registry-types-Ce-n1tuw.d.ts +392 -0
  369. package/dist/repair-sequencing-0-qGNSUO.js +652 -0
  370. package/dist/reply-payload-mCw4ZND6.d.ts +200 -0
  371. package/dist/reply-turn-admission-DMWNadoS.js +2056 -0
  372. package/dist/reply.runtime-CE8zmX7o.js +2 -0
  373. package/dist/reply.runtime.js +1 -1
  374. package/dist/result-fallback-classifier-BZmv2ACy.js +98 -0
  375. package/dist/route-qQ-jYpFa.js +475 -0
  376. package/dist/routes-dTCmw98g.js +2 -0
  377. package/dist/routes-r8DRKa83.js +3701 -0
  378. package/dist/run-BgH7EPGH.js +1162 -0
  379. package/dist/run-command-DCsM-BVh.js +23 -0
  380. package/dist/run-command-I2ib4dwS.js +2 -0
  381. package/dist/run-context-CWaKUKKJ.js +66 -0
  382. package/dist/run-embedded.runtime-CBnDBWN0.js +4 -0
  383. package/dist/run-embedded.runtime.js +1 -1
  384. package/dist/run-execution-cli.runtime-DlYXI-lw.js +4 -0
  385. package/dist/run-execution-cli.runtime.js +1 -1
  386. package/dist/run-executor.runtime-DwepGrmB.js +330 -0
  387. package/dist/run-executor.runtime.js +1 -1
  388. package/dist/run-subagent-registry.runtime-CeVpoIhj.js +2 -0
  389. package/dist/run-subagent-registry.runtime.js +1 -1
  390. package/dist/runtime-D2ee-rNh.js +436 -0
  391. package/dist/runtime-api-B99ZlkNt.d.ts +5 -0
  392. package/dist/runtime-api-Cta2L_Yo.js +12 -0
  393. package/dist/runtime-channel-LKOkML3M.js +2 -0
  394. package/dist/runtime-channel-UtWvrTZ5.js +148 -0
  395. package/dist/runtime-embedded-agent.runtime-9O2Idzyb.js +2 -0
  396. package/dist/runtime-embedded-agent.runtime.js +1 -1
  397. package/dist/runtime-forwarders-DjI8RFL5.d.ts +39 -0
  398. package/dist/sdk-setup-tools-B-X04pa6.js +8 -0
  399. package/dist/selection-B02h8Old.js +3 -0
  400. package/dist/selection-DEPvzrW2.js +18365 -0
  401. package/dist/server-CMYi8gDo.js +24 -0
  402. package/dist/server-Cx07rsiY.js +72 -0
  403. package/dist/server-close.runtime.js +1 -1
  404. package/dist/server-context-BIemGRt4.js +2 -0
  405. package/dist/server-context-CB_an9iy.js +955 -0
  406. package/dist/server-cron-BeyuBUjb.js +3173 -0
  407. package/dist/server-cron-CV7KkVeB.js +2 -0
  408. package/dist/server-methods-C7EnpOhB.js +497 -0
  409. package/dist/server-node-events-DMMzZciN.js +597 -0
  410. package/dist/server-plugin-bootstrap-O6MzvzL8.js +71 -0
  411. package/dist/server-plugins-Dwnaz9kX.js +435 -0
  412. package/dist/server-reload-handlers-C-6TyPvI.js +719 -0
  413. package/dist/server-restart-sentinel-Dc35eYgk.js +700 -0
  414. package/dist/server-runtime-services-DCs-gqh_.js +3 -0
  415. package/dist/server-runtime-services-DF2fzzVd.js +147 -0
  416. package/dist/server-startup-plugins-t-YeYibm.js +127 -0
  417. package/dist/server-startup-post-attach-CiEki-DC.js +793 -0
  418. package/dist/server-ws-runtime-uaUpI-e8.js +374 -0
  419. package/dist/server.impl-MoHjSMr5.js +2622 -0
  420. package/dist/session-kill-http-CYCiQpt2.js +121 -0
  421. package/dist/session-reset-service-BYbADY57.js +651 -0
  422. package/dist/session-status.runtime-8NASbeO4.js +2 -0
  423. package/dist/session-status.runtime.js +1 -1
  424. package/dist/session-subagent-reactivation.runtime-DGeNY2Rb.js +2 -0
  425. package/dist/session-subagent-reactivation.runtime.js +1 -1
  426. package/dist/session-tab-registry-C2eElZrt.js +551 -0
  427. package/dist/sessions-DXAdVXIx.js +1917 -0
  428. package/dist/sessions-history-http-BwK7b8OH.js +432 -0
  429. package/dist/sessions-patch-BYC5gvY1.js +401 -0
  430. package/dist/sessions-resolve-C3ORcdmo.js +180 -0
  431. package/dist/sessions.runtime-BijldeSY.js +2 -0
  432. package/dist/sessions.runtime.js +1 -1
  433. package/dist/snapshot-urls-C5CfP3Co.js +317 -0
  434. package/dist/speech-core-wWkTZPpQ.d.ts +49 -0
  435. package/dist/standalone-CHrieUsw.js +42 -0
  436. package/dist/startup-context-CZfmG8-g.js +314 -0
  437. package/dist/status-subagents.runtime-D2XMebiS.js +32 -0
  438. package/dist/status-subagents.runtime.js +1 -1
  439. package/dist/status-text-JR7IPyzZ.js +301 -0
  440. package/dist/stream-BJgTkLEI.d.ts +5 -0
  441. package/dist/subagent-announce-B9cfs_KZ.js +353 -0
  442. package/dist/subagent-announce-delivery-CtmEvLTS.js +1369 -0
  443. package/dist/subagent-control-DVqLHi9O.js +492 -0
  444. package/dist/subagent-hooks-D251uSvy.js +230 -0
  445. package/dist/subagent-hooks-api-DvdMKxsC.js +23 -0
  446. package/dist/subagent-hooks-uLORYChc.js +2 -0
  447. package/dist/subagent-registry-BW2l_oYu.js +3 -0
  448. package/dist/subagent-registry-BxEMHuiN.js +2627 -0
  449. package/dist/subagent-registry.runtime.d.ts +1 -1
  450. package/dist/subagent-registry.runtime.js +1 -1
  451. package/dist/subagent-session-cleanup-BC5wV2qQ.js +390 -0
  452. package/dist/system-fvgHsr2x.js +111 -0
  453. package/dist/talk-DU0Sod_K.js +2454 -0
  454. package/dist/target-id-BR2xJIkd.js +107 -0
  455. package/dist/task-registry-control.runtime.js +1 -1
  456. package/dist/thread-bindings-8XNu5U2p.js +228 -0
  457. package/dist/tool-Boeg0N5g.js +143 -0
  458. package/dist/tool-dispatch-BhLLaL2g.js +155 -0
  459. package/dist/tool-resolution-CzsLs-87.js +153 -0
  460. package/dist/tool-split-Bedy42Ms.d.ts +19 -0
  461. package/dist/tools-B6egHpE3.d.ts +38 -0
  462. package/dist/tools-effective-NXscxK8n.js +442 -0
  463. package/dist/tools-effective-inventory-NsGMUVo-.js +379 -0
  464. package/dist/tools-invoke-_sSu96Kq.js +51 -0
  465. package/dist/tools-invoke-http-BDhlRl-G.js +68 -0
  466. package/dist/tools-invoke-shared-BH-T9Bcg.js +200 -0
  467. package/dist/tts-runtime-C1wu3o15.d.ts +230 -0
  468. package/dist/tui-C733Qov0.js +2 -0
  469. package/dist/tui-DqbscVN5.js +3 -0
  470. package/dist/tui-backend-_Pn3Byj-.js +257 -0
  471. package/dist/tui-cli-CAiC39zd.js +40 -0
  472. package/dist/tui-ink-run-ChXEGj1h.js +7414 -0
  473. package/dist/tui-ink-run-D4mSfLHj.js +2 -0
  474. package/dist/types-BQw1qXGl.d.ts +7034 -0
  475. package/dist/types-BzMoU6-C.d.ts +111 -0
  476. package/dist/types-DltHmoCX.d.ts +393 -0
  477. package/dist/types.public-C_bVIMBl.d.ts +70 -0
  478. package/dist/web-fetch/runtime.d.ts +1 -1
  479. package/dist/webhook-targets-DW2jhddP.d.ts +99 -0
  480. package/npm-shrinkwrap.json +12861 -11889
  481. package/package.json +2 -5
  482. package/skills/batch/SKILL.md +118 -0
  483. package/skills/code-review/SKILL.md +107 -0
  484. package/skills/debug/SKILL.md +83 -0
  485. package/skills/loop/SKILL.md +118 -0
  486. package/skills/run/SKILL.md +79 -0
  487. package/skills/run-skill-generator/SKILL.md +179 -0
  488. package/skills/verify/SKILL.md +103 -0
  489. package/dist/abort-DGskei2p.js +0 -277
  490. package/dist/abort.runtime-Buq9IZxn.js +0 -2
  491. package/dist/acp-spawn-DC6IyYaB.js +0 -1286
  492. package/dist/acp-spawn-Diqb3nel.js +0 -2
  493. package/dist/acp-stateful-target-driver-Clhe_L8v.js +0 -89
  494. package/dist/active-tool-schema-warnings-BRhKkyvt.js +0 -2
  495. package/dist/active-tool-schema-warnings-C6N0-ce6.js +0 -105
  496. package/dist/agent-C5lhsEZJ.js +0 -2
  497. package/dist/agent-WEb757bl.js +0 -1825
  498. package/dist/agent-command-iLD_nsVY.js +0 -1435
  499. package/dist/agent-core-BeDN8Ns5.d.ts +0 -13
  500. package/dist/agent-harness-runtime-C89_Q-bW.d.ts +0 -913
  501. package/dist/agent-harness-runtime-Dfn5rik2.js +0 -207
  502. package/dist/agent-runner-utils-DNiuuo43.js +0 -267
  503. package/dist/agent-runner.runtime-CFF_qJ5V.js +0 -3784
  504. package/dist/agent-runtime-BkMtWXxn.js +0 -199
  505. package/dist/agent-runtime-HufMO_YR.d.ts +0 -207
  506. package/dist/agent-tools-HmaDv4ot.js +0 -2506
  507. package/dist/agent-via-gateway-CZQG8RYL.js +0 -486
  508. package/dist/agent-wait-dedupe-C3xQk2Ww.js +0 -180
  509. package/dist/agent-z1cs3c7n.js +0 -3
  510. package/dist/api-B4IMKjSe.js +0 -3
  511. package/dist/api-BwSbBWI8.js +0 -3
  512. package/dist/api-CE9In9m4.js +0 -5
  513. package/dist/api-ClPvYNGa.js +0 -32
  514. package/dist/api-CntBCaZf.js +0 -3
  515. package/dist/api-DBZBwTsn.js +0 -6
  516. package/dist/api-OCPwGOvK.js +0 -2
  517. package/dist/api-yYhEo7gK.js +0 -4
  518. package/dist/approval-client-helpers-CfdQ3-vv.d.ts +0 -78
  519. package/dist/approval-native-helpers-DSHPksK4.d.ts +0 -241
  520. package/dist/approval-renderers-BfEfwk44.d.ts +0 -39
  521. package/dist/assistant-v5fdOYu7.js +0 -291
  522. package/dist/attachment-normalize-BHAbLiL2.js +0 -213
  523. package/dist/attempt-execution-5w9WYbaJ.js +0 -584
  524. package/dist/attempt-execution.runtime-DnhOWGzr.js +0 -3
  525. package/dist/attempt.prompt-helpers-C4M4erF7.js +0 -543
  526. package/dist/binding-routing-Dpes-QF1.js +0 -113
  527. package/dist/binding-targets-B6H5Pd-A.js +0 -121
  528. package/dist/bridge-server-BCpxCRm_.js +0 -113
  529. package/dist/browser-cli-DMhXHopl.js +0 -230
  530. package/dist/browser-cli-Dy_VugK0.js +0 -2
  531. package/dist/browser-cli-actions-input-WMP7_lm6.js +0 -522
  532. package/dist/browser-cli-actions-observe-DQWAWhwU.js +0 -81
  533. package/dist/browser-cli-debug-CaT2ZKAx.js +0 -137
  534. package/dist/browser-cli-inspect-DU-LUXq1.js +0 -117
  535. package/dist/browser-cli-manage-DAuogqIh.js +0 -446
  536. package/dist/browser-cli-resize-Cz5uO_aR.js +0 -32
  537. package/dist/browser-cli-shared-CjPZcG3j.js +0 -69
  538. package/dist/browser-cli-state-CC3l77-K.js +0 -371
  539. package/dist/browser-control-auth-ELccIUZy.js +0 -2
  540. package/dist/browser-profiles-Cuy4ia6_.js +0 -2
  541. package/dist/browser-runtime-De-iUfME.js +0 -389
  542. package/dist/build-DEF8Per9.js +0 -261
  543. package/dist/capability-cli-Bydel4E7.js +0 -1809
  544. package/dist/channel-6SGL4R5P.js +0 -2309
  545. package/dist/channel-D3Q3b8J-.d.ts +0 -427
  546. package/dist/channel-core-Bj71kAB5.d.ts +0 -6
  547. package/dist/channel-core-DMvyWnHg.js +0 -5
  548. package/dist/channel-entry-contract-zYxRmEdf.d.ts +0 -114
  549. package/dist/channel-inbound-DVJzBcJ8.d.ts +0 -97
  550. package/dist/channel-inbound-DlCa7eJe.js +0 -121
  551. package/dist/channel-message-CyPGMMFB.js +0 -12
  552. package/dist/channel-message-Czl4cdoA.d.ts +0 -9
  553. package/dist/channel-outbound-BNbhmruA.d.ts +0 -325
  554. package/dist/channel-pairing-BiS-tSvl.d.ts +0 -58
  555. package/dist/channel-runtime-D8hntg7H.js +0 -7
  556. package/dist/channel.runtime-DxErReJR.js +0 -697
  557. package/dist/chat-BLA8ORQI.js +0 -3
  558. package/dist/chat-DWRXkuvU.js +0 -2940
  559. package/dist/chrome-DPwFYi-g.js +0 -1517
  560. package/dist/cli-compaction-YZpssARf.js +0 -363
  561. package/dist/cli-runner-D2OAqxu3.js +0 -597
  562. package/dist/cli-runner-DO4SORQf.js +0 -2
  563. package/dist/cli-runner.runtime-CNSIpbeT.js +0 -4
  564. package/dist/cli-runner.runtime-DAOYvpVQ.js +0 -3
  565. package/dist/command-registry-DpD0fb8D.js +0 -4
  566. package/dist/command-registry-core-Cl3tLG8G.js +0 -114
  567. package/dist/command-registry-nbP7c8RT.js +0 -9
  568. package/dist/command-status.runtime-BBuXTkq0.js +0 -90
  569. package/dist/commands-CR8MVvlD.d.ts +0 -117
  570. package/dist/commands-compact.runtime-BoafIjjg.js +0 -10
  571. package/dist/commands-handlers.runtime-D9jViG_x.js +0 -6327
  572. package/dist/commands-status-BqqJ7PVq.js +0 -16
  573. package/dist/commands-status-CMd41Vxf.js +0 -3
  574. package/dist/commands-status.runtime-CMd41Vxf.js +0 -3
  575. package/dist/commands-subagents-control.runtime-CU4I3A_n.js +0 -2
  576. package/dist/commands-system-prompt-CTtu1D3-.js +0 -2
  577. package/dist/commands-system-prompt-xswhORdM.js +0 -161
  578. package/dist/commands-types-B67CsqXf.d.ts +0 -132
  579. package/dist/commands.runtime-BUFhkrjQ.js +0 -175
  580. package/dist/compact-Dz_WvRkQ.js +0 -1165
  581. package/dist/compact.runtime-n-AKErni.js +0 -12
  582. package/dist/completion-cli-DJYs_L4_.js +0 -393
  583. package/dist/config-CFMbHJb0.js +0 -374
  584. package/dist/config-mutations-DCAloTKR.js +0 -161
  585. package/dist/config-schema-Drw1zrnG.d.ts +0 -20
  586. package/dist/context-engine-host-compat-4mNm1HCE.js +0 -2
  587. package/dist/context-engine-host-compat-BzJ7fUIn.js +0 -280
  588. package/dist/context-engine-lifecycle-V4PNQp6k.js +0 -627
  589. package/dist/control-auth-DG_cw-aN.js +0 -114
  590. package/dist/control-service-CurYipgK.js +0 -3
  591. package/dist/control-service-VyncoV7j.js +0 -40
  592. package/dist/control-ui/assets/activity-D5Plhlo-.js +0 -124
  593. package/dist/control-ui/assets/agents-Chcdfe1E.js +0 -1030
  594. package/dist/control-ui/assets/channels-BEtB4H37.js +0 -120
  595. package/dist/control-ui/assets/cron-CZyPkxSU.js +0 -1016
  596. package/dist/control-ui/assets/debug-DvM8iG47.js +0 -97
  597. package/dist/control-ui/assets/index-Rmpgh0f1.js +0 -7214
  598. package/dist/control-ui/assets/instances-yTC_uu60.js +0 -57
  599. package/dist/control-ui/assets/nodes-vbAxVHIH.js +0 -444
  600. package/dist/control-ui/assets/sessions-DOviHme5.js +0 -425
  601. package/dist/control-ui/assets/skills-Bfp5HEGW.js +0 -362
  602. package/dist/control-ui/assets/workboard-5sU2kHsV.js +0 -402
  603. package/dist/conversation-runtime-DgaABwHh.js +0 -31
  604. package/dist/core-BeBXdneV.js +0 -284
  605. package/dist/core-Chqb7X6l.d.ts +0 -223
  606. package/dist/core-api-BlK0FgBM.js +0 -2
  607. package/dist/core-api-pAvYk716.js +0 -5
  608. package/dist/crestodian-FeGTBqO1.js +0 -55
  609. package/dist/delegate-BjIjSU_E.d.ts +0 -30
  610. package/dist/deliver-CvtWN4Ey.d.ts +0 -111
  611. package/dist/delivery-queue-CQ-cj3KG.d.ts +0 -161
  612. package/dist/delivery-queue-runtime-ut7MG04m.d.ts +0 -9
  613. package/dist/detect-BjXPyrwn.js +0 -115
  614. package/dist/detect-C1xeIemQ.d.ts +0 -16
  615. package/dist/dialogue-BowVYhEC.js +0 -37
  616. package/dist/direct-dm-DoZZHpA0.d.ts +0 -79
  617. package/dist/directive-handling.fast-lane-hnmQ_CvD.js +0 -70
  618. package/dist/directive-handling.impl-Cai-CFS1.js +0 -2
  619. package/dist/directive-handling.impl-DY84qIfU.js +0 -823
  620. package/dist/directive-handling.model-selection-DASssLFQ.js +0 -122
  621. package/dist/directive-handling.persist.runtime-BY7tJUs2.js +0 -274
  622. package/dist/dispatch-D5iG5A8j.js +0 -2057
  623. package/dist/dispatch-acp-transcript.runtime-D3r16hbD.js +0 -40
  624. package/dist/dispatch-acp.runtime-CAIau5qX.js +0 -18
  625. package/dist/dispatcher-7-d2gw3J.js +0 -106
  626. package/dist/doctor-DD5YEMmf.js +0 -6
  627. package/dist/doctor-config-flow-CdlLHJmX.js +0 -1819
  628. package/dist/doctor-core-checks-6MP99TQG.js +0 -666
  629. package/dist/doctor-core-checks-Dm_o576z.js +0 -2
  630. package/dist/doctor-core-checks.runtime-B2qbKATd.js +0 -278
  631. package/dist/doctor-health-BKrhOv1v.js +0 -65
  632. package/dist/doctor-health-contributions-bIBLmw69.js +0 -874
  633. package/dist/doctor-lint-aOLOWli4.js +0 -95
  634. package/dist/doctor-state-integrity-23NQNNuo.js +0 -1257
  635. package/dist/draft-stream-controls-Bk1GVJ1l.d.ts +0 -159
  636. package/dist/embedded-agent-BeK8FhZr.d.ts +0 -5
  637. package/dist/embedded-agent-CNp_y7jW.js +0 -4074
  638. package/dist/embedded-agent-NEmNlXDR.js +0 -4
  639. package/dist/embedded-agent.runtime-hEby8P2s.js +0 -4
  640. package/dist/embedded-backend-BdbgfpBP.js +0 -1581
  641. package/dist/embedded-gateway-stub.runtime-ySZUA3Gy.js +0 -12
  642. package/dist/extensions/alibaba/fengming.plugin.json +0 -47
  643. package/dist/extensions/alibaba/index.d.ts +0 -12
  644. package/dist/extensions/alibaba/index.js +0 -13
  645. package/dist/extensions/alibaba/package.json +0 -15
  646. package/dist/extensions/alibaba/video-generation-provider.d.ts +0 -6
  647. package/dist/extensions/alibaba/video-generation-provider.js +0 -2
  648. package/dist/extensions/baichuan/fengming.plugin.json +0 -69
  649. package/dist/extensions/baichuan/index.d.ts +0 -11
  650. package/dist/extensions/baichuan/index.js +0 -45
  651. package/dist/extensions/baichuan/models.d.ts +0 -7
  652. package/dist/extensions/baichuan/models.js +0 -2
  653. package/dist/extensions/baichuan/onboard.d.ts +0 -5
  654. package/dist/extensions/baichuan/onboard.js +0 -2
  655. package/dist/extensions/baichuan/package.json +0 -15
  656. package/dist/extensions/baichuan/provider-catalog.d.ts +0 -2
  657. package/dist/extensions/baichuan/provider-catalog.js +0 -2
  658. package/dist/extensions/baichuan/provider-discovery.d.ts +0 -2
  659. package/dist/extensions/baichuan/provider-discovery.js +0 -5
  660. package/dist/extensions/byteplus/api.d.ts +0 -3
  661. package/dist/extensions/byteplus/api.js +0 -3
  662. package/dist/extensions/byteplus/fengming.plugin.json +0 -196
  663. package/dist/extensions/byteplus/index.d.ts +0 -12
  664. package/dist/extensions/byteplus/index.js +0 -85
  665. package/dist/extensions/byteplus/models.d.ts +0 -2
  666. package/dist/extensions/byteplus/models.js +0 -2
  667. package/dist/extensions/byteplus/package.json +0 -15
  668. package/dist/extensions/byteplus/provider-catalog.d.ts +0 -2
  669. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  670. package/dist/extensions/byteplus/provider-discovery.d.ts +0 -5
  671. package/dist/extensions/byteplus/provider-discovery.js +0 -23
  672. package/dist/extensions/byteplus/video-generation-provider.d.ts +0 -6
  673. package/dist/extensions/byteplus/video-generation-provider.js +0 -2
  674. package/dist/extensions/longcat/fengming.plugin.json +0 -84
  675. package/dist/extensions/longcat/index.d.ts +0 -11
  676. package/dist/extensions/longcat/index.js +0 -45
  677. package/dist/extensions/longcat/models.d.ts +0 -7
  678. package/dist/extensions/longcat/models.js +0 -2
  679. package/dist/extensions/longcat/onboard.d.ts +0 -5
  680. package/dist/extensions/longcat/onboard.js +0 -2
  681. package/dist/extensions/longcat/package.json +0 -15
  682. package/dist/extensions/longcat/provider-catalog.d.ts +0 -2
  683. package/dist/extensions/longcat/provider-catalog.js +0 -2
  684. package/dist/extensions/longcat/provider-discovery.d.ts +0 -2
  685. package/dist/extensions/longcat/provider-discovery.js +0 -5
  686. package/dist/extensions/minimax/api.d.ts +0 -5
  687. package/dist/extensions/minimax/api.js +0 -6
  688. package/dist/extensions/minimax/fengming.plugin.json +0 -206
  689. package/dist/extensions/minimax/image-generation-provider.d.ts +0 -6
  690. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  691. package/dist/extensions/minimax/index.d.ts +0 -12
  692. package/dist/extensions/minimax/index.js +0 -29
  693. package/dist/extensions/minimax/media-understanding-provider.d.ts +0 -6
  694. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  695. package/dist/extensions/minimax/model-definitions.d.ts +0 -2
  696. package/dist/extensions/minimax/model-definitions.js +0 -2
  697. package/dist/extensions/minimax/music-generation-provider.d.ts +0 -6
  698. package/dist/extensions/minimax/music-generation-provider.js +0 -2
  699. package/dist/extensions/minimax/oauth.d.ts +0 -2
  700. package/dist/extensions/minimax/oauth.js +0 -2
  701. package/dist/extensions/minimax/oauth.runtime.d.ts +0 -2
  702. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  703. package/dist/extensions/minimax/onboard.d.ts +0 -2
  704. package/dist/extensions/minimax/onboard.js +0 -2
  705. package/dist/extensions/minimax/package.json +0 -15
  706. package/dist/extensions/minimax/provider-catalog.d.ts +0 -2
  707. package/dist/extensions/minimax/provider-catalog.js +0 -2
  708. package/dist/extensions/minimax/provider-contract-api.d.ts +0 -6
  709. package/dist/extensions/minimax/provider-contract-api.js +0 -77
  710. package/dist/extensions/minimax/provider-discovery.d.ts +0 -5
  711. package/dist/extensions/minimax/provider-discovery.js +0 -23
  712. package/dist/extensions/minimax/provider-models.d.ts +0 -2
  713. package/dist/extensions/minimax/provider-models.js +0 -2
  714. package/dist/extensions/minimax/provider-registration.d.ts +0 -7
  715. package/dist/extensions/minimax/provider-registration.js +0 -2
  716. package/dist/extensions/minimax/speech-provider.d.ts +0 -5
  717. package/dist/extensions/minimax/speech-provider.js +0 -2
  718. package/dist/extensions/minimax/tts.d.ts +0 -20
  719. package/dist/extensions/minimax/tts.js +0 -2
  720. package/dist/extensions/minimax/video-generation-provider.d.ts +0 -7
  721. package/dist/extensions/minimax/video-generation-provider.js +0 -2
  722. package/dist/extensions/minimax/web-search-contract-api.d.ts +0 -5
  723. package/dist/extensions/minimax/web-search-contract-api.js +0 -31
  724. package/dist/extensions/minimax/web-search-provider.d.ts +0 -5
  725. package/dist/extensions/minimax/web-search-provider.js +0 -2
  726. package/dist/extensions/moonshot/api.d.ts +0 -3
  727. package/dist/extensions/moonshot/api.js +0 -4
  728. package/dist/extensions/moonshot/fengming.plugin.json +0 -250
  729. package/dist/extensions/moonshot/index.d.ts +0 -11
  730. package/dist/extensions/moonshot/index.js +0 -70
  731. package/dist/extensions/moonshot/media-understanding-provider.d.ts +0 -6
  732. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  733. package/dist/extensions/moonshot/onboard.d.ts +0 -2
  734. package/dist/extensions/moonshot/onboard.js +0 -2
  735. package/dist/extensions/moonshot/package.json +0 -15
  736. package/dist/extensions/moonshot/provider-catalog.d.ts +0 -2
  737. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  738. package/dist/extensions/moonshot/provider-contract-api.d.ts +0 -5
  739. package/dist/extensions/moonshot/provider-contract-api.js +0 -27
  740. package/dist/extensions/moonshot/provider-discovery.d.ts +0 -5
  741. package/dist/extensions/moonshot/provider-discovery.js +0 -15
  742. package/dist/extensions/moonshot/web-search-contract-api.d.ts +0 -5
  743. package/dist/extensions/moonshot/web-search-contract-api.js +0 -29
  744. package/dist/extensions/moonshot/web-search-provider.d.ts +0 -5
  745. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  746. package/dist/extensions/qianfan/api.d.ts +0 -3
  747. package/dist/extensions/qianfan/api.js +0 -3
  748. package/dist/extensions/qianfan/fengming.plugin.json +0 -89
  749. package/dist/extensions/qianfan/index.d.ts +0 -11
  750. package/dist/extensions/qianfan/index.js +0 -26
  751. package/dist/extensions/qianfan/onboard.d.ts +0 -2
  752. package/dist/extensions/qianfan/onboard.js +0 -2
  753. package/dist/extensions/qianfan/package.json +0 -15
  754. package/dist/extensions/qianfan/provider-catalog.d.ts +0 -2
  755. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  756. package/dist/extensions/qwen/api.d.ts +0 -4
  757. package/dist/extensions/qwen/api.js +0 -5
  758. package/dist/extensions/qwen/fengming.plugin.json +0 -389
  759. package/dist/extensions/qwen/index.d.ts +0 -11
  760. package/dist/extensions/qwen/index.js +0 -202
  761. package/dist/extensions/qwen/media-understanding-provider.d.ts +0 -6
  762. package/dist/extensions/qwen/media-understanding-provider.js +0 -2
  763. package/dist/extensions/qwen/model-definitions.d.ts +0 -2
  764. package/dist/extensions/qwen/model-definitions.js +0 -2
  765. package/dist/extensions/qwen/models.d.ts +0 -2
  766. package/dist/extensions/qwen/models.js +0 -2
  767. package/dist/extensions/qwen/onboard.d.ts +0 -21
  768. package/dist/extensions/qwen/onboard.js +0 -2
  769. package/dist/extensions/qwen/package.json +0 -15
  770. package/dist/extensions/qwen/provider-catalog.d.ts +0 -2
  771. package/dist/extensions/qwen/provider-catalog.js +0 -2
  772. package/dist/extensions/qwen/stream.d.ts +0 -2
  773. package/dist/extensions/qwen/stream.js +0 -2
  774. package/dist/extensions/qwen/video-generation-provider.d.ts +0 -6
  775. package/dist/extensions/qwen/video-generation-provider.js +0 -2
  776. package/dist/extensions/sensenova/fengming.plugin.json +0 -69
  777. package/dist/extensions/sensenova/index.d.ts +0 -11
  778. package/dist/extensions/sensenova/index.js +0 -45
  779. package/dist/extensions/sensenova/models.d.ts +0 -7
  780. package/dist/extensions/sensenova/models.js +0 -2
  781. package/dist/extensions/sensenova/onboard.d.ts +0 -5
  782. package/dist/extensions/sensenova/onboard.js +0 -2
  783. package/dist/extensions/sensenova/package.json +0 -15
  784. package/dist/extensions/sensenova/provider-catalog.d.ts +0 -2
  785. package/dist/extensions/sensenova/provider-catalog.js +0 -2
  786. package/dist/extensions/sensenova/provider-discovery.d.ts +0 -2
  787. package/dist/extensions/sensenova/provider-discovery.js +0 -5
  788. package/dist/extensions/stepfun/fengming.plugin.json +0 -162
  789. package/dist/extensions/stepfun/index.d.ts +0 -12
  790. package/dist/extensions/stepfun/index.js +0 -165
  791. package/dist/extensions/stepfun/onboard.d.ts +0 -7
  792. package/dist/extensions/stepfun/onboard.js +0 -2
  793. package/dist/extensions/stepfun/package.json +0 -15
  794. package/dist/extensions/stepfun/provider-catalog.d.ts +0 -14
  795. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  796. package/dist/extensions/tencent/api.d.ts +0 -3
  797. package/dist/extensions/tencent/api.js +0 -4
  798. package/dist/extensions/tencent/fengming.plugin.json +0 -105
  799. package/dist/extensions/tencent/index.d.ts +0 -12
  800. package/dist/extensions/tencent/index.js +0 -62
  801. package/dist/extensions/tencent/models.d.ts +0 -2
  802. package/dist/extensions/tencent/models.js +0 -2
  803. package/dist/extensions/tencent/onboard.d.ts +0 -6
  804. package/dist/extensions/tencent/onboard.js +0 -2
  805. package/dist/extensions/tencent/package.json +0 -15
  806. package/dist/extensions/tencent/provider-catalog.d.ts +0 -2
  807. package/dist/extensions/tencent/provider-catalog.js +0 -2
  808. package/dist/extensions/tencent/provider-discovery.d.ts +0 -5
  809. package/dist/extensions/tencent/provider-discovery.js +0 -14
  810. package/dist/extensions/tiangong/fengming.plugin.json +0 -69
  811. package/dist/extensions/tiangong/index.d.ts +0 -11
  812. package/dist/extensions/tiangong/index.js +0 -45
  813. package/dist/extensions/tiangong/models.d.ts +0 -7
  814. package/dist/extensions/tiangong/models.js +0 -2
  815. package/dist/extensions/tiangong/onboard.d.ts +0 -5
  816. package/dist/extensions/tiangong/onboard.js +0 -2
  817. package/dist/extensions/tiangong/package.json +0 -15
  818. package/dist/extensions/tiangong/provider-catalog.d.ts +0 -2
  819. package/dist/extensions/tiangong/provider-catalog.js +0 -2
  820. package/dist/extensions/tiangong/provider-discovery.d.ts +0 -2
  821. package/dist/extensions/tiangong/provider-discovery.js +0 -5
  822. package/dist/extensions/volcengine/api.d.ts +0 -12
  823. package/dist/extensions/volcengine/api.js +0 -4
  824. package/dist/extensions/volcengine/fengming.plugin.json +0 -263
  825. package/dist/extensions/volcengine/index.d.ts +0 -12
  826. package/dist/extensions/volcengine/index.js +0 -88
  827. package/dist/extensions/volcengine/models.d.ts +0 -2
  828. package/dist/extensions/volcengine/models.js +0 -2
  829. package/dist/extensions/volcengine/package.json +0 -15
  830. package/dist/extensions/volcengine/provider-catalog.d.ts +0 -2
  831. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  832. package/dist/extensions/volcengine/provider-discovery.d.ts +0 -5
  833. package/dist/extensions/volcengine/provider-discovery.js +0 -23
  834. package/dist/extensions/volcengine/speech-provider.d.ts +0 -5
  835. package/dist/extensions/volcengine/speech-provider.js +0 -2
  836. package/dist/extensions/volcengine/tts.d.ts +0 -22
  837. package/dist/extensions/volcengine/tts.js +0 -2
  838. package/dist/extensions/weixin/fengming.plugin.json +0 -22
  839. package/dist/extensions/weixin/index.d.ts +0 -26
  840. package/dist/extensions/weixin/index.js +0 -862
  841. package/dist/extensions/weixin/package.json +0 -45
  842. package/dist/extensions/xiaomi/api.d.ts +0 -3
  843. package/dist/extensions/xiaomi/api.js +0 -3
  844. package/dist/extensions/xiaomi/fengming.plugin.json +0 -260
  845. package/dist/extensions/xiaomi/index.d.ts +0 -12
  846. package/dist/extensions/xiaomi/index.js +0 -284
  847. package/dist/extensions/xiaomi/onboard.d.ts +0 -2
  848. package/dist/extensions/xiaomi/onboard.js +0 -2
  849. package/dist/extensions/xiaomi/package.json +0 -15
  850. package/dist/extensions/xiaomi/provider-catalog.d.ts +0 -2
  851. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  852. package/dist/extensions/xiaomi/speech-provider.d.ts +0 -5
  853. package/dist/extensions/xiaomi/speech-provider.js +0 -2
  854. package/dist/extensions/xiaomi/stream.d.ts +0 -5
  855. package/dist/extensions/xiaomi/stream.js +0 -2
  856. package/dist/extensions/xiaomi/thinking.d.ts +0 -11
  857. package/dist/extensions/xiaomi/thinking.js +0 -2
  858. package/dist/extensions/xingchen/fengming.plugin.json +0 -69
  859. package/dist/extensions/xingchen/index.d.ts +0 -11
  860. package/dist/extensions/xingchen/index.js +0 -45
  861. package/dist/extensions/xingchen/models.d.ts +0 -7
  862. package/dist/extensions/xingchen/models.js +0 -2
  863. package/dist/extensions/xingchen/onboard.d.ts +0 -5
  864. package/dist/extensions/xingchen/onboard.js +0 -2
  865. package/dist/extensions/xingchen/package.json +0 -15
  866. package/dist/extensions/xingchen/provider-catalog.d.ts +0 -2
  867. package/dist/extensions/xingchen/provider-catalog.js +0 -2
  868. package/dist/extensions/xingchen/provider-discovery.d.ts +0 -2
  869. package/dist/extensions/xingchen/provider-discovery.js +0 -5
  870. package/dist/extensions/yi/fengming.plugin.json +0 -84
  871. package/dist/extensions/yi/index.d.ts +0 -11
  872. package/dist/extensions/yi/index.js +0 -45
  873. package/dist/extensions/yi/models.d.ts +0 -7
  874. package/dist/extensions/yi/models.js +0 -2
  875. package/dist/extensions/yi/onboard.d.ts +0 -5
  876. package/dist/extensions/yi/onboard.js +0 -2
  877. package/dist/extensions/yi/package.json +0 -15
  878. package/dist/extensions/yi/provider-catalog.d.ts +0 -2
  879. package/dist/extensions/yi/provider-catalog.js +0 -2
  880. package/dist/extensions/yi/provider-discovery.d.ts +0 -2
  881. package/dist/extensions/yi/provider-discovery.js +0 -5
  882. package/dist/extensions/zai/api.d.ts +0 -4
  883. package/dist/extensions/zai/api.js +0 -4
  884. package/dist/extensions/zai/detect.d.ts +0 -2
  885. package/dist/extensions/zai/detect.js +0 -2
  886. package/dist/extensions/zai/fengming.plugin.json +0 -377
  887. package/dist/extensions/zai/index.d.ts +0 -12
  888. package/dist/extensions/zai/index.js +0 -297
  889. package/dist/extensions/zai/media-understanding-provider.d.ts +0 -5
  890. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  891. package/dist/extensions/zai/model-definitions.d.ts +0 -2
  892. package/dist/extensions/zai/model-definitions.js +0 -2
  893. package/dist/extensions/zai/onboard.d.ts +0 -2
  894. package/dist/extensions/zai/onboard.js +0 -2
  895. package/dist/extensions/zai/package.json +0 -15
  896. package/dist/extensions/zai/runtime-api.d.ts +0 -2
  897. package/dist/extensions/zai/runtime-api.js +0 -2
  898. package/dist/extensions/zhinao/fengming.plugin.json +0 -69
  899. package/dist/extensions/zhinao/index.d.ts +0 -11
  900. package/dist/extensions/zhinao/index.js +0 -45
  901. package/dist/extensions/zhinao/models.d.ts +0 -7
  902. package/dist/extensions/zhinao/models.js +0 -2
  903. package/dist/extensions/zhinao/onboard.d.ts +0 -5
  904. package/dist/extensions/zhinao/onboard.js +0 -2
  905. package/dist/extensions/zhinao/package.json +0 -15
  906. package/dist/extensions/zhinao/provider-catalog.d.ts +0 -2
  907. package/dist/extensions/zhinao/provider-catalog.js +0 -2
  908. package/dist/extensions/zhinao/provider-discovery.d.ts +0 -2
  909. package/dist/extensions/zhinao/provider-discovery.js +0 -5
  910. package/dist/fengming-runtime-0jdu_329.d.ts +0 -153
  911. package/dist/fengming-tools-gQkwsWYz.js +0 -12221
  912. package/dist/fengming.plugin-C-Kdi1_5.js +0 -130
  913. package/dist/fengming.plugin-CRPqMj85.js +0 -166
  914. package/dist/gateway-cli-BV1V43-D.js +0 -443
  915. package/dist/gateway-method-runtime-J2OPP_oH.js +0 -21
  916. package/dist/get-reply-BE8ZGJos.js +0 -5198
  917. package/dist/get-reply-from-config.runtime-C5wfxVI_.js +0 -2
  918. package/dist/heartbeat-runner-_0HlObMb.js +0 -5
  919. package/dist/heartbeat-runner.runtime-DvYz_4Z3.js +0 -3
  920. package/dist/hook-runtime-BH9moP5T.js +0 -4
  921. package/dist/hooks-icCwsmrQ.js +0 -536
  922. package/dist/host-compat-dfJvEfe7.d.ts +0 -21
  923. package/dist/http-registry-Buj7R-F_.d.ts +0 -23
  924. package/dist/image-generation-provider-hrRXkkGc.js +0 -152
  925. package/dist/inbound-reply-dispatch-5AYt56Yt.js +0 -147
  926. package/dist/inbound-reply-dispatch-B5weFW8i.js +0 -2
  927. package/dist/inbound-reply-dispatch-cJh4H31y.d.ts +0 -156
  928. package/dist/infra-runtime-3_0R8nmO.js +0 -32
  929. package/dist/init-BnfkYG_k.js +0 -59
  930. package/dist/interactive-V8NfYsTW.d.ts +0 -26
  931. package/dist/isolated-agent-CgH7dfOj.js +0 -1097
  932. package/dist/isolated-agent-dBWkiw0a.js +0 -2
  933. package/dist/kernel-Ds2aqAJF.d.ts +0 -241
  934. package/dist/kimi-web-search-provider-QJT3Ftj3.js +0 -80
  935. package/dist/kimi-web-search-provider.runtime-Dj3SS4T5.js +0 -307
  936. package/dist/kimi-web-search-provider.runtime.js +0 -1
  937. package/dist/lib-Dg4yjNFQ.js +0 -871
  938. package/dist/lifecycle-B9k7QGsS.js +0 -570
  939. package/dist/list.probe-CbVHFNwf.js +0 -2
  940. package/dist/list.probe-CxiEBmyW.js +0 -451
  941. package/dist/list.status-command-DE-edGgB.js +0 -815
  942. package/dist/llm-slug-generator-DJgq9eFd.js +0 -78
  943. package/dist/loader-5AqYM9PC.d.ts +0 -142
  944. package/dist/local-dispatch.runtime-D3F4v51B.js +0 -10
  945. package/dist/manager-BWf1ks-Z.d.ts +0 -409
  946. package/dist/mcp-http-DU7Nsg4P.js +0 -583
  947. package/dist/mcp-http-iZCW6Cet.js +0 -2
  948. package/dist/media-runtime-DZ5RpQN7.d.ts +0 -261
  949. package/dist/media-understanding-DEdEyoQB.d.ts +0 -46
  950. package/dist/media-understanding-provider-4JHrQOUE.js +0 -70
  951. package/dist/media-understanding-provider-BV7O82XV.js +0 -29
  952. package/dist/media-understanding-provider-BlPRhYkx.js +0 -69
  953. package/dist/media-understanding-provider-BuX8eQLj.js +0 -13
  954. package/dist/memory-core-host-engine-embeddings-BDu5fx8E.d.ts +0 -324
  955. package/dist/memory-core-host-engine-storage-CdCuH-E2.d.ts +0 -54
  956. package/dist/message-handler-L6QLWNVP.js +0 -1806
  957. package/dist/minimax-web-search-provider-_gxeEOy8.js +0 -58
  958. package/dist/minimax-web-search-provider.runtime-BF4mGi6U.js +0 -148
  959. package/dist/minimax-web-search-provider.runtime.js +0 -1
  960. package/dist/model-catalog-DCnRkX8f.d.ts +0 -88
  961. package/dist/model-definitions-B2gY43hI.d.ts +0 -34
  962. package/dist/model-definitions-BLOyeH5h.js +0 -73
  963. package/dist/model-definitions-CoByf5mT.js +0 -243
  964. package/dist/model-definitions-WP3OmzbS.d.ts +0 -57
  965. package/dist/model-selection-DhTE6GZD.js +0 -352
  966. package/dist/models--iAR9QkZ.js +0 -175
  967. package/dist/models-8ImVEkvh.js +0 -36
  968. package/dist/models-BIDM8htk.js +0 -48
  969. package/dist/models-BRgRfrcS.js +0 -36
  970. package/dist/models-Bib5-APc.js +0 -67
  971. package/dist/models-Bl67zOoe.js +0 -36
  972. package/dist/models-BqDDYFE3.d.ts +0 -65
  973. package/dist/models-BtRQoRIu.js +0 -36
  974. package/dist/models-BvXmOXik.js +0 -48
  975. package/dist/models-C-sJciOD.d.ts +0 -9
  976. package/dist/models-COnXPdlL.js +0 -24
  977. package/dist/models-CXTmk-Da.d.ts +0 -8
  978. package/dist/models-Cz0C_8re.js +0 -36
  979. package/dist/models-DbwEIt-m.d.ts +0 -15
  980. package/dist/models-DgXkSADi.js +0 -30
  981. package/dist/models-cli-Bv3y3JgQ.js +0 -257
  982. package/dist/monitor-BiVOsbbN.js +0 -1024
  983. package/dist/monitor-BumfRp1t.js +0 -60
  984. package/dist/monitor.account-Cd6EwtuZ.js +0 -5382
  985. package/dist/music-generation-provider-ZdDMiC-c.js +0 -308
  986. package/dist/nodes-C0f8XgD5.js +0 -1483
  987. package/dist/nodes-Dk4vOgg9.js +0 -3
  988. package/dist/nodes-pending-Cjg09MXz.js +0 -211
  989. package/dist/oauth-BIO69Qw0.d.ts +0 -25
  990. package/dist/oauth-CnO10TN2.js +0 -207
  991. package/dist/onboard-B3BYT5k7.js +0 -34
  992. package/dist/onboard-BDMNV6RE.js +0 -23
  993. package/dist/onboard-B_WNNy5F.d.ts +0 -6
  994. package/dist/onboard-BbyMaErU.js +0 -69
  995. package/dist/onboard-BuYPNE6j2.js +0 -23
  996. package/dist/onboard-C394zMnM.d.ts +0 -11
  997. package/dist/onboard-CHn4oVbY.js +0 -24
  998. package/dist/onboard-CPpVbb0O.js +0 -73
  999. package/dist/onboard-CWDx7Crt.js +0 -23
  1000. package/dist/onboard-CbzkwBzu.d.ts +0 -12
  1001. package/dist/onboard-D099qUd0.js +0 -23
  1002. package/dist/onboard-D7dbzfHc.js +0 -23
  1003. package/dist/onboard-DB-x0nHF.js +0 -30
  1004. package/dist/onboard-DFVrRnxJ.js +0 -23
  1005. package/dist/onboard-DFiqoOc2.d.ts +0 -7
  1006. package/dist/onboard-DJaMK3rr.d.ts +0 -6
  1007. package/dist/onboard-DMdK8D_h.js +0 -67
  1008. package/dist/onboard-J-KL-I6m.js +0 -48
  1009. package/dist/onboard-MIBU-Rmv.js +0 -39
  1010. package/dist/onboard-vmGylfFe.js +0 -23
  1011. package/dist/openai-compat-errors-Dcr5Y8bF.js +0 -136
  1012. package/dist/openai-http-CcqspzU6.js +0 -836
  1013. package/dist/openresponses-http-BnyYYvUF.js +0 -1175
  1014. package/dist/operations-H2Oq0KYz.js +0 -805
  1015. package/dist/outbound.types-BhRehecY.d.ts +0 -291
  1016. package/dist/plugin-enabled-CEIKWKrq.js +0 -232
  1017. package/dist/plugin-entry-CTVRRaaA.d.ts +0 -47
  1018. package/dist/plugin-registration-BTyO5Fwt.js +0 -97
  1019. package/dist/plugin-runtime-_XF2N_UQ.d.ts +0 -117
  1020. package/dist/plugin-sdk/bundled-channel-config-schema-BsOWCrJT.d.ts +0 -3169
  1021. package/dist/plugin-service-B91jVlmZ.d.ts +0 -24
  1022. package/dist/plugin-service-CtGwVz8V.js +0 -1249
  1023. package/dist/prepare.runtime-9dlboph7.js +0 -798
  1024. package/dist/preview-warnings-DJx4KJpC.js +0 -618
  1025. package/dist/program-CWC-NBBB.js +0 -131
  1026. package/dist/provider-api-key-auth-BmNcYRMl.d.ts +0 -27
  1027. package/dist/provider-auth-api-key-CCaFiqY3.js +0 -5
  1028. package/dist/provider-auth-result-D_E9dcVc.d.ts +0 -21
  1029. package/dist/provider-catalog-5KZLmrDO.js +0 -11
  1030. package/dist/provider-catalog-7P6AvDzS.js +0 -11
  1031. package/dist/provider-catalog-B2gyTjTU.js +0 -88
  1032. package/dist/provider-catalog-B3YBhe77.js +0 -17
  1033. package/dist/provider-catalog-B7XEeuUm.js +0 -11
  1034. package/dist/provider-catalog-BFGPRd9v.js +0 -17
  1035. package/dist/provider-catalog-BLvkIMSk.d.ts +0 -6
  1036. package/dist/provider-catalog-BPBL9mJf.d.ts +0 -5
  1037. package/dist/provider-catalog-BRkZ6-HD.d.ts +0 -5
  1038. package/dist/provider-catalog-Bfl_AoTZ.js +0 -142
  1039. package/dist/provider-catalog-BpiHWHu1.js +0 -11
  1040. package/dist/provider-catalog-C1qDLekT.d.ts +0 -5
  1041. package/dist/provider-catalog-CKWNCfry.js +0 -11
  1042. package/dist/provider-catalog-CUHB2pSt.d.ts +0 -7
  1043. package/dist/provider-catalog-CWqN2j6J.d.ts +0 -5
  1044. package/dist/provider-catalog-CZ8oYbx3.js +0 -11
  1045. package/dist/provider-catalog-CcQ5-4ZW.d.ts +0 -6
  1046. package/dist/provider-catalog-Cd16uZ0U.js +0 -20
  1047. package/dist/provider-catalog-CpF2D0VK.js +0 -61
  1048. package/dist/provider-catalog-CvXq36zW.d.ts +0 -5
  1049. package/dist/provider-catalog-D2pgEME3.js +0 -48
  1050. package/dist/provider-catalog-DPzcupEl.d.ts +0 -5
  1051. package/dist/provider-catalog-DaeI606G.d.ts +0 -9
  1052. package/dist/provider-catalog-DrOCtTb-.js +0 -11
  1053. package/dist/provider-catalog-DwZ1J2Al.d.ts +0 -6
  1054. package/dist/provider-catalog-Dy7IcHmS.js +0 -107
  1055. package/dist/provider-catalog-TsZS52nq.d.ts +0 -10
  1056. package/dist/provider-catalog-YqIFRCND.d.ts +0 -5
  1057. package/dist/provider-catalog-Ywb5jRwG.d.ts +0 -5
  1058. package/dist/provider-catalog-evknl1oN.js +0 -11
  1059. package/dist/provider-catalog-l0hFpFO2.d.ts +0 -17
  1060. package/dist/provider-catalog-shared-DsRBv0Tp.d.ts +0 -62
  1061. package/dist/provider-dispatcher-BMy9mBJ1.js +0 -22
  1062. package/dist/provider-model-shared-CPAfQBNs.d.ts +0 -143
  1063. package/dist/provider-models-Diu65OcG.d.ts +0 -18
  1064. package/dist/provider-models-LE7PlLYY.js +0 -22
  1065. package/dist/provider-onboard-CpvXEmvz.d.ts +0 -91
  1066. package/dist/provider-registration-DF-LkmNE.js +0 -235
  1067. package/dist/provider-registry-D9cTPW1F.d.ts +0 -8
  1068. package/dist/provider-registry-DI7gMKUP.d.ts +0 -8
  1069. package/dist/provider-registry-DZtgZDkl.d.ts +0 -29
  1070. package/dist/provider-self-hosted-setup-CoHvoyKm.d.ts +0 -74
  1071. package/dist/provider-stream-BpXJr5Ap.d.ts +0 -139
  1072. package/dist/provider-stream-family-Bj5aBD8w.js +0 -2
  1073. package/dist/provider-stream-shared-BaUkhUHj.d.ts +0 -132
  1074. package/dist/provider-usage-DFUhW2do.js +0 -651
  1075. package/dist/provider-web-search-contract-fields-CkXzSsWu.d.ts +0 -25
  1076. package/dist/pw-ai-9Q_dIq4B.js +0 -3064
  1077. package/dist/register.agent-CbfrlzXB.js +0 -152
  1078. package/dist/register.crestodian-CEg0rPfK.js +0 -24
  1079. package/dist/register.maintenance-k9N8I4Wg.js +0 -85
  1080. package/dist/register.subclis-CrXOeaS3.js +0 -3
  1081. package/dist/register.subclis-DfKlni8N.js +0 -31
  1082. package/dist/register.subclis-core-Bg4wbDsO.js +0 -278
  1083. package/dist/registry-Bh3-P2HL.d.ts +0 -8
  1084. package/dist/registry-types-BmEUS4d3.d.ts +0 -392
  1085. package/dist/repair-sequencing-E4yViXG9.js +0 -652
  1086. package/dist/reply-payload-S2mrc_Mh.d.ts +0 -200
  1087. package/dist/reply-turn-admission-BBoPjmGB.js +0 -2056
  1088. package/dist/reply.runtime-C5wfxVI_.js +0 -2
  1089. package/dist/result-fallback-classifier-CX4iLD1G.js +0 -98
  1090. package/dist/route-CifxcQZ1.js +0 -475
  1091. package/dist/routes-B3XAOeWo.js +0 -2
  1092. package/dist/routes-H185h3U-.js +0 -3701
  1093. package/dist/run-CTJFbwbB.js +0 -1162
  1094. package/dist/run-command-B7B53tYk.js +0 -23
  1095. package/dist/run-command-BFuxRDxS.js +0 -2
  1096. package/dist/run-context-C7im9ICg.js +0 -66
  1097. package/dist/run-embedded.runtime-TljBTbzh.js +0 -4
  1098. package/dist/run-execution-cli.runtime-Bt5zwx1W.js +0 -4
  1099. package/dist/run-executor.runtime-hmbWX2Ct.js +0 -330
  1100. package/dist/run-subagent-registry.runtime-B70X80nS.js +0 -2
  1101. package/dist/runtime-DoKE0o7v.js +0 -436
  1102. package/dist/runtime-api-Ca4Llbgf.js +0 -12
  1103. package/dist/runtime-api-pa8xcEmg.d.ts +0 -5
  1104. package/dist/runtime-channel-CFQ59svm.js +0 -148
  1105. package/dist/runtime-channel-DRwCWGUx.js +0 -2
  1106. package/dist/runtime-embedded-agent.runtime-DwmqKUVp.js +0 -2
  1107. package/dist/runtime-forwarders-BMThPHg_.d.ts +0 -39
  1108. package/dist/sdk-setup-tools-Cg_Tabrf.js +0 -8
  1109. package/dist/selection-COhr7g82.js +0 -18365
  1110. package/dist/selection-_G44EVqd.js +0 -3
  1111. package/dist/send-media-BNc67G7I.js +0 -2072
  1112. package/dist/server-5rR0RCpI.js +0 -24
  1113. package/dist/server-context-BhiPROPA.js +0 -955
  1114. package/dist/server-context-OShBAJZQ.js +0 -2
  1115. package/dist/server-cron-Bkzb9edh.js +0 -3173
  1116. package/dist/server-cron-DdR-ugiU.js +0 -2
  1117. package/dist/server-lwtC1vaS.js +0 -72
  1118. package/dist/server-methods-BY_ZqDFJ.js +0 -497
  1119. package/dist/server-node-events-CLvE94AS.js +0 -597
  1120. package/dist/server-plugin-bootstrap-cKOAH5GL.js +0 -71
  1121. package/dist/server-plugins-CPpUykw5.js +0 -435
  1122. package/dist/server-reload-handlers-uzt4VDZ-.js +0 -719
  1123. package/dist/server-restart-sentinel-CpvV0t4O.js +0 -700
  1124. package/dist/server-runtime-services-BhOHoerM.js +0 -147
  1125. package/dist/server-runtime-services-D3Ig68nC.js +0 -3
  1126. package/dist/server-startup-plugins-DslzKVHK.js +0 -127
  1127. package/dist/server-startup-post-attach-DPFBTQez.js +0 -793
  1128. package/dist/server-ws-runtime-D0zoWoiz.js +0 -374
  1129. package/dist/server.impl-CzqLQ3qt.js +0 -2622
  1130. package/dist/session-kill-http-D8JhwZVS.js +0 -121
  1131. package/dist/session-reset-service-uoi7E4Xp.js +0 -651
  1132. package/dist/session-status.runtime-CZK5IU8w.js +0 -2
  1133. package/dist/session-subagent-reactivation.runtime-BSO00-FY.js +0 -2
  1134. package/dist/session-tab-registry-DM9U7e3o.js +0 -551
  1135. package/dist/sessions-B-SkIoaa.js +0 -1917
  1136. package/dist/sessions-history-http-DCiOG4FK.js +0 -432
  1137. package/dist/sessions-patch-DlAAvQvB.js +0 -401
  1138. package/dist/sessions-resolve-DfMXookg.js +0 -180
  1139. package/dist/sessions.runtime-0V2YxKxB.js +0 -2
  1140. package/dist/snapshot-urls-Ble1-NEW.js +0 -317
  1141. package/dist/speech-core-Bk60ZS_y.d.ts +0 -49
  1142. package/dist/speech-provider-DQO9eZd0.js +0 -233
  1143. package/dist/speech-provider-DnBCla4V.js +0 -171
  1144. package/dist/speech-provider-DyYHFxT5.js +0 -227
  1145. package/dist/standalone-9EWfcxeO.js +0 -42
  1146. package/dist/startup-context-nti4X0_w.js +0 -314
  1147. package/dist/status-subagents.runtime-CPZb1EF1.js +0 -32
  1148. package/dist/status-text-C1Hf37lF.js +0 -301
  1149. package/dist/stream-9VBt1MDs.js +0 -26
  1150. package/dist/stream-B_3P7v7P.js +0 -86
  1151. package/dist/stream-CXsue2-v.d.ts +0 -9
  1152. package/dist/stream-oNBFxfKt.d.ts +0 -5
  1153. package/dist/subagent-announce-CPjQQLy8.js +0 -353
  1154. package/dist/subagent-announce-delivery-B6iBOicL.js +0 -1369
  1155. package/dist/subagent-control-DP72sk-l.js +0 -492
  1156. package/dist/subagent-hooks-B1oUIYH3.js +0 -2
  1157. package/dist/subagent-hooks-BkGj4_xI.js +0 -230
  1158. package/dist/subagent-hooks-api-D2mulK3S.js +0 -23
  1159. package/dist/subagent-registry-CEKAUB5h.js +0 -3
  1160. package/dist/subagent-registry-OUVucPAn.js +0 -2627
  1161. package/dist/subagent-session-cleanup-Bx8d3kw0.js +0 -390
  1162. package/dist/system-CelaP2zI.js +0 -111
  1163. package/dist/talk-DGOI3Lu3.js +0 -2454
  1164. package/dist/target-id-BXRG7x9x.js +0 -107
  1165. package/dist/thinking-B8V29FhB.js +0 -35
  1166. package/dist/thread-bindings-DpVdEPZ0.js +0 -228
  1167. package/dist/tool-DHzDpxE4.js +0 -143
  1168. package/dist/tool-dispatch-ClP3Rc7g.js +0 -155
  1169. package/dist/tool-resolution-CZcLod1d.js +0 -153
  1170. package/dist/tool-split-BhiQ8676.d.ts +0 -19
  1171. package/dist/tools-ZvSvbsCW.d.ts +0 -38
  1172. package/dist/tools-effective-C2mHZT-A.js +0 -442
  1173. package/dist/tools-effective-inventory-ctnM7hc6.js +0 -379
  1174. package/dist/tools-invoke-Ci6Rux2s.js +0 -51
  1175. package/dist/tools-invoke-http-CJflXcJk.js +0 -68
  1176. package/dist/tools-invoke-shared-BLu_mJEX.js +0 -200
  1177. package/dist/tts-B2rPJPij.js +0 -83
  1178. package/dist/tts-Gp9FI3_n.js +0 -163
  1179. package/dist/tts-runtime-DNi1HXPF.d.ts +0 -230
  1180. package/dist/tui-BUhfQ9vD.js +0 -3
  1181. package/dist/tui-BhH5mvLf.js +0 -2
  1182. package/dist/tui-backend-C_4ajTHI.js +0 -257
  1183. package/dist/tui-cli-BhWJ-QoB.js +0 -40
  1184. package/dist/tui-ink-run-BTWbUQGb.js +0 -7414
  1185. package/dist/tui-ink-run-DfTdivkh.js +0 -2
  1186. package/dist/types-B4fW3r5y.d.ts +0 -111
  1187. package/dist/types-DI62NfFe.d.ts +0 -7034
  1188. package/dist/types-sAih_uQb.d.ts +0 -393
  1189. package/dist/types.public-B3MKhuo2.d.ts +0 -70
  1190. package/dist/video-generation-B9c6a5cw.js +0 -207
  1191. package/dist/video-generation-BgJp7UIA.d.ts +0 -224
  1192. package/dist/video-generation-provider-BjiVjf40.js +0 -325
  1193. package/dist/video-generation-provider-CsnQJg_h.js +0 -297
  1194. package/dist/video-generation-provider-DtU-ZPqP.js +0 -64
  1195. package/dist/video-generation-provider-wZ0bzv0e.js +0 -77
  1196. package/dist/webhook-targets-Cy8e7y3g.d.ts +0 -99
  1197. package/skills/canvas/SKILL.md +0 -78
  1198. package/skills/clawhub/SKILL.md +0 -77
  1199. package/skills/coding-agent/SKILL.md +0 -143
  1200. package/skills/diagram-maker/SKILL.md +0 -53
  1201. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -85
  1202. package/skills/diagram-maker/references/svg-template.md +0 -112
  1203. package/skills/gemini/SKILL.md +0 -47
  1204. package/skills/gh-issues/SKILL.md +0 -213
  1205. package/skills/gifgrep/SKILL.md +0 -85
  1206. package/skills/github/SKILL.md +0 -84
  1207. package/skills/healthcheck/SKILL.md +0 -105
  1208. package/skills/mcporter/SKILL.md +0 -61
  1209. package/skills/meme-maker/SKILL.md +0 -42
  1210. package/skills/meme-maker/references/templates.json +0 -358
  1211. package/skills/meme-maker/scripts/meme.mjs +0 -398
  1212. package/skills/model-usage/SKILL.md +0 -71
  1213. package/skills/model-usage/references/codexbar-cli.md +0 -33
  1214. package/skills/model-usage/scripts/model_usage.py +0 -319
  1215. package/skills/model-usage/scripts/test_model_usage.py +0 -40
  1216. package/skills/nano-pdf/SKILL.md +0 -38
  1217. package/skills/node-connect/SKILL.md +0 -143
  1218. package/skills/node-inspect-debugger/SKILL.md +0 -85
  1219. package/skills/openai-whisper/SKILL.md +0 -38
  1220. package/skills/openai-whisper-api/SKILL.md +0 -71
  1221. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -154
  1222. package/skills/oracle/SKILL.md +0 -126
  1223. package/skills/pyproject.toml +0 -10
  1224. package/skills/python-debugpy/SKILL.md +0 -73
  1225. package/skills/sag/SKILL.md +0 -87
  1226. package/skills/session-logs/SKILL.md +0 -151
  1227. package/skills/sherpa-onnx-tts/SKILL.md +0 -109
  1228. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1229. package/skills/skill-creator/SKILL.md +0 -78
  1230. package/skills/skill-creator/license.txt +0 -202
  1231. package/skills/skill-creator/scripts/init_skill.py +0 -378
  1232. package/skills/skill-creator/scripts/package_skill.py +0 -139
  1233. package/skills/skill-creator/scripts/quick_validate.py +0 -169
  1234. package/skills/skill-creator/scripts/test_package_skill.py +0 -161
  1235. package/skills/skill-creator/scripts/test_quick_validate.py +0 -116
  1236. package/skills/spike/SKILL.md +0 -51
  1237. package/skills/summarize/SKILL.md +0 -87
  1238. package/skills/taskflow/SKILL.md +0 -149
  1239. package/skills/taskflow/examples/inbox-triage.lobster +0 -33
  1240. package/skills/taskflow/examples/pr-intake.lobster +0 -32
  1241. package/skills/taskflow-inbox-triage/SKILL.md +0 -119
  1242. package/skills/video-frames/SKILL.md +0 -46
  1243. package/skills/video-frames/scripts/frame.sh +0 -81
  1244. package/skills/voice-call/SKILL.md +0 -45
  1245. package/skills/weather/SKILL.md +0 -64
  1246. /package/dist/{acp-runtime-backend-DbchQ02o.js → acp-runtime-backend-DZ1Lnt7f.js} +0 -0
  1247. /package/dist/{delegate-k1aptKei.js → delegate-CwhxUdeb.js} +0 -0
  1248. /package/dist/{dispatch-acp-CD4YxPpf.js → dispatch-acp-BP4I5ZQf.js} +0 -0
  1249. /package/dist/{exec-approvals-ByWUCFQM.js → exec-approvals-ByWUCFQM2.js} +0 -0
  1250. /package/dist/{heartbeat-runner-CM0UZxa_.js → heartbeat-runner-CL3alQ8-.js} +0 -0
  1251. /package/dist/{index-B0VJdRJQ.d.ts → index-B0VJdRJQ2.d.ts} +0 -0
  1252. /package/dist/{library-CQ71yATP.js → library-CiTr_aqC.js} +0 -0
  1253. /package/dist/{run-session-state-DbDeH-q6.js → run-session-state-BOMUtBKZ.js} +0 -0
  1254. /package/dist/{session-subagent-reactivation-Bj91A2ms.js → session-subagent-reactivation-CH0C2I6Y.js} +0 -0
  1255. /package/dist/{types-C4HgagiY2.d.ts → types-C4HgagiY.d.ts} +0 -0
@@ -0,0 +1,1162 @@
1
+ import { c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-DKw2K5wM.js";
2
+ import { t as isTruthyEnvValue } from "./env-CuDPoYuT.js";
3
+ import { a as normalizeStateDirEnv, d as resolveGatewayPort, t as CONFIG_PATH, y as resolveStateDir } from "./paths-9MqJt9oL.js";
4
+ import { i as formatErrorMessage } from "./errors-C_Wa6a5T.js";
5
+ import { t as formatCliCommand } from "./command-format-Jv8eeOPe.js";
6
+ import { t as createLazyImportLoader } from "./lazy-promise-Djskx0qC.js";
7
+ import { n as inheritOptionFromParent } from "./command-options-Dhjl7AMa.js";
8
+ import { _ as uniqueStrings } from "./string-normalization-B8G0vlWE.js";
9
+ import { s as hasConfiguredSecretInput } from "./types.secrets-Z7uJY7vF.js";
10
+ import { i as GATEWAY_SERVICE_RUNTIME_PID_ENV } from "./constants-yZ8YE2c7.js";
11
+ import { n as defaultRuntime } from "./runtime-BkTkFkXs.js";
12
+ import { r as setVerbose } from "./global-state-BAD7XgmL.js";
13
+ import { c as setConsoleTimestampPrefix, s as setConsoleSubsystemFilter } from "./console-B8_FW6uR.js";
14
+ import { t as createSubsystemLogger } from "./subsystem-B7U-DPv3.js";
15
+ import "./globals-BMM_rcFF.js";
16
+ import { t as isContainerEnvironment } from "./container-environment-CNsJSTpY.js";
17
+ import { i as isLoopbackHost, p as resolveGatewayBindHost, t as defaultGatewayBindMode } from "./net-DAt4-3lj.js";
18
+ import { t as clearRuntimeConfigSnapshot } from "./runtime-snapshot-D93_HOsR.js";
19
+ import { n as formatInvalidConfigPort, r as formatInvalidPortOption } from "./error-format-CrGPEfaz.js";
20
+ import { t as parsePort } from "./parse-port-CNAxga8y.js";
21
+ import { i as withDiagnosticPhase } from "./diagnostic-phase-ewqU1V1-.js";
22
+ import { a as markGatewayRestartTrace, f as startGatewayRestartTrace, o as measureGatewayRestartTrace, r as createGatewayRestartTraceHandoffEnv, t as captureGatewayRestartTraceHandoff } from "./restart-trace-DqNfUyLD.js";
23
+ import { r as withProgress } from "./progress-G9DILAx2.js";
24
+ import { n as setGatewayWsLogStyle } from "./ws-logging-zK0zdycs.js";
25
+ import { n as acquireGatewayLock, t as GatewayLockError } from "./gateway-lock-DwP3jzVd.js";
26
+ import fs from "node:fs";
27
+ import path from "node:path";
28
+ import fs$1 from "node:fs/promises";
29
+ import net from "node:net";
30
+ import { randomUUID } from "node:crypto";
31
+ import { request } from "node:http";
32
+ //#region src/cli/gateway-cli/qa-parent-watchdog.ts
33
+ const QA_PARENT_PID_ENV = "FENGMING_QA_PARENT_PID";
34
+ const QA_TEMP_ROOT_ENV = "FENGMING_QA_TEMP_ROOT";
35
+ const QA_STAGED_RUNTIME_ROOT_ENV = "FENGMING_QA_STAGED_RUNTIME_ROOT";
36
+ const DEFAULT_QA_PARENT_WATCHDOG_INTERVAL_MS = 1e3;
37
+ const QA_TEMP_ROOT_PREFIX = "fengming-qa-suite-";
38
+ function resolveQaParentPid(env, ownPid) {
39
+ const raw = env[QA_PARENT_PID_ENV]?.trim();
40
+ if (!raw) return null;
41
+ const parentPid = /^\d+$/.test(raw) ? Number(raw) : NaN;
42
+ if (!Number.isSafeInteger(parentPid) || parentPid <= 0 || parentPid === ownPid) return null;
43
+ return parentPid;
44
+ }
45
+ function resolveQaCleanupRoot(rawValue) {
46
+ const raw = rawValue?.trim();
47
+ if (!raw) return null;
48
+ const cleanupRoot = path.resolve(raw);
49
+ if (!path.basename(cleanupRoot).startsWith(QA_TEMP_ROOT_PREFIX)) return null;
50
+ return cleanupRoot;
51
+ }
52
+ function resolveQaCleanupRoots(env) {
53
+ return uniqueStrings([resolveQaCleanupRoot(env[QA_TEMP_ROOT_ENV]), resolveQaCleanupRoot(env[QA_STAGED_RUNTIME_ROOT_ENV])].filter((target) => target !== null));
54
+ }
55
+ function pathContains(root, candidate) {
56
+ const relative = path.relative(root, candidate);
57
+ return relative === "" || relative.length > 0 && !relative.startsWith("..") && !path.isAbsolute(relative);
58
+ }
59
+ function installQaParentWatchdog(deps = {}) {
60
+ const env = deps.env ?? process.env;
61
+ const parentPid = resolveQaParentPid(env, deps.ownPid ?? process.pid);
62
+ if (parentPid === null) return null;
63
+ const clearIntervalFn = deps.clearInterval ?? ((activeTimer) => {
64
+ clearInterval(activeTimer);
65
+ });
66
+ const exit = deps.exit ?? ((code) => process.exit(code));
67
+ const kill = deps.kill ?? ((pid, signal) => process.kill(pid, signal));
68
+ const logger = deps.logger ?? createSubsystemLogger("gateway");
69
+ const qaCleanupRoots = resolveQaCleanupRoots(env);
70
+ const chdir = deps.chdir ?? ((directory) => process.chdir(directory));
71
+ const cwd = deps.cwd ?? (() => process.cwd());
72
+ const rm = deps.rm ?? (async (target) => {
73
+ await fs$1.rm(target, {
74
+ recursive: true,
75
+ force: true
76
+ });
77
+ });
78
+ const setIntervalFn = deps.setInterval ?? ((callback, ms) => setInterval(callback, ms));
79
+ let stopped = false;
80
+ let exiting = false;
81
+ let timer;
82
+ const stop = () => {
83
+ if (stopped) return;
84
+ stopped = true;
85
+ clearIntervalFn(timer);
86
+ };
87
+ timer = setIntervalFn(() => {
88
+ if (stopped || exiting) return;
89
+ try {
90
+ kill(parentPid, 0);
91
+ } catch (error) {
92
+ if (error.code === "ESRCH") {
93
+ logger.warn(`QA gateway parent pid ${parentPid} exited; shutting down orphaned QA gateway`);
94
+ exiting = true;
95
+ stop();
96
+ (async () => {
97
+ const currentCwd = path.resolve(cwd());
98
+ const activeCwdRoot = qaCleanupRoots.find((cleanupRoot) => pathContains(cleanupRoot, currentCwd));
99
+ if (activeCwdRoot) {
100
+ const safeCwd = path.dirname(activeCwdRoot);
101
+ try {
102
+ chdir(safeCwd);
103
+ } catch (chdirError) {
104
+ logger.warn(`QA gateway parent pid ${parentPid} exited; failed to leave runtime root ${activeCwdRoot}: ${chdirError instanceof Error ? chdirError.message : String(chdirError)}`);
105
+ }
106
+ }
107
+ for (const cleanupRoot of qaCleanupRoots) await rm(cleanupRoot).catch((cleanupError) => {
108
+ logger.warn(`QA gateway parent pid ${parentPid} exited; failed to clean runtime root ${cleanupRoot}: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}`);
109
+ });
110
+ exit(0);
111
+ })();
112
+ }
113
+ }
114
+ }, deps.intervalMs ?? DEFAULT_QA_PARENT_WATCHDOG_INTERVAL_MS);
115
+ if (typeof timer === "object") timer.unref?.();
116
+ return {
117
+ parentPid,
118
+ stop
119
+ };
120
+ }
121
+ //#endregion
122
+ //#region src/cli/gateway-cli/run-loop.ts
123
+ const gatewayLog$1 = createSubsystemLogger("gateway");
124
+ const LAUNCHD_SUPERVISED_RESTART_EXIT_DELAY_MS = 1500;
125
+ const DEFAULT_RESTART_DRAIN_TIMEOUT_MS = 3e5;
126
+ const RESTART_DRAIN_STILL_PENDING_WARN_MS = 3e4;
127
+ const RESTART_CLOSE_REPLY_DRAIN_SHUTDOWN_RESERVE_MS = 1e4;
128
+ const UPDATE_RESPAWN_HEALTH_TIMEOUT_MS = 1e4;
129
+ const UPDATE_RESPAWN_HEALTH_POLL_MS = 200;
130
+ const gatewayLifecycleRuntimeLoader = createLazyImportLoader(() => import("./cli/gateway-lifecycle.runtime.js"));
131
+ const loadGatewayLifecycleRuntimeModule = () => gatewayLifecycleRuntimeLoader.load();
132
+ function createRestartIterationHook(onRestart) {
133
+ let isFirstIteration = true;
134
+ return async () => {
135
+ if (isFirstIteration) {
136
+ isFirstIteration = false;
137
+ return false;
138
+ }
139
+ await onRestart();
140
+ return true;
141
+ };
142
+ }
143
+ async function waitForGatewayPortReady(host, port) {
144
+ return await new Promise((resolve) => {
145
+ const socket = net.createConnection({
146
+ host,
147
+ port
148
+ });
149
+ let settled = false;
150
+ const finish = (value) => {
151
+ if (settled) return;
152
+ settled = true;
153
+ clearTimeout(timer);
154
+ socket.removeAllListeners();
155
+ socket.destroy();
156
+ resolve(value);
157
+ };
158
+ const timer = setTimeout(() => {
159
+ finish(false);
160
+ }, UPDATE_RESPAWN_HEALTH_POLL_MS);
161
+ socket.once("connect", () => finish(true));
162
+ socket.once("error", () => finish(false));
163
+ });
164
+ }
165
+ async function waitForHealthyGatewayChild(port, _pid, host = "127.0.0.1", timeoutMs = UPDATE_RESPAWN_HEALTH_TIMEOUT_MS) {
166
+ const deadline = Date.now() + timeoutMs;
167
+ while (Date.now() < deadline) {
168
+ if (await waitForGatewayPortReady(host, port)) return true;
169
+ await new Promise((resolve) => {
170
+ setTimeout(resolve, UPDATE_RESPAWN_HEALTH_POLL_MS);
171
+ });
172
+ }
173
+ return false;
174
+ }
175
+ async function runGatewayLoop(params) {
176
+ let startupStartedAt = Date.now();
177
+ const eagerLifecycleRuntime = await loadGatewayLifecycleRuntimeModule();
178
+ let lock = await acquireGatewayLock({ port: params.lockPort });
179
+ let server = null;
180
+ let shuttingDown = false;
181
+ let restartResolver = null;
182
+ let pendingStartupRequest = null;
183
+ let pendingStartupForceExitTimer = null;
184
+ let restartDrainingMarkPromise = null;
185
+ let startupFailedWithoutServerHandle = false;
186
+ const processInstanceId = randomUUID();
187
+ const waitForHealthyChild = params.waitForHealthyChild ?? waitForHealthyGatewayChild;
188
+ const cleanupSignals = () => {
189
+ process.removeListener("SIGTERM", onSigterm);
190
+ process.removeListener("SIGINT", onSigint);
191
+ process.removeListener("SIGUSR1", onSigusr1);
192
+ };
193
+ const exitProcess = (code) => {
194
+ cleanupSignals();
195
+ params.runtime.exit(code);
196
+ };
197
+ const writeStabilityBundle = async (reason, error) => {
198
+ const { writeDiagnosticStabilityBundleForFailureSync } = await loadGatewayLifecycleRuntimeModule();
199
+ const result = writeDiagnosticStabilityBundleForFailureSync(reason, error);
200
+ if ("message" in result) gatewayLog$1.warn(result.message);
201
+ };
202
+ const releaseLockIfHeld = async () => {
203
+ if (!lock) return false;
204
+ await lock.release();
205
+ lock = null;
206
+ return true;
207
+ };
208
+ const reacquireLockForInProcessRestart = async () => {
209
+ try {
210
+ startupStartedAt = Date.now();
211
+ lock = await acquireGatewayLock({ port: params.lockPort });
212
+ return true;
213
+ } catch (err) {
214
+ gatewayLog$1.error(`failed to reacquire gateway lock for in-process restart: ${String(err)}`);
215
+ exitProcess(1);
216
+ return false;
217
+ }
218
+ };
219
+ const handleRestartAfterServerClose = async (restartReason) => {
220
+ const hadLock = await releaseLockIfHeld();
221
+ const isUpdateRestart = restartReason === "update.run";
222
+ const { detectRespawnSupervisor, markUpdateRestartSentinelFailure, respawnGatewayProcessForUpdate, restartGatewayProcessWithFreshPid, writeGatewayRestartHandoffSync } = await loadGatewayLifecycleRuntimeModule();
223
+ if (isUpdateRestart) {
224
+ const respawn = respawnGatewayProcessForUpdate({ env: createGatewayRestartTraceHandoffEnv(captureGatewayRestartTraceHandoff()) });
225
+ if (respawn.mode === "spawned") {
226
+ const port = params.lockPort;
227
+ if (typeof port === "number" ? await waitForHealthyChild(port, respawn.pid, params.healthHost ?? "127.0.0.1") : false) {
228
+ gatewayLog$1.info(`restart mode: update process respawn (spawned pid ${respawn.pid ?? "unknown"})`);
229
+ exitProcess(0);
230
+ return;
231
+ }
232
+ gatewayLog$1.warn(`update respawn child did not become healthy (${respawn.pid ?? "unknown"}); falling back to in-process restart`);
233
+ try {
234
+ respawn.child?.kill();
235
+ } catch {}
236
+ await markUpdateRestartSentinelFailure("restart-unhealthy").catch((err) => {
237
+ gatewayLog$1.warn(`failed to mark update restart sentinel unhealthy: ${String(err)}`);
238
+ });
239
+ if (hadLock && !await reacquireLockForInProcessRestart()) return;
240
+ shuttingDown = false;
241
+ restartResolver?.();
242
+ return;
243
+ }
244
+ if (respawn.mode === "supervised") {
245
+ const supervisorMode = detectRespawnSupervisor(process.env, process.platform);
246
+ markGatewayRestartTrace("restart.full-process-handoff", [
247
+ ["kind", "update-process"],
248
+ ["mode", respawn.mode],
249
+ ["supervisorMode", supervisorMode ?? "external"]
250
+ ]);
251
+ writeGatewayRestartHandoffSync({
252
+ restartKind: "update-process",
253
+ reason: restartReason,
254
+ processInstanceId,
255
+ supervisorMode: supervisorMode ?? "external",
256
+ restartTrace: captureGatewayRestartTraceHandoff()
257
+ });
258
+ gatewayLog$1.info("restart mode: update process respawn (supervisor restart)");
259
+ if (supervisorMode === "launchd") await new Promise((resolve) => {
260
+ setTimeout(resolve, LAUNCHD_SUPERVISED_RESTART_EXIT_DELAY_MS);
261
+ });
262
+ exitProcess(0);
263
+ return;
264
+ }
265
+ if (respawn.mode === "failed") {
266
+ gatewayLog$1.warn(`update respawn failed (${respawn.detail ?? "unknown error"}); falling back to in-process restart`);
267
+ await markUpdateRestartSentinelFailure("restart-unhealthy").catch((err) => {
268
+ gatewayLog$1.warn(`failed to mark update restart sentinel unhealthy: ${String(err)}`);
269
+ });
270
+ } else gatewayLog$1.info(`restart mode: in-process restart (${respawn.detail ?? "FENGMING_NO_RESPAWN"})`);
271
+ if (!await reacquireLockForInProcessRestart()) return;
272
+ shuttingDown = false;
273
+ restartResolver?.();
274
+ return;
275
+ }
276
+ const respawn = restartGatewayProcessWithFreshPid({ env: createGatewayRestartTraceHandoffEnv(captureGatewayRestartTraceHandoff()) });
277
+ if (respawn.mode === "spawned" || respawn.mode === "supervised") {
278
+ const supervisorMode = respawn.mode === "supervised" ? detectRespawnSupervisor(process.env, process.platform) : null;
279
+ const modeLabel = respawn.mode === "spawned" ? `spawned pid ${respawn.pid ?? "unknown"}` : "supervisor restart";
280
+ markGatewayRestartTrace("restart.full-process-handoff", [
281
+ ["kind", "full-process"],
282
+ ["mode", respawn.mode],
283
+ ["pid", respawn.mode === "spawned" ? respawn.pid ?? "unknown" : "none"],
284
+ ["supervisorMode", supervisorMode ?? "none"]
285
+ ]);
286
+ if (respawn.mode === "supervised") writeGatewayRestartHandoffSync({
287
+ restartKind: "full-process",
288
+ reason: restartReason,
289
+ processInstanceId,
290
+ supervisorMode: supervisorMode ?? "external",
291
+ restartTrace: captureGatewayRestartTraceHandoff()
292
+ });
293
+ gatewayLog$1.info(`restart mode: full process restart (${modeLabel})`);
294
+ if (supervisorMode === "launchd") await new Promise((resolve) => {
295
+ setTimeout(resolve, LAUNCHD_SUPERVISED_RESTART_EXIT_DELAY_MS);
296
+ });
297
+ exitProcess(0);
298
+ return;
299
+ }
300
+ if (respawn.mode === "failed") {
301
+ await writeStabilityBundle("gateway.restart_respawn_failed");
302
+ gatewayLog$1.warn(`full process restart failed (${respawn.detail ?? "unknown error"}); falling back to in-process restart`);
303
+ } else gatewayLog$1.info(`restart mode: in-process restart (${respawn.detail ?? "FENGMING_NO_RESPAWN"})`);
304
+ if (!await reacquireLockForInProcessRestart()) return;
305
+ shuttingDown = false;
306
+ restartResolver?.();
307
+ };
308
+ const handleStopAfterServerClose = async () => {
309
+ await releaseLockIfHeld();
310
+ exitProcess(0);
311
+ };
312
+ const SHUTDOWN_TIMEOUT_MS = 25e3;
313
+ const clearPendingStartupForceExitTimer = () => {
314
+ if (!pendingStartupForceExitTimer) return;
315
+ clearTimeout(pendingStartupForceExitTimer);
316
+ pendingStartupForceExitTimer = null;
317
+ };
318
+ const armPendingStartupForceExitTimer = () => {
319
+ if (pendingStartupForceExitTimer) return;
320
+ pendingStartupForceExitTimer = setTimeout(() => {
321
+ pendingStartupForceExitTimer = null;
322
+ gatewayLog$1.error("startup restart request timed out before gateway returned a close handle; exiting for supervisor recovery");
323
+ (async () => {
324
+ try {
325
+ await writeStabilityBundle("gateway.restart_startup_request_timeout");
326
+ } finally {
327
+ exitProcess(1);
328
+ }
329
+ })();
330
+ }, SHUTDOWN_TIMEOUT_MS);
331
+ pendingStartupForceExitTimer.unref?.();
332
+ };
333
+ const resolveRestartDrainTimeoutMs = async (restartIntent) => {
334
+ if (restartIntent?.force) return 0;
335
+ if (typeof restartIntent?.waitMs === "number" && Number.isFinite(restartIntent.waitMs)) return restartIntent.waitMs > 0 ? Math.floor(restartIntent.waitMs) : void 0;
336
+ try {
337
+ const { getRuntimeConfig, resolveGatewayRestartDeferralTimeoutMs } = await loadGatewayLifecycleRuntimeModule();
338
+ const timeoutMs = getRuntimeConfig().gateway?.reload?.deferralTimeoutMs;
339
+ return resolveGatewayRestartDeferralTimeoutMs(timeoutMs);
340
+ } catch {
341
+ return DEFAULT_RESTART_DRAIN_TIMEOUT_MS;
342
+ }
343
+ };
344
+ const markRestartDraining = async () => {
345
+ if (!restartDrainingMarkPromise) restartDrainingMarkPromise = (async () => {
346
+ const { markGatewayDraining } = await loadGatewayLifecycleRuntimeModule();
347
+ markGatewayDraining();
348
+ })().catch((err) => {
349
+ restartDrainingMarkPromise = null;
350
+ throw err;
351
+ });
352
+ await restartDrainingMarkPromise;
353
+ };
354
+ const runAcceptedRequest = ({ action, restartReason, restartIntent }) => {
355
+ const isRestart = action === "restart";
356
+ let forceExitTimer = null;
357
+ const armForceExitTimer = (forceExitMs) => {
358
+ if (forceExitTimer) return;
359
+ forceExitTimer = setTimeout(() => {
360
+ gatewayLog$1.error("shutdown timed out; exiting without full cleanup");
361
+ (async () => {
362
+ try {
363
+ await writeStabilityBundle(isRestart ? "gateway.restart_shutdown_timeout" : "gateway.stop_shutdown_timeout");
364
+ } finally {
365
+ exitProcess(1);
366
+ }
367
+ })();
368
+ }, forceExitMs);
369
+ };
370
+ const clearForceExitTimer = () => {
371
+ if (!forceExitTimer) return;
372
+ clearTimeout(forceExitTimer);
373
+ forceExitTimer = null;
374
+ };
375
+ (async () => {
376
+ const restartDrainTimeoutMs = isRestart ? await resolveRestartDrainTimeoutMs(restartIntent) : 0;
377
+ const restartDrainDeadlineAt = isRestart && restartDrainTimeoutMs !== void 0 ? Date.now() + restartDrainTimeoutMs : void 0;
378
+ if (!isRestart) armForceExitTimer(SHUTDOWN_TIMEOUT_MS);
379
+ else if (restartDrainTimeoutMs !== void 0) armForceExitTimer(restartDrainTimeoutMs + SHUTDOWN_TIMEOUT_MS);
380
+ const formatRestartDrainBudget = () => restartDrainTimeoutMs === void 0 ? "without a timeout" : `with timeout ${restartDrainTimeoutMs}ms`;
381
+ const armCloseForceExitTimerForIndefiniteRestart = () => {
382
+ if (isRestart && restartDrainTimeoutMs === void 0) armForceExitTimer(SHUTDOWN_TIMEOUT_MS);
383
+ };
384
+ const resolveRestartCloseDrainTimeoutMs = () => {
385
+ if (!isRestart) return null;
386
+ if (restartDrainTimeoutMs === void 0) return Math.max(0, SHUTDOWN_TIMEOUT_MS - RESTART_CLOSE_REPLY_DRAIN_SHUTDOWN_RESERVE_MS);
387
+ return Math.max(0, (restartDrainDeadlineAt ?? Date.now()) - Date.now());
388
+ };
389
+ try {
390
+ if (isRestart) {
391
+ let activeTasksAtDrainStart = 0;
392
+ let activeRunsAtDrainStart = 0;
393
+ let drainTimedOut = false;
394
+ await measureGatewayRestartTrace("restart.drain", async () => {
395
+ const { abortEmbeddedAgentRun, getRuntimeConfig, getInspectableActiveTaskRestartBlockers, getActiveEmbeddedRunCount, getActiveTaskCount, listActiveEmbeddedRunSessionIds, listActiveEmbeddedRunSessionKeys, markRestartAbortedMainSessions, waitForActiveEmbeddedRuns, waitForActiveTasks } = await loadGatewayLifecycleRuntimeModule();
396
+ const collectActiveRestartSessionKeys = () => {
397
+ return new Set(listActiveEmbeddedRunSessionKeys());
398
+ };
399
+ const collectActiveRestartSessionIds = () => {
400
+ return new Set(listActiveEmbeddedRunSessionIds());
401
+ };
402
+ let activeRestartSessionKeysAtDrainStart = /* @__PURE__ */ new Set();
403
+ let activeRestartSessionIdsAtDrainStart = /* @__PURE__ */ new Set();
404
+ const markActiveMainSessionsForRestart = async (reason) => {
405
+ const sessionKeys = new Set([...activeRestartSessionKeysAtDrainStart, ...collectActiveRestartSessionKeys()]);
406
+ const sessionIds = new Set([...activeRestartSessionIdsAtDrainStart, ...collectActiveRestartSessionIds()]);
407
+ if (sessionKeys.size === 0 && sessionIds.size === 0) return;
408
+ try {
409
+ await markRestartAbortedMainSessions({
410
+ cfg: getRuntimeConfig(),
411
+ sessionKeys,
412
+ sessionIds,
413
+ reason
414
+ });
415
+ } catch (err) {
416
+ gatewayLog$1.warn(`failed to mark interrupted main sessions for restart recovery: ${String(err)}`);
417
+ }
418
+ };
419
+ const formatTaskBlockers = () => {
420
+ const blockers = getInspectableActiveTaskRestartBlockers();
421
+ if (blockers.length === 0) return null;
422
+ const shown = blockers.slice(0, 8).map((task) => [
423
+ `taskId=${task.taskId}`,
424
+ task.runId ? `runId=${task.runId}` : null,
425
+ `status=${task.status}`,
426
+ `runtime=${task.runtime}`,
427
+ task.label ? `label=${task.label}` : null,
428
+ task.title ? `title=${task.title.slice(0, 80)}` : null
429
+ ].filter((value) => Boolean(value)).join(" "));
430
+ const omitted = blockers.length - shown.length;
431
+ return omitted > 0 ? `${shown.join("; ")}; +${omitted} more` : shown.join("; ");
432
+ };
433
+ const createStillPendingDrainLogger = () => setInterval(() => {
434
+ gatewayLog$1.warn(`still draining ${getActiveTaskCount()} active task(s) and ${getActiveEmbeddedRunCount()} active embedded run(s) before restart`);
435
+ }, RESTART_DRAIN_STILL_PENDING_WARN_MS);
436
+ await markRestartDraining();
437
+ const activeTasks = getActiveTaskCount();
438
+ const activeRuns = getActiveEmbeddedRunCount();
439
+ activeTasksAtDrainStart = activeTasks;
440
+ activeRunsAtDrainStart = activeRuns;
441
+ activeRestartSessionKeysAtDrainStart = collectActiveRestartSessionKeys();
442
+ activeRestartSessionIdsAtDrainStart = collectActiveRestartSessionIds();
443
+ if (activeRuns > 0) abortEmbeddedAgentRun(void 0, { mode: "compacting" });
444
+ if (activeTasks > 0 || activeRuns > 0) {
445
+ const taskBlockers = formatTaskBlockers();
446
+ gatewayLog$1.info(`draining ${activeTasks} active task(s) and ${activeRuns} active embedded run(s) before restart ${formatRestartDrainBudget()}`);
447
+ if (taskBlockers) gatewayLog$1.warn(`restart blocked by active background task run(s): ${taskBlockers}`);
448
+ if (restartIntent?.force) {
449
+ gatewayLog$1.warn("forced restart requested; skipping active work drain");
450
+ await markActiveMainSessionsForRestart(restartIntent.reason ?? "forced gateway restart");
451
+ abortEmbeddedAgentRun(void 0, { mode: "all" });
452
+ } else {
453
+ const stillPendingDrainLogger = createStillPendingDrainLogger();
454
+ let abortedAfterRunTimeout = false;
455
+ let tasksDrain = { drained: true };
456
+ let runsDrain = { drained: true };
457
+ try {
458
+ const tasksDrainPromise = activeTasks > 0 ? waitForActiveTasks(restartDrainTimeoutMs) : Promise.resolve({ drained: true });
459
+ runsDrain = activeRuns > 0 ? await waitForActiveEmbeddedRuns(restartDrainTimeoutMs) : { drained: true };
460
+ if (!runsDrain.drained && activeRuns > 0) {
461
+ gatewayLog$1.warn("active embedded run drain timeout reached; aborting active run(s) before restart");
462
+ abortEmbeddedAgentRun(void 0, { mode: "all" });
463
+ abortedAfterRunTimeout = true;
464
+ }
465
+ tasksDrain = await tasksDrainPromise;
466
+ } finally {
467
+ clearInterval(stillPendingDrainLogger);
468
+ }
469
+ if (tasksDrain.drained && runsDrain.drained) gatewayLog$1.info("all active work drained");
470
+ else {
471
+ drainTimedOut = true;
472
+ gatewayLog$1.warn("drain timeout reached; proceeding with restart");
473
+ await markActiveMainSessionsForRestart("gateway restart drain timeout");
474
+ if (!abortedAfterRunTimeout) abortEmbeddedAgentRun(void 0, { mode: "all" });
475
+ }
476
+ }
477
+ }
478
+ }, () => [
479
+ ["activeTasks", activeTasksAtDrainStart],
480
+ ["activeRuns", activeRunsAtDrainStart],
481
+ ["timedOut", drainTimedOut],
482
+ ["force", restartIntent?.force === true]
483
+ ]);
484
+ }
485
+ armCloseForceExitTimerForIndefiniteRestart();
486
+ const closeDrainTimeoutMs = resolveRestartCloseDrainTimeoutMs();
487
+ await server?.close({
488
+ reason: isRestart ? "gateway restarting" : "gateway stopping",
489
+ restartExpectedMs: isRestart ? 1500 : null,
490
+ ...closeDrainTimeoutMs !== null ? { drainTimeoutMs: closeDrainTimeoutMs } : {}
491
+ });
492
+ } catch (err) {
493
+ gatewayLog$1.error(`shutdown error: ${String(err)}`);
494
+ } finally {
495
+ clearForceExitTimer();
496
+ server = null;
497
+ if (isRestart) await handleRestartAfterServerClose(restartReason);
498
+ else await handleStopAfterServerClose();
499
+ }
500
+ })();
501
+ };
502
+ const flushPendingStartupRequest = (opts = {}) => {
503
+ if (!pendingStartupRequest || !restartResolver) return;
504
+ if (!server && opts.allowMissingServer !== true) return;
505
+ const request = pendingStartupRequest;
506
+ pendingStartupRequest = null;
507
+ clearPendingStartupForceExitTimer();
508
+ startupFailedWithoutServerHandle = false;
509
+ runAcceptedRequest(request);
510
+ };
511
+ const request = (action, signal, restartReason, restartIntent) => {
512
+ const acceptedRequest = {
513
+ action,
514
+ signal,
515
+ restartReason,
516
+ restartIntent
517
+ };
518
+ if (shuttingDown) {
519
+ if (action === "stop" && pendingStartupRequest && !server) {
520
+ gatewayLog$1.info(`received ${signal}; overriding pending startup restart with shutdown`);
521
+ pendingStartupRequest = null;
522
+ clearPendingStartupForceExitTimer();
523
+ startupFailedWithoutServerHandle = false;
524
+ runAcceptedRequest(acceptedRequest);
525
+ return;
526
+ }
527
+ gatewayLog$1.info(`received ${signal} during shutdown; ignoring`);
528
+ return;
529
+ }
530
+ shuttingDown = true;
531
+ const isRestart = action === "restart";
532
+ gatewayLog$1.info(`received ${signal}; ${isRestart ? "restarting" : "shutting down"}`);
533
+ if (isRestart) startGatewayRestartTrace("restart.signal.received", [
534
+ ["signal", signal],
535
+ ["reason", restartReason ?? signal],
536
+ ["force", restartIntent?.force === true],
537
+ ["waitMs", restartIntent?.waitMs ?? "default"]
538
+ ]);
539
+ if (action === "stop") {
540
+ runAcceptedRequest(acceptedRequest);
541
+ return;
542
+ }
543
+ if (!server && restartResolver && startupFailedWithoutServerHandle) {
544
+ startupFailedWithoutServerHandle = false;
545
+ runAcceptedRequest(acceptedRequest);
546
+ return;
547
+ }
548
+ if (!server || !restartResolver) {
549
+ pendingStartupRequest = acceptedRequest;
550
+ markRestartDraining().catch((err) => {
551
+ gatewayLog$1.warn(`failed to mark gateway draining for startup restart: ${String(err)}`);
552
+ });
553
+ armPendingStartupForceExitTimer();
554
+ return;
555
+ }
556
+ runAcceptedRequest(acceptedRequest);
557
+ };
558
+ const onSigterm = () => {
559
+ gatewayLog$1.info("signal SIGTERM received");
560
+ (async () => {
561
+ const { consumeGatewayRestartIntentPayloadSync } = await loadGatewayLifecycleRuntimeModule();
562
+ const restartIntent = consumeGatewayRestartIntentPayloadSync();
563
+ request(restartIntent ? "restart" : "stop", "SIGTERM", restartIntent?.reason, restartIntent ?? void 0);
564
+ })().catch((err) => {
565
+ gatewayLog$1.error(`failed to handle SIGTERM: ${String(err)}`);
566
+ request("stop", "SIGTERM");
567
+ });
568
+ };
569
+ const onSigint = () => {
570
+ gatewayLog$1.info("signal SIGINT received");
571
+ request("stop", "SIGINT");
572
+ };
573
+ const onSigusr1 = () => {
574
+ gatewayLog$1.info("signal SIGUSR1 received");
575
+ (async () => {
576
+ const { consumeGatewayRestartIntentPayloadSync, consumeGatewaySigusr1RestartIntent, consumeGatewaySigusr1RestartAuthorization, isGatewaySigusr1RestartExternallyAllowed, markGatewaySigusr1RestartHandled, peekGatewaySigusr1RestartReason, scheduleGatewaySigusr1Restart } = await loadGatewayLifecycleRuntimeModule();
577
+ const restartIntent = consumeGatewayRestartIntentPayloadSync();
578
+ if (restartIntent) {
579
+ if (consumeGatewaySigusr1RestartAuthorization()) markGatewaySigusr1RestartHandled();
580
+ request("restart", "SIGUSR1", restartIntent.reason ?? "gateway.restart", restartIntent);
581
+ return;
582
+ }
583
+ if (!consumeGatewaySigusr1RestartAuthorization()) {
584
+ markGatewaySigusr1RestartHandled();
585
+ if (!isGatewaySigusr1RestartExternallyAllowed()) {
586
+ gatewayLog$1.warn("SIGUSR1 restart ignored (not authorized; commands.restart=false or use gateway tool).");
587
+ return;
588
+ }
589
+ if (shuttingDown) {
590
+ gatewayLog$1.info("received SIGUSR1 during shutdown; ignoring");
591
+ return;
592
+ }
593
+ scheduleGatewaySigusr1Restart({
594
+ delayMs: 0,
595
+ reason: "SIGUSR1"
596
+ });
597
+ return;
598
+ }
599
+ const sigusr1RestartIntent = consumeGatewaySigusr1RestartIntent();
600
+ const restartReason = peekGatewaySigusr1RestartReason();
601
+ markGatewaySigusr1RestartHandled();
602
+ request("restart", "SIGUSR1", sigusr1RestartIntent?.reason ?? restartReason, sigusr1RestartIntent ?? void 0);
603
+ })().catch((err) => {
604
+ gatewayLog$1.error(`SIGUSR1 handler failed: ${formatErrorMessage(err)}`);
605
+ try {
606
+ eagerLifecycleRuntime.markGatewaySigusr1RestartHandled();
607
+ } catch {}
608
+ });
609
+ };
610
+ process.on("SIGTERM", onSigterm);
611
+ process.on("SIGINT", onSigint);
612
+ process.on("SIGUSR1", onSigusr1);
613
+ try {
614
+ const onIteration = createRestartIterationHook(async () => {
615
+ const { reloadTaskRegistryFromStore, resetAllLanes, resetGatewayRestartStateForInProcessRestart } = await loadGatewayLifecycleRuntimeModule();
616
+ resetAllLanes();
617
+ clearRuntimeConfigSnapshot();
618
+ resetGatewayRestartStateForInProcessRestart();
619
+ reloadTaskRegistryFromStore();
620
+ markGatewayRestartTrace("restart.next-start");
621
+ });
622
+ let isFirstStart = true;
623
+ for (;;) {
624
+ await onIteration();
625
+ restartDrainingMarkPromise = null;
626
+ let startupFailedBeforeServerHandle = false;
627
+ try {
628
+ server = await params.start({ startupStartedAt });
629
+ startupFailedWithoutServerHandle = false;
630
+ isFirstStart = false;
631
+ } catch (err) {
632
+ if (isFirstStart) throw err;
633
+ server = null;
634
+ startupFailedWithoutServerHandle = true;
635
+ startupFailedBeforeServerHandle = true;
636
+ if (!pendingStartupRequest) await releaseLockIfHeld();
637
+ const errMsg = formatErrorMessage(err);
638
+ const errStack = err instanceof Error && err.stack ? `\n${err.stack}` : "";
639
+ await writeStabilityBundle("gateway.restart_startup_failed", err);
640
+ gatewayLog$1.error(`gateway startup failed: ${errMsg}. Process will stay alive; fix the issue and restart.${errStack}`);
641
+ }
642
+ await new Promise((resolve) => {
643
+ restartResolver = () => {
644
+ restartResolver = null;
645
+ resolve();
646
+ };
647
+ flushPendingStartupRequest({ allowMissingServer: startupFailedBeforeServerHandle });
648
+ });
649
+ }
650
+ } finally {
651
+ await releaseLockIfHeld();
652
+ cleanupSignals();
653
+ }
654
+ }
655
+ //#endregion
656
+ //#region src/cli/gateway-cli/run.ts
657
+ const gatewayLog = createSubsystemLogger("gateway");
658
+ const GATEWAY_RUN_VALUE_KEYS = [
659
+ "port",
660
+ "bind",
661
+ "token",
662
+ "auth",
663
+ "password",
664
+ "passwordFile",
665
+ "tailscale",
666
+ "wsLog",
667
+ "rawStreamPath"
668
+ ];
669
+ const GATEWAY_RUN_BOOLEAN_KEYS = [
670
+ "tailscaleResetOnExit",
671
+ "allowUnconfigured",
672
+ "dev",
673
+ "reset",
674
+ "force",
675
+ "verbose",
676
+ "cliBackendLogs",
677
+ "claudeCliLogs",
678
+ "compact",
679
+ "rawStream"
680
+ ];
681
+ const SUPERVISED_GATEWAY_LOCK_RETRY_MS = 5e3;
682
+ const SUPERVISED_GATEWAY_LOCK_RETRY_TIMEOUT_MS = 3e4;
683
+ const SUPERVISED_GATEWAY_HEALTH_PROBE_TIMEOUT_MS = 1e3;
684
+ /**
685
+ * EX_CONFIG (78) from sysexits.h — used for configuration errors so systemd
686
+ * (via RestartPreventExitStatus=78) stops restarting instead of entering a
687
+ * restart storm that can render low-resource hosts unresponsive.
688
+ */
689
+ const EXIT_CONFIG_ERROR = 78;
690
+ const GATEWAY_AUTH_MODES = [
691
+ "none",
692
+ "token",
693
+ "password",
694
+ "trusted-proxy"
695
+ ];
696
+ const GATEWAY_TAILSCALE_MODES = [
697
+ "off",
698
+ "serve",
699
+ "funnel"
700
+ ];
701
+ const toOptionString = (value) => {
702
+ if (typeof value === "string") return value;
703
+ if (typeof value === "number" || typeof value === "bigint") return value.toString();
704
+ };
705
+ function extractGatewayMiskeys(parsed) {
706
+ if (!parsed || typeof parsed !== "object") return {
707
+ hasGatewayToken: false,
708
+ hasRemoteToken: false
709
+ };
710
+ const gateway = parsed.gateway;
711
+ if (!gateway || typeof gateway !== "object") return {
712
+ hasGatewayToken: false,
713
+ hasRemoteToken: false
714
+ };
715
+ const hasGatewayToken = "token" in gateway;
716
+ const remote = gateway.remote;
717
+ return {
718
+ hasGatewayToken,
719
+ hasRemoteToken: remote && typeof remote === "object" ? "token" in remote : false
720
+ };
721
+ }
722
+ function createGatewayCliStartupTrace() {
723
+ const enabled = isTruthyEnvValue(process.env.FENGMING_GATEWAY_STARTUP_TRACE);
724
+ const started = performance.now();
725
+ let last = started;
726
+ const emit = (name, durationMs, totalMs) => {
727
+ if (enabled) gatewayLog.info(`startup trace: ${name} ${durationMs.toFixed(1)}ms total=${totalMs.toFixed(1)}ms`);
728
+ };
729
+ return {
730
+ mark(name) {
731
+ const now = performance.now();
732
+ emit(name, now - last, now - started);
733
+ last = now;
734
+ },
735
+ async measure(name, run) {
736
+ const before = performance.now();
737
+ try {
738
+ return await withDiagnosticPhase(name, run);
739
+ } finally {
740
+ const now = performance.now();
741
+ emit(name, now - before, now - started);
742
+ last = now;
743
+ }
744
+ }
745
+ };
746
+ }
747
+ function warnInlinePasswordFlag() {
748
+ defaultRuntime.error("Warning: --password can be exposed via process listings. Prefer --password-file or FENGMING_GATEWAY_PASSWORD.");
749
+ }
750
+ async function resolveGatewayPasswordOption(opts) {
751
+ const direct = toOptionString(opts.password);
752
+ const file = toOptionString(opts.passwordFile);
753
+ if (direct && file) throw new Error("请使用 --password 或 --password-file");
754
+ if (file) {
755
+ const { readSecretFromFile } = await import("./secret-file-Dsnayogk.js");
756
+ return readSecretFromFile(file, "Gateway password");
757
+ }
758
+ return direct;
759
+ }
760
+ function parseEnumOption(raw, allowed) {
761
+ if (!raw) return null;
762
+ return allowed.includes(raw) ? raw : null;
763
+ }
764
+ function formatModeErrorList(modes) {
765
+ const quoted = modes.map((mode) => `"${mode}"`);
766
+ if (quoted.length === 0) return "";
767
+ if (quoted.length === 1) return quoted[0];
768
+ if (quoted.length === 2) return `${quoted[0]} or ${quoted[1]}`;
769
+ return `${quoted.slice(0, -1).join(", ")}, or ${quoted[quoted.length - 1]}`;
770
+ }
771
+ function shouldBlockGatewayBindWithoutExplicitAuth(params) {
772
+ return !isLoopbackHost(params.bindHost) && !params.hasSharedSecret && params.resolvedAuthMode !== "trusted-proxy";
773
+ }
774
+ async function maybeLogPendingControlUiBuild(cfg) {
775
+ if (cfg.gateway?.controlUi?.enabled === false) return;
776
+ if (toOptionString(cfg.gateway?.controlUi?.root)) return;
777
+ const { resolveControlUiRootSync } = await import("./control-ui-assets-02jnMoRk.js");
778
+ if (resolveControlUiRootSync({
779
+ moduleUrl: import.meta.url,
780
+ argv1: process.argv[1],
781
+ cwd: process.cwd()
782
+ })) return;
783
+ gatewayLog.info("Control UI assets are missing; first startup may spend a few seconds building them before the gateway binds. `pnpm gateway:watch` does not rebuild Control UI assets, so rerun `pnpm ui:build` after UI changes or use `pnpm ui:dev` while developing the Control UI. For a full local dist, run `pnpm build && pnpm ui:build`.");
784
+ }
785
+ function getGatewayStartGuardErrors(params) {
786
+ if (params.allowUnconfigured || params.mode === "local") return [];
787
+ if (!params.configExists) return [`Missing config. Run \`${formatCliCommand("fengming setup")}\` or set gateway.mode=local (or pass --allow-unconfigured).`];
788
+ if (params.mode === void 0) return [[
789
+ "Gateway start blocked: existing config is missing gateway.mode.",
790
+ "Treat this as suspicious or clobbered config.",
791
+ `Re-run \`${formatCliCommand("fengming onboard --mode local")}\` or \`${formatCliCommand("fengming setup")}\`, set gateway.mode=local manually, or pass --allow-unconfigured.`
792
+ ].join(" "), `Config write audit: ${params.configAuditPath}`];
793
+ return [`Gateway start blocked: set gateway.mode=local (current: ${params.mode}) or pass --allow-unconfigured.`, `Config write audit: ${params.configAuditPath}`];
794
+ }
795
+ async function readGatewayStartupConfig(params) {
796
+ const { readConfigFileSnapshotWithPluginMetadata } = await import("./config/config.js");
797
+ const snapshotRead = await params.startupTrace.measure("cli.config-snapshot", () => readConfigFileSnapshotWithPluginMetadata().catch(() => null));
798
+ const snapshot = snapshotRead?.snapshot ?? null;
799
+ return {
800
+ cfg: snapshot?.config ?? {},
801
+ snapshot,
802
+ ...snapshotRead ? { startupConfigSnapshotRead: snapshotRead } : {}
803
+ };
804
+ }
805
+ function resolveGatewayRunOptions(opts, command) {
806
+ const resolved = { ...opts };
807
+ for (const key of GATEWAY_RUN_VALUE_KEYS) {
808
+ const inherited = inheritOptionFromParent(command, key);
809
+ if (key === "wsLog") {
810
+ resolved[key] = inherited ?? resolved[key];
811
+ continue;
812
+ }
813
+ resolved[key] = resolved[key] ?? inherited;
814
+ }
815
+ for (const key of GATEWAY_RUN_BOOLEAN_KEYS) {
816
+ const inherited = inheritOptionFromParent(command, key);
817
+ resolved[key] = Boolean(resolved[key] || inherited);
818
+ }
819
+ return resolved;
820
+ }
821
+ function isGatewayLockError(err) {
822
+ return err instanceof GatewayLockError || !!err && typeof err === "object" && err.name === "GatewayLockError";
823
+ }
824
+ function isGatewayAlreadyRunningLockError(err) {
825
+ if (!isGatewayLockError(err) || typeof err.message !== "string") return false;
826
+ return err.message.includes("gateway already running") || err.message.includes("another gateway instance is already listening");
827
+ }
828
+ function isHealthyGatewayLockError(err) {
829
+ return isGatewayAlreadyRunningLockError(err);
830
+ }
831
+ function resolveGatewayLockErrorExitCode(err, supervisor) {
832
+ if (supervisor === "systemd" && isGatewayAlreadyRunningLockError(err)) return EXIT_CONFIG_ERROR;
833
+ return isHealthyGatewayLockError(err) ? 0 : 1;
834
+ }
835
+ function normalizeGatewayHealthProbeHost(host) {
836
+ if (host === "0.0.0.0" || host === "::") return "127.0.0.1";
837
+ return host;
838
+ }
839
+ async function probeGatewayHealthz(params) {
840
+ const timeoutMs = params.timeoutMs ?? SUPERVISED_GATEWAY_HEALTH_PROBE_TIMEOUT_MS;
841
+ return await new Promise((resolve) => {
842
+ const req = request({
843
+ hostname: normalizeGatewayHealthProbeHost(params.host),
844
+ port: params.port,
845
+ path: "/healthz",
846
+ method: "GET",
847
+ timeout: timeoutMs
848
+ }, (res) => {
849
+ res.resume();
850
+ resolve(typeof res.statusCode === "number" && res.statusCode < 500);
851
+ });
852
+ req.once("timeout", () => {
853
+ req.destroy();
854
+ resolve(false);
855
+ });
856
+ req.once("error", () => {
857
+ resolve(false);
858
+ });
859
+ req.end();
860
+ });
861
+ }
862
+ async function runGatewayLoopWithSupervisedLockRecovery(params) {
863
+ const supervisor = params.supervisor;
864
+ if (!supervisor) {
865
+ await params.startLoop();
866
+ return;
867
+ }
868
+ const now = params.now ?? Date.now;
869
+ const sleep = params.sleep ?? (async (ms) => await new Promise((resolve) => setTimeout(resolve, ms)));
870
+ const probeHealth = params.probeHealth ?? ((probeParams) => probeGatewayHealthz(probeParams));
871
+ const retryMs = params.retryMs ?? SUPERVISED_GATEWAY_LOCK_RETRY_MS;
872
+ const timeoutMs = params.timeoutMs ?? SUPERVISED_GATEWAY_LOCK_RETRY_TIMEOUT_MS;
873
+ const startedAt = now();
874
+ for (;;) try {
875
+ await params.startLoop();
876
+ return;
877
+ } catch (err) {
878
+ if (!isGatewayAlreadyRunningLockError(err)) throw err;
879
+ if (await probeHealth({
880
+ host: params.healthHost,
881
+ port: params.port
882
+ })) {
883
+ if (supervisor === "systemd") throw new GatewayLockError("gateway already running under systemd; existing gateway is healthy, exiting with code 78 to prevent a systemd Restart=always loop", err);
884
+ params.log.info(`gateway already running under ${supervisor}; existing gateway is healthy, leaving it in control`);
885
+ return;
886
+ }
887
+ const elapsedMs = now() - startedAt;
888
+ if (elapsedMs >= timeoutMs) throw new GatewayLockError(`gateway already running under ${supervisor}; existing gateway did not become healthy after ${timeoutMs}ms`, err);
889
+ const waitMs = Math.min(retryMs, Math.max(0, timeoutMs - elapsedMs));
890
+ params.log.warn(`gateway already running under ${supervisor}; waiting ${waitMs}ms before retrying startup`);
891
+ await sleep(waitMs);
892
+ }
893
+ }
894
+ async function maybeWriteGatewayStartupFailureBundle(err) {
895
+ const { writeDiagnosticStabilityBundleForFailureSync } = await import("./diagnostic-stability-bundle-K20oFxF8.js");
896
+ const result = writeDiagnosticStabilityBundleForFailureSync("gateway.startup_failed", err);
897
+ if ("message" in result) gatewayLog.warn(result.message);
898
+ }
899
+ async function runGatewayCommand(opts) {
900
+ normalizeStateDirEnv(process.env);
901
+ installQaParentWatchdog();
902
+ if (process.env.FENGMING_SERVICE_MARKER?.trim()) process.env[GATEWAY_SERVICE_RUNTIME_PID_ENV] = String(process.pid);
903
+ const isDevProfile = normalizeOptionalLowercaseString(process.env.FENGMING_PROFILE) === "dev";
904
+ const devMode = Boolean(opts.dev) || isDevProfile;
905
+ if (opts.reset && !devMode) {
906
+ defaultRuntime.error("Use --reset with --dev.");
907
+ defaultRuntime.exit(1);
908
+ return;
909
+ }
910
+ setVerbose(Boolean(opts.verbose));
911
+ if (opts.cliBackendLogs || opts.claudeCliLogs) {
912
+ setConsoleSubsystemFilter(["agent/cli-backend"]);
913
+ process.env.FENGMING_CLI_BACKEND_LOG_OUTPUT = "1";
914
+ }
915
+ const wsLogRaw = opts.compact ? "compact" : opts.wsLog;
916
+ const wsLogStyle = wsLogRaw === "compact" ? "compact" : wsLogRaw === "full" ? "full" : "auto";
917
+ if (wsLogRaw !== void 0 && wsLogRaw !== "auto" && wsLogRaw !== "compact" && wsLogRaw !== "full") {
918
+ defaultRuntime.error("Invalid --ws-log. Use \"auto\", \"full\", or \"compact\".");
919
+ defaultRuntime.exit(1);
920
+ }
921
+ setGatewayWsLogStyle(wsLogStyle);
922
+ if (opts.rawStream) process.env.FENGMING_RAW_STREAM = "1";
923
+ const rawStreamPath = toOptionString(opts.rawStreamPath);
924
+ if (rawStreamPath) process.env.FENGMING_RAW_STREAM_PATH = rawStreamPath;
925
+ const startupTrace = createGatewayCliStartupTrace();
926
+ const { startGatewayServer } = await startupTrace.measure("cli.server-import", () => withProgress({
927
+ label: "Loading gateway modules…",
928
+ indeterminate: true
929
+ }, async () => import("./server-CMYi8gDo.js")));
930
+ setConsoleTimestampPrefix(true);
931
+ if (devMode) {
932
+ const { ensureDevGatewayConfig } = await import("./dev-DYYZrEVb.js");
933
+ await startupTrace.measure("cli.dev-config", () => ensureDevGatewayConfig({ reset: Boolean(opts.reset) }));
934
+ }
935
+ gatewayLog.info("loading configuration…");
936
+ const { cfg, snapshot, startupConfigSnapshotRead } = await readGatewayStartupConfig({ startupTrace });
937
+ maybeLogPendingControlUiBuild(cfg).catch((err) => {
938
+ gatewayLog.warn(`Control UI asset check failed: ${String(err)}`);
939
+ });
940
+ const portOverride = parsePort(opts.port);
941
+ if (opts.port !== void 0 && portOverride === null) {
942
+ defaultRuntime.error(formatInvalidPortOption("--port"));
943
+ defaultRuntime.exit(1);
944
+ return;
945
+ }
946
+ const port = portOverride ?? resolveGatewayPort(cfg);
947
+ if (!Number.isFinite(port) || port <= 0 || port > 65535) {
948
+ defaultRuntime.error(formatInvalidConfigPort("gateway.port"));
949
+ defaultRuntime.exit(1);
950
+ return;
951
+ }
952
+ const { formatFutureConfigActionBlock, resolveFutureConfigActionBlock } = await import("./future-version-guard-Cd7dqhsS.js");
953
+ const futureStartupBlock = resolveFutureConfigActionBlock({
954
+ action: "start the gateway service",
955
+ snapshot
956
+ });
957
+ if (futureStartupBlock && process.env.FENGMING_SERVICE_MARKER?.trim()) {
958
+ defaultRuntime.error(formatFutureConfigActionBlock(futureStartupBlock));
959
+ defaultRuntime.exit(78);
960
+ return;
961
+ }
962
+ const futureForceBlock = opts.force ? resolveFutureConfigActionBlock({
963
+ action: "force-kill gateway port listeners",
964
+ snapshot
965
+ }) : null;
966
+ if (futureForceBlock) {
967
+ defaultRuntime.error(formatFutureConfigActionBlock(futureForceBlock));
968
+ defaultRuntime.exit(1);
969
+ return;
970
+ }
971
+ const VALID_BIND_MODES = new Set([
972
+ "loopback",
973
+ "lan",
974
+ "auto",
975
+ "custom",
976
+ "tailnet"
977
+ ]);
978
+ const bindExplicitRawStr = normalizeOptionalString(toOptionString(opts.bind) ?? cfg.gateway?.bind);
979
+ if (bindExplicitRawStr !== void 0 && !VALID_BIND_MODES.has(bindExplicitRawStr)) {
980
+ defaultRuntime.error("Invalid --bind. Use \"loopback\", \"lan\", \"tailnet\", \"auto\", or \"custom\".");
981
+ defaultRuntime.exit(1);
982
+ return;
983
+ }
984
+ const bindExplicitRaw = bindExplicitRawStr;
985
+ if (process.env.FENGMING_SERVICE_MARKER?.trim()) {
986
+ const { cleanStaleGatewayProcessesSync } = await import("./restart-stale-pids-Cx0WSlMM.js");
987
+ const stale = cleanStaleGatewayProcessesSync(port);
988
+ if (stale.length > 0) gatewayLog.info(`service-mode: cleared ${stale.length} stale gateway pid(s) before bind on port ${port}`);
989
+ }
990
+ if (opts.force) try {
991
+ const { forceFreePortAndWait, waitForPortBindable } = await import("./ports-BDrHBGi6.js");
992
+ const { killed, waitedMs, escalatedToSigkill } = await forceFreePortAndWait(port, {
993
+ timeoutMs: 2e3,
994
+ intervalMs: 100,
995
+ sigtermTimeoutMs: 700
996
+ });
997
+ if (killed.length === 0) gatewayLog.info(`force: no listeners on port ${port}`);
998
+ else {
999
+ for (const proc of killed) gatewayLog.info(`force: killed pid ${proc.pid}${proc.command ? ` (${proc.command})` : ""} on port ${port}`);
1000
+ if (escalatedToSigkill) gatewayLog.info(`force: escalated to SIGKILL while freeing port ${port}`);
1001
+ if (waitedMs > 0) gatewayLog.info(`force: waited ${waitedMs}ms for port ${port} to free`);
1002
+ }
1003
+ const bindWaitMs = await waitForPortBindable(port, {
1004
+ timeoutMs: 3e3,
1005
+ intervalMs: 150,
1006
+ host: bindExplicitRaw === "loopback" ? "127.0.0.1" : bindExplicitRaw === "lan" ? "0.0.0.0" : bindExplicitRaw === "custom" ? toOptionString(cfg.gateway?.customBindHost) : void 0
1007
+ });
1008
+ if (bindWaitMs > 0) gatewayLog.info(`force: waited ${bindWaitMs}ms for port ${port} to become bindable`);
1009
+ } catch (err) {
1010
+ defaultRuntime.error(`Could not free port ${port}: ${formatErrorMessage(err)}. Run ${formatCliCommand("fengming gateway status --deep")} to inspect the listener.`);
1011
+ defaultRuntime.exit(1);
1012
+ return;
1013
+ }
1014
+ if (opts.token) {
1015
+ const token = toOptionString(opts.token);
1016
+ if (token) process.env.FENGMING_GATEWAY_TOKEN = token;
1017
+ }
1018
+ const authModeRaw = toOptionString(opts.auth);
1019
+ const authMode = parseEnumOption(authModeRaw, GATEWAY_AUTH_MODES);
1020
+ if (authModeRaw && !authMode) {
1021
+ defaultRuntime.error(`Invalid --auth. Use ${formatModeErrorList(GATEWAY_AUTH_MODES)}.`);
1022
+ defaultRuntime.exit(1);
1023
+ return;
1024
+ }
1025
+ const tailscaleRaw = toOptionString(opts.tailscale);
1026
+ const tailscaleMode = parseEnumOption(tailscaleRaw, GATEWAY_TAILSCALE_MODES);
1027
+ if (tailscaleRaw && !tailscaleMode) {
1028
+ defaultRuntime.error(`Invalid --tailscale. Use ${formatModeErrorList(GATEWAY_TAILSCALE_MODES)}.`);
1029
+ defaultRuntime.exit(1);
1030
+ return;
1031
+ }
1032
+ const effectiveTailscaleMode = tailscaleMode ?? cfg.gateway?.tailscale?.mode ?? "off";
1033
+ const bind = bindExplicitRaw ?? defaultGatewayBindMode(effectiveTailscaleMode);
1034
+ let passwordRaw;
1035
+ try {
1036
+ passwordRaw = await resolveGatewayPasswordOption(opts);
1037
+ } catch (err) {
1038
+ defaultRuntime.error(formatErrorMessage(err));
1039
+ defaultRuntime.exit(1);
1040
+ return;
1041
+ }
1042
+ if (toOptionString(opts.password)) warnInlinePasswordFlag();
1043
+ const tokenRaw = toOptionString(opts.token);
1044
+ gatewayLog.info("resolving authentication…");
1045
+ const configExists = snapshot?.exists ?? fs.existsSync(CONFIG_PATH);
1046
+ const configAuditPath = path.join(resolveStateDir(process.env), "logs", "config-audit.jsonl");
1047
+ const mode = (snapshot?.valid ? snapshot.config : cfg).gateway?.mode;
1048
+ const guardErrors = getGatewayStartGuardErrors({
1049
+ allowUnconfigured: opts.allowUnconfigured,
1050
+ configExists,
1051
+ configAuditPath,
1052
+ mode
1053
+ });
1054
+ if (guardErrors.length > 0) {
1055
+ for (const error of guardErrors) defaultRuntime.error(error);
1056
+ defaultRuntime.exit(EXIT_CONFIG_ERROR);
1057
+ return;
1058
+ }
1059
+ const miskeys = extractGatewayMiskeys(snapshot?.parsed);
1060
+ const authOverride = authMode || passwordRaw || tokenRaw || authModeRaw ? {
1061
+ ...authMode ? { mode: authMode } : {},
1062
+ ...tokenRaw ? { token: tokenRaw } : {},
1063
+ ...passwordRaw ? { password: passwordRaw } : {}
1064
+ } : void 0;
1065
+ const { resolveGatewayAuth } = await import("./auth-DHThy0Um.js");
1066
+ const resolvedAuth = await startupTrace.measure("cli.auth-resolve", () => resolveGatewayAuth({
1067
+ authConfig: cfg.gateway?.auth,
1068
+ authOverride,
1069
+ env: process.env,
1070
+ tailscaleMode: tailscaleMode ?? cfg.gateway?.tailscale?.mode ?? "off"
1071
+ }));
1072
+ const resolvedAuthMode = resolvedAuth.mode;
1073
+ const tokenValue = resolvedAuth.token;
1074
+ const passwordValue = resolvedAuth.password;
1075
+ const hasToken = typeof tokenValue === "string" && tokenValue.trim().length > 0;
1076
+ const hasPassword = typeof passwordValue === "string" && passwordValue.trim().length > 0;
1077
+ const tokenConfigured = hasToken || hasConfiguredSecretInput(authOverride?.token ?? cfg.gateway?.auth?.token, cfg.secrets?.defaults);
1078
+ const passwordConfigured = hasPassword || hasConfiguredSecretInput(authOverride?.password ?? cfg.gateway?.auth?.password, cfg.secrets?.defaults);
1079
+ const hasSharedSecret = resolvedAuthMode === "token" && tokenConfigured || resolvedAuthMode === "password" && passwordConfigured;
1080
+ const authHints = [];
1081
+ if (miskeys.hasGatewayToken) authHints.push("Found \"gateway.token\" in config. Use \"gateway.auth.token\" instead.");
1082
+ if (miskeys.hasRemoteToken) authHints.push("\"gateway.remote.token\" is for remote CLI calls; it does not enable local gateway auth.");
1083
+ if (resolvedAuthMode === "password" && !passwordConfigured) {
1084
+ defaultRuntime.error([
1085
+ "Gateway auth is set to password, but no password is configured.",
1086
+ "Set gateway.auth.password (or FENGMING_GATEWAY_PASSWORD), or pass --password.",
1087
+ ...authHints
1088
+ ].filter(Boolean).join("\n"));
1089
+ defaultRuntime.exit(EXIT_CONFIG_ERROR);
1090
+ return;
1091
+ }
1092
+ if (resolvedAuthMode === "none") gatewayLog.warn("Gateway auth mode=none explicitly configured; all gateway connections are unauthenticated.");
1093
+ const healthHost = await resolveGatewayBindHost(bind, cfg.gateway?.customBindHost);
1094
+ if (shouldBlockGatewayBindWithoutExplicitAuth({
1095
+ bindHost: healthHost,
1096
+ hasSharedSecret,
1097
+ resolvedAuthMode
1098
+ })) {
1099
+ defaultRuntime.error([
1100
+ `Refusing to bind gateway to ${bind} without auth.`,
1101
+ ...isContainerEnvironment() ? ["Container environment detected — the gateway defaults to bind=auto (0.0.0.0) for port-forwarding compatibility.", "Set FENGMING_GATEWAY_TOKEN or FENGMING_GATEWAY_PASSWORD, or pass --token/--password to start with auth."] : ["Set gateway.auth.token/password (or FENGMING_GATEWAY_TOKEN/FENGMING_GATEWAY_PASSWORD) or pass --token/--password."],
1102
+ ...authHints
1103
+ ].filter(Boolean).join("\n"));
1104
+ defaultRuntime.exit(EXIT_CONFIG_ERROR);
1105
+ return;
1106
+ }
1107
+ const tailscaleOverride = tailscaleMode || opts.tailscaleResetOnExit ? {
1108
+ ...tailscaleMode ? { mode: tailscaleMode } : {},
1109
+ ...opts.tailscaleResetOnExit ? { resetOnExit: true } : {}
1110
+ } : void 0;
1111
+ gatewayLog.info("starting...");
1112
+ startupTrace.mark("cli.gateway-loop");
1113
+ let startupConfigSnapshotReadForNextStart = startupConfigSnapshotRead;
1114
+ const deferStartupSidecars = isTruthyEnvValue(process.env.FENGMING_SKIP_CHANNELS) || isTruthyEnvValue(process.env.FENGMING_SKIP_PROVIDERS);
1115
+ const startLoop = async () => await runGatewayLoop({
1116
+ runtime: defaultRuntime,
1117
+ lockPort: port,
1118
+ healthHost,
1119
+ start: async ({ startupStartedAt } = {}) => {
1120
+ const startupConfigSnapshotReadForThisStart = startupConfigSnapshotReadForNextStart;
1121
+ startupConfigSnapshotReadForNextStart = void 0;
1122
+ return await startGatewayServer(port, {
1123
+ bind,
1124
+ auth: authOverride,
1125
+ tailscale: tailscaleOverride,
1126
+ startupStartedAt,
1127
+ ...startupConfigSnapshotReadForThisStart ? { startupConfigSnapshotRead: startupConfigSnapshotReadForThisStart } : {},
1128
+ ...deferStartupSidecars ? { deferStartupSidecars: true } : {}
1129
+ });
1130
+ }
1131
+ });
1132
+ const { detectRespawnSupervisor } = await import("./supervisor-markers-Cr5u0TbM.js");
1133
+ const supervisor = detectRespawnSupervisor(process.env);
1134
+ try {
1135
+ await runGatewayLoopWithSupervisedLockRecovery({
1136
+ startLoop,
1137
+ supervisor,
1138
+ port,
1139
+ healthHost,
1140
+ log: gatewayLog
1141
+ });
1142
+ } catch (err) {
1143
+ if (isGatewayLockError(err)) {
1144
+ const errMessage = formatErrorMessage(err);
1145
+ defaultRuntime.error(`Gateway failed to start: ${errMessage}\nIf the gateway is supervised, stop it with: ${formatCliCommand("fengming gateway stop")}`);
1146
+ try {
1147
+ const { formatPortDiagnostics, inspectPortUsage } = await import("./ports-PuLVWkaK.js");
1148
+ const diagnostics = await inspectPortUsage(port);
1149
+ if (diagnostics.status === "busy") for (const line of formatPortDiagnostics(diagnostics)) defaultRuntime.error(line);
1150
+ } catch {}
1151
+ const { maybeExplainGatewayServiceStop } = await import("./shared-DrDvDZ1_.js");
1152
+ await maybeExplainGatewayServiceStop();
1153
+ defaultRuntime.exit(resolveGatewayLockErrorExitCode(err, supervisor));
1154
+ return;
1155
+ }
1156
+ await maybeWriteGatewayStartupFailureBundle(err);
1157
+ defaultRuntime.error(`Gateway failed to start: ${formatErrorMessage(err)}. Run ${formatCliCommand("fengming gateway status --deep")} for diagnostics.`);
1158
+ defaultRuntime.exit(1);
1159
+ }
1160
+ }
1161
+ //#endregion
1162
+ export { resolveGatewayRunOptions, runGatewayCommand };