@symerian/symi 3.5.9 → 3.5.11

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 (93) hide show
  1. package/dist/{agent-7Xrh1XVG.js → agent-CSOQs4VQ.js} +2 -2
  2. package/dist/{audit-DlO49y-U.js → audit-BPhWpe_6.js} +5 -5
  3. package/dist/{auth-choice-BPN4vEBk.js → auth-choice-9XyVfAyH.js} +2 -2
  4. package/dist/{browser-cli-D_DjThgn.js → browser-cli-BxDx4t2-.js} +3 -3
  5. package/dist/build-info.json +3 -3
  6. package/dist/bundled/boot-md/handler.js +4 -4
  7. package/dist/bundled/session-memory/handler.js +4 -4
  8. package/dist/{call-C386w5E5.js → call-BC1HAVqW.js} +1 -1
  9. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  10. package/dist/{channel-options-VQMByP4c.js → channel-options-Cy9aQzx9.js} +1 -1
  11. package/dist/{channels-cli-BzwYp-BP.js → channels-cli-R0UMOKTA.js} +17 -17
  12. package/dist/{chrome-3jl2ulOE.js → chrome-CmQwGAuL.js} +4 -4
  13. package/dist/{chrome-suE09Iax.js → chrome-DJChpTwP.js} +7 -7
  14. package/dist/{chrome-OTJg3QKn.js → chrome-DNssqQJs.js} +4 -4
  15. package/dist/{cli-mZdo-h84.js → cli-BnLVnWOZ.js} +14 -14
  16. package/dist/{client-CJeYdM6G.js → client-BfnNfATE.js} +3 -3
  17. package/dist/{completion-cli-Dz6vTqBm.js → completion-cli-kGAGMr-I.js} +1 -1
  18. package/dist/{config-cli-BdPn_06D.js → config-cli-BAognmPE.js} +1 -1
  19. package/dist/{configure-CxjXughP.js → configure-CJp0NIbm.js} +6 -6
  20. package/dist/{control-service-CCto6i0v.js → control-service-DOGU9T2P.js} +3 -3
  21. package/dist/control-ui/index.html +95 -95
  22. package/dist/{cron-cli-CDUzTSlx.js → cron-cli-DoXlzwQ0.js} +3 -3
  23. package/dist/{daemon-cli-D93uCvD0.js → daemon-cli-CRGNFCN7.js} +2 -2
  24. package/dist/{deliver-BiWlR84Y.js → deliver-B04yNX82.js} +4 -4
  25. package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
  26. package/dist/{devices-cli-18molb2z.js → devices-cli-DAG-TaOo.js} +2 -2
  27. package/dist/{doctor-completion-C9sFv9qq.js → doctor-completion-CmKOsLDy.js} +1 -1
  28. package/dist/{exec-approvals-cli-De0WMHXi.js → exec-approvals-cli-BuHNELGd.js} +4 -4
  29. package/dist/extensionAPI.js +4 -4
  30. package/dist/{gateway-cli-D-Rztk2z.js → gateway-cli-zh8P3vbG.js} +25 -25
  31. package/dist/{gateway-rpc-Cwi5kJzl.js → gateway-rpc-st8ffJBC.js} +1 -1
  32. package/dist/{glass-ui-ws-gmSoTQpl.js → glass-ui-ws-QqYp-Uof.js} +21 -21
  33. package/dist/{health-ksdFZpDU.js → health-BIwN5H6b.js} +1 -1
  34. package/dist/{hooks-cli-B_eznWUl.js → hooks-cli-CJ0OoLFk.js} +15 -15
  35. package/dist/index.js +18 -18
  36. package/dist/llm-slug-generator.js +4 -4
  37. package/dist/{logs-cli-DVvGi5J7.js → logs-cli-D8A5dpnm.js} +3 -3
  38. package/dist/{manager-5k1CRLn-.js → manager-807ZlqEf.js} +1 -1
  39. package/dist/{manager-Ct4kRT7n.js → manager-BWWH1lYn.js} +1 -1
  40. package/dist/{manager-B4U7ahZq.js → manager-DjhxLEpd.js} +1 -1
  41. package/dist/{memory-DTDeG3u8.js → memory-B2hM774N.js} +2 -2
  42. package/dist/{memory-cli-Bv8Rcg5s.js → memory-cli-CPebu_bx.js} +2 -2
  43. package/dist/{models-cli-BXzUBQYo.js → models-cli-B_U9E8SV.js} +16 -16
  44. package/dist/{node-cli-CtliTCQh.js → node-cli-CFIBFPOd.js} +6 -6
  45. package/dist/{nodes-cli-C92vI9eX.js → nodes-cli-DlkO0Hyw.js} +3 -3
  46. package/dist/{onboard-DeJaaNHV.js → onboard-CWNtW-LS.js} +3 -3
  47. package/dist/{onboard-channels-3AkHwrP_.js → onboard-channels-DPzbq3iB.js} +1 -1
  48. package/dist/{onboard-helpers-mW55B30K.js → onboard-helpers-Bf1LB5fd.js} +1 -1
  49. package/dist/{onboard-remote-BxtpQ74l.js → onboard-remote-B6Ox0wMi.js} +1 -1
  50. package/dist/{onboard-skills-BaRS2GUY.js → onboard-skills-D-ppyTcQ.js} +1 -1
  51. package/dist/{onboarding-Bm0DgGhb.js → onboarding-Cw8abFVd.js} +7 -7
  52. package/dist/{onboarding.finalize-DQmEXf6p.js → onboarding.finalize-C50T8L4e.js} +13 -13
  53. package/dist/{onboarding.gateway-config-DNGUJthU.js → onboarding.gateway-config-DJ1YAlBD.js} +3 -3
  54. package/dist/{pi-embedded-BxKs-STI.js → pi-embedded-DP8324Ib.js} +10 -10
  55. package/dist/{pi-embedded-helpers-B0Vz7hRL.js → pi-embedded-helpers-CDzBxa-P.js} +1 -1
  56. package/dist/{pi-tools.policy-CYlUAnkU.js → pi-tools.policy-WaLKhqJQ.js} +1 -1
  57. package/dist/{plugin-registry-CP_RBN-f.js → plugin-registry-BFyeIJdT.js} +1 -1
  58. package/dist/{plugins-cli-tYEFfttj.js → plugins-cli-BTdd7aE9.js} +15 -15
  59. package/dist/{program-context-BiDn7yCz.js → program-context-CV_ibEw9.js} +30 -30
  60. package/dist/{prompt-select-styled-BhjycLZw.js → prompt-select-styled-G6u6Q8v9.js} +8 -8
  61. package/dist/{provider-auth-helpers-Dhd06_t2.js → provider-auth-helpers-DAtMFGrU.js} +1 -1
  62. package/dist/{push-apns-BZWInkPg.js → push-apns--j8PeFrK.js} +1 -1
  63. package/dist/{pw-ai-DY_6l11g.js → pw-ai-DLsdzdgc.js} +1 -1
  64. package/dist/{pw-ai-DMvtunBE.js → pw-ai-DQZa9DUQ.js} +1 -1
  65. package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
  66. package/dist/{register.agent-D2CwHq-q.js → register.agent-muhvyTMD.js} +19 -19
  67. package/dist/{register.configure-DxT5PQFo.js → register.configure-DUaVY9dt.js} +22 -22
  68. package/dist/{register.maintenance-6vebxogW.js → register.maintenance-BrNuk6hl.js} +20 -20
  69. package/dist/{register.message-DxqvQsSN.js → register.message-DZG9UElS.js} +15 -15
  70. package/dist/{register.onboard-CuHwcxsE.js → register.onboard-C-5RaI3-.js} +6 -6
  71. package/dist/{register.setup-b8h71HJ7.js → register.setup-D87mlpLA.js} +6 -6
  72. package/dist/{register.status-health-sessions-Sn1WS-fC.js → register.status-health-sessions-ZYT6lFhO.js} +13 -13
  73. package/dist/{routes-DmyY3P7a.js → routes-DIyAmLYR.js} +2 -2
  74. package/dist/{rpc-Batd5KYw.js → rpc-DZpJ-mGE.js} +1 -1
  75. package/dist/{sandbox-H5Lewbd2.js → sandbox-61-kshSF.js} +3 -3
  76. package/dist/{sandbox-cli-BUrDdb-H.js → sandbox-cli-D9v0jhBb.js} +4 -4
  77. package/dist/{security-cli-CTTidNLu.js → security-cli-CAdCbDUS.js} +8 -8
  78. package/dist/{server-context-DVX-C1f0.js → server-context-SbbjNkPL.js} +4 -4
  79. package/dist/{server-methods-DKW7md4I.js → server-methods-DMPwNvoz.js} +13 -13
  80. package/dist/{server-node-events-phrERc91.js → server-node-events-k7h7NWLL.js} +16 -16
  81. package/dist/{status-XrKWGanJ.js → status-BU-hn3iH.js} +1 -1
  82. package/dist/{status-B2VahFlJ.js → status-D3h1mSLx.js} +5 -5
  83. package/dist/{synthesis-BfiHweOO.js → synthesis-BH4onG1c.js} +4 -4
  84. package/dist/{synthesis-D9Lu46sl.js → synthesis-DFNyev83.js} +14 -14
  85. package/dist/{synthesis-CxR-cX-4.js → synthesis-qt5bxUcn.js} +4 -4
  86. package/dist/{system-cli-CPEHtbdA.js → system-cli-BCAd92UF.js} +3 -3
  87. package/dist/{tui-D4Al5sge.js → tui-ROL_b9BF.js} +3 -3
  88. package/dist/{tui-cli-Z50zaJvB.js → tui-cli-C6Q0KKvj.js} +8 -8
  89. package/dist/{unified-runner-DpZ49TWj.js → unified-runner-D9LZYzyF.js} +13 -13
  90. package/dist/{unified-runner-DaGiGHel.js → unified-runner-LBbNjudz.js} +10 -10
  91. package/dist/{update-cli-DP18R4I_.js → update-cli-Du-NLjgh.js} +21 -21
  92. package/dist/{with-timeout-GyVVFtnd.js → with-timeout-GbJ1Yzsh.js} +1 -1
  93. package/package.json +1 -1
