@symerian/symi 2.0.5 → 2.0.7

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 (113) hide show
  1. package/dist/{agents-CY07X24i.js → agents-CNsMe4Dr.js} +4 -4
  2. package/dist/{agents.config-B9gQawzG.js → agents.config-CdDf19dm.js} +1 -1
  3. package/dist/{agents.config-DXm0itk8.js → agents.config-yx78oSLx.js} +1 -1
  4. package/dist/{audio-preflight-B8ffbICW.js → audio-preflight-Cq4C-m27.js} +4 -4
  5. package/dist/{auth-choice-CmzYHI9W.js → auth-choice-CXMFi9LR.js} +1 -1
  6. package/dist/{auth-choice-BL5iKbOi.js → auth-choice-mw9ndZQO.js} +1 -1
  7. package/dist/{banner-ZI2qDzNS.js → banner-B-joBGLz.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-BoQfMXlN.js → channel-options-D74Jofp4.js} +1 -1
  13. package/dist/{channel-options-CBjB0Gat.js → channel-options-XPRRVrmU.js} +1 -1
  14. package/dist/{channel-web-BAXp3QOw.js → channel-web-vRvvtf0S.js} +1 -1
  15. package/dist/{channels-cli-CdNqd2p-.js → channels-cli-D3lj5dXo.js} +4 -4
  16. package/dist/{channels-cli-DDX2Mnw5.js → channels-cli-DgxPfJF7.js} +4 -4
  17. package/dist/{chrome-B_zrSLce.js → chrome-h6BnL8Lp.js} +7 -7
  18. package/dist/{cli-U17c6jdJ.js → cli-Bg_5WQFe.js} +1 -1
  19. package/dist/{cli-Dt0gEtAK.js → cli-DQQAfUbo.js} +1 -1
  20. package/dist/{command-registry-CPE-hn3o.js → command-registry-Cde2LqTh.js} +9 -9
  21. package/dist/{completion-cli-CcOS-aPd.js → completion-cli-Cx9htCOm.js} +1 -1
  22. package/dist/{completion-cli-DwcosLcg.js → completion-cli-KJUTWJP3.js} +2 -2
  23. package/dist/{config-cli-B7C8rH_M.js → config-cli-C5-P9Nzz.js} +1 -1
  24. package/dist/{config-cli-kyOQ8cyG.js → config-cli-ozfA6MGF.js} +1 -1
  25. package/dist/{configure-t1L_p7YR.js → configure-DiuQ_aTS.js} +3 -3
  26. package/dist/{configure-DMiMX73I.js → configure-ktsZw1bT.js} +3 -3
  27. package/dist/{deliver-CkjSfucB.js → deliver-CZF9f8aC.js} +1 -1
  28. package/dist/{doctor-completion-Clr-M__Q.js → doctor-completion-CrN6Ly8x.js} +1 -1
  29. package/dist/{doctor-completion-D4wXWeDY.js → doctor-completion-Vwi_je1c.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +6 -6
  32. package/dist/{gateway-cli-DhjW9OPH.js → gateway-cli-CwO3878F.js} +9 -9
  33. package/dist/{gateway-cli-CRyelGVH.js → gateway-cli-DyqK4XZ1.js} +9 -9
  34. package/dist/{glass-ui-ws-CEx9ErgA.js → glass-ui-ws-BmqwQaCf.js} +7 -7
  35. package/dist/{glass-ui-ws-BBoT-xnq.js → glass-ui-ws-zVNodseh.js} +7 -7
  36. package/dist/{health-BqurBycG.js → health-Q1RP1M2f.js} +1 -1
  37. package/dist/{health-DeTRr2Yi.js → health-UjXEBnzA.js} +1 -1
  38. package/dist/{hooks-cli-CxNUfUAl.js → hooks-cli-D4qJl6do.js} +2 -2
  39. package/dist/{hooks-cli-CyX25xDg.js → hooks-cli-DOT9uGZw.js} +2 -2
  40. package/dist/{image-CSeAnozE.js → image-DOnOTocl.js} +1 -1
  41. package/dist/index.js +6 -6
  42. package/dist/llm-slug-generator.js +1 -1
  43. package/dist/{models-DNAE1N7V.js → models-DKsiIvSx.js} +2 -2
  44. package/dist/{models-cli-D4r8mM-2.js → models-cli-BS6UJ98e.js} +3 -3
  45. package/dist/{models-cli-8eJPrb5l.js → models-cli-ULbdeSgc.js} +2 -2
  46. package/dist/{onboard-D0g_JIWM.js → onboard-B387frTY.js} +2 -2
  47. package/dist/{onboard-BpaRZUFQ.js → onboard-Bt-BwfkR.js} +2 -2
  48. package/dist/{onboard-channels-CB-ZyCGr.js → onboard-channels-COcxT5Q0.js} +1 -1
  49. package/dist/{onboard-channels-ZvSuUl2b.js → onboard-channels-ybPEmcP8.js} +1 -1
  50. package/dist/{onboarding-IkxPm5gV.js → onboarding-BibGEGIS.js} +3 -3
  51. package/dist/{onboarding-CyOPHuUh.js → onboarding-CdN_NU2d.js} +3 -3
  52. package/dist/{onboarding.finalize-5dMqw7-V.js → onboarding.finalize-CY1NjrGb.js} +6 -6
  53. package/dist/{onboarding.finalize-lCFDn1Vv.js → onboarding.finalize-CvahVrDM.js} +5 -5
  54. package/dist/{pi-embedded-CG1sbHWR.js → pi-embedded-BvCoZBNg.js} +195 -16
  55. package/dist/{pi-embedded-B17xy2tl.js → pi-embedded-ZzUH4ioO.js} +181 -2
  56. package/dist/{pi-embedded-helpers-BmYZe8o8.js → pi-embedded-helpers--yFTAWwW.js} +4 -4
  57. package/dist/{plugin-registry-JZqN81Bo.js → plugin-registry-BAbkdLQ7.js} +1 -1
  58. package/dist/{plugin-registry-utopggWM.js → plugin-registry-CEoSVvL1.js} +1 -1
  59. package/dist/plugin-sdk/agents/plan-mode.d.ts +32 -0
  60. package/dist/plugin-sdk/{channel-web-8rBzJFux.js → channel-web-xXTpy0N_.js} +1 -1
  61. package/dist/plugin-sdk/index.js +2 -2
  62. package/dist/plugin-sdk/{reply-1OERlD_o.js → reply-EEvLfWgt.js} +181 -2
  63. package/dist/plugin-sdk/{web-BwotpS8M.js → web-COWtpMAH.js} +2 -2
  64. package/dist/{plugins-cli-3juF8qAN.js → plugins-cli-BpuQ7Y9l.js} +2 -2
  65. package/dist/{plugins-cli-VgPcQbvD.js → plugins-cli-C_S07pgO.js} +2 -2
  66. package/dist/{program-D--d7gXJ.js → program-cO9YX6wL.js} +7 -7
  67. package/dist/{program-context-6lrCsf93.js → program-context-QBBvnWFX.js} +17 -17
  68. package/dist/{prompt-select-styled-B7Ou3g-A.js → prompt-select-styled-CepuQSKg.js} +4 -4
  69. package/dist/{prompt-select-styled-BDPi1gAG.js → prompt-select-styled-D3dYbx2P.js} +4 -4
  70. package/dist/{provider-auth-helpers-D8shQq80.js → provider-auth-helpers-BMACaaEd.js} +1 -1
  71. package/dist/{provider-auth-helpers-DVt5O7L_.js → provider-auth-helpers-DXqvuBCi.js} +1 -1
  72. package/dist/{push-apns-CZnm2rUK.js → push-apns-8YIzbTM7.js} +1 -1
  73. package/dist/{push-apns-CBcDG6uB.js → push-apns-DhZgao_r.js} +1 -1
  74. package/dist/{pw-ai-s-d46DCX.js → pw-ai-C_C5as1t.js} +1 -1
  75. package/dist/{register.agent-D7-4LkI4.js → register.agent-CSUoUVKd.js} +6 -6
  76. package/dist/{register.agent-BWc0MoWn.js → register.agent-CiTS9lyx.js} +5 -5
  77. package/dist/{register.configure-BV-ZFMB7.js → register.configure-BbE9MAer.js} +6 -6
  78. package/dist/{register.configure-DCjQSKxq.js → register.configure-CuCVLOW0.js} +6 -6
  79. package/dist/{register.maintenance-C5sEBWXo.js → register.maintenance-CJG75LTu.js} +8 -8
  80. package/dist/{register.maintenance-CVi1e2Ji.js → register.maintenance-D8bthvou.js} +7 -7
  81. package/dist/{register.message-DFRfxv1G.js → register.message-CyqE4E2O.js} +2 -2
  82. package/dist/{register.message-0N9DueQZ.js → register.message-nUpHGrEE.js} +2 -2
  83. package/dist/{register.onboard-CW1Uz6hU.js → register.onboard-BDlne5KX.js} +4 -4
  84. package/dist/{register.onboard-DrrdbypK.js → register.onboard-Dlw-TCPH.js} +4 -4
  85. package/dist/{register.setup-rFeo1KBD.js → register.setup-B8kiMuah.js} +4 -4
  86. package/dist/{register.setup-DfWYqqXp.js → register.setup-ByMyofSq.js} +4 -4
  87. package/dist/{register.status-health-sessions-D775ye0Z.js → register.status-health-sessions-0odRpA-p.js} +3 -3
  88. package/dist/{register.status-health-sessions-B1AYiTUy.js → register.status-health-sessions-Diirshgb.js} +3 -3
  89. package/dist/{register.subclis-J68HyfeW.js → register.subclis-CqEj9vfW.js} +9 -9
  90. package/dist/{reply-D3vL1h90.js → reply-B9o45s3E.js} +181 -2
  91. package/dist/{run-main-sIDR93j4.js → run-main-C__lZ7VF.js} +14 -14
  92. package/dist/{runner-CJJY2r19.js → runner-uDZlTCm2.js} +1 -1
  93. package/dist/{server-methods-BFzqiN9K.js → server-methods-B_NSJmhc.js} +7 -7
  94. package/dist/{server-methods-BLiOVI3R.js → server-methods-Df9KsV_-.js} +7 -7
  95. package/dist/{server-node-events-Culy5cRa.js → server-node-events-C2mugatX.js} +2 -2
  96. package/dist/{server-node-events-DPZocSBy.js → server-node-events-ZG0SBDkU.js} +2 -2
  97. package/dist/{status-Bwu1EbC5.js → status-BTF6_aBO.js} +1 -1
  98. package/dist/{status-BG-HNnfA.js → status-BytVj4kU.js} +1 -1
  99. package/dist/{status-D7_avdQF.js → status-PADx9rG7.js} +2 -2
  100. package/dist/{status-CFu6iTAd.js → status-hgm5EhwS.js} +2 -2
  101. package/dist/{subagent-registry-CQ_bEF7T.js → subagent-registry-BR2Qhqjf.js} +181 -2
  102. package/dist/{update-cli-BYU_o1qK.js → update-cli-CHr8rjf-.js} +8 -8
  103. package/dist/{update-cli-CxaBQq_C.js → update-cli-qacplfF4.js} +7 -7
  104. package/dist/{update-runner-DMFIbvG9.js → update-runner-DM8zQvQB.js} +1 -1
  105. package/dist/{update-runner-IitPp27-.js → update-runner-DNA7FJa2.js} +1 -1
  106. package/dist/{web-C_4x-6nn.js → web-0bP0TLM2.js} +1 -1
  107. package/dist/{web-CfxeKotB.js → web-DkQc82PT.js} +1 -1
  108. package/dist/{web-JrjUXFo9.js → web-G0LUda_q.js} +6 -6
  109. package/dist/{web-Bv6joRhQ.js → web-UroM-w6c.js} +2 -2
  110. package/docs/reference/templates/AGENTS.md +18 -0
  111. package/docs/reference/templates/SYMICORE.md +2 -0
  112. package/docs/reference/templates/SYMIPULSE.md +57 -39
  113. package/package.json +1 -1
@@ -22291,7 +22291,7 @@ async function runWithImageModelFallback(params) {
22291
22291
  function createDefaultDeps() {
22292
22292
  return {
22293
22293
  sendMessageWhatsApp: async (...args) => {
22294
- const { sendMessageWhatsApp } = await import("./web-Bv6joRhQ.js");
22294
+ const { sendMessageWhatsApp } = await import("./web-UroM-w6c.js");
22295
22295
  return await sendMessageWhatsApp(...args);
22296
22296
  },
22297
22297
  sendMessageTelegram: async (...args) => {
@@ -40851,7 +40851,7 @@ function loadWebLoginQr() {
40851
40851
  return webLoginQrPromise;
40852
40852
  }
40853
40853
  function loadWebChannel() {
40854
- webChannelPromise ??= import("./web-Bv6joRhQ.js");
40854
+ webChannelPromise ??= import("./web-UroM-w6c.js");
40855
40855
  return webChannelPromise;
40856
40856
  }
40857
40857
  function loadWhatsAppActions() {
@@ -61253,6 +61253,152 @@ function subscribeEmbeddedPiSession(params) {
61253
61253
  };
61254
61254
  }
61255
61255
 
61256
+ //#endregion
61257
+ //#region src/agents/plan-mode.ts
61258
+ /**
61259
+ * Plan Mode — automatic complexity detection and structured planning.
61260
+ *
61261
+ * When a user message is complex (multi-step, multi-file, refactoring, etc.),
61262
+ * Symi auto-enters plan mode: read-only investigation → structured plan →
61263
+ * user approval → context-cleared execution.
61264
+ */
61265
+ const PLAN_KEYWORDS = new Set([
61266
+ "investigate",
61267
+ "refactor",
61268
+ "migrate",
61269
+ "redesign",
61270
+ "set up",
61271
+ "setup",
61272
+ "build",
61273
+ "implement",
61274
+ "architect",
61275
+ "overhaul",
61276
+ "restructure",
61277
+ "rewrite"
61278
+ ]);
61279
+ const ANALYSIS_KEYWORDS = new Set([
61280
+ "analyze",
61281
+ "analyse",
61282
+ "compare",
61283
+ "audit",
61284
+ "review",
61285
+ "evaluate",
61286
+ "assess"
61287
+ ]);
61288
+ const SEQUENTIAL_MARKERS = [
61289
+ /\bthen\b/i,
61290
+ /\bafter that\b/i,
61291
+ /\bonce .+ is done\b/i,
61292
+ /\bnext,?\s/i,
61293
+ /\bfollowed by\b/i,
61294
+ /\bfinally\b/i
61295
+ ];
61296
+ const NUMBERED_LIST_RE = /^\s*\d+[.)]\s/gm;
61297
+ const FILE_PATH_RE = /(?:\/[\w.-]+){2,}|[\w.-]+\.[a-z]{1,4}/g;
61298
+ /**
61299
+ * Score a user message for complexity.
61300
+ * Returns a numeric score; >= PLAN_MODE_THRESHOLD triggers plan mode.
61301
+ */
61302
+ function scorePlanComplexity(prompt) {
61303
+ let score = 0;
61304
+ const lower = prompt.toLowerCase();
61305
+ if (prompt.length > 500) {
61306
+ if ([...PLAN_KEYWORDS, ...ANALYSIS_KEYWORDS].some((kw) => lower.includes(kw)) || FILE_PATH_RE.test(prompt)) score += 3;
61307
+ }
61308
+ const numberedItems = prompt.match(NUMBERED_LIST_RE);
61309
+ if (numberedItems && numberedItems.length >= 3) score += 2;
61310
+ for (const kw of PLAN_KEYWORDS) if (lower.includes(kw)) {
61311
+ score += 2;
61312
+ break;
61313
+ }
61314
+ for (const re of SEQUENTIAL_MARKERS) if (re.test(prompt)) {
61315
+ score += 2;
61316
+ break;
61317
+ }
61318
+ const filePaths = prompt.match(FILE_PATH_RE);
61319
+ if (filePaths && new Set(filePaths).size >= 2) score += 1;
61320
+ for (const kw of ANALYSIS_KEYWORDS) if (lower.includes(kw)) {
61321
+ score += 1;
61322
+ break;
61323
+ }
61324
+ return score;
61325
+ }
61326
+ const PLAN_MODE_THRESHOLD = 5;
61327
+ /**
61328
+ * Determine whether a prompt should trigger plan mode.
61329
+ *
61330
+ * Priority:
61331
+ * 1. /plan prefix → always
61332
+ * 2. /noplan prefix → never
61333
+ * 3. Subagent/cron sessions → never
61334
+ * 4. Heuristic scoring
61335
+ */
61336
+ function shouldEnterPlanMode(prompt, opts = {}) {
61337
+ const trimmed = prompt.trim();
61338
+ if (/^\/plan\b/i.test(trimmed)) return {
61339
+ enter: true,
61340
+ reason: "explicit /plan directive",
61341
+ score: 99,
61342
+ stripped: trimmed.replace(/^\/plan\s*/i, "").trim()
61343
+ };
61344
+ if (/^\/noplan\b/i.test(trimmed)) return {
61345
+ enter: false,
61346
+ reason: "explicit /noplan directive",
61347
+ score: 0,
61348
+ stripped: trimmed.replace(/^\/noplan\s*/i, "").trim()
61349
+ };
61350
+ if (opts.isSubagent) return {
61351
+ enter: false,
61352
+ reason: "subagent session",
61353
+ score: 0
61354
+ };
61355
+ if (opts.isCron) return {
61356
+ enter: false,
61357
+ reason: "cron session",
61358
+ score: 0
61359
+ };
61360
+ const score = scorePlanComplexity(trimmed);
61361
+ if (score >= PLAN_MODE_THRESHOLD) return {
61362
+ enter: true,
61363
+ reason: `complexity score ${score} >= ${PLAN_MODE_THRESHOLD}`,
61364
+ score
61365
+ };
61366
+ return {
61367
+ enter: false,
61368
+ reason: `complexity score ${score} < ${PLAN_MODE_THRESHOLD}`,
61369
+ score
61370
+ };
61371
+ }
61372
+ const PLAN_MODE_SYSTEM_PROMPT = `<plan_mode>
61373
+ You have entered PLAN MODE because this task is complex.
61374
+
61375
+ RULES:
61376
+ - DO NOT write, edit, or create any files yet
61377
+ - DO NOT execute destructive commands (rm, mv, git reset, etc.)
61378
+ - DO read files, search code, check runtime state
61379
+ - DO use memory_search, web_search, exec (read-only commands like ls, cat, git status, git log)
61380
+ - Produce a detailed step-by-step implementation plan
61381
+
61382
+ OUTPUT FORMAT:
61383
+ 1. **Summary** — what needs to be done and why
61384
+ 2. **Investigation** — files read, code searched, state checked
61385
+ 3. **Files to modify** — list every file that will be created, edited, or deleted
61386
+ 4. **Implementation phases** — numbered steps with:
61387
+ - What changes in each phase
61388
+ - Which files are touched
61389
+ - Dependencies on prior phases
61390
+ 5. **Risks & considerations** — things that could go wrong, edge cases, rollback strategy
61391
+
61392
+ After presenting the plan, ask the user to choose one of these options.
61393
+ Present these as inline buttons if the channel supports them:
61394
+ - **Proceed** — clear context and execute the plan
61395
+ - **Modify** — adjust the plan based on feedback
61396
+ - **Cancel** — abandon the plan
61397
+
61398
+ Use the message tool with buttons:
61399
+ [{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
61400
+ </plan_mode>`;
61401
+
61256
61402
  //#endregion
61257
61403
  //#region src/agents/pi-embedded-runner/abort.ts
61258
61404
  /**
@@ -62487,6 +62633,39 @@ async function runEmbeddedAttempt(params) {
62487
62633
  effectivePrompt = `${hookResult.prependContext}\n\n${params.prompt}`;
62488
62634
  log$2.debug(`hooks: prepended context to prompt (${hookResult.prependContext.length} chars)`);
62489
62635
  }
62636
+ {
62637
+ const autoRecallAgentId = normalizeAgentId(params.sessionKey);
62638
+ if ((params.config ? resolveMemorySearchConfig(params.config, autoRecallAgentId) : null) && params.config) try {
62639
+ const { manager } = await getMemorySearchManager({
62640
+ cfg: params.config,
62641
+ agentId: autoRecallAgentId
62642
+ });
62643
+ if (manager) {
62644
+ const recallResults = await manager.search(params.prompt, {
62645
+ maxResults: 4,
62646
+ sessionKey: params.sessionKey
62647
+ });
62648
+ if (recallResults.length > 0) {
62649
+ const recallBlock = `<memory_context>\nThe following memory snippets were automatically retrieved as relevant context:\n\n${recallResults.map((r) => `[${r.path}#L${r.startLine}-L${r.endLine}]\n${r.snippet}`).join("\n---\n")}\n</memory_context>`;
62650
+ effectivePrompt = `${recallBlock}\n\n${effectivePrompt}`;
62651
+ log$2.debug(`auto-recall: injected ${recallResults.length} snippets (${recallBlock.length} chars)`);
62652
+ }
62653
+ }
62654
+ } catch (recallErr) {
62655
+ log$2.debug(`auto-recall: skipped (${String(recallErr)})`);
62656
+ }
62657
+ }
62658
+ {
62659
+ const planResult = shouldEnterPlanMode(effectivePrompt, {
62660
+ isSubagent: isSubagentSessionKey(params.sessionKey),
62661
+ isCron: isCronSessionKey(params.sessionKey)
62662
+ });
62663
+ if (planResult.enter) {
62664
+ if (planResult.stripped != null) effectivePrompt = planResult.stripped;
62665
+ effectivePrompt = `${PLAN_MODE_SYSTEM_PROMPT}\n\n${effectivePrompt}`;
62666
+ log$2.info(`plan-mode: activated (${planResult.reason}) for runId=${params.runId}`);
62667
+ } else if (planResult.stripped != null) effectivePrompt = planResult.stripped;
62668
+ }
62490
62669
  log$2.debug(`embedded run prompt start: runId=${params.runId} sessionId=${params.sessionId}`);
62491
62670
  cacheTrace?.recordStage("prompt:before", {
62492
62671
  prompt: effectivePrompt,
@@ -13,7 +13,7 @@ import "./client-LeVQns9-.js";
13
13
  import "./call-BQiCOxB6.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-CQ_bEF7T.js";
16
+ import "./subagent-registry-BR2Qhqjf.js";
17
17
  import "./sessions-DJAxaVI7.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -101,9 +101,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
102
  import "./note-DDecZomM.js";
103
103
  import "./plugin-auto-enable-D4BRdbII.js";
104
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-JZqN81Bo.js";
104
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BAbkdLQ7.js";
105
105
  import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
106
- import { t as emitCliBanner } from "./banner-ZI2qDzNS.js";
106
+ import { t as emitCliBanner } from "./banner-B-joBGLz.js";
107
107
  import "./doctor-config-flow-C_56SUPO.js";
108
108
  import { n as ensureConfigReady } from "./config-guard-BpQn1MKk.js";
109
109
  import process$1 from "node:process";
@@ -118,7 +118,7 @@ const routeHealth = {
118
118
  const verbose = getVerboseFlag(argv, { includeDebug: true });
119
119
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
120
120
  if (timeoutMs === null) return false;
121
- const { healthCommand } = await import("./health-DeTRr2Yi.js").then((n) => n.i);
121
+ const { healthCommand } = await import("./health-UjXEBnzA.js").then((n) => n.i);
122
122
  await healthCommand({
123
123
  json,
124
124
  timeoutMs,
@@ -138,7 +138,7 @@ const routeStatus = {
138
138
  const verbose = getVerboseFlag(argv, { includeDebug: true });
139
139
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
140
140
  if (timeoutMs === null) return false;
141
- const { statusCommand } = await import("./status-D7_avdQF.js").then((n) => n.t);
141
+ const { statusCommand } = await import("./status-PADx9rG7.js").then((n) => n.t);
142
142
  await statusCommand({
143
143
  json,
144
144
  deep,
@@ -172,7 +172,7 @@ const routeAgentsList = {
172
172
  run: async (argv) => {
173
173
  const json = hasFlag(argv, "--json");
174
174
  const bindings = hasFlag(argv, "--bindings");
175
- const { agentsListCommand } = await import("./agents-CY07X24i.js").then((n) => n.t);
175
+ const { agentsListCommand } = await import("./agents-CNsMe4Dr.js").then((n) => n.t);
176
176
  await agentsListCommand({
177
177
  json,
178
178
  bindings
@@ -243,7 +243,7 @@ const routes = [
243
243
  const pathArg = getCommandPositionals(argv)[2];
244
244
  if (!pathArg) return false;
245
245
  const json = hasFlag(argv, "--json");
246
- const { runConfigGet } = await import("./config-cli-kyOQ8cyG.js");
246
+ const { runConfigGet } = await import("./config-cli-ozfA6MGF.js");
247
247
  await runConfigGet({
248
248
  path: pathArg,
249
249
  json
@@ -256,7 +256,7 @@ const routes = [
256
256
  run: async (argv) => {
257
257
  const pathArg = getCommandPositionals(argv)[2];
258
258
  if (!pathArg) return false;
259
- const { runConfigUnset } = await import("./config-cli-kyOQ8cyG.js");
259
+ const { runConfigUnset } = await import("./config-cli-ozfA6MGF.js");
260
260
  await runConfigUnset({ path: pathArg });
261
261
  return true;
262
262
  }
@@ -270,7 +270,7 @@ const routes = [
270
270
  const local = hasFlag(argv, "--local");
271
271
  const json = hasFlag(argv, "--json");
272
272
  const plain = hasFlag(argv, "--plain");
273
- const { modelsListCommand } = await import("./models-DNAE1N7V.js").then((n) => n.t);
273
+ const { modelsListCommand } = await import("./models-DKsiIvSx.js").then((n) => n.t);
274
274
  await modelsListCommand({
275
275
  all,
276
276
  local,
@@ -301,7 +301,7 @@ const routes = [
301
301
  const plain = hasFlag(argv, "--plain");
302
302
  const check = hasFlag(argv, "--check");
303
303
  const probe = hasFlag(argv, "--probe");
304
- const { modelsStatusCommand } = await import("./models-DNAE1N7V.js").then((n) => n.t);
304
+ const { modelsStatusCommand } = await import("./models-DKsiIvSx.js").then((n) => n.t);
305
305
  await modelsStatusCommand({
306
306
  json,
307
307
  plain,
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
379
379
  assertSupportedRuntime();
380
380
  if (await tryRouteCli(normalizedArgv)) return;
381
381
  enableConsoleCapture();
382
- const { buildProgram } = await import("./program-D--d7gXJ.js");
382
+ const { buildProgram } = await import("./program-cO9YX6wL.js");
383
383
  const program = buildProgram();
384
384
  installUnhandledRejectionHandler();
385
385
  process$1.on("uncaughtException", (error) => {
@@ -411,10 +411,10 @@ async function runCli(argv = process$1.argv) {
411
411
  const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
412
412
  const ctx = getProgramContext(program);
413
413
  if (ctx) {
414
- const { registerCoreCliByName } = await import("./command-registry-CPE-hn3o.js").then((n) => n.t);
414
+ const { registerCoreCliByName } = await import("./command-registry-Cde2LqTh.js").then((n) => n.t);
415
415
  await registerCoreCliByName(program, ctx, primary, parseArgv);
416
416
  }
417
- const { registerSubCliByName } = await import("./register.subclis-J68HyfeW.js").then((n) => n.a);
417
+ const { registerSubCliByName } = await import("./register.subclis-CqEj9vfW.js").then((n) => n.a);
418
418
  await registerSubCliByName(program, primary);
419
419
  }
420
420
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -423,7 +423,7 @@ async function runCli(argv = process$1.argv) {
423
423
  primary,
424
424
  hasBuiltinPrimary
425
425
  })) {
426
- const { registerPluginCliCommands } = await import("./cli-U17c6jdJ.js");
426
+ const { registerPluginCliCommands } = await import("./cli-Bg_5WQFe.js");
427
427
  const { loadConfig } = await import("./config-amjzHiWZ.js").then((n) => n.t);
428
428
  registerPluginCliCommands(program, loadConfig());
429
429
  }
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BjGo9GnL.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CSeAnozE.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-DOnOTocl.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-K6vg8B5c.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { An as listSubagentRunsForRequester, At as agentCommand, Bn as getTtsProvider, Bt as resolveSendPolicy, C as pruneLegacyStoreKeys, Cn as isAbortTrigger, D as ensureOutboundSessionEntry, Gn as resolveTtsConfig, Hn as isTtsProviderConfigured, Ht as createOutboundSendDeps, It as resolveOutboundTarget, J as normalizeCronJobCreate, Jn as setTtsEnabled, K as writeRestartSentinel, Kn as resolveTtsPrefsPath, L as scheduleGatewaySigusr1Restart, Ln as onAgentEvent, Mr as resolveAgentTimeoutMs, Mt as resolveAgentDeliveryPlan, Nt as resolveAgentOutboundTarget, O as resolveOutboundSessionRoute, Qn as OPENAI_TTS_VOICES, Rn as registerAgentRunContext, S as loadSessionEntry, T as resolveSessionModelRef, Un as resolveTtsApiKey, V as formatDoctorNonInteractiveHint, Vn as isTtsEnabled, Wn as resolveTtsAutoMode, Xn as textToSpeech, Y as normalizeCronJobPatch, Yn as setTtsProvider, Zn as OPENAI_TTS_MODELS, _ as canonicalizeSpawnedByForAgent, _r as applyVerboseOverride, b as listSessionsFromStore, bn as formatZonedTimestamp, br as isSystemEventContextChanged, bt as loadProviderUsageSummary, c as clearSessionQueues, ct as applyBrowserProxyPaths, f as waitForEmbeddedPiRunEnd, fn as dispatchInboundMessage, gr as applyModelOverrideToSessionEntry, gt as loadSymiPlugins, kn as listDescendantRunsForRequester, lt as persistBrowserProxyFiles, n as BARE_SESSION_RESET_PROMPT, pn as createReplyDispatcher, qn as resolveTtsProviderOrder, rn as unbindThreadBindingsBySessionKey, u as abortEmbeddedPiRun, vr as parseVerboseOverride, vt as normalizeGroupActivation, w as resolveGatewaySessionStoreTarget, wn as stopSubagentsForRequester, x as loadCombinedSessionStoreForGateway, y as listAgentsForGateway, yr as enqueueSystemEvent, zn as resolveUserTimezone, zt as normalizeSendPolicy } from "./reply-D3vL1h90.js";
4
+ import { An as listSubagentRunsForRequester, At as agentCommand, Bn as getTtsProvider, Bt as resolveSendPolicy, C as pruneLegacyStoreKeys, Cn as isAbortTrigger, D as ensureOutboundSessionEntry, Gn as resolveTtsConfig, Hn as isTtsProviderConfigured, Ht as createOutboundSendDeps, It as resolveOutboundTarget, J as normalizeCronJobCreate, Jn as setTtsEnabled, K as writeRestartSentinel, Kn as resolveTtsPrefsPath, L as scheduleGatewaySigusr1Restart, Ln as onAgentEvent, Mr as resolveAgentTimeoutMs, Mt as resolveAgentDeliveryPlan, Nt as resolveAgentOutboundTarget, O as resolveOutboundSessionRoute, Qn as OPENAI_TTS_VOICES, Rn as registerAgentRunContext, S as loadSessionEntry, T as resolveSessionModelRef, Un as resolveTtsApiKey, V as formatDoctorNonInteractiveHint, Vn as isTtsEnabled, Wn as resolveTtsAutoMode, Xn as textToSpeech, Y as normalizeCronJobPatch, Yn as setTtsProvider, Zn as OPENAI_TTS_MODELS, _ as canonicalizeSpawnedByForAgent, _r as applyVerboseOverride, b as listSessionsFromStore, bn as formatZonedTimestamp, br as isSystemEventContextChanged, bt as loadProviderUsageSummary, c as clearSessionQueues, ct as applyBrowserProxyPaths, f as waitForEmbeddedPiRunEnd, fn as dispatchInboundMessage, gr as applyModelOverrideToSessionEntry, gt as loadSymiPlugins, kn as listDescendantRunsForRequester, lt as persistBrowserProxyFiles, n as BARE_SESSION_RESET_PROMPT, pn as createReplyDispatcher, qn as resolveTtsProviderOrder, rn as unbindThreadBindingsBySessionKey, u as abortEmbeddedPiRun, vr as parseVerboseOverride, vt as normalizeGroupActivation, w as resolveGatewaySessionStoreTarget, wn as stopSubagentsForRequester, x as loadCombinedSessionStoreForGateway, y as listAgentsForGateway, yr as enqueueSystemEvent, zn as resolveUserTimezone, zt as normalizeSendPolicy } from "./reply-B9o45s3E.js";
5
5
  import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
@@ -39,14 +39,14 @@ import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
39
39
  import { t as resolveChannelDefaultAccountId } from "./helpers-BcGbMZD1.js";
40
40
  import { t as buildChannelAccountSnapshot } from "./status-BrV-afZE.js";
41
41
  import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CiugrQda.js";
42
- import { n as getStatusSummary } from "./status-CFu6iTAd.js";
43
- import { s as setHeartbeatsEnabled } from "./health-BqurBycG.js";
42
+ import { n as getStatusSummary } from "./status-hgm5EhwS.js";
43
+ import { s as setHeartbeatsEnabled } from "./health-Q1RP1M2f.js";
44
44
  import { m as normalizeUpdateChannel } from "./update-check-CtckACbb.js";
45
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CBcDG6uB.js";
46
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-B9gQawzG.js";
45
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-DhZgao_r.js";
46
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CdDf19dm.js";
47
47
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
48
48
  import { t as installSkill } from "./skills-install-D67isO1L.js";
49
- import { t as runGatewayUpdate } from "./update-runner-DMFIbvG9.js";
49
+ import { t as runGatewayUpdate } from "./update-runner-DM8zQvQB.js";
50
50
  import * as fs$2 from "node:fs";
51
51
  import fs from "node:fs";
52
52
  import * as os$1 from "node:os";
@@ -6834,7 +6834,7 @@ const nodeHandlers = {
6834
6834
  const p = params;
6835
6835
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
6836
6836
  await respondUnavailableOnThrow(respond, async () => {
6837
- const { handleNodeEvent } = await import("./server-node-events-DPZocSBy.js");
6837
+ const { handleNodeEvent } = await import("./server-node-events-ZG0SBDkU.js");
6838
6838
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
6839
6839
  await handleNodeEvent({
6840
6840
  deps: context.deps,
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
12
12
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
13
13
  import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
14
14
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
15
- import { $n as resolveTtsPrefsPath, $t as normalizeGroupActivation, A as createOutboundSendDeps, D as resolveAgentOutboundTarget, E as resolveAgentDeliveryPlan, Hn as isAbortTrigger, Ht as applyBrowserProxyPaths, J as BARE_SESSION_RESET_PROMPT, Jn as isTtsEnabled, Kn as resolveUserTimezone, Pn as resolveAgentTimeoutMs, Qn as resolveTtsConfig, Qt as unbindThreadBindingsBySessionKey, Sn as isSystemEventContextChanged, Sr as registerAgentRunContext, St as writeRestartSentinel, Tt as normalizeCronJobPatch, U as dispatchInboundMessage, Un as stopSubagentsForRequester, Ut as persistBrowserProxyFiles, W as createReplyDispatcher, Xn as resolveTtsApiKey, Yn as isTtsProviderConfigured, Yt as scheduleGatewaySigusr1Restart, Zn as resolveTtsAutoMode, _ as loadSymiPlugins, _t as formatDoctorNonInteractiveHint, ar as OPENAI_TTS_VOICES, at as ensureOutboundSessionEntry, bn as parseVerboseOverride, d as waitForEmbeddedPiRunEnd, er as resolveTtsProviderOrder, fn as normalizeSendPolicy, i as listSubagentRunsForRequester, ir as OPENAI_TTS_MODELS, l as abortEmbeddedPiRun, lt as resolveOutboundTarget, nr as setTtsProvider, ot as resolveOutboundSessionRoute, pn as resolveSendPolicy, qn as getTtsProvider, r as listDescendantRunsForRequester, rr as textToSpeech, s as clearSessionQueues, tn as loadProviderUsageSummary, tr as setTtsEnabled, vn as applyModelOverrideToSessionEntry, w as agentCommand, wt as normalizeCronJobCreate, xn as enqueueSystemEvent, xr as onAgentEvent, yn as applyVerboseOverride, zn as formatZonedTimestamp } from "./subagent-registry-CQ_bEF7T.js";
15
+ import { $n as resolveTtsPrefsPath, $t as normalizeGroupActivation, A as createOutboundSendDeps, D as resolveAgentOutboundTarget, E as resolveAgentDeliveryPlan, Hn as isAbortTrigger, Ht as applyBrowserProxyPaths, J as BARE_SESSION_RESET_PROMPT, Jn as isTtsEnabled, Kn as resolveUserTimezone, Pn as resolveAgentTimeoutMs, Qn as resolveTtsConfig, Qt as unbindThreadBindingsBySessionKey, Sn as isSystemEventContextChanged, Sr as registerAgentRunContext, St as writeRestartSentinel, Tt as normalizeCronJobPatch, U as dispatchInboundMessage, Un as stopSubagentsForRequester, Ut as persistBrowserProxyFiles, W as createReplyDispatcher, Xn as resolveTtsApiKey, Yn as isTtsProviderConfigured, Yt as scheduleGatewaySigusr1Restart, Zn as resolveTtsAutoMode, _ as loadSymiPlugins, _t as formatDoctorNonInteractiveHint, ar as OPENAI_TTS_VOICES, at as ensureOutboundSessionEntry, bn as parseVerboseOverride, d as waitForEmbeddedPiRunEnd, er as resolveTtsProviderOrder, fn as normalizeSendPolicy, i as listSubagentRunsForRequester, ir as OPENAI_TTS_MODELS, l as abortEmbeddedPiRun, lt as resolveOutboundTarget, nr as setTtsProvider, ot as resolveOutboundSessionRoute, pn as resolveSendPolicy, qn as getTtsProvider, r as listDescendantRunsForRequester, rr as textToSpeech, s as clearSessionQueues, tn as loadProviderUsageSummary, tr as setTtsEnabled, vn as applyModelOverrideToSessionEntry, w as agentCommand, wt as normalizeCronJobCreate, xn as enqueueSystemEvent, xr as onAgentEvent, yn as applyVerboseOverride, zn as formatZonedTimestamp } from "./subagent-registry-BR2Qhqjf.js";
16
16
  import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-DJAxaVI7.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
18
18
  import { n as createBrowserRouteDispatcher } from "./with-timeout-Cj_xUxo6.js";
@@ -37,14 +37,14 @@ import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
37
37
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
38
38
  import { t as buildChannelAccountSnapshot } from "./status-BUedPCLb.js";
39
39
  import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DKUpFt8z.js";
40
- import { r as getStatusSummary } from "./status-D7_avdQF.js";
41
- import { c as setHeartbeatsEnabled } from "./health-DeTRr2Yi.js";
40
+ import { r as getStatusSummary } from "./status-PADx9rG7.js";
41
+ import { c as setHeartbeatsEnabled } from "./health-UjXEBnzA.js";
42
42
  import { m as normalizeUpdateChannel } from "./update-check-ZdimP1aU.js";
43
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CZnm2rUK.js";
44
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DXm0itk8.js";
43
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-8YIzbTM7.js";
44
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-yx78oSLx.js";
45
45
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
46
46
  import { t as installSkill } from "./skills-install-1ZdwGTnh.js";
47
- import { t as runGatewayUpdate } from "./update-runner-IitPp27-.js";
47
+ import { t as runGatewayUpdate } from "./update-runner-DNA7FJa2.js";
48
48
  import { spawnSync } from "node:child_process";
49
49
  import * as os$1 from "node:os";
50
50
  import os from "node:os";
@@ -6832,7 +6832,7 @@ const nodeHandlers = {
6832
6832
  const p = params;
6833
6833
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
6834
6834
  await respondUnavailableOnThrow(respond, async () => {
6835
- const { handleNodeEvent } = await import("./server-node-events-Culy5cRa.js");
6835
+ const { handleNodeEvent } = await import("./server-node-events-C2mugatX.js");
6836
6836
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
6837
6837
  await handleNodeEvent({
6838
6838
  deps: context.deps,
@@ -14,7 +14,7 @@ import "./client-LeVQns9-.js";
14
14
  import "./call-BQiCOxB6.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { O as createOutboundSendDeps, ln as requestHeartbeatNow, lt as resolveOutboundTarget, w as agentCommand, xn as enqueueSystemEvent } from "./subagent-registry-CQ_bEF7T.js";
17
+ import { O as createOutboundSendDeps, ln as requestHeartbeatNow, lt as resolveOutboundTarget, w as agentCommand, xn as enqueueSystemEvent } from "./subagent-registry-BR2Qhqjf.js";
18
18
  import { d as updateSessionStore } from "./sessions-DJAxaVI7.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import { r as normalizeChannelId } from "./plugins-CwSlLxM8.js";
@@ -98,7 +98,7 @@ import "./onboard-helpers-CUQrf3zD.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-sIj1ZLt-.js";
100
100
  import "./pi-tools.policy-T6Z5F-_n.js";
101
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CZnm2rUK.js";
101
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-8YIzbTM7.js";
102
102
  import { randomUUID } from "node:crypto";
103
103
 
104
104
  //#region src/gateway/server-node-events.ts
@@ -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 { At as agentCommand, C as pruneLegacyStoreKeys, It as resolveOutboundTarget, Rt as createOutboundSendDeps, S as loadSessionEntry, dt as requestHeartbeatNow, w as resolveGatewaySessionStoreTarget, yr as enqueueSystemEvent } from "./reply-D3vL1h90.js";
4
+ import { At as agentCommand, C as pruneLegacyStoreKeys, It as resolveOutboundTarget, Rt as createOutboundSendDeps, S as loadSessionEntry, dt as requestHeartbeatNow, w as resolveGatewaySessionStoreTarget, yr as enqueueSystemEvent } from "./reply-B9o45s3E.js";
5
5
  import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -102,7 +102,7 @@ import "./pi-tools.policy-DPmdlOwE.js";
102
102
  import "./control-service-DMz_CcLi.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CBcDG6uB.js";
105
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DhZgao_r.js";
106
106
  import { randomUUID } from "node:crypto";
107
107
 
108
108
  //#region src/gateway/server-node-events.ts
@@ -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-amjzHiWZ.js";
4
- import { _ as loadSymiPlugins, g as createPluginLoaderLogger } from "./subagent-registry-CQ_bEF7T.js";
4
+ import { _ as loadSymiPlugins, g as createPluginLoaderLogger } from "./subagent-registry-BR2Qhqjf.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,4 +1,4 @@
1
- import { gt as loadSymiPlugins, ht as createPluginLoaderLogger } from "./reply-D3vL1h90.js";
1
+ import { gt as loadSymiPlugins, ht as createPluginLoaderLogger } from "./reply-B9o45s3E.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-Dgn_cL29.js";
@@ -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-amjzHiWZ.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BQiCOxB6.js";
12
- import { an as buildChannelSummary, bt as summarizeRestartSentinel, et as sha256HexPrefix, nn as formatUsageReportLines, on as buildChannelAccountSnapshot, sn as formatChannelAllowFrom, tn as loadProviderUsageSummary, wn as peekSystemEvents, yt as readRestartSentinel } from "./subagent-registry-CQ_bEF7T.js";
12
+ import { an as buildChannelSummary, bt as summarizeRestartSentinel, et as sha256HexPrefix, nn as formatUsageReportLines, on as buildChannelAccountSnapshot, sn as formatChannelAllowFrom, tn as loadProviderUsageSummary, wn as peekSystemEvents, yt as readRestartSentinel } from "./subagent-registry-BR2Qhqjf.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-DJAxaVI7.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-DKUpFt8z.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-DeTRr2Yi.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-UjXEBnzA.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,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 { Sr as peekSystemEvents, T as resolveSessionModelRef, U as readRestartSentinel, W as summarizeRestartSentinel, a as buildChannelSummary, bt as loadProviderUsageSummary, dr as lookupContextTokens, o as buildChannelAccountSnapshot, qt as sha256HexPrefix, s as formatChannelAllowFrom, v as classifySessionKey, xt as formatUsageReportLines, y as listAgentsForGateway } from "./reply-D3vL1h90.js";
3
+ import { Sr as peekSystemEvents, T as resolveSessionModelRef, U as readRestartSentinel, W as summarizeRestartSentinel, a as buildChannelSummary, bt as loadProviderUsageSummary, dr as lookupContextTokens, o as buildChannelAccountSnapshot, qt as sha256HexPrefix, s as formatChannelAllowFrom, v as classifySessionKey, xt as formatUsageReportLines, y as listAgentsForGateway } from "./reply-B9o45s3E.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-CiugrQda.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BqurBycG.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Q1RP1M2f.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";