winclaw 2026.2.16 → 2026.2.17

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 (213) hide show
  1. package/dist/{acp-cli-DtSG8PfE.js → acp-cli-CjCjLOIk.js} +80 -7
  2. package/dist/{acp-cli-DJ8v7VBi.js → acp-cli-DMNixAWr.js} +80 -7
  3. package/dist/{agent-uc5Tm51b.js → agent-CPx8Laqs.js} +7 -7
  4. package/dist/{agent-CpPWsDLm.js → agent-D5-6Afoy.js} +7 -7
  5. package/dist/{audit-D7ut_djt.js → audit-CVn6Q8MB.js} +8 -8
  6. package/dist/{audit-CP8EeB5v.js → audit-D_bv9XGE.js} +6 -6
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +7 -7
  9. package/dist/bundled/session-memory/handler.js +7 -7
  10. package/dist/{call-DUra3BcO.js → call-CUCe1_QG.js} +1 -1
  11. package/dist/{call-D0kSW9yJ.js → call-DwtgHlBo.js} +1 -1
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-options-CzJmOfQF.js → channel-options-CD6rJd3f.js} +2 -2
  14. package/dist/{channel-options-BtE3FvhM.js → channel-options-le5zJxsr.js} +3 -3
  15. package/dist/{channels-cli-DdRTolJm.js → channels-cli-DBFhoO8q.js} +20 -20
  16. package/dist/{channels-cli-C3plfW7K.js → channels-cli-Xnw4wMlA.js} +19 -19
  17. package/dist/{chrome-DPFFaq3g.js → chrome-BkTUCsio.js} +7 -7
  18. package/dist/cli/daemon-cli.js +1 -1
  19. package/dist/{cli-BKn9pEko.js → cli-4JyfIyeD.js} +15 -15
  20. package/dist/{cli-DpSjnNWr.js → cli-DHr2Ucs1.js} +15 -15
  21. package/dist/{command-options-C_lunwSA.js → command-options-ftyRgBXB.js} +2 -2
  22. package/dist/{commands-By8dt1Yq.js → commands-Cm8ZmZsP.js} +1 -1
  23. package/dist/{completion-cli-CXiwhlGY.js → completion-cli-BV7wKqn1.js} +27 -27
  24. package/dist/{completion-cli-BLgKG7uF.js → completion-cli-DbSKXUZB.js} +1 -1
  25. package/dist/{config-q9EOkXQF.js → config-BSOoeMe_.js} +1 -0
  26. package/dist/{config-B6lGKkCZ.js → config-D4qMFEX7.js} +1 -1
  27. package/dist/{config-CNrc2X13.js → config-Dfj2m1Oe.js} +6 -6
  28. package/dist/{config-Bau2x69M.js → config-Dxszw5_g.js} +1 -0
  29. package/dist/{config-guard-Cqs_Xjnh.js → config-guard-CVbx26h8.js} +22 -22
  30. package/dist/{configure-D4p4Cna9.js → configure-C1gscELN.js} +6 -6
  31. package/dist/{configure-DmHyymBZ.js → configure-U4D4Pqc4.js} +6 -6
  32. package/dist/{control-service-zqSJRGOX.js → control-service-Bsxq-BcA.js} +1 -1
  33. package/dist/{control-service-C9PsXRAs.js → control-service-DkI6RP-m.js} +1 -1
  34. package/dist/control-ui/assets/{index-DmrA8bWT.js → index-C7YOT0KR.js} +9 -9
  35. package/dist/control-ui/assets/index-C7YOT0KR.js.map +1 -0
  36. package/dist/control-ui/index.html +1 -1
  37. package/dist/{cron-cli-CEL2ktAV.js → cron-cli-BF71ahBX.js} +4 -4
  38. package/dist/{cron-cli-BXwExgYu.js → cron-cli-BOMY609i.js} +4 -4
  39. package/dist/{daemon-cli-BQHtvHY3.js → daemon-cli-D-wk4ieW.js} +7 -7
  40. package/dist/{daemon-cli-CJCWgp-f.js → daemon-cli-DHHEjrMr.js} +7 -7
  41. package/dist/{daemon-runtime-DMgVfr_t.js → daemon-runtime-Dkj5TrB8.js} +1 -1
  42. package/dist/{daemon-runtime-BLGDPsmz.js → daemon-runtime-XjG-eb5K.js} +1 -1
  43. package/dist/{deliver-BMYE6Sh5.js → deliver-By3kSaxO.js} +4 -4
  44. package/dist/{deliver-tvjlD_I8.js → deliver-CIVpjP4O.js} +2 -2
  45. package/dist/{deliver-DH0k8N8V.js → deliver-O4lQDNVz.js} +2 -2
  46. package/dist/{deliver-BitNSS2V.js → deliver-XvPKdaKV.js} +4 -4
  47. package/dist/{deps-BZXqxk-c.js → deps-C5VZlv1O.js} +2 -2
  48. package/dist/{deps-BVCtNfUp.js → deps-CYcXD7Pf.js} +2 -2
  49. package/dist/{devices-cli-DGwBIhVs.js → devices-cli-B6YYZ5kb.js} +3 -3
  50. package/dist/{devices-cli-DMgOLFH4.js → devices-cli-D72c5fTf.js} +3 -3
  51. package/dist/{directory-cli-XUZXGDWS.js → directory-cli-Ct2uxT48.js} +2 -2
  52. package/dist/{directory-cli-BM1u0qXm.js → directory-cli-DUY2PbA6.js} +2 -2
  53. package/dist/{dispatcher-pY3xfH3I.js → dispatcher-BSNTjkhn.js} +1 -1
  54. package/dist/{dns-cli-Z90gOoCC.js → dns-cli-YwUNAAN5.js} +2 -2
  55. package/dist/{dns-cli-BsT6PtPu.js → dns-cli-qOBRNkLF.js} +2 -2
  56. package/dist/{docs-cli-c3e-yz8g.js → docs-cli-CyavkDw2.js} +2 -2
  57. package/dist/{docs-cli-7sRc9RNl.js → docs-cli-DfBJJmZQ.js} +2 -2
  58. package/dist/{doctor-BC0gQjjw.js → doctor-BO4bNz0F.js} +11 -11
  59. package/dist/{doctor-BaRbEgfK.js → doctor-JEtoJnjD.js} +13 -13
  60. package/dist/entry.js +3 -3
  61. package/dist/{exec-approvals-cli-Br_PMtWM.js → exec-approvals-cli-B77o0PJ_.js} +7 -7
  62. package/dist/{exec-approvals-cli-CjEz7HZG.js → exec-approvals-cli-CY-FhDMe.js} +5 -5
  63. package/dist/extensionAPI.js +9 -9
  64. package/dist/{gateway-cli-BDfWVWrc.js → gateway-cli-B04CSgJ2.js} +39 -39
  65. package/dist/{gateway-cli-B5M4aXJh.js → gateway-cli-BskBGTnm.js} +36 -36
  66. package/dist/{gateway-rpc-BMMjd67V.js → gateway-rpc-DgwdEZJG.js} +1 -1
  67. package/dist/{gateway-rpc-BX0JSloJ.js → gateway-rpc-xnl7qbaf.js} +1 -1
  68. package/dist/{github-copilot-auth-TOlQs0hs.js → github-copilot-auth-C1MW1dwQ.js} +3 -3
  69. package/dist/{github-copilot-auth-BXsf9NwU.js → github-copilot-auth-o_k2Cudw.js} +3 -3
  70. package/dist/{gmail-setup-utils-BwyVlUHJ.js → gmail-setup-utils-Co1O1ZsQ.js} +1 -1
  71. package/dist/{gmail-setup-utils-wN93ciPc.js → gmail-setup-utils-Cx-is0Nu.js} +1 -1
  72. package/dist/{health-format-BsZfgvC2.js → health-format-CQcjnlt1.js} +5 -5
  73. package/dist/{health-format-Cw-GI953.js → health-format-EmHUpZWZ.js} +5 -5
  74. package/dist/{hooks-cli-DYtXjuUo.js → hooks-cli-DK1zbaH5.js} +17 -17
  75. package/dist/{hooks-cli-CXOlmY-O.js → hooks-cli-dVn4Fmh6.js} +17 -17
  76. package/dist/{hooks-status-DSD57Bna.js → hooks-status-B29Iv6Hs.js} +2 -2
  77. package/dist/{hooks-status-DJKArQYf.js → hooks-status-oYmjIwtN.js} +4 -4
  78. package/dist/{image-DJMYqI3u.js → image-BmrYxKbz.js} +2 -2
  79. package/dist/{image-Dv41_s5F.js → image-CdoKjNkC.js} +2 -2
  80. package/dist/{image-Bw-qQYOy.js → image-DiqIXzuN.js} +2 -2
  81. package/dist/{image-D8w4J8fk.js → image-OXrbLKV5.js} +2 -2
  82. package/dist/index.js +37 -37
  83. package/dist/{installs-tZlFwdYa.js → installs-DsZ4SHrv.js} +1 -1
  84. package/dist/{installs-D7LLTSRK.js → installs-eMzTCLwc.js} +1 -1
  85. package/dist/llm-slug-generator.js +7 -7
  86. package/dist/{loader-DqgQkFW9.js → loader-BpjRa9kM.js} +18 -18
  87. package/dist/{login-qr-CvbJrUZa.js → login-qr-4pC6qtt-.js} +1 -1
  88. package/dist/{login-qr-0UbZtZEY.js → login-qr-BezmPy5v.js} +1 -1
  89. package/dist/{login-qr-hCb0IcBo.js → login-qr-CatJal4X.js} +1 -1
  90. package/dist/{login-qr-5ePrMbp1.js → login-qr-wuMAWFIS.js} +1 -1
  91. package/dist/{logs-cli-DkoMmAsO.js → logs-cli-BpDvBiMw.js} +4 -4
  92. package/dist/{logs-cli-mns13mBW.js → logs-cli-D51xhImn.js} +4 -4
  93. package/dist/{manifest-registry-3f4Ap-wH.js → manifest-registry-DkMVzI0i.js} +1 -0
  94. package/dist/{manifest-registry-DdNuASvE.js → manifest-registry-Lk01OvJk.js} +1 -0
  95. package/dist/{models-cli-BgMW9W6x.js → models-cli-CIsUyI6a.js} +16 -16
  96. package/dist/{models-cli-DAnYKGle.js → models-cli-CaU01xPG.js} +16 -16
  97. package/dist/{node-cli-DKO0G6Of.js → node-cli-BkZ6pue0.js} +6 -6
  98. package/dist/{node-cli-rkXI-w8D.js → node-cli-StS01Gfc.js} +6 -6
  99. package/dist/{nodes-cli-cYNyzzeY.js → nodes-cli-Cn6UMlrq.js} +4 -4
  100. package/dist/{nodes-cli-DMWROiIt.js → nodes-cli-tF6MS-rZ.js} +4 -4
  101. package/dist/{onboard-channels-BaQlg2xB.js → onboard-channels-CeVQvU-Q.js} +3 -3
  102. package/dist/{onboard-channels-DiGUYAXC.js → onboard-channels-D3A2EIsJ.js} +3 -3
  103. package/dist/{onboard-skills-B4PcZrfW.js → onboard-skills-CHqdoQ4i.js} +6 -6
  104. package/dist/{onboard-skills-BLmK8sRO.js → onboard-skills-CUYfJ6n3.js} +6 -6
  105. package/dist/{onboarding-DV8A5arS.js → onboarding-Dc0pNfFB.js} +15 -15
  106. package/dist/{pairing-cli-B02CMSyS.js → pairing-cli-BaerGus9.js} +2 -2
  107. package/dist/{pairing-cli-CZEfAtT1.js → pairing-cli-CmP5Kh_0.js} +2 -2
  108. package/dist/{pi-embedded-D-IhGMEN.js → pi-embedded-BYtP7ZUN.js} +13 -13
  109. package/dist/{pi-embedded-helpers-B6MRjgwO.js → pi-embedded-helpers-B8ZoLoBY.js} +2 -2
  110. package/dist/{pi-embedded-helpers-DfnlJiKf.js → pi-embedded-helpers-Bf2HzuiW.js} +2 -2
  111. package/dist/{pi-embedded-helpers-0GT1fcqu.js → pi-embedded-helpers-Bg77uU6G.js} +5 -5
  112. package/dist/{pi-embedded-helpers-BFz8RCXB.js → pi-embedded-helpers-D4hcbM-_.js} +1 -1
  113. package/dist/{pi-tools.policy-C40L1jbj.js → pi-tools.policy-C-Y9rQMW.js} +1 -1
  114. package/dist/{plugin-auto-enable-B55AVG9K.js → plugin-auto-enable-B_DAKbX5.js} +1 -1
  115. package/dist/{plugin-auto-enable-_6PwhgJx.js → plugin-auto-enable-SRpqhgHE.js} +1 -1
  116. package/dist/plugin-sdk/index.js +8 -7
  117. package/dist/{plugins-cli-BFWiN_e6.js → plugins-cli-CtYUXfmT.js} +18 -18
  118. package/dist/{plugins-cli-BCYoJ6km.js → plugins-cli-DLQmOKD_.js} +18 -18
  119. package/dist/{program-DoR-2N5H.js → program-B8CjA3QJ.js} +39 -39
  120. package/dist/{pw-ai-DeLvhDwA.js → pw-ai-CXpBe-B8.js} +1 -1
  121. package/dist/{register.subclis-yD9K5Znn.js → register.subclis-DtruElkA.js} +28 -28
  122. package/dist/{reply-Dk1Eo1Tg.js → reply-BhtQXH6O.js} +18 -18
  123. package/dist/{routes-DTDGPcvk.js → routes-Bnd728wY.js} +1 -1
  124. package/dist/{routes-CWdT5ltU.js → routes-Cyr6w9XK.js} +1 -1
  125. package/dist/{rpc-oXbHT1zz.js → rpc-Cfu-6x6O.js} +1 -1
  126. package/dist/{rpc-DLCJSf_3.js → rpc-Ck6iDWDz.js} +1 -1
  127. package/dist/{run-main-DioXybI-.js → run-main-CKWL3khc.js} +42 -42
  128. package/dist/{sandbox-Bzeto7ln.js → sandbox-DFd5LzxQ.js} +3 -3
  129. package/dist/{sandbox-cli-Bn-0tbz3.js → sandbox-cli-CVrDQDF9.js} +5 -5
  130. package/dist/{sandbox-cli-BedSvrvZ.js → sandbox-cli-DGPAnsZj.js} +5 -5
  131. package/dist/{sandbox-CCQ8LkHD.js → sandbox-hy7E1vod.js} +5 -5
  132. package/dist/{security-cli-sjBNtIQF.js → security-cli-B1YoHOUC.js} +10 -10
  133. package/dist/{security-cli-BRWj1gUq.js → security-cli-DFQEh6iS.js} +8 -8
  134. package/dist/{server-node-events-BXvJvop_.js → server-node-events-DYk_k2eq.js} +17 -17
  135. package/dist/{server-node-events-QhsVNdtl.js → server-node-events-DoX2Q0xX.js} +17 -17
  136. package/dist/{service-audit-BvI2Mf0j.js → service-audit-ClIGiQQP.js} +1 -1
  137. package/dist/{service-audit-C5exNJQE.js → service-audit-ZsIFxnQf.js} +1 -1
  138. package/dist/{skills-Cpao9pnk.js → skills-6Hc_hGuK.js} +1 -1
  139. package/dist/{skills-zR37rNHB.js → skills-CxfFEcVs.js} +3 -3
  140. package/dist/{skills-cli-DIn4EvN4.js → skills-cli-DW56XKSn.js} +4 -4
  141. package/dist/{skills-cli-CHmdWhTT.js → skills-cli-De6Hq5Qt.js} +4 -4
  142. package/dist/{skills-status-KPXsoLyO.js → skills-status-1FfF3D9A.js} +1 -1
  143. package/dist/{skills-status-oeQmZE3F.js → skills-status-CV6r7Ea4.js} +1 -1
  144. package/dist/{status-CYVvMHiN.js → status-DF2wqUX9.js} +15 -15
  145. package/dist/{status-D_dBVke6.js → status-OCDhAJ5J.js} +2 -2
  146. package/dist/{status-0yvKHaas.js → status-XUdZgQFk.js} +2 -2
  147. package/dist/{system-cli-DFN6diSv.js → system-cli-CzGPRl_y.js} +4 -4
  148. package/dist/{system-cli-BPgNGPC-.js → system-cli-hLjrQUP8.js} +4 -4
  149. package/dist/{tui-CzXY3H-k.js → tui-B2cshbAt.js} +4 -4
  150. package/dist/{tui-B1Zu03VU.js → tui-DUqPyiYr.js} +4 -4
  151. package/dist/{tui-cli-CmGaxPya.js → tui-cli-CnvhPxlZ.js} +9 -9
  152. package/dist/{tui-cli-DIFo7KNC.js → tui-cli-D0bjnZYU.js} +9 -9
  153. package/dist/{tui-formatters-DvgZsUEs.js → tui-formatters-C2mbshHa.js} +2 -2
  154. package/dist/{tui-formatters-BWsG1FQi.js → tui-formatters-zD0M0oht.js} +2 -2
  155. package/dist/{update-CRW5SjDG.js → update-B8kzGrDE.js} +2 -2
  156. package/dist/{update-D8LXGm-e.js → update-DFZU-OU8.js} +2 -2
  157. package/dist/{update-cli-BhwVqQXT.js → update-cli-BT30PQBA.js} +28 -28
  158. package/dist/{update-cli-BPVGN2kK.js → update-cli-CzVrXvhB.js} +27 -27
  159. package/dist/{update-runner-WVmyJobb.js → update-runner-5UUihxqQ.js} +6 -6
  160. package/dist/{update-runner-key8qr7m.js → update-runner-DlSG8Z6e.js} +6 -6
  161. package/dist/{webhooks-cli-sZwlw_9E.js → webhooks-cli-Bv0tYN4I.js} +4 -4
  162. package/dist/{webhooks-cli-CItfDatG.js → webhooks-cli-CQX9Pyv8.js} +4 -4
  163. package/dist/{wsl-Bhb_0JxG.js → wsl-BPS75dHO.js} +1 -1
  164. package/extensions/bluebubbles/package.json +1 -1
  165. package/extensions/copilot-proxy/package.json +1 -1
  166. package/extensions/diagnostics-otel/package.json +1 -1
  167. package/extensions/discord/package.json +1 -1
  168. package/extensions/feishu/package.json +1 -1
  169. package/extensions/google-antigravity-auth/package.json +1 -1
  170. package/extensions/google-gemini-cli-auth/package.json +1 -1
  171. package/extensions/googlechat/package.json +1 -1
  172. package/extensions/imessage/package.json +1 -1
  173. package/extensions/line/package.json +1 -1
  174. package/extensions/llm-task/package.json +1 -1
  175. package/extensions/lobster/package.json +1 -1
  176. package/extensions/matrix/CHANGELOG.md +5 -0
  177. package/extensions/matrix/package.json +1 -1
  178. package/extensions/mattermost/package.json +1 -1
  179. package/extensions/mcp-bridge/index.ts +392 -0
  180. package/extensions/mcp-bridge/mcp-bridge-manager.ts +552 -0
  181. package/extensions/mcp-bridge/package.json +18 -0
  182. package/extensions/mcp-bridge/winclaw.plugin.json +68 -0
  183. package/extensions/memory-core/package.json +1 -1
  184. package/extensions/memory-lancedb/package.json +1 -1
  185. package/extensions/minimax-portal-auth/package.json +1 -1
  186. package/extensions/msteams/CHANGELOG.md +5 -0
  187. package/extensions/msteams/package.json +1 -1
  188. package/extensions/nextcloud-talk/package.json +1 -1
  189. package/extensions/nostr/CHANGELOG.md +5 -0
  190. package/extensions/nostr/package.json +1 -1
  191. package/extensions/open-prose/package.json +1 -1
  192. package/extensions/signal/package.json +1 -1
  193. package/extensions/slack/package.json +1 -1
  194. package/extensions/telegram/package.json +1 -1
  195. package/extensions/tlon/package.json +1 -1
  196. package/extensions/twitch/CHANGELOG.md +5 -0
  197. package/extensions/twitch/package.json +1 -1
  198. package/extensions/voice-call/CHANGELOG.md +5 -0
  199. package/extensions/voice-call/package.json +1 -1
  200. package/extensions/whatsapp/package.json +1 -1
  201. package/extensions/zalo/CHANGELOG.md +5 -0
  202. package/extensions/zalo/package.json +1 -1
  203. package/extensions/zalouser/CHANGELOG.md +5 -0
  204. package/extensions/zalouser/package.json +1 -1
  205. package/package.json +2 -1
  206. package/skills/desktop-app-control/SKILL.md +333 -0
  207. package/skills/desktop-app-control/references/macos-setup.md +229 -0
  208. package/skills/winclaw-vnc-desktop/SKILL.md +17 -0
  209. package/skills/windows-explorer/SKILL.md +255 -46
  210. package/skills/windows-office/SKILL.md +228 -103
  211. package/skills/windows-outlook/SKILL.md +191 -59
  212. package/skills/windows-system/SKILL.md +282 -52
  213. package/dist/control-ui/assets/index-DmrA8bWT.js.map +0 -1