@@ -97,6 +97,101 @@
97
97
  </div>
98
98
  </div>
99
99
 
100
+ <div class="glass-panel gateway-panel">
101
+ <div class="panel-label">SYMI GATEWAY</div>
102
+ <div class="net-row">
103
+ <div class="status-dot dot-green pulse"></div>
104
+ <span class="net-name">Gateway</span>
105
+ <span class="badge badge-green">ONLINE</span>
106
+ </div>
107
+ <div class="net-row">
108
+ <span class="net-name muted">Port</span>
109
+ <span class="net-ip">18789</span>
110
+ </div>
111
+ <div class="net-row">
112
+ <span class="net-name muted">Auth</span>
113
+ <span class="badge badge-blue">TOKEN</span>
114
+ </div>
115
+ <div class="net-row">
116
+ <span class="net-name muted">Browser CDP</span>
117
+ <span class="net-ip">18800</span>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="glass-panel" id="model-routing-panel">
122
+ <div class="panel-label">MODEL ROUTING</div>
123
+ <div class="model-toggle" id="model-toggle">
124
+ <select class="model-toggle-select" id="model-toggle-spider" data-model="spider">
125
+ <option value="" disabled selected>Spider ▾</option>
126
+ <option value="spider-gemma4">Gemma 4 31B Uncensored</option>
127
+ <option value="spider-qwen35">Qwen 3.5 35B</option>
128
+ <option value="spider-qwen35-uncen">Qwen 3.5 Uncensored</option>
129
+ <option value="spider-qwen36">Qwen 3.6 35B</option>
130
+ </select>
131
+ <select class="model-toggle-select" id="model-toggle-coreweave" data-model="coreweave">
132
+ <option value="" disabled selected>CoreWeave ▾</option>
133
+ <option value="coreweave1">CoreWeave 1 (Qwen 3.5 35B)</option>
134
+ <option value="coreweave2">CoreWeave 2 (Qwen 3.6 35B)</option>
135
+ <option value="coreweave3">CoreWeave 3 (Qwen 3.6 27B)</option>
136
+ </select>
137
+ <button class="model-toggle-btn" data-model="api">API</button>
138
+ </div>
139
+ <div class="model-status" id="model-status">loading…</div>
140
+ </div>
141
+
142
+ <!-- Connections Panel -->
143
+ <div class="glass-panel connections-panel" id="connections-panel">
144
+ <div class="panel-label">CONNECTIONS</div>
145
+ <button class="conn-btn" id="conn-slack" data-channel="slack">
146
+ <div class="conn-icon conn-icon-slack">
147
+ <svg viewBox="0 0 24 24" fill="currentColor">
148
+ <path
149
+ d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.124 2.521a2.528 2.528 0 0 1 2.52-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.52V8.834zm-1.271 0a2.528 2.528 0 0 1-2.521 2.521 2.528 2.528 0 0 1-2.521-2.521V2.522A2.528 2.528 0 0 1 15.166 0a2.528 2.528 0 0 1 2.521 2.522v6.312zm-2.521 10.124a2.528 2.528 0 0 1 2.521 2.52A2.528 2.528 0 0 1 15.166 24a2.528 2.528 0 0 1-2.521-2.522v-2.52h2.521zm0-1.271a2.528 2.528 0 0 1-2.521-2.521 2.528 2.528 0 0 1 2.521-2.521h6.312A2.528 2.528 0 0 1 24 15.166a2.528 2.528 0 0 1-2.522 2.521h-6.312z"
150
+ />
151
+ </svg>
152
+ </div>
153
+ <div class="conn-info">
154
+ <span class="conn-name">Slack</span>
155
+ <span class="conn-btn-status" id="conn-slack-status">Checking...</span>
156
+ </div>
157
+ <div class="conn-state" id="conn-slack-state"><div class="conn-dot"></div></div>
158
+ <span class="conn-notif" id="conn-slack-notif"></span>
159
+ </button>
160
+ <button class="conn-btn" id="conn-email" data-channel="email">
161
+ <div class="conn-icon conn-icon-email">
162
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
163
+ <rect x="2" y="4" width="20" height="16" rx="2" />
164
+ <path d="M22 6l-10 7L2 6" />
165
+ </svg>
166
+ </div>
167
+ <div class="conn-info">
168
+ <span class="conn-name">Email</span>
169
+ <span class="conn-btn-status" id="conn-email-status">Checking...</span>
170
+ </div>
171
+ <div class="conn-state" id="conn-email-state"><div class="conn-dot"></div></div>
172
+ <span class="conn-notif" id="conn-email-notif"></span>
173
+ </button>
174
+ <button class="conn-btn" id="conn-teams" data-channel="msteams">
175
+ <div class="conn-icon conn-icon-teams">
176
+ <svg viewBox="0 0 24 24" fill="currentColor">
177
+ <path
178
+ d="M19.19 8.77c-.73 0-1.39.29-1.88.76V8.5a2.5 2.5 0 0 0-2.5-2.5h-1.62c.18-.46.28-.96.28-1.48a4.04 4.04 0 0 0-4.04-4.04c-2.23 0-4.04 1.81-4.04 4.04 0 .52.1 1.02.28 1.48H4.5A2.5 2.5 0 0 0 2 8.5v9a2.5 2.5 0 0 0 2.5 2.5h9a2.5 2.5 0 0 0 2.5-2.5v-.97c.49.47 1.15.76 1.88.76a2.69 2.69 0 0 0 2.69-2.69v-3.14a2.69 2.69 0 0 0-2.69-2.69h.31zM9.43 2.98a2.04 2.04 0 1 1 0 4.08 2.04 2.04 0 0 1 0-4.08zm4.57 14.52a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v9zm5.88-4.17a.69.69 0 0 1-.69.69.69.69 0 0 1-.69-.69v-3.14c0-.38.31-.69.69-.69.38 0 .69.31.69.69v3.14z"
179
+ />
180
+ <circle cx="17.5" cy="5.5" r="2.5" />
181
+ </svg>
182
+ </div>
183
+ <div class="conn-info">
184
+ <span class="conn-name">Teams</span>
185
+ <span class="conn-btn-status" id="conn-teams-status">Checking...</span>
186
+ </div>
187
+ <div class="conn-state" id="conn-teams-state"><div class="conn-dot"></div></div>
188
+ <span class="conn-notif" id="conn-teams-notif"></span>
189
+ </button>
190
+ </div>
191
+ </aside>
192
+
193
+ <!-- Metrics — Right column -->
194
+ <aside class="metrics-col metrics-right">
100
195
  <!-- Subagents Panel -->
