@symerian/symi 2.6.13 → 2.6.15

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 (163) hide show
  1. package/dist/{agents-CrSpoNsS.js → agents-DbDrceM_.js} +4 -4
  2. package/dist/{agents.config-B3GILTs5.js → agents.config-AMrJVinF.js} +1 -1
  3. package/dist/{agents.config-Co1CO8fA.js → agents.config-phBy3nbc.js} +1 -1
  4. package/dist/{auth-choice-BHWxDJh7.js → auth-choice-CmbfbR4q.js} +1 -1
  5. package/dist/{auth-choice-BBmXnDnK.js → auth-choice-DsGuT4Dk.js} +1 -1
  6. package/dist/{banner-RLiOIu-3.js → banner-Ds_jDSsM.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +1 -1
  9. package/dist/bundled/session-memory/handler.js +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-BCK41AON.js → channel-options-BV6WyWWq.js} +1 -1
  12. package/dist/{channel-options-PDf46S-K.js → channel-options-Del6IGRs.js} +1 -1
  13. package/dist/{channel-web-C3XZ7c2q.js → channel-web-Cuukem2c.js} +1 -1
  14. package/dist/{channels-cli-723vy6L6.js → channels-cli-C3LiJhRT.js} +4 -4
  15. package/dist/{channels-cli-CUWuD7qf.js → channels-cli-D-E-oHnC.js} +4 -4
  16. package/dist/{cli-CAzmrOs0.js → cli-BavIfExj.js} +1 -1
  17. package/dist/{cli-DYdRSi_j.js → cli-C53UJpN3.js} +1 -1
  18. package/dist/{command-registry-B2aO0Q7_.js → command-registry-Dtn5iLgE.js} +9 -9
  19. package/dist/{completion-cli-BsKD_vBb.js → completion-cli-DEFzGiNX.js} +2 -2
  20. package/dist/{completion-cli-BKm12loU.js → completion-cli-DhhIPri-.js} +1 -1
  21. package/dist/{config-cli-D47lU7kU.js → config-cli-CIhqgzOH.js} +1 -1
  22. package/dist/{config-cli-Bynmd81Q.js → config-cli-DW40utS2.js} +1 -1
  23. package/dist/{configure-Df6GmKAR.js → configure-CkSODPmX.js} +3 -3
  24. package/dist/{configure-B3vS2Iz5.js → configure-SVzErXwX.js} +3 -3
  25. package/dist/{doctor-completion-DyiRkYT4.js → doctor-completion-B-w1_lQk.js} +1 -1
  26. package/dist/{doctor-completion-SEerte2S.js → doctor-completion-BBki2Ufk.js} +1 -1
  27. package/dist/entry.js +1 -1
  28. package/dist/extensionAPI.js +1 -1
  29. package/dist/{gateway-cli-k19iT2vJ.js → gateway-cli-BNYHujRR.js} +9 -9
  30. package/dist/{gateway-cli-PjmG0pFo.js → gateway-cli-BVbhSSqh.js} +9 -9
  31. package/dist/{glass-ui-ws-iCEtluQU.js → glass-ui-ws-B-MkTkAC.js} +7 -7
  32. package/dist/{glass-ui-ws-D0Yv090T.js → glass-ui-ws-DfJEU59m.js} +7 -7
  33. package/dist/{health-CXjAtn1-.js → health-BU6f7W6a.js} +1 -1
  34. package/dist/{health-B32Q-KYM.js → health-wZyomt2k.js} +1 -1
  35. package/dist/{hooks-cli-DA6zOGNz.js → hooks-cli-CdoOvoX9.js} +2 -2
  36. package/dist/{hooks-cli-DfRmFenH.js → hooks-cli-DX4nLKqn.js} +2 -2
  37. package/dist/index.js +6 -6
  38. package/dist/llm-slug-generator.js +1 -1
  39. package/dist/{models-cli-CbJUD_L1.js → models-cli-Bc2k_maK.js} +3 -3
  40. package/dist/{models-cli-BgCUViRO.js → models-cli-BeOo0gLs.js} +2 -2
  41. package/dist/{models-zowe4LXa.js → models-mS0NbL8c.js} +2 -2
  42. package/dist/{onboard-CYvIpUXQ.js → onboard-B6VpNEvT.js} +2 -2
  43. package/dist/{onboard-DsKgcThj.js → onboard-Cl0aQccB.js} +2 -2
  44. package/dist/{onboard-channels-DxCGWgB0.js → onboard-channels-BlmSvsPS.js} +1 -1
  45. package/dist/{onboard-channels-DLiV4Y0t.js → onboard-channels-BnvM0w8_.js} +1 -1
  46. package/dist/{onboarding-DioGtMFo.js → onboarding-BxBRG2z_.js} +3 -3
  47. package/dist/{onboarding-BA5v1JEG.js → onboarding-DwHp3u6V.js} +3 -3
  48. package/dist/{onboarding.finalize-DMXCA49f.js → onboarding.finalize-BrbMUUi5.js} +6 -6
  49. package/dist/{onboarding.finalize-CAbRXb0h.js → onboarding.finalize-J7oUfYcz.js} +5 -5
  50. package/dist/{pi-embedded-CFFnZEcA.js → pi-embedded-FraxHehk.js} +172 -2
  51. package/dist/{plugin-registry-HFOrv3KN.js → plugin-registry-CMCHyYWB.js} +1 -1
  52. package/dist/{plugin-registry-Bt5YCgFq.js → plugin-registry-thPK5K1z.js} +1 -1
  53. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  54. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  55. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  56. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  57. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  58. package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
  59. package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
  60. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  61. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  62. package/dist/plugin-sdk/{channel-web-C2w1HotM.js → channel-web-Cz5hAZTe.js} +22 -22
  63. package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
  64. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  65. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  66. package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
  67. package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
  68. package/dist/plugin-sdk/{deliver-BZ6iNLl7.js → deliver-BZ99UKQq.js} +10 -10
  69. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  70. package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
  71. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  72. package/dist/plugin-sdk/index.js +53 -53
  73. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  74. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  75. package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
  76. package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
  77. package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
  78. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  79. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  80. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  81. package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
  82. package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
  83. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  84. package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
  85. package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
  86. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  87. package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
  88. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  89. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  90. package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
  91. package/dist/plugin-sdk/{reply-D5CxbzCs.js → reply-DM8-P0Qq.js} +248 -78
  92. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  93. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  94. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  95. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  96. package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
  97. package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
  98. package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
  99. package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
  100. package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
  101. package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
  102. package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
  103. package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
  104. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  105. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  106. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  107. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  108. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  109. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  110. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  111. package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
  112. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  113. package/dist/plugin-sdk/{tool-loop-detection-DU5sTIKg.js → tool-loop-detection-at_K42K7.js} +2 -2
  114. package/dist/plugin-sdk/web-BQYWq6xE.js +65 -0
  115. package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
  116. package/dist/{plugins-cli-C7xTf9NV.js → plugins-cli-B87kp0ad.js} +2 -2
  117. package/dist/{plugins-cli-CXz_UApK.js → plugins-cli-DamE7XjD.js} +2 -2
  118. package/dist/{program-context-BBtSJunF.js → program-context-DFKRAsbt.js} +17 -17
  119. package/dist/{program-8hWr4qGZ.js → program-gbhreuEV.js} +7 -7
  120. package/dist/{prompt-select-styled-DUXeA9Zp.js → prompt-select-styled-B5bx2NEB.js} +4 -4
  121. package/dist/{prompt-select-styled-CwfroEHp.js → prompt-select-styled-BICt4IW2.js} +4 -4
  122. package/dist/{provider-auth-helpers-Dc7jBEOA.js → provider-auth-helpers-BEu0e6yr.js} +1 -1
  123. package/dist/{provider-auth-helpers-DhLHWjNU.js → provider-auth-helpers-DmEnyFX5.js} +1 -1
  124. package/dist/{push-apns-CflJh75N.js → push-apns-DVz2SkR5.js} +1 -1
  125. package/dist/{push-apns-CVZe5WVN.js → push-apns-tMnMeZX7.js} +1 -1
  126. package/dist/{register.agent-BnuJQ5lg.js → register.agent-BOvqehoy.js} +6 -6
  127. package/dist/{register.agent-DV7IR1rI.js → register.agent-KI2e7rY8.js} +5 -5
  128. package/dist/{register.configure-DaIrJXWo.js → register.configure-BpxsezsB.js} +6 -6
  129. package/dist/{register.configure-BhncI0ij.js → register.configure-D8DGPMv0.js} +6 -6
  130. package/dist/{register.maintenance-BO1XWhVb.js → register.maintenance-BcIwMibz.js} +7 -7
  131. package/dist/{register.maintenance-DK_p-7so.js → register.maintenance-WRAU5DSR.js} +8 -8
  132. package/dist/{register.message-B194ue2R.js → register.message-C0eMmAGL.js} +2 -2
  133. package/dist/{register.message-B4CGCAn_.js → register.message-CX_Dmuke.js} +2 -2
  134. package/dist/{register.onboard-DidMCka8.js → register.onboard-BE87LPDH.js} +4 -4
  135. package/dist/{register.onboard-Dt53qGB5.js → register.onboard-ByB6oGQ-.js} +4 -4
  136. package/dist/{register.setup-DgUxMRZR.js → register.setup-D8DgDNnC.js} +4 -4
  137. package/dist/{register.setup-CLV1kk2-.js → register.setup-DSY9eAV8.js} +4 -4
  138. package/dist/{register.status-health-sessions-TvGuwVoR.js → register.status-health-sessions-CW4DkAa1.js} +3 -3
  139. package/dist/{register.status-health-sessions-CB10JLY6.js → register.status-health-sessions-TMJPmooX.js} +3 -3
  140. package/dist/{register.subclis-elNdyQio.js → register.subclis-BS-WgVMV.js} +9 -9
  141. package/dist/{reply-DUZvOCsG.js → reply-B2Xur-75.js} +172 -2
  142. package/dist/{run-main-gBPGqO8r.js → run-main-jFBqLwBJ.js} +14 -14
  143. package/dist/{server-methods-dgW-8gC7.js → server-methods-BqQeaixw.js} +7 -7
  144. package/dist/{server-methods-BG0N79yY.js → server-methods-zgqyrRAq.js} +7 -7
  145. package/dist/{server-node-events-B_hsQw_N.js → server-node-events-8pINzbzg.js} +2 -2
  146. package/dist/{server-node-events-ZtQKBPo3.js → server-node-events-Doln-zR2.js} +2 -2
  147. package/dist/{status-D4Lr90yH.js → status-BDABGQ7Y.js} +1 -1
  148. package/dist/{status-Cd9-xWsZ.js → status-Bdqk3JgK.js} +2 -2
  149. package/dist/{status-BqhJ-HsW.js → status-Bwvq4SPL.js} +1 -1
  150. package/dist/{status-D-IvYfjk.js → status-DFml_pIs.js} +2 -2
  151. package/dist/{subagent-registry-J2pIBQF7.js → subagent-registry-CUXuFP-8.js} +172 -2
  152. package/dist/{unified-runner-oH9Pt-cO.js → unified-runner-Bojz2_xD.js} +172 -2
  153. package/dist/{update-cli-D8nA6U7C.js → update-cli-C6thJhZU.js} +7 -7
  154. package/dist/{update-cli-B7TLu25J.js → update-cli-Pwrk83u-.js} +8 -8
  155. package/dist/{update-runner-DvZOsoQs.js → update-runner-Bssy0nSl.js} +1 -1
  156. package/dist/{update-runner-D8AFB8Oi.js → update-runner-DgqFpUFr.js} +1 -1
  157. package/dist/{web-DDiOPIdv.js → web-BFY2FcFr.js} +2 -2
  158. package/dist/{web-CAy-xQv2.js → web-BiK5cfMV.js} +1 -1
  159. package/dist/{web-mQInjWbW.js → web-DJgELzDq.js} +1 -1
  160. package/dist/{web-0xZpP0WA.js → web-DLkEjSYp.js} +1 -1
  161. package/package.json +1 -1
  162. package/skills/self-inspect/SKILL.md +107 -0
  163. package/dist/plugin-sdk/web-ClsKdqx-.js +0 -65
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-DUZvOCsG.js";
4
+ import "./reply-B2Xur-75.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -113,18 +113,18 @@ import "./service-Cl74hx8J.js";
113
113
  import "./diagnostics-BAMlsVVX.js";
114
114
  import "./table-BTgkRafz.js";
115
115
  import "./audit-CrITRV6w.js";
116
- import "./status-Cd9-xWsZ.js";
117
- import "./health-B32Q-KYM.js";
116
+ import "./status-Bdqk3JgK.js";
117
+ import "./health-wZyomt2k.js";
118
118
  import "./control-ui-assets-Z947tKLt.js";
119
119
  import "./update-check-CtckACbb.js";
120
- import { n as handleGatewayRequest } from "./server-methods-dgW-8gC7.js";
121
- import "./push-apns-CflJh75N.js";
122
- import "./agents.config-B3GILTs5.js";
120
+ import { n as handleGatewayRequest } from "./server-methods-BqQeaixw.js";
121
+ import "./push-apns-DVz2SkR5.js";
122
+ import "./agents.config-AMrJVinF.js";
123
123
  import "./dm-policy-shared-Bh3TbexU.js";
124
124
  import "./node-service-Cxz4e-Qd.js";
125
125
  import "./status.update-DtwCUTf-.js";
126
126
  import "./skills-install-D67isO1L.js";
127
- import "./update-runner-DvZOsoQs.js";
127
+ import "./update-runner-Bssy0nSl.js";
128
128
 
129
129
  //#region src/gateway/glass-ui-ws.ts
