@symerian/symi 2.7.4 → 2.7.6

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 (153) hide show
  1. package/dist/{agents-Z8ruJPz2.js → agents-vN5prTgJ.js} +4 -4
  2. package/dist/{agents.config-B9BZoM2m.js → agents.config-CNX3szM-.js} +1 -1
  3. package/dist/{agents.config-C951ocyh.js → agents.config-CPF1rNc6.js} +1 -1
  4. package/dist/{audio-preflight-COaFw917.js → audio-preflight-K-s65jbB.js} +4 -4
  5. package/dist/{auth-choice-D_VfXxhG.js → auth-choice-5Em94iVS.js} +1 -1
  6. package/dist/{auth-choice-BmYi6pBy.js → auth-choice-p5RC-lQV.js} +1 -1
  7. package/dist/{banner-Bucr6qZ5.js → banner-Lym3CMv8.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +6 -6
  10. package/dist/bundled/session-memory/handler.js +6 -6
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-z8-WeZyO.js → channel-options-BuKhvC1L.js} +1 -1
  13. package/dist/{channel-options-BMDryXHq.js → channel-options-hNgj1H9B.js} +1 -1
  14. package/dist/{channel-web-D_YxZAHT.js → channel-web-yFEUqLHE.js} +1 -1
  15. package/dist/{channels-cli-397NgC51.js → channels-cli-T_kW3lG4.js} +4 -4
  16. package/dist/{channels-cli-CV7_JUru.js → channels-cli-qRheq8Du.js} +4 -4
  17. package/dist/{chrome-CbA-qnhp.js → chrome-BYOhnxTr.js} +7 -7
  18. package/dist/{cli-Dq95udFO.js → cli-BCt6uJct.js} +1 -1
  19. package/dist/{cli-4XU7pNlM.js → cli-DjQJlH-S.js} +1 -1
  20. package/dist/{command-registry-yRiaU4-n.js → command-registry-oYm-oxIA.js} +9 -9
  21. package/dist/{completion-cli-DrQai9KM.js → completion-cli-BHAASnn7.js} +2 -2
  22. package/dist/{completion-cli-_aqxDQoz.js → completion-cli-DaW26e_r.js} +1 -1
  23. package/dist/{config-cli-CMymzmrI.js → config-cli-CHeP49gh.js} +1 -1
  24. package/dist/{config-cli-EdmbBExA.js → config-cli-DE0dPkwr.js} +1 -1
  25. package/dist/{configure-DRMAIBBf.js → configure-CksV_L1w.js} +3 -3
  26. package/dist/{configure-DkFujfiY.js → configure-fhmKpDk9.js} +3 -3
  27. package/dist/control-ui/css/style.css +0 -94
  28. package/dist/control-ui/index.html +1 -0
  29. package/dist/control-ui/js/history.js +33 -48
  30. package/dist/control-ui/js/models.js +1 -0
  31. package/dist/{deliver-C7NePF9Z.js → deliver-C1HRkzPJ.js} +1 -1
  32. package/dist/{doctor-completion-BbrsQOW-.js → doctor-completion-GPrwh8QP.js} +1 -1
  33. package/dist/{doctor-completion-Cx-AR_dB.js → doctor-completion-XpW5mN61.js} +1 -1
  34. package/dist/entry.js +1 -1
  35. package/dist/extensionAPI.js +1 -1
  36. package/dist/{gateway-cli-CaaX65eF.js → gateway-cli-CNln2fct.js} +9 -9
  37. package/dist/{gateway-cli-C7JTXqby.js → gateway-cli-om2uguIi.js} +9 -9
  38. package/dist/{glass-ui-ws-jAbqZVc9.js → glass-ui-ws-CCi1VjiP.js} +7 -7
  39. package/dist/{glass-ui-ws-BI81Lh6Z.js → glass-ui-ws-NMwMa3px.js} +7 -7
  40. package/dist/{health-B1nih5LD.js → health-Bg2DBcUP.js} +1 -1
  41. package/dist/{health-CsTxt66a.js → health-pUOQFZFa.js} +1 -1
  42. package/dist/{hooks-cli-BhxMFkKe.js → hooks-cli-D-x6V5v5.js} +2 -2
  43. package/dist/{hooks-cli-CIlvtt2M.js → hooks-cli-U7W3xDK1.js} +2 -2
  44. package/dist/{image-C3ugMkb5.js → image-CbyTdMd5.js} +1 -1
  45. package/dist/index.js +6 -6
  46. package/dist/llm-slug-generator.js +6 -6
  47. package/dist/{models-DhMe2rzL.js → models-B6SKDYS_.js} +2 -2
  48. package/dist/{models-cli-DKM5sCQM.js → models-cli-C5eOgOQy.js} +2 -2
  49. package/dist/{models-cli-Dewg24W2.js → models-cli-XspODna9.js} +3 -3
  50. package/dist/{onboard-CVfE-Bjj.js → onboard-BCkqj8ta.js} +2 -2
  51. package/dist/{onboard-C6XtdirM.js → onboard-Dm9MxfSI.js} +2 -2
  52. package/dist/{onboard-channels-ChxtmhFY.js → onboard-channels-Ai7QWSJP.js} +1 -1
  53. package/dist/{onboard-channels-8ynJSZL6.js → onboard-channels-TWMPiKZ-.js} +1 -1
  54. package/dist/{onboarding-Dg6nx_ph.js → onboarding-CDhc6Zmz.js} +3 -3
  55. package/dist/{onboarding-fN3GGyiv.js → onboarding-DN7tXzCm.js} +3 -3
  56. package/dist/{onboarding.finalize--MZAe4B0.js → onboarding.finalize-PosKt4ba.js} +6 -6
  57. package/dist/{onboarding.finalize-CBE2mBQQ.js → onboarding.finalize-_qpqxoJ4.js} +5 -5
  58. package/dist/{pi-embedded-BzS693I1.js → pi-embedded-C8fvjnV5.js} +7 -3
  59. package/dist/{pi-embedded-helpers-BgRcgoC9.js → pi-embedded-helpers-GaCyI2oH.js} +4 -4
  60. package/dist/{plugin-registry-SUa2FFIj.js → plugin-registry-9VvP1Tn0.js} +1 -1
  61. package/dist/{plugin-registry-Bzz7mUyl.js → plugin-registry-BXmgwF7Q.js} +1 -1
  62. package/dist/plugin-sdk/{channel-web-DRabhx1e.js → channel-web-BepK3pwm.js} +1 -1
  63. package/dist/plugin-sdk/index.js +2 -2
  64. package/dist/plugin-sdk/{reply-Cw3shPk2.js → reply-B99hcAXo.js} +7 -3
  65. package/dist/plugin-sdk/{web-CH43nBP0.js → web-Dfwz3kul.js} +2 -2
  66. package/dist/{plugins-cli-DwtoU3xk.js → plugins-cli-4Ldqe9qU.js} +2 -2
  67. package/dist/{plugins-cli-qG50__1A.js → plugins-cli-DaZAekE1.js} +2 -2
  68. package/dist/{program-BDspObZY.js → program-CY21EZse.js} +7 -7
  69. package/dist/{program-context-BqUFQnhR.js → program-context-C2Md11tv.js} +17 -17
  70. package/dist/{prompt-select-styled-C7DydfxH.js → prompt-select-styled-CX5iikGF.js} +4 -4
  71. package/dist/{prompt-select-styled-CRUuzDrg.js → prompt-select-styled-CsHoph_Y.js} +4 -4
  72. package/dist/{provider-auth-helpers-CEYCb2mJ.js → provider-auth-helpers-Cb38dcne.js} +1 -1
  73. package/dist/{provider-auth-helpers-D60nbSLq.js → provider-auth-helpers-NCuGLzG3.js} +1 -1
  74. package/dist/{push-apns-CoG1P_P0.js → push-apns-DhvKRjTt.js} +1 -1
  75. package/dist/{push-apns-B5txhDVi.js → push-apns-OwzvuC6m.js} +1 -1
  76. package/dist/{pw-ai--LDjnyuN.js → pw-ai-pQoxTh-a.js} +1 -1
  77. package/dist/{register.agent-CopGIf9e.js → register.agent-B-gP3aZT.js} +5 -5
  78. package/dist/{register.agent-BY_Df_Me.js → register.agent-BdkTU0dy.js} +6 -6
  79. package/dist/{register.configure-CoYQhQBT.js → register.configure-CAY2kDIk.js} +6 -6
  80. package/dist/{register.configure-Bu_XKu7Z.js → register.configure-DvRRtnOF.js} +6 -6
  81. package/dist/{register.maintenance-DhnICgeT.js → register.maintenance-KFHEb5mH.js} +8 -8
  82. package/dist/{register.maintenance-4Q3E_gqv.js → register.maintenance-Lq1s-Rgh.js} +7 -7
  83. package/dist/{register.message-DZCCEK01.js → register.message-DGYZrtvo.js} +2 -2
  84. package/dist/{register.message-dd1xYBZT.js → register.message-kzmGic77.js} +2 -2
  85. package/dist/{register.onboard-Bfz-EJGb.js → register.onboard-BBGVu_uL.js} +4 -4
  86. package/dist/{register.onboard-e8L_UxR4.js → register.onboard-C2Rz46GT.js} +4 -4
  87. package/dist/{register.setup-C5CZKKAB.js → register.setup-C22uGnyD.js} +4 -4
  88. package/dist/{register.setup-DuU3Ywi-.js → register.setup-FtmPlDGT.js} +4 -4
  89. package/dist/{register.status-health-sessions-Dvj4mlom.js → register.status-health-sessions-CGOGymRI.js} +3 -3
  90. package/dist/{register.status-health-sessions-jeiqtgl7.js → register.status-health-sessions-iAKMbExG.js} +3 -3
  91. package/dist/{register.subclis-DD6G0dov.js → register.subclis-DLJWeena.js} +9 -9
  92. package/dist/{reply-XaXqDK9F.js → reply-brj51nHu.js} +7 -3
  93. package/dist/{run-main-BrUOBCsG.js → run-main-ChyAx3oY.js} +14 -14
  94. package/dist/{runner-cJ3m-bxK.js → runner-B0AbN8wV.js} +1 -1
  95. package/dist/{server-methods-0ksPFnev.js → server-methods-C8EW5RWk.js} +7 -7
  96. package/dist/{server-methods-Bu1RjLe6.js → server-methods-Dg1CpVjT.js} +7 -7
  97. package/dist/{server-node-events-DZAN3hWE.js → server-node-events-55CR5ocL.js} +2 -2
  98. package/dist/{server-node-events-DCbzFyQF.js → server-node-events-CRq8LYPM.js} +2 -2
  99. package/dist/{status-DOTlXdcN.js → status-3nJ92ayF.js} +2 -2
  100. package/dist/{status-qkmUAeWo.js → status-Bp43M_fl.js} +2 -2
  101. package/dist/{status-IWqSLXLR.js → status-DitZmGg2.js} +1 -1
  102. package/dist/{status-CiHkFbIh.js → status-SRfvjbzW.js} +1 -1
  103. package/dist/{subagent-registry-DCoU9xIE.js → subagent-registry-BHR9PLqD.js} +7 -3
  104. package/dist/{unified-runner-CApgXtVC.js → unified-runner-D560EWb3.js} +21 -17
  105. package/dist/{update-cli-Dxb3pUyu.js → update-cli-DQyEkqwn.js} +8 -8
  106. package/dist/{update-cli-D5_jTEJv.js → update-cli-ryqd_Q0J.js} +7 -7
  107. package/dist/{update-runner-BhVsdpxm.js → update-runner-BEZOFJjO.js} +1 -1
  108. package/dist/{update-runner-FhW6n-Nv.js → update-runner-DfchwsbI.js} +1 -1
  109. package/dist/{web-Db_-ahjX.js → web-B82phjas.js} +1 -1
  110. package/dist/{web-ConlA_Ch.js → web-CGd3aU8t.js} +1 -1
  111. package/dist/{web-CthDLVSz.js → web-DHfkLbcW.js} +6 -6
  112. package/dist/{web-Dpb_tv_j.js → web-Dg6efnmV.js} +2 -2
  113. package/extensions/bluebubbles/package.json +1 -1
  114. package/extensions/copilot-proxy/package.json +1 -1
  115. package/extensions/diagnostics-otel/package.json +1 -1
  116. package/extensions/discord/package.json +1 -1
  117. package/extensions/feishu/package.json +1 -1
  118. package/extensions/google-antigravity-auth/package.json +1 -1
  119. package/extensions/google-gemini-cli-auth/package.json +1 -1
  120. package/extensions/googlechat/package.json +1 -1
  121. package/extensions/imessage/package.json +1 -1
  122. package/extensions/irc/package.json +1 -1
  123. package/extensions/learning-loop/package.json +1 -1
  124. package/extensions/line/package.json +1 -1
  125. package/extensions/llm-task/package.json +1 -1
  126. package/extensions/matrix/CHANGELOG.md +12 -0
  127. package/extensions/matrix/package.json +1 -1
  128. package/extensions/mattermost/package.json +1 -1
  129. package/extensions/memory-core/package.json +1 -1
  130. package/extensions/memory-lancedb/package.json +1 -1
  131. package/extensions/minimax-portal-auth/package.json +1 -1
  132. package/extensions/msteams/CHANGELOG.md +12 -0
  133. package/extensions/msteams/package.json +1 -1
  134. package/extensions/nextcloud-talk/package.json +1 -1
  135. package/extensions/nostr/CHANGELOG.md +12 -0
  136. package/extensions/nostr/package.json +1 -1
  137. package/extensions/open-prose/package.json +1 -1
  138. package/extensions/outlook/package.json +1 -1
  139. package/extensions/pipeline/package.json +1 -1
  140. package/extensions/signal/package.json +1 -1
  141. package/extensions/slack/package.json +1 -1
  142. package/extensions/telegram/package.json +1 -1
  143. package/extensions/tlon/package.json +1 -1
  144. package/extensions/twitch/CHANGELOG.md +12 -0
  145. package/extensions/twitch/package.json +1 -1
  146. package/extensions/voice-call/CHANGELOG.md +12 -0
  147. package/extensions/voice-call/package.json +1 -1
  148. package/extensions/whatsapp/package.json +1 -1
  149. package/extensions/zalo/CHANGELOG.md +12 -0
  150. package/extensions/zalo/package.json +1 -1
  151. package/extensions/zalouser/CHANGELOG.md +12 -0
  152. package/extensions/zalouser/package.json +1 -1
  153. package/package.json +1 -1