101
196
  <div class="glass-panel subagents-panel" id="subagents-panel">
102
197
  <div class="panel-label">
@@ -199,101 +294,6 @@
199
294
  </div>
200
295
  </div>
201
296
  </div>
202
- </aside>
203
-
204
- <!-- Metrics — Right column -->
205
- <aside class="metrics-col metrics-right">
206
- <!-- Connections Panel -->
207
- <div class="glass-panel connections-panel" id="connections-panel">
208
- <div class="panel-label">CONNECTIONS</div>
209
- <button class="conn-btn" id="conn-slack" data-channel="slack">
210
- <div class="conn-icon conn-icon-slack">
211
- <svg viewBox="0 0 24 24" fill="currentColor">
212
- <path
213
- d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.124 2.521a2.528 2.528 0 0 1 2.52-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.52V8.834zm-1.271 0a2.528 2.528 0 0 1-2.521 2.521 2.528 2.528 0 0 1-2.521-2.521V2.522A2.528 2.528 0 0 1 15.166 0a2.528 2.528 0 0 1 2.521 2.522v6.312zm-2.521 10.124a2.528 2.528 0 0 1 2.521 2.52A2.528 2.528 0 0 1 15.166 24a2.528 2.528 0 0 1-2.521-2.522v-2.52h2.521zm0-1.271a2.528 2.528 0 0 1-2.521-2.521 2.528 2.528 0 0 1 2.521-2.521h6.312A2.528 2.528 0 0 1 24 15.166a2.528 2.528 0 0 1-2.522 2.521h-6.312z"
214
- />
215
- </svg>
216
- </div>
217
- <div class="conn-info">
218
- <span class="conn-name">Slack</span>
219
- <span class="conn-btn-status" id="conn-slack-status">Checking...</span>
220
- </div>
221
- <div class="conn-state" id="conn-slack-state"><div class="conn-dot"></div></div>
222
- <span class="conn-notif" id="conn-slack-notif"></span>
223
- </button>
224
- <button class="conn-btn" id="conn-email" data-channel="email">
225
- <div class="conn-icon conn-icon-email">
226
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
227
- <rect x="2" y="4" width="20" height="16" rx="2" />
228
- <path d="M22 6l-10 7L2 6" />
229
- </svg>
230
- </div>
231
- <div class="conn-info">
232
- <span class="conn-name">Email</span>
233
- <span class="conn-btn-status" id="conn-email-status">Checking...</span>
234
- </div>
235
- <div class="conn-state" id="conn-email-state"><div class="conn-dot"></div></div>
236
- <span class="conn-notif" id="conn-email-notif"></span>
237
- </button>
238
- <button class="conn-btn" id="conn-teams" data-channel="msteams">
239
- <div class="conn-icon conn-icon-teams">
240
- <svg viewBox="0 0 24 24" fill="currentColor">
241
- <path
242
- d="M19.19 8.77c-.73 0-1.39.29-1.88.76V8.5a2.5 2.5 0 0 0-2.5-2.5h-1.62c.18-.46.28-.96.28-1.48a4.04 4.04 0 0 0-4.04-4.04c-2.23 0-4.04 1.81-4.04 4.04 0 .52.1 1.02.28 1.48H4.5A2.5 2.5 0 0 0 2 8.5v9a2.5 2.5 0 0 0 2.5 2.5h9a2.5 2.5 0 0 0 2.5-2.5v-.97c.49.47 1.15.76 1.88.76a2.69 2.69 0 0 0 2.69-2.69v-3.14a2.69 2.69 0 0 0-2.69-2.69h.31zM9.43 2.98a2.04 2.04 0 1 1 0 4.08 2.04 2.04 0 0 1 0-4.08zm4.57 14.52a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v9zm5.88-4.17a.69.69 0 0 1-.69.69.69.69 0 0 1-.69-.69v-3.14c0-.38.31-.69.69-.69.38 0 .69.31.69.69v3.14z"
243
- />
244
- <circle cx="17.5" cy="5.5" r="2.5" />
245
- </svg>
246
- </div>
247
- <div class="conn-info">
248
- <span class="conn-name">Teams</span>
249
- <span class="conn-btn-status" id="conn-teams-status">Checking...</span>
250
- </div>
251
- <div class="conn-state" id="conn-teams-state"><div class="conn-dot"></div></div>
252
- <span class="conn-notif" id="conn-teams-notif"></span>
253
- </button>
254
- </div>
255
-
256
- <div class="glass-panel gateway-panel">
257
- <div class="panel-label">SYMI GATEWAY</div>
258
- <div class="net-row">
259
- <div class="status-dot dot-green pulse"></div>
260
- <span class="net-name">Gateway</span>
261
- <span class="badge badge-green">ONLINE</span>
262
- </div>
263
- <div class="net-row">
264
- <span class="net-name muted">Port</span>
265
- <span class="net-ip">18789</span>
266
- </div>
267
- <div class="net-row">
268
- <span class="net-name muted">Auth</span>
269
- <span class="badge badge-blue">TOKEN</span>
270
- </div>
271
- <div class="net-row">
272
- <span class="net-name muted">Browser CDP</span>
273
- <span class="net-ip">18800</span>
274
- </div>
275
- </div>
276
-
277
- <div class="glass-panel" id="model-routing-panel">
278
- <div class="panel-label">MODEL ROUTING</div>
279
- <div class="model-toggle" id="model-toggle">
280
- <select class="model-toggle-select" id="model-toggle-spider" data-model="spider">
281
- <option value="" disabled selected>Spider ▾</option>
282
- <option value="spider-gemma4">Gemma 4 31B Uncensored</option>
283
- <option value="spider-qwen35">Qwen 3.5 35B</option>
284
- <option value="spider-qwen35-uncen">Qwen 3.5 Uncensored</option>
285
- <option value="spider-qwen36">Qwen 3.6 35B</option>
286
- </select>
287
- <select class="model-toggle-select" id="model-toggle-coreweave" data-model="coreweave">
288
- <option value="" disabled selected>CoreWeave ▾</option>
289
- <option value="coreweave1">CoreWeave 1 (Qwen 3.5 35B)</option>
290
- <option value="coreweave2">CoreWeave 2 (Qwen 3.6 35B)</option>
291
- <option value="coreweave3">CoreWeave 3 (Qwen 3.6 27B)</option>
292
- </select>
293
- <button class="model-toggle-btn" data-model="api">API</button>
294
- </div>
295
- <div class="model-status" id="model-status">loading…</div>
296
- </div>
297
297
 
