@symerian/symi 2.5.3 → 2.5.4

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 (179) hide show
  1. package/dist/{accounts-ChTFYj8Q.js → accounts-CWktKM8a.js} +1 -1
  2. package/dist/{accounts-CJR8j_Kq.js → accounts-qtxJ-6em.js} +1 -1
  3. package/dist/{accounts-CI6zQTJj.js → accounts-tNElYrCH.js} +14 -14
  4. package/dist/{active-listener-D6sXIjAg.js → active-listener-C9r8ZB9m.js} +1 -1
  5. package/dist/{agent-scope-Bw1Ed8W9.js → agent-scope-BxoUQqgM.js} +3 -3
  6. package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
  7. package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-D02HwB-I.js} +29 -29
  8. package/dist/{bindings-BU2hsBd9.js → bindings-B7Ke6LJi.js} +2 -2
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +53 -53
  11. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  12. package/dist/bundled/command-logger/handler.js +1 -1
  13. package/dist/bundled/session-memory/handler.js +53 -53
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-C9-gaquj.js → channel-activity-CsM_hJ_s.js} +1 -1
  16. package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
  17. package/dist/{chrome-CxSAp8x3.js → chrome-EyvdASWt.js} +13 -13
  18. package/dist/{chunk-ClbN9Pqy.js → chunk-BW5f05BR.js} +1 -1
  19. package/dist/{command-format-UKHV-j0K.js → command-format-BaxDnULz.js} +1 -1
  20. package/dist/{command-registry-DhvgkMQN.js → command-registry-Be3hDEmx.js} +4 -4
  21. package/dist/{commands-registry-VSmULp-g.js → commands-registry-D7CTCQPm.js} +4 -4
  22. package/dist/{completion-cli-CqHcRASb.js → completion-cli-C3hbO0zE.js} +2 -2
  23. package/dist/{completion-cli-DJ2AgNQF.js → completion-cli-DxditxWW.js} +1 -1
  24. package/dist/{config-eEaJddXj.js → config-DRbjHIwD.js} +12 -12
  25. package/dist/control-ui/js/app.js +2 -1
  26. package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
  27. package/dist/{deliver-BA7ZN3iM.js → deliver-D1ZN6-fl.js} +20 -20
  28. package/dist/{diagnostic-C3nsWaw3.js → diagnostic-CI0kRQkt.js} +1 -1
  29. package/dist/{doctor-completion-DD-fb-G8.js → doctor-completion-CRgIetEl.js} +1 -1
  30. package/dist/{doctor-completion-BqOO4r2O.js → doctor-completion-DKL7Fzep.js} +1 -1
  31. package/dist/entry.js +1 -1
  32. package/dist/extensionAPI.js +6 -6
  33. package/dist/{frontmatter-DPlG6yha.js → frontmatter-C_bv_0P8.js} +2 -2
  34. package/dist/{gateway-cli-2R-SuiTy.js → gateway-cli-CEWIFRt0.js} +2 -2
  35. package/dist/{gateway-cli-BVnEz6em.js → gateway-cli-q04qp27D.js} +2 -2
  36. package/dist/{gemini-auth-CF48hUR9.js → gemini-auth-CdSPHuLl.js} +1 -1
  37. package/dist/{github-copilot-token-DJqsJ2-r.js → github-copilot-token-C_qUP7p5.js} +7 -7
  38. package/dist/{glass-ui-ws-C9w0ySFw.js → glass-ui-ws-0yPnNh0o.js} +30 -12
  39. package/dist/{glass-ui-ws-CmDHJq0W.js → glass-ui-ws-DtFvFNZp.js} +30 -12
  40. package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
  41. package/dist/{image-BGmVDkkw.js → image-Cp3JDEBB.js} +4 -4
  42. package/dist/{image-ops-S8-8dAhx.js → image-ops-CvJzsyvE.js} +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/{ir-CbFUkv_T.js → ir-DccrnjsE.js} +4 -4
  45. package/dist/llm-slug-generator.js +53 -53
  46. package/dist/{local-roots-C7OCYACU.js → local-roots-DMwIh5cS.js} +5 -5
  47. package/dist/{login-B8uiUAnV.js → login-CwCoxapk.js} +7 -7
  48. package/dist/{login-qr-CIZk8uKX.js → login-qr-Batf3PT5.js} +12 -12
  49. package/dist/{manager-BoLr3xR_.js → manager-D_LwXbc6.js} +13 -13
  50. package/dist/{manifest-registry-CneMHk0N.js → manifest-registry-D0IQ3WuX.js} +19 -19
  51. package/dist/{markdown-tables-DSHvnTLx.js → markdown-tables-iMQQZu4Q.js} +1 -1
  52. package/dist/{message-channel-DbsRltF2.js → message-channel-Dz5lr5b0.js} +1 -1
  53. package/dist/{model-auth-CwOuTuXl.js → model-auth-DK43VicI.js} +9 -9
  54. package/dist/{onboard-BgoNPLnU.js → onboard-FadtPlJX.js} +1 -1
  55. package/dist/{onboard-CSPuFTdy.js → onboard-Ob6VUhMj.js} +1 -1
  56. package/dist/{onboarding-Dnmpcyzj.js → onboarding-BL5h6kMP.js} +1 -1
  57. package/dist/{onboarding-pxBeD60g.js → onboarding-CeLx4VEB.js} +1 -1
  58. package/dist/{onboarding.finalize-CBTphwf0.js → onboarding.finalize-EOjEh487.js} +4 -4
  59. package/dist/{onboarding.finalize-jsLRDHxC.js → onboarding.finalize-y1rlw-1v.js} +3 -3
  60. package/dist/{outbound-opDNxv-l.js → outbound-D4fN_ZlE.js} +7 -7
  61. package/dist/{outbound-attachment-Co2diKdP.js → outbound-attachment-DjNDa3zn.js} +2 -2
  62. package/dist/{paths-CySxpNhH.js → paths-Cce4PUkG.js} +5 -5
  63. package/dist/{paths-Cb87-LzP.js → paths-DLyHUt31.js} +1 -1
  64. package/dist/{pi-auth-json-DPWPoruO.js → pi-auth-json-0SYBFZTt.js} +8 -8
  65. package/dist/{pi-embedded-DkqIIBK5.js → pi-embedded-Cuoz1LlF.js} +158 -158
  66. package/dist/{pi-embedded-BRw7oe5n.js → pi-embedded-D7S6Iuxk.js} +16 -16
  67. package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-ag2bosuj.js} +52 -52
  68. package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
  69. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  70. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  71. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  72. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  73. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  74. package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
  75. package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
  76. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  77. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  78. package/dist/plugin-sdk/{channel-web-CDaDQ_94.js → channel-web-CkBYE0D-.js} +22 -22
  79. package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
  80. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  81. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  82. package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
  83. package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
  84. package/dist/plugin-sdk/{deliver-BZ6iNLl7.js → deliver-BZ99UKQq.js} +10 -10
  85. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  86. package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
  87. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  88. package/dist/plugin-sdk/index.js +53 -53
  89. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  90. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  91. package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
  92. package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
  93. package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
  94. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  95. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  96. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  97. package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
  98. package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
  99. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  100. package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
  101. package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
  102. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  103. package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
  104. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  105. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  106. package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
  107. package/dist/plugin-sdk/{reply-BgTxNeXD.js → reply-DCiyoHqU.js} +78 -78
  108. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  109. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  110. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  111. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  112. package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
  113. package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
  114. package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
  115. package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
  116. package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
  117. package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
  118. package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
  119. package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
  120. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  121. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  122. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  123. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  124. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  125. package/dist/{target-errors-DyItGyW9.js → plugin-sdk/target-errors-Paro1BjP.js} +2 -2
  126. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  127. package/dist/{tokens-c_SLAkVb.js → plugin-sdk/tokens-bC3UVmVH.js} +1 -1
  128. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  129. package/dist/plugin-sdk/{tool-loop-detection-edmW8ZiF.js → tool-loop-detection-BVA6fax-.js} +2 -2
  130. package/dist/plugin-sdk/web-DMTBKWMU.js +65 -0
  131. package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
  132. package/dist/{plugins-C4C9637U.js → plugins-DQYI3Fr-.js} +9 -9
  133. package/dist/{program-BDQRtHXP.js → program-Dh_NkeL_.js} +2 -2
  134. package/dist/{program-context-DoK7rKBC.js → program-context-C6OueMej.js} +6 -6
  135. package/dist/{prompt-select-styled-MqSvQaDb.js → prompt-select-styled-B_XU_pph.js} +1 -1
  136. package/dist/{prompt-select-styled-B3dTk26Y.js → prompt-select-styled-CmbX-Peb.js} +1 -1
  137. package/dist/{pw-ai-DhwRiS06.js → pw-ai-Ch7liUOW.js} +11 -11
  138. package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
  139. package/dist/{qmd-manager-DdZh9PHs.js → qmd-manager-QHUP-_em.js} +7 -7
  140. package/dist/{register.maintenance-B3SsgHO_.js → register.maintenance-CzdnuWVy.js} +5 -5
  141. package/dist/{register.maintenance-BQy8hEp0.js → register.maintenance-aLrIiGjI.js} +4 -4
  142. package/dist/{register.onboard-Cg1itYBF.js → register.onboard-B_0R2fhe.js} +2 -2
  143. package/dist/{register.onboard-kaKkBUpb.js → register.onboard-DY6yrdh6.js} +2 -2
  144. package/dist/{register.setup-BBQtCyWL.js → register.setup-BMEEidVS.js} +2 -2
  145. package/dist/{register.setup-BiBByjTo.js → register.setup-DUBzMFHd.js} +2 -2
  146. package/dist/{register.subclis-B27L2Tlh.js → register.subclis-CWosGlSy.js} +3 -3
  147. package/dist/{registry-DP24za6g.js → registry-CK4e9hn8.js} +17 -17
  148. package/dist/{replies-DpPvWiGF.js → replies-BIX_isV7.js} +3 -3
  149. package/dist/{reply-prefix-CtL0omgM.js → reply-prefix-XlyuyChD.js} +1 -1
  150. package/dist/{resolve-route-BVikmvWO.js → resolve-route-CZ-1eqw0.js} +4 -4
  151. package/dist/{retry-dGG-MbxL.js → retry-Cly39XZB.js} +1 -1
  152. package/dist/{run-main-DqlK3Wy-.js → run-main-ChZAqQNU.js} +3 -3
  153. package/dist/{runner-B_KP4voe.js → runner-D0QUGA_X.js} +9 -9
  154. package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
  155. package/dist/{send-DeEosX8F.js → send-B1u-LrcS.js} +18 -18
  156. package/dist/{send-DwKJK3sM.js → send-CiTGOvEc.js} +10 -10
  157. package/dist/{send-zSarozV2.js → send-DW96zgDL.js} +6 -6
  158. package/dist/{send-CHEOWVc8.js → send-DeFniOjh.js} +6 -6
  159. package/dist/{send-DbcLJb0P.js → send-WyRqb4WD.js} +7 -7
  160. package/dist/{session-DV1MNlbV.js → session-SM36BTsl.js} +8 -8
  161. package/dist/{skill-commands-D610IKhm.js → skill-commands-BJMb_psG.js} +9 -9
  162. package/dist/{skills-o5WVqM4V.js → skills-BFekKL7i.js} +21 -21
  163. package/dist/{sqlite-6H6Zw1cs.js → sqlite-DRbx2dhW.js} +4 -4
  164. package/dist/{store-vVE6N2mH.js → store-C0wvOkae.js} +2 -2
  165. package/dist/{subsystem-DgpxyDQ_.js → subsystem-Bs9YvKLa.js} +1 -1
  166. package/dist/{tables-BIWsCKXJ.js → tables-DuZspiBu.js} +1 -1
  167. package/dist/{plugin-sdk/target-errors-B7YyMnIi.js → target-errors-Be1SwYlW.js} +2 -2
  168. package/dist/{thinking-Ni0HF-w6.js → thinking-CdlENGRW.js} +5 -5
  169. package/dist/{plugin-sdk/tokens-CWMflosr.js → tokens-H1H1LiSQ.js} +1 -1
  170. package/dist/{tool-images-DBCfXdli.js → tool-images-DXB7tqWi.js} +2 -2
  171. package/dist/{tool-loop-detection-Bbc9OPFR.js → tool-loop-detection-Cs8_HCsx.js} +3 -3
  172. package/dist/{update-cli-4mLsTTm5.js → update-cli-B8TIn1_v.js} +4 -4
  173. package/dist/{update-cli-yJuLaKdL.js → update-cli-_VRN7Kfv.js} +5 -5
  174. package/dist/{web-Nrl97JcY.js → web-DEbB7-Xr.js} +57 -57
  175. package/dist/{web-DrsjOzkW.js → web-ysMm0Pnv.js} +6 -6
  176. package/dist/{whatsapp-actions-oRQjcdQe.js → whatsapp-actions-D1RsnX7P.js} +23 -23
  177. package/dist/{workspace-CbvamIU6.js → workspace-wAaHI8-5.js} +6 -6
  178. package/package.json +1 -1
  179. package/dist/plugin-sdk/web-B6NRKGGa.js +0 -65
@@ -150,23 +150,38 @@ function safeSend(ws, data) {
150
150
  }
151
151
  function createGlassUiBridge(opts) {
152
152
  const { wss, context, extraHandlers, onBroadcast } = opts;
153
- const browserClients = /* @__PURE__ */ new Set();
154
- function broadcastToBrowsers(msg) {
155
- for (const client of browserClients) safeSend(client, msg);
153
+ const browserClients = /* @__PURE__ */ new Map();
154
+ let broadcastSeq = 0;
155
+ function broadcastToBrowsers(msg, seq) {
156
+ for (const [, state] of browserClients) {
157
+ if (seq <= state.lastBroadcastSeq) continue;
158
+ state.lastBroadcastSeq = seq;
159
+ safeSend(state.ws, msg);
160
+ }
156
161
  }
157
162
  const broadcastUnsub = onBroadcast((event, payload) => {
163
+ broadcastSeq++;
164
+ const seq = broadcastSeq;
158
165
  if (event === "chat") broadcastToBrowsers({
159
166
  type: "chat",
160
- payload
161
- });
167
+ payload,
168
+ _seq: seq
169
+ }, seq);
162
170
  else if (event === "agent") broadcastToBrowsers({
163
171
  type: "agent",
164
- payload
165
- });
172
+ payload,
173
+ _seq: seq
174
+ }, seq);
166
175
  else if (event === "subagent") broadcastToBrowsers({
167
176
  type: "subagent",
168
- payload
169
- });
177
+ payload,
178
+ _seq: seq
179
+ }, seq);
180
+ else if (event === "profile") broadcastToBrowsers({
181
+ type: "profile",
182
+ payload,
183
+ _seq: seq
184
+ }, seq);
170
185
  });
171
186
  /** Dispatch an RPC method through the gateway's internal handler. */
172
187
  async function dispatchRpc(method, params) {
@@ -210,7 +225,10 @@ function createGlassUiBridge(opts) {
210
225
  } catch {}
211
226
  }
212
227
  wss.on("connection", (ws) => {
213
- browserClients.add(ws);
228
+ browserClients.set(ws, {
229
+ ws,
230
+ lastBroadcastSeq: broadcastSeq
231
+ });
214
232
  safeSend(ws, {
215
233
  type: "status",
216
234
  connected: true
@@ -292,8 +310,8 @@ function createGlassUiBridge(opts) {
292
310
  });
293
311
  return () => {
294
312
  broadcastUnsub();
295
- for (const client of browserClients) try {
296
- client.close();
313
+ for (const [, state] of browserClients) try {
314
+ state.ws.close();
297
315
  } catch {}
298
316
  browserClients.clear();
299
317
  };
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as isRecord, I as shortenHomeInString } from "./registry-BhoUuugi.js";
3
3
  import { G as resolveSymiAgentDir, S as getApiKeyForModel, Y as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-BQCG9ah0.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-B8kqLWns.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-lgx_U5KS.js";
6
6
  import { n as loadConfig } from "./config-BmV60pPT.js";
7
7
  import { n as redactToolDetail } from "./redact-1NGYV_8p.js";
8
8
  import path from "node:path";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { R as shortenHomeInString, k as isRecord } from "./registry-DP24za6g.js";
3
- import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-CwOuTuXl.js";
2
+ import { R as shortenHomeInString, k as isRecord } from "./registry-CK4e9hn8.js";
3
+ import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-DK43VicI.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DEEaCvEp.js";
6
- import { n as loadConfig } from "./config-eEaJddXj.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-ag2bosuj.js";
6
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
7
7
  import { n as redactToolDetail } from "./redact-jSxx6Ep2.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { _ as runExec } from "./workspace-CbvamIU6.js";
1
+ import { _ as runExec } from "./workspace-wAaHI8-5.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
package/dist/index.js CHANGED
@@ -112,7 +112,7 @@ import { t as ensureSymiCliOnPath } from "./path-env-MnzRq6nD.js";
112
112
  import { t as assertSupportedRuntime } from "./runtime-guard-B37eizu-.js";
113
113
  import "./ports-BX0kKI0g.js";
114
114
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-C6ovOie2.js";
115
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-DoK7rKBC.js";
115
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-C6OueMej.js";
116
116
  import "./catalog-RiADx7MA.js";
117
117
  import "./plugin-registry-DZ4m64Mr.js";
118
118
  import { n as resolveCliChannelOptions } from "./channel-options-nfXd5NWO.js";
@@ -1,7 +1,7 @@
1
- import { I as resolveUserPath, J as logVerbose, Z as shouldLogVerbose } from "./registry-DP24za6g.js";
2
- import { a as hasAlphaChannel, b as maxBytesForKind, c as SafeOpenError, d as detectMime, f as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, u as readLocalFileSafely, x as mediaKindFromMime } from "./image-ops-S8-8dAhx.js";
3
- import { a as chunkText } from "./chunk-ClbN9Pqy.js";
4
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-C7OCYACU.js";
1
+ import { I as resolveUserPath, J as logVerbose, Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
2
+ import { a as hasAlphaChannel, b as maxBytesForKind, c as SafeOpenError, d as detectMime, f as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, u as readLocalFileSafely, x as mediaKindFromMime } from "./image-ops-CvJzsyvE.js";
3
+ import { a as chunkText } from "./chunk-BW5f05BR.js";
4
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
5
5
  import fs from "node:fs/promises";
6
6
  import path from "node:path";
7
7
  import { fileURLToPath } from "node:url";
@@ -1,65 +1,65 @@
1
- import "./paths-CySxpNhH.js";
2
- import "./registry-DP24za6g.js";
3
- import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-Bw1Ed8W9.js";
4
- import "./subsystem-DgpxyDQ_.js";
5
- import "./workspace-CbvamIU6.js";
6
- import "./tokens-c_SLAkVb.js";
7
- import { a as runEmbeddedPiAgent } from "./pi-embedded-DkqIIBK5.js";
8
- import "./plugins-C4C9637U.js";
9
- import "./accounts-CI6zQTJj.js";
1
+ import "./paths-Cce4PUkG.js";
2
+ import "./registry-CK4e9hn8.js";
3
+ import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
4
+ import "./subsystem-Bs9YvKLa.js";
5
+ import "./workspace-wAaHI8-5.js";
6
+ import "./tokens-H1H1LiSQ.js";
7
+ import { a as runEmbeddedPiAgent } from "./pi-embedded-Cuoz1LlF.js";
8
+ import "./plugins-DQYI3Fr-.js";
9
+ import "./accounts-tNElYrCH.js";
10
10
  import "./boolean-B8-BqKGQ.js";
11
- import "./command-format-UKHV-j0K.js";
12
- import "./bindings-BU2hsBd9.js";
13
- import "./send-CHEOWVc8.js";
14
- import "./send-DwKJK3sM.js";
15
- import "./deliver-BA7ZN3iM.js";
16
- import "./diagnostic-C3nsWaw3.js";
11
+ import "./command-format-BaxDnULz.js";
12
+ import "./bindings-B7Ke6LJi.js";
13
+ import "./send-DeFniOjh.js";
14
+ import "./send-CiTGOvEc.js";
15
+ import "./deliver-D1ZN6-fl.js";
16
+ import "./diagnostic-CI0kRQkt.js";
17
17
  import "./diagnostic-session-state-Bxo4UHOL.js";
18
- import "./accounts-ChTFYj8Q.js";
19
- import "./send-DeEosX8F.js";
20
- import "./image-ops-S8-8dAhx.js";
21
- import "./model-auth-CwOuTuXl.js";
22
- import "./github-copilot-token-DJqsJ2-r.js";
18
+ import "./accounts-CWktKM8a.js";
19
+ import "./send-B1u-LrcS.js";
20
+ import "./image-ops-CvJzsyvE.js";
21
+ import "./model-auth-DK43VicI.js";
22
+ import "./github-copilot-token-C_qUP7p5.js";
23
23
  import "./pi-model-discovery-DaNAekda.js";
24
- import "./message-channel-DbsRltF2.js";
25
- import "./pi-embedded-helpers-DEEaCvEp.js";
26
- import "./config-eEaJddXj.js";
27
- import "./manifest-registry-CneMHk0N.js";
28
- import "./chrome-CxSAp8x3.js";
29
- import "./frontmatter-DPlG6yha.js";
30
- import "./skills-o5WVqM4V.js";
24
+ import "./message-channel-Dz5lr5b0.js";
25
+ import "./pi-embedded-helpers-ag2bosuj.js";
26
+ import "./config-DRbjHIwD.js";
27
+ import "./manifest-registry-D0IQ3WuX.js";
28
+ import "./chrome-EyvdASWt.js";
29
+ import "./frontmatter-C_bv_0P8.js";
30
+ import "./skills-BFekKL7i.js";
31
31
  import "./redact-jSxx6Ep2.js";
32
32
  import "./errors-BoQgnc8X.js";
33
33
  import "./ssrf-BTMDZjHT.js";
34
- import "./store-vVE6N2mH.js";
35
- import "./thinking-Ni0HF-w6.js";
36
- import "./accounts-CJR8j_Kq.js";
37
- import "./paths-Cb87-LzP.js";
38
- import "./tool-images-DBCfXdli.js";
39
- import "./image-BGmVDkkw.js";
40
- import "./reply-prefix-CtL0omgM.js";
41
- import "./manager-BoLr3xR_.js";
42
- import "./gemini-auth-CF48hUR9.js";
43
- import "./sqlite-6H6Zw1cs.js";
44
- import "./retry-dGG-MbxL.js";
45
- import "./target-errors-DyItGyW9.js";
46
- import "./chunk-ClbN9Pqy.js";
47
- import "./markdown-tables-DSHvnTLx.js";
48
- import "./local-roots-C7OCYACU.js";
49
- import "./ir-CbFUkv_T.js";
34
+ import "./store-C0wvOkae.js";
35
+ import "./thinking-CdlENGRW.js";
36
+ import "./accounts-qtxJ-6em.js";
37
+ import "./paths-DLyHUt31.js";
38
+ import "./tool-images-DXB7tqWi.js";
39
+ import "./image-Cp3JDEBB.js";
40
+ import "./reply-prefix-XlyuyChD.js";
41
+ import "./manager-D_LwXbc6.js";
42
+ import "./gemini-auth-CdSPHuLl.js";
43
+ import "./sqlite-DRbx2dhW.js";
44
+ import "./retry-Cly39XZB.js";
45
+ import "./target-errors-Be1SwYlW.js";
46
+ import "./chunk-BW5f05BR.js";
47
+ import "./markdown-tables-iMQQZu4Q.js";
48
+ import "./local-roots-DMwIh5cS.js";
49
+ import "./ir-DccrnjsE.js";
50
50
  import "./render-CDCvpfhh.js";
51
- import "./commands-registry-VSmULp-g.js";
52
- import "./skill-commands-D610IKhm.js";
53
- import "./runner-B_KP4voe.js";
51
+ import "./commands-registry-D7CTCQPm.js";
52
+ import "./skill-commands-BJMb_psG.js";
53
+ import "./runner-D0QUGA_X.js";
54
54
  import "./fetch-Bso4i15F.js";
55
- import "./channel-activity-C9-gaquj.js";
56
- import "./tables-BIWsCKXJ.js";
57
- import "./send-zSarozV2.js";
58
- import "./outbound-attachment-Co2diKdP.js";
59
- import "./send-DbcLJb0P.js";
60
- import "./resolve-route-BVikmvWO.js";
55
+ import "./channel-activity-CsM_hJ_s.js";
56
+ import "./tables-DuZspiBu.js";
57
+ import "./send-DW96zgDL.js";
58
+ import "./outbound-attachment-DjNDa3zn.js";
59
+ import "./send-WyRqb4WD.js";
60
+ import "./resolve-route-CZ-1eqw0.js";
61
61
  import "./proxy-CBJ1upuz.js";
62
- import "./replies-DpPvWiGF.js";
62
+ import "./replies-BIX_isV7.js";
63
63
  import fs from "node:fs/promises";
64
64
  import os from "node:os";
65
65
  import path from "node:path";
@@ -1,8 +1,8 @@
1
- import { s as resolveStateDir } from "./paths-CySxpNhH.js";
2
- import { dt as resolvePreferredSymiTmpDir } from "./registry-DP24za6g.js";
3
- import { s as resolveAgentWorkspaceDir } from "./agent-scope-Bw1Ed8W9.js";
4
- import { S as logWarn } from "./workspace-CbvamIU6.js";
5
- import { d as detectMime, f as extensionForMime } from "./image-ops-S8-8dAhx.js";
1
+ import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
2
+ import { dt as resolvePreferredSymiTmpDir } from "./registry-CK4e9hn8.js";
3
+ import { s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
4
+ import { S as logWarn } from "./workspace-wAaHI8-5.js";
5
+ import { d as detectMime, f as extensionForMime } from "./image-ops-CvJzsyvE.js";
6
6
  import { a as resolvePinnedHostnameWithPolicy, n as closeDispatcher, r as createPinnedDispatcher, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
7
7
  import { t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
8
8
  import path from "node:path";
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { G as danger, K as info, Q as success } from "./registry-DP24za6g.js";
3
- import { r as defaultRuntime } from "./subsystem-DgpxyDQ_.js";
4
- import { x as logInfo } from "./workspace-CbvamIU6.js";
5
- import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-CI6zQTJj.js";
6
- import { t as formatCliCommand } from "./command-format-UKHV-j0K.js";
7
- import { n as loadConfig } from "./config-eEaJddXj.js";
8
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-DV1MNlbV.js";
2
+ import { G as danger, K as info, Q as success } from "./registry-CK4e9hn8.js";
3
+ import { r as defaultRuntime } from "./subsystem-Bs9YvKLa.js";
4
+ import { x as logInfo } from "./workspace-wAaHI8-5.js";
5
+ import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
6
+ import { t as formatCliCommand } from "./command-format-BaxDnULz.js";
7
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
8
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-SM36BTsl.js";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
 
11
11
  //#region src/web/login.ts
@@ -1,16 +1,16 @@
1
- import "./paths-CySxpNhH.js";
2
- import { G as danger, K as info, Q as success } from "./registry-DP24za6g.js";
3
- import "./agent-scope-Bw1Ed8W9.js";
4
- import { r as defaultRuntime } from "./subsystem-DgpxyDQ_.js";
5
- import { x as logInfo } from "./workspace-CbvamIU6.js";
6
- import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-CI6zQTJj.js";
1
+ import "./paths-Cce4PUkG.js";
2
+ import { G as danger, K as info, Q as success } from "./registry-CK4e9hn8.js";
3
+ import "./agent-scope-BxoUQqgM.js";
4
+ import { r as defaultRuntime } from "./subsystem-Bs9YvKLa.js";
5
+ import { x as logInfo } from "./workspace-wAaHI8-5.js";
6
+ import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
7
7
  import "./boolean-B8-BqKGQ.js";
8
- import "./command-format-UKHV-j0K.js";
9
- import "./model-auth-CwOuTuXl.js";
10
- import "./github-copilot-token-DJqsJ2-r.js";
11
- import { n as loadConfig } from "./config-eEaJddXj.js";
12
- import "./manifest-registry-CneMHk0N.js";
13
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-DV1MNlbV.js";
8
+ import "./command-format-BaxDnULz.js";
9
+ import "./model-auth-DK43VicI.js";
10
+ import "./github-copilot-token-C_qUP7p5.js";
11
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
12
+ import "./manifest-registry-D0IQ3WuX.js";
13
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-SM36BTsl.js";
14
14
  import { randomUUID } from "node:crypto";
15
15
  import { DisconnectReason } from "@whiskeysockets/baileys";
16
16
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -1,20 +1,20 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
- import { I as resolveUserPath, T as clampNumber, U as truncateUtf16Safe, w as clampInt } from "./registry-DP24za6g.js";
4
- import { n as resolveAgentConfig, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-Bw1Ed8W9.js";
5
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
6
- import { r as isTruthyEnvValue } from "./command-format-UKHV-j0K.js";
7
- import { i as resolveApiKeyForProvider, r as requireApiKey } from "./model-auth-CwOuTuXl.js";
2
+ import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
+ import { I as resolveUserPath, T as clampNumber, U as truncateUtf16Safe, w as clampInt } from "./registry-CK4e9hn8.js";
4
+ import { n as resolveAgentConfig, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
+ import { r as isTruthyEnvValue } from "./command-format-BaxDnULz.js";
7
+ import { i as resolveApiKeyForProvider, r as requireApiKey } from "./model-auth-DK43VicI.js";
8
8
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
9
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-Cb87-LzP.js";
9
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-DLyHUt31.js";
10
10
  import { n as onSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
11
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CF48hUR9.js";
12
- import { _ as isFileMissingError, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath, v as statRegularFile } from "./sqlite-6H6Zw1cs.js";
13
- import { n as retryAsync } from "./retry-dGG-MbxL.js";
11
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CdSPHuLl.js";
12
+ import { _ as isFileMissingError, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath, v as statRegularFile } from "./sqlite-DRbx2dhW.js";
13
+ import { n as retryAsync } from "./retry-Cly39XZB.js";
14
14
  import fs from "node:fs/promises";
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
- import fsSync from "node:fs";
17
+ import fs$1 from "node:fs";
18
18
  import { randomUUID } from "node:crypto";
19
19
  import { createInterface } from "node:readline";
20
20
  import { Readable } from "node:stream";
@@ -614,7 +614,7 @@ function canAutoSelectLocal(options) {
614
614
  if (/^(hf:|https?:)/i.test(modelPath)) return false;
615
615
  const resolved = resolveUserPath(modelPath);
616
616
  try {
617
- return fsSync.statSync(resolved).isFile();
617
+ return fs$1.statSync(resolved).isFile();
618
618
  } catch {
619
619
  return false;
620
620
  }
@@ -2073,7 +2073,7 @@ var MemoryManagerSyncOps = class {
2073
2073
  ]);
2074
2074
  const additionalPaths = normalizeExtraMemoryPaths(this.workspaceDir, this.settings.extraPaths);
2075
2075
  for (const entry of additionalPaths) try {
2076
- const stat = fsSync.lstatSync(entry);
2076
+ const stat = fs$1.lstatSync(entry);
2077
2077
  if (stat.isSymbolicLink()) continue;
2078
2078
  if (stat.isDirectory()) {
2079
2079
  watchPaths.add(path.join(entry, "**", "*.md"));
@@ -1,7 +1,7 @@
1
- import { I as resolveUserPath, P as resolveConfigDir, k as isRecord } from "./registry-DP24za6g.js";
1
+ import { I as resolveUserPath, P as resolveConfigDir, k as isRecord } from "./registry-CK4e9hn8.js";
2
2
  import { n as MANIFEST_KEY } from "./legacy-names-BHV4AoFT.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
6
6
 
7
7
  //#region src/infra/host-env-security-policy.json
@@ -59,7 +59,7 @@ function isPathInside$1(basePath, candidatePath) {
59
59
  }
60
60
  function safeRealpathSync$1(filePath) {
61
61
  try {
62
- return fsSync.realpathSync(filePath);
62
+ return fs.realpathSync(filePath);
63
63
  } catch {
64
64
  return null;
65
65
  }
@@ -226,13 +226,13 @@ function resolveBundledPluginsDir() {
226
226
  try {
227
227
  const execDir = path.dirname(process.execPath);
228
228
  const sibling = path.join(execDir, "extensions");
229
- if (fsSync.existsSync(sibling)) return sibling;
229
+ if (fs.existsSync(sibling)) return sibling;
230
230
  } catch {}
231
231
  try {
232
232
  let cursor = path.dirname(fileURLToPath(import.meta.url));
233
233
  for (let i = 0; i < 6; i += 1) {
234
234
  const candidate = path.join(cursor, "extensions");
235
- if (fsSync.existsSync(candidate)) return candidate;
235
+ if (fs.existsSync(candidate)) return candidate;
236
236
  const parent = path.dirname(cursor);
237
237
  if (parent === cursor) break;
238
238
  cursor = parent;
@@ -251,20 +251,20 @@ function normalizeStringList(value) {
251
251
  function resolvePluginManifestPath(rootDir) {
252
252
  for (const filename of PLUGIN_MANIFEST_FILENAMES) {
253
253
  const candidate = path.join(rootDir, filename);
254
- if (fsSync.existsSync(candidate)) return candidate;
254
+ if (fs.existsSync(candidate)) return candidate;
255
255
  }
256
256
  return path.join(rootDir, PLUGIN_MANIFEST_FILENAME);
257
257
  }
258
258
  function loadPluginManifest(rootDir) {
259
259
  const manifestPath = resolvePluginManifestPath(rootDir);
260
- if (!fsSync.existsSync(manifestPath)) return {
260
+ if (!fs.existsSync(manifestPath)) return {
261
261
  ok: false,
262
262
  error: `plugin manifest not found: ${manifestPath}`,
263
263
  manifestPath
264
264
  };
265
265
  let raw;
266
266
  try {
267
- raw = JSON.parse(fsSync.readFileSync(manifestPath, "utf-8"));
267
+ raw = JSON.parse(fs.readFileSync(manifestPath, "utf-8"));
268
268
  } catch (err) {
269
269
  return {
270
270
  ok: false,
@@ -331,7 +331,7 @@ function safeRealpathSync(targetPath, cache) {
331
331
  const cached = cache?.get(targetPath);
332
332
  if (cached) return cached;
333
333
  try {
334
- const resolved = fsSync.realpathSync(targetPath);
334
+ const resolved = fs.realpathSync(targetPath);
335
335
  cache?.set(targetPath, resolved);
336
336
  return resolved;
337
337
  } catch {
@@ -340,7 +340,7 @@ function safeRealpathSync(targetPath, cache) {
340
340
  }
341
341
  function safeStatSync(targetPath) {
342
342
  try {
343
- return fsSync.statSync(targetPath);
343
+ return fs.statSync(targetPath);
344
344
  } catch {
345
345
  return null;
346
346
  }
@@ -454,9 +454,9 @@ function isExtensionFile(filePath) {
454
454
  }
455
455
  function readPackageManifest(dir) {
456
456
  const manifestPath = path.join(dir, "package.json");
457
- if (!fsSync.existsSync(manifestPath)) return null;
457
+ if (!fs.existsSync(manifestPath)) return null;
458
458
  try {
459
- const raw = fsSync.readFileSync(manifestPath, "utf-8");
459
+ const raw = fs.readFileSync(manifestPath, "utf-8");
460
460
  return JSON.parse(raw);
461
461
  } catch {
462
462
  return null;
@@ -514,10 +514,10 @@ function resolvePackageEntrySource(params) {
514
514
  return source;
515
515
  }
516
516
  function discoverInDirectory(params) {
517
- if (!fsSync.existsSync(params.dir)) return;
517
+ if (!fs.existsSync(params.dir)) return;
518
518
  let entries = [];
519
519
  try {
520
- entries = fsSync.readdirSync(params.dir, { withFileTypes: true });
520
+ entries = fs.readdirSync(params.dir, { withFileTypes: true });
521
521
  } catch (err) {
522
522
  params.diagnostics.push({
523
523
  level: "warn",
@@ -579,7 +579,7 @@ function discoverInDirectory(params) {
579
579
  "index.js",
580
580
  "index.mjs",
581
581
  "index.cjs"
582
- ].map((candidate) => path.join(fullPath, candidate)).find((candidate) => fsSync.existsSync(candidate));
582
+ ].map((candidate) => path.join(fullPath, candidate)).find((candidate) => fs.existsSync(candidate));
583
583
  if (indexFile && isExtensionFile(indexFile)) addCandidate({
584
584
  candidates: params.candidates,
585
585
  diagnostics: params.diagnostics,
@@ -597,7 +597,7 @@ function discoverInDirectory(params) {
597
597
  }
598
598
  function discoverFromPath(params) {
599
599
  const resolved = resolveUserPath(params.rawPath);
600
- if (!fsSync.existsSync(resolved)) {
600
+ if (!fs.existsSync(resolved)) {
601
601
  params.diagnostics.push({
602
602
  level: "error",
603
603
  message: `plugin path not found: ${resolved}`,
@@ -605,7 +605,7 @@ function discoverFromPath(params) {
605
605
  });
606
606
  return;
607
607
  }
608
- const stat = fsSync.statSync(resolved);
608
+ const stat = fs.statSync(resolved);
609
609
  if (stat.isFile()) {
610
610
  if (!isExtensionFile(resolved)) {
611
611
  params.diagnostics.push({
@@ -665,7 +665,7 @@ function discoverFromPath(params) {
665
665
  "index.js",
666
666
  "index.mjs",
667
667
  "index.cjs"
668
- ].map((candidate) => path.join(resolved, candidate)).find((candidate) => fsSync.existsSync(candidate));
668
+ ].map((candidate) => path.join(resolved, candidate)).find((candidate) => fs.existsSync(candidate));
669
669
  if (indexFile && isExtensionFile(indexFile)) {
670
670
  addCandidate({
671
671
  candidates: params.candidates,
@@ -779,7 +779,7 @@ function buildCacheKey(params) {
779
779
  }
780
780
  function safeStatMtimeMs(filePath) {
781
781
  try {
782
- return fsSync.statSync(filePath).mtimeMs;
782
+ return fs.statSync(filePath).mtimeMs;
783
783
  } catch {
784
784
  return null;
785
785
  }
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
3
- import { r as normalizeChannelId } from "./plugins-C4C9637U.js";
3
+ import { r as normalizeChannelId } from "./plugins-DQYI3Fr-.js";
4
4
 
5
5
  //#region src/config/markdown-tables.ts
6
6
  var markdown_tables_exports = /* @__PURE__ */ __exportAll({ resolveMarkdownTableMode: () => resolveMarkdownTableMode });
@@ -1,4 +1,4 @@
1
- import { c as getActivePluginRegistry, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-DP24za6g.js";
1
+ import { c as getActivePluginRegistry, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-CK4e9hn8.js";
2
2
 
3
3
  //#region src/gateway/protocol/client-info.ts
4
4
  const GATEWAY_CLIENT_IDS = {
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { o as resolveOAuthPath, s as resolveStateDir } from "./paths-CySxpNhH.js";
2
+ import { o as resolveOAuthPath, s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
3
  import { t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
4
- import { I as resolveUserPath } from "./registry-DP24za6g.js";
5
- import { a as resolveAgentModelPrimary, n as resolveAgentConfig } from "./agent-scope-Bw1Ed8W9.js";
6
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
7
- import { r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-UKHV-j0K.js";
8
- import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-DJqsJ2-r.js";
4
+ import { I as resolveUserPath } from "./registry-CK4e9hn8.js";
5
+ import { a as resolveAgentModelPrimary, n as resolveAgentConfig } from "./agent-scope-BxoUQqgM.js";
6
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
7
+ import { r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BaxDnULz.js";
8
+ import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-C_qUP7p5.js";
9
9
  import fs from "node:fs/promises";
10
10
  import path from "node:path";
11
- import fsSync from "node:fs";
11
+ import fs$1 from "node:fs";
12
12
  import { execFileSync } from "node:child_process";
13
13
  import { createHash, randomBytes, randomUUID } from "node:crypto";
14
14
  import { createAssistantMessageEventStream, getEnvApiKey, getOAuthApiKey, getOAuthProviders } from "@mariozechner/pi-ai";
@@ -2959,7 +2959,7 @@ function resolveAuthStorePathForDisplay(agentDir) {
2959
2959
  return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
2960
2960
  }
2961
2961
  function ensureAuthStoreFile(pathname) {
2962
- if (fsSync.existsSync(pathname)) return;
2962
+ if (fs$1.existsSync(pathname)) return;
2963
2963
  saveJsonFile(pathname, {
2964
2964
  version: AUTH_STORE_VERSION,
2965
2965
  profiles: {}
@@ -3128,7 +3128,7 @@ function loadAuthProfileStoreForAgent(agentDir, _options) {
3128
3128
  if (shouldWrite && legacy !== null) {
3129
3129
  const legacyPath = resolveLegacyAuthStorePath(agentDir);
3130
3130
  try {
3131
- fsSync.unlinkSync(legacyPath);
3131
+ fs$1.unlinkSync(legacyPath);
3132
3132
  } catch (err) {
3133
3133
  if (err?.code !== "ENOENT") log$1.warn("failed to delete legacy auth.json after migration", {
3134
3134
  err,
@@ -10,7 +10,7 @@ import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
11
11
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
12
12
  import { r as healthCommand } from "./health-CGJe8xON.js";
13
- import { t as runOnboardingWizard } from "./onboarding-Dnmpcyzj.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-BL5h6kMP.js";
14
14
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-Cmrk2TPo.js";
15
15
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-BKXTgyr4.js";
@@ -12,7 +12,7 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
13
13
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
14
14
  import { r as healthCommand } from "./health-R_6vQfbY.js";
15
- import { t as runOnboardingWizard } from "./onboarding-pxBeD60g.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-CeLx4VEB.js";
16
16
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-BnOynwk4.js";
17
17
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-Ch38-Kbr.js";
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CBTphwf0.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-EOjEh487.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-jsLRDHxC.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-y1rlw-1v.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,