@@ -5489,97 +5489,3 @@ body {
5489
5489
  }
5490
5490
  }
5491
5491
 
5492
- /* Informational footer for the CURRENT row (replaces action buttons). */
5493
- .history-session-current-note {
5494
- margin-top: 8px;
5495
- padding: 6px 10px;
5496
- font-family: var(--font-mono);
5497
- font-size: 10px;
5498
- letter-spacing: 0.05em;
5499
- color: rgba(16, 185, 129, 0.75);
5500
- background: rgba(16, 185, 129, 0.05);
5501
- border: 1px dashed rgba(16, 185, 129, 0.2);
5502
- border-radius: 4px;
5503
- text-align: center;
5504
- }
5505
-
5506
- /* "↺ Return to previous session" banner — top of drawer, one-click undo
5507
- of the last Load action when a recent .reset.* archive exists. */
5508
- .history-return-banner {
5509
- display: flex;
5510
- align-items: center;
5511
- justify-content: space-between;
5512
- gap: 12px;
5513
- margin: 10px 12px;
5514
- padding: 12px 14px;
5515
- background: linear-gradient(
5516
- 135deg,
5517
- rgba(0, 212, 255, 0.08) 0%,
5518
- rgba(139, 92, 246, 0.08) 100%
5519
- );
5520
- border: 1px solid rgba(0, 212, 255, 0.25);
5521
- border-radius: 8px;
5522
- }
5523
-
5524
- .history-return-label {
5525
- display: flex;
5526
- align-items: center;
5527
- gap: 10px;
5528
- flex: 1;
5529
- min-width: 0;
5530
- }
5531
-
5532
- .history-return-arrow {
5533
- font-size: 20px;
5534
- color: var(--accent-cyan);
5535
- line-height: 1;
5536
- }
5537
-
5538
- .history-return-text {
5539
- flex: 1;
5540
- min-width: 0;
5541
- }
5542
-
5543
- .history-return-title {
5544
- font-family: var(--font-mono);
5545
- font-size: 11px;
5546
- font-weight: 700;
5547
- letter-spacing: 0.08em;
5548
- color: rgba(255, 255, 255, 0.95);
5549
- text-transform: uppercase;
5550
- }
5551
-
5552
- .history-return-preview {
5553
- font-size: 11px;
5554
- color: rgba(255, 255, 255, 0.5);
5555
- margin-top: 2px;
5556
- white-space: nowrap;
5557
- overflow: hidden;
5558
- text-overflow: ellipsis;
5559
- }
5560
-
5561
- .history-return-btn {
5562
- padding: 6px 14px;
5563
- height: 30px;
5564
- background: rgba(0, 212, 255, 0.15);
5565
- border: 1px solid rgba(0, 212, 255, 0.35);
5566
- border-radius: 6px;
5567
- color: rgba(0, 212, 255, 1);
5568
- font-family: var(--font-mono);
5569
- font-size: 10px;
5570
- font-weight: 700;
5571
- letter-spacing: 0.08em;
5572
- cursor: pointer;
5573
- transition: all 0.15s;
5574
- flex-shrink: 0;
5575
- }
5576
-
5577
- .history-return-btn:hover {
5578
- background: rgba(0, 212, 255, 0.25);
5579
- border-color: rgba(0, 212, 255, 0.55);
5580
- }
5581
-
5582
- .history-return-btn:disabled {
5583
- opacity: 0.6;
5584
- cursor: wait;
5585
- }
@@ -270,6 +270,7 @@
270
270
  <option value="spider-qwen36">Qwen 3.6 35B</option>