298
298
  <!-- Scheduling Panel -->
299
299
  <div class="glass-panel scheduling-panel" id="scheduling-panel">
@@ -13,15 +13,15 @@ import "./shell-env-Dc3iU7HK.js";
13
13
  import "./manifest-registry-D1MLZEjS.js";
14
14
  import "./message-channel-DgjXWzf-.js";
15
15
  import { n as listChannelPlugins } from "./plugins-CF5skkHh.js";
16
- import "./client-CJeYdM6G.js";
17
- import "./call-C386w5E5.js";
16
+ import "./client-BfnNfATE.js";
17
+ import "./call-BC1HAVqW.js";
18
18
  import "./pairing-token-Dcy37-4s.js";
19
19
  import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
20
20
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DQs772BN.js";
21
21
  import { t as formatDocsLink } from "./links-CQZxjjCO.js";
22
22
  import "./progress-DQTvTiEg.js";
23
23
  import { n as parsePositiveIntOrUndefined } from "./helpers-DGBa5iKd.js";
24
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Cwi5kJzl.js";
24
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-st8ffJBC.js";
25
25
 
26
26
  //#region src/cli/cron-cli/shared.ts
27
27
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -10,13 +10,13 @@ import { u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
11
11
  import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-gxLM5ahL.js";
12
12
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
13
- import { n as callGateway } from "./call-C386w5E5.js";
13
+ import { n as callGateway } from "./call-BC1HAVqW.js";
14
14
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
15
15
  import { t as formatDocsLink } from "./links-CQZxjjCO.js";
16
16
  import { n as withProgress } from "./progress-DQTvTiEg.js";
17
17
  import { n as inheritOptionFromParent } from "./command-options-DgcCGXMQ.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-7YBz5otm.js";
19
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-mW55B30K.js";
19
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-Bf1LB5fd.js";
20
20
  import { n as isWSLEnv } from "./wsl-Ci3VOaSK.js";
21
21
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-BF50XyKr.js";
22
22
  import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-DdbL6ELJ.js";
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BrrHNE8r.js";
9
9
  import { n as isPidAlive, t as resolveProcessScopedMap } from "./process-scoped-map-B-dHc_9I.js";
10
10
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-DNhyFMRW.js";
11
11
  import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-OTJg3QKn.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CmQwGAuL.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Dm4gX4Tl.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C89ppfp9.js";
15
15
  import { b as SafeOpenError, d as extensionForMime, i as buildImageResizeSideGrid, l as resizeToJpeg, o as getImageMetadata, r as IMAGE_REDUCE_QUALITY_STEPS, t as getAgentScopedMediaLocalRoots, u as detectMime, x as openFileWithinRoot } from "./local-roots-C7fBKoOI.js";
@@ -939,7 +939,7 @@ function isModuleNotFoundError(err) {
939
939
  }
940
940
  async function loadPwAiModule(mode) {
941
941
  try {
942
- return await import("./pw-ai-DY_6l11g.js");
942
+ return await import("./pw-ai-DLsdzdgc.js");
943
943
  } catch (err) {
944
944
  if (mode === "soft") return null;
945
945
  if (isModuleNotFoundError(err)) return null;
@@ -3536,11 +3536,11 @@ function createProfileContext(opts, profile) {
3536
3536
  const userDataDir = resolveSymiUserDataDir(profile.name);
3537
3537
  const profileState = getProfileState();
3538
3538
  if (await isHttpReachable(300) && !profileState.running) try {
3539
- await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
3539
+ await (await import("./pw-ai-DLsdzdgc.js")).closePlaywrightBrowserConnection();
3540
3540
  } catch {}
3541
3541
  if (profileState.running) await stopRunningBrowser();
3542
3542
  try {
3543
- await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
3543
+ await (await import("./pw-ai-DLsdzdgc.js")).closePlaywrightBrowserConnection();
3544
3544
  } catch {}
3545
3545
  if (!fs.existsSync(userDataDir)) return {
3546
3546
  moved: false,
@@ -9,7 +9,7 @@ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CZ_mYw
9
9
  import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-CAZujdOi.js";
10
10
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-BCSnhba8.js";
11
11
  import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-3jl2ulOE.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DNssqQJs.js";
13
13
  import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DO7WNsVJ.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BEU7IHU6.js";
@@ -1331,7 +1331,7 @@ function isModuleNotFoundError(err) {
1331
1331
  }
1332
1332
  async function loadPwAiModule(mode) {
1333
1333
  try {
1334
- return await import("./pw-ai-DOAsQ5NX.js");
1334
+ return await import("./pw-ai-v__CyAlM.js");
1335
1335
  } catch (err) {
1336
1336
  if (mode === "soft") return null;
1337
1337
  if (isModuleNotFoundError(err)) return null;
@@ -3928,11 +3928,11 @@ function createProfileContext(opts, profile) {
3928
3928
  const userDataDir = resolveSymiUserDataDir(profile.name);
3929
3929
  const profileState = getProfileState();
3930
3930
  if (await isHttpReachable(300) && !profileState.running) try {
3931
- await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
3931
+ await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
3932
3932
  } catch {}
3933
3933
  if (profileState.running) await stopRunningBrowser();
3934
3934
  try {
3935
- await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
3935
+ await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
3936
3936
  } catch {}
3937
3937
  if (!fs.existsSync(userDataDir)) return {
3938
3938
  moved: false,
@@ -12,8 +12,8 @@ import "./shell-env-Dc3iU7HK.js";
12
12
  import "./manifest-registry-D1MLZEjS.js";
13
13
  import { r as isLoopbackHost } from "./ws-C7Ktmt-R.js";
14
14
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
15
- import { $t as summarizeDeviceTokens, Wt as approveDevicePairing, qt as listDevicePairing } from "./client-CJeYdM6G.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C386w5E5.js";
15
+ import { $t as summarizeDeviceTokens, Wt as approveDevicePairing, qt as listDevicePairing } from "./client-BfnNfATE.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BC1HAVqW.js";
17
17
  import "./pairing-token-Dcy37-4s.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
19
19
  import { n as withProgress } from "./progress-DQTvTiEg.js";
@@ -1,7 +1,7 @@
1
1
  import { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
3
3
  import { t as note } from "./note-ytwb4wwn.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Dz6vTqBm.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-kGAGMr-I.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -11,19 +11,19 @@ import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
12
12
  import "./manifest-registry-D1MLZEjS.js";
13
13
  import "./message-channel-DgjXWzf-.js";
14
- import "./client-CJeYdM6G.js";
15
- import "./call-C386w5E5.js";
14
+ import "./client-BfnNfATE.js";
15
+ import "./call-BC1HAVqW.js";
16
16
  import "./pairing-token-Dcy37-4s.js";
17
17
  import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
18
18
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-DioSaIeH.js";
19
19
  import { t as formatDocsLink } from "./links-CQZxjjCO.js";
20
20
  import "./progress-DQTvTiEg.js";
21
- import { n as callGatewayFromCli } from "./gateway-rpc-Cwi5kJzl.js";
21
+ import { n as callGatewayFromCli } from "./gateway-rpc-st8ffJBC.js";
22
22
  import "./systemd-Dic80Qni.js";
23
23
  import "./service-BF50XyKr.js";
24
24
  import { t as renderTable } from "./table-Ds5CZCyv.js";
25
25
  import { t as describeUnknownError } from "./shared-BmjlTHYU.js";
26
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-Batd5KYw.js";
26
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-DZpJ-mGE.js";
27
27
  import JSON5 from "json5";
28
28
  import fs from "node:fs/promises";
29
29
 
@@ -6,8 +6,8 @@ import { _ as DEFAULT_PROVIDER, g as DEFAULT_MODEL, p as resolveThinkingDefault
6
6
  import { a as resolveAgentIdentity } from "./reply-prefix-i-FPYcoQ.js";
7
7
  import "./plugins-CZ_mYwXq.js";
8
8
  import "./replies-0nzkXt6o.js";
9
- import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-BxKs-STI.js";
10
- import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-f3cIWxXT.js";
9
+ import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-DP8324Ib.js";
10
+ import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-q23ar_Pm.js";
11
11
  import "./diagnostic-BdRnGknC.js";
12
12
  import "./diagnostic-session-state-DpxCUzoM.js";
13
13
  import "./chunk-CAZujdOi.js";
@@ -16,14 +16,14 @@ import "./ssrf-BCSnhba8.js";
16
16
  import "./boolean-BW6OTjPi.js";
17
17
  import "./shell-env-DgjeObDZ.js";
18
18
  import "./manifest-registry-CAWGTwb5.js";
19
- import "./chrome-3jl2ulOE.js";
19
+ import "./chrome-DNssqQJs.js";
20
20
  import "./skills-DO7WNsVJ.js";
21
21
  import "./redact-DSOAcWMe.js";
22
22
  import "./errors-BEU7IHU6.js";
23
23
  import "./tokens-yWO1wD7Z.js";
24
24
  import "./thinking-DgjGxdSP.js";
25
25
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-BsT3BvfH.js";
26
- import "./manager-Ct4kRT7n.js";
26
+ import "./manager-BWWH1lYn.js";
27
27
  import "./github-copilot-token-dYUr1mDQ.js";
28
28
  import "./sqlite-D8iYC_CU.js";
29
29
  import "./markdown-tables-jQzXAsf3.js";
@@ -1,4 +1,4 @@
1
- import { $ as isExternalHookSession, $t as emitAgentEvent, A as resolveSessionDeliveryTarget, At as resolveInputFileLimits, B as normalizeOptionalSessionKey, Bt as countActiveDescendantRuns, Cn as CommandLane, Ct as DEFAULT_INPUT_IMAGE_MAX_BYTES, Dn as runWithModelFallback, Dt as extractFileContentFromSource, Et as DEFAULT_INPUT_TIMEOUT_MS, F as normalizeHttpWebhookUrl, G as buildDeliveryFromLegacyPayload, H as normalizePayloadToSystemText, Ht as initSubagentRegistry, Jt as readLatestAssistantReply, K as hasLegacyDeliveryHints, Kt as resolveAgentTimeoutMs, N as resetDirectoryCache, O as resolveOutboundSessionRoute, Ot as extractImageContentFromSource, Q as getHookType, Qt as clearAgentRunContext, R as inferLegacyName, S as createSymiTools, Sn as waitForActiveTasks, T as resolveAnnounceTargetFromKey, Tn as resolveModelProfile, Tt as DEFAULT_INPUT_MAX_REDIRECTS, U as normalizeRequiredName, Ut as listDescendantRunsForRequester, V as normalizeOptionalText, Vt as countActiveRunsForSession, W as migrateLegacyCronPayload, X as buildSafeExternalPrompt, Z as detectSuspiciousPatterns, a as getPluginToolMeta, an as getActiveEmbeddedRunCount, at as isGatewaySigusr1RestartExternallyAllowed, bn as resetAllLanes, c as handleSlackHttpRequest, cn as registerUnhandledRejectionHandler, ct as setGatewaySigusr1RestartPolicy, d as buildHistoryContextFromEntries, dn as formatUserTime, en as getAgentRunContext, fn as resolveUserTimeFormat, h as getTotalPendingReplies, it as emitGatewayRestart, k as resolveOutboundTarget, kt as normalizeMimeList, l as readJsonBodyWithLimit, ln as ToolInputError, lt as setPreRestartDeferralCheck, n as applyToolPolicyPipeline, nn as registerAgentRunContext, nt as consumeGatewaySigusr1RestartAuthorization, ot as markGatewaySigusr1RestartHandled, pn as resolveUserTimezone, q as stripLegacyDeliveryFields, qt as runSubagentAnnounceFlow, r as buildDefaultToolPolicyPipelineSteps, rt as deferGatewayRestartUntilIdle, s as loadSymiPlugins, t as runAgentTurn, tn as onAgentEvent, u as requestBodyErrorToText, vn as getActiveTaskCount, wn as classifyOutboundMessage, wt as DEFAULT_INPUT_IMAGE_MIMES, xn as setCommandLaneConcurrency, yn as getTotalQueueSize, z as normalizeOptionalAgentId } from "./unified-runner-DpZ49TWj.js";
1
+ import { $ as isExternalHookSession, $t as emitAgentEvent, A as resolveSessionDeliveryTarget, At as resolveInputFileLimits, B as normalizeOptionalSessionKey, Bt as countActiveDescendantRuns, Cn as CommandLane, Ct as DEFAULT_INPUT_IMAGE_MAX_BYTES, Dn as runWithModelFallback, Dt as extractFileContentFromSource, Et as DEFAULT_INPUT_TIMEOUT_MS, F as normalizeHttpWebhookUrl, G as buildDeliveryFromLegacyPayload, H as normalizePayloadToSystemText, Ht as initSubagentRegistry, Jt as readLatestAssistantReply, K as hasLegacyDeliveryHints, Kt as resolveAgentTimeoutMs, N as resetDirectoryCache, O as resolveOutboundSessionRoute, Ot as extractImageContentFromSource, Q as getHookType, Qt as clearAgentRunContext, R as inferLegacyName, S as createSymiTools, Sn as waitForActiveTasks, T as resolveAnnounceTargetFromKey, Tn as resolveModelProfile, Tt as DEFAULT_INPUT_MAX_REDIRECTS, U as normalizeRequiredName, Ut as listDescendantRunsForRequester, V as normalizeOptionalText, Vt as countActiveRunsForSession, W as migrateLegacyCronPayload, X as buildSafeExternalPrompt, Z as detectSuspiciousPatterns, a as getPluginToolMeta, an as getActiveEmbeddedRunCount, at as isGatewaySigusr1RestartExternallyAllowed, bn as resetAllLanes, c as handleSlackHttpRequest, cn as registerUnhandledRejectionHandler, ct as setGatewaySigusr1RestartPolicy, d as buildHistoryContextFromEntries, dn as formatUserTime, en as getAgentRunContext, fn as resolveUserTimeFormat, h as getTotalPendingReplies, it as emitGatewayRestart, k as resolveOutboundTarget, kt as normalizeMimeList, l as readJsonBodyWithLimit, ln as ToolInputError, lt as setPreRestartDeferralCheck, n as applyToolPolicyPipeline, nn as registerAgentRunContext, nt as consumeGatewaySigusr1RestartAuthorization, ot as markGatewaySigusr1RestartHandled, pn as resolveUserTimezone, q as stripLegacyDeliveryFields, qt as runSubagentAnnounceFlow, r as buildDefaultToolPolicyPipelineSteps, rt as deferGatewayRestartUntilIdle, s as loadSymiPlugins, t as runAgentTurn, tn as onAgentEvent, u as requestBodyErrorToText, vn as getActiveTaskCount, wn as classifyOutboundMessage, wt as DEFAULT_INPUT_IMAGE_MIMES, xn as setCommandLaneConcurrency, yn as getTotalQueueSize, z as normalizeOptionalAgentId } from "./unified-runner-D9LZYzyF.js";
2
2
  import { A as isRich, E as setVerbose, H as createInternalHookEvent, M as getChildLogger, N as getLogger, P as getResolvedLoggerSettings, U as registerInternalHook, V as clearInternalHooks, W as triggerInternalHook, j as theme, k as colorize, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort, v as expandHomePrefix } from "./paths-By0XjHBk.js";
4
4
  import { h as resolveUserPath, s as ensureDir, t as CONFIG_DIR, v as shortenHomePath, x as truncateUtf16Safe } from "./utils-CTPsqyE_.js";
@@ -13,24 +13,24 @@ import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, b as resolveThinkingDe
13
13
  import { n as isPidAlive } from "./process-scoped-map-lWFQjQ3p.js";
14
14
  import "./file-lock-BVUYnlQv.js";
15
15
  import "./agent-paths-BbZSGrUA.js";
16
- import "./pi-embedded-helpers-B0Vz7hRL.js";
16
+ import "./pi-embedded-helpers-CDzBxa-P.js";
17
17
  import { M as resolveSubagentMaxConcurrent, N as VERSION, P as resolveRuntimeServiceVersion, f as parseDurationMs, i as loadConfig, j as resolveAgentMaxConcurrent, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-B4jkreCN.js";
18
18
  import "./boolean-CbZoNRMn.js";
19
19
  import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-BRnPI9sO.js";
20
20
  import "./shell-env-Dc3iU7HK.js";
21
21
  import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-D1MLZEjS.js";
22
22
  import { a as isPathInsideWithRealpath } from "./legacy-names-BQ9vKISY.js";
23
- import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-H5Lewbd2.js";
24
- import "./chrome-suE09Iax.js";
23
+ import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-61-kshSF.js";
24
+ import "./chrome-DJChpTwP.js";
25
25
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DpKBMIvx.js";
26
26
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
27
27
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-XKACsamF.js";
28
28
  import { a as isTrustedProxyAddress, d as resolveGatewayListenHosts, f as resolveHostName, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as rawDataToString, u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
29
29
  import { a as resolveGatewayAuth, c as createAuthRateLimiter, i as isLocalDirectRequest, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, t as assertGatewayAuthConfigured } from "./auth-Bkx-QuRN.js";
30
- import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-DVX-C1f0.js";
30
+ import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-SbbjNkPL.js";
31
31
  import { d as hasBinary } from "./frontmatter-B_jqcova.js";
32
32
  import { r as buildWorkspaceSkillSnapshot } from "./skills-BwDmcZdt.js";
33
- import "./routes-DmyY3P7a.js";
33
+ import "./routes-DIyAmLYR.js";
34
34
  import "./redact-B3O-RBO1.js";
35
35
  import { a as isErrno, n as formatErrorMessage } from "./errors-bI7Tdx75.js";
36
36
  import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-BdejYjW8.js";
@@ -56,10 +56,10 @@ import "./models-config-B5Xxy-c-.js";
56
56
  import "./pi-auth-json-Db8XJVGL.js";
57
57
  import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-cost-usage-D3mgssM_.js";
58
58
  import { C as enqueueSystemEvent, a as loadCombinedSessionStoreForGateway, f as formatRestartSentinelMessage, i as listSessionsFromStore, m as summarizeRestartSentinel, o as loadSessionEntry, u as consumeRestartSentinel, x as lookupContextTokens } from "./session-utils-Cs1jlD-q.js";
59
- import { r as getMachineDisplayName } from "./with-timeout-GyVVFtnd.js";
59
+ import { r as getMachineDisplayName } from "./with-timeout-GbJ1Yzsh.js";
60
60
  import { a as resolveAgentIdentity } from "./reply-prefix-BFNeXT65.js";
61
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DTDeG3u8.js";
62
- import { c as resolveMemorySearchConfig } from "./manager-5k1CRLn-.js";
61
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-B2hM774N.js";
62
+ import { c as resolveMemorySearchConfig } from "./manager-807ZlqEf.js";
63
63
  import "./sqlite-Cod7C5ba.js";
64
64
  import "./chunk-BxfKjCUx.js";
65
65
  import "./markdown-tables-CS1Tvb3z.js";
@@ -67,8 +67,8 @@ import { t as fetchWithSsrFGuard } from "./fetch-guard-JHxT9355.js";
67
67
  import "./local-roots-CgDCgCuM.js";
68
68
  import { n as isRestartEnabled } from "./commands-DUzLGgEZ.js";
69
69
  import "./commands-registry-Ca5hh7nh.js";
70
- import { Bt as errorShape, D as validateConnectParams, Gt as ensureDeviceToken, H as validateExecApprovalResolveParams, Kt as getPairedDevice, Rt as PROTOCOL_VERSION, Ut as buildDeviceAuthPayload, V as validateExecApprovalRequestParams, Wt as approveDevicePairing, Xt as requestDevicePairing, ct as validateRequestFrame, en as updatePairedDeviceMetadata, in as deriveDeviceIdFromPublicKey, n as formatValidationErrors, nn as roleScopesAllow, on as normalizeDevicePublicKeyBase64Url, sn as verifyDeviceSignature, tn as verifyDeviceToken, zt as ErrorCodes } from "./client-CJeYdM6G.js";
71
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-C386w5E5.js";
70
+ import { Bt as errorShape, D as validateConnectParams, Gt as ensureDeviceToken, H as validateExecApprovalResolveParams, Kt as getPairedDevice, Rt as PROTOCOL_VERSION, Ut as buildDeviceAuthPayload, V as validateExecApprovalRequestParams, Wt as approveDevicePairing, Xt as requestDevicePairing, ct as validateRequestFrame, en as updatePairedDeviceMetadata, in as deriveDeviceIdFromPublicKey, n as formatValidationErrors, nn as roleScopesAllow, on as normalizeDevicePublicKeyBase64Url, sn as verifyDeviceSignature, tn as verifyDeviceToken, zt as ErrorCodes } from "./client-BfnNfATE.js";
71
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-BC1HAVqW.js";
72
72
  import "./pairing-token-Dcy37-4s.js";
73
73
  import "./tool-display-DFOL6UQ9.js";
74
74
  import { _ as registerSkillsChangeListener, a as refreshRemoteNodeBins, g as getSkillsSnapshotVersion, i as refreshRemoteBinsForConnectedNodes, n as primeRemoteSkillsCache, o as removeRemoteNodeInfo, p as updatePairedNodeMetadata, r as recordRemoteNodeInfo, s as setSkillsRemoteRegistry, t as getRemoteSkillEligibility } from "./skills-remote-bz71Bstn.js";
@@ -81,7 +81,7 @@ import { t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-DioSaIeH
81
81
  import "./nodes-screen-De9ma6e1.js";
82
82
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-DeczTGI-.js";
83
83
  import "./breakdown-B_Dhhm3K.js";
84
- import "./control-service-CCto6i0v.js";
84
+ import "./control-service-DOGU9T2P.js";
85
85
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DQs772BN.js";
86
86
  import { n as resolveMessageChannelSelection } from "./channel-selection-DjrS6oiz.js";
87
87
  import "./delivery-queue-duM0RT18.js";
@@ -91,10 +91,10 @@ import { t as formatDocsLink } from "./links-CQZxjjCO.js";
91
91
  import { n as runCommandWithRuntime } from "./cli-utils-CbnnSB38.js";
92
92
  import { t as formatHelpExamples } from "./help-format-8IYCRvx1.js";
93
93
  import { n as withProgress } from "./progress-DQTvTiEg.js";
94
- import "./memory-cli-Bv8Rcg5s.js";
94
+ import "./memory-cli-CPebu_bx.js";
95
95
  import "./logging-CLWZ3KQI.js";
96
96
  import "./replies-C5CBlnFS.js";
97
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-CYlUAnkU.js";
97
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-WaLKhqJQ.js";
98
98
  import "./model-BMFj7NXy.js";
99
99
  import { t as createDefaultDeps } from "./deps-D5me2CAW.js";
100
100
  import { t as ensureSymiCliOnPath } from "./path-env-BAyW1s3c.js";
@@ -110,28 +110,28 @@ import "./install-safe-path-BBe6qFNr.js";
110
110
  import "./skill-scanner-D5p8L-xO.js";
111
111
  import "./channels-status-issues-iWQDGUQe.js";
112
112
  import "./daemon-runtime-7YBz5otm.js";
113
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-mW55B30K.js";
113
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-Bf1LB5fd.js";
114
114
  import "./systemd-Dic80Qni.js";
115
115
  import "./service-BF50XyKr.js";
116
116
  import "./lifecycle-core-DdbL6ELJ.js";
117
117
  import "./systemd-hints-bP8dBJ78.js";
118
118
  import { t as parsePort$1 } from "./parse-port-dzRz6QnZ.js";
119
- import { n as addGatewayServiceCommands } from "./daemon-cli-D93uCvD0.js";
119
+ import { n as addGatewayServiceCommands } from "./daemon-cli-CRGNFCN7.js";
120
120
  import "./diagnostics-CdawaB0U.js";
121
121
  import "./table-Ds5CZCyv.js";
122
122
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DA_m7oeT.js";
123
123
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BmjlTHYU.js";
124
- import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-DlO49y-U.js";
124
+ import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-BPhWpe_6.js";
125
125
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CyLfNUkJ.js";
126
- import { r as pickGatewaySelfPresence } from "./status-B2VahFlJ.js";
127
- import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-ksdFZpDU.js";
126
+ import { r as pickGatewaySelfPresence } from "./status-D3h1mSLx.js";
127
+ import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-BIwN5H6b.js";
128
128
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CnX0W3vy.js";
129
129
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-oEbS0voJ.js";
130
- import { t as runOnboardingWizard } from "./onboarding-Bm0DgGhb.js";
131
- 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-DKW7md4I.js";
132
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BZWInkPg.js";
130
+ import { t as runOnboardingWizard } from "./onboarding-Cw8abFVd.js";
131
+ 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-DMPwNvoz.js";
132
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns--j8PeFrK.js";
133
133
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DJgxyDTX.js";
134
- import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-7Xrh1XVG.js";
134
+ import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-CSOQs4VQ.js";
135
135
  import { t as createOutboundSendDeps } from "./outbound-send-deps-DpyxnI3f.js";
136
136
  import { s as loadAgentIdentityFromWorkspace } from "./agents.config-DK6nN-Qh.js";
137
137
  import "./dm-policy-shared-BUwZ6Ajx.js";
@@ -6558,7 +6558,7 @@ function normalizeAgentPayload(payload) {
6558
6558
  async function startBrowserControlServerIfEnabled() {
6559
6559
  if (isTruthyEnvValue(process.env.SYMI_SKIP_BROWSER_CONTROL_SERVER)) return null;
6560
6560
  const override = process.env.SYMI_BROWSER_CONTROL_MODULE?.trim();
6561
- const mod = override ? await import(override) : await import("./control-service-CCto6i0v.js").then((n) => n.t);
6561
+ const mod = override ? await import(override) : await import("./control-service-DOGU9T2P.js").then((n) => n.t);
6562
6562
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
6563
6563
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
6564
6564
  if (!start) return null;
@@ -12044,7 +12044,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12044
12044
  });
12045
12045
  let glassUiBridgeCleanup = null;
12046
12046
  if (!minimalTestGateway) {
12047
- const { createGlassUiBridge } = await import("./glass-ui-ws-gmSoTQpl.js");
12047
+ const { createGlassUiBridge } = await import("./glass-ui-ws-QqYp-Uof.js");
12048
12048
  glassUiBridgeCleanup = createGlassUiBridge({
12049
12049
  wss: glassUiWss,
12050
12050
  context: gatewayRequestContext,
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
2
- import { n as callGateway } from "./call-C386w5E5.js";
2
+ import { n as callGateway } from "./call-BC1HAVqW.js";
3
3
  import { n as withProgress } from "./progress-DQTvTiEg.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts