fengming 0.3.8 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1263) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/abort-CCR8oZyg.js +277 -0
  3. package/dist/abort.runtime-eqx84NZa.js +2 -0
  4. package/dist/abort.runtime.js +1 -1
  5. package/dist/acp-spawn-BcDyvaXh.js +2 -0
  6. package/dist/acp-spawn-CCtSel-_.js +1286 -0
  7. package/dist/acp-stateful-target-driver-B3pCvuOV.js +89 -0
  8. package/dist/active-tool-schema-warnings-Cf-5q5WU.js +105 -0
  9. package/dist/active-tool-schema-warnings-Dzt3XE-y.js +2 -0
  10. package/dist/agent-1M2dVE2G.js +2 -0
  11. package/dist/agent-DLDIbUT4.js +1825 -0
  12. package/dist/agent-DZi6j3o6.js +3 -0
  13. package/dist/agent-command-ppfDBwET.js +1435 -0
  14. package/dist/agent-harness-runtime-C0bo62eY.d.ts +913 -0
  15. package/dist/agent-harness-runtime-RkTGiliR.js +207 -0
  16. package/dist/agent-runner-utils-B4YeVAO_.js +267 -0
  17. package/dist/agent-runner.runtime-T_3tlZN1.js +3784 -0
  18. package/dist/agent-runner.runtime.js +1 -1
  19. package/dist/agent-runtime-CloshyK-.d.ts +207 -0
  20. package/dist/agent-runtime-DZsmp1xr.js +199 -0
  21. package/dist/agent-tools-CET9usCz.js +2506 -0
  22. package/dist/agent-via-gateway-CZ0X0YkM.js +486 -0
  23. package/dist/agent-wait-dedupe-I81_F2tr.js +180 -0
  24. package/dist/agents/embedded-agent-runner/run/runtime-context-prompt.d.ts +1 -1
  25. package/dist/agents/embedded-agent-runner/tool-split.d.ts +1 -1
  26. package/dist/agents/model-catalog.runtime.d.ts +1 -1
  27. package/dist/api-BDB5xHYj.js +3 -0
  28. package/dist/api-BH7bfI5d.js +6 -0
  29. package/dist/api-BxJNXitd.js +2 -0
  30. package/dist/approval-client-helpers-CfQA9Jzh.d.ts +78 -0
  31. package/dist/approval-native-helpers-B2zyhxWc.d.ts +241 -0
  32. package/dist/approval-renderers-CMqSXyvm.d.ts +39 -0
  33. package/dist/assistant-Cu_Mzzgu.js +291 -0
  34. package/dist/attachment-normalize-Bb3v5iCC.js +213 -0
  35. package/dist/attempt-execution-BskbAq5I.js +584 -0
  36. package/dist/attempt-execution.runtime-BuT1wpNS.js +3 -0
  37. package/dist/attempt-execution.runtime.js +1 -1
  38. package/dist/attempt.prompt-helpers-ByKj-vQ7.js +543 -0
  39. package/dist/auto-reply/reply/commands-crestodian.d.ts +1 -1
  40. package/dist/binding-routing-EGRNvRC4.js +113 -0
  41. package/dist/binding-targets-B9vYS8n6.js +121 -0
  42. package/dist/bridge-server-DG9YtKQe.js +113 -0
  43. package/dist/browser-cli-B0Ou-Nbm.js +2 -0
  44. package/dist/browser-cli-GF25gL6M.js +230 -0
  45. package/dist/browser-cli-actions-input-CuER6RVe.js +522 -0
  46. package/dist/browser-cli-actions-observe-Dq-Zz_FA.js +81 -0
  47. package/dist/browser-cli-debug-7hvb49S1.js +137 -0
  48. package/dist/browser-cli-inspect-WU5KeWOK.js +117 -0
  49. package/dist/browser-cli-manage-B9D9BvSe.js +446 -0
  50. package/dist/browser-cli-resize-BUOusOPb.js +32 -0
  51. package/dist/browser-cli-shared-DmpSN-Qi.js +69 -0
  52. package/dist/browser-cli-state-D_YxTqRw.js +371 -0
  53. package/dist/browser-control-auth-Cqd1n9FA.js +2 -0
  54. package/dist/browser-profiles-9tQ05wYh.js +2 -0
  55. package/dist/browser-runtime-Bbzumoha.js +389 -0
  56. package/dist/build-CBXuT2K1.js +261 -0
  57. package/dist/build-info.json +3 -3
  58. package/dist/bundled/boot-md/handler.js +2 -2
  59. package/dist/bundled/session-memory/handler.js +1 -1
  60. package/dist/bundled-channel-config-schema-DpdKMATU.d.ts +3168 -0
  61. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  62. package/dist/capability-cli-CiVGX7ut.js +1809 -0
  63. package/dist/channel-BIVwHq7P.js +2309 -0
  64. package/dist/channel-CiA2FVdL.d.ts +427 -0
  65. package/dist/channel-core-Cj9JTqeu.js +5 -0
  66. package/dist/channel-core-DjVpcH1C.d.ts +6 -0
  67. package/dist/channel-entry-contract-Bs_54m1D.d.ts +114 -0
  68. package/dist/channel-inbound-CdUdeQRa.js +121 -0
  69. package/dist/channel-inbound-iGiqx6CS.d.ts +97 -0
  70. package/dist/channel-message-C3QPaDUk.js +12 -0
  71. package/dist/channel-message-CXDjxb2U.d.ts +9 -0
  72. package/dist/channel-outbound-ofvvmMSK.d.ts +325 -0
  73. package/dist/channel-pairing-DKscOV1K.d.ts +58 -0
  74. package/dist/channel.runtime-VW6PW_ez.js +697 -0
  75. package/dist/channel.runtime.js +1 -1
  76. package/dist/chat-CFkQepUQ.js +3 -0
  77. package/dist/chat-Czh_tXM0.js +2940 -0
  78. package/dist/chrome-B2cq8YyH.js +1517 -0
  79. package/dist/cli/run-main.js +5 -5
  80. package/dist/cli-compaction-Dxv4nt7R.js +363 -0
  81. package/dist/cli-runner-CimXSTVs.js +2 -0
  82. package/dist/cli-runner-orCzE1Sr.js +597 -0
  83. package/dist/cli-runner.runtime-CsW0dXJW.js +3 -0
  84. package/dist/cli-runner.runtime-DgPrc1do.js +4 -0
  85. package/dist/cli-runner.runtime.js +1 -1
  86. package/dist/cli-startup-metadata.json +10 -12
  87. package/dist/command-registry-C5ooX6PF.js +4 -0
  88. package/dist/command-registry-DMB-HKIk.js +9 -0
  89. package/dist/command-registry-core-B2w_XWvn.js +114 -0
  90. package/dist/command-status.runtime-Bdy3Dkar.js +90 -0
  91. package/dist/command-status.runtime.js +1 -1
  92. package/dist/commands-compact.runtime-Bk2jTQo6.js +10 -0
  93. package/dist/commands-compact.runtime.js +1 -1
  94. package/dist/commands-handlers.runtime-Csw1og0U.js +6327 -0
  95. package/dist/commands-handlers.runtime.js +1 -1
  96. package/dist/commands-mRqmLIVz.d.ts +117 -0
  97. package/dist/commands-status-Dgrj_ubK.js +3 -0
  98. package/dist/commands-status-s32HJOpD.js +16 -0
  99. package/dist/commands-status.runtime-Dgrj_ubK.js +3 -0
  100. package/dist/commands-status.runtime.js +1 -1
  101. package/dist/commands-subagents-control.runtime-C_hnOO9l.js +2 -0
  102. package/dist/commands-subagents-control.runtime.js +1 -1
  103. package/dist/commands-system-prompt-CQV742Cc.js +2 -0
  104. package/dist/commands-system-prompt-DTfsKwK1.js +161 -0
  105. package/dist/commands-types-MXHhrssO.d.ts +132 -0
  106. package/dist/commands.runtime-akiVK67l.js +175 -0
  107. package/dist/commands.runtime.js +1 -1
  108. package/dist/commitments/runtime.js +1 -1
  109. package/dist/compact-U6ZhvPtD.js +1165 -0
  110. package/dist/compact.runtime-36E5vKsC.js +12 -0
  111. package/dist/compact.runtime.js +1 -1
  112. package/dist/completion-cli-Bf4mEw2W.js +393 -0
  113. package/dist/config-BJJhHN9E.js +374 -0
  114. package/dist/config-mutations-swLu-j_p.js +161 -0
  115. package/dist/config-schema-Tjner6bM.d.ts +20 -0
  116. package/dist/context-engine-host-compat-6fkn_daV.js +280 -0
  117. package/dist/context-engine-host-compat-DtAZC1bS.js +2 -0
  118. package/dist/context-engine-lifecycle-R__Idxi1.js +627 -0
  119. package/dist/control-auth-DnkI94_D.js +114 -0
  120. package/dist/control-service-BBsamNjq.js +40 -0
  121. package/dist/control-service-BGpHj7RL.js +3 -0
  122. package/dist/control-ui/assets/activity-B2W-IeAT.js +124 -0
  123. package/dist/control-ui/assets/agents-mRUyNVCz.js +1030 -0
  124. package/dist/control-ui/assets/channels-8QHOqBnt.js +120 -0
  125. package/dist/control-ui/assets/cron-H3unP_mO.js +1016 -0
  126. package/dist/control-ui/assets/debug-CxLsQ9vH.js +97 -0
  127. package/dist/control-ui/assets/index-jtIYT0Eh.js +7214 -0
  128. package/dist/control-ui/assets/instances-B1JQeCRb.js +57 -0
  129. package/dist/control-ui/assets/nodes-RGOmq_1l.js +444 -0
  130. package/dist/control-ui/assets/sessions-C2O-Jgpg.js +425 -0
  131. package/dist/control-ui/assets/skills-jyJOYA4I.js +362 -0
  132. package/dist/control-ui/assets/workboard-uM_kK8cQ.js +402 -0
  133. package/dist/control-ui/index.html +1 -1
  134. package/dist/control-ui/sw.js +1 -1
  135. package/dist/conversation-runtime-DDekWU-U.js +31 -0
  136. package/dist/core-Bpk-qSJH.js +284 -0
  137. package/dist/core-Chrz4oRB.d.ts +223 -0
  138. package/dist/core-api-DSpUKNVW.js +2 -0
  139. package/dist/core-api-hLsW03Wo.js +5 -0
  140. package/dist/crestodian/crestodian.js +1 -1
  141. package/dist/crestodian/rescue-message.d.ts +1 -1
  142. package/dist/crestodian/rescue-message.js +1 -1
  143. package/dist/crestodian-C0x7JjF-.js +55 -0
  144. package/dist/delegate-BArFIZ4B.d.ts +30 -0
  145. package/dist/deliver-BnVp3VbL.d.ts +111 -0
  146. package/dist/delivery-queue-BFOASdf5.d.ts +161 -0
  147. package/dist/delivery-queue-runtime-BFfc8AEs.d.ts +9 -0
  148. package/dist/dialogue-No0NvYX7.js +37 -0
  149. package/dist/direct-dm-C-h88JJH.d.ts +79 -0
  150. package/dist/directive-handling.fast-lane-DTyDKhZb.js +70 -0
  151. package/dist/directive-handling.impl-DMReM6tu.js +2 -0
  152. package/dist/directive-handling.impl-DzPouhV-.js +823 -0
  153. package/dist/directive-handling.model-selection-BjwTBAZJ.js +122 -0
  154. package/dist/directive-handling.persist.runtime-D_O1okkR.js +274 -0
  155. package/dist/directive-handling.persist.runtime.js +1 -1
  156. package/dist/dispatch-Dtl-oRuN.js +2057 -0
  157. package/dist/dispatch-acp-transcript.runtime-M4y0Dq74.js +40 -0
  158. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  159. package/dist/dispatch-acp.runtime-B8uCIKZS.js +18 -0
  160. package/dist/dispatch-acp.runtime.js +1 -1
  161. package/dist/dispatcher-DslvaRcj.js +106 -0
  162. package/dist/doctor-config-flow-LU2C94af.js +1819 -0
  163. package/dist/doctor-core-checks-BqcjExIZ.js +666 -0
  164. package/dist/doctor-core-checks-Diuk8l0N.js +2 -0
  165. package/dist/doctor-core-checks.runtime-DbS-kMZN.js +278 -0
  166. package/dist/doctor-core-checks.runtime.js +1 -1
  167. package/dist/doctor-health-BdqHwfYE.js +65 -0
  168. package/dist/doctor-health-contributions-DLLTVnll.js +874 -0
  169. package/dist/doctor-lint-PZqkVMWf.js +95 -0
  170. package/dist/doctor-mRfJMSb5.js +6 -0
  171. package/dist/doctor-state-integrity-Cdlm-peH.js +1257 -0
  172. package/dist/draft-stream-controls-B7uLonbw.d.ts +159 -0
  173. package/dist/embedded-agent-CEpOPW6X.js +4 -0
  174. package/dist/embedded-agent-CNINO_M-.d.ts +5 -0
  175. package/dist/embedded-agent-DxwzoZkp.js +4074 -0
  176. package/dist/embedded-agent.runtime-DDbhA85-.js +4 -0
  177. package/dist/embedded-agent.runtime.js +1 -1
  178. package/dist/embedded-backend-ChaKCepC.js +1581 -0
  179. package/dist/embedded-gateway-stub.runtime-e_ZxGhcW.js +12 -0
  180. package/dist/embedded-gateway-stub.runtime.js +1 -1
  181. package/dist/entry.d.ts +1 -1
  182. package/dist/extensionAPI.d.ts +2 -2
  183. package/dist/extensionAPI.js +1 -1
  184. package/dist/extensions/active-memory/index.d.ts +1 -1
  185. package/dist/extensions/active-memory/index.js +1 -1
  186. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  187. package/dist/extensions/admin-http-rpc/index.js +1 -1
  188. package/dist/extensions/bonjour/index.d.ts +1 -1
  189. package/dist/extensions/browser/browser-bridge.js +1 -1
  190. package/dist/extensions/browser/browser-config.js +4 -4
  191. package/dist/extensions/browser/browser-control-auth.js +2 -2
  192. package/dist/extensions/browser/browser-doctor.js +2 -2
  193. package/dist/extensions/browser/browser-maintenance.js +1 -1
  194. package/dist/extensions/browser/browser-profiles.js +2 -2
  195. package/dist/extensions/browser/browser-runtime-api.js +12 -12
  196. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  197. package/dist/extensions/browser/cli-metadata.js +1 -1
  198. package/dist/extensions/browser/index.d.ts +1 -1
  199. package/dist/extensions/browser/index.js +1 -1
  200. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  201. package/dist/extensions/browser/plugin-registration.js +1 -1
  202. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  203. package/dist/extensions/browser/register.runtime.js +4 -4
  204. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  205. package/dist/extensions/browser/runtime-api.js +14 -14
  206. package/dist/extensions/browser/setup-api.d.ts +1 -1
  207. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  208. package/dist/extensions/canvas/index.d.ts +1 -1
  209. package/dist/extensions/canvas/index.js +1 -1
  210. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  211. package/dist/extensions/deepseek/api.d.ts +1 -1
  212. package/dist/extensions/deepseek/index.d.ts +1 -1
  213. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  214. package/dist/extensions/deepseek/stream.d.ts +1 -1
  215. package/dist/extensions/device-pair/api.d.ts +4 -4
  216. package/dist/extensions/device-pair/api.js +1 -1
  217. package/dist/extensions/device-pair/index.d.ts +1 -1
  218. package/dist/extensions/device-pair/notify.d.ts +1 -1
  219. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  220. package/dist/extensions/device-pair/qr-image.d.ts +1 -1
  221. package/dist/extensions/memory-core/api.d.ts +1 -1
  222. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  223. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  224. package/dist/extensions/memory-core/index.d.ts +1 -1
  225. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  226. package/dist/extensions/memory-core/runtime-api.d.ts +3 -3
  227. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  228. package/dist/extensions/skill-workshop/api.js +1 -1
  229. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  230. package/dist/extensions/skill-workshop/index.js +2 -2
  231. package/dist/extensions/tavily/index.d.ts +1 -1
  232. package/dist/extensions/tavily/web-search-contract-api.d.ts +1 -1
  233. package/dist/extensions/tavily/web-search-provider.d.ts +1 -1
  234. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  235. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  236. package/dist/extensions/webhooks/api.d.ts +2 -2
  237. package/dist/extensions/webhooks/api.js +1 -1
  238. package/dist/extensions/webhooks/index.d.ts +1 -1
  239. package/dist/extensions/webhooks/index.js +1 -1
  240. package/dist/extensions/webhooks/runtime-api.d.ts +1 -1
  241. package/dist/extensions/workboard/api.d.ts +2 -2
  242. package/dist/extensions/workboard/index.d.ts +1 -1
  243. package/dist/extensions/workboard/index.js +1 -1
  244. package/dist/extensions/workboard/runtime-api.d.ts +1 -1
  245. package/dist/fengming-runtime-CtRd5677.d.ts +153 -0
  246. package/dist/fengming-tools-DBLsJfsf.js +12221 -0
  247. package/dist/gateway/protocol/index.d.ts +1 -1
  248. package/dist/gateway-cli-BgDV2HF9.js +443 -0
  249. package/dist/gateway-method-runtime-d9oN_XO9.js +21 -0
  250. package/dist/get-reply-CEMtvaTJ.js +5198 -0
  251. package/dist/get-reply-from-config.runtime-CE8zmX7o.js +2 -0
  252. package/dist/get-reply-from-config.runtime.js +1 -1
  253. package/dist/heartbeat-runner-H8SmaKmJ.js +5 -0
  254. package/dist/heartbeat-runner.runtime-6hUaxEbl.js +3 -0
  255. package/dist/heartbeat-runner.runtime.js +1 -1
  256. package/dist/hooks-DkEvkwzS.js +536 -0
  257. package/dist/host-compat-DeAq3dnI.d.ts +21 -0
  258. package/dist/http-registry-BDoApjTY.d.ts +23 -0
  259. package/dist/inbound-reply-dispatch-CIYP2OPo.d.ts +156 -0
  260. package/dist/inbound-reply-dispatch-geHu6oUK.js +147 -0
  261. package/dist/inbound-reply-dispatch-vwW5Hl-_.js +2 -0
  262. package/dist/index-DhOQs6M_.d.ts +1497 -0
  263. package/dist/index.js +1 -1
  264. package/dist/init-DpE_6dG4.js +59 -0
  265. package/dist/interactive-Cb_1f91G.d.ts +26 -0
  266. package/dist/isolated-agent-B_upYOOM.js +2 -0
  267. package/dist/isolated-agent-KH9uwWhw.js +1097 -0
  268. package/dist/kernel-BHnBXnm2.d.ts +241 -0
  269. package/dist/lifecycle-BmZwopzF.js +570 -0
  270. package/dist/list.probe-5kzWm9Jk.js +451 -0
  271. package/dist/list.probe-9zBcGGQ4.js +2 -0
  272. package/dist/list.status-command-DY2ifqp1.js +815 -0
  273. package/dist/llm-slug-generator-Bmx0I84M.js +78 -0
  274. package/dist/llm-slug-generator.js +1 -1
  275. package/dist/loader-BVz75gSb.d.ts +142 -0
  276. package/dist/local-dispatch.runtime-CX3IOY1E.js +10 -0
  277. package/dist/local-dispatch.runtime.js +1 -1
  278. package/dist/manager-BXGg8bfG.d.ts +409 -0
  279. package/dist/mcp-http-B1lnh67s.js +2 -0
  280. package/dist/mcp-http-CamghE-W.js +583 -0
  281. package/dist/media-runtime-DpykroJR.d.ts +261 -0
  282. package/dist/memory-core-host-engine-embeddings-N2dX5P40.d.ts +324 -0
  283. package/dist/memory-core-host-engine-storage-WQfkQMer.d.ts +54 -0
  284. package/dist/message-handler-Ca_pqGVS.js +1806 -0
  285. package/dist/model-catalog-BBMLIjhq.d.ts +88 -0
  286. package/dist/model-selection-Cq82FXLy.js +352 -0
  287. package/dist/models-cli-Dm_393dw.js +257 -0
  288. package/dist/monitor-d0eyE2k0.js +60 -0
  289. package/dist/monitor.account-vLQ3bKHu.js +5382 -0
  290. package/dist/nodes-Bunvrb33.js +1483 -0
  291. package/dist/nodes-edNlxb2I.js +3 -0
  292. package/dist/nodes-pending-DEIwVh9v.js +211 -0
  293. package/dist/openai-compat-errors-CvWEoG98.js +136 -0
  294. package/dist/openai-http-Bskdv4Tv.js +836 -0
  295. package/dist/openresponses-http-DxdgCxFU.js +1175 -0
  296. package/dist/operations-Z85LFqsT.js +805 -0
  297. package/dist/outbound.types-DVkbsxo8.d.ts +291 -0
  298. package/dist/plugin-enabled-fvhTpvYS.js +232 -0
  299. package/dist/plugin-entry-CunlVUw6.d.ts +47 -0
  300. package/dist/plugin-registration-9ovnK_Tk.js +97 -0
  301. package/dist/plugin-runtime-DH2ZM9P5.d.ts +117 -0
  302. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  303. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  304. package/dist/plugin-sdk/acp-runtime.js +1 -1
  305. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  306. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  307. package/dist/plugin-sdk/agent-harness.js +6 -6
  308. package/dist/plugin-sdk/agent-runtime.js +2 -2
  309. package/dist/plugin-sdk/bundled-channel-config-schema-Dfn3b8sF.d.ts +3169 -0
  310. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  311. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  312. package/dist/plugin-sdk/channel-core.js +2 -2
  313. package/dist/plugin-sdk/channel-envelope.js +1 -1
  314. package/dist/plugin-sdk/channel-inbound-roots.js +1 -1
  315. package/dist/plugin-sdk/channel-inbound.js +2 -2
  316. package/dist/plugin-sdk/channel-location.js +1 -1
  317. package/dist/plugin-sdk/channel-message-runtime.js +3 -3
  318. package/dist/plugin-sdk/channel-message.js +2 -2
  319. package/dist/plugin-sdk/channel-runtime.js +0 -1
  320. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  321. package/dist/plugin-sdk/compat.js +1 -1
  322. package/dist/plugin-sdk/config-schema.d.ts +4 -4
  323. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  324. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  325. package/dist/plugin-sdk/core.js +2 -2
  326. package/dist/plugin-sdk/discord.d.ts +1 -1
  327. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  328. package/dist/plugin-sdk/health.js +1 -1
  329. package/dist/plugin-sdk/hook-runtime.js +0 -1
  330. package/dist/plugin-sdk/inbound-reply-dispatch.js +2 -2
  331. package/dist/plugin-sdk/index.js +1 -1
  332. package/dist/plugin-sdk/infra-runtime.js +3 -1
  333. package/dist/plugin-sdk/provider-auth-api-key.js +0 -1
  334. package/dist/plugin-sdk/provider-stream-family.js +0 -1
  335. package/dist/plugin-sdk/provider-usage.js +649 -1
  336. package/dist/plugin-sdk/reply-runtime.js +4 -4
  337. package/dist/plugin-sdk/video-generation.js +206 -1
  338. package/dist/plugin-service-BdZxoKBZ.js +1249 -0
  339. package/dist/plugin-service-quTl5hT0.d.ts +24 -0
  340. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  341. package/dist/plugins/loader.d.ts +1 -1
  342. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  343. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  344. package/dist/plugins/runtime/index.d.ts +1 -1
  345. package/dist/plugins/runtime/index.js +4 -4
  346. package/dist/plugins/tools.d.ts +1 -1
  347. package/dist/prepare.runtime-DFvkUqBZ.js +798 -0
  348. package/dist/prepare.runtime.js +1 -1
  349. package/dist/preview-warnings-CGzc8ccG.js +618 -0
  350. package/dist/program-D19g2jaa.js +131 -0
  351. package/dist/provider-api-key-auth-B8GgTfo8.d.ts +27 -0
  352. package/dist/provider-auth-result-Diw-woMA.d.ts +21 -0
  353. package/dist/provider-catalog-shared-hMvzzDgL.d.ts +62 -0
  354. package/dist/provider-dispatcher-DCTc4lG_.js +22 -0
  355. package/dist/provider-dispatcher.runtime.js +1 -1
  356. package/dist/provider-model-shared-BUCh3uCL.d.ts +143 -0
  357. package/dist/provider-registry-BIokPlxa.d.ts +8 -0
  358. package/dist/provider-registry-CyUOXHG-.d.ts +8 -0
  359. package/dist/provider-registry-i--H79Ao.d.ts +29 -0
  360. package/dist/provider-self-hosted-setup-BF8UR8wg.d.ts +74 -0
  361. package/dist/provider-stream-NF0XJnar.d.ts +139 -0
  362. package/dist/provider-stream-shared-DLwDaYed.d.ts +132 -0
  363. package/dist/provider-web-search-contract-fields-D61Vl5Kl.d.ts +25 -0
  364. package/dist/pw-ai-DYR-D7xR.js +3064 -0
  365. package/dist/register.agent-DwW0mQPk.js +152 -0
  366. package/dist/register.crestodian-BhIukKDA.js +24 -0
  367. package/dist/register.maintenance-DWHlvztJ.js +85 -0
  368. package/dist/register.subclis-Bsvdh8RI.js +3 -0
  369. package/dist/register.subclis-DVk0HU4k.js +31 -0
  370. package/dist/register.subclis-core-BK7nVvl6.js +278 -0
  371. package/dist/registry-hscEPAcC.d.ts +8 -0
  372. package/dist/registry-types-Ce-n1tuw.d.ts +392 -0
  373. package/dist/repair-sequencing-0-qGNSUO.js +652 -0
  374. package/dist/reply-payload-mCw4ZND6.d.ts +200 -0
  375. package/dist/reply-turn-admission-DMWNadoS.js +2056 -0
  376. package/dist/reply.runtime-CE8zmX7o.js +2 -0
  377. package/dist/reply.runtime.js +1 -1
  378. package/dist/result-fallback-classifier-BZmv2ACy.js +98 -0
  379. package/dist/route-qQ-jYpFa.js +475 -0
  380. package/dist/routes-dTCmw98g.js +2 -0
  381. package/dist/routes-r8DRKa83.js +3701 -0
  382. package/dist/run-BgH7EPGH.js +1162 -0
  383. package/dist/run-command-DCsM-BVh.js +23 -0
  384. package/dist/run-command-I2ib4dwS.js +2 -0
  385. package/dist/run-context-CWaKUKKJ.js +66 -0
  386. package/dist/run-embedded.runtime-CBnDBWN0.js +4 -0
  387. package/dist/run-embedded.runtime.js +1 -1
  388. package/dist/run-execution-cli.runtime-DlYXI-lw.js +4 -0
  389. package/dist/run-execution-cli.runtime.js +1 -1
  390. package/dist/run-executor.runtime-DwepGrmB.js +330 -0
  391. package/dist/run-executor.runtime.js +1 -1
  392. package/dist/run-subagent-registry.runtime-CeVpoIhj.js +2 -0
  393. package/dist/run-subagent-registry.runtime.js +1 -1
  394. package/dist/runtime-D2ee-rNh.js +436 -0
  395. package/dist/runtime-api-B99ZlkNt.d.ts +5 -0
  396. package/dist/runtime-api-Cta2L_Yo.js +12 -0
  397. package/dist/runtime-channel-LKOkML3M.js +2 -0
  398. package/dist/runtime-channel-UtWvrTZ5.js +148 -0
  399. package/dist/runtime-embedded-agent.runtime-9O2Idzyb.js +2 -0
  400. package/dist/runtime-embedded-agent.runtime.js +1 -1
  401. package/dist/runtime-forwarders-DjI8RFL5.d.ts +39 -0
  402. package/dist/sdk-setup-tools-B-X04pa6.js +8 -0
  403. package/dist/selection-B02h8Old.js +3 -0
  404. package/dist/selection-DEPvzrW2.js +18365 -0
  405. package/dist/server-CMYi8gDo.js +24 -0
  406. package/dist/server-Cx07rsiY.js +72 -0
  407. package/dist/server-close.runtime.js +1 -1
  408. package/dist/server-context-BIemGRt4.js +2 -0
  409. package/dist/server-context-CB_an9iy.js +955 -0
  410. package/dist/server-cron-BeyuBUjb.js +3173 -0
  411. package/dist/server-cron-CV7KkVeB.js +2 -0
  412. package/dist/server-methods-C7EnpOhB.js +497 -0
  413. package/dist/server-node-events-DMMzZciN.js +597 -0
  414. package/dist/server-plugin-bootstrap-O6MzvzL8.js +71 -0
  415. package/dist/server-plugins-Dwnaz9kX.js +435 -0
  416. package/dist/server-reload-handlers-C-6TyPvI.js +719 -0
  417. package/dist/server-restart-sentinel-Dc35eYgk.js +700 -0
  418. package/dist/server-runtime-services-DCs-gqh_.js +3 -0
  419. package/dist/server-runtime-services-DF2fzzVd.js +147 -0
  420. package/dist/server-startup-plugins-t-YeYibm.js +127 -0
  421. package/dist/server-startup-post-attach-CiEki-DC.js +793 -0
  422. package/dist/server-ws-runtime-uaUpI-e8.js +374 -0
  423. package/dist/server.impl-MoHjSMr5.js +2622 -0
  424. package/dist/session-kill-http-CYCiQpt2.js +121 -0
  425. package/dist/session-reset-service-BYbADY57.js +651 -0
  426. package/dist/session-status.runtime-8NASbeO4.js +2 -0
  427. package/dist/session-status.runtime.js +1 -1
  428. package/dist/session-subagent-reactivation.runtime-DGeNY2Rb.js +2 -0
  429. package/dist/session-subagent-reactivation.runtime.js +1 -1
  430. package/dist/session-tab-registry-C2eElZrt.js +551 -0
  431. package/dist/sessions-DXAdVXIx.js +1917 -0
  432. package/dist/sessions-history-http-BwK7b8OH.js +432 -0
  433. package/dist/sessions-patch-BYC5gvY1.js +401 -0
  434. package/dist/sessions-resolve-C3ORcdmo.js +180 -0
  435. package/dist/sessions.runtime-BijldeSY.js +2 -0
  436. package/dist/sessions.runtime.js +1 -1
  437. package/dist/snapshot-urls-C5CfP3Co.js +317 -0
  438. package/dist/speech-core-wWkTZPpQ.d.ts +49 -0
  439. package/dist/standalone-CHrieUsw.js +42 -0
  440. package/dist/startup-context-CZfmG8-g.js +314 -0
  441. package/dist/status-subagents.runtime-D2XMebiS.js +32 -0
  442. package/dist/status-subagents.runtime.js +1 -1
  443. package/dist/status-text-JR7IPyzZ.js +301 -0
  444. package/dist/stream-BJgTkLEI.d.ts +5 -0
  445. package/dist/subagent-announce-B9cfs_KZ.js +353 -0
  446. package/dist/subagent-announce-delivery-CtmEvLTS.js +1369 -0
  447. package/dist/subagent-control-DVqLHi9O.js +492 -0
  448. package/dist/subagent-hooks-D251uSvy.js +230 -0
  449. package/dist/subagent-hooks-api-DvdMKxsC.js +23 -0
  450. package/dist/subagent-hooks-uLORYChc.js +2 -0
  451. package/dist/subagent-registry-BW2l_oYu.js +3 -0
  452. package/dist/subagent-registry-BxEMHuiN.js +2627 -0
  453. package/dist/subagent-registry.runtime.d.ts +1 -1
  454. package/dist/subagent-registry.runtime.js +1 -1
  455. package/dist/subagent-session-cleanup-BC5wV2qQ.js +390 -0
  456. package/dist/system-fvgHsr2x.js +111 -0
  457. package/dist/talk-DU0Sod_K.js +2454 -0
  458. package/dist/target-id-BR2xJIkd.js +107 -0
  459. package/dist/task-registry-control.runtime.js +1 -1
  460. package/dist/thread-bindings-8XNu5U2p.js +228 -0
  461. package/dist/tool-Boeg0N5g.js +143 -0
  462. package/dist/tool-dispatch-BhLLaL2g.js +155 -0
  463. package/dist/tool-resolution-CzsLs-87.js +153 -0
  464. package/dist/tool-split-Bedy42Ms.d.ts +19 -0
  465. package/dist/tools-B6egHpE3.d.ts +38 -0
  466. package/dist/tools-effective-NXscxK8n.js +442 -0
  467. package/dist/tools-effective-inventory-NsGMUVo-.js +379 -0
  468. package/dist/tools-invoke-_sSu96Kq.js +51 -0
  469. package/dist/tools-invoke-http-BDhlRl-G.js +68 -0
  470. package/dist/tools-invoke-shared-BH-T9Bcg.js +200 -0
  471. package/dist/tts-runtime-C1wu3o15.d.ts +230 -0
  472. package/dist/tui-C733Qov0.js +2 -0
  473. package/dist/tui-DqbscVN5.js +3 -0
  474. package/dist/tui-backend-_Pn3Byj-.js +257 -0
  475. package/dist/tui-cli-CAiC39zd.js +40 -0
  476. package/dist/tui-ink-run-ChXEGj1h.js +7414 -0
  477. package/dist/tui-ink-run-D4mSfLHj.js +2 -0
  478. package/dist/types-BQw1qXGl.d.ts +7034 -0
  479. package/dist/types-BzMoU6-C.d.ts +111 -0
  480. package/dist/types-DltHmoCX.d.ts +393 -0
  481. package/dist/types.public-C_bVIMBl.d.ts +70 -0
  482. package/dist/web-fetch/runtime.d.ts +1 -1
  483. package/dist/webhook-targets-DW2jhddP.d.ts +99 -0
  484. package/dist/zod-schema.core-Cuz0lz6m.d.ts +166 -0
  485. package/npm-shrinkwrap.json +12861 -11889
  486. package/package.json +2 -5
  487. package/skills/batch/SKILL.md +118 -0
  488. package/skills/code-review/SKILL.md +107 -0
  489. package/skills/debug/SKILL.md +83 -0
  490. package/skills/loop/SKILL.md +118 -0
  491. package/skills/run/SKILL.md +79 -0
  492. package/skills/run-skill-generator/SKILL.md +179 -0
  493. package/skills/verify/SKILL.md +103 -0
  494. package/dist/abort-DGskei2p.js +0 -277
  495. package/dist/abort.runtime-Buq9IZxn.js +0 -2
  496. package/dist/acp-spawn-DC6IyYaB.js +0 -1286
  497. package/dist/acp-spawn-Diqb3nel.js +0 -2
  498. package/dist/acp-stateful-target-driver-Clhe_L8v.js +0 -89
  499. package/dist/active-tool-schema-warnings-BRhKkyvt.js +0 -2
  500. package/dist/active-tool-schema-warnings-C6N0-ce6.js +0 -105
  501. package/dist/agent-C5lhsEZJ.js +0 -2
  502. package/dist/agent-WEb757bl.js +0 -1825
  503. package/dist/agent-command-iLD_nsVY.js +0 -1435
  504. package/dist/agent-core-BeDN8Ns5.d.ts +0 -13
  505. package/dist/agent-harness-runtime-C89_Q-bW.d.ts +0 -913
  506. package/dist/agent-harness-runtime-Dfn5rik2.js +0 -207
  507. package/dist/agent-runner-utils-DNiuuo43.js +0 -267
  508. package/dist/agent-runner.runtime-CFF_qJ5V.js +0 -3784
  509. package/dist/agent-runtime-BkMtWXxn.js +0 -199
  510. package/dist/agent-runtime-HufMO_YR.d.ts +0 -207
  511. package/dist/agent-tools-HmaDv4ot.js +0 -2506
  512. package/dist/agent-via-gateway-CZQG8RYL.js +0 -486
  513. package/dist/agent-wait-dedupe-C3xQk2Ww.js +0 -180
  514. package/dist/agent-z1cs3c7n.js +0 -3
  515. package/dist/api-B4IMKjSe.js +0 -3
  516. package/dist/api-BwSbBWI8.js +0 -3
  517. package/dist/api-CE9In9m4.js +0 -5
  518. package/dist/api-ClPvYNGa.js +0 -32
  519. package/dist/api-CntBCaZf.js +0 -3
  520. package/dist/api-DBZBwTsn.js +0 -6
  521. package/dist/api-OCPwGOvK.js +0 -2
  522. package/dist/api-yYhEo7gK.js +0 -4
  523. package/dist/approval-client-helpers-CfdQ3-vv.d.ts +0 -78
  524. package/dist/approval-native-helpers-DSHPksK4.d.ts +0 -241
  525. package/dist/approval-renderers-BfEfwk44.d.ts +0 -39
  526. package/dist/assistant-v5fdOYu7.js +0 -291
  527. package/dist/attachment-normalize-BHAbLiL2.js +0 -213
  528. package/dist/attempt-execution-5w9WYbaJ.js +0 -584
  529. package/dist/attempt-execution.runtime-DnhOWGzr.js +0 -3
  530. package/dist/attempt.prompt-helpers-C4M4erF7.js +0 -543
  531. package/dist/binding-routing-Dpes-QF1.js +0 -113
  532. package/dist/binding-targets-B6H5Pd-A.js +0 -121
  533. package/dist/bridge-server-BCpxCRm_.js +0 -113
  534. package/dist/browser-cli-DMhXHopl.js +0 -230
  535. package/dist/browser-cli-Dy_VugK0.js +0 -2
  536. package/dist/browser-cli-actions-input-WMP7_lm6.js +0 -522
  537. package/dist/browser-cli-actions-observe-DQWAWhwU.js +0 -81
  538. package/dist/browser-cli-debug-CaT2ZKAx.js +0 -137
  539. package/dist/browser-cli-inspect-DU-LUXq1.js +0 -117
  540. package/dist/browser-cli-manage-DAuogqIh.js +0 -446
  541. package/dist/browser-cli-resize-Cz5uO_aR.js +0 -32
  542. package/dist/browser-cli-shared-CjPZcG3j.js +0 -69
  543. package/dist/browser-cli-state-CC3l77-K.js +0 -371
  544. package/dist/browser-control-auth-ELccIUZy.js +0 -2
  545. package/dist/browser-profiles-Cuy4ia6_.js +0 -2
  546. package/dist/browser-runtime-De-iUfME.js +0 -389
  547. package/dist/build-DEF8Per9.js +0 -261
  548. package/dist/bundled-channel-config-schema-Bte--ZlY.d.ts +0 -3168
  549. package/dist/capability-cli-Bydel4E7.js +0 -1809
  550. package/dist/channel-6SGL4R5P.js +0 -2309
  551. package/dist/channel-D3Q3b8J-.d.ts +0 -427
  552. package/dist/channel-core-Bj71kAB5.d.ts +0 -6
  553. package/dist/channel-core-DMvyWnHg.js +0 -5
  554. package/dist/channel-entry-contract-zYxRmEdf.d.ts +0 -114
  555. package/dist/channel-inbound-DVJzBcJ8.d.ts +0 -97
  556. package/dist/channel-inbound-DlCa7eJe.js +0 -121
  557. package/dist/channel-message-CyPGMMFB.js +0 -12
  558. package/dist/channel-message-Czl4cdoA.d.ts +0 -9
  559. package/dist/channel-outbound-BNbhmruA.d.ts +0 -325
  560. package/dist/channel-pairing-BiS-tSvl.d.ts +0 -58
  561. package/dist/channel-runtime-D8hntg7H.js +0 -7
  562. package/dist/channel.runtime-DxErReJR.js +0 -697
  563. package/dist/chat-BLA8ORQI.js +0 -3
  564. package/dist/chat-DWRXkuvU.js +0 -2940
  565. package/dist/chrome-DPwFYi-g.js +0 -1517
  566. package/dist/cli-compaction-YZpssARf.js +0 -363
  567. package/dist/cli-runner-D2OAqxu3.js +0 -597
  568. package/dist/cli-runner-DO4SORQf.js +0 -2
  569. package/dist/cli-runner.runtime-CNSIpbeT.js +0 -4
  570. package/dist/cli-runner.runtime-DAOYvpVQ.js +0 -3
  571. package/dist/command-registry-DpD0fb8D.js +0 -4
  572. package/dist/command-registry-core-Cl3tLG8G.js +0 -114
  573. package/dist/command-registry-nbP7c8RT.js +0 -9
  574. package/dist/command-status.runtime-BBuXTkq0.js +0 -90
  575. package/dist/commands-CR8MVvlD.d.ts +0 -117
  576. package/dist/commands-compact.runtime-BoafIjjg.js +0 -10
  577. package/dist/commands-handlers.runtime-D9jViG_x.js +0 -6327
  578. package/dist/commands-status-BqqJ7PVq.js +0 -16
  579. package/dist/commands-status-CMd41Vxf.js +0 -3
  580. package/dist/commands-status.runtime-CMd41Vxf.js +0 -3
  581. package/dist/commands-subagents-control.runtime-CU4I3A_n.js +0 -2
  582. package/dist/commands-system-prompt-CTtu1D3-.js +0 -2
  583. package/dist/commands-system-prompt-xswhORdM.js +0 -161
  584. package/dist/commands-types-B67CsqXf.d.ts +0 -132
  585. package/dist/commands.runtime-BUFhkrjQ.js +0 -175
  586. package/dist/compact-Dz_WvRkQ.js +0 -1165
  587. package/dist/compact.runtime-n-AKErni.js +0 -12
  588. package/dist/completion-cli-DJYs_L4_.js +0 -393
  589. package/dist/config-CFMbHJb0.js +0 -374
  590. package/dist/config-mutations-DCAloTKR.js +0 -161
  591. package/dist/config-schema-Drw1zrnG.d.ts +0 -20
  592. package/dist/context-engine-host-compat-4mNm1HCE.js +0 -2
  593. package/dist/context-engine-host-compat-BzJ7fUIn.js +0 -280
  594. package/dist/context-engine-lifecycle-V4PNQp6k.js +0 -627
  595. package/dist/control-auth-DG_cw-aN.js +0 -114
  596. package/dist/control-service-CurYipgK.js +0 -3
  597. package/dist/control-service-VyncoV7j.js +0 -40
  598. package/dist/control-ui/assets/activity-D5Plhlo-.js +0 -124
  599. package/dist/control-ui/assets/agents-Chcdfe1E.js +0 -1030
  600. package/dist/control-ui/assets/channels-BEtB4H37.js +0 -120
  601. package/dist/control-ui/assets/cron-CZyPkxSU.js +0 -1016
  602. package/dist/control-ui/assets/debug-DvM8iG47.js +0 -97
  603. package/dist/control-ui/assets/index-Rmpgh0f1.js +0 -7214
  604. package/dist/control-ui/assets/instances-yTC_uu60.js +0 -57
  605. package/dist/control-ui/assets/nodes-vbAxVHIH.js +0 -444
  606. package/dist/control-ui/assets/sessions-DOviHme5.js +0 -425
  607. package/dist/control-ui/assets/skills-Bfp5HEGW.js +0 -362
  608. package/dist/control-ui/assets/workboard-5sU2kHsV.js +0 -402
  609. package/dist/conversation-runtime-DgaABwHh.js +0 -31
  610. package/dist/core-BeBXdneV.js +0 -284
  611. package/dist/core-Chqb7X6l.d.ts +0 -223
  612. package/dist/core-api-BlK0FgBM.js +0 -2
  613. package/dist/core-api-pAvYk716.js +0 -5
  614. package/dist/crestodian-FeGTBqO1.js +0 -55
  615. package/dist/delegate-BjIjSU_E.d.ts +0 -30
  616. package/dist/deliver-CvtWN4Ey.d.ts +0 -111
  617. package/dist/delivery-queue-CQ-cj3KG.d.ts +0 -161
  618. package/dist/delivery-queue-runtime-ut7MG04m.d.ts +0 -9
  619. package/dist/detect-BjXPyrwn.js +0 -115
  620. package/dist/detect-C1xeIemQ.d.ts +0 -16
  621. package/dist/dialogue-BowVYhEC.js +0 -37
  622. package/dist/direct-dm-DoZZHpA0.d.ts +0 -79
  623. package/dist/directive-handling.fast-lane-hnmQ_CvD.js +0 -70
  624. package/dist/directive-handling.impl-Cai-CFS1.js +0 -2
  625. package/dist/directive-handling.impl-DY84qIfU.js +0 -823
  626. package/dist/directive-handling.model-selection-DASssLFQ.js +0 -122
  627. package/dist/directive-handling.persist.runtime-BY7tJUs2.js +0 -274
  628. package/dist/dispatch-D5iG5A8j.js +0 -2057
  629. package/dist/dispatch-acp-transcript.runtime-D3r16hbD.js +0 -40
  630. package/dist/dispatch-acp.runtime-CAIau5qX.js +0 -18
  631. package/dist/dispatcher-7-d2gw3J.js +0 -106
  632. package/dist/doctor-DD5YEMmf.js +0 -6
  633. package/dist/doctor-config-flow-CdlLHJmX.js +0 -1819
  634. package/dist/doctor-core-checks-6MP99TQG.js +0 -666
  635. package/dist/doctor-core-checks-Dm_o576z.js +0 -2
  636. package/dist/doctor-core-checks.runtime-B2qbKATd.js +0 -278
  637. package/dist/doctor-health-BKrhOv1v.js +0 -65
  638. package/dist/doctor-health-contributions-bIBLmw69.js +0 -874
  639. package/dist/doctor-lint-aOLOWli4.js +0 -95
  640. package/dist/doctor-state-integrity-23NQNNuo.js +0 -1257
  641. package/dist/draft-stream-controls-Bk1GVJ1l.d.ts +0 -159
  642. package/dist/embedded-agent-BeK8FhZr.d.ts +0 -5
  643. package/dist/embedded-agent-CNp_y7jW.js +0 -4074
  644. package/dist/embedded-agent-NEmNlXDR.js +0 -4
  645. package/dist/embedded-agent.runtime-hEby8P2s.js +0 -4
  646. package/dist/embedded-backend-BdbgfpBP.js +0 -1581
  647. package/dist/embedded-gateway-stub.runtime-ySZUA3Gy.js +0 -12
  648. package/dist/extensions/alibaba/fengming.plugin.json +0 -47
  649. package/dist/extensions/alibaba/index.d.ts +0 -12
  650. package/dist/extensions/alibaba/index.js +0 -13
  651. package/dist/extensions/alibaba/package.json +0 -15
  652. package/dist/extensions/alibaba/video-generation-provider.d.ts +0 -6
  653. package/dist/extensions/alibaba/video-generation-provider.js +0 -2
  654. package/dist/extensions/baichuan/fengming.plugin.json +0 -69
  655. package/dist/extensions/baichuan/index.d.ts +0 -11
  656. package/dist/extensions/baichuan/index.js +0 -45
  657. package/dist/extensions/baichuan/models.d.ts +0 -7
  658. package/dist/extensions/baichuan/models.js +0 -2
  659. package/dist/extensions/baichuan/onboard.d.ts +0 -5
  660. package/dist/extensions/baichuan/onboard.js +0 -2
  661. package/dist/extensions/baichuan/package.json +0 -15
  662. package/dist/extensions/baichuan/provider-catalog.d.ts +0 -2
  663. package/dist/extensions/baichuan/provider-catalog.js +0 -2
  664. package/dist/extensions/baichuan/provider-discovery.d.ts +0 -2
  665. package/dist/extensions/baichuan/provider-discovery.js +0 -5
  666. package/dist/extensions/byteplus/api.d.ts +0 -3
  667. package/dist/extensions/byteplus/api.js +0 -3
  668. package/dist/extensions/byteplus/fengming.plugin.json +0 -196
  669. package/dist/extensions/byteplus/index.d.ts +0 -12
  670. package/dist/extensions/byteplus/index.js +0 -85
  671. package/dist/extensions/byteplus/models.d.ts +0 -2
  672. package/dist/extensions/byteplus/models.js +0 -2
  673. package/dist/extensions/byteplus/package.json +0 -15
  674. package/dist/extensions/byteplus/provider-catalog.d.ts +0 -2
  675. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  676. package/dist/extensions/byteplus/provider-discovery.d.ts +0 -5
  677. package/dist/extensions/byteplus/provider-discovery.js +0 -23
  678. package/dist/extensions/byteplus/video-generation-provider.d.ts +0 -6
  679. package/dist/extensions/byteplus/video-generation-provider.js +0 -2
  680. package/dist/extensions/longcat/fengming.plugin.json +0 -84
  681. package/dist/extensions/longcat/index.d.ts +0 -11
  682. package/dist/extensions/longcat/index.js +0 -45
  683. package/dist/extensions/longcat/models.d.ts +0 -7
  684. package/dist/extensions/longcat/models.js +0 -2
  685. package/dist/extensions/longcat/onboard.d.ts +0 -5
  686. package/dist/extensions/longcat/onboard.js +0 -2
  687. package/dist/extensions/longcat/package.json +0 -15
  688. package/dist/extensions/longcat/provider-catalog.d.ts +0 -2
  689. package/dist/extensions/longcat/provider-catalog.js +0 -2
  690. package/dist/extensions/longcat/provider-discovery.d.ts +0 -2
  691. package/dist/extensions/longcat/provider-discovery.js +0 -5
  692. package/dist/extensions/minimax/api.d.ts +0 -5
  693. package/dist/extensions/minimax/api.js +0 -6
  694. package/dist/extensions/minimax/fengming.plugin.json +0 -206
  695. package/dist/extensions/minimax/image-generation-provider.d.ts +0 -6
  696. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  697. package/dist/extensions/minimax/index.d.ts +0 -12
  698. package/dist/extensions/minimax/index.js +0 -29
  699. package/dist/extensions/minimax/media-understanding-provider.d.ts +0 -6
  700. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  701. package/dist/extensions/minimax/model-definitions.d.ts +0 -2
  702. package/dist/extensions/minimax/model-definitions.js +0 -2
  703. package/dist/extensions/minimax/music-generation-provider.d.ts +0 -6
  704. package/dist/extensions/minimax/music-generation-provider.js +0 -2
  705. package/dist/extensions/minimax/oauth.d.ts +0 -2
  706. package/dist/extensions/minimax/oauth.js +0 -2
  707. package/dist/extensions/minimax/oauth.runtime.d.ts +0 -2
  708. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  709. package/dist/extensions/minimax/onboard.d.ts +0 -2
  710. package/dist/extensions/minimax/onboard.js +0 -2
  711. package/dist/extensions/minimax/package.json +0 -15
  712. package/dist/extensions/minimax/provider-catalog.d.ts +0 -2
  713. package/dist/extensions/minimax/provider-catalog.js +0 -2
  714. package/dist/extensions/minimax/provider-contract-api.d.ts +0 -6
  715. package/dist/extensions/minimax/provider-contract-api.js +0 -77
  716. package/dist/extensions/minimax/provider-discovery.d.ts +0 -5
  717. package/dist/extensions/minimax/provider-discovery.js +0 -23
  718. package/dist/extensions/minimax/provider-models.d.ts +0 -2
  719. package/dist/extensions/minimax/provider-models.js +0 -2
  720. package/dist/extensions/minimax/provider-registration.d.ts +0 -7
  721. package/dist/extensions/minimax/provider-registration.js +0 -2
  722. package/dist/extensions/minimax/speech-provider.d.ts +0 -5
  723. package/dist/extensions/minimax/speech-provider.js +0 -2
  724. package/dist/extensions/minimax/tts.d.ts +0 -20
  725. package/dist/extensions/minimax/tts.js +0 -2
  726. package/dist/extensions/minimax/video-generation-provider.d.ts +0 -7
  727. package/dist/extensions/minimax/video-generation-provider.js +0 -2
  728. package/dist/extensions/minimax/web-search-contract-api.d.ts +0 -5
  729. package/dist/extensions/minimax/web-search-contract-api.js +0 -31
  730. package/dist/extensions/minimax/web-search-provider.d.ts +0 -5
  731. package/dist/extensions/minimax/web-search-provider.js +0 -2
  732. package/dist/extensions/moonshot/api.d.ts +0 -3
  733. package/dist/extensions/moonshot/api.js +0 -4
  734. package/dist/extensions/moonshot/fengming.plugin.json +0 -250
  735. package/dist/extensions/moonshot/index.d.ts +0 -11
  736. package/dist/extensions/moonshot/index.js +0 -70
  737. package/dist/extensions/moonshot/media-understanding-provider.d.ts +0 -6
  738. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  739. package/dist/extensions/moonshot/onboard.d.ts +0 -2
  740. package/dist/extensions/moonshot/onboard.js +0 -2
  741. package/dist/extensions/moonshot/package.json +0 -15
  742. package/dist/extensions/moonshot/provider-catalog.d.ts +0 -2
  743. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  744. package/dist/extensions/moonshot/provider-contract-api.d.ts +0 -5
  745. package/dist/extensions/moonshot/provider-contract-api.js +0 -27
  746. package/dist/extensions/moonshot/provider-discovery.d.ts +0 -5
  747. package/dist/extensions/moonshot/provider-discovery.js +0 -15
  748. package/dist/extensions/moonshot/web-search-contract-api.d.ts +0 -5
  749. package/dist/extensions/moonshot/web-search-contract-api.js +0 -29
  750. package/dist/extensions/moonshot/web-search-provider.d.ts +0 -5
  751. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  752. package/dist/extensions/qianfan/api.d.ts +0 -3
  753. package/dist/extensions/qianfan/api.js +0 -3
  754. package/dist/extensions/qianfan/fengming.plugin.json +0 -89
  755. package/dist/extensions/qianfan/index.d.ts +0 -11
  756. package/dist/extensions/qianfan/index.js +0 -26
  757. package/dist/extensions/qianfan/onboard.d.ts +0 -2
  758. package/dist/extensions/qianfan/onboard.js +0 -2
  759. package/dist/extensions/qianfan/package.json +0 -15
  760. package/dist/extensions/qianfan/provider-catalog.d.ts +0 -2
  761. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  762. package/dist/extensions/qwen/api.d.ts +0 -4
  763. package/dist/extensions/qwen/api.js +0 -5
  764. package/dist/extensions/qwen/fengming.plugin.json +0 -389
  765. package/dist/extensions/qwen/index.d.ts +0 -11
  766. package/dist/extensions/qwen/index.js +0 -202
  767. package/dist/extensions/qwen/media-understanding-provider.d.ts +0 -6
  768. package/dist/extensions/qwen/media-understanding-provider.js +0 -2
  769. package/dist/extensions/qwen/model-definitions.d.ts +0 -2
  770. package/dist/extensions/qwen/model-definitions.js +0 -2
  771. package/dist/extensions/qwen/models.d.ts +0 -2
  772. package/dist/extensions/qwen/models.js +0 -2
  773. package/dist/extensions/qwen/onboard.d.ts +0 -21
  774. package/dist/extensions/qwen/onboard.js +0 -2
  775. package/dist/extensions/qwen/package.json +0 -15
  776. package/dist/extensions/qwen/provider-catalog.d.ts +0 -2
  777. package/dist/extensions/qwen/provider-catalog.js +0 -2
  778. package/dist/extensions/qwen/stream.d.ts +0 -2
  779. package/dist/extensions/qwen/stream.js +0 -2
  780. package/dist/extensions/qwen/video-generation-provider.d.ts +0 -6
  781. package/dist/extensions/qwen/video-generation-provider.js +0 -2
  782. package/dist/extensions/sensenova/fengming.plugin.json +0 -69
  783. package/dist/extensions/sensenova/index.d.ts +0 -11
  784. package/dist/extensions/sensenova/index.js +0 -45
  785. package/dist/extensions/sensenova/models.d.ts +0 -7
  786. package/dist/extensions/sensenova/models.js +0 -2
  787. package/dist/extensions/sensenova/onboard.d.ts +0 -5
  788. package/dist/extensions/sensenova/onboard.js +0 -2
  789. package/dist/extensions/sensenova/package.json +0 -15
  790. package/dist/extensions/sensenova/provider-catalog.d.ts +0 -2
  791. package/dist/extensions/sensenova/provider-catalog.js +0 -2
  792. package/dist/extensions/sensenova/provider-discovery.d.ts +0 -2
  793. package/dist/extensions/sensenova/provider-discovery.js +0 -5
  794. package/dist/extensions/stepfun/fengming.plugin.json +0 -162
  795. package/dist/extensions/stepfun/index.d.ts +0 -12
  796. package/dist/extensions/stepfun/index.js +0 -165
  797. package/dist/extensions/stepfun/onboard.d.ts +0 -7
  798. package/dist/extensions/stepfun/onboard.js +0 -2
  799. package/dist/extensions/stepfun/package.json +0 -15
  800. package/dist/extensions/stepfun/provider-catalog.d.ts +0 -14
  801. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  802. package/dist/extensions/tencent/api.d.ts +0 -3
  803. package/dist/extensions/tencent/api.js +0 -4
  804. package/dist/extensions/tencent/fengming.plugin.json +0 -105
  805. package/dist/extensions/tencent/index.d.ts +0 -12
  806. package/dist/extensions/tencent/index.js +0 -62
  807. package/dist/extensions/tencent/models.d.ts +0 -2
  808. package/dist/extensions/tencent/models.js +0 -2
  809. package/dist/extensions/tencent/onboard.d.ts +0 -6
  810. package/dist/extensions/tencent/onboard.js +0 -2
  811. package/dist/extensions/tencent/package.json +0 -15
  812. package/dist/extensions/tencent/provider-catalog.d.ts +0 -2
  813. package/dist/extensions/tencent/provider-catalog.js +0 -2
  814. package/dist/extensions/tencent/provider-discovery.d.ts +0 -5
  815. package/dist/extensions/tencent/provider-discovery.js +0 -14
  816. package/dist/extensions/tiangong/fengming.plugin.json +0 -69
  817. package/dist/extensions/tiangong/index.d.ts +0 -11
  818. package/dist/extensions/tiangong/index.js +0 -45
  819. package/dist/extensions/tiangong/models.d.ts +0 -7
  820. package/dist/extensions/tiangong/models.js +0 -2
  821. package/dist/extensions/tiangong/onboard.d.ts +0 -5
  822. package/dist/extensions/tiangong/onboard.js +0 -2
  823. package/dist/extensions/tiangong/package.json +0 -15
  824. package/dist/extensions/tiangong/provider-catalog.d.ts +0 -2
  825. package/dist/extensions/tiangong/provider-catalog.js +0 -2
  826. package/dist/extensions/tiangong/provider-discovery.d.ts +0 -2
  827. package/dist/extensions/tiangong/provider-discovery.js +0 -5
  828. package/dist/extensions/volcengine/api.d.ts +0 -12
  829. package/dist/extensions/volcengine/api.js +0 -4
  830. package/dist/extensions/volcengine/fengming.plugin.json +0 -263
  831. package/dist/extensions/volcengine/index.d.ts +0 -12
  832. package/dist/extensions/volcengine/index.js +0 -88
  833. package/dist/extensions/volcengine/models.d.ts +0 -2
  834. package/dist/extensions/volcengine/models.js +0 -2
  835. package/dist/extensions/volcengine/package.json +0 -15
  836. package/dist/extensions/volcengine/provider-catalog.d.ts +0 -2
  837. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  838. package/dist/extensions/volcengine/provider-discovery.d.ts +0 -5
  839. package/dist/extensions/volcengine/provider-discovery.js +0 -23
  840. package/dist/extensions/volcengine/speech-provider.d.ts +0 -5
  841. package/dist/extensions/volcengine/speech-provider.js +0 -2
  842. package/dist/extensions/volcengine/tts.d.ts +0 -22
  843. package/dist/extensions/volcengine/tts.js +0 -2
  844. package/dist/extensions/weixin/fengming.plugin.json +0 -22
  845. package/dist/extensions/weixin/index.d.ts +0 -26
  846. package/dist/extensions/weixin/index.js +0 -862
  847. package/dist/extensions/weixin/package.json +0 -45
  848. package/dist/extensions/xiaomi/api.d.ts +0 -3
  849. package/dist/extensions/xiaomi/api.js +0 -3
  850. package/dist/extensions/xiaomi/fengming.plugin.json +0 -260
  851. package/dist/extensions/xiaomi/index.d.ts +0 -12
  852. package/dist/extensions/xiaomi/index.js +0 -284
  853. package/dist/extensions/xiaomi/onboard.d.ts +0 -2
  854. package/dist/extensions/xiaomi/onboard.js +0 -2
  855. package/dist/extensions/xiaomi/package.json +0 -15
  856. package/dist/extensions/xiaomi/provider-catalog.d.ts +0 -2
  857. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  858. package/dist/extensions/xiaomi/speech-provider.d.ts +0 -5
  859. package/dist/extensions/xiaomi/speech-provider.js +0 -2
  860. package/dist/extensions/xiaomi/stream.d.ts +0 -5
  861. package/dist/extensions/xiaomi/stream.js +0 -2
  862. package/dist/extensions/xiaomi/thinking.d.ts +0 -11
  863. package/dist/extensions/xiaomi/thinking.js +0 -2
  864. package/dist/extensions/xingchen/fengming.plugin.json +0 -69
  865. package/dist/extensions/xingchen/index.d.ts +0 -11
  866. package/dist/extensions/xingchen/index.js +0 -45
  867. package/dist/extensions/xingchen/models.d.ts +0 -7
  868. package/dist/extensions/xingchen/models.js +0 -2
  869. package/dist/extensions/xingchen/onboard.d.ts +0 -5
  870. package/dist/extensions/xingchen/onboard.js +0 -2
  871. package/dist/extensions/xingchen/package.json +0 -15
  872. package/dist/extensions/xingchen/provider-catalog.d.ts +0 -2
  873. package/dist/extensions/xingchen/provider-catalog.js +0 -2
  874. package/dist/extensions/xingchen/provider-discovery.d.ts +0 -2
  875. package/dist/extensions/xingchen/provider-discovery.js +0 -5
  876. package/dist/extensions/yi/fengming.plugin.json +0 -84
  877. package/dist/extensions/yi/index.d.ts +0 -11
  878. package/dist/extensions/yi/index.js +0 -45
  879. package/dist/extensions/yi/models.d.ts +0 -7
  880. package/dist/extensions/yi/models.js +0 -2
  881. package/dist/extensions/yi/onboard.d.ts +0 -5
  882. package/dist/extensions/yi/onboard.js +0 -2
  883. package/dist/extensions/yi/package.json +0 -15
  884. package/dist/extensions/yi/provider-catalog.d.ts +0 -2
  885. package/dist/extensions/yi/provider-catalog.js +0 -2
  886. package/dist/extensions/yi/provider-discovery.d.ts +0 -2
  887. package/dist/extensions/yi/provider-discovery.js +0 -5
  888. package/dist/extensions/zai/api.d.ts +0 -4
  889. package/dist/extensions/zai/api.js +0 -4
  890. package/dist/extensions/zai/detect.d.ts +0 -2
  891. package/dist/extensions/zai/detect.js +0 -2
  892. package/dist/extensions/zai/fengming.plugin.json +0 -377
  893. package/dist/extensions/zai/index.d.ts +0 -12
  894. package/dist/extensions/zai/index.js +0 -297
  895. package/dist/extensions/zai/media-understanding-provider.d.ts +0 -5
  896. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  897. package/dist/extensions/zai/model-definitions.d.ts +0 -2
  898. package/dist/extensions/zai/model-definitions.js +0 -2
  899. package/dist/extensions/zai/onboard.d.ts +0 -2
  900. package/dist/extensions/zai/onboard.js +0 -2
  901. package/dist/extensions/zai/package.json +0 -15
  902. package/dist/extensions/zai/runtime-api.d.ts +0 -2
  903. package/dist/extensions/zai/runtime-api.js +0 -2
  904. package/dist/extensions/zhinao/fengming.plugin.json +0 -69
  905. package/dist/extensions/zhinao/index.d.ts +0 -11
  906. package/dist/extensions/zhinao/index.js +0 -45
  907. package/dist/extensions/zhinao/models.d.ts +0 -7
  908. package/dist/extensions/zhinao/models.js +0 -2
  909. package/dist/extensions/zhinao/onboard.d.ts +0 -5
  910. package/dist/extensions/zhinao/onboard.js +0 -2
  911. package/dist/extensions/zhinao/package.json +0 -15
  912. package/dist/extensions/zhinao/provider-catalog.d.ts +0 -2
  913. package/dist/extensions/zhinao/provider-catalog.js +0 -2
  914. package/dist/extensions/zhinao/provider-discovery.d.ts +0 -2
  915. package/dist/extensions/zhinao/provider-discovery.js +0 -5
  916. package/dist/fengming-runtime-0jdu_329.d.ts +0 -153
  917. package/dist/fengming-tools-gQkwsWYz.js +0 -12221
  918. package/dist/fengming.plugin-C-Kdi1_5.js +0 -130
  919. package/dist/fengming.plugin-CRPqMj85.js +0 -166
  920. package/dist/gateway-cli-BV1V43-D.js +0 -443
  921. package/dist/gateway-method-runtime-J2OPP_oH.js +0 -21
  922. package/dist/get-reply-BE8ZGJos.js +0 -5198
  923. package/dist/get-reply-from-config.runtime-C5wfxVI_.js +0 -2
  924. package/dist/heartbeat-runner-_0HlObMb.js +0 -5
  925. package/dist/heartbeat-runner.runtime-DvYz_4Z3.js +0 -3
  926. package/dist/hook-runtime-BH9moP5T.js +0 -4
  927. package/dist/hooks-icCwsmrQ.js +0 -536
  928. package/dist/host-compat-dfJvEfe7.d.ts +0 -21
  929. package/dist/http-registry-Buj7R-F_.d.ts +0 -23
  930. package/dist/image-generation-provider-hrRXkkGc.js +0 -152
  931. package/dist/inbound-reply-dispatch-5AYt56Yt.js +0 -147
  932. package/dist/inbound-reply-dispatch-B5weFW8i.js +0 -2
  933. package/dist/inbound-reply-dispatch-cJh4H31y.d.ts +0 -156
  934. package/dist/index-AZzJCgph.d.ts +0 -1497
  935. package/dist/infra-runtime-3_0R8nmO.js +0 -32
  936. package/dist/init-BnfkYG_k.js +0 -59
  937. package/dist/interactive-V8NfYsTW.d.ts +0 -26
  938. package/dist/isolated-agent-CgH7dfOj.js +0 -1097
  939. package/dist/isolated-agent-dBWkiw0a.js +0 -2
  940. package/dist/kernel-Ds2aqAJF.d.ts +0 -241
  941. package/dist/kimi-web-search-provider-QJT3Ftj3.js +0 -80
  942. package/dist/kimi-web-search-provider.runtime-Dj3SS4T5.js +0 -307
  943. package/dist/kimi-web-search-provider.runtime.js +0 -1
  944. package/dist/lib-Dg4yjNFQ.js +0 -871
  945. package/dist/lifecycle-B9k7QGsS.js +0 -570
  946. package/dist/list.probe-CbVHFNwf.js +0 -2
  947. package/dist/list.probe-CxiEBmyW.js +0 -451
  948. package/dist/list.status-command-DE-edGgB.js +0 -815
  949. package/dist/llm-slug-generator-DJgq9eFd.js +0 -78
  950. package/dist/loader-5AqYM9PC.d.ts +0 -142
  951. package/dist/local-dispatch.runtime-D3F4v51B.js +0 -10
  952. package/dist/manager-BWf1ks-Z.d.ts +0 -409
  953. package/dist/mcp-http-DU7Nsg4P.js +0 -583
  954. package/dist/mcp-http-iZCW6Cet.js +0 -2
  955. package/dist/media-runtime-DZ5RpQN7.d.ts +0 -261
  956. package/dist/media-understanding-DEdEyoQB.d.ts +0 -46
  957. package/dist/media-understanding-provider-4JHrQOUE.js +0 -70
  958. package/dist/media-understanding-provider-BV7O82XV.js +0 -29
  959. package/dist/media-understanding-provider-BlPRhYkx.js +0 -69
  960. package/dist/media-understanding-provider-BuX8eQLj.js +0 -13
  961. package/dist/memory-core-host-engine-embeddings-BDu5fx8E.d.ts +0 -324
  962. package/dist/memory-core-host-engine-storage-CdCuH-E2.d.ts +0 -54
  963. package/dist/message-handler-L6QLWNVP.js +0 -1806
  964. package/dist/minimax-web-search-provider-_gxeEOy8.js +0 -58
  965. package/dist/minimax-web-search-provider.runtime-BF4mGi6U.js +0 -148
  966. package/dist/minimax-web-search-provider.runtime.js +0 -1
  967. package/dist/model-catalog-DCnRkX8f.d.ts +0 -88
  968. package/dist/model-definitions-B2gY43hI.d.ts +0 -34
  969. package/dist/model-definitions-BLOyeH5h.js +0 -73
  970. package/dist/model-definitions-CoByf5mT.js +0 -243
  971. package/dist/model-definitions-WP3OmzbS.d.ts +0 -57
  972. package/dist/model-selection-DhTE6GZD.js +0 -352
  973. package/dist/models--iAR9QkZ.js +0 -175
  974. package/dist/models-8ImVEkvh.js +0 -36
  975. package/dist/models-BIDM8htk.js +0 -48
  976. package/dist/models-BRgRfrcS.js +0 -36
  977. package/dist/models-Bib5-APc.js +0 -67
  978. package/dist/models-Bl67zOoe.js +0 -36
  979. package/dist/models-BqDDYFE3.d.ts +0 -65
  980. package/dist/models-BtRQoRIu.js +0 -36
  981. package/dist/models-BvXmOXik.js +0 -48
  982. package/dist/models-C-sJciOD.d.ts +0 -9
  983. package/dist/models-COnXPdlL.js +0 -24
  984. package/dist/models-CXTmk-Da.d.ts +0 -8
  985. package/dist/models-Cz0C_8re.js +0 -36
  986. package/dist/models-DbwEIt-m.d.ts +0 -15
  987. package/dist/models-DgXkSADi.js +0 -30
  988. package/dist/models-cli-Bv3y3JgQ.js +0 -257
  989. package/dist/monitor-BiVOsbbN.js +0 -1024
  990. package/dist/monitor-BumfRp1t.js +0 -60
  991. package/dist/monitor.account-Cd6EwtuZ.js +0 -5382
  992. package/dist/music-generation-provider-ZdDMiC-c.js +0 -308
  993. package/dist/nodes-C0f8XgD5.js +0 -1483
  994. package/dist/nodes-Dk4vOgg9.js +0 -3
  995. package/dist/nodes-pending-Cjg09MXz.js +0 -211
  996. package/dist/oauth-BIO69Qw0.d.ts +0 -25
  997. package/dist/oauth-CnO10TN2.js +0 -207
  998. package/dist/onboard-B3BYT5k7.js +0 -34
  999. package/dist/onboard-BDMNV6RE.js +0 -23
  1000. package/dist/onboard-B_WNNy5F.d.ts +0 -6
  1001. package/dist/onboard-BbyMaErU.js +0 -69
  1002. package/dist/onboard-BuYPNE6j2.js +0 -23
  1003. package/dist/onboard-C394zMnM.d.ts +0 -11
  1004. package/dist/onboard-CHn4oVbY.js +0 -24
  1005. package/dist/onboard-CPpVbb0O.js +0 -73
  1006. package/dist/onboard-CWDx7Crt.js +0 -23
  1007. package/dist/onboard-CbzkwBzu.d.ts +0 -12
  1008. package/dist/onboard-D099qUd0.js +0 -23
  1009. package/dist/onboard-D7dbzfHc.js +0 -23
  1010. package/dist/onboard-DB-x0nHF.js +0 -30
  1011. package/dist/onboard-DFVrRnxJ.js +0 -23
  1012. package/dist/onboard-DFiqoOc2.d.ts +0 -7
  1013. package/dist/onboard-DJaMK3rr.d.ts +0 -6
  1014. package/dist/onboard-DMdK8D_h.js +0 -67
  1015. package/dist/onboard-J-KL-I6m.js +0 -48
  1016. package/dist/onboard-MIBU-Rmv.js +0 -39
  1017. package/dist/onboard-vmGylfFe.js +0 -23
  1018. package/dist/openai-compat-errors-Dcr5Y8bF.js +0 -136
  1019. package/dist/openai-http-CcqspzU6.js +0 -836
  1020. package/dist/openresponses-http-BnyYYvUF.js +0 -1175
  1021. package/dist/operations-H2Oq0KYz.js +0 -805
  1022. package/dist/outbound.types-BhRehecY.d.ts +0 -291
  1023. package/dist/plugin-enabled-CEIKWKrq.js +0 -232
  1024. package/dist/plugin-entry-CTVRRaaA.d.ts +0 -47
  1025. package/dist/plugin-registration-BTyO5Fwt.js +0 -97
  1026. package/dist/plugin-runtime-_XF2N_UQ.d.ts +0 -117
  1027. package/dist/plugin-sdk/bundled-channel-config-schema-BsOWCrJT.d.ts +0 -3169
  1028. package/dist/plugin-service-B91jVlmZ.d.ts +0 -24
  1029. package/dist/plugin-service-CtGwVz8V.js +0 -1249
  1030. package/dist/prepare.runtime-9dlboph7.js +0 -798
  1031. package/dist/preview-warnings-DJx4KJpC.js +0 -618
  1032. package/dist/program-CWC-NBBB.js +0 -131
  1033. package/dist/provider-api-key-auth-BmNcYRMl.d.ts +0 -27
  1034. package/dist/provider-auth-api-key-CCaFiqY3.js +0 -5
  1035. package/dist/provider-auth-result-D_E9dcVc.d.ts +0 -21
  1036. package/dist/provider-catalog-5KZLmrDO.js +0 -11
  1037. package/dist/provider-catalog-7P6AvDzS.js +0 -11
  1038. package/dist/provider-catalog-B2gyTjTU.js +0 -88
  1039. package/dist/provider-catalog-B3YBhe77.js +0 -17
  1040. package/dist/provider-catalog-B7XEeuUm.js +0 -11
  1041. package/dist/provider-catalog-BFGPRd9v.js +0 -17
  1042. package/dist/provider-catalog-BLvkIMSk.d.ts +0 -6
  1043. package/dist/provider-catalog-BPBL9mJf.d.ts +0 -5
  1044. package/dist/provider-catalog-BRkZ6-HD.d.ts +0 -5
  1045. package/dist/provider-catalog-Bfl_AoTZ.js +0 -142
  1046. package/dist/provider-catalog-BpiHWHu1.js +0 -11
  1047. package/dist/provider-catalog-C1qDLekT.d.ts +0 -5
  1048. package/dist/provider-catalog-CKWNCfry.js +0 -11
  1049. package/dist/provider-catalog-CUHB2pSt.d.ts +0 -7
  1050. package/dist/provider-catalog-CWqN2j6J.d.ts +0 -5
  1051. package/dist/provider-catalog-CZ8oYbx3.js +0 -11
  1052. package/dist/provider-catalog-CcQ5-4ZW.d.ts +0 -6
  1053. package/dist/provider-catalog-Cd16uZ0U.js +0 -20
  1054. package/dist/provider-catalog-CpF2D0VK.js +0 -61
  1055. package/dist/provider-catalog-CvXq36zW.d.ts +0 -5
  1056. package/dist/provider-catalog-D2pgEME3.js +0 -48
  1057. package/dist/provider-catalog-DPzcupEl.d.ts +0 -5
  1058. package/dist/provider-catalog-DaeI606G.d.ts +0 -9
  1059. package/dist/provider-catalog-DrOCtTb-.js +0 -11
  1060. package/dist/provider-catalog-DwZ1J2Al.d.ts +0 -6
  1061. package/dist/provider-catalog-Dy7IcHmS.js +0 -107
  1062. package/dist/provider-catalog-TsZS52nq.d.ts +0 -10
  1063. package/dist/provider-catalog-YqIFRCND.d.ts +0 -5
  1064. package/dist/provider-catalog-Ywb5jRwG.d.ts +0 -5
  1065. package/dist/provider-catalog-evknl1oN.js +0 -11
  1066. package/dist/provider-catalog-l0hFpFO2.d.ts +0 -17
  1067. package/dist/provider-catalog-shared-DsRBv0Tp.d.ts +0 -62
  1068. package/dist/provider-dispatcher-BMy9mBJ1.js +0 -22
  1069. package/dist/provider-model-shared-CPAfQBNs.d.ts +0 -143
  1070. package/dist/provider-models-Diu65OcG.d.ts +0 -18
  1071. package/dist/provider-models-LE7PlLYY.js +0 -22
  1072. package/dist/provider-onboard-CpvXEmvz.d.ts +0 -91
  1073. package/dist/provider-registration-DF-LkmNE.js +0 -235
  1074. package/dist/provider-registry-D9cTPW1F.d.ts +0 -8
  1075. package/dist/provider-registry-DI7gMKUP.d.ts +0 -8
  1076. package/dist/provider-registry-DZtgZDkl.d.ts +0 -29
  1077. package/dist/provider-self-hosted-setup-CoHvoyKm.d.ts +0 -74
  1078. package/dist/provider-stream-BpXJr5Ap.d.ts +0 -139
  1079. package/dist/provider-stream-family-Bj5aBD8w.js +0 -2
  1080. package/dist/provider-stream-shared-BaUkhUHj.d.ts +0 -132
  1081. package/dist/provider-usage-DFUhW2do.js +0 -651
  1082. package/dist/provider-web-search-contract-fields-CkXzSsWu.d.ts +0 -25
  1083. package/dist/pw-ai-9Q_dIq4B.js +0 -3064
  1084. package/dist/register.agent-CbfrlzXB.js +0 -152
  1085. package/dist/register.crestodian-CEg0rPfK.js +0 -24
  1086. package/dist/register.maintenance-k9N8I4Wg.js +0 -85
  1087. package/dist/register.subclis-CrXOeaS3.js +0 -3
  1088. package/dist/register.subclis-DfKlni8N.js +0 -31
  1089. package/dist/register.subclis-core-Bg4wbDsO.js +0 -278
  1090. package/dist/registry-Bh3-P2HL.d.ts +0 -8
  1091. package/dist/registry-types-BmEUS4d3.d.ts +0 -392
  1092. package/dist/repair-sequencing-E4yViXG9.js +0 -652
  1093. package/dist/reply-payload-S2mrc_Mh.d.ts +0 -200
  1094. package/dist/reply-turn-admission-BBoPjmGB.js +0 -2056
  1095. package/dist/reply.runtime-C5wfxVI_.js +0 -2
  1096. package/dist/result-fallback-classifier-CX4iLD1G.js +0 -98
  1097. package/dist/route-CifxcQZ1.js +0 -475
  1098. package/dist/routes-B3XAOeWo.js +0 -2
  1099. package/dist/routes-H185h3U-.js +0 -3701
  1100. package/dist/run-CTJFbwbB.js +0 -1162
  1101. package/dist/run-command-B7B53tYk.js +0 -23
  1102. package/dist/run-command-BFuxRDxS.js +0 -2
  1103. package/dist/run-context-C7im9ICg.js +0 -66
  1104. package/dist/run-embedded.runtime-TljBTbzh.js +0 -4
  1105. package/dist/run-execution-cli.runtime-Bt5zwx1W.js +0 -4
  1106. package/dist/run-executor.runtime-hmbWX2Ct.js +0 -330
  1107. package/dist/run-subagent-registry.runtime-B70X80nS.js +0 -2
  1108. package/dist/runtime-DoKE0o7v.js +0 -436
  1109. package/dist/runtime-api-Ca4Llbgf.js +0 -12
  1110. package/dist/runtime-api-pa8xcEmg.d.ts +0 -5
  1111. package/dist/runtime-channel-CFQ59svm.js +0 -148
  1112. package/dist/runtime-channel-DRwCWGUx.js +0 -2
  1113. package/dist/runtime-embedded-agent.runtime-DwmqKUVp.js +0 -2
  1114. package/dist/runtime-forwarders-BMThPHg_.d.ts +0 -39
  1115. package/dist/sdk-setup-tools-Cg_Tabrf.js +0 -8
  1116. package/dist/selection-COhr7g82.js +0 -18365
  1117. package/dist/selection-_G44EVqd.js +0 -3
  1118. package/dist/send-media-BNc67G7I.js +0 -2072
  1119. package/dist/server-5rR0RCpI.js +0 -24
  1120. package/dist/server-context-BhiPROPA.js +0 -955
  1121. package/dist/server-context-OShBAJZQ.js +0 -2
  1122. package/dist/server-cron-Bkzb9edh.js +0 -3173
  1123. package/dist/server-cron-DdR-ugiU.js +0 -2
  1124. package/dist/server-lwtC1vaS.js +0 -72
  1125. package/dist/server-methods-BY_ZqDFJ.js +0 -497
  1126. package/dist/server-node-events-CLvE94AS.js +0 -597
  1127. package/dist/server-plugin-bootstrap-cKOAH5GL.js +0 -71
  1128. package/dist/server-plugins-CPpUykw5.js +0 -435
  1129. package/dist/server-reload-handlers-uzt4VDZ-.js +0 -719
  1130. package/dist/server-restart-sentinel-CpvV0t4O.js +0 -700
  1131. package/dist/server-runtime-services-BhOHoerM.js +0 -147
  1132. package/dist/server-runtime-services-D3Ig68nC.js +0 -3
  1133. package/dist/server-startup-plugins-DslzKVHK.js +0 -127
  1134. package/dist/server-startup-post-attach-DPFBTQez.js +0 -793
  1135. package/dist/server-ws-runtime-D0zoWoiz.js +0 -374
  1136. package/dist/server.impl-CzqLQ3qt.js +0 -2622
  1137. package/dist/session-kill-http-D8JhwZVS.js +0 -121
  1138. package/dist/session-reset-service-uoi7E4Xp.js +0 -651
  1139. package/dist/session-status.runtime-CZK5IU8w.js +0 -2
  1140. package/dist/session-subagent-reactivation.runtime-BSO00-FY.js +0 -2
  1141. package/dist/session-tab-registry-DM9U7e3o.js +0 -551
  1142. package/dist/sessions-B-SkIoaa.js +0 -1917
  1143. package/dist/sessions-history-http-DCiOG4FK.js +0 -432
  1144. package/dist/sessions-patch-DlAAvQvB.js +0 -401
  1145. package/dist/sessions-resolve-DfMXookg.js +0 -180
  1146. package/dist/sessions.runtime-0V2YxKxB.js +0 -2
  1147. package/dist/snapshot-urls-Ble1-NEW.js +0 -317
  1148. package/dist/speech-core-Bk60ZS_y.d.ts +0 -49
  1149. package/dist/speech-provider-DQO9eZd0.js +0 -233
  1150. package/dist/speech-provider-DnBCla4V.js +0 -171
  1151. package/dist/speech-provider-DyYHFxT5.js +0 -227
  1152. package/dist/standalone-9EWfcxeO.js +0 -42
  1153. package/dist/startup-context-nti4X0_w.js +0 -314
  1154. package/dist/status-subagents.runtime-CPZb1EF1.js +0 -32
  1155. package/dist/status-text-C1Hf37lF.js +0 -301
  1156. package/dist/stream-9VBt1MDs.js +0 -26
  1157. package/dist/stream-B_3P7v7P.js +0 -86
  1158. package/dist/stream-CXsue2-v.d.ts +0 -9
  1159. package/dist/stream-oNBFxfKt.d.ts +0 -5
  1160. package/dist/subagent-announce-CPjQQLy8.js +0 -353
  1161. package/dist/subagent-announce-delivery-B6iBOicL.js +0 -1369
  1162. package/dist/subagent-control-DP72sk-l.js +0 -492
  1163. package/dist/subagent-hooks-B1oUIYH3.js +0 -2
  1164. package/dist/subagent-hooks-BkGj4_xI.js +0 -230
  1165. package/dist/subagent-hooks-api-D2mulK3S.js +0 -23
  1166. package/dist/subagent-registry-CEKAUB5h.js +0 -3
  1167. package/dist/subagent-registry-OUVucPAn.js +0 -2627
  1168. package/dist/subagent-session-cleanup-Bx8d3kw0.js +0 -390
  1169. package/dist/system-CelaP2zI.js +0 -111
  1170. package/dist/talk-DGOI3Lu3.js +0 -2454
  1171. package/dist/target-id-BXRG7x9x.js +0 -107
  1172. package/dist/thinking-B8V29FhB.js +0 -35
  1173. package/dist/thread-bindings-DpVdEPZ0.js +0 -228
  1174. package/dist/tool-DHzDpxE4.js +0 -143
  1175. package/dist/tool-dispatch-ClP3Rc7g.js +0 -155
  1176. package/dist/tool-resolution-CZcLod1d.js +0 -153
  1177. package/dist/tool-split-BhiQ8676.d.ts +0 -19
  1178. package/dist/tools-ZvSvbsCW.d.ts +0 -38
  1179. package/dist/tools-effective-C2mHZT-A.js +0 -442
  1180. package/dist/tools-effective-inventory-ctnM7hc6.js +0 -379
  1181. package/dist/tools-invoke-Ci6Rux2s.js +0 -51
  1182. package/dist/tools-invoke-http-CJflXcJk.js +0 -68
  1183. package/dist/tools-invoke-shared-BLu_mJEX.js +0 -200
  1184. package/dist/tts-B2rPJPij.js +0 -83
  1185. package/dist/tts-Gp9FI3_n.js +0 -163
  1186. package/dist/tts-runtime-DNi1HXPF.d.ts +0 -230
  1187. package/dist/tui-BUhfQ9vD.js +0 -3
  1188. package/dist/tui-BhH5mvLf.js +0 -2
  1189. package/dist/tui-backend-C_4ajTHI.js +0 -257
  1190. package/dist/tui-cli-BhWJ-QoB.js +0 -40
  1191. package/dist/tui-ink-run-BTWbUQGb.js +0 -7414
  1192. package/dist/tui-ink-run-DfTdivkh.js +0 -2
  1193. package/dist/types-B4fW3r5y.d.ts +0 -111
  1194. package/dist/types-DI62NfFe.d.ts +0 -7034
  1195. package/dist/types-sAih_uQb.d.ts +0 -393
  1196. package/dist/types.public-B3MKhuo2.d.ts +0 -70
  1197. package/dist/video-generation-B9c6a5cw.js +0 -207
  1198. package/dist/video-generation-BgJp7UIA.d.ts +0 -224
  1199. package/dist/video-generation-provider-BjiVjf40.js +0 -325
  1200. package/dist/video-generation-provider-CsnQJg_h.js +0 -297
  1201. package/dist/video-generation-provider-DtU-ZPqP.js +0 -64
  1202. package/dist/video-generation-provider-wZ0bzv0e.js +0 -77
  1203. package/dist/webhook-targets-Cy8e7y3g.d.ts +0 -99
  1204. package/dist/zod-schema.core-BGLctDlK.d.ts +0 -166
  1205. package/skills/canvas/SKILL.md +0 -78
  1206. package/skills/clawhub/SKILL.md +0 -77
  1207. package/skills/coding-agent/SKILL.md +0 -143
  1208. package/skills/diagram-maker/SKILL.md +0 -53
  1209. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -85
  1210. package/skills/diagram-maker/references/svg-template.md +0 -112
  1211. package/skills/gemini/SKILL.md +0 -47
  1212. package/skills/gh-issues/SKILL.md +0 -213
  1213. package/skills/gifgrep/SKILL.md +0 -85
  1214. package/skills/github/SKILL.md +0 -84
  1215. package/skills/healthcheck/SKILL.md +0 -105
  1216. package/skills/mcporter/SKILL.md +0 -61
  1217. package/skills/meme-maker/SKILL.md +0 -42
  1218. package/skills/meme-maker/references/templates.json +0 -358
  1219. package/skills/meme-maker/scripts/meme.mjs +0 -398
  1220. package/skills/model-usage/SKILL.md +0 -71
  1221. package/skills/model-usage/references/codexbar-cli.md +0 -33
  1222. package/skills/model-usage/scripts/model_usage.py +0 -319
  1223. package/skills/model-usage/scripts/test_model_usage.py +0 -40
  1224. package/skills/nano-pdf/SKILL.md +0 -38
  1225. package/skills/node-connect/SKILL.md +0 -143
  1226. package/skills/node-inspect-debugger/SKILL.md +0 -85
  1227. package/skills/openai-whisper/SKILL.md +0 -38
  1228. package/skills/openai-whisper-api/SKILL.md +0 -71
  1229. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -154
  1230. package/skills/oracle/SKILL.md +0 -126
  1231. package/skills/pyproject.toml +0 -10
  1232. package/skills/python-debugpy/SKILL.md +0 -73
  1233. package/skills/sag/SKILL.md +0 -87
  1234. package/skills/session-logs/SKILL.md +0 -151
  1235. package/skills/sherpa-onnx-tts/SKILL.md +0 -109
  1236. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1237. package/skills/skill-creator/SKILL.md +0 -78
  1238. package/skills/skill-creator/license.txt +0 -202
  1239. package/skills/skill-creator/scripts/init_skill.py +0 -378
  1240. package/skills/skill-creator/scripts/package_skill.py +0 -139
  1241. package/skills/skill-creator/scripts/quick_validate.py +0 -169
  1242. package/skills/skill-creator/scripts/test_package_skill.py +0 -161
  1243. package/skills/skill-creator/scripts/test_quick_validate.py +0 -116
  1244. package/skills/spike/SKILL.md +0 -51
  1245. package/skills/summarize/SKILL.md +0 -87
  1246. package/skills/taskflow/SKILL.md +0 -149
  1247. package/skills/taskflow/examples/inbox-triage.lobster +0 -33
  1248. package/skills/taskflow/examples/pr-intake.lobster +0 -32
  1249. package/skills/taskflow-inbox-triage/SKILL.md +0 -119
  1250. package/skills/video-frames/SKILL.md +0 -46
  1251. package/skills/video-frames/scripts/frame.sh +0 -81
  1252. package/skills/voice-call/SKILL.md +0 -45
  1253. package/skills/weather/SKILL.md +0 -64
  1254. /package/dist/{acp-runtime-backend-DbchQ02o.js → acp-runtime-backend-DZ1Lnt7f.js} +0 -0
  1255. /package/dist/{delegate-k1aptKei.js → delegate-CwhxUdeb.js} +0 -0
  1256. /package/dist/{dispatch-acp-CD4YxPpf.js → dispatch-acp-BP4I5ZQf.js} +0 -0
  1257. /package/dist/{exec-approvals-ByWUCFQM.js → exec-approvals-ByWUCFQM2.js} +0 -0
  1258. /package/dist/{heartbeat-runner-CM0UZxa_.js → heartbeat-runner-CL3alQ8-.js} +0 -0
  1259. /package/dist/{index-B0VJdRJQ.d.ts → index-B0VJdRJQ2.d.ts} +0 -0
  1260. /package/dist/{library-CQ71yATP.js → library-CiTr_aqC.js} +0 -0
  1261. /package/dist/{run-session-state-DbDeH-q6.js → run-session-state-BOMUtBKZ.js} +0 -0
  1262. /package/dist/{session-subagent-reactivation-Bj91A2ms.js → session-subagent-reactivation-CH0C2I6Y.js} +0 -0
  1263. /package/dist/{types-C4HgagiY2.d.ts → types-C4HgagiY.d.ts} +0 -0