271
271
  </select>
272
272
  <button class="model-toggle-btn" data-model="redsand">CoreWeave</button>
273
+ <button class="model-toggle-btn" data-model="coreweave2">Coreweave2</button>
273
274
  <button class="model-toggle-btn" data-model="api">API</button>
274
275
  </div>
275
276
  <div class="model-status" id="model-status">loading…</div>
@@ -75,25 +75,21 @@
75
75
  const favourites = sessions.filter((s) => s.kind !== "current" && s.favorited);
76
76
  const recent = sessions.filter((s) => s.kind !== "current" && !s.favorited);
77
77
 
78
- // "Return to previous session" candidate: the newest .reset.* archive
79
- // with real content, archived within the last 24h. Surfaces a
80
- // one-click undo for the most common "I just loaded a past session
81
- // and want to go back" flow.
78
+ // Newest `.reset.*` archive with content — this becomes the target of
79
+ // the Load Session button on the CURRENT row, giving the user a
80
+ // one-click path back to the session they just left.
82
81
  const returnCandidate = findReturnCandidate(sessions);
83
82
 
84
83
  drawerBody.innerHTML = "";
85
84
 
86
- if (returnCandidate) {
87
- drawerBody.appendChild(renderReturnBanner(returnCandidate));
88
- }
89
85
  if (current.length > 0) {
90
- drawerBody.appendChild(renderSection("CURRENT", current));
86
+ drawerBody.appendChild(renderSection("CURRENT", current, returnCandidate));
91
87
  }
