@symerian/symi 2.5.0 → 2.5.2

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 (171) hide show
  1. package/dist/{agents-BEPfMqrg.js → agents-DfyzZKBc.js} +4 -4
  2. package/dist/{agents.config-DPv-AmZD.js → agents.config-Dzr8Us0l.js} +1 -1
  3. package/dist/{agents.config-D60gMagv.js → agents.config-VjZQr5GP.js} +1 -1
  4. package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
  5. package/dist/{auth-choice-CTeG2A5P.js → auth-choice-BJPRC23V.js} +1 -1
  6. package/dist/{auth-choice-BeHaRQfM.js → auth-choice-C01glnpg.js} +1 -1
  7. package/dist/{banner-DihS8WHF.js → banner-B4wP-CCZ.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +1 -1
  10. package/dist/bundled/session-memory/handler.js +1 -1
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-D2Zf6a2L.js → channel-options-Bb2WRpn4.js} +1 -1
  13. package/dist/{channel-options-BJphNYiq.js → channel-options-DRK05uet.js} +1 -1
  14. package/dist/{channel-web-BnZ6c0_u.js → channel-web-Cv1L-jTo.js} +1 -1
  15. package/dist/{channels-cli-COMko9mZ.js → channels-cli-CPvaBiNE.js} +4 -4
  16. package/dist/{channels-cli-CF9LDCSC.js → channels-cli-Dnwswsi2.js} +4 -4
  17. package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
  18. package/dist/{cli-DYNTJxmZ.js → cli-CgQySW2m.js} +1 -1
  19. package/dist/{cli-DXpAHJS4.js → cli-hT0g_Q65.js} +1 -1
  20. package/dist/{command-registry-X_FmrHib.js → command-registry-D7MjQKMD.js} +9 -9
  21. package/dist/{completion-cli-D1aObtjM.js → completion-cli-BLYlpN4p.js} +1 -1
  22. package/dist/{completion-cli-Dhj0jCR_.js → completion-cli-Bcv09Yuh.js} +2 -2
  23. package/dist/{config-cli-BrmaXVj4.js → config-cli-CIkKTucr.js} +1 -1
  24. package/dist/{config-cli-BDpBT1b-.js → config-cli-CtKkpyHu.js} +1 -1
  25. package/dist/{configure-CkCFJCKp.js → configure-BP4M7T_e.js} +3 -3
  26. package/dist/{configure-oMqP6jIk.js → configure-Bhm7x3Ri.js} +3 -3
  27. package/dist/control-ui/js/render.js +4 -32
  28. package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
  29. package/dist/{doctor-completion-vhqAoURB.js → doctor-completion-DVs_xVw4.js} +1 -1
  30. package/dist/{doctor-completion-wGoyzRH8.js → doctor-completion-bTUb2Em4.js} +1 -1
  31. package/dist/entry.js +1 -1
  32. package/dist/extensionAPI.js +6 -6
  33. package/dist/{gateway-cli-uDuGdJsH.js → gateway-cli-BPf1OUhU.js} +11 -45
  34. package/dist/{gateway-cli-BBPEwiAc.js → gateway-cli-CY_R8dGA.js} +11 -45
  35. package/dist/{glass-ui-ws-TCkne4L4.js → glass-ui-ws-Cx9mt64o.js} +7 -7
  36. package/dist/{glass-ui-ws-DiqQflvy.js → glass-ui-ws-DMQldmwk.js} +7 -7
  37. package/dist/{health-1KsVR3eN.js → health-CM3gPoYN.js} +1 -1
  38. package/dist/{health-CPYlV7Zg.js → health-vuMM-FAs.js} +1 -1
  39. package/dist/{hooks-cli-PKy2h3eb.js → hooks-cli-B8kuyvML.js} +2 -2
  40. package/dist/{hooks-cli-CL266d2E.js → hooks-cli-tLOOQscu.js} +2 -2
  41. package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
  42. package/dist/index.js +6 -6
  43. package/dist/llm-slug-generator.js +1 -1
  44. package/dist/{models-BsS_l1gY.js → models-CBtd5YaQ.js} +2 -2
  45. package/dist/{models-cli-CmR7k-2e.js → models-cli-B8Fq0Of1.js} +2 -2
  46. package/dist/{models-cli-CvxkLybz.js → models-cli-CIp8mElS.js} +3 -3
  47. package/dist/{onboard-D2GpwLzg.js → onboard-CjSHwvTP.js} +2 -2
  48. package/dist/{onboard-Bgo_BcMo.js → onboard-DBCSZwxu.js} +2 -2
  49. package/dist/{onboard-channels-3WFDi7Ts.js → onboard-channels-BgMpB9vX.js} +1 -1
  50. package/dist/{onboard-channels-BNTeFCna.js → onboard-channels-eCCJophA.js} +1 -1
  51. package/dist/{onboarding-BUumoJYB.js → onboarding-3iCiOVeb.js} +3 -3
  52. package/dist/{onboarding-CbkyewZp.js → onboarding-ztTrPGQa.js} +3 -3
  53. package/dist/{onboarding.finalize-B2_mgA4K.js → onboarding.finalize-DsOBEKtX.js} +6 -6
  54. package/dist/{onboarding.finalize-sESCY9Iq.js → onboarding.finalize-bcSfd4yw.js} +5 -5
  55. package/dist/{pi-embedded-BIIdwXKr.js → pi-embedded-Ch-LcMWg.js} +108 -32
  56. package/dist/{pi-embedded-BOF7XlCO.js → pi-embedded-CpI5F8DC.js} +122 -46
  57. package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
  58. package/dist/{plugin-registry-IXa-nyg0.js → plugin-registry-BfqJjw6d.js} +1 -1
  59. package/dist/{plugin-registry-BDfC2z-e.js → plugin-registry-CL--iTFl.js} +1 -1
  60. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  61. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  62. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  63. package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-bEk__wbB.js} +1 -1
  64. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  65. package/dist/plugin-sdk/agents/session-version.d.ts +48 -0
  66. package/dist/plugin-sdk/{api-key-rotation-D_sMvI5W.js → api-key-rotation-CVBMpnPc.js} +1 -1
  67. package/dist/plugin-sdk/{audio-preflight-VpItkiy3.js → audio-preflight-DoQQKlxa.js} +24 -24
  68. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  69. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  70. package/dist/plugin-sdk/{channel-web-HznAZS1r.js → channel-web-mO5qO05p.js} +22 -22
  71. package/dist/plugin-sdk/{chrome-B7RdxmJ0.js → chrome-C7c_0I5M.js} +3 -3
  72. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  73. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  74. package/dist/plugin-sdk/{commands-registry-COIaslGl.js → commands-registry-CQFbmUMs.js} +4 -4
  75. package/dist/plugin-sdk/{config-KlTNfkFF.js → config-DDkdiUOR.js} +9 -9
  76. package/dist/plugin-sdk/{deliver-BZ99UKQq.js → deliver-BZ6iNLl7.js} +10 -10
  77. package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-mFf4i4G9.js} +1 -1
  78. package/dist/plugin-sdk/{image-CLOPx7yW.js → image-BOYy0Ump.js} +4 -4
  79. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  80. package/dist/plugin-sdk/index.js +53 -53
  81. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  82. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  83. package/dist/plugin-sdk/{login-DQMXuxOk.js → login-Bh3DZPam.js} +7 -7
  84. package/dist/plugin-sdk/{login-qr-BjVZSoCi.js → login-qr-DbR7odSr.js} +9 -9
  85. package/dist/plugin-sdk/{manager-CBSBFuFz.js → manager-DckktAQ3.js} +8 -8
  86. package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
  87. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  88. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  89. package/dist/plugin-sdk/{model-selection-CsbEfrS0.js → model-selection-OpU8HN50.js} +4 -4
  90. package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DnVQfTG2.js} +2 -2
  91. package/dist/plugin-sdk/{outbound-B0e8KdaR.js → outbound-rF6G8Xpr.js} +7 -7
  92. package/dist/plugin-sdk/{pi-auth-json-qWi7ZIYV.js → pi-auth-json-CJk8t14T.js} +5 -5
  93. package/dist/plugin-sdk/{pi-embedded-helpers-CW630epe.js → pi-embedded-helpers-BveUP4hk.js} +17 -17
  94. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  95. package/dist/plugin-sdk/{pw-ai-CnbPIPY9.js → pw-ai-DjGUsee-.js} +8 -8
  96. package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-mjKcdwVr.js} +4 -4
  97. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  98. package/dist/plugin-sdk/{replies-LLcQL3w6.js → replies-fI39rPGa.js} +3 -3
  99. package/dist/plugin-sdk/{reply-DpnW-aMb.js → reply-B4uPw1l4.js} +184 -108
  100. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  101. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  102. package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
  103. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  104. package/dist/plugin-sdk/{runner-CGBT7tgF.js → runner-BVqnEfNe.js} +9 -9
  105. package/dist/plugin-sdk/{send-C5h_YxNb.js → send-BHbXh8Ly.js} +7 -7
  106. package/dist/plugin-sdk/{send-pYqe432l.js → send-BMfJIhCk.js} +6 -6
  107. package/dist/plugin-sdk/{send-B2CEnVLL.js → send-BtANzsAo.js} +6 -6
  108. package/dist/plugin-sdk/{send-CjOBB3Vo.js → send-Bxdu6ZZy.js} +10 -10
  109. package/dist/plugin-sdk/{send-CRsR8-vO.js → send-D6LMZJ_h.js} +10 -10
  110. package/dist/plugin-sdk/{session-BsOrxiMj.js → session-kI0tzViQ.js} +4 -4
  111. package/dist/plugin-sdk/{skill-commands-ff_01_r3.js → skill-commands-DCNXVERE.js} +5 -5
  112. package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
  113. package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
  114. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  115. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  116. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  117. package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
  118. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  119. package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
  120. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  121. package/dist/plugin-sdk/{tool-loop-detection-BVA6fax-.js → tool-loop-detection-edmW8ZiF.js} +2 -2
  122. package/dist/plugin-sdk/web-BkEJ_MjB.js +65 -0
  123. package/dist/plugin-sdk/{whatsapp-actions-DfseosPO.js → whatsapp-actions-CcBzDuL-.js} +21 -21
  124. package/dist/{plugins-cli-DsYvb9az.js → plugins-cli-DVLIR6IN.js} +2 -2
  125. package/dist/{plugins-cli-DAxj0T7n.js → plugins-cli-MaXVJ6uV.js} +2 -2
  126. package/dist/{program-context-C-1s9IMf.js → program-context-C0vN6LYk.js} +17 -17
  127. package/dist/{program-C_UFd0ph.js → program-v4cRnLjP.js} +7 -7
  128. package/dist/{prompt-select-styled-uEjL8GAK.js → prompt-select-styled-CEmtUvNV.js} +4 -4
  129. package/dist/{prompt-select-styled-CYRG7OzR.js → prompt-select-styled-D48W5rxp.js} +4 -4
  130. package/dist/{provider-auth-helpers-CJUiVhCt.js → provider-auth-helpers-C4-EqP9W.js} +1 -1
  131. package/dist/{provider-auth-helpers-CpOR6tLS.js → provider-auth-helpers-CPbCxhvj.js} +1 -1
  132. package/dist/{push-apns-Ciljlk7J.js → push-apns-DpdcOumU.js} +1 -1
  133. package/dist/{push-apns-21LKYvkS.js → push-apns-glbAu-g9.js} +1 -1
  134. package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
  135. package/dist/{register.agent-stsk6Gip.js → register.agent-2jRwf1Rt.js} +5 -5
  136. package/dist/{register.agent-BSv7WO-U.js → register.agent-DrocnT2d.js} +6 -6
  137. package/dist/{register.configure-DNQTd6SJ.js → register.configure-DULdexW6.js} +6 -6
  138. package/dist/{register.configure-C8oDtnaI.js → register.configure-yy5Qb8fJ.js} +6 -6
  139. package/dist/{register.maintenance-dTI3y4Eh.js → register.maintenance-CI3D-c8a.js} +8 -8
  140. package/dist/{register.maintenance-B3f3jkUo.js → register.maintenance-v_G9yCLf.js} +7 -7
  141. package/dist/{register.message-K9BDeFyy.js → register.message-DkwXioit.js} +2 -2
  142. package/dist/{register.message-Cbb4nH_0.js → register.message-UoA7D74J.js} +2 -2
  143. package/dist/{register.onboard-BBfmwa3j.js → register.onboard-D3qTCyiW.js} +4 -4
  144. package/dist/{register.onboard-Djz7Di9K.js → register.onboard-DFe3IAjB.js} +4 -4
  145. package/dist/{register.setup-Dmu1jt3n.js → register.setup-DO3vwGHY.js} +4 -4
  146. package/dist/{register.setup-B6hkCLH0.js → register.setup-DXT4OS3N.js} +4 -4
  147. package/dist/{register.status-health-sessions-DaSrMm3l.js → register.status-health-sessions-C5IRI7-t.js} +3 -3
  148. package/dist/{register.status-health-sessions-CvwhBkbb.js → register.status-health-sessions-DGLfWuS4.js} +3 -3
  149. package/dist/{register.subclis-Dv1WM9Kj.js → register.subclis-PQ2Ulz3J.js} +9 -9
  150. package/dist/{reply-BvVsPU7v.js → reply-kuehpmXb.js} +109 -33
  151. package/dist/{run-main-55CDVAv6.js → run-main-BHKGY1KH.js} +14 -14
  152. package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
  153. package/dist/{server-methods-Bf8SpXoW.js → server-methods-BHjqwsiI.js} +7 -7
  154. package/dist/{server-methods-CDDLS3ke.js → server-methods-rmWST_iV.js} +7 -7
  155. package/dist/{server-node-events-B9iZK3qE.js → server-node-events-KVX4S5Md.js} +2 -2
  156. package/dist/{server-node-events-Dx0L419d.js → server-node-events-za7_iA-n.js} +2 -2
  157. package/dist/{status-C-vthqzQ.js → status-BJITmlhZ.js} +2 -2
  158. package/dist/{status-DEymUALi.js → status-Bow6kS56.js} +2 -2
  159. package/dist/{status-5XgxbiNb.js → status-CRuOmtVo.js} +1 -1
  160. package/dist/{status-C-kU0UFm.js → status-DJhmJYSu.js} +1 -1
  161. package/dist/{subagent-registry-CZah-77E.js → subagent-registry-BxM7J5m6.js} +109 -33
  162. package/dist/{update-cli-BSk-OFnI.js → update-cli-BfGdSZRk.js} +8 -8
  163. package/dist/{update-cli-B21iNb0v.js → update-cli-Dqh498qQ.js} +7 -7
  164. package/dist/{update-runner-DPwXk0QQ.js → update-runner-C0iELmzo.js} +1 -1
  165. package/dist/{update-runner-B5bKK21U.js → update-runner-YRJPtj9J.js} +1 -1
  166. package/dist/{web-mkZpWfVs.js → web-9AS0DiSZ.js} +1 -1
  167. package/dist/{web-CB23XCVF.js → web-CVAyVZBT.js} +2 -2
  168. package/dist/{web-DSgWG_2m.js → web-CubghJNN.js} +1 -1
  169. package/dist/{web-DVvZ_mDC.js → web-DFqKskm8.js} +6 -6
  170. package/package.json +1 -1
  171. package/dist/plugin-sdk/web-CGNEXRkp.js +0 -65
