@symerian/symi 2.4.0 → 2.4.1

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 (169) hide show
  1. package/dist/{accounts-tNElYrCH.js → accounts-CI6zQTJj.js} +14 -14
  2. package/dist/{accounts-qtxJ-6em.js → accounts-CJR8j_Kq.js} +1 -1
  3. package/dist/{accounts-CWktKM8a.js → accounts-ChTFYj8Q.js} +1 -1
  4. package/dist/{active-listener-C9r8ZB9m.js → active-listener-D6sXIjAg.js} +1 -1
  5. package/dist/{agent-scope-BxoUQqgM.js → agent-scope-Bw1Ed8W9.js} +3 -3
  6. package/dist/{agents-CI3xxYc_.js → agents-BrpbYYTb.js} +4 -4
  7. package/dist/{agents.config-DCE3RGr9.js → agents.config-Bf8u_0ts.js} +1 -1
  8. package/dist/{agents.config-DTUAM1AG.js → agents.config-j4SWyB6K.js} +1 -1
  9. package/dist/{audio-preflight-O3ASWbaG.js → audio-preflight-BkIfnmpi.js} +29 -29
  10. package/dist/{auth-choice-IiIysHGO.js → auth-choice-BYB9fJiu.js} +1 -1
  11. package/dist/{auth-choice-DuQwRfJc.js → auth-choice-DlrjQI-v.js} +1 -1
  12. package/dist/{banner-xhDZu_ZJ.js → banner-DRJJmkv1.js} +1 -1
  13. package/dist/{bindings-B7Ke6LJi.js → bindings-BU2hsBd9.js} +2 -2
  14. package/dist/build-info.json +3 -3
  15. package/dist/bundled/boot-md/handler.js +53 -53
  16. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  17. package/dist/bundled/command-logger/handler.js +1 -1
  18. package/dist/bundled/session-memory/handler.js +53 -53
  19. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  20. package/dist/{channel-activity-CsM_hJ_s.js → channel-activity-C9-gaquj.js} +1 -1
  21. package/dist/{channel-options-D3gGVwBd.js → channel-options-BQz0F4El.js} +1 -1
  22. package/dist/{channel-options-Dvxd7eJY.js → channel-options-CxSIp3x-.js} +1 -1
  23. package/dist/{channel-web-a5tX1YI3.js → channel-web-BY4lhNxW.js} +1 -1
  24. package/dist/{channels-cli-C9wBYmDe.js → channels-cli--rkhLJvR.js} +4 -4
  25. package/dist/{channels-cli-BLUkl5Li.js → channels-cli-B5Nj_nHr.js} +4 -4
  26. package/dist/{chrome-BFekevcE.js → chrome-CxSAp8x3.js} +20 -20
  27. package/dist/{chunk-BW5f05BR.js → chunk-ClbN9Pqy.js} +1 -1
  28. package/dist/{cli-Cw45F0yJ.js → cli-CATf6JAq.js} +1 -1
  29. package/dist/{cli-CaEE46xi.js → cli-Ds6poYQ6.js} +1 -1
  30. package/dist/{command-format-BaxDnULz.js → command-format-UKHV-j0K.js} +1 -1
  31. package/dist/{command-registry-ea9SD1eA.js → command-registry-DXt0PsFy.js} +9 -9
  32. package/dist/{commands-registry-D7CTCQPm.js → commands-registry-VSmULp-g.js} +4 -4
  33. package/dist/{completion-cli-CMJmUQbI.js → completion-cli-BsSDzZNA.js} +1 -1
  34. package/dist/{completion-cli-DVkiEAEA.js → completion-cli-CPMOXTf2.js} +2 -2
  35. package/dist/{config-cli-B2d28_hb.js → config-cli-B_KCvdli.js} +1 -1
  36. package/dist/{config-cli-VIg0PSyq.js → config-cli-C_GarUko.js} +1 -1
  37. package/dist/{config-DRbjHIwD.js → config-eEaJddXj.js} +12 -12
  38. package/dist/{configure-C_TVBt76.js → configure-CM-z8YCS.js} +3 -3
  39. package/dist/{configure-D-3FiJbK.js → configure-vfmJApU8.js} +3 -3
  40. package/dist/{deliver-CvCK5Mm9.js → deliver-BA7ZN3iM.js} +20 -20
  41. package/dist/{diagnostic-CI0kRQkt.js → diagnostic-C3nsWaw3.js} +1 -1
  42. package/dist/{doctor-completion-CJHJYIwQ.js → doctor-completion-8qbLmeX0.js} +1 -1
  43. package/dist/{doctor-completion-DeRX6gkI.js → doctor-completion-Dnxn_-ov.js} +1 -1
  44. package/dist/entry.js +1 -1
  45. package/dist/extensionAPI.js +1 -1
  46. package/dist/{frontmatter-C_bv_0P8.js → frontmatter-DPlG6yha.js} +2 -2
  47. package/dist/{gateway-cli-DiDJ6Z2d.js → gateway-cli-DKDpOBp-.js} +9 -9
  48. package/dist/{gateway-cli-BDDHBfYP.js → gateway-cli-XIsXoJZ3.js} +9 -9
  49. package/dist/{gemini-auth-CdSPHuLl.js → gemini-auth-CF48hUR9.js} +1 -1
  50. package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-DJqsJ2-r.js} +7 -7
  51. package/dist/{glass-ui-ws-Bj1IuJXt.js → glass-ui-ws-Be_AOhp7.js} +7 -7
  52. package/dist/{glass-ui-ws-rGIAkViC.js → glass-ui-ws-Z_wtGa_A.js} +7 -7
  53. package/dist/{health-CypF_2ZD.js → health-BBGgp_dC.js} +1 -1
  54. package/dist/{health-Bst5HnLF.js → health-BmaWws9G.js} +1 -1
  55. package/dist/{hooks-cli-CfsqqxPX.js → hooks-cli-C5eV9sxP.js} +2 -2
  56. package/dist/{hooks-cli-CDMcqTy4.js → hooks-cli-W_aoP9nb.js} +2 -2
  57. package/dist/{image-B0wGflxA.js → image-BGmVDkkw.js} +4 -4
  58. package/dist/{image-ops-CvJzsyvE.js → image-ops-S8-8dAhx.js} +1 -1
  59. package/dist/index.js +6 -6
  60. package/dist/{ir-DccrnjsE.js → ir-CbFUkv_T.js} +4 -4
  61. package/dist/llm-slug-generator.js +53 -53
  62. package/dist/{local-roots-DMwIh5cS.js → local-roots-C7OCYACU.js} +5 -5
  63. package/dist/{login-CwCoxapk.js → login-B8uiUAnV.js} +7 -7
  64. package/dist/{login-qr-Batf3PT5.js → login-qr-CIZk8uKX.js} +12 -12
  65. package/dist/{manager-D_LwXbc6.js → manager-BoLr3xR_.js} +13 -13
  66. package/dist/{manifest-registry-D0IQ3WuX.js → manifest-registry-CneMHk0N.js} +19 -19
  67. package/dist/{markdown-tables-iMQQZu4Q.js → markdown-tables-DSHvnTLx.js} +1 -1
  68. package/dist/{message-channel-Dz5lr5b0.js → message-channel-DbsRltF2.js} +1 -1
  69. package/dist/{model-auth-DK43VicI.js → model-auth-CwOuTuXl.js} +9 -9
  70. package/dist/{models-ZEOGlFx7.js → models-COaQWNz5.js} +2 -2
  71. package/dist/{models-cli-BM1QyeXr.js → models-cli-DH17yK8M.js} +3 -3
  72. package/dist/{models-cli-BwOQhZ_c.js → models-cli-DeG1qheS.js} +2 -2
  73. package/dist/{onboard-CU-pntZD.js → onboard-CXOUIg28.js} +2 -2
  74. package/dist/{onboard-DQ34giB5.js → onboard-DBeHwdks.js} +2 -2
  75. package/dist/{onboard-channels-g5cvwJpx.js → onboard-channels-BCUkNB26.js} +1 -1
  76. package/dist/{onboard-channels-BOBxxhHX.js → onboard-channels-D93AAHMd.js} +1 -1
  77. package/dist/{onboarding-CXWUjdM5.js → onboarding-C58wjONa.js} +3 -3
  78. package/dist/{onboarding-DWs6tHZ9.js → onboarding-Dfjn2-9q.js} +3 -3
  79. package/dist/{onboarding.finalize-CAYf88mf.js → onboarding.finalize-7r1HYXWd.js} +6 -6
  80. package/dist/{onboarding.finalize-vupGASMK.js → onboarding.finalize-DGD56sXW.js} +5 -5
  81. package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-Co2diKdP.js} +2 -2
  82. package/dist/{outbound-D4fN_ZlE.js → outbound-opDNxv-l.js} +7 -7
  83. package/dist/{paths-DLyHUt31.js → paths-Cb87-LzP.js} +1 -1
  84. package/dist/{paths-Cce4PUkG.js → paths-CySxpNhH.js} +5 -5
  85. package/dist/{pi-auth-json-0SYBFZTt.js → pi-auth-json-DPWPoruO.js} +8 -8
  86. package/dist/{pi-embedded-CJsSOG2j.js → pi-embedded-B6uRrG1f.js} +254 -162
  87. package/dist/{pi-embedded-DwbQz0MC.js → pi-embedded-CAJ6egA1.js} +94 -2
  88. package/dist/{pi-embedded-helpers-DLFjnVBb.js → pi-embedded-helpers-DEEaCvEp.js} +52 -52
  89. package/dist/{plugin-registry-CZeHSx_c.js → plugin-registry-C0iHnZ7j.js} +1 -1
  90. package/dist/{plugin-registry-BDpdOTei.js → plugin-registry-D_BAH1V5.js} +1 -1
  91. package/dist/plugin-sdk/agents/pi-embedded-runner/extra-params.d.ts +6 -0
  92. package/dist/plugin-sdk/agents/stream-monitor.d.ts +62 -0
  93. package/dist/plugin-sdk/{channel-web-uUypcT9Q.js → channel-web-ilY3YUmF.js} +1 -1
  94. package/dist/plugin-sdk/index.js +2 -2
  95. package/dist/plugin-sdk/{reply-DTKTuCrn.js → reply-CSgeVqcV.js} +94 -2
  96. package/dist/plugin-sdk/{web-Dh6Youzv.js → web-BVg5EjiY.js} +2 -2
  97. package/dist/{plugins-DQYI3Fr-.js → plugins-C4C9637U.js} +9 -9
  98. package/dist/{plugins-cli-CCQ3skeQ.js → plugins-cli-BhOXY_Ay.js} +2 -2
  99. package/dist/{plugins-cli-D_RzeRoE.js → plugins-cli-LqQNHF1I.js} +2 -2
  100. package/dist/{program-Cl9i8ubQ.js → program-CutjuJj0.js} +7 -7
  101. package/dist/{program-context-BbmYGW-V.js → program-context-qVc_lsLV.js} +17 -17
  102. package/dist/{prompt-select-styled-BN0T6GxF.js → prompt-select-styled-BCHe7Fks.js} +4 -4
  103. package/dist/{prompt-select-styled-BfuyvChh.js → prompt-select-styled-C0yn8YjW.js} +4 -4
  104. package/dist/{provider-auth-helpers-CkmLFHXL.js → provider-auth-helpers-BzczCfh8.js} +1 -1
  105. package/dist/{provider-auth-helpers-CuT5EHza.js → provider-auth-helpers-Ds_HwlgY.js} +1 -1
  106. package/dist/{push-apns-DeJt9kAO.js → push-apns-CT8-VcK5.js} +1 -1
  107. package/dist/{push-apns-CFkFVwEz.js → push-apns-DvcqkHld.js} +1 -1
  108. package/dist/{pw-ai-BnAKvSuw.js → pw-ai-DhwRiS06.js} +11 -11
  109. package/dist/{qmd-manager-QHUP-_em.js → qmd-manager-DdZh9PHs.js} +7 -7
  110. package/dist/{register.agent-BQm4YmZp.js → register.agent-DMvHFw16.js} +6 -6
  111. package/dist/{register.agent-BygseJ7t.js → register.agent-yoXoJ_5O.js} +5 -5
  112. package/dist/{register.configure-Cj95vB2U.js → register.configure-B8UDTEcS.js} +6 -6
  113. package/dist/{register.configure-C2fhjZze.js → register.configure-BqrNBkwZ.js} +6 -6
  114. package/dist/{register.maintenance-K1x3E7OS.js → register.maintenance-D1MuIUlv.js} +7 -7
  115. package/dist/{register.maintenance-CClfXq5e.js → register.maintenance-DMLPFSKI.js} +8 -8
  116. package/dist/{register.message-BSr-kUvJ.js → register.message-BnLBwUw9.js} +2 -2
  117. package/dist/{register.message-CSRzBl-c.js → register.message-CgtrjEFw.js} +2 -2
  118. package/dist/{register.onboard-Bd6wPydW.js → register.onboard-CXHhSH4B.js} +4 -4
  119. package/dist/{register.onboard-TsU21RR7.js → register.onboard-D1X2dUGZ.js} +4 -4
  120. package/dist/{register.setup-C9gu0W5l.js → register.setup-DFDb5BDi.js} +4 -4
  121. package/dist/{register.setup-DK-zsne2.js → register.setup-Q58lN0TV.js} +4 -4
  122. package/dist/{register.status-health-sessions-DN5Ui3V0.js → register.status-health-sessions-CP7JWQHw.js} +3 -3
  123. package/dist/{register.status-health-sessions-rZsuoqtr.js → register.status-health-sessions-DhTfQ530.js} +3 -3
  124. package/dist/{register.subclis-DnzHFtLz.js → register.subclis-CrTXa8cj.js} +9 -9
  125. package/dist/{registry-CK4e9hn8.js → registry-DP24za6g.js} +17 -17
  126. package/dist/{replies-BIX_isV7.js → replies-DpPvWiGF.js} +3 -3
  127. package/dist/{reply-Ca3slrA3.js → reply-DkwaBRX-.js} +94 -2
  128. package/dist/{reply-prefix-XlyuyChD.js → reply-prefix-CtL0omgM.js} +1 -1
  129. package/dist/{resolve-route-CZ-1eqw0.js → resolve-route-BVikmvWO.js} +4 -4
  130. package/dist/{retry-Cly39XZB.js → retry-dGG-MbxL.js} +1 -1
  131. package/dist/{run-main-DlHh5iOO.js → run-main-BLKPL_vM.js} +14 -14
  132. package/dist/{runner-odEv83vv.js → runner-B_KP4voe.js} +9 -9
  133. package/dist/{send-DeFniOjh.js → send-CHEOWVc8.js} +6 -6
  134. package/dist/{send-WyRqb4WD.js → send-DbcLJb0P.js} +7 -7
  135. package/dist/{send-B1u-LrcS.js → send-DeEosX8F.js} +18 -18
  136. package/dist/{send-CiTGOvEc.js → send-DwKJK3sM.js} +10 -10
  137. package/dist/{send-DW96zgDL.js → send-zSarozV2.js} +6 -6
  138. package/dist/{server-methods-BYOkyf-q.js → server-methods-CbeCo-6O.js} +7 -7
  139. package/dist/{server-methods-b_Qod4tt.js → server-methods-EQ0JkHOg.js} +7 -7
  140. package/dist/{server-node-events-60nWpTh1.js → server-node-events-C1FDqJb9.js} +2 -2
  141. package/dist/{server-node-events-oU4Amei7.js → server-node-events-CBHpc_25.js} +2 -2
  142. package/dist/{session-SM36BTsl.js → session-DV1MNlbV.js} +8 -8
  143. package/dist/{skill-commands-BJMb_psG.js → skill-commands-D610IKhm.js} +9 -9
  144. package/dist/{skills-BFekKL7i.js → skills-o5WVqM4V.js} +21 -21
  145. package/dist/{sqlite-DRbx2dhW.js → sqlite-6H6Zw1cs.js} +4 -4
  146. package/dist/{status-BXW5l4sd.js → status-B1r3Wp0-.js} +2 -2
  147. package/dist/{status-D3-lP2_9.js → status-Cksz7z4T.js} +1 -1
  148. package/dist/{status-BxbbINLV.js → status-CnogoaI_.js} +2 -2
  149. package/dist/{status-kdz9P3tw.js → status-jVJSC_Ga.js} +1 -1
  150. package/dist/{store-C0wvOkae.js → store-vVE6N2mH.js} +2 -2
  151. package/dist/{subagent-registry-CbTbJKLs.js → subagent-registry-Jwg44JMf.js} +94 -2
  152. package/dist/{subsystem-Bs9YvKLa.js → subsystem-DgpxyDQ_.js} +1 -1
  153. package/dist/{tables-DuZspiBu.js → tables-BIWsCKXJ.js} +1 -1
  154. package/dist/{target-errors-Be1SwYlW.js → target-errors-DyItGyW9.js} +2 -2
  155. package/dist/{thinking-CdlENGRW.js → thinking-Ni0HF-w6.js} +5 -5
  156. package/dist/{tokens-H1H1LiSQ.js → tokens-c_SLAkVb.js} +1 -1
  157. package/dist/{tool-images-DXB7tqWi.js → tool-images-DBCfXdli.js} +2 -2
  158. package/dist/{tool-loop-detection-Cs8_HCsx.js → tool-loop-detection-Bbc9OPFR.js} +3 -3
  159. package/dist/{update-cli-Cy0gdWRf.js → update-cli-BkU6ori8.js} +8 -8
  160. package/dist/{update-cli-B5TI650v.js → update-cli-D18nWvzY.js} +7 -7
  161. package/dist/{update-runner-Bacq0oLK.js → update-runner-BQg__DB5.js} +1 -1
  162. package/dist/{update-runner-B0NdgPvD.js → update-runner-le1Hcqx4.js} +1 -1
  163. package/dist/{web-DmED3zDP.js → web-BSs2eYJa.js} +2 -2
  164. package/dist/{web-QVwKg99Q.js → web-BsjZ2RTT.js} +57 -57
  165. package/dist/{web-D-oCzJTU.js → web-DajtZMaX.js} +1 -1
  166. package/dist/{web-DWNtg4iV.js → web-KYh3LgI0.js} +1 -1
  167. package/dist/{whatsapp-actions-D1RsnX7P.js → whatsapp-actions-oRQjcdQe.js} +23 -23
  168. package/dist/{workspace-wAaHI8-5.js → workspace-CbvamIU6.js} +6 -6
  169. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