92
88
  if (favourites.length > 0) {
93
- drawerBody.appendChild(renderSection("★ FAVOURITES", favourites));
89
+ drawerBody.appendChild(renderSection("★ FAVOURITES", favourites, null));
94
90
  }
95
91
  if (recent.length > 0) {
96
- drawerBody.appendChild(renderSection("RECENT", recent));
92
+ drawerBody.appendChild(renderSection("RECENT", recent, null));
97
93
  }
98
94
  }
99
95
 
@@ -127,33 +123,7 @@
127
123
  return candidates[0];
128
124
  }
129
125
 
130
- function renderReturnBanner(row) {
131
- const banner = document.createElement("div");
132
- banner.className = "history-return-banner";
133
- const when = formatTimestamp(row.archivedAt ?? row.lastActivity);
134
- const preview = row.preview
135
- ? escHtml(row.preview).slice(0, 60) + (row.preview.length > 60 ? "…" : "")
136
- : "(no messages)";
137
- banner.innerHTML = `
138
- <div class="history-return-label">
139
- <span class="history-return-arrow">↺</span>
140
- <div class="history-return-text">
141
- <div class="history-return-title">Return to previous session</div>
142
- <div class="history-return-preview">${preview} · ${escHtml(when)}</div>
143
- </div>
144
- </div>
145
- <button class="history-return-btn" type="button">Load</button>
146
- `;
147
- const btn = banner.querySelector(".history-return-btn");
148
- btn.addEventListener("click", async () => {
149
- btn.disabled = true;
150
- btn.textContent = "Loading…";
151
- await loadRow(row);
152
- });
153
- return banner;
154
- }
155
-
156
- function renderSection(title, rows) {
126
+ function renderSection(title, rows, returnCandidate) {
157
127
  const section = document.createElement("section");
158
128
  section.className = "history-section";
159
129
  const heading = document.createElement("div");
@@ -161,12 +131,15 @@
161
131
  heading.textContent = title;
162
132
  section.appendChild(heading);
163
133
  for (const row of rows) {
164
- section.appendChild(renderRow(row));
134
+ // Pass the return candidate through only for the CURRENT row — it
135
+ // drives the row's Load Session button (which returns the user to
136
+ // their previous session). Other rows use their own row data.
137
+ section.appendChild(renderRow(row, row.kind === "current" ? returnCandidate : null));
165
138
  }
166
139
  return section;
167
140
  }
168
141
 
169
- function renderRow(row) {
142
+ function renderRow(row, returnCandidate) {
170
143
  const item = document.createElement("div");
171
144
  item.className = "history-session-item history-session-" + row.kind;
172
145
 
@@ -176,14 +149,21 @@
176
149
  ? escHtml(row.preview) + (row.preview.length >= 80 ? "…" : "")
177
150
  : '<em style="opacity:0.5">No messages</em>';
178
151
 
179
- // Current-session footer is informational no buttons needed.
180
- const footerHtml =
181
- row.kind === "current"
182
- ? `<div class="history-session-current-note">◉ You're chatting in this session right now</div>`
183
- : `<footer class="history-session-actions">
184
- ${row.canLoad ? `<button class="history-load-btn">Load Session</button>` : ""}
185
- ${row.canDelete ? `<button class="history-delete-btn">Delete</button>` : ""}
186
- </footer>`;
152
+ // CURRENT row's Load Session button targets the most-recent .reset.*
153
+ // archive (returnCandidate). Non-current rows use their own file.
154
+ let footerHtml;
155
+ if (row.kind === "current") {
156
+ footerHtml = returnCandidate
157
+ ? `<footer class="history-session-actions">
158
+ <button class="history-load-btn" data-return="1">Load Session</button>
159
+ </footer>`
160
+ : "";
161
+ } else {
162
+ footerHtml = `<footer class="history-session-actions">
163
+ ${row.canLoad ? `<button class="history-load-btn">Load Session</button>` : ""}
164
+ ${row.canDelete ? `<button class="history-delete-btn">Delete</button>` : ""}
165
+ </footer>`;
166
+ }
187
167
 
188
168
  item.innerHTML = `
189
169
  <header class="history-session-header">
@@ -226,7 +206,12 @@
226
206
  const loadBtn = item.querySelector(".history-load-btn");
227
207
  loadBtn?.addEventListener("click", async (e) => {
228
208
  e.stopPropagation();
229
- await loadRow(row);
209
+ // On the CURRENT row, Load Session loads the most-recent archive
210
+ // (returnCandidate). On PAST/ARCHIVED rows, it loads that row.
211
+ const target = loadBtn.getAttribute("data-return") === "1" ? returnCandidate : row;
212
+ if (target) {
213
+ await loadRow(target);
214
+ }
230
215
  });
231
216
 
232
217
  const deleteBtn = item.querySelector(".history-delete-btn");
@@ -7,6 +7,7 @@
7
7
  // Button keys → full model id
8
8
  const BUTTON_MODELS = {
9
9
  redsand: "qwen-cw/qwen35-35b-fp8",
10
+ coreweave2: "qwen-cw2/qwen36-35b-fp8",
10
11
  api: "anthropic/claude-sonnet-4-6",
11
12
  };
12
13
 
@@ -3,7 +3,7 @@ import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
3
3
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
4
  import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BgRcgoC9.js";
6
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-GaCyI2oH.js";
7
7
  import { d as getChannelDock } from "./thinking-BprCy23Z.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
9
9
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-W0JzCJJM.js";
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DQ9BvHF2.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-_aqxDQoz.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DaW26e_r.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DrQai9KM.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BHAASnn7.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-BrUOBCsG.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-ChyAx3oY.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -7,7 +7,7 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-BzS693I1.js";
10
+ import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-C8fvjnV5.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
@@ -22,7 +22,7 @@ import "./pairing-token-Byh6drgn.js";
22
22
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
23
23
  import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-DZ5Ayk-W.js";
24
24
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
25
- import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, Bt as buildSafeExternalPrompt, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as createDefaultDeps, F as buildHistoryContextFromEntries, Ft as buildDeliveryFromLegacyPayload, H as getTotalPendingReplies, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, J as runAgentTurn, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, Nn as normalizeMimeList, Nt as normalizeRequiredName, O as resolveAgentAvatar, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveModelProfile, Qt as setGatewaySigusr1RestartPolicy, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as createOutboundSendDeps, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, X as getActiveEmbeddedRunCount, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as readJsonBodyWithLimit, at as resolveAnnounceTargetFromKey, b as sleepWithAbort, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, f as getPluginToolMeta, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, g as handleSlackHttpRequest, gt as runWithModelFallback, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as applyToolPolicyPipeline, m as loadSymiPlugins, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, pr as waitForActiveTasks, q as resolveCronStyleNow, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, u as buildDefaultToolPolicyPipelineSteps, ur as getTotalQueueSize, v as requestBodyErrorToText, vt as consumeRestartSentinel, wr as registerAgentRunContext, x as agentCommand, xr as emitAgentEvent, y as computeBackoff, yr as stripHeartbeatToken } from "./subagent-registry-DCoU9xIE.js";
25
+ import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, Bt as buildSafeExternalPrompt, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as createDefaultDeps, F as buildHistoryContextFromEntries, Ft as buildDeliveryFromLegacyPayload, H as getTotalPendingReplies, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, J as runAgentTurn, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, Nn as normalizeMimeList, Nt as normalizeRequiredName, O as resolveAgentAvatar, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveModelProfile, Qt as setGatewaySigusr1RestartPolicy, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as createOutboundSendDeps, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, X as getActiveEmbeddedRunCount, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as readJsonBodyWithLimit, at as resolveAnnounceTargetFromKey, b as sleepWithAbort, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, f as getPluginToolMeta, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, g as handleSlackHttpRequest, gt as runWithModelFallback, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as applyToolPolicyPipeline, m as loadSymiPlugins, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, pr as waitForActiveTasks, q as resolveCronStyleNow, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, u as buildDefaultToolPolicyPipelineSteps, ur as getTotalQueueSize, v as requestBodyErrorToText, vt as consumeRestartSentinel, wr as registerAgentRunContext, x as agentCommand, xr as emitAgentEvent, y as computeBackoff, yr as stripHeartbeatToken } from "./subagent-registry-BHR9PLqD.js";
26
26
  import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, T as evaluateSessionFreshness, W as deliveryContextFromSession, d as updateSessionStore, n as parseSessionThreadInfo, o as loadSessionStore } from "./sessions-Cfa6JEB3.js";
27
27
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
28
28
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -131,20 +131,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
131
131
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BtG9rny3.js";
132
132
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-xSagQWH8.js";
133
133
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CA_XIzr_.js";
134
- import { i as pickGatewaySelfPresence } from "./status-qkmUAeWo.js";
135
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-CsTxt66a.js";
134
+ import { i as pickGatewaySelfPresence } from "./status-Bp43M_fl.js";
135
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-pUOQFZFa.js";
136
136
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
137
137
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
138
- import { t as runOnboardingWizard } from "./onboarding-fN3GGyiv.js";
139
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-0ksPFnev.js";
140
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-B5txhDVi.js";
138
+ import { t as runOnboardingWizard } from "./onboarding-DN7tXzCm.js";
139
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-C8EW5RWk.js";
140
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-OwzvuC6m.js";
141
141
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CzWeiE-Y.js";
142
- import "./agents.config-C951ocyh.js";
142
+ import "./agents.config-CPF1rNc6.js";
143
143
  import "./dm-policy-shared-DJ-61hCT.js";
144
144
  import "./node-service-fcZExd22.js";
145
145
  import "./status.update-C2GN8s9C.js";
146
146
  import "./skills-install-1ZdwGTnh.js";
147
- import "./update-runner-BhVsdpxm.js";
147
+ import "./update-runner-BEZOFJjO.js";
148
148
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
149
149
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
150
150
  import { n as forceFreePortAndWait } from "./ports-Dn122MUd.js";
@@ -11953,7 +11953,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11953
11953
  });
11954
11954
  let glassUiBridgeCleanup = null;
11955
11955
  if (!minimalTestGateway) {
11956
- const { createGlassUiBridge } = await import("./glass-ui-ws-jAbqZVc9.js");
11956
+ const { createGlassUiBridge } = await import("./glass-ui-ws-CCi1VjiP.js");
11957
11957
  glassUiBridgeCleanup = createGlassUiBridge({
11958
11958
  wss: glassUiWss,
11959
11959
  context: gatewayRequestContext,
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, _ as loadCombinedSessionStoreForGateway, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, g as listSessionsFromStore, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runAgentTurn } from "./reply-XaXqDK9F.js";
4
+ import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, _ as loadCombinedSessionStoreForGateway, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, g as listSessionsFromStore, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runAgentTurn } from "./reply-brj51nHu.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -136,20 +136,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
136
136
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DnmJ0ABB.js";
137
137
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-BgdM9XZl.js";
138
138
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-DUQ6tE92.js";
139
- import { r as pickGatewaySelfPresence } from "./status-DOTlXdcN.js";
140
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-B1nih5LD.js";
139
+ import { r as pickGatewaySelfPresence } from "./status-3nJ92ayF.js";
140
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-Bg2DBcUP.js";
141
141
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B7moDVHX.js";
142
142
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
143
- import { t as runOnboardingWizard } from "./onboarding-Dg6nx_ph.js";
144
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-Bu1RjLe6.js";
145
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CoG1P_P0.js";
143
+ import { t as runOnboardingWizard } from "./onboarding-CDhc6Zmz.js";
144
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-Dg1CpVjT.js";
145
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DhvKRjTt.js";
146
146
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Dq6vwkWW.js";
147
- import "./agents.config-B9BZoM2m.js";
147
+ import "./agents.config-CNX3szM-.js";
148
148
  import "./dm-policy-shared-DlDAGtZL.js";
149
149
  import "./node-service-CD47Qpf1.js";
150
150
  import "./status.update-CG0ciGaf.js";
151
151
  import "./skills-install-CWVdJkLn.js";
152
- import "./update-runner-FhW6n-Nv.js";
152
+ import "./update-runner-DfchwsbI.js";
153
153
  import { t as resolveAgentSessionDirs } from "./session-dirs-Dgz7kkUM.js";
154
154
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B4H-2N8y.js";
155
155
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -11957,7 +11957,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11957
11957
  });
11958
11958
  let glassUiBridgeCleanup = null;
11959
11959
  if (!minimalTestGateway) {
11960
- const { createGlassUiBridge } = await import("./glass-ui-ws-BI81Lh6Z.js");
11960
+ const { createGlassUiBridge } = await import("./glass-ui-ws-NMwMa3px.js");
11961
11961
  glassUiBridgeCleanup = createGlassUiBridge({
11962
11962
  wss: glassUiWss,
11963
11963
  context: gatewayRequestContext,
@@ -14,7 +14,7 @@ import "./client-qUlxXXVJ.js";
14
14
  import "./call-DeCQ2DhS.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { Q as resolveModelProfile } from "./subagent-registry-DCoU9xIE.js";
17
+ import { Q as resolveModelProfile } from "./subagent-registry-BHR9PLqD.js";
18
18
  import "./sessions-Cfa6JEB3.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -109,18 +109,18 @@ import "./service-Cm9j9WzQ.js";
109
109
  import "./diagnostics-CS1ov_hH.js";
110
110
  import "./table-D01d2GuY.js";
111
111
  import "./audit-xSagQWH8.js";
112
- import "./status-qkmUAeWo.js";
113
- import "./health-CsTxt66a.js";
112
+ import "./status-Bp43M_fl.js";
113
+ import "./health-pUOQFZFa.js";
114
114
  import "./control-ui-assets-BseSWee1.js";
115
115
  import "./update-check-ZdimP1aU.js";
116
- import { n as handleGatewayRequest } from "./server-methods-0ksPFnev.js";
117
- import "./push-apns-B5txhDVi.js";
118
- import "./agents.config-C951ocyh.js";
116
+ import { n as handleGatewayRequest } from "./server-methods-C8EW5RWk.js";
117
+ import "./push-apns-OwzvuC6m.js";
118
+ import "./agents.config-CPF1rNc6.js";
119
119
  import "./dm-policy-shared-DJ-61hCT.js";
120
120
  import "./node-service-fcZExd22.js";
121
121
  import "./status.update-C2GN8s9C.js";
122
122
  import "./skills-install-1ZdwGTnh.js";
123
- import "./update-runner-BhVsdpxm.js";
123
+ import "./update-runner-BEZOFJjO.js";
124
124
 
125
125
  //#region src/gateway/glass-ui-ws.ts
126
126
  const SESSION_KEY = "agent:main:main";
@@ -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 { Ut as resolveModelProfile } from "./reply-XaXqDK9F.js";
4
+ import { Ut as resolveModelProfile } from "./reply-brj51nHu.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -114,18 +114,18 @@ import "./service-osK70kTZ.js";
114
114
  import "./diagnostics-BRwihzJG.js";
115
115
  import "./table-BKlH0YlA.js";
116
116
  import "./audit-BgdM9XZl.js";
117
- import "./status-DOTlXdcN.js";
118
- import "./health-B1nih5LD.js";
117
+ import "./status-3nJ92ayF.js";
118
+ import "./health-Bg2DBcUP.js";
119
119
  import "./control-ui-assets-B7moDVHX.js";
120
120
  import "./update-check-7EzEjSzb.js";
121
- import { n as handleGatewayRequest } from "./server-methods-Bu1RjLe6.js";
122
- import "./push-apns-CoG1P_P0.js";
123
- import "./agents.config-B9BZoM2m.js";
121
+ import { n as handleGatewayRequest } from "./server-methods-Dg1CpVjT.js";
122
+ import "./push-apns-DhvKRjTt.js";
123
+ import "./agents.config-CNX3szM-.js";
124
124
  import "./dm-policy-shared-DlDAGtZL.js";
125
125
  import "./node-service-CD47Qpf1.js";
126
126
  import "./status.update-CG0ciGaf.js";
127
127
  import "./skills-install-CWVdJkLn.js";
128
- import "./update-runner-FhW6n-Nv.js";
128
+ import "./update-runner-DfchwsbI.js";
129
129
 
130
130
  //#region src/gateway/glass-ui-ws.ts
131
131
  const SESSION_KEY = "agent:main:main";
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-B-0b9bGM.js";
2
- import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-XaXqDK9F.js";
2
+ import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-brj51nHu.js";
3
3
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D-jRCY0d.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-BNTB6qj8.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DeCQ2DhS.js";
7
- import { Jn as resolveUserTimezone, K as appendCronStyleCurrentTimeLine, Tn as peekSystemEventEntries, W as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-DCoU9xIE.js";
7
+ import { Jn as resolveUserTimezone, K as appendCronStyleCurrentTimeLine, Tn as peekSystemEventEntries, W as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-BHR9PLqD.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-Cfa6JEB3.js";
9
9
  import { r as SYMIPULSE_TOKEN } from "./tokens-Csntmwwn.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-XaXqDK9F.js";
4
+ import "./reply-brj51nHu.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -109,7 +109,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
109
109
  import { t as renderTable } from "./table-BKlH0YlA.js";
110
110
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B4H-2N8y.js";
111
111
  import { t as buildWorkspaceHookStatus } from "./hooks-status-oUebZVnL.js";
112
- import { t as buildPluginStatusReport } from "./status-CiHkFbIh.js";
112
+ import { t as buildPluginStatusReport } from "./status-SRfvjbzW.js";
113
113
  import fs from "node:fs";
114
114
  import path from "node:path";
115
115
  import fs$1 from "node:fs/promises";
@@ -16,7 +16,7 @@ import "./client-qUlxXXVJ.js";
16
16
  import "./call-DeCQ2DhS.js";
17
17
  import "./message-channel-C9dERklz.js";
18
18
  import "./pairing-token-Byh6drgn.js";
19
- import "./subagent-registry-DCoU9xIE.js";
19
+ import "./subagent-registry-BHR9PLqD.js";
20
20
  import "./sessions-Cfa6JEB3.js";
21
21
  import "./tokens-Csntmwwn.js";
22
22
  import "./plugins-CwSlLxM8.js";
@@ -105,7 +105,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
105
105
  import { t as renderTable } from "./table-D01d2GuY.js";
106
106
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
107
107
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEoLdlyb.js";
108
- import { t as buildPluginStatusReport } from "./status-IWqSLXLR.js";
108
+ import { t as buildPluginStatusReport } from "./status-DitZmGg2.js";
109
109
  import path from "node:path";
110
110
  import fs from "node:fs";
111
111
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { R as shortenHomeInString, k as isRecord } from "./registry-DYq1AYOv.js";
3
3
  import { L as getApiKeyForModel, M as resolveImplicitBedrockProvider, N as resolveImplicitCopilotProvider, P as resolveImplicitProviders, W as normalizeSecretInput, et as resolveSymiAgentDir, j as normalizeProviders, z as requireApiKey } from "./auth-profiles-q3HjbboY.js";
4
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BgRcgoC9.js";
4
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-GaCyI2oH.js";
5
5
  import { n as loadConfig } from "./config-B6OxYMgn.js";
6
6
  import { n as redactToolDetail } from "./redact-BDMXB06K.js";
7
7
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-Cqn-zk3M.js";
3
3
  import { B as theme, P as setVerbose, T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel, z as isRich } from "./utils-B-0b9bGM.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-XaXqDK9F.js";
5
+ import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-brj51nHu.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-D9vIQve0.js";
8
8
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -104,7 +104,7 @@ import "./pi-tools.policy-DRWb_Cax.js";
104
104
  import "./control-service-BYKXzY4f.js";
105
105
  import "./stagger-CvFURHzt.js";
106
106
  import "./channel-selection-V2xDgw16.js";
107
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-D_YxZAHT.js";
107
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-yFEUqLHE.js";
108
108
  import "./outbound-wnv03tb3.js";
109
109
  import "./session-DsJGtM7g.js";
110
110
  import "./login-DODfJ3Dn.js";
@@ -113,10 +113,10 @@ import { t as ensureSymiCliOnPath } from "./path-env-BaQ2E7uD.js";
113
113
  import { t as assertSupportedRuntime } from "./runtime-guard-Dik20CVM.js";
114
114
  import "./ports-DtW62rqS.js";
115
115
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-B20UI_hB.js";
116
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BqUFQnhR.js";
116
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-C2Md11tv.js";
117
117
  import "./catalog-NQ4pj9RI.js";
118
- import "./plugin-registry-SUa2FFIj.js";
119
- import { n as resolveCliChannelOptions } from "./channel-options-z8-WeZyO.js";
118
+ import "./plugin-registry-9VvP1Tn0.js";
119
+ import { n as resolveCliChannelOptions } from "./channel-options-BuKhvC1L.js";
120
120
  import process$1 from "node:process";
121
121
  import { fileURLToPath } from "node:url";
122
122
  import { Command } from "commander";
@@ -516,7 +516,7 @@ function registerPreActionHooks(program, programVersion) {
516
516
  commandPath
517
517
  });
518
518
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
519
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-SUa2FFIj.js").then((n) => n.n);
519
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-9VvP1Tn0.js").then((n) => n.n);
520
520
  ensurePluginRegistryLoaded();
521
521
  }
522
522
  });