@@ -48001,6 +48001,109 @@ function guardSessionManager(sessionManager, opts) {
48001
48001
  return sessionManager;
48002
48002
  }
48003
48003
 
48004
+ //#endregion
48005
+ //#region src/agents/session-version.ts
48006
+ /**
48007
+ * Session Versioning — version-based session migration.
48008
+ *
48009
+ * Each session gets a `symiVersion` field in its JSONL header.
48010
+ * On session load, if the session was created by a known-poison version
48011
+ * (2.3.0-2.3.4), it's archived and a fresh session starts.
48012
+ *
48013
+ * Sessions without `symiVersion` predate 2.3.0 and were created with Claude,
48014
+ * which does not produce corrupted tool args or looping output. Do NOT
48015
+ * archive unversioned sessions — they are safe. Only sessions with an
48016
+ * explicit symiVersion in the known-poison range are archived.
48017
+ *
48018
+ * @module
48019
+ */
48020
+ /** Versions that produced corrupted sessions (tool arg garbage, looping). */
48021
+ const POISON_VERSION_MIN = [
48022
+ 2,
48023
+ 3,
48024
+ 0
48025
+ ];
48026
+ const POISON_VERSION_MAX = [
48027
+ 2,
48028
+ 3,
48029
+ 4
48030
+ ];
48031
+ function parseVersion(v) {
48032
+ return v.split(".").map((s) => parseInt(s, 10)).filter((n) => !Number.isNaN(n));
48033
+ }
48034
+ function compareVersions(a, b) {
48035
+ for (let i = 0; i < Math.max(a.length, b.length); i++) {
48036
+ const av = a[i] ?? 0;
48037
+ const bv = b[i] ?? 0;
48038
+ if (av < bv) return -1;
48039
+ if (av > bv) return 1;
48040
+ }
48041
+ return 0;
48042
+ }
48043
+ function isInPoisonRange(version) {
48044
+ const v = parseVersion(version);
48045
+ if (v.length < 3) return false;
48046
+ return compareVersions(v, POISON_VERSION_MIN) >= 0 && compareVersions(v, POISON_VERSION_MAX) <= 0;
48047
+ }
48048
+ /**
48049
+ * Check if a session file was created by a poisoned Symi version.
48050
+ * Returns the symiVersion if poisoned, null if safe.
48051
+ */
48052
+ async function checkSessionPoison(sessionFile) {
48053
+ try {
48054
+ const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
48055
+ if (!firstLine) return null;
48056
+ const header = JSON.parse(firstLine);
48057
+ if (header.type !== "session") return null;
48058
+ const symiVersion = header.symiVersion;
48059
+ if (typeof symiVersion !== "string") return null;
48060
+ if (isInPoisonRange(symiVersion)) return symiVersion;
48061
+ return null;
48062
+ } catch {
48063
+ return null;
48064
+ }
48065
+ }
48066
+ /**
48067
+ * Archive a poisoned session file by renaming it.
48068
+ * The archived file can be inspected later but won't be loaded.
48069
+ */
48070
+ async function archivePoisonedSession(sessionFile) {
48071
+ const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
48072
+ await fs$1.rename(sessionFile, archiveName);
48073
+ return archiveName;
48074
+ }
48075
+ /**
48076
+ * Stamp the current Symi version into a session file's header.
48077
+ * Reads the first line, adds/updates symiVersion, rewrites the line.
48078
+ */
48079
+ async function stampSessionVersion(sessionFile) {
48080
+ try {
48081
+ const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
48082
+ if (lines.length === 0) return;
48083
+ const header = JSON.parse(lines[0]);
48084
+ if (header.type !== "session") return;
48085
+ if (header.symiVersion === VERSION) return;
48086
+ header.symiVersion = VERSION;
48087
+ lines[0] = JSON.stringify(header);
48088
+ await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
48089
+ } catch {}
48090
+ }
48091
+ /**
48092
+ * Check and handle a session file before use.
48093
+ * If poisoned: archive it and return { archived: true }.
48094
+ * Otherwise: stamp the current version and return { archived: false }.
48095
+ */
48096
+ async function handleSessionVersion(sessionFile) {
48097
+ const poison = await checkSessionPoison(sessionFile);
48098
+ if (poison) return {
48099
+ archived: true,
48100
+ archivePath: await archivePoisonedSession(sessionFile),
48101
+ poisonVersion: poison
48102
+ };
48103
+ await stampSessionVersion(sessionFile);
48104
+ return { archived: false };
48105
+ }
48106
+
48004
48107
  //#endregion