@@ -7,11 +7,11 @@ import "./model-selection-85uvgG06.js";
7
7
  import "./github-copilot-token-q_cbe9cL.js";
8
8
  import "./boolean-BgXe2hyu.js";
9
9
  import "./env-nMvxFwC5.js";
10
- import { M as VERSION, i as loadConfig } from "./config-B6lGKkCZ.js";
11
- import "./manifest-registry-DdNuASvE.js";
10
+ import { M as VERSION, i as loadConfig } from "./config-D4qMFEX7.js";
11
+ import "./manifest-registry-Lk01OvJk.js";
12
12
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-BQPBKE4S.js";
13
13
  import { t as GatewayClient } from "./client-ADbdwmED.js";
14
- import { t as buildGatewayConnectionDetails } from "./call-D0kSW9yJ.js";
14
+ import { t as buildGatewayConnectionDetails } from "./call-DwtgHlBo.js";
15
15
  import { t as formatDocsLink } from "./links-CDEE4snw.js";
16
16
  import "./tailscale-BTUODAwV.js";
17
17
  import { t as isMainModule } from "./is-main-WWuz28Ip.js";
@@ -155,6 +155,66 @@ async function runAcpClientInteractive(opts = {}) {
155
155
  });
156
156
  }
157
157
 
158
+ //#endregion
159
+ //#region src/acp/mcp-config-bridge.ts
160
+ /**
161
+ * Registry of dynamically added MCP server configs from IDE.
162
+ * These are merged with plugin config at tool resolution time.
163
+ */
164
+ const ideMcpServers = [];
165
+ /**
166
+ * Convert ACP McpServer definitions to MCP Bridge server configs
167
+ * and register them for use by the MCP Bridge plugin.
168
+ */
169
+ function applyIdeMcpServersToConfig(servers, log) {
170
+ if (!servers || servers.length === 0) return;
171
+ ideMcpServers.length = 0;
172
+ for (const server of servers) {
173
+ const config = convertAcpMcpServer(server);
174
+ if (config) {
175
+ ideMcpServers.push(config);
176
+ log(`registered IDE MCP server: ${config.name} (${config.transport})`);
177
+ } else log(`skipped unsupported MCP server: ${JSON.stringify(server)}`);
178
+ }
179
+ log(`total IDE MCP servers registered: ${ideMcpServers.length}`);
180
+ }
181
+ /**
182
+ * Convert a single ACP McpServer to MCP Bridge server config.
183
+ */
184
+ function convertAcpMcpServer(server) {
185
+ const typed = server;
186
+ if (typed.command && typeof typed.command === "string") {
187
+ const name = typed.name || `ide-stdio-${Date.now()}`;
188
+ const args = Array.isArray(typed.args) ? typed.args.map(String) : [];
189
+ const env = {};
190
+ if (Array.isArray(typed.env)) for (const entry of typed.env) {
191
+ const e = entry;
192
+ if (e.name && e.value !== void 0) env[e.name] = String(e.value);
193
+ }
194
+ return {
195
+ name: sanitizeName(name),
196
+ transport: "stdio",
197
+ command: typed.command,
198
+ args,
199
+ env: Object.keys(env).length > 0 ? env : void 0
200
+ };
201
+ }
202
+ if (typed.type === "sse" || typed.type === "http") {
203
+ const name = typed.name || `ide-${typed.type}-${Date.now()}`;
204
+ const url = typed.url;
205
+ if (!url) return null;
206
+ return {
207
+ name: sanitizeName(name),
208
+ transport: "sse",
209
+ url
210
+ };
211
+ }
212
+ return null;
213
+ }
214
+ function sanitizeName(name) {
215
+ return name.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/_+/g, "_");
216
+ }
217
+
158
218
  //#endregion