130
130
  const SESSION_KEY = "agent:main:main";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D-jRCY0d.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-DHBLS1Hl.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
7
- import { Jn as resolveUserTimezone, K as appendCronStyleCurrentTimeLine, Tn as peekSystemEventEntries, W as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-J2pIBQF7.js";
7
+ import { Jn as resolveUserTimezone, K as appendCronStyleCurrentTimeLine, Tn as peekSystemEventEntries, W as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-CUXuFP-8.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
9
9
  import { r as SYMIPULSE_TOKEN } from "./tokens-Csntmwwn.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-B-0b9bGM.js";
2
- import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-DUZvOCsG.js";
2
+ import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-B2Xur-75.js";
3
3
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
@@ -15,7 +15,7 @@ import "./client-DMBZpU6X.js";
15
15
  import "./call-BcE47FtD.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-J2pIBQF7.js";
18
+ import "./subagent-registry-CUXuFP-8.js";
19
19
  import "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -104,7 +104,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
105
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
106
106
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEoLdlyb.js";
107
- import { t as buildPluginStatusReport } from "./status-D4Lr90yH.js";
107
+ import { t as buildPluginStatusReport } from "./status-BDABGQ7Y.js";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs";
110
110
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-DUZvOCsG.js";
4
+ import "./reply-B2Xur-75.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -108,7 +108,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
109
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
110
110
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BqLZtMLa.js";
111
- import { t as buildPluginStatusReport } from "./status-BqhJ-HsW.js";
111
+ import { t as buildPluginStatusReport } from "./status-Bwvq4SPL.js";
112
112
  import fs from "node:fs";
113
113
  import path from "node:path";
114
114
  import fs$1 from "node:fs/promises";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-Cqn-zk3M.js";
3
3
  import { B as theme, P as setVerbose, T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel, z as isRich } from "./utils-B-0b9bGM.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-DUZvOCsG.js";
5
+ import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-B2Xur-75.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-D9vIQve0.js";
8
8
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -103,7 +103,7 @@ import "./pi-tools.policy-CIDBbw6x.js";
103
103
  import "./control-service-Bz7rxLWq.js";
104
104
  import "./stagger-BUClb97_.js";
105
105
  import "./channel-selection-DuWs0Aak.js";
106
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-C3XZ7c2q.js";
106
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-Cuukem2c.js";
107
107
  import "./outbound-DB5Zus0-.js";
108
108
  import "./session-DIBTkyvE.js";
109
109
  import "./login-dIlDkG4X.js";
@@ -112,10 +112,10 @@ 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-BBtSJunF.js";
115
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-DFKRAsbt.js";
116
116
  import "./catalog-RiADx7MA.js";
117
- import "./plugin-registry-HFOrv3KN.js";
118
- import { n as resolveCliChannelOptions } from "./channel-options-PDf46S-K.js";
117
+ import "./plugin-registry-CMCHyYWB.js";
118
+ import { n as resolveCliChannelOptions } from "./channel-options-Del6IGRs.js";
119
119
  import process$1 from "node:process";
120
120
  import { fileURLToPath } from "node:url";
121
121
  import { Command } from "commander";
@@ -515,7 +515,7 @@ function registerPreActionHooks(program, programVersion) {
515
515
  commandPath
516
516
  });
517
517
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
518
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-HFOrv3KN.js").then((n) => n.n);
518
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CMCHyYWB.js").then((n) => n.n);
519
519
  ensurePluginRegistryLoaded();
520
520
  }