48005
48108
  //#region src/agents/stream-monitor.ts
48006
48109
  /**
@@ -50952,6 +51055,8 @@ async function runEmbeddedAttempt(params) {
50952
51055
  provider: params.provider,
50953
51056
  modelId: params.modelId
50954
51057
  });
51058
+ const versionCheck = await handleSessionVersion(params.sessionFile);
51059
+ if (versionCheck.archived) log$4.warn(`session archived: created by ${versionCheck.poisonVersion}, known corruption range → ${versionCheck.archivePath}`);
50955
51060
  await prewarmSessionFile(params.sessionFile);
50956
51061
  sessionManager = guardSessionManager(SessionManager.open(params.sessionFile), {
50957
51062
  agentId: sessionAgentId,
@@ -52623,7 +52728,7 @@ async function runAgentTurn(params) {
52623
52728
  function createDefaultDeps() {
52624
52729
  return {
52625
52730
  sendMessageWhatsApp: async (...args) => {
52626
- const { sendMessageWhatsApp } = await import("./web-mkZpWfVs.js");
52731
+ const { sendMessageWhatsApp } = await import("./web-9AS0DiSZ.js");
52627
52732
  return await sendMessageWhatsApp(...args);
52628
52733
  },
52629
52734
  sendMessageTelegram: async (...args) => {
@@ -67937,7 +68042,7 @@ function loadWebLoginQr() {
67937
68042
  return webLoginQrPromise;
67938
68043
  }
67939
68044
  function loadWebChannel() {
67940
- webChannelPromise ??= import("./web-mkZpWfVs.js");
68045
+ webChannelPromise ??= import("./web-9AS0DiSZ.js");
67941
68046
  return webChannelPromise;
67942
68047
  }
67943
68048
  function loadWhatsAppActions() {
@@ -69762,31 +69867,6 @@ function resolveToolLoopDetectionConfig(params) {
69762
69867
  }
69763
69868
  };
69764
69869
  }
69765
- /**
69766
- * Wrap a tool to strip model-specific control tokens from string arguments
69767
- * before execution. Gemma 4 via vLLM sometimes injects tokens like `<|`
69768
- * into tool call arguments (e.g. `exec("<|node -v")`). This wrapper
69769
- * sanitizes all string values in the argument object.
69770
- */
69771
- function wrapToolWithArgSanitization(tool, modelId) {
69772
- const execute = tool.execute;
69773
- if (!execute) return tool;
69774
- return {
69775
- ...tool,
69776
- execute: async (toolCallId, params, signal, onUpdate) => {
69777
- return execute(toolCallId, sanitizeToolArgs(params, modelId), signal, onUpdate);
69778
- }
69779
- };
69780
- }
69781
- function sanitizeToolArgs(params, modelId) {
69782
- if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
69783
- if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
69784
- const result = {};
69785
- for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
69786
- else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
69787
- else result[key] = value;
69788
- return result;
69789
- }
69790
69870
  function createSymiCodingTools(options) {
69791
69871
  const execToolName = "exec";
69792
69872
  const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
@@ -70010,11 +70090,7 @@ function createSymiCodingTools(options) {
70010
70090
  agentId
70011
70091
  })