- import { E as ensureDir, G as danger, I as resolveUserPath, Q as success, ot as toPinoLikeLogger, rt as getChildLogger } from "./registry-CK4e9hn8.js";
2
- import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-tNElYrCH.js";
3
- import { t as formatCliCommand } from "./command-format-BaxDnULz.js";
4
- import { A as VERSION } from "./config-DRbjHIwD.js";
5
- import fs from "node:fs";
1
+ import { E as ensureDir, G as danger, I as resolveUserPath, Q as success, ot as toPinoLikeLogger, rt as getChildLogger } from "./registry-DP24za6g.js";
2
+ import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-CI6zQTJj.js";
3
+ import { t as formatCliCommand } from "./command-format-UKHV-j0K.js";
4
+ import { A as VERSION } from "./config-eEaJddXj.js";
5
+ import fsSync from "node:fs";
6
6
  import { randomUUID } from "node:crypto";
7
7
  import { DisconnectReason, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, makeWASocket, useMultiFileAuthState } from "@whiskeysockets/baileys";
8
8
  import qrcode from "qrcode-terminal";
@@ -21,16 +21,16 @@ async function safeSaveCreds(authDir, saveCreds, logger) {
21
21
  const raw = readCredsJsonRaw(credsPath);
22
22
  if (raw) try {
23
23
  JSON.parse(raw);
24
- fs.copyFileSync(credsPath, backupPath);
24
+ fsSync.copyFileSync(credsPath, backupPath);
25
25
  try {
26
- fs.chmodSync(backupPath, 384);
26
+ fsSync.chmodSync(backupPath, 384);
27
27
  } catch {}
28
28
  } catch {}
29
29
  } catch {}
30
30
  try {
31
31
  await Promise.resolve(saveCreds());
32
32
  try {
33
- fs.chmodSync(resolveWebCredsPath(authDir), 384);
33
+ fsSync.chmodSync(resolveWebCredsPath(authDir), 384);
34
34
  } catch {}
35
35
  } catch (err) {
36
36
  logger.warn({ error: String(err) }, "failed saving WhatsApp creds");
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
- import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-CK4e9hn8.js";
4
- import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-BxoUQqgM.js";
5
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
- import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-BFekKL7i.js";
7
- import { i as listChatCommands } from "./commands-registry-D7CTCQPm.js";
2
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DP24za6g.js";
4
+ import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-Bw1Ed8W9.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
6
+ import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-o5WVqM4V.js";
7
+ import { i as listChatCommands } from "./commands-registry-VSmULp-g.js";
8
8
  import fs from "node:fs/promises";
9
9
  import os from "node:os";
10
10
  import path from "node:path";
11
- import fs$1 from "node:fs";
11
+ import fsSync from "node:fs";
12
12
  import { randomUUID } from "node:crypto";
13
13
  import chokidar from "chokidar";
14
14
 
@@ -283,8 +283,8 @@ function listSkillCommandsForAgents(params) {
283
283
  const visitedDirs = /* @__PURE__ */ new Set();
284
284
  for (const agentId of agentIds) {
285
285
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, agentId);
286
- if (!fs$1.existsSync(workspaceDir)) continue;
287
- const canonicalDir = fs$1.realpathSync(workspaceDir);
286
+ if (!fsSync.existsSync(workspaceDir)) continue;
287
+ const canonicalDir = fsSync.realpathSync(workspaceDir);
288
288
  if (visitedDirs.has(canonicalDir)) continue;
289
289
  visitedDirs.add(canonicalDir);
290
290
  const commands = buildWorkspaceSkillCommandSpecs(workspaceDir, {
@@ -1,13 +1,13 @@
1
- import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-CK4e9hn8.js";
2
- import { f as normalizeSkillFilter } from "./agent-scope-BxoUQqgM.js";
3
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
4
- import { h as resolveSymiPackageRootSync } from "./workspace-wAaHI8-5.js";
5
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-D0IQ3WuX.js";
6
- import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-C_bv_0P8.js";
1
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DP24za6g.js";
2
+ import { f as normalizeSkillFilter } from "./agent-scope-Bw1Ed8W9.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
4
+ import { h as resolveSymiPackageRootSync } from "./workspace-CbvamIU6.js";
5
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-CneMHk0N.js";
6
+ import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-DPlG6yha.js";
7
7
  import fs from "node:fs/promises";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
- import fs$1 from "node:fs";
10
+ import fsSync from "node:fs";
11
11
  import { fileURLToPath } from "node:url";
12
12
  import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
13
13
 
@@ -424,13 +424,13 @@ function shortPath(value) {
424
424
  //#region src/agents/skills/bundled-dir.ts
425
425
  function looksLikeSkillsDir(dir) {
426
426
  try {
427
- const entries = fs$1.readdirSync(dir, { withFileTypes: true });
427
+ const entries = fsSync.readdirSync(dir, { withFileTypes: true });
428
428
  for (const entry of entries) {
429
429
  if (entry.name.startsWith(".")) continue;
430
430
  const fullPath = path.join(dir, entry.name);
431
431
  if (entry.isFile() && entry.name.endsWith(".md")) return true;
432
432
  if (entry.isDirectory()) {
433
- if (fs$1.existsSync(path.join(fullPath, "SKILL.md"))) return true;
433
+ if (fsSync.existsSync(path.join(fullPath, "SKILL.md"))) return true;
434
434
  }
435
435
  }
436
436
  } catch {
@@ -445,7 +445,7 @@ function resolveBundledSkillsDir(opts = {}) {
445
445
  const execPath = opts.execPath ?? process.execPath;
446
446
  const execDir = path.dirname(execPath);
447
447
  const sibling = path.join(execDir, "skills");
448
- if (fs$1.existsSync(sibling)) return sibling;
448
+ if (fsSync.existsSync(sibling)) return sibling;
449
449
  } catch {}
450
450
  try {
451
451
  const moduleUrl = opts.moduleUrl ?? import.meta.url;
@@ -501,7 +501,7 @@ function resolvePluginSkillDirs(params) {
501
501
  const trimmed = raw.trim();
502
502
  if (!trimmed) continue;
503
503
  const candidate = path.resolve(record.rootDir, trimmed);
504
- if (!fs$1.existsSync(candidate)) {
504
+ if (!fsSync.existsSync(candidate)) {
505
505
  log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
506
506
  continue;
507
507
  }
@@ -528,7 +528,7 @@ async function serializeByKey(key, task) {
528
528
 
529
529
  //#endregion
530
530
  //#region src/agents/skills/workspace.ts
531
- const fsp = fs$1.promises;
531
+ const fsp = fsSync.promises;
532
532
  const skillsLogger = createSubsystemLogger("skills");
533
533
  const skillCommandDebugOnce = /* @__PURE__ */ new Set();
534
534
  /**
@@ -605,7 +605,7 @@ function resolveSkillsLimits(config) {
605
605
  }
606
606
  function listChildDirectories(dir) {
607
607
  try {
608
- const entries = fs$1.readdirSync(dir, { withFileTypes: true });
608
+ const entries = fsSync.readdirSync(dir, { withFileTypes: true });
609
609
  const dirs = [];
610
610
  for (const entry of entries) {
611
611
  if (entry.name.startsWith(".")) continue;
@@ -616,7 +616,7 @@ function listChildDirectories(dir) {
616
616
  continue;
617
617
  }
618
618
  if (entry.isSymbolicLink()) try {
619
- if (fs$1.statSync(fullPath).isDirectory()) dirs.push(entry.name);
619
+ if (fsSync.statSync(fullPath).isDirectory()) dirs.push(entry.name);
620
620
  } catch {}
621
621
  }
622
622
  return dirs;
@@ -627,7 +627,7 @@ function listChildDirectories(dir) {
627
627
  function resolveNestedSkillsRoot(dir, opts) {
628
628
  const nested = path.join(dir, "skills");
629
629
  try {
630
- if (!fs$1.existsSync(nested) || !fs$1.statSync(nested).isDirectory()) return { baseDir: dir };
630
+ if (!fsSync.existsSync(nested) || !fsSync.statSync(nested).isDirectory()) return { baseDir: dir };
631
631
  } catch {
632
632
  return { baseDir: dir };
633
633
  }
@@ -636,7 +636,7 @@ function resolveNestedSkillsRoot(dir, opts) {
636
636
  const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
637
637
  for (const name of toScan) {
638
638
  const skillMd = path.join(nested, name, "SKILL.md");
639
- if (fs$1.existsSync(skillMd)) return {
639
+ if (fsSync.existsSync(skillMd)) return {
640
640
  baseDir: nested,
641
641
  note: `Detected nested skills root at ${nested}`
642
642
  };
@@ -656,9 +656,9 @@ function loadSkillEntries(workspaceDir, opts) {
656
656
  const loadSkills = (params) => {
657
657
  const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
658
658
  const rootSkillMd = path.join(baseDir, "SKILL.md");
659
- if (fs$1.existsSync(rootSkillMd)) {
659
+ if (fsSync.existsSync(rootSkillMd)) {
660
660
  try {
661
- const size = fs$1.statSync(rootSkillMd).size;
661
+ const size = fsSync.statSync(rootSkillMd).size;
662
662
  if (size > limits.maxSkillFileBytes) {
663
663
  skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
664
664
  dir: baseDir,
@@ -697,9 +697,9 @@ function loadSkillEntries(workspaceDir, opts) {
697
697
  for (const name of limitedChildren) {
698
698
  const skillDir = path.join(baseDir, name);
699
699
  const skillMd = path.join(skillDir, "SKILL.md");
700
- if (!fs$1.existsSync(skillMd)) continue;
700
+ if (!fsSync.existsSync(skillMd)) continue;
701
701
  try {
702
- const size = fs$1.statSync(skillMd).size;
702
+ const size = fsSync.statSync(skillMd).size;
703
703
  if (size > limits.maxSkillFileBytes) {
704
704
  skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
705
705
  skill: name,
@@ -767,7 +767,7 @@ function loadSkillEntries(workspaceDir, opts) {
767
767
  return Array.from(merged.values()).map((skill) => {
768
768
  let frontmatter = {};
769
769
  try {
770
- frontmatter = parseFrontmatter(fs$1.readFileSync(skill.filePath, "utf-8"));
770
+ frontmatter = parseFrontmatter(fsSync.readFileSync(skill.filePath, "utf-8"));
771
771
  } catch {}
772
772
  return {
773
773
  skill,
@@ -1,10 +1,10 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
2
2
  import { t as redactSensitiveText } from "./redact-jSxx6Ep2.js";
3
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-DLyHUt31.js";
3
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-Cb87-LzP.js";
4
4
  import { createRequire } from "node:module";
5
5
  import fs from "node:fs/promises";
6
6
  import path from "node:path";
7
- import fs$1 from "node:fs";
7
+ import fsSync from "node:fs";
8
8
  import crypto from "node:crypto";
9
9
 
10
10
  //#region src/memory/fs-utils.ts
@@ -71,7 +71,7 @@ async function runTasksWithConcurrency(params) {
71
71
  //#region src/memory/internal.ts
72
72
  function ensureDir(dir) {
73
73
  try {
74
- fs$1.mkdirSync(dir, { recursive: true });
74
+ fsSync.mkdirSync(dir, { recursive: true });
75
75
  } catch {}
76
76
  return dir;
77
77
  }
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { Ct as formatUsageReportLines, E as resolveSessionModelRef, G as summarizeRestartSentinel, St as loadProviderUsageSummary, Tr as peekSystemEvents, W as readRestartSentinel, Yt as sha256HexPrefix, a as buildChannelSummary, b as listAgentsForGateway, mr as lookupContextTokens, o as buildChannelAccountSnapshot, s as formatChannelAllowFrom, y as classifySessionKey } from "./reply-Ca3slrA3.js";
3
+ import { Ct as formatUsageReportLines, E as resolveSessionModelRef, G as summarizeRestartSentinel, St as loadProviderUsageSummary, Tr as peekSystemEvents, W as readRestartSentinel, Yt as sha256HexPrefix, a as buildChannelSummary, b as listAgentsForGateway, mr as lookupContextTokens, o as buildChannelAccountSnapshot, s as formatChannelAllowFrom, y as classifySessionKey } from "./reply-DkwaBRX-.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
@@ -28,7 +28,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-CR9445g5.j
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
29
29
  import { t as renderTable } from "./table-BTgkRafz.js";
30
30
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CrITRV6w.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CypF_2ZD.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BBGgp_dC.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
33
33
  import { t as resolveNodeService } from "./node-service-Cxz4e-Qd.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
3
3
  import { i as loadConfig } from "./config-DHBLS1Hl.js";
4
- import { b as loadSymiPlugins, y as createPluginLoaderLogger } from "./subagent-registry-CbTbJKLs.js";
4
+ import { b as loadSymiPlugins, y as createPluginLoaderLogger } from "./subagent-registry-Jwg44JMf.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -9,7 +9,7 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DHBLS1Hl.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
12
- import { Ct as summarizeRestartSentinel, Dn as peekSystemEvents, St as readRestartSentinel, an as formatUsageReportLines, cn as buildChannelSummary, in as loadProviderUsageSummary, ln as buildChannelAccountSnapshot, rt as sha256HexPrefix, un as formatChannelAllowFrom } from "./subagent-registry-CbTbJKLs.js";
12
+ import { Ct as summarizeRestartSentinel, Dn as peekSystemEvents, St as readRestartSentinel, an as formatUsageReportLines, cn as buildChannelSummary, in as loadProviderUsageSummary, ln as buildChannelAccountSnapshot, rt as sha256HexPrefix, un as formatChannelAllowFrom } from "./subagent-registry-Jwg44JMf.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.j
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
31
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Byo5jCLN.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Bst5HnLF.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BmaWws9G.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -1,4 +1,4 @@
1
- import { _t as createPluginLoaderLogger, vt as loadSymiPlugins } from "./reply-Ca3slrA3.js";
1
+ import { _t as createPluginLoaderLogger, vt as loadSymiPlugins } from "./reply-DkwaBRX-.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
4
  import { i as loadConfig } from "./config-CHwyw6l5.js";
@@ -1,5 +1,5 @@
1
- import { P as resolveConfigDir } from "./registry-CK4e9hn8.js";
2
- import { d as detectMime, f as extensionForMime } from "./image-ops-CvJzsyvE.js";
1
+ import { P as resolveConfigDir } from "./registry-DP24za6g.js";
2
+ import { d as detectMime, f as extensionForMime } from "./image-ops-S8-8dAhx.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import crypto from "node:crypto";
@@ -44208,7 +44208,7 @@ function isVoiceChannelType(type) {
44208
44208
  function createDefaultDeps() {
44209
44209
  return {
44210
44210
  sendMessageWhatsApp: async (...args) => {
44211
- const { sendMessageWhatsApp } = await import("./web-D-oCzJTU.js");
44211
+ const { sendMessageWhatsApp } = await import("./web-DajtZMaX.js");
44212
44212
  return await sendMessageWhatsApp(...args);
44213
44213
  },
44214
44214
  sendMessageTelegram: async (...args) => {
@@ -59524,7 +59524,7 @@ function loadWebLoginQr() {
59524
59524
  return webLoginQrPromise;
59525
59525
  }
59526
59526
  function loadWebChannel() {
59527
- webChannelPromise ??= import("./web-D-oCzJTU.js");
59527
+ webChannelPromise ??= import("./web-DajtZMaX.js");
59528
59528
  return webChannelPromise;
59529
59529
  }
59530
59530
  function loadWhatsAppActions() {
@@ -67519,6 +67519,89 @@ Use the message tool with buttons:
67519
67519
  [{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
67520
67520
  </plan_mode>`;
67521
67521
 
67522
+ //#endregion
67523
+ //#region src/agents/stream-monitor.ts
67524
+ /**
67525
+ * Create a stream monitor configured for the given model profile.
67526
+ *
67527
+ * - Claude (hasStructuredThinking: true): repetition detection only
67528
+ * - Gemma/vLLM (hasStructuredThinking: false): tool JSON + repetition detection
67529
+ */
67530
+ function createStreamMonitor(profile, overrides) {
67531
+ const detectToolJson = overrides?.detectToolJson ?? !profile.filters.hasStructuredThinking;
67532
+ const detectRepetition = overrides?.detectRepetition ?? true;
67533
+ const minBlockSize = overrides?.repetitionMinBlockSize ?? 150;
67534
+ let accumulated = "";
67535
+ let stopSignaled = false;
67536
+ let stopReason;
67537
+ return {
67538
+ onChunk(delta) {
67539
+ if (stopSignaled) return;
67540
+ accumulated += delta;
67541
+ if (detectToolJson && hasCompleteToolJson(accumulated)) {
67542
+ stopSignaled = true;
67543
+ stopReason = "complete-tool-json";
67544
+ return;
67545
+ }
67546
+ if (detectRepetition && hasRepetition(accumulated, minBlockSize)) {
67547
+ stopSignaled = true;
67548
+ stopReason = "repetition-detected";
67549
+ return;
67550
+ }
67551
+ },
67552
+ shouldStop: () => stopSignaled,
67553
+ getAccumulated: () => accumulated,
67554
+ getStopReason: () => stopReason,
67555
+ reset() {
67556
+ accumulated = "";
67557
+ stopSignaled = false;
67558
+ stopReason = void 0;
67559
+ }
67560
+ };
67561
+ }
67562
+ /**
67563
+ * Detect if the accumulated text contains a syntactically complete JSON
67564
+ * object with tool_name and tool_args. Used for models that output tool
67565
+ * calls as plain text JSON (not native structured tool calls).
67566
+ */
67567
+ function hasCompleteToolJson(text) {
67568
+ const hasToolKey = text.includes("tool_name") || text.includes("\"tool\"");
67569
+ const hasArgsKey = text.includes("tool_args") || text.includes("\"args\"");
67570
+ if (!hasToolKey || !hasArgsKey) return false;
67571
+ const lastBrace = text.lastIndexOf("}");
67572
+ if (lastBrace < 0) return false;
67573
+ let depth = 0;
67574
+ let start = -1;
67575
+ for (let i = lastBrace; i >= 0; i--) {
67576
+ if (text[i] === "}") depth++;
67577
+ if (text[i] === "{") depth--;
67578
+ if (depth === 0) {
67579
+ start = i;
67580
+ break;
67581
+ }
67582
+ }
67583
+ if (start < 0) return false;
67584
+ const candidate = text.slice(start, lastBrace + 1);
67585
+ try {
67586
+ const parsed = JSON.parse(candidate);
67587
+ return typeof parsed === "object" && parsed !== null && (typeof parsed.tool_name === "string" || typeof parsed.tool === "string") && (typeof parsed.tool_args === "object" || typeof parsed.args === "object");
67588
+ } catch {
67589
+ return false;
67590
+ }
67591
+ }
67592
+ /**
67593
+ * Detect if the accumulated text contains a repeated block, indicating
67594
+ * a looping cascade. Returns true if a block of `minBlockSize` chars
67595
+ * from the first half appears again in the second half.
67596
+ */
67597
+ function hasRepetition(text, minBlockSize) {
67598
+ if (text.length < minBlockSize * 2.5) return false;
67599
+ const sampleStart = Math.floor(text.length * .25);
67600
+ const sample = text.slice(sampleStart, sampleStart + minBlockSize);
67601
+ const searchStart = sampleStart + minBlockSize;
67602
+ return text.indexOf(sample, searchStart) >= 0;
67603
+ }
67604
+
67522
67605
  //#endregion
67523
67606
  //#region src/agents/symipulse-timeout.ts
67524
67607
  /**
@@ -68736,6 +68819,7 @@ async function runEmbeddedAttempt(params) {
68736
68819
  return fn(...args);
68737
68820
  });
68738
68821
  };
68822
+ const streamMonitor = createStreamMonitor(modelProfile);
68739
68823
  const subscription = subscribeEmbeddedPiSession({
68740
68824
  session: activeSession,
68741
68825
  runId: params.runId,
@@ -68757,6 +68841,14 @@ async function runEmbeddedAttempt(params) {
68757
68841
  onAgentEvent: (evt) => {
68758
68842
  armSymipulseTimer();
68759
68843
  params.onAgentEvent?.(evt);
68844
+ if (evt.stream === "assistant" && typeof evt.data?.text === "string" && !aborted) {
68845
+ streamMonitor.onChunk(evt.data.text);
68846
+ if (streamMonitor.shouldStop()) {
68847
+ const reason = streamMonitor.getStopReason();
68848
+ log$2.warn(`stream monitor triggered abort: runId=${params.runId} reason=${reason}`);
68849
+ abortRun(false, /* @__PURE__ */ new Error(`stream-monitor:${reason}`));
68850
+ }
68851
+ }
68760
68852
  },
68761
68853
  enforceFinalTag: params.enforceFinalTag,
68762
68854
  config: params.config,
@@ -1,4 +1,4 @@
1
- import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-CK4e9hn8.js";
1
+ import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-DP24za6g.js";
2
2
  import { Chalk } from "chalk";
3
3
 
4
4
  //#region src/terminal/progress-line.ts
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-DccrnjsE.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-CbFUkv_T.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
3
3
 
4
4
  //#region src/markdown/tables.ts
@@ -1,5 +1,5 @@
1
- import { d as detectMime } from "./image-ops-CvJzsyvE.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-DXB7tqWi.js";
1
+ import { d as detectMime } from "./image-ops-S8-8dAhx.js";
2
+ import { r as sanitizeToolResultImages } from "./tool-images-DBCfXdli.js";
3
3
  import fs from "node:fs/promises";
4
4
 
5
5
  //#region src/agents/tools/common.ts
@@ -1,9 +1,9 @@
1
1
  import { p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
2
- import { D as escapeRegExp, M as normalizeE164, i as getChatChannelMeta, l as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-CK4e9hn8.js";
3
- import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, d as resolveSlackAccount, f as resolveSlackReplyToMode, l as resolveTelegramAccount } from "./plugins-DQYI3Fr-.js";
4
- import { t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
5
- import { n as resolveSignalAccount } from "./accounts-CWktKM8a.js";
6
- import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
2
+ import { D as escapeRegExp, M as normalizeE164, i as getChatChannelMeta, l as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-DP24za6g.js";
3
+ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, d as resolveSlackAccount, f as resolveSlackReplyToMode, l as resolveTelegramAccount } from "./plugins-C4C9637U.js";
4
+ import { t as resolveWhatsAppAccount } from "./accounts-CI6zQTJj.js";
5
+ import { n as resolveSignalAccount } from "./accounts-ChTFYj8Q.js";
6
+ import { t as resolveIMessageAccount } from "./accounts-CJR8j_Kq.js";
7
7
 
8
8
  //#region src/shared/string-normalization.ts
9
9
  function normalizeStringEntries(list) {
@@ -1,4 +1,4 @@
1
- import { D as escapeRegExp } from "./registry-CK4e9hn8.js";
1
+ import { D as escapeRegExp } from "./registry-DP24za6g.js";
2
2
 
3
3
  //#region src/auto-reply/tokens.ts
4
4
  const SYMIPULSE_TOKEN = "SYMIPULSE_OK";
@@ -1,5 +1,5 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
2
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-CvJzsyvE.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
2
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-S8-8dAhx.js";
3
3
 
4
4
  //#region src/agents/image-sanitization.ts
5
5
  const DEFAULT_IMAGE_MAX_DIMENSION_PX = 1200;
@@ -1,6 +1,6 @@
1
- import "./paths-Cce4PUkG.js";
2
- import { W as isPlainObject } from "./registry-CK4e9hn8.js";
3
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
1
+ import "./paths-CySxpNhH.js";
2
+ import { W as isPlainObject } from "./registry-DP24za6g.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
4
4
  import { createHash } from "node:crypto";
5
5
 
6
6
  //#region src/agents/tool-loop-detection.ts
@@ -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-CbTbJKLs.js";
19
+ import { wt as trimLogTail } from "./subagent-registry-Jwg44JMf.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-DnzHFtLz.js";
115
- import "./command-registry-ea9SD1eA.js";
114
+ import "./register.subclis-CrTXa8cj.js";
115
+ import "./command-registry-DXt0PsFy.js";
116
116
  import "./program-context-CqzR_m-7.js";
117
- import { r as installCompletion } from "./completion-cli-DVkiEAEA.js";
117
+ import { r as installCompletion } from "./completion-cli-CPMOXTf2.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-Bst5HnLF.js";
127
+ import "./health-BmaWws9G.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-B0NdgPvD.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-le1Hcqx4.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-BN0T6GxF.js";
139
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DeRX6gkI.js";
138
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BCHe7Fks.js";
139
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Dnxn_-ov.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 { K as trimLogTail } from "./reply-Ca3slrA3.js";
4
+ import { K as trimLogTail } from "./reply-DkwaBRX-.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-BbmYGW-V.js";
109
+ import "./program-context-qVc_lsLV.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-CMJmUQbI.js";
120
+ import { r as installCompletion } from "./completion-cli-BsSDzZNA.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-CypF_2ZD.js";
129
+ import "./health-BBGgp_dC.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-Bacq0oLK.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-BQg__DB5.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-BfuyvChh.js";
141
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CJHJYIwQ.js";
140
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-C0yn8YjW.js";
141
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-8qbLmeX0.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 { K as trimLogTail } from "./reply-Ca3slrA3.js";
2
+ import { K as trimLogTail } from "./reply-DkwaBRX-.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-CbTbJKLs.js";
3
+ import { wt as trimLogTail } from "./subagent-registry-Jwg44JMf.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";
@@ -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-Ca3slrA3.js";
4
+ import "./reply-DkwaBRX-.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-a5tX1YI3.js";
104
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-BY4lhNxW.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";