@@ -1,1819 +0,0 @@
1
- import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-DKw2K5wM.js";
2
- import { t as sanitizeForLog } from "./ansi-BCVkJ8zW.js";
3
- import { t as CONFIG_PATH } from "./paths-9MqJt9oL.js";
4
- import { o as isRecord } from "./record-coerce-Btbek4uV.js";
5
- import { t as formatCliCommand } from "./command-format-Jv8eeOPe.js";
6
- import { c as isRecord$1 } from "./utils-v5zGdVpj.js";
7
- import { i as LEGACY_SECRETREF_ENV_MARKER_PREFIX, p as parseLegacySecretRefEnvMarker } from "./types.secrets-Z7uJY7vF.js";
8
- import { r as normalizeChatChannelId } from "./ids-CmaKkxj8.js";
9
- import { r as normalizeProviderId$1 } from "./provider-id-DhcncFyL.js";
10
- import { n as normalizeAccountId, r as normalizeOptionalAccountId, t as DEFAULT_ACCOUNT_ID } from "./account-id-B0YIFDpA.js";
11
- import { l as normalizeAgentId } from "./session-key-CJf5_zWs.js";
12
- import { i as setPathExistingStrict } from "./path-utils-DMtxCrfM.js";
13
- import { n as discoverConfigSecretTargets } from "./target-registry-Cw8BguxO.js";
14
- import { E as validateConfigObjectWithPlugins, I as resolveNormalizedProviderModelMaxTokens } from "./io-T1CV3Z1L.js";
15
- import { n as formatConfigIssueLines } from "./issue-format-ltC34NBF.js";
16
- import { r as normalizeTalkSection } from "./talk-B1Q8qwLB.js";
17
- import { n as collectConfiguredModelRefs } from "./model-refs-DBVFiNJl.js";
18
- import { t as splitTrailingAuthProfile } from "./model-ref-profile-L6rqw6O0.js";
19
- import { r as getBundledChannelPlugin, s as hasBundledChannelPackageSetupFeature } from "./bundled-CJe6_U-m.js";
20
- import { t as getBootstrapChannelPlugin } from "./bootstrap-registry-CYuAwlbE.js";
21
- import { o as runPluginSetupConfigMigrations } from "./setup-registry-BAHuHj-4.js";
22
- import { n as getLoadedChannelPlugin } from "./registry-BfD-kLBR.js";
23
- import { i as listRouteBindings } from "./bindings-D1F1bOgs.js";
24
- import { t as DEFAULT_GOOGLE_API_BASE_URL } from "./google-api-base-url-UBNiBOzj.js";
25
- import { t as note } from "./note-CmJiJoY7.js";
26
- import { n as isCommonSingleAccountPromotionKey, t as collectSingleAccountPromotionEntries } from "./setup-promotion-keys-doVkKcGw.js";
27
- import { n as formatSetExplicitDefaultInstruction, r as formatSetExplicitDefaultToConfiguredInstruction, t as formatChannelAccountsDefaultPath } from "./default-account-warnings-CK3UKJwX.js";
28
- import { i as noteOpencodeProviderOverrides, n as noteImplicitFallbackClobberWarnings, o as stripUnknownConfigKeys } from "./doctor-config-analysis-BXtajUZe.js";
29
- import { n as collectRelevantDoctorPluginIds, t as applyPluginDoctorCompatibilityMigrations } from "./doctor-contract-registry-DNwhQhuW.js";
30
- import { a as legacyRuntimeModelAliasRequiresRuntimePolicy, c as mergeMissing, i as migrateLegacyXSearchConfig, l as loadBundledChannelDoctorContractApi, n as LEGACY_CONFIG_MIGRATIONS, o as listLegacyRuntimeModelProviderAliases, r as migrateLegacyWebSearchConfig, s as migrateLegacyRuntimeModelRef } from "./legacy-config-issues-Cy3l8hfD.js";
31
- import { n as ensureRecord, r as hasOwnKey, t as cloneRecord } from "./legacy-config-record-shared-BPXzhBiB.js";
32
- import { t as runDoctorConfigPreflight } from "./doctor-config-preflight-BIj5nvKd.js";
33
- import { t as applyDoctorConfigMutation } from "./config-mutation-state-C1d35St0.js";
34
- import { t as asObjectRecord } from "./object-BsiS9JXh.js";
35
- import path from "node:path";
36
- import { isDeepStrictEqual } from "node:util";
37
- //#region src/secrets/legacy-secretref-env-marker.ts
38
- function isLegacySecretRefEnvMarker(value) {
39
- return typeof value === "string" && value.trim().startsWith("secretref-env:");
40
- }
41
- function toCandidate(target, defaults) {
42
- if (!isLegacySecretRefEnvMarker(target.value)) return null;
43
- return {
44
- path: target.path,
45
- pathSegments: target.pathSegments,
46
- value: target.value.trim(),
47
- ref: parseLegacySecretRefEnvMarker(target.value, defaults?.env)
48
- };
49
- }
50
- function collectLegacySecretRefEnvMarkerCandidates(config) {
51
- const defaults = config.secrets?.defaults;
52
- return discoverConfigSecretTargets(config).map((target) => toCandidate(target, defaults)).filter((candidate) => candidate !== null);
53
- }
54
- function migrateLegacySecretRefEnvMarkers(config) {
55
- const candidates = collectLegacySecretRefEnvMarkerCandidates(config).filter((candidate) => candidate.ref !== null);
56
- if (candidates.length === 0) return {
57
- config,
58
- changes: []
59
- };
60
- const next = structuredClone(config);
61
- const changes = [];
62
- for (const candidate of candidates) {
63
- const ref = candidate.ref;
64
- if (!ref) continue;
65
- if (setPathExistingStrict(next, candidate.pathSegments, ref)) changes.push(`Moved ${candidate.path} ${LEGACY_SECRETREF_ENV_MARKER_PREFIX}${ref.id} marker → structured env SecretRef.`);
66
- }
67
- return {
68
- config: next,
69
- changes
70
- };
71
- }
72
- //#endregion
73
- //#region src/commands/doctor/shared/channel-legacy-config-migrate.ts
74
- function collectRelevantDoctorChannelIds(raw) {
75
- const channels = isRecord$1(raw) && isRecord$1(raw.channels) ? raw.channels : null;
76
- if (!channels) return [];
77
- return Object.keys(channels).filter((channelId) => channelId !== "defaults").toSorted();
78
- }
79
- function resolveBundledChannelCompatibilityNormalizer(channelId) {
80
- const contractNormalizer = loadBundledChannelDoctorContractApi(channelId)?.normalizeCompatibilityConfig;
81
- if (typeof contractNormalizer === "function") return contractNormalizer;
82
- return getBootstrapChannelPlugin(channelId)?.doctor?.normalizeCompatibilityConfig;
83
- }
84
- function collectPluginDoctorCompatibilityIds(params) {
85
- const unresolvedChannelIds = new Set(params.unresolvedChannelIds);
86
- return [...new Set([...params.unresolvedChannelIds, ...collectRelevantDoctorPluginIds(params.raw).filter((pluginId) => !unresolvedChannelIds.has(pluginId))])].toSorted();
87
- }
88
- function applyChannelDoctorCompatibilityMigrations(cfg) {
89
- let nextCfg = cfg;
90
- const changes = [];
91
- const unresolvedChannelIds = [];
92
- for (const channelId of collectRelevantDoctorChannelIds(cfg)) {
93
- const normalizeCompatibilityConfig = resolveBundledChannelCompatibilityNormalizer(channelId);
94
- if (!normalizeCompatibilityConfig) {
95
- unresolvedChannelIds.push(channelId);
96
- continue;
97
- }
98
- const mutation = normalizeCompatibilityConfig({ cfg: nextCfg });
99
- if (!mutation || mutation.changes.length === 0) continue;
100
- nextCfg = mutation.config;
101
- changes.push(...mutation.changes);
102
- }
103
- const pluginIds = collectPluginDoctorCompatibilityIds({
104
- raw: cfg,
105
- unresolvedChannelIds
106
- });
107
- if (pluginIds.length > 0) {
108
- const compat = applyPluginDoctorCompatibilityMigrations(nextCfg, {
109
- config: cfg,
110
- pluginIds
111
- });
112
- nextCfg = compat.config;
113
- changes.push(...compat.changes);
114
- }
115
- return {
116
- next: nextCfg,
117
- changes
118
- };
119
- }
120
- //#endregion
121
- //#region src/channels/plugins/setup-promotion-helpers.ts
122
- function asPromotionSurface(setup) {
123
- return setup && typeof setup === "object" ? setup : null;
124
- }
125
- function getLoadedChannelSetupPromotionSurface(channelKey) {
126
- return asPromotionSurface(getLoadedChannelPlugin(channelKey)?.setup);
127
- }
128
- function getBundledChannelSetupPromotionSurface(channelKey) {
129
- if (!hasBundledChannelPackageSetupFeature(channelKey, "configPromotion")) return null;
130
- return asPromotionSurface(getBundledChannelPlugin(channelKey)?.setup);
131
- }
132
- function resolveSingleAccountKeysToMove(params) {
133
- const { entries, hasNamedAccounts } = collectSingleAccountPromotionEntries(params.channel);
134
- if (entries.length === 0) return [];
135
- let loadedSetupSurface;
136
- const resolveLoadedSetupSurface = () => {
137
- loadedSetupSurface ??= getLoadedChannelSetupPromotionSurface(params.channelKey);
138
- return loadedSetupSurface;
139
- };
140
- let bundledSetupSurface;
141
- const resolveBundledSetupSurface = () => {
142
- bundledSetupSurface ??= getBundledChannelSetupPromotionSurface(params.channelKey);
143
- return bundledSetupSurface;
144
- };
145
- const keysToMove = entries.filter((key) => {
146
- if (isCommonSingleAccountPromotionKey(key)) return true;
147
- return Boolean(resolveLoadedSetupSurface()?.singleAccountKeysToMove?.includes(key) || resolveBundledSetupSurface()?.singleAccountKeysToMove?.includes(key));
148
- });
149
- if (!hasNamedAccounts || keysToMove.length === 0) return keysToMove;
150
- const namedAccountPromotionKeys = resolveLoadedSetupSurface()?.namedAccountPromotionKeys ?? resolveBundledSetupSurface()?.namedAccountPromotionKeys;
151
- if (!namedAccountPromotionKeys) return keysToMove;
152
- return keysToMove.filter((key) => namedAccountPromotionKeys.includes(key));
153
- }
154
- //#endregion
155
- //#region src/commands/doctor/shared/legacy-models-add-metadata.ts
156
- const LEGACY_MODELS_ADD_CODEX_MODEL_IDS = new Set(["gpt-5.5", "gpt-5.5-pro"]);
157
- function isLegacyModelsAddCodexMetadataModel(params) {
158
- const model = params.model;
159
- if (normalizeProviderId$1(params.provider) !== "openai-codex" || !model) return false;
160
- const id = model.id?.trim().toLowerCase();
161
- if (!id || !LEGACY_MODELS_ADD_CODEX_MODEL_IDS.has(id)) return false;
162
- return model.api === "openai-codex-responses" && model.reasoning === true && Array.isArray(model.input) && model.input.length === 2 && model.input[0] === "text" && model.input[1] === "image" && model.cost?.input === 5 && model.cost.output === 30 && model.cost.cacheRead === .5 && model.cost.cacheWrite === 0 && model.contextWindow === 4e5 && model.contextTokens === 272e3 && model.maxTokens === 128e3;
163
- }
164
- //#endregion
165
- //#region src/commands/doctor/shared/legacy-talk-config-normalizer.ts
166
- function buildLegacyTalkProviderCompat(talk) {
167
- const compat = {};
168
- for (const key of [
169
- "voiceId",
170
- "voiceAliases",
171
- "modelId",
172
- "outputFormat",
173
- "apiKey"
174
- ]) if (talk[key] !== void 0) compat[key] = talk[key];
175
- return Object.keys(compat).length > 0 ? compat : void 0;
176
- }
177
- function buildLegacyRealtimeTalkCompat(talk, normalizedTalk) {
178
- if (talk.realtime !== void 0) return;
179
- const compat = {};
180
- for (const key of [
181
- "model",
182
- "voice",
183
- "mode",
184
- "transport",
185
- "brain"
186
- ]) if (talk[key] !== void 0) compat[key] = talk[key];
187
- if (Object.keys(compat).length === 0) return;
188
- if (normalizedTalk.provider !== void 0) compat.provider = normalizedTalk.provider;
189
- if (normalizedTalk.providers !== void 0) compat.providers = normalizedTalk.providers;
190
- return normalizeTalkSection({ realtime: compat })?.realtime;
191
- }
192
- function normalizeLegacyTalkConfig(cfg, changes) {
193
- const rawTalk = cfg.talk;
194
- if (!isRecord(rawTalk)) return cfg;
195
- const normalizedTalk = normalizeTalkSection(rawTalk) ?? {};
196
- const legacyProviderCompat = buildLegacyTalkProviderCompat(rawTalk);
197
- if (legacyProviderCompat) normalizedTalk.providers = {
198
- ...normalizedTalk.providers,
199
- elevenlabs: {
200
- ...legacyProviderCompat,
201
- ...normalizedTalk.providers?.elevenlabs
202
- }
203
- };
204
- const legacyRealtimeCompat = buildLegacyRealtimeTalkCompat(rawTalk, normalizedTalk);
205
- if (legacyRealtimeCompat) normalizedTalk.realtime = {
206
- ...legacyRealtimeCompat,
207
- ...normalizedTalk.realtime
208
- };
209
- if (Object.keys(normalizedTalk).length === 0 || isDeepStrictEqual(normalizedTalk, rawTalk)) return cfg;
210
- changes.push("Normalized talk.provider/providers shape (trimmed provider ids and merged missing compatibility fields).");
211
- if (legacyRealtimeCompat) changes.push("Moved legacy realtime Talk provider/model fields into talk.realtime.");
212
- return {
213
- ...cfg,
214
- talk: normalizedTalk
215
- };
216
- }
217
- //#endregion
218
- //#region src/commands/doctor/shared/legacy-config-core-normalizers.ts
219
- function normalizeLegacyCommandsConfig(cfg, changes) {
220
- const rawCommands = cfg.commands;
221
- if (!isRecord$1(rawCommands) || !("modelsWrite" in rawCommands)) return cfg;
222
- const commands = { ...rawCommands };
223
- delete commands.modelsWrite;
224
- changes.push("Removed deprecated commands.modelsWrite (/models add is deprecated).");
225
- return {
226
- ...cfg,
227
- commands
228
- };
229
- }
230
- function normalizeLegacyBrowserConfig(cfg, changes) {
231
- const rawBrowser = cfg.browser;
232
- if (!isRecord$1(rawBrowser)) return cfg;
233
- const browser = structuredClone(rawBrowser);
234
- let browserChanged = false;
235
- if ("relayBindHost" in browser) {
236
- delete browser.relayBindHost;
237
- browserChanged = true;
238
- changes.push("Removed browser.relayBindHost (legacy Chrome extension relay setting; host-local Chrome now uses Chrome MCP existing-session attach).");
239
- }
240
- const rawProfiles = browser.profiles;
241
- if (isRecord$1(rawProfiles)) {
242
- const profiles = { ...rawProfiles };
243
- let profilesChanged = false;
244
- for (const [profileName, rawProfile] of Object.entries(rawProfiles)) {
245
- if (!isRecord$1(rawProfile)) continue;
246
- if ((normalizeOptionalString(rawProfile.driver) ?? "") !== "extension") continue;
247
- profiles[profileName] = {
248
- ...rawProfile,
249
- driver: "existing-session"
250
- };
251
- profilesChanged = true;
252
- changes.push(`Moved browser.profiles.${profileName}.driver "extension" → "existing-session" (Chrome MCP attach).`);
253
- }
254
- if (profilesChanged) {
255
- browser.profiles = profiles;
256
- browserChanged = true;
257
- }
258
- }
259
- const rawSsrFPolicy = browser.ssrfPolicy;
260
- if (isRecord$1(rawSsrFPolicy) && "allowPrivateNetwork" in rawSsrFPolicy) {
261
- const legacyAllowPrivateNetwork = rawSsrFPolicy.allowPrivateNetwork;
262
- const currentDangerousAllowPrivateNetwork = rawSsrFPolicy.dangerouslyAllowPrivateNetwork;
263
- let resolvedDangerousAllowPrivateNetwork = currentDangerousAllowPrivateNetwork;
264
- if (typeof legacyAllowPrivateNetwork === "boolean" || typeof currentDangerousAllowPrivateNetwork === "boolean") resolvedDangerousAllowPrivateNetwork = legacyAllowPrivateNetwork === true || currentDangerousAllowPrivateNetwork === true;
265
- else if (currentDangerousAllowPrivateNetwork === void 0) resolvedDangerousAllowPrivateNetwork = legacyAllowPrivateNetwork;
266
- const nextSsrFPolicy = { ...rawSsrFPolicy };
267
- delete nextSsrFPolicy.allowPrivateNetwork;
268
- if (resolvedDangerousAllowPrivateNetwork !== void 0) nextSsrFPolicy.dangerouslyAllowPrivateNetwork = resolvedDangerousAllowPrivateNetwork;
269
- browser.ssrfPolicy = nextSsrFPolicy;
270
- browserChanged = true;
271
- changes.push(`Moved browser.ssrfPolicy.allowPrivateNetwork → browser.ssrfPolicy.dangerouslyAllowPrivateNetwork (${String(resolvedDangerousAllowPrivateNetwork)}).`);
272
- }
273
- if (!browserChanged) return cfg;
274
- return {
275
- ...cfg,
276
- browser
277
- };
278
- }
279
- function seedMissingDefaultAccountsFromSingleAccountBase(cfg, changes) {
280
- const channels = cfg.channels;
281
- if (!channels) return cfg;
282
- let channelsChanged = false;
283
- const nextChannels = { ...channels };
284
- for (const [channelId, rawChannel] of Object.entries(channels)) {
285
- if (!isRecord$1(rawChannel)) continue;
286
- const rawAccounts = rawChannel.accounts;
287
- if (!isRecord$1(rawAccounts)) continue;
288
- const accountKeys = Object.keys(rawAccounts);
289
- if (accountKeys.length === 0) continue;
290
- if (accountKeys.some((key) => normalizeOptionalLowercaseString(key) === "default")) continue;
291
- const keysToMove = resolveSingleAccountKeysToMove({
292
- channelKey: channelId,
293
- channel: rawChannel
294
- });
295
- if (keysToMove.length === 0) continue;
296
- const defaultAccount = {};
297
- for (const key of keysToMove) {
298
- const value = rawChannel[key];
299
- defaultAccount[key] = value && typeof value === "object" ? structuredClone(value) : value;
300
- }
301
- const nextChannel = { ...rawChannel };
302
- for (const key of keysToMove) delete nextChannel[key];
303
- nextChannel.accounts = {
304
- ...rawAccounts,
305
- [DEFAULT_ACCOUNT_ID]: defaultAccount
306
- };
307
- nextChannels[channelId] = nextChannel;
308
- channelsChanged = true;
309
- changes.push(`Moved channels.${channelId} single-account top-level values into channels.${channelId}.accounts.default.`);
310
- }
311
- if (!channelsChanged) return cfg;
312
- return {
313
- ...cfg,
314
- channels: nextChannels
315
- };
316
- }
317
- const LEGACY_CODEX_CLI_RUNTIME_ID = "codex-cli";
318
- const CODEX_APP_SERVER_RUNTIME_ID = "codex";
319
- function resolveLegacyWholeAgentRuntimePolicy(raw) {
320
- if (!isRecord$1(raw)) return;
321
- const runtime = normalizeOptionalLowercaseString(raw.id);
322
- if (!runtime || runtime === "auto" || runtime === "fengming") return;
323
- const alias = listLegacyRuntimeModelProviderAliases().find((entry) => entry.cli && normalizeProviderId$1(entry.runtime) === runtime);
324
- return alias ? {
325
- provider: alias.provider,
326
- runtime: alias.runtime,
327
- requiresRuntimePolicy: alias.requiresRuntimePolicy
328
- } : void 0;
329
- }
330
- function migratedRuntimeRequiresPolicy(legacyProvider) {
331
- return legacyRuntimeModelAliasRequiresRuntimePolicy(legacyProvider);
332
- }
333
- function mergeModelEntry(legacyEntry, currentEntry) {
334
- if (!isRecord$1(legacyEntry) || !isRecord$1(currentEntry)) return currentEntry ?? legacyEntry;
335
- return {
336
- ...legacyEntry,
337
- ...currentEntry
338
- };
339
- }
340
- function normalizeLegacyCodexCliAgentRuntimePolicy(raw) {
341
- if (!isRecord$1(raw)) return {
342
- value: raw,
343
- changed: false
344
- };
345
- if (normalizeOptionalLowercaseString(raw.id) !== LEGACY_CODEX_CLI_RUNTIME_ID) return {
346
- value: raw,
347
- changed: false
348
- };
349
- return {
350
- value: {
351
- ...raw,
352
- id: CODEX_APP_SERVER_RUNTIME_ID
353
- },
354
- changed: true
355
- };
356
- }
357
- function normalizeLegacyRuntimeAgentModelConfig(raw) {
358
- if (typeof raw === "string") {
359
- const migrated = migrateLegacyRuntimeModelRef(raw);
360
- return migrated ? {
361
- value: migrated.ref,
362
- changed: true,
363
- selectedRuntime: migrated.runtime,
364
- selectedRuntimeRequiresPolicy: migratedRuntimeRequiresPolicy(migrated.legacyProvider),
365
- selectedRefs: [{
366
- ref: migrated.ref,
367
- runtime: migrated.runtime,
368
- requiresRuntimePolicy: migratedRuntimeRequiresPolicy(migrated.legacyProvider)
369
- }]
370
- } : {
371
- value: raw,
372
- changed: false,
373
- selectedRuntimeRequiresPolicy: false,
374
- selectedRefs: []
375
- };
376
- }
377
- if (!isRecord$1(raw)) return {
378
- value: raw,
379
- changed: false,
380
- selectedRuntimeRequiresPolicy: false,
381
- selectedRefs: []
382
- };
383
- const migratedPrimary = typeof raw.primary === "string" ? migrateLegacyRuntimeModelRef(raw.primary) : null;
384
- let changed = false;
385
- const next = { ...raw };
386
- const selectedRefs = [];
387
- let selectedRuntime = migratedPrimary?.runtime;
388
- let selectedRuntimeRequiresPolicy = migratedPrimary !== null && migratedRuntimeRequiresPolicy(migratedPrimary.legacyProvider);
389
- if (migratedPrimary) {
390
- next.primary = migratedPrimary.ref;
391
- selectedRefs.push({
392
- ref: migratedPrimary.ref,
393
- runtime: migratedPrimary.runtime,
394
- requiresRuntimePolicy: migratedRuntimeRequiresPolicy(migratedPrimary.legacyProvider)
395
- });
396
- changed = true;
397
- }
398
- if (Array.isArray(raw.fallbacks)) next.fallbacks = raw.fallbacks.map((fallback) => {
399
- if (typeof fallback !== "string") return fallback;
400
- const migratedFallback = migrateLegacyRuntimeModelRef(fallback);
401
- if (migratedFallback && (migratedFallback.runtime === selectedRuntime || migratedFallback.legacyProvider === LEGACY_CODEX_CLI_RUNTIME_ID)) {
402
- selectedRuntime ??= migratedFallback.runtime;
403
- selectedRuntimeRequiresPolicy ||= migratedRuntimeRequiresPolicy(migratedFallback.legacyProvider);
404
- selectedRefs.push({
405
- ref: migratedFallback.ref,
406
- runtime: migratedFallback.runtime,
407
- requiresRuntimePolicy: migratedRuntimeRequiresPolicy(migratedFallback.legacyProvider)
408
- });
409
- changed = true;
410
- return migratedFallback.ref;
411
- }
412
- return fallback;
413
- });
414
- if (!changed) return {
415
- value: raw,
416
- changed: false,
417
- selectedRuntimeRequiresPolicy: false,
418
- selectedRefs: []
419
- };
420
- return {
421
- value: next,
422
- changed: true,
423
- selectedRuntime,
424
- selectedRuntimeRequiresPolicy,
425
- selectedRefs
426
- };
427
- }
428
- function runtimeNeedsExplicitModelPolicy(runtime) {
429
- return Boolean(runtime && runtime !== "codex");
430
- }
431
- function modelEntryWithRuntimePolicy(entry, runtime) {
432
- const base = isRecord$1(entry) ? { ...entry } : {};
433
- const currentRuntime = isRecord$1(base.agentRuntime) ? normalizeOptionalLowercaseString(base.agentRuntime.id) : void 0;
434
- if (!currentRuntime || currentRuntime === "auto") base.agentRuntime = {
435
- ...isRecord$1(base.agentRuntime) ? base.agentRuntime : {},
436
- id: runtime
437
- };
438
- return base;
439
- }
440
- function mergeModelEntryWithRuntimePolicy(legacyEntry, currentEntry, runtime, requiresRuntimePolicy = runtimeNeedsExplicitModelPolicy(runtime)) {
441
- const merged = mergeModelEntry(legacyEntry, currentEntry);
442
- return runtime && requiresRuntimePolicy ? modelEntryWithRuntimePolicy(merged, runtime) : merged;
443
- }
444
- function normalizeLegacyRuntimeAllowlistModels(rawModels, selectedRuntime, selectedRuntimeRequiresPolicy) {
445
- if (!isRecord$1(rawModels)) return {
446
- value: rawModels,
447
- changed: false
448
- };
449
- let changed = false;
450
- const next = {};
451
- const legacyEntries = [];
452
- for (const [rawKey, entry] of Object.entries(rawModels)) {
453
- const migrated = migrateLegacyRuntimeModelRef(rawKey);
454
- if (migrated && (migrated.runtime === selectedRuntime || migrated.legacyProvider === LEGACY_CODEX_CLI_RUNTIME_ID)) {
455
- changed = true;
456
- next[rawKey] = mergeModelEntry(entry, next[rawKey]);
457
- legacyEntries.push({
458
- migratedKey: migrated.ref,
459
- entry,
460
- runtime: migrated.runtime,
461
- requiresRuntimePolicy: migratedRuntimeRequiresPolicy(migrated.legacyProvider)
462
- });
463
- continue;
464
- }
465
- next[rawKey] = mergeModelEntry(entry, next[rawKey]);
466
- }
467
- for (const { migratedKey, entry, runtime, requiresRuntimePolicy } of legacyEntries) next[migratedKey] = mergeModelEntryWithRuntimePolicy(entry, next[migratedKey], runtime, requiresRuntimePolicy || runtime === selectedRuntime && selectedRuntimeRequiresPolicy);
468
- return {
469
- value: next,
470
- changed
471
- };
472
- }
473
- function ensureSelectedModelRuntimePolicies(rawModels, selectedRefs) {
474
- if (selectedRefs.length === 0) return {
475
- value: rawModels,
476
- changed: false
477
- };
478
- const next = isRecord$1(rawModels) ? { ...rawModels } : {};
479
- let changed = false;
480
- for (const { ref, runtime, requiresRuntimePolicy } of selectedRefs) {
481
- if (!requiresRuntimePolicy) continue;
482
- const current = next[ref];
483
- const updated = modelEntryWithRuntimePolicy(current, runtime);
484
- if (JSON.stringify(updated) !== JSON.stringify(current ?? {})) {
485
- next[ref] = updated;
486
- changed = true;
487
- }
488
- }
489
- return {
490
- value: next,
491
- changed
492
- };
493
- }
494
- function selectedCanonicalModelRefsForRuntimePolicy(rawModel, provider, runtime, requiresRuntimePolicy) {
495
- const refs = [];
496
- const addRef = (rawRef) => {
497
- if (typeof rawRef !== "string") return;
498
- const trimmed = rawRef.trim();
499
- const slash = trimmed.indexOf("/");
500
- if (slash <= 0 || slash >= trimmed.length - 1) return;
501
- if (normalizeProviderId$1(trimmed.slice(0, slash)) !== normalizeProviderId$1(provider)) return;
502
- refs.push({
503
- ref: trimmed,
504
- runtime,
505
- requiresRuntimePolicy
506
- });
507
- };
508
- if (typeof rawModel === "string") {
509
- addRef(rawModel);
510
- return refs;
511
- }
512
- if (!isRecord$1(rawModel)) return refs;
513
- addRef(rawModel.primary);
514
- if (Array.isArray(rawModel.fallbacks)) for (const fallback of rawModel.fallbacks) addRef(fallback);
515
- return refs;
516
- }
517
- function normalizeLegacyCodexCliRuntimePinsInModels(rawModels, path, changes) {
518
- if (!isRecord$1(rawModels)) return {
519
- value: rawModels,
520
- changed: false
521
- };
522
- let changed = false;
523
- const next = { ...rawModels };
524
- for (const [modelRef, rawEntry] of Object.entries(rawModels)) {
525
- if (!isRecord$1(rawEntry)) continue;
526
- const runtime = normalizeLegacyCodexCliAgentRuntimePolicy(rawEntry.agentRuntime);
527
- if (!runtime.changed) continue;
528
- next[modelRef] = {
529
- ...rawEntry,
530
- agentRuntime: runtime.value
531
- };
532
- changed = true;
533
- changes.push(`Moved ${path}.${sanitizeForLog(modelRef)} agentRuntime.id from codex-cli to codex.`);
534
- }
535
- return {
536
- value: next,
537
- changed
538
- };
539
- }
540
- function normalizeLegacyRuntimeAgentContainer(raw, path, changes) {
541
- let changed = false;
542
- const next = { ...raw };
543
- const legacyWholeAgentRuntime = resolveLegacyWholeAgentRuntimePolicy(raw.agentRuntime);
544
- const model = normalizeLegacyRuntimeAgentModelConfig(raw.model);
545
- if (model.changed) {
546
- next.model = model.value;
547
- changed = true;
548
- const runtimeSuffix = model.selectedRuntime ? ` and selected ${model.selectedRuntime} runtime` : "";
549
- changes.push(`Moved ${path}.model legacy runtime primary refs to canonical provider refs${runtimeSuffix}.`);
550
- }
551
- const models = normalizeLegacyRuntimeAllowlistModels(raw.models, model.selectedRuntime, model.selectedRuntimeRequiresPolicy);
552
- if (models.changed) {
553
- next.models = models.value;
554
- changed = true;
555
- changes.push(`Moved ${path}.models legacy runtime keys to canonical provider keys.`);
556
- }
557
- if (model.selectedRuntime) {
558
- const modelRuntimes = ensureSelectedModelRuntimePolicies(next.models, model.selectedRefs);
559
- if (modelRuntimes.changed) {
560
- next.models = modelRuntimes.value;
561
- changed = true;
562
- changes.push(`Selected ${model.selectedRuntime} runtime for ${path}.models entries.`);
563
- }
564
- }
565
- if (legacyWholeAgentRuntime) {
566
- const selectedRefs = selectedCanonicalModelRefsForRuntimePolicy(next.model ?? raw.model, legacyWholeAgentRuntime.provider, legacyWholeAgentRuntime.runtime, legacyWholeAgentRuntime.requiresRuntimePolicy);
567
- const modelRuntimes = ensureSelectedModelRuntimePolicies(next.models, selectedRefs);
568
- if (modelRuntimes.changed) {
569
- next.models = modelRuntimes.value;
570
- changed = true;
571
- changes.push(`Moved ${path}.agentRuntime.id ${legacyWholeAgentRuntime.runtime} to matching ${legacyWholeAgentRuntime.provider} model runtime policy.`);
572
- }
573
- }
574
- const codexCliRuntimePins = normalizeLegacyCodexCliRuntimePinsInModels(next.models, `${path}.models`, changes);
575
- if (codexCliRuntimePins.changed) {
576
- next.models = codexCliRuntimePins.value;
577
- changed = true;
578
- }
579
- return {
580
- value: next,
581
- changed
582
- };
583
- }
584
- function normalizeLegacyCodexCliProviderRuntimePins(cfg, changes) {
585
- const rawModels = cfg.models;
586
- if (!isRecord$1(rawModels) || !isRecord$1(rawModels.providers)) return {
587
- config: cfg,
588
- changed: false
589
- };
590
- let changed = false;
591
- const nextProviders = { ...rawModels.providers };
592
- for (const [providerId, rawProvider] of Object.entries(rawModels.providers)) {
593
- if (!isRecord$1(rawProvider)) continue;
594
- let providerChanged = false;
595
- const nextProvider = { ...rawProvider };
596
- const providerRuntime = normalizeLegacyCodexCliAgentRuntimePolicy(rawProvider.agentRuntime);
597
- if (providerRuntime.changed) {
598
- nextProvider.agentRuntime = providerRuntime.value;
599
- providerChanged = true;
600
- changes.push(`Moved models.providers.${sanitizeForLog(providerId)} agentRuntime.id from codex-cli to codex.`);
601
- }
602
- if (Array.isArray(rawProvider.models)) {
603
- const nextProviderModels = rawProvider.models.map((entry, index) => {
604
- if (!isRecord$1(entry)) return entry;
605
- const runtime = normalizeLegacyCodexCliAgentRuntimePolicy(entry.agentRuntime);
606
- if (!runtime.changed) return entry;
607
- providerChanged = true;
608
- const modelId = normalizeOptionalString(entry.id) ?? `[${index}]`;
609
- changes.push(`Moved models.providers.${sanitizeForLog(providerId)}.models.${sanitizeForLog(modelId)} agentRuntime.id from codex-cli to codex.`);
610
- return Object.assign({}, entry, { agentRuntime: runtime.value });
611
- });
612
- if (providerChanged) nextProvider.models = nextProviderModels;
613
- }
614
- if (providerChanged) {
615
- nextProviders[providerId] = nextProvider;
616
- changed = true;
617
- }
618
- }
619
- return changed ? {
620
- config: {
621
- ...cfg,
622
- models: {
623
- ...rawModels,
624
- providers: nextProviders
625
- }
626
- },
627
- changed: true
628
- } : {
629
- config: cfg,
630
- changed: false
631
- };
632
- }
633
- function normalizeLegacyRuntimeModelRefs(cfg, changes) {
634
- const cfgWithProviders = normalizeLegacyCodexCliProviderRuntimePins(cfg, changes).config;
635
- const rawAgents = cfgWithProviders.agents;
636
- if (!isRecord$1(rawAgents)) return cfgWithProviders;
637
- let changed = false;
638
- const nextAgents = { ...rawAgents };
639
- if (isRecord$1(rawAgents.defaults)) {
640
- const defaults = normalizeLegacyRuntimeAgentContainer(rawAgents.defaults, "agents.defaults", changes);
641
- if (defaults.changed) {
642
- nextAgents.defaults = defaults.value;
643
- changed = true;
644
- }
645
- }
646
- if (Array.isArray(rawAgents.list)) {
647
- const nextList = rawAgents.list.map((entry, index) => {
648
- if (!isRecord$1(entry)) return entry;
649
- const agentId = normalizeOptionalString(entry.id);
650
- const agent = normalizeLegacyRuntimeAgentContainer(entry, agentId ? `agents.list.${sanitizeForLog(agentId)}` : `agents.list[${index}]`, changes);
651
- if (agent.changed) {
652
- changed = true;
653
- return agent.value;
654
- }
655
- return entry;
656
- });
657
- if (changed) nextAgents.list = nextList;
658
- }
659
- return changed ? {
660
- ...cfgWithProviders,
661
- agents: nextAgents
662
- } : cfgWithProviders;
663
- }
664
- function normalizeLegacyOpenAICodexModelsAddMetadata(cfg, changes) {
665
- const rawModels = cfg.models;
666
- if (!isRecord$1(rawModels) || !isRecord$1(rawModels.providers)) return cfg;
667
- const rawProviders = rawModels.providers;
668
- let providersChanged = false;
669
- const nextProviders = { ...rawProviders };
670
- for (const [providerId, rawProvider] of Object.entries(rawProviders)) {
671
- if (normalizeProviderId$1(providerId) !== "openai-codex" || !isRecord$1(rawProvider)) continue;
672
- const rawProviderModels = rawProvider.models;
673
- if (!Array.isArray(rawProviderModels)) continue;
674
- let providerChanged = false;
675
- const nextModels = [];
676
- for (const model of rawProviderModels) if (isRecord$1(model) && !("metadataSource" in model) && isLegacyModelsAddCodexMetadataModel({
677
- provider: providerId,
678
- model
679
- })) {
680
- providerChanged = true;
681
- const safeProviderId = sanitizeForLog(providerId);
682
- const safeModelId = sanitizeForLog(normalizeOptionalString(model.id) ?? "unknown");
683
- changes.push(`Marked models.providers.${safeProviderId}.models.${safeModelId} as /models add metadata so official OpenAI Codex metadata can override it.`);
684
- nextModels.push(Object.assign({}, model, { metadataSource: "models-add" }));
685
- } else nextModels.push(model);
686
- if (!providerChanged) continue;
687
- nextProviders[providerId] = {
688
- ...rawProvider,
689
- models: nextModels
690
- };
691
- providersChanged = true;
692
- }
693
- if (!providersChanged) return cfg;
694
- return {
695
- ...cfg,
696
- models: {
697
- ...rawModels,
698
- providers: nextProviders
699
- }
700
- };
701
- }
702
- function normalizeLegacyOpenAIModelProviderApi(cfg, changes) {
703
- const rawModels = cfg.models;
704
- if (!isRecord$1(rawModels) || !isRecord$1(rawModels.providers)) return cfg;
705
- const rawProviders = rawModels.providers;
706
- let providersChanged = false;
707
- const nextProviders = { ...rawProviders };
708
- for (const [providerId, rawProvider] of Object.entries(rawProviders)) {
709
- if (!isRecord$1(rawProvider)) continue;
710
- let providerChanged = false;
711
- const nextProvider = { ...rawProvider };
712
- if (nextProvider.api === "openai") {
713
- nextProvider.api = "openai-completions";
714
- providerChanged = true;
715
- changes.push(`Moved models.providers.${sanitizeForLog(providerId)}.api "openai" → "openai-completions".`);
716
- }
717
- const rawProviderModels = rawProvider.models;
718
- if (Array.isArray(rawProviderModels)) {
719
- let modelsChanged = false;
720
- const nextModels = [];
721
- rawProviderModels.forEach((model, index) => {
722
- if (!isRecord$1(model) || model.api !== "openai") {
723
- nextModels.push(model);
724
- return;
725
- }
726
- modelsChanged = true;
727
- changes.push(`Moved models.providers.${sanitizeForLog(providerId)}.models[${index}].api "openai" → "openai-completions".`);
728
- nextModels.push({
729
- ...model,
730
- api: "openai-completions"
731
- });
732
- });
733
- if (modelsChanged) {
734
- nextProvider.models = nextModels;
735
- providerChanged = true;
736
- }
737
- }
738
- if (!providerChanged) continue;
739
- nextProviders[providerId] = nextProvider;
740
- providersChanged = true;
741
- }
742
- if (!providersChanged) return cfg;
743
- return {
744
- ...cfg,
745
- models: {
746
- ...rawModels,
747
- providers: nextProviders
748
- }
749
- };
750
- }
751
- function normalizeLegacyNanoBananaSkill(cfg, changes) {
752
- const NANO_BANANA_SKILL_KEY = "nano-banana-pro";
753
- const NANO_BANANA_MODEL = "google/gemini-3-pro-image-preview";
754
- const rawSkills = cfg.skills;
755
- if (!isRecord$1(rawSkills)) return cfg;
756
- let next = cfg;
757
- let skillsChanged = false;
758
- const skills = structuredClone(rawSkills);
759
- if (Array.isArray(skills.allowBundled)) {
760
- const allowBundled = skills.allowBundled.filter((value) => typeof value !== "string" || value.trim() !== NANO_BANANA_SKILL_KEY);
761
- if (allowBundled.length !== skills.allowBundled.length) {
762
- if (allowBundled.length === 0) {
763
- delete skills.allowBundled;
764
- changes.push(`Removed skills.allowBundled entry for ${NANO_BANANA_SKILL_KEY}.`);
765
- } else {
766
- skills.allowBundled = allowBundled;
767
- changes.push(`Removed ${NANO_BANANA_SKILL_KEY} from skills.allowBundled.`);
768
- }
769
- skillsChanged = true;
770
- }
771
- }
772
- const rawEntries = skills.entries;
773
- if (!isRecord$1(rawEntries)) {
774
- if (!skillsChanged) return cfg;
775
- return {
776
- ...cfg,
777
- skills
778
- };
779
- }
780
- const rawLegacyEntry = rawEntries[NANO_BANANA_SKILL_KEY];
781
- if (!isRecord$1(rawLegacyEntry)) {
782
- if (!skillsChanged) return cfg;
783
- return {
784
- ...cfg,
785
- skills
786
- };
787
- }
788
- if (next.agents?.defaults?.imageGenerationModel === void 0) {
789
- next = {
790
- ...next,
791
- agents: {
792
- ...next.agents,
793
- defaults: {
794
- ...next.agents?.defaults,
795
- imageGenerationModel: { primary: NANO_BANANA_MODEL }
796
- }
797
- }
798
- };
799
- changes.push(`Moved skills.entries.${NANO_BANANA_SKILL_KEY} → agents.defaults.imageGenerationModel.primary (${NANO_BANANA_MODEL}).`);
800
- }
801
- const legacyEnvApiKey = normalizeOptionalString((isRecord$1(rawLegacyEntry.env) ? rawLegacyEntry.env : void 0)?.GEMINI_API_KEY) ?? "";
802
- const legacyApiKey = legacyEnvApiKey || (typeof rawLegacyEntry.apiKey === "string" ? normalizeOptionalString(rawLegacyEntry.apiKey) : rawLegacyEntry.apiKey && isRecord$1(rawLegacyEntry.apiKey) ? structuredClone(rawLegacyEntry.apiKey) : void 0);
803
- const rawModels = isRecord$1(next.models) ? structuredClone(next.models) : {};
804
- const rawProviders = isRecord$1(rawModels.providers) ? { ...rawModels.providers } : {};
805
- const rawGoogle = isRecord$1(rawProviders.google) ? { ...rawProviders.google } : {};
806
- if (!(rawGoogle.apiKey !== void 0) && legacyApiKey) {
807
- rawGoogle.apiKey = legacyApiKey;
808
- if (!rawGoogle.baseUrl) rawGoogle.baseUrl = DEFAULT_GOOGLE_API_BASE_URL;
809
- if (!Array.isArray(rawGoogle.models)) rawGoogle.models = [];
810
- rawProviders.google = rawGoogle;
811
- rawModels.providers = rawProviders;
812
- next = {
813
- ...next,
814
- models: rawModels
815
- };
816
- changes.push(`Moved skills.entries.${NANO_BANANA_SKILL_KEY}.${legacyEnvApiKey ? "env.GEMINI_API_KEY" : "apiKey"} → models.providers.google.apiKey.`);
817
- }
818
- const entries = { ...rawEntries };
819
- delete entries[NANO_BANANA_SKILL_KEY];
820
- if (Object.keys(entries).length === 0) delete skills.entries;
821
- else skills.entries = entries;
822
- changes.push(`Removed legacy skills.entries.${NANO_BANANA_SKILL_KEY}.`);
823
- skillsChanged = true;
824
- if (Object.keys(skills).length === 0) {
825
- const { skills: _ignored, ...rest } = next;
826
- return rest;
827
- }
828
- if (!skillsChanged) return next;
829
- return {
830
- ...next,
831
- skills
832
- };
833
- }
834
- function normalizeLegacyCrossContextMessageConfig(cfg, changes) {
835
- const rawTools = cfg.tools;
836
- if (!isRecord$1(rawTools)) return cfg;
837
- const rawMessage = rawTools.message;
838
- if (!isRecord$1(rawMessage) || !("allowCrossContextSend" in rawMessage)) return cfg;
839
- const legacyAllowCrossContextSend = rawMessage.allowCrossContextSend;
840
- if (typeof legacyAllowCrossContextSend !== "boolean") return cfg;
841
- const nextMessage = { ...rawMessage };
842
- delete nextMessage.allowCrossContextSend;
843
- if (legacyAllowCrossContextSend) {
844
- const rawCrossContext = isRecord$1(nextMessage.crossContext) ? structuredClone(nextMessage.crossContext) : {};
845
- rawCrossContext.allowWithinProvider = true;
846
- rawCrossContext.allowAcrossProviders = true;
847
- nextMessage.crossContext = rawCrossContext;
848
- changes.push("Moved tools.message.allowCrossContextSend → tools.message.crossContext.allowWithinProvider/allowAcrossProviders (true).");
849
- } else changes.push("Removed tools.message.allowCrossContextSend=false (default cross-context policy already matches canonical settings).");
850
- return {
851
- ...cfg,
852
- tools: {
853
- ...cfg.tools,
854
- message: nextMessage
855
- }
856
- };
857
- }
858
- function mapDeepgramCompatToProviderOptions(rawCompat) {
859
- const providerOptions = {};
860
- if (typeof rawCompat.detectLanguage === "boolean") providerOptions.detect_language = rawCompat.detectLanguage;
861
- if (typeof rawCompat.punctuate === "boolean") providerOptions.punctuate = rawCompat.punctuate;
862
- if (typeof rawCompat.smartFormat === "boolean") providerOptions.smart_format = rawCompat.smartFormat;
863
- return providerOptions;
864
- }
865
- function migrateLegacyDeepgramCompat(params) {
866
- const rawCompat = isRecord$1(params.owner.deepgram) ? structuredClone(params.owner.deepgram) : null;
867
- if (!rawCompat) return false;
868
- const compatProviderOptions = mapDeepgramCompatToProviderOptions(rawCompat);
869
- const currentProviderOptions = isRecord$1(params.owner.providerOptions) ? structuredClone(params.owner.providerOptions) : {};
870
- const currentDeepgram = isRecord$1(currentProviderOptions.deepgram) ? structuredClone(currentProviderOptions.deepgram) : {};
871
- const mergedDeepgram = {
872
- ...compatProviderOptions,
873
- ...currentDeepgram
874
- };
875
- delete params.owner.deepgram;
876
- currentProviderOptions.deepgram = mergedDeepgram;
877
- params.owner.providerOptions = currentProviderOptions;
878
- const hadCanonicalDeepgram = Object.keys(currentDeepgram).length > 0;
879
- params.changes.push(hadCanonicalDeepgram ? `Merged ${params.pathPrefix}.deepgram → ${params.pathPrefix}.providerOptions.deepgram (filled missing canonical fields from legacy).` : `Moved ${params.pathPrefix}.deepgram → ${params.pathPrefix}.providerOptions.deepgram.`);
880
- return true;
881
- }
882
- function normalizeLegacyMediaProviderOptions(cfg, changes) {
883
- const rawTools = cfg.tools;
884
- if (!isRecord$1(rawTools)) return cfg;
885
- const rawMedia = rawTools.media;
886
- if (!isRecord$1(rawMedia)) return cfg;
887
- let mediaChanged = false;
888
- const nextMedia = structuredClone(rawMedia);
889
- const migrateModelList = (models, pathPrefix) => {
890
- if (!Array.isArray(models)) return false;
891
- let changedAny = false;
892
- for (const [index, entry] of models.entries()) {
893
- if (!isRecord$1(entry)) continue;
894
- if (migrateLegacyDeepgramCompat({
895
- owner: entry,
896
- pathPrefix: `${pathPrefix}[${index}]`,
897
- changes
898
- })) changedAny = true;
899
- }
900
- return changedAny;
901
- };
902
- for (const capability of [
903
- "audio",
904
- "image",
905
- "video"
906
- ]) {
907
- const config = isRecord$1(nextMedia[capability]) ? structuredClone(nextMedia[capability]) : null;
908
- if (!config) continue;
909
- let configChanged = false;
910
- if (migrateLegacyDeepgramCompat({
911
- owner: config,
912
- pathPrefix: `tools.media.${capability}`,
913
- changes
914
- })) configChanged = true;
915
- if (migrateModelList(config.models, `tools.media.${capability}.models`)) configChanged = true;
916
- if (configChanged) {
917
- nextMedia[capability] = config;
918
- mediaChanged = true;
919
- }
920
- }
921
- if (migrateModelList(nextMedia.models, "tools.media.models")) mediaChanged = true;
922
- if (!mediaChanged) return cfg;
923
- return {
924
- ...cfg,
925
- tools: {
926
- ...cfg.tools,
927
- media: nextMedia
928
- }
929
- };
930
- }
931
- function normalizeConfiguredPositiveInteger(value) {
932
- if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return;
933
- return Math.floor(value);
934
- }
935
- function resolveConfiguredOllamaModelNumCtxBudget(params) {
936
- const modelContextWindow = normalizeConfiguredPositiveInteger(params.model.contextWindow);
937
- if (modelContextWindow !== void 0) return modelContextWindow;
938
- const providerContextWindow = normalizeConfiguredPositiveInteger(params.provider.contextWindow);
939
- if (providerContextWindow !== void 0) return params.providerNumCtxApplies ? void 0 : providerContextWindow;
940
- const modelMaxTokens = normalizeConfiguredPositiveInteger(params.model.maxTokens);
941
- if (modelMaxTokens !== void 0) return modelMaxTokens;
942
- const providerMaxTokens = normalizeConfiguredPositiveInteger(params.provider.maxTokens);
943
- if (providerMaxTokens !== void 0) return params.providerNumCtxApplies ? void 0 : providerMaxTokens;
944
- }
945
- function resolveConfiguredOllamaProviderNumCtxBudget(provider) {
946
- return normalizeConfiguredPositiveInteger(provider.contextWindow) ?? normalizeConfiguredPositiveInteger(provider.maxTokens);
947
- }
948
- function isNativeOllamaProviderConfig(_providerId, provider) {
949
- return normalizeOptionalLowercaseString(provider.api) === "ollama";
950
- }
951
- function isNativeOllamaModelConfig(params) {
952
- const modelApi = normalizeOptionalLowercaseString(params.model.api);
953
- if (modelApi) return modelApi === "ollama";
954
- const providerApi = normalizeOptionalLowercaseString(params.provider.api);
955
- if (providerApi) return providerApi === "ollama";
956
- return false;
957
- }
958
- function hasConfiguredOllamaProviderNumCtx(provider) {
959
- const rawParams = provider.params;
960
- return isRecord$1(rawParams) && hasOwnKey(rawParams, "num_ctx");
961
- }
962
- function applyLegacyOllamaProviderNumCtxParams(params) {
963
- if (!isNativeOllamaProviderConfig(params.providerId, params.provider)) return {
964
- provider: params.provider,
965
- changed: false
966
- };
967
- const rawParams = params.provider.params;
968
- if (rawParams !== void 0 && !isRecord$1(rawParams)) return {
969
- provider: params.provider,
970
- changed: false
971
- };
972
- if (rawParams && hasOwnKey(rawParams, "num_ctx")) return {
973
- provider: params.provider,
974
- changed: false
975
- };
976
- const numCtx = resolveConfiguredOllamaProviderNumCtxBudget(params.provider);
977
- if (numCtx === void 0) return {
978
- provider: params.provider,
979
- changed: false
980
- };
981
- params.changes.push(`Set models.providers.${sanitizeForLog(params.providerId)}.params.num_ctx to ${numCtx} for native Ollama compatibility.`);
982
- return {
983
- provider: {
984
- ...params.provider,
985
- params: rawParams ? {
986
- ...rawParams,
987
- num_ctx: numCtx
988
- } : { num_ctx: numCtx }
989
- },
990
- changed: true
991
- };
992
- }
993
- function normalizeLegacyOllamaNativeNumCtxParams(cfg, changes) {
994
- const rawProviders = cfg.models?.providers;
995
- if (!isRecord$1(rawProviders)) return cfg;
996
- let providersChanged = false;
997
- const nextProviders = { ...rawProviders };
998
- for (const [providerId, rawProvider] of Object.entries(rawProviders)) {
999
- if (!isRecord$1(rawProvider)) continue;
1000
- const rawModels = rawProvider.models;
1001
- if (!Array.isArray(rawModels)) continue;
1002
- const providerParams = applyLegacyOllamaProviderNumCtxParams({
1003
- providerId,
1004
- provider: rawProvider,
1005
- changes
1006
- });
1007
- const providerNumCtxApplies = isNativeOllamaProviderConfig(providerId, providerParams.provider) && hasConfiguredOllamaProviderNumCtx(providerParams.provider);
1008
- if (rawModels.length === 0) {
1009
- if (!providerParams.changed) continue;
1010
- nextProviders[providerId] = providerParams.provider;
1011
- providersChanged = true;
1012
- continue;
1013
- }
1014
- let modelsChanged = false;
1015
- const nextModels = rawModels.map((model, index) => {
1016
- if (!isRecord$1(model)) return model;
1017
- if (!isNativeOllamaModelConfig({
1018
- providerId,
1019
- provider: providerParams.provider,
1020
- model
1021
- })) return model;
1022
- const rawParams = model.params;
1023
- if (rawParams !== void 0 && !isRecord$1(rawParams)) return model;
1024
- if (rawParams && hasOwnKey(rawParams, "num_ctx")) return model;
1025
- const numCtx = resolveConfiguredOllamaModelNumCtxBudget({
1026
- model,
1027
- provider: providerParams.provider,
1028
- providerNumCtxApplies
1029
- });
1030
- if (numCtx === void 0) return model;
1031
- modelsChanged = true;
1032
- changes.push(`Set models.providers.${sanitizeForLog(providerId)}.models[${index}].params.num_ctx to ${numCtx} for native Ollama compatibility.`);
1033
- return Object.assign({}, model, { params: rawParams ? {
1034
- ...rawParams,
1035
- num_ctx: numCtx
1036
- } : { num_ctx: numCtx } });
1037
- });
1038
- if (!modelsChanged && !providerParams.changed) continue;
1039
- nextProviders[providerId] = {
1040
- ...providerParams.provider,
1041
- models: nextModels
1042
- };
1043
- providersChanged = true;
1044
- }
1045
- if (!providersChanged) return cfg;
1046
- return {
1047
- ...cfg,
1048
- models: {
1049
- ...cfg.models,
1050
- providers: nextProviders
1051
- }
1052
- };
1053
- }
1054
- function normalizeLegacyMistralModelMaxTokens(cfg, changes) {
1055
- const rawProviders = cfg.models?.providers;
1056
- if (!isRecord$1(rawProviders)) return cfg;
1057
- let providersChanged = false;
1058
- const nextProviders = { ...rawProviders };
1059
- for (const [providerId, rawProvider] of Object.entries(rawProviders)) {
1060
- if (normalizeProviderId$1(providerId) !== "mistral" || !isRecord$1(rawProvider)) continue;
1061
- const rawModels = rawProvider.models;
1062
- if (!Array.isArray(rawModels)) continue;
1063
- let modelsChanged = false;
1064
- const nextModels = rawModels.map((model, index) => {
1065
- if (!isRecord$1(model)) return model;
1066
- const modelId = normalizeOptionalString(model.id) ?? "";
1067
- const contextWindow = typeof model.contextWindow === "number" && Number.isFinite(model.contextWindow) ? model.contextWindow : null;
1068
- const maxTokens = typeof model.maxTokens === "number" && Number.isFinite(model.maxTokens) ? model.maxTokens : null;
1069
- if (!modelId || contextWindow === null || maxTokens === null) return model;
1070
- const normalizedMaxTokens = resolveNormalizedProviderModelMaxTokens({
1071
- providerId,
1072
- modelId,
1073
- contextWindow,
1074
- rawMaxTokens: maxTokens
1075
- });
1076
- if (normalizedMaxTokens === maxTokens) return model;
1077
- modelsChanged = true;
1078
- changes.push(`Normalized models.providers.${providerId}.models[${index}].maxTokens (${maxTokens} → ${normalizedMaxTokens}) to avoid Mistral context-window rejects.`);
1079
- return Object.assign({}, model, { maxTokens: normalizedMaxTokens });
1080
- });
1081
- if (!modelsChanged) continue;
1082
- nextProviders[providerId] = {
1083
- ...rawProvider,
1084
- models: nextModels
1085
- };
1086
- providersChanged = true;
1087
- }
1088
- if (!providersChanged) return cfg;
1089
- return {
1090
- ...cfg,
1091
- models: {
1092
- ...cfg.models,
1093
- providers: nextProviders
1094
- }
1095
- };
1096
- }
1097
- //#endregion
1098
- //#region src/commands/doctor/shared/legacy-web-fetch-migrate.ts
1099
- const DANGEROUS_RECORD_KEYS = new Set([
1100
- "__proto__",
1101
- "prototype",
1102
- "constructor"
1103
- ]);
1104
- function resolveLegacyFetchConfig(raw) {
1105
- if (!isRecord$1(raw)) return;
1106
- const tools = isRecord$1(raw.tools) ? raw.tools : void 0;
1107
- const web = isRecord$1(tools?.web) ? tools.web : void 0;
1108
- return isRecord$1(web?.fetch) ? web.fetch : void 0;
1109
- }
1110
- function copyLegacyFirecrawlFetchConfig(fetch) {
1111
- const current = fetch.firecrawl;
1112
- if (!isRecord$1(current)) return;
1113
- const next = cloneRecord(current);
1114
- delete next.enabled;
1115
- return next;
1116
- }
1117
- function hasMappedLegacyWebFetchConfig(raw) {
1118
- const fetch = resolveLegacyFetchConfig(raw);
1119
- if (!fetch) return false;
1120
- return isRecord$1(fetch.firecrawl);
1121
- }
1122
- function migratePluginWebFetchConfig(params) {
1123
- const entry = ensureRecord(ensureRecord(ensureRecord(params.root, "plugins"), "entries"), "firecrawl");
1124
- const config = ensureRecord(entry, "config");
1125
- const hadEnabled = entry.enabled !== void 0;
1126
- const existing = isRecord$1(config.webFetch) ? cloneRecord(config.webFetch) : void 0;
1127
- if (!hadEnabled) entry.enabled = true;
1128
- if (!existing) {
1129
- config.webFetch = cloneRecord(params.payload);
1130
- params.changes.push("Moved tools.web.fetch.firecrawl → plugins.entries.firecrawl.config.webFetch.");
1131
- return;
1132
- }
1133
- const merged = cloneRecord(existing);
1134
- mergeMissing(merged, params.payload);
1135
- const changed = JSON.stringify(merged) !== JSON.stringify(existing) || !hadEnabled;
1136
- config.webFetch = merged;
1137
- if (changed) {
1138
- params.changes.push("Merged tools.web.fetch.firecrawl → plugins.entries.firecrawl.config.webFetch (filled missing fields from legacy; kept explicit plugin config values).");
1139
- return;
1140
- }
1141
- params.changes.push("Removed tools.web.fetch.firecrawl (plugins.entries.firecrawl.config.webFetch already set).");
1142
- }
1143
- function migrateLegacyWebFetchConfig(raw) {
1144
- if (!isRecord$1(raw) || !hasMappedLegacyWebFetchConfig(raw)) return {
1145
- config: raw,
1146
- changes: []
1147
- };
1148
- return normalizeLegacyWebFetchConfigRecord(raw);
1149
- }
1150
- function normalizeLegacyWebFetchConfigRecord(raw) {
1151
- const nextRoot = structuredClone(raw);
1152
- const web = ensureRecord(ensureRecord(nextRoot, "tools"), "web");
1153
- const fetch = resolveLegacyFetchConfig(nextRoot);
1154
- if (!fetch) return {
1155
- config: raw,
1156
- changes: []
1157
- };
1158
- const nextFetch = {};
1159
- for (const [key, value] of Object.entries(fetch)) {
1160
- if (key === "firecrawl" && isRecord$1(value)) continue;
1161
- if (DANGEROUS_RECORD_KEYS.has(key)) continue;
1162
- nextFetch[key] = value;
1163
- }
1164
- web.fetch = nextFetch;
1165
- const firecrawl = copyLegacyFirecrawlFetchConfig(fetch);
1166
- const changes = [];
1167
- if (firecrawl && Object.keys(firecrawl).length > 0) migratePluginWebFetchConfig({
1168
- root: nextRoot,
1169
- payload: firecrawl,
1170
- changes
1171
- });
1172
- else if (hasOwnKey(fetch, "firecrawl")) changes.push("Removed empty tools.web.fetch.firecrawl.");
1173
- return {
1174
- config: nextRoot,
1175
- changes
1176
- };
1177
- }
1178
- //#endregion
1179
- //#region src/commands/doctor/shared/legacy-config-compatibility-base.ts
1180
- function normalizeBaseCompatibilityConfigValues(cfg, changes, afterBrowser) {
1181
- let next = seedMissingDefaultAccountsFromSingleAccountBase(cfg, changes);
1182
- next = normalizeLegacyBrowserConfig(next, changes);
1183
- next = afterBrowser ? afterBrowser(next) : next;
1184
- for (const migrate of [
1185
- migrateLegacyWebSearchConfig,
1186
- migrateLegacyWebFetchConfig,
1187
- migrateLegacyXSearchConfig
1188
- ]) {
1189
- const migrated = migrate(next);
1190
- if (migrated.changes.length === 0) continue;
1191
- next = migrated.config;
1192
- changes.push(...migrated.changes);
1193
- }
1194
- next = normalizeLegacyNanoBananaSkill(next, changes);
1195
- next = normalizeLegacyTalkConfig(next, changes);
1196
- next = normalizeLegacyOpenAIModelProviderApi(next, changes);
1197
- next = normalizeLegacyRuntimeModelRefs(next, changes);
1198
- next = normalizeLegacyCrossContextMessageConfig(next, changes);
1199
- next = normalizeLegacyMediaProviderOptions(next, changes);
1200
- next = normalizeLegacyOllamaNativeNumCtxParams(next, changes);
1201
- return normalizeLegacyMistralModelMaxTokens(next, changes);
1202
- }
1203
- //#endregion
1204
- //#region src/commands/doctor/shared/legacy-config-core-migrate.ts
1205
- function pruneBindingsForMissingAgents(cfg, changes) {
1206
- const agents = cfg.agents?.list;
1207
- const bindings = cfg.bindings;
1208
- if (!Array.isArray(agents) || agents.length === 0 || !Array.isArray(bindings)) return cfg;
1209
- const validAgents = agents.filter((agent) => {
1210
- return agent !== null && typeof agent === "object" && typeof agent.id === "string";
1211
- });
1212
- if (validAgents.length !== agents.length) return cfg;
1213
- const agentIds = new Set(validAgents.map((agent) => normalizeAgentId(agent.id)));
1214
- const nextBindings = bindings.filter((binding) => {
1215
- const agentId = binding && typeof binding === "object" ? binding.agentId : void 0;
1216
- return typeof agentId !== "string" || agentIds.has(normalizeAgentId(agentId));
1217
- });
1218
- const removed = bindings.length - nextBindings.length;
1219
- if (removed === 0) return cfg;
1220
- changes.push(`Removed ${removed} binding${removed === 1 ? "" : "s"} that referenced missing agents.list ids.`);
1221
- return {
1222
- ...cfg,
1223
- ...nextBindings.length > 0 ? { bindings: nextBindings } : { bindings: void 0 }
1224
- };
1225
- }
1226
- function normalizeCompatibilityConfigValues(cfg) {
1227
- const changes = [];
1228
- let next = normalizeBaseCompatibilityConfigValues(cfg, changes, (config) => {
1229
- const setupMigration = runPluginSetupConfigMigrations({ config });
1230
- if (setupMigration.changes.length === 0) return config;
1231
- changes.push(...setupMigration.changes);
1232
- return setupMigration.config;
1233
- });
1234
- const channelMigrations = applyChannelDoctorCompatibilityMigrations(next);
1235
- if (channelMigrations.changes.length > 0) {
1236
- next = channelMigrations.next;
1237
- changes.push(...channelMigrations.changes);
1238
- }
1239
- const secretRefMarkers = migrateLegacySecretRefEnvMarkers(next);
1240
- if (secretRefMarkers.changes.length > 0) {
1241
- next = secretRefMarkers.config;
1242
- changes.push(...secretRefMarkers.changes);
1243
- }
1244
- next = normalizeLegacyCommandsConfig(next, changes);
1245
- next = normalizeLegacyOpenAICodexModelsAddMetadata(next, changes);
1246
- next = pruneBindingsForMissingAgents(next, changes);
1247
- return {
1248
- config: next,
1249
- changes
1250
- };
1251
- }
1252
- //#endregion
1253
- //#region src/commands/doctor/emit-notes.ts
1254
- function sanitizeDoctorNote(note) {
1255
- return note.split("\n").map((line) => sanitizeForLog(line)).join("\n");
1256
- }
1257
- function emitDoctorNotes(params) {
1258
- for (const change of params.changeNotes ?? []) params.note(sanitizeDoctorNote(change), "Doctor changes");
1259
- for (const info of params.infoNotes ?? []) params.note(sanitizeDoctorNote(info), "Doctor info");
1260
- for (const warning of params.warningNotes ?? []) params.note(sanitizeDoctorNote(warning), "Doctor warnings");
1261
- }
1262
- //#endregion
1263
- //#region src/commands/doctor/finalize-config-flow.ts
1264
- async function finalizeDoctorConfigFlow(params) {
1265
- if (!params.shouldRepair && params.pendingChanges) {
1266
- if (await params.confirm({
1267
- message: "现在应用推荐的配置修复吗?",
1268
- initialValue: true
1269
- })) return {
1270
- cfg: params.candidate,
1271
- shouldWriteConfig: true
1272
- };
1273
- if (params.fixHints.length > 0) params.note(params.fixHints.join("\n"), "Doctor");
1274
- return {
1275
- cfg: params.cfg,
1276
- shouldWriteConfig: false
1277
- };
1278
- }
1279
- if (params.shouldRepair && params.pendingChanges) return {
1280
- cfg: params.cfg,
1281
- shouldWriteConfig: true
1282
- };
1283
- return {
1284
- cfg: params.cfg,
1285
- shouldWriteConfig: false
1286
- };
1287
- }
1288
- //#endregion
1289
- //#region src/commands/doctor-auth-profile-config.ts
1290
- const AUTH_PROFILE_MODES = new Set([
1291
- "api_key",
1292
- "aws-sdk",
1293
- "oauth",
1294
- "token"
1295
- ]);
1296
- function normalizeProviderId(value) {
1297
- return normalizeLowercaseStringOrEmpty(value);
1298
- }
1299
- function normalizeProfileId(value) {
1300
- return normalizeOptionalString(value) ?? null;
1301
- }
1302
- function normalizeMode(value) {
1303
- return typeof value === "string" && AUTH_PROFILE_MODES.has(value) ? value : null;
1304
- }
1305
- function extractProviderFromModelRef(value) {
1306
- const { model } = splitTrailingAuthProfile(value);
1307
- const slash = model.indexOf("/");
1308
- if (slash <= 0) return null;
1309
- return normalizeProviderId(model.slice(0, slash)) || null;
1310
- }
1311
- function extractProviderFromProfileId(profileId) {
1312
- const colon = profileId.indexOf(":");
1313
- if (colon <= 0) return null;
1314
- return normalizeProviderId(profileId.slice(0, colon)) || null;
1315
- }
1316
- function collectActiveAuthHints(config) {
1317
- const activeProviders = /* @__PURE__ */ new Set();
1318
- const explicitProfileIds = /* @__PURE__ */ new Set();
1319
- const explicitProfileProviders = /* @__PURE__ */ new Map();
1320
- const models = isRecord$1(config.models) ? config.models : {};
1321
- const providers = isRecord$1(models.providers) ? models.providers : {};
1322
- for (const providerId of Object.keys(providers)) {
1323
- const normalized = normalizeProviderId(providerId);
1324
- if (normalized) activeProviders.add(normalized);
1325
- }
1326
- for (const { value } of collectConfiguredModelRefs(config)) {
1327
- const { profile } = splitTrailingAuthProfile(value);
1328
- const provider = extractProviderFromModelRef(value);
1329
- if (profile) {
1330
- explicitProfileIds.add(profile);
1331
- if (provider) {
1332
- const providers = explicitProfileProviders.get(profile) ?? /* @__PURE__ */ new Set();
1333
- providers.add(provider);
1334
- explicitProfileProviders.set(profile, providers);
1335
- }
1336
- }
1337
- if (provider) activeProviders.add(provider);
1338
- }
1339
- const auth = isRecord$1(config.auth) ? config.auth : {};
1340
- const order = isRecord$1(auth.order) ? auth.order : {};
1341
- for (const [providerId, profileIds] of Object.entries(order)) {
1342
- const provider = normalizeProviderId(providerId);
1343
- if (!provider || !activeProviders.has(provider) || !Array.isArray(profileIds)) continue;
1344
- for (const profileId of profileIds) {
1345
- const normalized = normalizeProfileId(profileId);
1346
- if (normalized) explicitProfileIds.add(normalized);
1347
- }
1348
- }
1349
- return {
1350
- activeProviders,
1351
- explicitProfileIds,
1352
- explicitProfileProviders
1353
- };
1354
- }
1355
- function isValidProfileMetadata(value) {
1356
- if (!isRecord$1(value)) return false;
1357
- return normalizeProviderId(value.provider) !== "" && normalizeMode(value.mode) !== null;
1358
- }
1359
- function buildProfileMetadata(params) {
1360
- const before = isRecord$1(params.before) ? params.before : {};
1361
- const after = isRecord$1(params.after) ? params.after : {};
1362
- const provider = normalizeProviderId(after.provider) || normalizeProviderId(before.provider) || extractProviderFromProfileId(params.profileId) || normalizeProviderId(params.providerHint);
1363
- if (!provider) return null;
1364
- const repaired = {
1365
- provider,
1366
- mode: normalizeMode(after.mode) ?? normalizeMode(before.mode) ?? "api_key"
1367
- };
1368
- const email = normalizeOptionalString(after.email) ?? normalizeOptionalString(before.email);
1369
- const displayName = normalizeOptionalString(after.displayName) ?? normalizeOptionalString(before.displayName);
1370
- if (email) repaired.email = email;
1371
- if (displayName) repaired.displayName = displayName;
1372
- return repaired;
1373
- }
1374
- function ensureAuthProfiles(config) {
1375
- const root = config;
1376
- const auth = isRecord$1(root.auth) ? root.auth : {};
1377
- if (root.auth !== auth) root.auth = auth;
1378
- if (!isRecord$1(auth.profiles)) auth.profiles = {};
1379
- return auth.profiles;
1380
- }
1381
- function protectActiveAuthProfileConfig(params) {
1382
- const { activeProviders, explicitProfileIds, explicitProfileProviders } = collectActiveAuthHints(params.before);
1383
- const beforeAuth = isRecord$1(params.before.auth) ? params.before.auth : {};
1384
- const beforeProfiles = isRecord$1(beforeAuth.profiles) ? beforeAuth.profiles : {};
1385
- if (Object.keys(beforeProfiles).length === 0) return {
1386
- config: params.after,
1387
- repairs: [],
1388
- warnings: []
1389
- };
1390
- const config = structuredClone(params.after);
1391
- const afterAuth = isRecord$1(config.auth) ? config.auth : {};
1392
- const afterProfiles = isRecord$1(afterAuth.profiles) ? afterAuth.profiles : {};
1393
- const repairs = [];
1394
- const warnings = [];
1395
- for (const [profileId, beforeProfile] of Object.entries(beforeProfiles)) {
1396
- const afterProfile = afterProfiles[profileId];
1397
- const afterProfileRecord = isRecord$1(afterProfile) ? afterProfile : null;
1398
- const beforeProfileRecord = isRecord$1(beforeProfile) ? beforeProfile : null;
1399
- if (isValidProfileMetadata(afterProfile)) continue;
1400
- const provider = normalizeProviderId(afterProfileRecord?.provider) || normalizeProviderId(beforeProfileRecord?.provider) || extractProviderFromProfileId(profileId);
1401
- const protectsActiveProvider = !!provider && activeProviders.has(provider);
1402
- const protectsExplicitProfile = explicitProfileIds.has(profileId);
1403
- if (!protectsActiveProvider && !protectsExplicitProfile) continue;
1404
- const repaired = buildProfileMetadata({
1405
- profileId,
1406
- before: beforeProfile,
1407
- after: afterProfile,
1408
- providerHint: explicitProfileProviders.get(profileId)?.size === 1 ? [...explicitProfileProviders.get(profileId) ?? []][0] : void 0
1409
- });
1410
- if (!repaired) {
1411
- warnings.push(`auth.profiles.${profileId}: active auth profile metadata could not be inferred; repair manually before running doctor --fix.`);
1412
- continue;
1413
- }
1414
- const profiles = ensureAuthProfiles(config);
1415
- profiles[profileId] = repaired;
1416
- repairs.push(`Repaired auth.profiles.${profileId} metadata for active ${repaired.provider} auth.`);
1417
- }
1418
- return {
1419
- config,
1420
- repairs,
1421
- warnings
1422
- };
1423
- }
1424
- //#endregion
1425
- //#region src/commands/doctor/shared/legacy-config-compat.ts
1426
- function applyLegacyDoctorMigrations(raw) {
1427
- if (!raw || typeof raw !== "object") return {
1428
- next: null,
1429
- changes: []
1430
- };
1431
- const original = raw;
1432
- const next = structuredClone(original);
1433
- const changes = [];
1434
- for (const migration of LEGACY_CONFIG_MIGRATIONS) migration.apply(next, changes);
1435
- const compat = applyChannelDoctorCompatibilityMigrations(next);
1436
- changes.push(...compat.changes);
1437
- if (changes.length === 0) return {
1438
- next: null,
1439
- changes: []
1440
- };
1441
- return {
1442
- next: compat.next,
1443
- changes
1444
- };
1445
- }
1446
- //#endregion
1447
- //#region src/commands/doctor/shared/legacy-config-migrate.ts
1448
- function migrateLegacyConfig(raw) {
1449
- const { next, changes } = applyLegacyDoctorMigrations(raw);
1450
- if (!next) return {
1451
- config: null,
1452
- changes: []
1453
- };
1454
- const validated = validateConfigObjectWithPlugins(next);
1455
- if (!validated.ok) {
1456
- changes.push("Migration applied; other validation issues remain — run doctor to review.");
1457
- return {
1458
- config: next,
1459
- changes,
1460
- partiallyValid: true
1461
- };
1462
- }
1463
- return {
1464
- config: validated.config,
1465
- changes
1466
- };
1467
- }
1468
- //#endregion
1469
- //#region src/commands/doctor/shared/config-flow-steps.ts
1470
- function applyLegacyCompatibilityStep(params) {
1471
- if (params.snapshot.legacyIssues.length === 0) return {
1472
- state: params.state,
1473
- issueLines: [],
1474
- changeLines: []
1475
- };
1476
- const issueLines = formatConfigIssueLines(params.snapshot.legacyIssues, "-");
1477
- const { config: migrated, changes, partiallyValid } = migrateLegacyConfig(params.snapshot.parsed);
1478
- if (!migrated) return {
1479
- state: {
1480
- ...params.state,
1481
- pendingChanges: params.state.pendingChanges || params.snapshot.legacyIssues.length > 0,
1482
- fixHints: params.shouldRepair ? params.state.fixHints : [...params.state.fixHints, `Run "${params.doctorFixCommand}" to migrate legacy config keys.`]
1483
- },
1484
- issueLines,
1485
- changeLines: changes
1486
- };
1487
- return {
1488
- state: {
1489
- cfg: migrated,
1490
- candidate: migrated,
1491
- pendingChanges: params.state.pendingChanges || params.snapshot.legacyIssues.length > 0,
1492
- fixHints: params.shouldRepair ? params.state.fixHints : [...params.state.fixHints, `Run "${params.doctorFixCommand}" to ${partiallyValid ? "finish fixing" : "migrate"} legacy config keys.`]
1493
- },
1494
- issueLines,
1495
- changeLines: changes,
1496
- partiallyValid: partiallyValid === true ? true : void 0
1497
- };
1498
- }
1499
- function applyUnknownConfigKeyStep(params) {
1500
- const unknown = stripUnknownConfigKeys(params.state.candidate);
1501
- if (unknown.removed.length === 0) return {
1502
- state: params.state,
1503
- removed: [],
1504
- repairs: [],
1505
- warnings: []
1506
- };
1507
- const protectedAuth = protectActiveAuthProfileConfig({
1508
- before: params.state.candidate,
1509
- after: unknown.config
1510
- });
1511
- return {
1512
- state: {
1513
- cfg: params.shouldRepair ? protectedAuth.config : params.state.cfg,
1514
- candidate: protectedAuth.config,
1515
- pendingChanges: true,
1516
- fixHints: params.shouldRepair ? params.state.fixHints : [...params.state.fixHints, `Run "${params.doctorFixCommand}" to remove these keys.`]
1517
- },
1518
- removed: unknown.removed,
1519
- repairs: protectedAuth.repairs,
1520
- warnings: protectedAuth.warnings
1521
- };
1522
- }
1523
- //#endregion
1524
- //#region src/commands/doctor/shared/default-account-warnings.ts
1525
- function normalizeBindingChannelKey(raw) {
1526
- const normalized = normalizeChatChannelId(raw);
1527
- if (normalized) return normalized;
1528
- return normalizeLowercaseStringOrEmpty(raw);
1529
- }
1530
- function collectChannelsMissingDefaultAccount(cfg) {
1531
- const channels = asObjectRecord(cfg.channels);
1532
- if (!channels) return [];
1533
- const contexts = [];
1534
- for (const [channelKey, rawChannel] of Object.entries(channels)) {
1535
- const channel = asObjectRecord(rawChannel);
1536
- if (!channel) continue;
1537
- const accounts = asObjectRecord(channel.accounts);
1538
- if (!accounts) continue;
1539
- const normalizedAccountIds = Array.from(new Set(Object.keys(accounts).map((accountId) => normalizeAccountId(accountId)).filter(Boolean))).toSorted((a, b) => a.localeCompare(b));
1540
- if (normalizedAccountIds.length === 0 || normalizedAccountIds.includes("default")) continue;
1541
- contexts.push({
1542
- channelKey,
1543
- channel,
1544
- normalizedAccountIds
1545
- });
1546
- }
1547
- return contexts;
1548
- }
1549
- function collectMissingDefaultAccountBindingWarnings(cfg) {
1550
- const bindings = listRouteBindings(cfg);
1551
- const warnings = [];
1552
- for (const { channelKey, normalizedAccountIds } of collectChannelsMissingDefaultAccount(cfg)) {
1553
- const accountIdSet = new Set(normalizedAccountIds);
1554
- const channelPattern = normalizeBindingChannelKey(channelKey);
1555
- let hasWildcardBinding = false;
1556
- const coveredAccountIds = /* @__PURE__ */ new Set();
1557
- for (const binding of bindings) {
1558
- const bindingRecord = asObjectRecord(binding);
1559
- if (!bindingRecord) continue;
1560
- const match = asObjectRecord(bindingRecord.match);
1561
- if (!match) continue;
1562
- const matchChannel = typeof match.channel === "string" ? normalizeBindingChannelKey(match.channel) : "";
1563
- if (!matchChannel || matchChannel !== channelPattern) continue;
1564
- const rawAccountId = normalizeOptionalString(match.accountId) ?? "";
1565
- if (!rawAccountId) continue;
1566
- if (rawAccountId === "*") {
1567
- hasWildcardBinding = true;
1568
- continue;
1569
- }
1570
- const normalizedBindingAccountId = normalizeAccountId(rawAccountId);
1571
- if (accountIdSet.has(normalizedBindingAccountId)) coveredAccountIds.add(normalizedBindingAccountId);
1572
- }
1573
- if (hasWildcardBinding) continue;
1574
- const uncoveredAccountIds = normalizedAccountIds.filter((accountId) => !coveredAccountIds.has(accountId));
1575
- if (uncoveredAccountIds.length === 0) continue;
1576
- if (coveredAccountIds.size > 0) {
1577
- warnings.push(`- channels.${channelKey}: accounts.default is missing and account bindings only cover a subset of configured accounts. Uncovered accounts: ${uncoveredAccountIds.join(", ")}. Add bindings[].match.accountId for uncovered accounts (or "*"), or add ${formatChannelAccountsDefaultPath(channelKey)}.`);
1578
- continue;
1579
- }
1580
- warnings.push(`- channels.${channelKey}: accounts.default is missing and no valid account-scoped binding exists for configured accounts (${normalizedAccountIds.join(", ")}). Channel-only bindings (no accountId) match only default. Add bindings[].match.accountId for one of these accounts (or "*"), or add ${formatChannelAccountsDefaultPath(channelKey)}.`);
1581
- }
1582
- return warnings;
1583
- }
1584
- function collectMissingExplicitDefaultAccountWarnings(cfg) {
1585
- const warnings = [];
1586
- for (const { channelKey, channel, normalizedAccountIds } of collectChannelsMissingDefaultAccount(cfg)) {
1587
- if (normalizedAccountIds.length < 2) continue;
1588
- const preferredDefault = normalizeOptionalAccountId(typeof channel.defaultAccount === "string" ? channel.defaultAccount : void 0);
1589
- if (preferredDefault) {
1590
- if (normalizedAccountIds.includes(preferredDefault)) continue;
1591
- warnings.push(`- channels.${channelKey}: defaultAccount is set to "${preferredDefault}" but does not match configured accounts (${normalizedAccountIds.join(", ")}). ${formatSetExplicitDefaultToConfiguredInstruction({ channelKey })} to avoid fallback routing.`);
1592
- continue;
1593
- }
1594
- warnings.push(`- channels.${channelKey}: multiple accounts are configured but no explicit default is set. ${formatSetExplicitDefaultInstruction(channelKey)} to avoid fallback routing.`);
1595
- }
1596
- return warnings;
1597
- }
1598
- //#endregion
1599
- //#region src/commands/doctor-config-flow.ts
1600
- function hasLegacyInternalHookHandlers(raw) {
1601
- const handlers = raw?.hooks?.internal?.handlers;
1602
- return Array.isArray(handlers) && handlers.length > 0;
1603
- }
1604
- function collectInvalidHookTransformsDirWarnings(cfg, configPath) {
1605
- const transformsDir = cfg.hooks?.transformsDir?.trim();
1606
- if (!transformsDir) return [];
1607
- const configDir = path.dirname(configPath);
1608
- const transformsRoot = path.join(configDir, "hooks", "transforms");
1609
- const resolved = path.isAbsolute(transformsDir) ? path.resolve(transformsDir) : path.resolve(transformsRoot, transformsDir);
1610
- const relative = path.relative(transformsRoot, resolved);
1611
- if (!(relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative))) return [];
1612
- return [`- hooks.transformsDir: ${transformsDir} is outside ${transformsRoot}. Hook transform modules must live under ${transformsRoot}; move custom transforms there or remove hooks.transformsDir.`];
1613
- }
1614
- function collectConfiguredChannelIds(cfg) {
1615
- const channels = cfg.channels && typeof cfg.channels === "object" && !Array.isArray(cfg.channels) ? cfg.channels : null;
1616
- if (!channels) return [];
1617
- return Object.keys(channels).filter((channelId) => channelId !== "defaults");
1618
- }
1619
- function emitDoctorChangesPanel(changeLines, shouldRepair, options = {}) {
1620
- if (changeLines.length === 0) return;
1621
- const body = changeLines.join("\n");
1622
- note(options.sanitize ? sanitizeDoctorNote(body) : body, shouldRepair ? "Doctor changes" : "Doctor changes preview");
1623
- }
1624
- async function loadAndMaybeMigrateDoctorConfig(params) {
1625
- const shouldRepair = params.options.repair === true || params.options.yes === true;
1626
- const preflight = await runDoctorConfigPreflight({ repairPrefixedConfig: shouldRepair });
1627
- let snapshot = preflight.snapshot;
1628
- const baseCfg = preflight.baseConfig;
1629
- let cfg = baseCfg;
1630
- let candidate = structuredClone(baseCfg);
1631
- let pendingChanges = false;
1632
- let fixHints = [];
1633
- const doctorFixCommand = formatCliCommand("fengming doctor --fix");
1634
- const sourceMeta = snapshot.sourceConfig?.meta;
1635
- const sourceLastTouchedVersion = typeof sourceMeta?.lastTouchedVersion === "string" ? sourceMeta.lastTouchedVersion : void 0;
1636
- const legacyStep = applyLegacyCompatibilityStep({
1637
- snapshot,
1638
- state: {
1639
- cfg,
1640
- candidate,
1641
- pendingChanges,
1642
- fixHints
1643
- },
1644
- shouldRepair,
1645
- doctorFixCommand
1646
- });
1647
- ({cfg, candidate, pendingChanges, fixHints} = legacyStep.state);
1648
- const legacyMigrationPartiallyValid = legacyStep.partiallyValid === true;
1649
- const pluginLegacyIssues = await (async () => {
1650
- if (snapshot.parsed === snapshot.sourceConfig) return [];
1651
- const { findDoctorLegacyConfigIssues } = await import("./legacy-config-issues-3nswIiwv.js");
1652
- return findDoctorLegacyConfigIssues(snapshot.parsed, snapshot.parsed);
1653
- })();
1654
- const seenLegacyIssues = new Set(snapshot.legacyIssues.map((issue) => `${issue.path}:${issue.message}`));
1655
- const pluginIssueLines = pluginLegacyIssues.filter((issue) => {
1656
- const key = `${issue.path}:${issue.message}`;
1657
- if (seenLegacyIssues.has(key)) return false;
1658
- seenLegacyIssues.add(key);
1659
- return true;
1660
- }).map((issue) => `- ${issue.path}: ${issue.message}`);
1661
- const legacyIssueLines = [...legacyStep.issueLines, ...pluginIssueLines];
1662
- if (pluginIssueLines.length > 0 && !shouldRepair && !fixHints.includes(`Run "${doctorFixCommand}" to migrate legacy config keys.`)) fixHints = [...fixHints, `Run "${doctorFixCommand}" to migrate legacy config keys.`];
1663
- if (legacyIssueLines.length > 0) note(legacyIssueLines.join("\n"), "Legacy config keys detected");
1664
- emitDoctorChangesPanel(legacyStep.changeLines, shouldRepair);
1665
- if (hasLegacyInternalHookHandlers(snapshot.parsed)) note([
1666
- "- hooks.internal.handlers: legacy inline hook modules are no longer part of the public config surface.",
1667
- "- Migrate each entry to a managed or workspace hook directory with HOOK.md + handler.js, then enable it through hooks.internal.entries.<hookKey> as needed.",
1668
- "- fengming doctor --fix does not rewrite this shape automatically."
1669
- ].join("\n"), "Legacy config keys detected");
1670
- const hookTransformsDirWarnings = collectInvalidHookTransformsDirWarnings(cfg, snapshot.path);
1671
- if (hookTransformsDirWarnings.length > 0) note(sanitizeDoctorNote(hookTransformsDirWarnings.join("\n")), "Doctor warnings");
1672
- const normalized = normalizeCompatibilityConfigValues(candidate);
1673
- if (normalized.changes.length > 0) {
1674
- emitDoctorChangesPanel(normalized.changes, shouldRepair);
1675
- ({cfg, candidate, pendingChanges, fixHints} = applyDoctorConfigMutation({
1676
- state: {
1677
- cfg,
1678
- candidate,
1679
- pendingChanges,
1680
- fixHints
1681
- },
1682
- mutation: normalized,
1683
- shouldRepair,
1684
- fixHint: `Run "${doctorFixCommand}" to apply these changes.`
1685
- }));
1686
- }
1687
- const { applyPluginAutoEnable } = await import("./plugin-auto-enable-CQK9E0Um.js");
1688
- const autoEnable = applyPluginAutoEnable({
1689
- config: candidate,
1690
- env: process.env
1691
- });
1692
- if (autoEnable.changes.length > 0) {
1693
- emitDoctorChangesPanel(autoEnable.changes, shouldRepair);
1694
- ({cfg, candidate, pendingChanges, fixHints} = applyDoctorConfigMutation({
1695
- state: {
1696
- cfg,
1697
- candidate,
1698
- pendingChanges,
1699
- fixHints
1700
- },
1701
- mutation: autoEnable,
1702
- shouldRepair,
1703
- fixHint: `Run "${doctorFixCommand}" to apply these changes.`
1704
- }));
1705
- }
1706
- const { collectPluginToolAllowlistWarnings } = await import("./plugin-tool-allowlist-warnings-DdLHeiqx.js");
1707
- const pluginToolAllowlistWarnings = collectPluginToolAllowlistWarnings({
1708
- cfg: candidate,
1709
- env: process.env
1710
- });
1711
- if (pluginToolAllowlistWarnings.length > 0) note(sanitizeDoctorNote(pluginToolAllowlistWarnings.join("\n")), "Doctor warnings");
1712
- const hasConfiguredChannels = collectConfiguredChannelIds(candidate).length > 0;
1713
- let collectMutableAllowlistWarnings;
1714
- if (hasConfiguredChannels) {
1715
- const channelDoctor = await import("./channel-doctor-CJkpsym9.js");
1716
- collectMutableAllowlistWarnings = channelDoctor.collectChannelDoctorMutableAllowlistWarnings;
1717
- const channelDoctorSequence = await channelDoctor.runChannelDoctorConfigSequences({
1718
- cfg: candidate,
1719
- env: process.env,
1720
- shouldRepair
1721
- });
1722
- emitDoctorNotes({
1723
- note,
1724
- changeNotes: channelDoctorSequence.changeNotes,
1725
- warningNotes: channelDoctorSequence.warningNotes
1726
- });
1727
- for (const staleCleanup of await channelDoctor.collectChannelDoctorStaleConfigMutations(candidate, { env: process.env })) {
1728
- if (staleCleanup.changes.length === 0) continue;
1729
- emitDoctorChangesPanel(staleCleanup.changes, shouldRepair, { sanitize: true });
1730
- ({cfg, candidate, pendingChanges, fixHints} = applyDoctorConfigMutation({
1731
- state: {
1732
- cfg,
1733
- candidate,
1734
- pendingChanges,
1735
- fixHints
1736
- },
1737
- mutation: staleCleanup,
1738
- shouldRepair,
1739
- fixHint: `Run "${doctorFixCommand}" to remove stale channel plugin references.`
1740
- }));
1741
- }
1742
- }
1743
- const missingDefaultAccountBindingWarnings = collectMissingDefaultAccountBindingWarnings(candidate);
1744
- if (missingDefaultAccountBindingWarnings.length > 0) note(missingDefaultAccountBindingWarnings.join("\n"), "Doctor warnings");
1745
- const missingExplicitDefaultWarnings = collectMissingExplicitDefaultAccountWarnings(candidate);
1746
- if (missingExplicitDefaultWarnings.length > 0) note(missingExplicitDefaultWarnings.join("\n"), "Doctor warnings");
1747
- if (shouldRepair) {
1748
- const { runDoctorRepairSequence } = await import("./repair-sequencing-E4yViXG9.js");
1749
- const repairSequence = await runDoctorRepairSequence({
1750
- state: {
1751
- cfg,
1752
- candidate,
1753
- pendingChanges,
1754
- fixHints
1755
- },
1756
- doctorFixCommand,
1757
- env: process.env
1758
- });
1759
- ({cfg, candidate, pendingChanges, fixHints} = repairSequence.state);
1760
- emitDoctorNotes({
1761
- note,
1762
- changeNotes: repairSequence.changeNotes,
1763
- warningNotes: repairSequence.warningNotes
1764
- });
1765
- } else {
1766
- const { collectDoctorPreviewNotes } = await import("./preview-warnings-DJx4KJpC.js");
1767
- const previewNotes = await collectDoctorPreviewNotes({
1768
- cfg: candidate,
1769
- doctorFixCommand,
1770
- env: process.env
1771
- });
1772
- emitDoctorNotes({
1773
- note,
1774
- infoNotes: previewNotes.infoNotes,
1775
- warningNotes: previewNotes.warningNotes
1776
- });
1777
- }
1778
- const mutableAllowlistWarnings = collectMutableAllowlistWarnings ? await collectMutableAllowlistWarnings({
1779
- cfg: candidate,
1780
- env: process.env
1781
- }) : [];
1782
- if (mutableAllowlistWarnings.length > 0) note(sanitizeDoctorNote(mutableAllowlistWarnings.join("\n")), "Doctor warnings");
1783
- const unknownStep = applyUnknownConfigKeyStep({
1784
- state: {
1785
- cfg,
1786
- candidate,
1787
- pendingChanges,
1788
- fixHints
1789
- },
1790
- shouldRepair,
1791
- doctorFixCommand
1792
- });
1793
- ({cfg, candidate, pendingChanges, fixHints} = unknownStep.state);
1794
- if (unknownStep.removed.length > 0 || unknownStep.repairs.length > 0) note([...unknownStep.removed.map((path) => `- ${path}`), ...unknownStep.repairs.map((change) => `- ${change}`)].join("\n"), shouldRepair ? "Doctor changes" : "Unknown config keys");
1795
- if (unknownStep.warnings.length > 0) note(unknownStep.warnings.join("\n"), "Doctor warnings");
1796
- const finalized = await finalizeDoctorConfigFlow({
1797
- cfg,
1798
- candidate,
1799
- pendingChanges,
1800
- shouldRepair,
1801
- fixHints,
1802
- confirm: params.confirm,
1803
- note
1804
- });
1805
- cfg = finalized.cfg;
1806
- noteOpencodeProviderOverrides(cfg);
1807
- noteImplicitFallbackClobberWarnings(cfg);
1808
- return {
1809
- cfg,
1810
- path: snapshot.path ?? CONFIG_PATH,
1811
- shouldWriteConfig: finalized.shouldWriteConfig,
1812
- sourceConfigValid: snapshot.valid,
1813
- preservedLegacyRootKeys: ["defaultModel"],
1814
- ...sourceLastTouchedVersion ? { sourceLastTouchedVersion } : {},
1815
- ...legacyMigrationPartiallyValid ? { skipPluginValidationOnWrite: true } : {}
1816
- };
1817
- }
1818
- //#endregion
1819
- export { loadAndMaybeMigrateDoctorConfig };