70012
70092
  }));
70013
- const withAbort = options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
70014
- const modelId = options?.modelId ?? "";
70015
- const modelProvider = options?.modelProvider ?? "";
70016
- const fullModelId = modelProvider ? `${modelProvider}/${modelId}` : modelId;
70017
- return fullModelId ? withAbort.map((tool) => wrapToolWithArgSanitization(tool, fullModelId)) : withAbort;
70093
+ return options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
70018
70094
  }
70019
70095
 
70020
70096
  //#endregion
@@ -72305,4 +72381,4 @@ function initSubagentRegistry() {
72305
72381
  }
72306
72382
 
72307
72383
  //#endregion
72308
- export { resolveCronStyleNow as $, resolveTtsApiKey as $n, setGatewaySigusr1RestartPolicy as $t, getActiveEmbeddedRunCount as A, DEFAULT_INPUT_MAX_REDIRECTS as An, normalizeOptionalAgentId as At, DEFAULT_GROUP_HISTORY_LIMIT as B, formatInboundEnvelope as Bn, CHANNEL_TARGET_DESCRIPTION as Bt, resolveAgentDeliveryPlan as C, parseVerboseOverride as Cn, getAgentRunContext as Cr, summarizeRestartSentinel as Ct, createOutboundSendDeps$1 as D, peekSystemEvents as Dn, normalizeCronJobCreate as Dt, createDefaultDeps as E, peekSystemEventEntries as En, normalizeHttpWebhookUrl as Et, identityHasValues as F, resolveInputFileLimits as Fn, migrateLegacyCronPayload as Ft, provider_dispatcher_exports as G, isAbortTrigger as Gn, applyBrowserProxyPaths as Gt, recordPendingHistoryEntryIfEnabled as H, formatZonedTimestamp as Hn, detectSuspiciousPatterns as Ht, loadAgentIdentityFromWorkspace as I, estimateBase64DecodedBytes as In, buildDeliveryFromLegacyPayload as It, getTotalPendingReplies as J, normalizeMentionText as Jn, deferGatewayRestartUntilIdle as Jt, dispatchInboundMessage as K, stopSubagentsForRequester as Kn, persistBrowserProxyFiles as Kt, parseIdentityMarkdown as L, resolveAgentTimeoutMs as Ln, hasLegacyDeliveryHints as Lt, stripModelTokens as M, extractFileContentFromSource as Mn, normalizeOptionalText as Mt, resolveModelProfile as N, extractImageContentFromSource as Nn, normalizePayloadToSystemText as Nt, runEmbeddedPiAgent as O, DEFAULT_INPUT_IMAGE_MAX_BYTES as On, normalizeCronJobPatch as Ot, resolveAgentAvatar as P, normalizeMimeList as Pn, normalizeRequiredName as Pt, appendCronStyleCurrentTimeLine as Q, isTtsProviderConfigured as Qn, scheduleGatewaySigusr1Restart as Qt, buildPairingReply as R, createInboundDebouncer as Rn, stripLegacyDeliveryFields as Rt, resolveSessionKeyForRequest as S, applyVerboseOverride as Sn, emitAgentEvent as Sr, readRestartSentinel as St, createOutboundSendDeps as T, isSystemEventContextChanged as Tn, registerAgentRunContext as Tr, writeRestartSentinel as Tt, shouldAckReactionForWhatsApp as U, hasControlCommand as Un, getHookType as Ut, buildHistoryContextFromEntries as V, resolveEnvelopeFormatOptions as Vn, buildSafeExternalPrompt as Vt, dispatchReplyWithBufferedBlockDispatcher as W, shouldComputeCommandAuthorized as Wn, isExternalHookSession as Wt, getReplyFromConfig as X, getTtsProvider as Xn, isGatewaySigusr1RestartExternallyAllowed as Xt, createDedupeCache as Y, resolveUserTimezone as Yn, emitGatewayRestart as Yt, BARE_SESSION_RESET_PROMPT as Z, isTtsEnabled as Zn, markGatewaySigusr1RestartHandled as Zt, readJsonBodyWithLimit as _, maskApiKey as _n, DEFAULT_HEARTBEAT_EVERY as _r, runWithModelFallback as _t, listSubagentRunsForRequester as a, formatUsageReportLines as an, setTtsProvider as ar, readLatestAssistantReply as at, sleepWithAbort as b, formatRemainingShort as bn, stripHeartbeatToken as br, formatDoctorNonInteractiveHint as bt, clearSessionQueues as c, buildChannelSummary as cn, OPENAI_TTS_VOICES as cr, ensureOutboundSessionEntry as ct, sniffMimeFromBase64 as d, resolveCommitHash as dn, getTotalQueueSize as dr, resolveHeartbeatSenderContext as dt, setPreRestartDeferralCheck as en, resolveTtsAutoMode as er, getCliSessionId as et, getPluginToolMeta as f, requestHeartbeatNow as fn, resetAllLanes as fr, resolveOutboundTarget as ft, handleSlackHttpRequest as g, resolveSendPolicy as gn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as gr, CHANNEL_MESSAGE_ACTION_NAMES as gt, deleteTelegramUpdateOffset as h, normalizeSendPolicy as hn, CommandLane as hr, resetDirectoryCache as ht, listDescendantRunsForRequester as i, loadProviderUsageSummary as in, setTtsEnabled as ir, createSymiTools as it, waitForEmbeddedPiRunEnd as j, DEFAULT_INPUT_TIMEOUT_MS as jn, normalizeOptionalSessionKey as jt, abortEmbeddedPiRun as k, DEFAULT_INPUT_IMAGE_MIMES as kn, inferLegacyName as kt, applyToolPolicyPipeline as l, buildChannelAccountSnapshot as ln, getActiveTaskCount as lr, resolveOutboundSessionRoute as lt, loadSymiPlugins as m, resolveHeartbeatReasonKind as mn, waitForActiveTasks as mr, formatTargetDisplay as mt, countActiveRunsForSession as n, normalizeGroupActivation as nn, resolveTtsPrefsPath as nr, runCliAgent as nt, subagent_registry_exports as o, formatUsageWindowSummary as on, textToSpeech as or, resolveAnnounceTargetFromKey as ot, createPluginLoaderLogger as p, setHeartbeatWakeHandler as pn, setCommandLaneConcurrency as pr, resolveSessionDeliveryTarget as pt, createReplyDispatcher as q, buildMentionRegexes as qn, consumeGatewaySigusr1RestartAuthorization as qt, initSubagentRegistry as r, parseActivationCommand as rn, resolveTtsProviderOrder as rr, sha256HexPrefix as rt, runSubagentAnnounceFlow as s, resolveUsageProviderId as sn, OPENAI_TTS_MODELS as sr, runMessageAction as st, countActiveDescendantRuns as t, unbindThreadBindingsBySessionKey as tn, resolveTtsConfig as tr, setCliSessionId as tt, buildDefaultToolPolicyPipelineSteps as u, formatChannelAllowFrom as un, getQueueSize as ur, resolveHeartbeatDeliveryTarget as ut, requestBodyErrorToText as v, DEFAULT_OAUTH_WARN_MS as vn, isHeartbeatContentEffectivelyEmpty as vr, describeFailoverError as vt, resolveAgentOutboundTarget as w, enqueueSystemEvent as wn, onAgentEvent as wr, trimLogTail as wt, agentCommand as x, applyModelOverrideToSessionEntry as xn, clearAgentRunContext as xr, formatRestartSentinelMessage as xt, computeBackoff as y, buildAuthHealthSummary as yn, resolveHeartbeatPrompt as yr, consumeRestartSentinel as yt, resolveMentionGating as z, resolveInboundDebounceMs as zn, CHANNEL_TARGETS_DESCRIPTION as zt };
72384
+ export { getCliSessionId as $, resolveTtsAutoMode as $n, setPreRestartDeferralCheck as $t, getActiveEmbeddedRunCount as A, DEFAULT_INPUT_TIMEOUT_MS as An, normalizeOptionalSessionKey as At, buildHistoryContextFromEntries as B, resolveEnvelopeFormatOptions as Bn, buildSafeExternalPrompt as Bt, resolveAgentDeliveryPlan as C, enqueueSystemEvent as Cn, onAgentEvent as Cr, trimLogTail as Ct, createOutboundSendDeps$1 as D, DEFAULT_INPUT_IMAGE_MAX_BYTES as Dn, normalizeCronJobPatch as Dt, createDefaultDeps as E, peekSystemEvents as En, normalizeCronJobCreate as Et, loadAgentIdentityFromWorkspace as F, estimateBase64DecodedBytes as Fn, buildDeliveryFromLegacyPayload as Ft, dispatchInboundMessage as G, stopSubagentsForRequester as Gn, persistBrowserProxyFiles as Gt, shouldAckReactionForWhatsApp as H, hasControlCommand as Hn, getHookType as Ht, parseIdentityMarkdown as I, resolveAgentTimeoutMs as In, hasLegacyDeliveryHints as It, createDedupeCache as J, resolveUserTimezone as Jn, emitGatewayRestart as Jt, createReplyDispatcher as K, buildMentionRegexes as Kn, consumeGatewaySigusr1RestartAuthorization as Kt, buildPairingReply as L, createInboundDebouncer as Ln, stripLegacyDeliveryFields as Lt, resolveModelProfile as M, extractImageContentFromSource as Mn, normalizePayloadToSystemText as Mt, resolveAgentAvatar as N, normalizeMimeList as Nn, normalizeRequiredName as Nt, runEmbeddedPiAgent as O, DEFAULT_INPUT_IMAGE_MIMES as On, inferLegacyName as Ot, identityHasValues as P, resolveInputFileLimits as Pn, migrateLegacyCronPayload as Pt, resolveCronStyleNow as Q, resolveTtsApiKey as Qn, setGatewaySigusr1RestartPolicy as Qt, resolveMentionGating as R, resolveInboundDebounceMs as Rn, CHANNEL_TARGETS_DESCRIPTION as Rt, resolveSessionKeyForRequest as S, parseVerboseOverride as Sn, getAgentRunContext as Sr, summarizeRestartSentinel as St, createOutboundSendDeps as T, peekSystemEventEntries as Tn, normalizeHttpWebhookUrl as Tt, dispatchReplyWithBufferedBlockDispatcher as U, shouldComputeCommandAuthorized as Un, isExternalHookSession as Ut, recordPendingHistoryEntryIfEnabled as V, formatZonedTimestamp as Vn, detectSuspiciousPatterns as Vt, provider_dispatcher_exports as W, isAbortTrigger as Wn, applyBrowserProxyPaths as Wt, BARE_SESSION_RESET_PROMPT as X, isTtsEnabled as Xn, markGatewaySigusr1RestartHandled as Xt, getReplyFromConfig as Y, getTtsProvider as Yn, isGatewaySigusr1RestartExternallyAllowed as Yt, appendCronStyleCurrentTimeLine as Z, isTtsProviderConfigured as Zn, scheduleGatewaySigusr1Restart as Zt, readJsonBodyWithLimit as _, DEFAULT_OAUTH_WARN_MS as _n, isHeartbeatContentEffectivelyEmpty as _r, describeFailoverError as _t, listSubagentRunsForRequester as a, formatUsageWindowSummary as an, textToSpeech as ar, resolveAnnounceTargetFromKey as at, sleepWithAbort as b, applyModelOverrideToSessionEntry as bn, clearAgentRunContext as br, formatRestartSentinelMessage as bt, clearSessionQueues as c, buildChannelAccountSnapshot as cn, getActiveTaskCount as cr, resolveOutboundSessionRoute as ct, sniffMimeFromBase64 as d, requestHeartbeatNow as dn, resetAllLanes as dr, resolveOutboundTarget as dt, unbindThreadBindingsBySessionKey as en, resolveTtsConfig as er, setCliSessionId as et, getPluginToolMeta as f, setHeartbeatWakeHandler as fn, setCommandLaneConcurrency as fr, resolveSessionDeliveryTarget as ft, handleSlackHttpRequest as g, maskApiKey as gn, DEFAULT_HEARTBEAT_EVERY as gr, runWithModelFallback as gt, deleteTelegramUpdateOffset as h, resolveSendPolicy as hn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as hr, CHANNEL_MESSAGE_ACTION_NAMES as ht, listDescendantRunsForRequester as i, formatUsageReportLines as in, setTtsProvider as ir, readLatestAssistantReply as it, waitForEmbeddedPiRunEnd as j, extractFileContentFromSource as jn, normalizeOptionalText as jt, abortEmbeddedPiRun as k, DEFAULT_INPUT_MAX_REDIRECTS as kn, normalizeOptionalAgentId as kt, applyToolPolicyPipeline as l, formatChannelAllowFrom as ln, getQueueSize as lr, resolveHeartbeatDeliveryTarget as lt, loadSymiPlugins as m, normalizeSendPolicy as mn, CommandLane as mr, resetDirectoryCache as mt, countActiveRunsForSession as n, parseActivationCommand as nn, resolveTtsProviderOrder as nr, sha256HexPrefix as nt, subagent_registry_exports as o, resolveUsageProviderId as on, OPENAI_TTS_MODELS as or, runMessageAction as ot, createPluginLoaderLogger as p, resolveHeartbeatReasonKind as pn, waitForActiveTasks as pr, formatTargetDisplay as pt, getTotalPendingReplies as q, normalizeMentionText as qn, deferGatewayRestartUntilIdle as qt, initSubagentRegistry as r, loadProviderUsageSummary as rn, setTtsEnabled as rr, createSymiTools as rt, runSubagentAnnounceFlow as s, buildChannelSummary as sn, OPENAI_TTS_VOICES as sr, ensureOutboundSessionEntry as st, countActiveDescendantRuns as t, normalizeGroupActivation as tn, resolveTtsPrefsPath as tr, runCliAgent as tt, buildDefaultToolPolicyPipelineSteps as u, resolveCommitHash as un, getTotalQueueSize as ur, resolveHeartbeatSenderContext as ut, requestBodyErrorToText as v, buildAuthHealthSummary as vn, resolveHeartbeatPrompt as vr, consumeRestartSentinel as vt, resolveAgentOutboundTarget as w, isSystemEventContextChanged as wn, registerAgentRunContext as wr, writeRestartSentinel as wt, agentCommand as x, applyVerboseOverride as xn, emitAgentEvent as xr, readRestartSentinel as xt, computeBackoff as y, formatRemainingShort as yn, stripHeartbeatToken as yr, formatDoctorNonInteractiveHint as yt, DEFAULT_GROUP_HISTORY_LIMIT as z, formatInboundEnvelope as zn, CHANNEL_TARGET_DESCRIPTION as zt };
@@ -16,7 +16,7 @@ import "./client-DMBZpU6X.js";
16
16
  import "./call-BcE47FtD.js";
17
17
  import "./message-channel-C9dERklz.js";
18
18
  import "./pairing-token-Byh6drgn.js";
19
- import { wt as trimLogTail } from "./subagent-registry-CZah-77E.js";
19
+ import { Ct as trimLogTail } from "./subagent-registry-BxM7J5m6.js";
20
20
  import "./sessions-CJXnZVjR.js";
21
21
  import "./tokens-Csntmwwn.js";
22
22
  import "./plugins-CwSlLxM8.js";
@@ -111,10 +111,10 @@ import "./npm-registry-spec-DkaZNHAW.js";
111
111
  import "./skill-scanner-BGWOBqLY.js";
112
112
  import "./installs-CgQpVncj.js";
113
113
  import "./channels-status-issues-c7qZbYG5.js";
114
- import "./register.subclis-Dv1WM9Kj.js";
115
- import "./command-registry-X_FmrHib.js";
114
+ import "./register.subclis-PQ2Ulz3J.js";
115
+ import "./command-registry-D7MjQKMD.js";
116
116
  import "./program-context-CqzR_m-7.js";
117
- import { r as installCompletion } from "./completion-cli-Dhj0jCR_.js";
117
+ import { r as installCompletion } from "./completion-cli-Bcv09Yuh.js";
118
118
  import "./daemon-runtime-CfRwa6qh.js";