159
219
  //#region src/acp/commands.ts
160
220
  function getAvailableCommands() {
@@ -517,8 +577,8 @@ var AcpGatewayAgent = class {
517
577
  embeddedContext: true
518
578
  },
519
579
  mcpCapabilities: {
520
- http: false,
521
- sse: false
580
+ http: true,
581
+ sse: true
522
582
  },
523
583
  sessionCapabilities: { list: {} }
524
584
  },
@@ -527,7 +587,10 @@ var AcpGatewayAgent = class {
527
587
  };
528
588
  }
529
589
  async newSession(params) {
530
- if (params.mcpServers.length > 0) this.log(`ignoring ${params.mcpServers.length} MCP servers`);
590
+ if (params.mcpServers.length > 0) {
591
+ this.log(`received ${params.mcpServers.length} MCP server(s) from IDE`);
592
+ this.applyIdeMcpServers(params.mcpServers);
593
+ }
531
594
  const sessionId = randomUUID();
532
595
  const meta = parseSessionMeta(params._meta);
533
596
  const sessionKey = await resolveSessionKey({
@@ -552,7 +615,10 @@ var AcpGatewayAgent = class {
552
615
  return { sessionId: session.sessionId };
553
616
  }
554
617
  async loadSession(params) {
555
- if (params.mcpServers.length > 0) this.log(`ignoring ${params.mcpServers.length} MCP servers`);
618
+ if (params.mcpServers.length > 0) {
619
+ this.log(`received ${params.mcpServers.length} MCP server(s) from IDE`);
620
+ this.applyIdeMcpServers(params.mcpServers);
621
+ }
556
622
  const meta = parseSessionMeta(params._meta);
557
623
  const sessionKey = await resolveSessionKey({
558
624
  meta,
@@ -759,6 +825,13 @@ var AcpGatewayAgent = class {
759
825
  findPendingBySessionKey(sessionKey) {
760
826
  for (const pending of this.pendingPrompts.values()) if (pending.sessionKey === sessionKey) return pending;
761
827
  }
828
+ applyIdeMcpServers(mcpServers) {
829
+ try {
830
+ applyIdeMcpServersToConfig(mcpServers, this.log);
831
+ } catch (err) {
832
+ this.log(`failed to apply IDE MCP servers: ${String(err)}`);
833
+ }
834
+ }
762
835
  async sendAvailableCommands(sessionId) {
763
836
  await this.connection.sessionUpdate({
764
837
  sessionId,
@@ -4,13 +4,13 @@ import "./utils-C_NN2Q1k.js";
4
4
  import "./exec-B8JKbXKW.js";
5
5
  import "./agent-scope-0SfwyY9m.js";
6
6
  import "./github-copilot-token-SLWintYd.js";
7
- import { M as VERSION, i as loadConfig } from "./config-CNrc2X13.js";
8
- import "./manifest-registry-3f4Ap-wH.js";
7
+ import { M as VERSION, i as loadConfig } from "./config-Dfj2m1Oe.js";
8
+ import "./manifest-registry-DkMVzI0i.js";
9
9
  import { t as ensureWinClawCliOnPath } from "./path-env-qVO0Ofms.js";
10
10
  import "./tailscale-DU6DgqVy.js";
11
11
  import { i as resolveGatewayAuth } from "./auth-D3PURpPh.js";
12
12
  import { t as GatewayClient } from "./client--dPQV1U2.js";
13
- import { t as buildGatewayConnectionDetails } from "./call-DUra3BcO.js";
13
+ import { t as buildGatewayConnectionDetails } from "./call-CUCe1_QG.js";
14
14
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CvC-kNcN.js";
15
15
  import { t as isMainModule } from "./is-main-qJ675wPV.js";
16
16
  import { t as formatDocsLink } from "./links-DeXYznzX.js";
@@ -152,6 +152,66 @@ async function runAcpClientInteractive(opts = {}) {
152
152
  });
153
153
  }
154
154
 
155
+ //#endregion
156
+ //#region src/acp/mcp-config-bridge.ts
157
+ /**
158
+ * Registry of dynamically added MCP server configs from IDE.
159
+ * These are merged with plugin config at tool resolution time.
160
+ */
161
+ const ideMcpServers = [];
162
+ /**
163
+ * Convert ACP McpServer definitions to MCP Bridge server configs
164
+ * and register them for use by the MCP Bridge plugin.
165
+ */
166
+ function applyIdeMcpServersToConfig(servers, log) {
167
+ if (!servers || servers.length === 0) return;
168
+ ideMcpServers.length = 0;
169
+ for (const server of servers) {
170
+ const config = convertAcpMcpServer(server);
171
+ if (config) {
172
+ ideMcpServers.push(config);
173
+ log(`registered IDE MCP server: ${config.name} (${config.transport})`);
174
+ } else log(`skipped unsupported MCP server: ${JSON.stringify(server)}`);
175
+ }
176
+ log(`total IDE MCP servers registered: ${ideMcpServers.length}`);
177
+ }
178
+ /**
179
+ * Convert a single ACP McpServer to MCP Bridge server config.
180
+ */
181
+ function convertAcpMcpServer(server) {
182
+ const typed = server;
183
+ if (typed.command && typeof typed.command === "string") {
184
+ const name = typed.name || `ide-stdio-${Date.now()}`;
185
+ const args = Array.isArray(typed.args) ? typed.args.map(String) : [];
186
+ const env = {};
187
+ if (Array.isArray(typed.env)) for (const entry of typed.env) {
188
+ const e = entry;
189
+ if (e.name && e.value !== void 0) env[e.name] = String(e.value);
190
+ }
191
+ return {
192
+ name: sanitizeName(name),
193
+ transport: "stdio",
194
+ command: typed.command,
195
+ args,
196
+ env: Object.keys(env).length > 0 ? env : void 0
197
+ };
198
+ }
199
+ if (typed.type === "sse" || typed.type === "http") {
200
+ const name = typed.name || `ide-${typed.type}-${Date.now()}`;
201
+ const url = typed.url;
202
+ if (!url) return null;
203
+ return {
204
+ name: sanitizeName(name),
205
+ transport: "sse",
206
+ url
207
+ };
208
+ }
209
+ return null;
210
+ }
211
+ function sanitizeName(name) {
212
+ return name.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/_+/g, "_");
213
+ }
214
+
155
215
  //#endregion
156
216
  //#region src/acp/commands.ts
157
217
  function getAvailableCommands() {
@@ -514,8 +574,8 @@ var AcpGatewayAgent = class {
514
574
  embeddedContext: true
515
575
  },
516
576
  mcpCapabilities: {
517
- http: false,
518
- sse: false
577
+ http: true,
578
+ sse: true
519
579
  },
520
580
  sessionCapabilities: { list: {} }
521
581
  },
@@ -524,7 +584,10 @@ var AcpGatewayAgent = class {
524
584
  };
525
585
  }
526
586
  async newSession(params) {
527
- if (params.mcpServers.length > 0) this.log(`ignoring ${params.mcpServers.length} MCP servers`);
587
+ if (params.mcpServers.length > 0) {
588
+ this.log(`received ${params.mcpServers.length} MCP server(s) from IDE`);
589
+ this.applyIdeMcpServers(params.mcpServers);
590
+ }
528
591
  const sessionId = randomUUID();
529
592
  const meta = parseSessionMeta(params._meta);
530
593
  const sessionKey = await resolveSessionKey({
@@ -549,7 +612,10 @@ var AcpGatewayAgent = class {
549
612
  return { sessionId: session.sessionId };
550
613
  }
551
614
  async loadSession(params) {
552
- if (params.mcpServers.length > 0) this.log(`ignoring ${params.mcpServers.length} MCP servers`);
615
+ if (params.mcpServers.length > 0) {
616
+ this.log(`received ${params.mcpServers.length} MCP server(s) from IDE`);
617
+ this.applyIdeMcpServers(params.mcpServers);
618
+ }
553
619
  const meta = parseSessionMeta(params._meta);
554
620
  const sessionKey = await resolveSessionKey({
555
621
  meta,
@@ -756,6 +822,13 @@ var AcpGatewayAgent = class {
756
822
  findPendingBySessionKey(sessionKey) {
757
823
  for (const pending of this.pendingPrompts.values()) if (pending.sessionKey === sessionKey) return pending;
758
824
  }
825
+ applyIdeMcpServers(mcpServers) {
826
+ try {
827
+ applyIdeMcpServersToConfig(mcpServers, this.log);
828
+ } catch (err) {
829
+ this.log(`failed to apply IDE MCP servers: ${String(err)}`);
830
+ }
831
+ }
759
832
  async sendAvailableCommands(sessionId) {
760
833
  await this.connection.sessionUpdate({
761
834
  sessionId,
@@ -1,19 +1,19 @@
1
1
  import { c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL } from "./subsystem-6WpG--XW.js";
2
- import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-B6MRjgwO.js";
3
- import { $t as getSkillsSnapshotVersion, An as clearAgentRunContext, Bt as getRemoteSkillEligibility, Dr as loadModelCatalog, L as runWithModelFallback, M as resolveOutboundTarget, N as resolveSessionDeliveryTarget, Pn as registerAgentRunContext, Sr as applyVerboseOverride, Wr as resolveAgentTimeoutMs, br as clearSessionAuthProfileOverride, i as runCliAgent, jn as emitAgentEvent, kn as AGENT_LANE_NESTED, l as runEmbeddedPiAgent, n as getCliSessionId, r as setCliSessionId, s as resolveSendPolicy, xr as applyModelOverrideToSessionEntry, yr as lookupContextTokens } from "./reply-Dk1Eo1Tg.js";
2
+ import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-B8ZoLoBY.js";
3
+ import { $t as getSkillsSnapshotVersion, An as clearAgentRunContext, Bt as getRemoteSkillEligibility, Dr as loadModelCatalog, L as runWithModelFallback, M as resolveOutboundTarget, N as resolveSessionDeliveryTarget, Pn as registerAgentRunContext, Sr as applyVerboseOverride, Wr as resolveAgentTimeoutMs, br as clearSessionAuthProfileOverride, i as runCliAgent, jn as emitAgentEvent, kn as AGENT_LANE_NESTED, l as runEmbeddedPiAgent, n as getCliSessionId, r as setCliSessionId, s as resolveSendPolicy, xr as applyModelOverrideToSessionEntry, yr as lookupContextTokens } from "./reply-BhtQXH6O.js";
4
4
  import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-BWxPj0z_.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-D9VPf_Dt.js";
6
6
  import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, a as isCliProvider, d as resolveConfiguredModelRef, h as resolveThinkingDefault, ht as ensureAuthProfileStore, o as modelKey, t as buildAllowedModelSet } from "./model-selection-85uvgG06.js";
7
7
  import { t as formatCliCommand } from "./command-format-eqXGhPsA.js";
8
- import { i as loadConfig } from "./config-B6lGKkCZ.js";
8
+ import { i as loadConfig } from "./config-D4qMFEX7.js";
9
9
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-Ds-rTDZm.js";
10
- import { A as resolveSessionResetPolicy, D as resolveSessionKey, I as resolveExplicitAgentSessionKey, O as evaluateSessionFreshness, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, j as resolveSessionResetType, k as resolveChannelResetConfig } from "./sandbox-Bzeto7ln.js";
11
- import { r as buildWorkspaceSkillSnapshot } from "./skills-Cpao9pnk.js";
10
+ import { A as resolveSessionResetPolicy, D as resolveSessionKey, I as resolveExplicitAgentSessionKey, O as evaluateSessionFreshness, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, j as resolveSessionResetType, k as resolveChannelResetConfig } from "./sandbox-DFd5LzxQ.js";
11
+ import { r as buildWorkspaceSkillSnapshot } from "./skills-6Hc_hGuK.js";
12
12
  import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BQPBKE4S.js";
13
13
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-BpXeQBak.js";
14
- import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-BMYE6Sh5.js";
14
+ import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-By3kSaxO.js";
15
15
  import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./session-cost-usage-oviWRYZw.js";
16
- import { t as createDefaultDeps } from "./deps-BVCtNfUp.js";
16
+ import { t as createDefaultDeps } from "./deps-CYcXD7Pf.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -3,17 +3,17 @@ import { C as buildAllowedModelSet, Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProv
3
3
  import { t as formatCliCommand } from "./command-format-Dxm7d4SX.js";
4
4
  import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-DVvxnFKg.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-0SfwyY9m.js";
6
- import { i as loadConfig } from "./config-CNrc2X13.js";
6
+ import { i as loadConfig } from "./config-Dfj2m1Oe.js";
7
7
  import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CvC-kNcN.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BGem1TxI.js";
9
- import { Bt as resolveAgentTimeoutMs, Cn as resolveOutboundTarget, Gt as registerAgentRunContext, H as getCliSessionId, Ht as emitAgentEvent, J as getRemoteSkillEligibility, Jt as AGENT_LANE_NESTED, On as runWithModelFallback, Ot as runEmbeddedPiAgent, U as setCliSessionId, Vt as clearAgentRunContext, W as runCliAgent, Xt as applyModelOverrideToSessionEntry, Yt as loadModelCatalog, lt as clearSessionAuthProfileOverride, mn as lookupContextTokens, q as resolveSendPolicy, st as getSkillsSnapshotVersion, ut as applyVerboseOverride, wn as resolveSessionDeliveryTarget } from "./loader-DqgQkFW9.js";
9
+ import { Bt as resolveAgentTimeoutMs, Cn as resolveOutboundTarget, Gt as registerAgentRunContext, H as getCliSessionId, Ht as emitAgentEvent, J as getRemoteSkillEligibility, Jt as AGENT_LANE_NESTED, On as runWithModelFallback, Ot as runEmbeddedPiAgent, U as setCliSessionId, Vt as clearAgentRunContext, W as runCliAgent, Xt as applyModelOverrideToSessionEntry, Yt as loadModelCatalog, lt as clearSessionAuthProfileOverride, mn as lookupContextTokens, q as resolveSendPolicy, st as getSkillsSnapshotVersion, ut as applyVerboseOverride, wn as resolveSessionDeliveryTarget } from "./loader-BpjRa9kM.js";
10
10
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-IivnSNkP.js";
11
- import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, W as supportsXHighThinking } from "./pi-embedded-helpers-DfnlJiKf.js";
12
- import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-BitNSS2V.js";
13
- import { A as resolveSessionResetType, D as evaluateSessionFreshness, E as resolveSessionKey, F as resolveExplicitAgentSessionKey, O as resolveChannelResetConfig, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, k as resolveSessionResetPolicy } from "./sandbox-CCQ8LkHD.js";
14
- import { r as buildWorkspaceSkillSnapshot } from "./skills-zR37rNHB.js";
11
+ import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, W as supportsXHighThinking } from "./pi-embedded-helpers-Bf2HzuiW.js";
12
+ import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-XvPKdaKV.js";
13
+ import { A as resolveSessionResetType, D as evaluateSessionFreshness, E as resolveSessionKey, F as resolveExplicitAgentSessionKey, O as resolveChannelResetConfig, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, k as resolveSessionResetPolicy } from "./sandbox-hy7E1vod.js";
14
+ import { r as buildWorkspaceSkillSnapshot } from "./skills-CxfFEcVs.js";
15
15
  import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./session-cost-usage-CcCEQNuc.js";
16
- import { t as createDefaultDeps } from "./deps-BZXqxk-c.js";
16
+ import { t as createDefaultDeps } from "./deps-C5VZlv1O.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -3,24 +3,24 @@ import { t as formatCliCommand } from "./command-format-Dxm7d4SX.js";
3
3
  import { l as normalizeAgentId } from "./session-key-DVvxnFKg.js";
4
4
  import { n as runExec } from "./exec-B8JKbXKW.js";
5
5
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-0SfwyY9m.js";
6
- import { D as INCLUDE_KEY, O as MAX_INCLUDE_DEPTH, r as createConfigIO } from "./config-CNrc2X13.js";
7
- import { a as MANIFEST_KEY } from "./manifest-registry-3f4Ap-wH.js";
6
+ import { D as INCLUDE_KEY, O as MAX_INCLUDE_DEPTH, r as createConfigIO } from "./config-Dfj2m1Oe.js";
7
+ import { a as MANIFEST_KEY } from "./manifest-registry-DkMVzI0i.js";
8
8
  import { a as resolveBrowserConfig, o as resolveProfile } from "./server-context-DoYP0TJK.js";
9
9
  import { n as formatErrorMessage } from "./errors-DAzIMwQN.js";
10
10
  import { i as resolveGatewayAuth } from "./auth-D3PURpPh.js";
11
11
  import { t as GatewayClient } from "./client--dPQV1U2.js";
12
- import { t as buildGatewayConnectionDetails } from "./call-DUra3BcO.js";
12
+ import { t as buildGatewayConnectionDetails } from "./call-CUCe1_QG.js";
13
13
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CvC-kNcN.js";
14
14
  import { n as listChannelPlugins } from "./plugins-BGem1TxI.js";
15
15
  import { t as resolveChannelDefaultAccountId } from "./helpers-DdwqKAAS.js";
16
16
  import { t as scanDirectoryWithSummary } from "./skill-scanner-BeyHcaBY.js";
17
- import { G as resolveSandboxToolPolicyForAgent, Q as resolveToolProfilePolicy, U as resolveSandboxConfigForAgent } from "./sandbox-CCQ8LkHD.js";
18
- import { a as loadWorkspaceSkillEntries } from "./skills-zR37rNHB.js";
19
- import { a as isToolAllowedByPolicies, n as resolveNativeCommandsEnabled, r as resolveNativeSkillsEnabled } from "./commands-By8dt1Yq.js";
17
+ import { G as resolveSandboxToolPolicyForAgent, Q as resolveToolProfilePolicy, U as resolveSandboxConfigForAgent } from "./sandbox-hy7E1vod.js";
18
+ import { a as loadWorkspaceSkillEntries } from "./skills-CxfFEcVs.js";
19
+ import { a as isToolAllowedByPolicies, n as resolveNativeCommandsEnabled, r as resolveNativeSkillsEnabled } from "./commands-Cm8ZmZsP.js";
20
20
  import { i as readChannelAllowFromStore } from "./pairing-store-DW6rbKPo.js";
21
21
  import path from "node:path";
22
22
  import os from "node:os";
23
- import json5 from "json5";
23
+ import JSON5 from "json5";
24
24
  import fs from "node:fs/promises";
25
25
  import { randomUUID } from "node:crypto";
26
26
 
@@ -816,7 +816,7 @@ async function collectIncludePathsRecursive(params) {
816
816
  if (!rawText) continue;
817
817
  const nestedParsed = (() => {
818
818
  try {
819
- return json5.parse(rawText);
819
+ return JSON5.parse(rawText);
820
820
  } catch {
821
821
  return null;
822
822
  }
@@ -3,18 +3,18 @@ import { l as normalizeAgentId } from "./session-key-BWxPj0z_.js";
3
3
  import { n as runExec } from "./exec-zEr8K4zN.js";
4
4
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-D9VPf_Dt.js";
5
5
  import { t as formatCliCommand } from "./command-format-eqXGhPsA.js";
6
- import { D as INCLUDE_KEY, O as MAX_INCLUDE_DEPTH, r as createConfigIO } from "./config-B6lGKkCZ.js";
7
- import { a as MANIFEST_KEY } from "./manifest-registry-DdNuASvE.js";
6
+ import { D as INCLUDE_KEY, O as MAX_INCLUDE_DEPTH, r as createConfigIO } from "./config-D4qMFEX7.js";
7
+ import { a as MANIFEST_KEY } from "./manifest-registry-Lk01OvJk.js";
8
8
  import { n as listChannelPlugins } from "./plugins-Ds-rTDZm.js";
9
- import { $ as resolveSandboxToolPolicyForAgent, Z as resolveSandboxConfigForAgent, ot as resolveToolProfilePolicy } from "./sandbox-Bzeto7ln.js";
10
- import { a as loadWorkspaceSkillEntries } from "./skills-Cpao9pnk.js";
9
+ import { $ as resolveSandboxToolPolicyForAgent, Z as resolveSandboxConfigForAgent, ot as resolveToolProfilePolicy } from "./sandbox-DFd5LzxQ.js";
10
+ import { a as loadWorkspaceSkillEntries } from "./skills-6Hc_hGuK.js";
11
11
  import { n as formatErrorMessage } from "./errors-CQ9wLhIU.js";
12
12
  import { a as resolveProfile, i as resolveBrowserConfig } from "./server-context-CwJsC4Di.js";
13
13
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-BQPBKE4S.js";
14
14
  import { t as GatewayClient } from "./client-ADbdwmED.js";
15
- import { t as buildGatewayConnectionDetails } from "./call-D0kSW9yJ.js";
15
+ import { t as buildGatewayConnectionDetails } from "./call-DwtgHlBo.js";
16
16
  import { i as readChannelAllowFromStore } from "./pairing-store-DvRk9ppY.js";
17
- import { c as resolveNativeSkillsEnabled, n as isToolAllowedByPolicies, s as resolveNativeCommandsEnabled } from "./pi-tools.policy-C40L1jbj.js";
17
+ import { c as resolveNativeSkillsEnabled, n as isToolAllowedByPolicies, s as resolveNativeCommandsEnabled } from "./pi-tools.policy-C-Y9rQMW.js";
18
18
  import { t as resolveChannelDefaultAccountId } from "./helpers-C89IG08W.js";
19
19
  import { t as scanDirectoryWithSummary } from "./skill-scanner-L2BN5ib_.js";
20
20
  import { i as resolveGatewayAuth } from "./auth-BFEiQvVa.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.2.16",
3
- "commit": "0e67697a56e67b99c1a3b770f1edd1c1a7751416",
4
- "builtAt": "2026-02-16T13:50:38.354Z"
2
+ "version": "2026.2.17",
3
+ "commit": "90899ce7237329c9d5fa7b0373c98c687b0cc8c9",
4
+ "builtAt": "2026-02-17T07:15:16.771Z"
5
5
  }
@@ -3,23 +3,23 @@ import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normaliz
3
3
  import "../../utils-CHZQrQJ3.js";
4
4
  import { g as DEFAULT_CHAT_CHANNEL, l as createSubsystemLogger, u as defaultRuntime } from "../../exec-ByA6p7Vx.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, y as ensureAgentWorkspace } from "../../agent-scope-BIILs-n_.js";
6
- import { X as SILENT_REPLY_TOKEN, a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, m as sendMessageSignal, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "../../deliver-tvjlD_I8.js";
7
- import { C as clearAgentRunContext, D as sendMessageSlack, E as sendMessageWhatsApp, S as AGENT_LANE_NESTED, T as registerAgentRunContext, _ as clearSessionAuthProfileOverride, a as getCliSessionId, b as loadModelCatalog, c as resolveOutboundTarget, d as deriveSessionTotalTokens, f as hasNonzeroUsage, g as lookupContextTokens, h as getSkillsSnapshotVersion, i as sendMessageDiscord, l as resolveSessionDeliveryTarget, m as getRemoteSkillEligibility, n as sendMessageIMessage, o as setCliSessionId, p as resolveSendPolicy, r as sendMessageTelegram, s as runCliAgent, t as runEmbeddedPiAgent, u as runWithModelFallback, v as applyModelOverrideToSessionEntry, w as emitAgentEvent, x as resolveAgentTimeoutMs, y as applyVerboseOverride } from "../../pi-embedded-D-IhGMEN.js";
8
- import { Fn as normalizeChannelId, Ht as buildWorkspaceSkillSnapshot, Nn as getChannelPlugin, Z as updateSessionStore, _n as resolveMessageChannel, a as formatXHighModelHint, ct as evaluateSessionFreshness, d as normalizeVerboseLevel, dn as isGatewayMessageChannel, dt as resolveSessionResetType, fn as isInternalMessageChannel, hn as normalizeMessageChannel, ht as resolveMainSessionKey, i as formatThinkingLevels, l as normalizeThinkLevel, ln as INTERNAL_MESSAGE_CHANNEL, lt as resolveChannelResetConfig, mt as resolveExplicitAgentSessionKey, ot as normalizeAccountId, p as supportsXHighThinking, q as loadSessionStore, st as resolveSessionKey, un as isDeliverableMessageChannel, ut as resolveSessionResetPolicy } from "../../pi-embedded-helpers-0GT1fcqu.js";
6
+ import { X as SILENT_REPLY_TOKEN, a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, m as sendMessageSignal, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "../../deliver-CIVpjP4O.js";
7
+ import { C as clearAgentRunContext, D as sendMessageSlack, E as sendMessageWhatsApp, S as AGENT_LANE_NESTED, T as registerAgentRunContext, _ as clearSessionAuthProfileOverride, a as getCliSessionId, b as loadModelCatalog, c as resolveOutboundTarget, d as deriveSessionTotalTokens, f as hasNonzeroUsage, g as lookupContextTokens, h as getSkillsSnapshotVersion, i as sendMessageDiscord, l as resolveSessionDeliveryTarget, m as getRemoteSkillEligibility, n as sendMessageIMessage, o as setCliSessionId, p as resolveSendPolicy, r as sendMessageTelegram, s as runCliAgent, t as runEmbeddedPiAgent, u as runWithModelFallback, v as applyModelOverrideToSessionEntry, w as emitAgentEvent, x as resolveAgentTimeoutMs, y as applyVerboseOverride } from "../../pi-embedded-BYtP7ZUN.js";
8
+ import { Fn as normalizeChannelId, Ht as buildWorkspaceSkillSnapshot, Nn as getChannelPlugin, Z as updateSessionStore, _n as resolveMessageChannel, a as formatXHighModelHint, ct as evaluateSessionFreshness, d as normalizeVerboseLevel, dn as isGatewayMessageChannel, dt as resolveSessionResetType, fn as isInternalMessageChannel, hn as normalizeMessageChannel, ht as resolveMainSessionKey, i as formatThinkingLevels, l as normalizeThinkLevel, ln as INTERNAL_MESSAGE_CHANNEL, lt as resolveChannelResetConfig, mt as resolveExplicitAgentSessionKey, ot as normalizeAccountId, p as supportsXHighThinking, q as loadSessionStore, st as resolveSessionKey, un as isDeliverableMessageChannel, ut as resolveSessionResetPolicy } from "../../pi-embedded-helpers-Bg77uU6G.js";
9
9
  import "../../boolean-M-esQJt6.js";
10
10
  import { F as DEFAULT_MODEL, I as DEFAULT_PROVIDER, O as resolveThinkingDefault, P as DEFAULT_CONTEXT_TOKENS, S as modelKey, T as resolveConfiguredModelRef, h as ensureAuthProfileStore, v as buildAllowedModelSet, x as isCliProvider } from "../../model-auth-CKP4cKt5.js";
11
11
  import { t as formatCliCommand } from "../../command-format-Cyfi3S3x.js";
12
- import { t as loadConfig } from "../../config-Bau2x69M.js";
12
+ import { t as loadConfig } from "../../config-Dxszw5_g.js";
13
13
  import "../../github-copilot-token-UA7qQAyQ.js";
14
14
  import "../../pi-model-discovery-DzFOAbQt.js";
15
- import "../../chrome-DPFFaq3g.js";
15
+ import "../../chrome-BkTUCsio.js";
16
16
  import "../../frontmatter-xwTm0734.js";
17
17
  import { a as resolveStorePath, n as resolveSessionFilePath } from "../../paths-DTKpyxrv.js";
18
- import "../../image-D8w4J8fk.js";
18
+ import "../../image-OXrbLKV5.js";
19
19
  import "../../manager-_kZxWGcV.js";
20
20
  import "../../sqlite-CJbnYuFy.js";
21
21
  import "../../redact-BRmQPYDR.js";
22
- import "../../login-qr-5ePrMbp1.js";
22
+ import "../../login-qr-wuMAWFIS.js";
23
23
  import fs from "node:fs/promises";
24
24
  import path from "node:path";
25
25
  import crypto from "node:crypto";
@@ -3,22 +3,22 @@ import { d as resolveAgentIdFromSessionKey } from "../../session-key-nXYQSv-a.js
3
3
  import "../../utils-CHZQrQJ3.js";
4
4
  import { l as createSubsystemLogger } from "../../exec-ByA6p7Vx.js";
5
5
  import { s as resolveAgentWorkspaceDir } from "../../agent-scope-BIILs-n_.js";
6
- import "../../deliver-tvjlD_I8.js";
7
- import "../../pi-embedded-D-IhGMEN.js";
8
- import "../../pi-embedded-helpers-0GT1fcqu.js";
6
+ import "../../deliver-CIVpjP4O.js";
7
+ import "../../pi-embedded-BYtP7ZUN.js";
8
+ import "../../pi-embedded-helpers-Bg77uU6G.js";
9
9
  import "../../boolean-M-esQJt6.js";
10
10
  import "../../model-auth-CKP4cKt5.js";
11
- import "../../config-Bau2x69M.js";
11
+ import "../../config-Dxszw5_g.js";
12
12
  import "../../github-copilot-token-UA7qQAyQ.js";
13
13
  import "../../pi-model-discovery-DzFOAbQt.js";
14
- import "../../chrome-DPFFaq3g.js";
14
+ import "../../chrome-BkTUCsio.js";
15
15
  import "../../frontmatter-xwTm0734.js";
16
16
  import "../../paths-DTKpyxrv.js";
17
- import "../../image-D8w4J8fk.js";
17
+ import "../../image-OXrbLKV5.js";
18
18
  import "../../manager-_kZxWGcV.js";
19
19
  import "../../sqlite-CJbnYuFy.js";
20
20
  import "../../redact-BRmQPYDR.js";
21
- import "../../login-qr-5ePrMbp1.js";
21
+ import "../../login-qr-wuMAWFIS.js";
22
22
  import { generateSlugViaLLM } from "../../llm-slug-generator.js";
23
23
  import { t as resolveHookConfig } from "../../config-CI7EpvlP.js";
24
24
  import fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  import { B as resolveConfigPath, W as resolveGatewayPort, X as resolveStateDir } from "./entry.js";
2
2
  import { s as ensureDir, t as CONFIG_DIR, x as shortenHomeInString, y as resolveUserPath } from "./utils-C_NN2Q1k.js";
3
- import { i as loadConfig } from "./config-CNrc2X13.js";
3
+ import { i as loadConfig } from "./config-Dfj2m1Oe.js";
4
4
  import { t as pickPrimaryTailnetIPv4 } from "./tailnet-CL5GtL7t.js";
5
5
  import { s as pickPrimaryLanIPv4 } from "./ws-C0k_dhCP.js";
6
6
  import { Et as PROTOCOL_VERSION, Mt as normalizeFingerprint, Pt as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client--dPQV1U2.js";
@@ -1,6 +1,6 @@
1
1
  import { g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-C1r_TvK2.js";
2
2
  import { S as shortenHomeInString, b as resolveUserPath, c as ensureDir, t as CONFIG_DIR } from "./utils-CLLIosHV.js";
3
- import { i as loadConfig } from "./config-B6lGKkCZ.js";
3
+ import { i as loadConfig } from "./config-D4qMFEX7.js";
4
4
  import { t as pickPrimaryTailnetIPv4 } from "./tailnet-DGRSvYuQ.js";
5
5
  import { s as pickPrimaryLanIPv4 } from "./ws-DtDKpbLR.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-BQPBKE4S.js";
@@ -1 +1 @@
1
- d0f083be9aebe3b3380513b0ae6106accc6b617ea2b86fb1384a34abae9d869d
1
+ 43a1f4166cc356256230d06514669b8419c9de88185cfa4939423d13edfef4fc
@@ -1,7 +1,7 @@
1
1
  import { Q as CHAT_CHANNEL_ORDER, n as isTruthyEnvValue } from "./entry.js";
2
- import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-_6PwhgJx.js";
2
+ import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-SRpqhgHE.js";
3
3
  import { n as listChannelPlugins } from "./plugins-BGem1TxI.js";
4
- import { n as ensurePluginRegistryLoaded } from "./command-options-C_lunwSA.js";
4
+ import { n as ensurePluginRegistryLoaded } from "./command-options-ftyRgBXB.js";
5
5
 
6
6
  //#region src/cli/channel-options.ts
7
7
  function dedupe(values) {
@@ -1,10 +1,10 @@
1
1
  import { m as CHAT_CHANNEL_ORDER, t as createSubsystemLogger } from "./subsystem-6WpG--XW.js";
2
- import { ut as loadWinClawPlugins } from "./reply-Dk1Eo1Tg.js";
2
+ import { ut as loadWinClawPlugins } from "./reply-BhtQXH6O.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-D9VPf_Dt.js";
4
4
  import { t as isTruthyEnvValue } from "./env-nMvxFwC5.js";
5
- import { i as loadConfig } from "./config-B6lGKkCZ.js";
5
+ import { i as loadConfig } from "./config-D4qMFEX7.js";
6
6
  import { n as listChannelPlugins } from "./plugins-Ds-rTDZm.js";
7
- import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-B55AVG9K.js";
7
+ import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-B_DAKbX5.js";
8
8
 
9
9
  //#region src/cli/command-options.ts
10
10
  function hasExplicitOptions(command, names) {
@@ -7,55 +7,55 @@ import "./exec-B8JKbXKW.js";
7
7
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-0SfwyY9m.js";
8
8
  import "./github-copilot-token-SLWintYd.js";
9
9
  import "./pi-model-discovery-DzEIEgHL.js";
10
- import { c as writeConfigFile, i as loadConfig, o as readConfigFileSnapshot } from "./config-CNrc2X13.js";
11
- import "./manifest-registry-3f4Ap-wH.js";
10
+ import { c as writeConfigFile, i as loadConfig, o as readConfigFileSnapshot } from "./config-Dfj2m1Oe.js";
11
+ import "./manifest-registry-DkMVzI0i.js";
12
12
  import "./server-context-DoYP0TJK.js";
13
13
  import "./chrome-8SOF_KNN.js";
14
- import "./control-service-zqSJRGOX.js";
14
+ import "./control-service-Bsxq-BcA.js";
15
15
  import "./client--dPQV1U2.js";
16
- import { n as callGateway } from "./call-DUra3BcO.js";
16
+ import { n as callGateway } from "./call-CUCe1_QG.js";
17
17
  import "./message-channel-CvC-kNcN.js";
18
18
  import { t as formatDocsLink } from "./links-DeXYznzX.js";
19
- import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-_6PwhgJx.js";
19
+ import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-SRpqhgHE.js";
20
20
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BGem1TxI.js";
21
21
  import "./logging-CfEk_PnX.js";
22
22
  import "./accounts-BZVASFiI.js";
23
- import { Pr as createSlackWebClient, Qt as formatUsageReportLines, R as fetchChannelPermissionsDiscord, Zt as loadProviderUsageSummary, bn as parseDiscordTarget } from "./loader-DqgQkFW9.js";
23
+ import { Pr as createSlackWebClient, Qt as formatUsageReportLines, R as fetchChannelPermissionsDiscord, Zt as loadProviderUsageSummary, bn as parseDiscordTarget } from "./loader-BpjRa9kM.js";
24
24
  import { n as withProgress } from "./progress-Da1ehW-x.js";
25
25
  import "./prompt-style-Dc0C5HC9.js";
26
26
  import "./note-Ci08TSbV.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-DuBVnTKy.js";
28
28
  import { t as resolveChannelDefaultAccountId } from "./helpers-DdwqKAAS.js";
29
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-BaQlg2xB.js";
29
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CeVQvU-Q.js";
30
30
  import "./archive-D0z3LZDK.js";
31
31
  import "./skill-scanner-BeyHcaBY.js";
32
- import "./installs-D7LLTSRK.js";
32
+ import "./installs-eMzTCLwc.js";
33
33
  import "./manager-hlVY6h1o.js";
34
34
  import "./paths-IivnSNkP.js";
35
35
  import "./sqlite-DODNHWJb.js";
36
- import "./routes-DTDGPcvk.js";
37
- import "./pi-embedded-helpers-DfnlJiKf.js";
38
- import "./deliver-BitNSS2V.js";
39
- import "./sandbox-CCQ8LkHD.js";
40
- import "./tui-formatters-DvgZsUEs.js";
41
- import "./wsl-Bhb_0JxG.js";
42
- import "./skills-zR37rNHB.js";
43
- import "./image-DJMYqI3u.js";
36
+ import "./routes-Bnd728wY.js";
37
+ import "./pi-embedded-helpers-Bf2HzuiW.js";
38
+ import "./deliver-XvPKdaKV.js";
39
+ import "./sandbox-hy7E1vod.js";
40
+ import "./tui-formatters-C2mbshHa.js";
41
+ import "./wsl-BPS75dHO.js";
42
+ import "./skills-CxfFEcVs.js";
43
+ import "./image-BmrYxKbz.js";
44
44
  import "./redact-BHmk44DI.js";
45
45
  import "./tool-display-T-aSHhpc.js";
46
46
  import { n as resolveMessageChannelSelection } from "./channel-selection-Cxp-pkcE.js";
47
47
  import "./session-cost-usage-CcCEQNuc.js";
48
48
  import { n as formatTimeAgo } from "./format-relative-79_Y1n2Y.js";
49
- import "./commands-By8dt1Yq.js";
49
+ import "./commands-Cm8ZmZsP.js";
50
50
  import "./pairing-store-DW6rbKPo.js";
51
- import "./login-qr-hCb0IcBo.js";
51
+ import "./login-qr-CatJal4X.js";
52
52
  import { n as runCommandWithRuntime } from "./cli-utils-PlLcDZlM.js";
53
53
  import "./pairing-labels-muG1UZUi.js";
54
54
  import { t as buildChannelAccountSnapshot } from "./status-Drziap9H.js";
55
55
  import { t as parseLogLine } from "./parse-log-line-CUrpqe1w.js";
56
56
  import { t as collectChannelStatusIssues } from "./channels-status-issues-CrxNK1sL.js";
57
- import { t as hasExplicitOptions } from "./command-options-C_lunwSA.js";
58
- import { t as formatCliChannelOptions } from "./channel-options-CzJmOfQF.js";
57
+ import { t as hasExplicitOptions } from "./command-options-ftyRgBXB.js";
58
+ import { t as formatCliChannelOptions } from "./channel-options-CD6rJd3f.js";
59
59
  import fs from "node:fs/promises";
60
60
 
61
61
  //#region src/commands/channels/add-mutators.ts