521
521
  });
@@ -3,7 +3,7 @@ import "./registry-DYq1AYOv.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CpEJ0B88.js";
4
4
  import "./subsystem-BjyjJF-d.js";
5
5
  import "./workspace-DscDraUb.js";
6
- import { t as runAgentTurn } from "./unified-runner-oH9Pt-cO.js";
6
+ import { t as runAgentTurn } from "./unified-runner-Bojz2_xD.js";
7
7
  import "./paths-CbQV9WEg.js";
8
8
  import "./auth-profiles-DdK1Hxaa.js";
9
9
  import "./env-BDXYbTKj.js";
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-J2pIBQF7.js";
17
+ import "./subagent-registry-CUXuFP-8.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -104,8 +104,8 @@ import "./table-D01d2GuY.js";
104
104
  import "./shared-D8K9MkWg.js";
105
105
  import "./auth-token-Cmrk2TPo.js";
106
106
  import "./logging-BGewRZy0.js";
107
- import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-Dc7jBEOA.js";
108
- import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-zowe4LXa.js";
107
+ import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-BEu0e6yr.js";
108
+ import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-mS0NbL8c.js";
109
109
 
110
110
  //#region src/cli/models-cli.ts
111
111
  function runModelsCommand(action) {
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, R as colorize, S as shortenHomePath, z as isRich$1 } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Yt as describeFailoverError, _r as formatRemainingShort, gr as buildAuthHealthSummary, gt as loadProviderUsageSummary, hr as DEFAULT_OAUTH_WARN_MS, mr as maskApiKey, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runAgentTurn } from "./reply-DUZvOCsG.js";
4
+ import { Yt as describeFailoverError, _r as formatRemainingShort, gr as buildAuthHealthSummary, gt as loadProviderUsageSummary, hr as DEFAULT_OAUTH_WARN_MS, mr as maskApiKey, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runAgentTurn } from "./reply-B2Xur-75.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -110,7 +110,7 @@ import { n as redactSecrets } from "./format-yQZNwAF2.js";
110
110
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-Knv1hy6h.js";
111
111
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-BnOynwk4.js";
112
112
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
113
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DhLHWjNU.js";
113
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DmEnyFX5.js";
114
114
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-UMsMEurS.js";
115
115
  import path from "node:path";
116
116
  import fs from "node:fs/promises";
@@ -7,7 +7,7 @@ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CaX_1WHk.j
7
7
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-DiCH8rkE.js";
8
8
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
9
9
  import { C as parseDurationMs, i as loadConfig } from "./config-DHBLS1Hl.js";
10
- import { J as runAgentTurn, _n as DEFAULT_OAUTH_WARN_MS, _t as describeFailoverError, an as formatUsageWindowSummary, gn as maskApiKey, on as resolveUsageProviderId, rn as loadProviderUsageSummary, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-J2pIBQF7.js";
10
+ import { J as runAgentTurn, _n as DEFAULT_OAUTH_WARN_MS, _t as describeFailoverError, an as formatUsageWindowSummary, gn as maskApiKey, on as resolveUsageProviderId, rn as loadProviderUsageSummary, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-CUXuFP-8.js";
11
11
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
12
12
  import { t as ensureSymiModelsJson } from "./models-config-CCMpqFyr.js";
13
13
  import { n as loadModelCatalog } from "./model-catalog-CqCsARJX.js";
@@ -21,7 +21,7 @@ import { n as redactSecrets } from "./format-DVLB9DNB.js";
21
21
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-D8K9MkWg.js";
22
22
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Cmrk2TPo.js";
23
23
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
24
- import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-Dc7jBEOA.js";
24
+ import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-BEu0e6yr.js";
25
25
  import path from "node:path";
26
26
  import fs from "node:fs/promises";
27
27
  import { complete, getEnvApiKey, getModel } from "@mariozechner/pi-ai";
@@ -9,8 +9,8 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
9
9
  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
- import { r as healthCommand } from "./health-CXjAtn1-.js";
13
- import { t as runOnboardingWizard } from "./onboarding-BA5v1JEG.js";
12
+ import { r as healthCommand } from "./health-BU6f7W6a.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-DwHp3u6V.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";
@@ -11,8 +11,8 @@ import { t as createClackPrompter } from "./clack-prompter-B7pN13HV.js";
11
11
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
13
13
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
14
- import { r as healthCommand } from "./health-B32Q-KYM.js";
15
- import { t as runOnboardingWizard } from "./onboarding-DioGtMFo.js";
14
+ import { r as healthCommand } from "./health-wZyomt2k.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-BxBRG2z_.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";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DUZvOCsG.js";
2
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-B2Xur-75.js";
3
3
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DCt45XZa.js";
4
4
  import { a as formatChannelSelectionLine, i as formatChannelPrimerLine, s as listChatChannels } from "./registry-Cja8eT7G.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DjZ7Z1hW.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
6
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-J2pIBQF7.js";
6
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CUXuFP-8.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
8
8
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-DLQFKucJ.js";
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./model-selection-CyFvYcRt.js").then((n) => n.dt);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BLzEBA1v.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-C7O-zfQ1.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BHWxDJh7.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CmbfbR4q.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-Ddo3jHe-.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-DKDeQZF0.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-DxCGWgB0.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-BlmSvsPS.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -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-CAbRXb0h.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-J7oUfYcz.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-Q1xTr5SX.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DVcYPG2v.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-DdWPfzJO.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BBmXnDnK.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-DsGuT4Dk.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-D5nCutGW.js").then((n) => n.i);
228
228
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
229
229
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
276
276
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
277
277
  else {
278
278
  const { listChannelPlugins } = await import("./plugins-CwSlLxM8.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-DLiV4Y0t.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-BnvM0w8_.js").then((n) => n.n);
280
280
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
281
281
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
282
282
  allowSignalInstall: true,
@@ -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-DMXCA49f.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BrbMUUi5.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-J2pIBQF7.js";
17
+ import "./subagent-registry-CUXuFP-8.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-elNdyQio.js";
103
- import "./command-registry-B2aO0Q7_.js";
102
+ import "./register.subclis-BS-WgVMV.js";
103
+ import "./command-registry-Dtn5iLgE.js";
104
104
  import "./program-context-CqzR_m-7.js";
105
- import { r as installCompletion } from "./completion-cli-BsKD_vBb.js";
105
+ import { r as installCompletion } from "./completion-cli-DEFzGiNX.js";
106
106
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CfRwa6qh.js";
107
107
  import "./runtime-guard-D7waq_Ho.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
109
109
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
110
- import { r as healthCommand } from "./health-CXjAtn1-.js";
110
+ import { r as healthCommand } from "./health-BU6f7W6a.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DyiRkYT4.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B-w1_lQk.js";
114
114
  import { t as runTui } from "./tui-BJB80muc.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-DUZvOCsG.js";
4
+ import "./reply-B2Xur-75.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -103,16 +103,16 @@ import "./control-service-Bz7rxLWq.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
105
  import "./runtime-guard-B37eizu-.js";
106
- import "./program-context-BBtSJunF.js";
106
+ import "./program-context-DFKRAsbt.js";
107
107
  import "./note-DeHoW7xO.js";
108
- import { r as installCompletion } from "./completion-cli-BKm12loU.js";
108
+ import { r as installCompletion } from "./completion-cli-DhhIPri-.js";
109
109
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
111
111
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
112
- import { r as healthCommand } from "./health-B32Q-KYM.js";
112
+ import { r as healthCommand } from "./health-wZyomt2k.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-SEerte2S.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BBki2Ufk.js";
116
116
  import { t as runTui } from "./tui-CriznorL.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
@@ -42309,6 +42309,175 @@ function toClientToolDefinitions(tools, onClientToolCall, hookContext) {
42309
42309
  * @module
42310
42310
  */
42311
42311
  /**
42312
+ * Known shell commands for prefix deduplication.
42313
+ * When token boundary corruption doubles a command prefix (grep → grgrep,
42314
+ * ls → lsls), we check the first token against this set. If stripping
42315
+ * the repeated prefix yields a known command, use it.
42316
+ *
42317
+ * O(1) lookup. Zero false positives — no valid command is its own prefix doubled.
42318
+ */
42319
+ const KNOWN_COMMANDS = new Set([
42320
+ "ls",
42321
+ "cat",
42322
+ "cp",
42323
+ "mv",
42324
+ "rm",
42325
+ "mkdir",
42326
+ "rmdir",
42327
+ "touch",
42328
+ "chmod",
42329
+ "chown",
42330
+ "chgrp",
42331
+ "ln",
42332
+ "pwd",
42333
+ "echo",
42334
+ "printf",
42335
+ "head",
42336
+ "tail",
42337
+ "wc",
42338
+ "sort",
42339
+ "uniq",
42340
+ "cut",
42341
+ "tr",
42342
+ "tee",
42343
+ "xargs",
42344
+ "env",
42345
+ "date",
42346
+ "sleep",
42347
+ "true",
42348
+ "false",
42349
+ "yes",
42350
+ "test",
42351
+ "expr",
42352
+ "basename",
42353
+ "dirname",
42354
+ "readlink",
42355
+ "realpath",
42356
+ "mktemp",
42357
+ "stat",
42358
+ "file",
42359
+ "dd",
42360
+ "df",
42361
+ "du",
42362
+ "id",
42363
+ "whoami",
42364
+ "hostname",
42365
+ "uname",
42366
+ "grep",
42367
+ "egrep",
42368
+ "fgrep",
42369
+ "find",
42370
+ "locate",
42371
+ "sed",
42372
+ "awk",
42373
+ "diff",
42374
+ "patch",
42375
+ "strings",
42376
+ "less",
42377
+ "more",
42378
+ "tar",
42379
+ "gzip",
42380
+ "gunzip",
42381
+ "zip",
42382
+ "unzip",
42383
+ "bzip2",
42384
+ "xz",
42385
+ "curl",
42386
+ "wget",
42387
+ "ssh",
42388
+ "scp",
42389
+ "rsync",
42390
+ "ping",
42391
+ "dig",
42392
+ "nslookup",
42393
+ "netstat",
42394
+ "lsof",
42395
+ "nc",
42396
+ "ifconfig",
42397
+ "ip",
42398
+ "ps",
42399
+ "top",
42400
+ "kill",
42401
+ "killall",
42402
+ "nohup",
42403
+ "nice",
42404
+ "which",
42405
+ "type",
42406
+ "where",
42407
+ "man",
42408
+ "sudo",
42409
+ "su",
42410
+ "mount",
42411
+ "umount",
42412
+ "systemctl",
42413
+ "journalctl",
42414
+ "launchctl",
42415
+ "dmesg",
42416
+ "sysctl",
42417
+ "git",
42418
+ "make",
42419
+ "gcc",
42420
+ "python",
42421
+ "python3",
42422
+ "pip",
42423
+ "pip3",
42424
+ "node",
42425
+ "npm",
42426
+ "npx",
42427
+ "pnpm",
42428
+ "yarn",
42429
+ "cargo",
42430
+ "go",
42431
+ "ruby",
42432
+ "gem",
42433
+ "java",
42434
+ "javac",
42435
+ "docker",
42436
+ "brew",
42437
+ "open",
42438
+ "pbcopy",
42439
+ "pbpaste",
42440
+ "defaults",
42441
+ "diskutil",
42442
+ "sw_vers",
42443
+ "system_profiler",
42444
+ "plutil",
42445
+ "mdfind",
42446
+ "mdls",
42447
+ "softwareupdate",
42448
+ "caffeinate",
42449
+ "say",
42450
+ "osascript",
42451
+ "security",
42452
+ "codesign",
42453
+ "hdiutil",
42454
+ "installer",
42455
+ "lipo",
42456
+ "otool",
42457
+ "dscl",
42458
+ "scutil"
42459
+ ]);
42460
+ /**
42461
+ * Fix command prefix duplication from token boundary splits.
42462
+ * Token corruption can double a multi-char prefix: grep → grgrep, ls → lsls.
42463
+ * Check if the first token starts with a repeated prefix that, when removed,
42464
+ * yields a known command.
42465
+ *
42466
+ * Examples: grgrep → grep, lsls → ls, catcat → cat, curlcurl → curl
42467
+ */
42468
+ function dedupCommandPrefix(command) {
42469
+ const match = command.match(/^([a-zA-Z0-9_-]+)/);
42470
+ if (!match) return command;
42471
+ const firstToken = match[1];
42472
+ if (KNOWN_COMMANDS.has(firstToken)) return command;
42473
+ for (let prefixLen = 2; prefixLen <= Math.min(10, Math.floor(firstToken.length / 2)); prefixLen++) {
42474
+ const prefix = firstToken.slice(0, prefixLen);
42475
+ const candidate = firstToken.slice(prefixLen);
42476
+ if (candidate.startsWith(prefix.slice(0, Math.min(prefix.length, candidate.length))) && KNOWN_COMMANDS.has(candidate)) return candidate + command.slice(firstToken.length);
42477
+ }
42478
+ return command;
42479
+ }
42480
+ /**
42312
42481
  * Validate that a command string contains extractable valid shell syntax.
42313
42482
  * Returns the cleaned command if valid, or an error reason if not.
42314
42483
  *
@@ -42327,6 +42496,7 @@ function validateShellCommand(command) {
42327
42496
  cleaned = cleaned.replace(/<\|[^|>]*(?:\|>)?/g, "").trim();
42328
42497
  cleaned = cleanResidualTokenFragments(cleaned);
42329
42498
  }
42499
+ cleaned = dedupCommandPrefix(cleaned);
42330
42500
  if (!cleaned || !cleaned.trim()) return {
42331
42501
  valid: false,
42332
42502
  cleaned: "",
@@ -60655,7 +60825,7 @@ function isVoiceChannelType(type) {
60655
60825
  function createDefaultDeps() {
60656
60826
  return {
60657
60827
  sendMessageWhatsApp: async (...args) => {
60658
- const { sendMessageWhatsApp } = await import("./web-mQInjWbW.js");
60828
+ const { sendMessageWhatsApp } = await import("./web-DJgELzDq.js");
60659
60829
  return await sendMessageWhatsApp(...args);
60660
60830
  },
60661
60831
  sendMessageTelegram: async (...args) => {
@@ -75935,7 +76105,7 @@ function loadWebLoginQr() {
75935
76105
  return webLoginQrPromise;
75936
76106
  }
75937
76107
  function loadWebChannel() {
75938
- webChannelPromise ??= import("./web-mQInjWbW.js");
76108
+ webChannelPromise ??= import("./web-DJgELzDq.js");
75939
76109
  return webChannelPromise;
75940
76110
  }
75941
76111
  function loadWhatsAppActions() {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as loadSymiPlugins } from "./reply-DUZvOCsG.js";
2
+ import { ft as loadSymiPlugins } from "./reply-B2Xur-75.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-DHBLS1Hl.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-J2pIBQF7.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-CUXuFP-8.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { a as resolveOAuthDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry--_pGht6S.js";
4
- import { i as defaultRuntime } from "./subsystem-Coz2AgU8.js";
5
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
3
+ import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry-D0xTnUWt.js";
4
+ import { i as defaultRuntime } from "./subsystem-B2uDN3TV.js";
5
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
6
6
  import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");