119
119
  import { r as parseSemver } from "./runtime-guard-D7waq_Ho.js";
120
120
  import "./systemd-DlMdyFDY.js";
@@ -124,19 +124,19 @@ import "./systemd-hints-sQipWGd1.js";
124
124
  import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-wWnBIQtk.js";
125
125
  import "./diagnostics-CS1ov_hH.js";
126
126
  import { t as renderTable } from "./table-D01d2GuY.js";
127
- import "./health-CPYlV7Zg.js";
127
+ import "./health-vuMM-FAs.js";
128
128
  import "./control-ui-assets-BseSWee1.js";
129
129
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-ZdimP1aU.js";
130
130
  import "./dm-policy-shared-DJ-61hCT.js";
131
131
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DbmZz0Aq.js";
132
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-B5bKK21U.js";
132
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-YRJPtj9J.js";
133
133
  import "./logging-BGewRZy0.js";
134
134
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DEMKx4eC.js";
135
135
  import "./doctor-config-flow-CA3eiKhd.js";
136
136
  import "./systemd-linger-DA_LW52P.js";
137
137
  import "./health-format-CzgUHmmX.js";
138
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CYRG7OzR.js";
139
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-wGoyzRH8.js";
138
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-D48W5rxp.js";
139
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-bTUb2Em4.js";
140
140
  import { spawn, spawnSync } from "node:child_process";
141
141
  import os from "node:os";
142
142
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, h as pathExists } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { V as trimLogTail } from "./reply-BvVsPU7v.js";
4
+ import { V as trimLogTail } from "./reply-kuehpmXb.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -106,7 +106,7 @@ import "./stagger-BUClb97_.js";
106
106
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-C8_BLnaW.js";
107
107
  import "./channel-selection-DuWs0Aak.js";
108
108
  import { r as parseSemver } from "./runtime-guard-B37eizu-.js";
109
- import "./program-context-C-1s9IMf.js";
109
+ import "./program-context-C0vN6LYk.js";
110
110
  import "./catalog-RiADx7MA.js";
111
111
  import "./skills-status-CURJKnyY.js";
112
112
  import { n as inheritOptionFromParent } from "./command-options-BtDai3oC.js";
@@ -117,7 +117,7 @@ import "./npm-registry-spec-C2JDdSZS.js";
117
117
  import "./skill-scanner-CLs8u6vQ.js";
118
118
  import "./installs-C1Cebk97.js";
119
119
  import "./channels-status-issues-B_kBkl_u.js";
120
- import { r as installCompletion } from "./completion-cli-D1aObtjM.js";
120
+ import { r as installCompletion } from "./completion-cli-BLYlpN4p.js";
121
121
  import "./daemon-runtime-2mwX-jqj.js";
122
122
  import "./systemd-riq8uNJQ.js";
123
123
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
@@ -126,19 +126,19 @@ import "./systemd-hints-BR6gChwm.js";
126
126
  import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-DscwlsKW.js";
127
127
  import "./diagnostics-BAMlsVVX.js";
128
128
  import { t as renderTable } from "./table-BTgkRafz.js";
129
- import "./health-1KsVR3eN.js";
129
+ import "./health-CM3gPoYN.js";
130
130
  import "./control-ui-assets-Z947tKLt.js";
131
131
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-CtckACbb.js";
132
132
  import "./dm-policy-shared-Bh3TbexU.js";
133
133
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DtwCUTf-.js";
134
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-DPwXk0QQ.js";
134
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-C0iELmzo.js";
135
135
  import "./logging-BzzwiKjv.js";
136
136
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-rw7wJwHd.js";
137
137
  import "./doctor-config-flow-QnaBd8kL.js";
138
138
  import "./systemd-linger-aQ75ZlXY.js";
139
139
  import "./health-format-DSwnXZPU.js";
140
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-uEjL8GAK.js";
141
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-vhqAoURB.js";
140
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CEmtUvNV.js";
141
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DVs_xVw4.js";
142
142
  import os from "node:os";
143
143
  import path from "node:path";
144
144
  import fs from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { h as pathExists } from "./utils-B-0b9bGM.js";
2
- import { V as trimLogTail } from "./reply-BvVsPU7v.js";
2
+ import { V as trimLogTail } from "./reply-kuehpmXb.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Z947tKLt.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-CtckACbb.js";
@@ -1,6 +1,6 @@
1
1
  import { nt as pathExists } from "./entry.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
3
- import { wt as trimLogTail } from "./subagent-registry-CZah-77E.js";
3
+ import { Ct as trimLogTail } from "./subagent-registry-BxM7J5m6.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BseSWee1.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-ZdimP1aU.js";
6
6
  import os from "node:os";
@@ -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 { B as DEFAULT_GROUP_HISTORY_LIMIT, Bn as formatInboundEnvelope, H as recordPendingHistoryEntryIfEnabled, Jn as normalizeMentionText, R as buildPairingReply, Rn as createInboundDebouncer, U as shouldAckReactionForWhatsApp, Un as hasControlCommand, V as buildHistoryContextFromEntries, Vn as resolveEnvelopeFormatOptions, W as dispatchReplyWithBufferedBlockDispatcher, Wn as shouldComputeCommandAuthorized, X as getReplyFromConfig, Y as createDedupeCache, b as sleepWithAbort, nn as normalizeGroupActivation, qn as buildMentionRegexes, rn as parseActivationCommand, wn as enqueueSystemEvent, y as computeBackoff, z as resolveMentionGating, zn as resolveInboundDebounceMs } from "./subagent-registry-CZah-77E.js";
18
+ import { B as buildHistoryContextFromEntries, Bn as resolveEnvelopeFormatOptions, Cn as enqueueSystemEvent, H as shouldAckReactionForWhatsApp, Hn as hasControlCommand, J as createDedupeCache, Kn as buildMentionRegexes, L as buildPairingReply, Ln as createInboundDebouncer, R as resolveMentionGating, Rn as resolveInboundDebounceMs, U as dispatchReplyWithBufferedBlockDispatcher, Un as shouldComputeCommandAuthorized, V as recordPendingHistoryEntryIfEnabled, Y as getReplyFromConfig, b as sleepWithAbort, nn as parseActivationCommand, qn as normalizeMentionText, tn as normalizeGroupActivation, y as computeBackoff, z as DEFAULT_GROUP_HISTORY_LIMIT, zn as formatInboundEnvelope } from "./subagent-registry-BxM7J5m6.js";
19
19
  import { B as resolveGroupSessionKey, c as recordSessionMetaFromInbound, o as loadSessionStore, s as readSessionUpdatedAt, u as updateLastRoute } from "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -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-BvVsPU7v.js";
4
+ import "./reply-kuehpmXb.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -101,7 +101,7 @@ import "./pi-tools.policy-CIDBbw6x.js";
101
101
  import "./control-service-Bz7rxLWq.js";
102
102
  import "./stagger-BUClb97_.js";
103
103
  import "./channel-selection-DuWs0Aak.js";
104
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-BnZ6c0_u.js";
104
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Cv1L-jTo.js";
105
105
  import { n as sendMessageWhatsApp } from "./outbound-DB5Zus0-.js";
106
106
  import { i as waitForWaConnection, t as createWaSocket } from "./session-DIBTkyvE.js";
107
107
  import { t as loginWeb } from "./login-dIlDkG4X.js";
@@ -5,7 +5,7 @@ import "./agent-scope-BxoUQqgM.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
6
  import "./workspace-wAaHI8-5.js";
7
7
  import "./tokens-H1H1LiSQ.js";
8
- import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as sleepWithAbort, o as buildPairingReply, s as resolveMentionGating, t as computeBackoff, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./pi-embedded-BIIdwXKr.js";
8
+ import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as sleepWithAbort, o as buildPairingReply, s as resolveMentionGating, t as computeBackoff, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./pi-embedded-Ch-LcMWg.js";
9
9
  import "./plugins-DQYI3Fr-.js";
10
10
  import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
11
11
  import "./boolean-B8-BqKGQ.js";
@@ -8,13 +8,13 @@ import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createR
8
8
  import "./github-copilot-token-BbsJ0Qbo.js";
9
9
  import { r as formatCliCommand } from "./env-CQ_DQOwT.js";
10
10
  import "./tokens-Cn6drXx2.js";
11
- import { C as shouldComputeCommandAuthorized, S as hasControlCommand, T as normalizeMentionText, _ as enqueueSystemEvent, a as resolveMentionGating, b as formatInboundEnvelope, c as recordPendingHistoryEntryIfEnabled, f as createDedupeCache, g as formatDurationPrecise, h as parseActivationCommand, i as buildPairingReply, l as shouldAckReactionForWhatsApp, m as normalizeGroupActivation, n as sleepWithAbort, o as DEFAULT_GROUP_HISTORY_LIMIT, p as getReplyFromConfig, s as buildHistoryContextFromEntries, t as computeBackoff, u as dispatchReplyWithBufferedBlockDispatcher, v as createInboundDebouncer, w as buildMentionRegexes, x as resolveEnvelopeFormatOptions, y as resolveInboundDebounceMs } from "./pi-embedded-BOF7XlCO.js";
11
+ import { C as shouldComputeCommandAuthorized, S as hasControlCommand, T as normalizeMentionText, _ as enqueueSystemEvent, a as resolveMentionGating, b as formatInboundEnvelope, c as recordPendingHistoryEntryIfEnabled, f as createDedupeCache, g as formatDurationPrecise, h as parseActivationCommand, i as buildPairingReply, l as shouldAckReactionForWhatsApp, m as normalizeGroupActivation, n as sleepWithAbort, o as DEFAULT_GROUP_HISTORY_LIMIT, p as getReplyFromConfig, s as buildHistoryContextFromEntries, t as computeBackoff, u as dispatchReplyWithBufferedBlockDispatcher, v as createInboundDebouncer, w as buildMentionRegexes, x as resolveEnvelopeFormatOptions, y as resolveInboundDebounceMs } from "./pi-embedded-CpI5F8DC.js";
12
12
  import "./plugins-71oIavrF.js";
13
13
  import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
14
14
  import "./bindings-DYVakimr.js";
15
15
  import "./send-D-hWrHoH.js";
16
16
  import "./send-C1IYd3g7.js";
17
- import "./deliver-C-37cZUe.js";
17
+ import "./deliver-BH0l3UKW.js";
18
18
  import "./diagnostic-D0xmLpej.js";
19
19
  import "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import "./accounts-8zZqL37v.js";
@@ -22,10 +22,10 @@ import { G as formatLocationText, J as readChannelAllowFromStore, K as toLocatio
22
22
  import "./image-ops-ByaQt43P.js";
23
23
  import "./pi-model-discovery-j5tVLINv.js";
24
24
  import "./message-channel-BQINJQIT.js";
25
- import { Ct as resolveGroupSessionKey, H as loadSessionStore, K as updateLastRoute, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-B8kqLWns.js";
25
+ import { Ct as resolveGroupSessionKey, H as loadSessionStore, K as updateLastRoute, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-lgx_U5KS.js";
26
26
  import { n as loadConfig } from "./config-BmV60pPT.js";
27
27
  import "./manifest-registry-D-mTF1cj.js";
28
- import "./chrome-D2SKJnR7.js";
28
+ import "./chrome-CDJYxX5a.js";
29
29
  import "./skills-BNpGMnp-.js";
30
30
  import "./redact-1NGYV_8p.js";
31
31
  import "./errors-CPfngF0S.js";
@@ -35,7 +35,7 @@ import { h as resolveChannelGroupRequireMention, m as resolveChannelGroupPolicy
35
35
  import "./accounts-DImOt9jX.js";
36
36
  import { s as resolveStorePath } from "./paths-DkMamAQ-.js";
37
37
  import "./tool-images-ChC2CXaN.js";
38
- import "./image-DcpMiprB.js";
38
+ import "./image-CHzdaNJ4.js";
39
39
  import "./manager-jpn5vRTY.js";
40
40
  import "./gemini-auth-CSlZZ1Pw.js";
41
41
  import "./sqlite-BNh23mUR.js";
@@ -49,7 +49,7 @@ import "./render-B1VqYyvo.js";
49
49
  import "./commands-registry-C_aYUwpl.js";
50
50
  import "./skill-commands-DklY7Cj7.js";
51
51
  import { t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
52
- import { p as registerUnhandledRejectionHandler } from "./runner-BcQ0sF9T.js";
52
+ import { p as registerUnhandledRejectionHandler } from "./runner-DUBExAb5.js";
53
53
  import "./fetch-DtLn7YU3.js";
54
54
  import { n as recordChannelActivity } from "./channel-activity-D9q-fIPB.js";
55
55
  import { t as convertMarkdownTables } from "./tables-COnZ169v.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "2.5.0",
3
+ "version": "2.5.2",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -1,65 +0,0 @@
1
- import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-Ddm33hQm.js";
2
- import "./reply-DpnW-aMb.js";
3
- import "./paths-DR2yt_mP.js";
4
- import "./github-copilot-token-D9X2phUj.js";
5
- import "./plugins-BNByVCIH.js";
6
- import "./fetch-CUNoPTKm.js";
7
- import "./registry-D0xTnUWt.js";
8
- import "./retry-CwQ_iIj8.js";
9
- import "./send-CjOBB3Vo.js";
10
- import "./config-KlTNfkFF.js";
11
- import "./subsystem-B2uDN3TV.js";
12
- import "./command-format-GKSevep4.js";
13
- import "./model-selection-CsbEfrS0.js";
14
- import "./agent-scope-CYYpcO9W.js";
15
- import "./manifest-registry-CPnHl_K3.js";
16
- import "./redact-DPnDWsnT.js";
17
- import "./errors-Bv8oZiTO.js";
18
- import "./channel-activity-DoC1xtDu.js";
19
- import "./image-ops-BlQR__MN.js";
20
- import "./ssrf-DKZ8eBrk.js";
21
- import "./local-roots-BHLNSI8U.js";
22
- import "./ir-BJ6BHE5b.js";
23
- import "./chunk-Dw2XBYXv.js";
24
- import "./message-channel-COTAJzHd.js";
25
- import "./bindings-C7hRtgYW.js";
26
- import "./markdown-tables-BoYFajMu.js";
27
- import "./render-BiJZ5W4Z.js";
28
- import "./tables-DNwXwNFa.js";
29
- import "./send-C5h_YxNb.js";
30
- import "./tool-images-HJ2sfZDV.js";
31
- import "./target-errors-Paro1BjP.js";
32
- import "./send-B2CEnVLL.js";
33
- import "./send-CRsR8-vO.js";
34
- import "./runner-CGBT7tgF.js";
35
- import "./reply-prefix-uxfMZW4p.js";
36
- import "./tokens-bC3UVmVH.js";
37
- import "./skill-commands-ff_01_r3.js";
38
- import "./skills-_yTP47Cd.js";
39
- import "./chrome-B7RdxmJ0.js";
40
- import "./thinking-CXqf7WTe.js";
41
- import "./accounts-s-AdhXVR.js";
42
- import "./accounts-BtaOa4z_.js";
43
- import "./deliver-BZ99UKQq.js";
44
- import "./pi-embedded-helpers-CW630epe.js";
45
- import "./paths-A0xdf3yk.js";
46
- import "./diagnostic-05pm5Rxi.js";
47
- import "./store-BdrNabcU.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-HznAZS1r.js";
49
- import "./image-CLOPx7yW.js";
50
- import "./pi-model-discovery-LbcEa65a.js";
51
- import "./api-key-rotation-D_sMvI5W.js";
52
- import "./sqlite-CxAR5ttJ.js";
53
- import "./diagnostic-session-state-Wd5tNeQG.js";
54
- import "./manager-CBSBFuFz.js";
55
- import "./commands-registry-COIaslGl.js";
56
- import "./send-pYqe432l.js";
57
- import "./proxy-MquBDehr.js";
58
- import "./resolve-route-B3CCBumQ.js";
59
- import "./replies-LLcQL3w6.js";
60
- import "./outbound-attachment-CnslKL38.js";
61
- import { n as sendMessageWhatsApp } from "./outbound-B0e8KdaR.js";
62
- import { i as waitForWaConnection, t as createWaSocket } from "./session-BsOrxiMj.js";
63
- import { t as loginWeb } from "./login-DQMXuxOk.js";
64
-
65
- export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };