@symerian/symi 2.6.42 → 2.7.0

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 (283) hide show
  1. package/dist/{accounts-DDuIpcln.js → accounts-Cd816n6l.js} +7 -7
  2. package/dist/{accounts-bK-Yqdwx.js → accounts-CokRskCl.js} +1 -1
  3. package/dist/{accounts-DyJN4_vR.js → accounts-mN_EcgxC.js} +1 -1
  4. package/dist/{acp-cli-CrEIx-c7.js → acp-cli-COzlJi3B.js} +6 -6
  5. package/dist/{agent-scope-CgUHAtCo.js → agent-scope-BRwEc2pG.js} +18 -18
  6. package/dist/{agents-DDRDszOI.js → agents-Cu2bthAX.js} +4 -4
  7. package/dist/{agents.config-BKCY6F2A.js → agents.config-5PTwsijs.js} +1 -1
  8. package/dist/{agents.config-BEVb1Pyx.js → agents.config-Dib8Uo2P.js} +2 -2
  9. package/dist/{api-key-rotation-CzuPlV2t.js → api-key-rotation-CEr3lKih.js} +1 -1
  10. package/dist/{audio-preflight-CIiS5cfP.js → audio-preflight-mj-z_vQ6.js} +28 -28
  11. package/dist/{audit-DB9YkTVX.js → audit-Djfdh06o.js} +23 -23
  12. package/dist/{auth-choice-BbzReh6k.js → auth-choice-5gul6jy2.js} +1 -1
  13. package/dist/{auth-choice-D2xXwBeN.js → auth-choice-CmSUU3t8.js} +8 -8
  14. package/dist/{auth-token-Cay2jwzn.js → auth-token-83A2btbE.js} +1 -1
  15. package/dist/{banner-DqqRwplt.js → banner-B4vQpMIJ.js} +1 -1
  16. package/dist/{bindings-DFaVVCsf.js → bindings-ChzePa8q.js} +1 -1
  17. package/dist/{browser-cli-Ctn9do4z.js → browser-cli-BTD0NlrA.js} +9 -9
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +1 -1
  20. package/dist/bundled/session-memory/handler.js +1 -1
  21. package/dist/{call-DwpGquzW.js → call-tmHtVCkn.js} +9 -9
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-options-DQcpDVCx.js → channel-options-DVf4CJIu.js} +1 -1
  24. package/dist/{channel-options-DcazVJQf.js → channel-options-DsWGc55A.js} +2 -2
  25. package/dist/{channel-selection-V2xDgw16.js → channel-selection-DaJDux-Q.js} +1 -1
  26. package/dist/{channel-web-u5yMYO4j.js → channel-web-vGC-WJXi.js} +17 -17
  27. package/dist/{channels-cli-Bog4Kn3X.js → channels-cli-COayA28A.js} +76 -76
  28. package/dist/{channels-cli-C3iJE8eg.js → channels-cli-CSv05N3q.js} +4 -4
  29. package/dist/{channels-status-issues-CJ0Vb_9z.js → channels-status-issues-B_PI3nEE.js} +1 -1
  30. package/dist/{chrome-DU2ZysN3.js → chrome-CSJzpT9Z.js} +2 -2
  31. package/dist/cli/daemon-cli.js +1 -1
  32. package/dist/{cli-eBtEEHLK.js → cli-B-g79xPe.js} +1 -1
  33. package/dist/{cli-QybdZdE7.js → cli-DJjOxip6.js} +63 -63
  34. package/dist/{client-jI1oE0_k.js → client-Bj_vTpri.js} +1 -1
  35. package/dist/{command-registry-BWnZSpbL.js → command-registry-BvpLfzl7.js} +9 -9
  36. package/dist/{commands-BNLCWX6e.js → commands-CtocZ4Lg.js} +1 -1
  37. package/dist/{commands-registry-BT0-zzs3.js → commands-registry-BZ0ZSQpM.js} +3 -3
  38. package/dist/{completion-cli-CUKm7Hb6.js → completion-cli-CfRZ-7QF.js} +2 -2
  39. package/dist/{completion-cli-BhJFXaVU.js → completion-cli-DtQcXg1N.js} +12 -12
  40. package/dist/{config-cli-CjnQyv45.js → config-cli-D9Z78raJ.js} +4 -4
  41. package/dist/{config-cli-B796xZBe.js → config-cli-DL2RdfLM.js} +1 -1
  42. package/dist/{config-guard-CEkSg4hl.js → config-guard-4oRmpR0a.js} +12 -12
  43. package/dist/{config-Dz95lSBW.js → config-tNauHpdq.js} +2 -2
  44. package/dist/{config-validation-HDVDlMSV.js → config-validation-BoDWiwe3.js} +1 -1
  45. package/dist/{configure-DUqT7Dyn.js → configure-Dq4f8WPa.js} +3 -3
  46. package/dist/{configure-D3wIQ0yI.js → configure-jDpF8lmx.js} +15 -15
  47. package/dist/{control-service-BYKXzY4f.js → control-service-BBnhN7aZ.js} +4 -4
  48. package/dist/control-ui/css/style.css +51 -0
  49. package/dist/control-ui/js/app.js +39 -0
  50. package/dist/control-ui/js/gateway.js +2 -0
  51. package/dist/control-ui/js/settings.js +71 -8
  52. package/dist/{control-ui-assets-B7moDVHX.js → control-ui-assets-6n-YayeS.js} +1 -1
  53. package/dist/{cron-cli-DCpsXkrw.js → cron-cli-D165ecaj.js} +10 -10
  54. package/dist/{daemon-cli-DSDcmWOi.js → daemon-cli-BccZzUb0.js} +11 -11
  55. package/dist/{daemon-runtime-mE1b-Q48.js → daemon-runtime-u01h46bE.js} +10 -10
  56. package/dist/{deliver-B4KZ6-oZ.js → deliver-BYdNAEqj.js} +7 -7
  57. package/dist/{devices-cli-x3jIP4Ih.js → devices-cli-D0N71nqX.js} +6 -6
  58. package/dist/{diagnostics-BRwihzJG.js → diagnostics-BrUo0gqs.js} +5 -5
  59. package/dist/{directory-cli-KgsAVTA0.js → directory-cli-aj7aXIBM.js} +7 -7
  60. package/dist/{dm-policy-shared-DlDAGtZL.js → dm-policy-shared-epgkayyq.js} +2 -2
  61. package/dist/{dns-cli-Cwr92Aiq.js → dns-cli-Dit09wbu.js} +3 -3
  62. package/dist/{dock-BhS32F6E.js → dock-BYiRZSgZ.js} +4 -4
  63. package/dist/{docs-cli-qE-blOLC.js → docs-cli-CyWGMA-e.js} +1 -1
  64. package/dist/{doctor-completion-D3oUNFQM.js → doctor-completion-Ccb83Wl5.js} +2 -2
  65. package/dist/{doctor-completion-DBE1IVKj.js → doctor-completion-oQemZItC.js} +1 -1
  66. package/dist/{doctor-config-flow-iIzSEQxb.js → doctor-config-flow-BXmHd2bb.js} +10 -10
  67. package/dist/entry.js +1 -1
  68. package/dist/{exec-approvals-cli-BSgxsdMt.js → exec-approvals-cli-CZ-iTtNO.js} +13 -13
  69. package/dist/extensionAPI.js +1 -1
  70. package/dist/{fs-safe-CUjO1ca2.js → fs-safe-CTDvb1DF.js} +6 -6
  71. package/dist/{gateway-cli-BguO9yV4.js → gateway-cli-C1zPKZ7B.js} +135 -120
  72. package/dist/{gateway-cli-Dc1RT_b9.js → gateway-cli-zbVm1MBQ.js} +30 -15
  73. package/dist/{gateway-rpc-5fREQe9Q.js → gateway-rpc-B1Wzoj99.js} +1 -1
  74. package/dist/{glass-ui-ws-D0UYleBF.js → glass-ui-ws-CvUFd4C6.js} +28 -9
  75. package/dist/{glass-ui-ws-DoIZyE9O.js → glass-ui-ws-D3tAmqKX.js} +104 -85
  76. package/dist/{health-cVvZdeDu.js → health-DQEqLYg1.js} +1 -1
  77. package/dist/{health-D3w4YMlC.js → health-o847FIt1.js} +13 -13
  78. package/dist/{hooks-cli-DZIbjfOA.js → hooks-cli-D_UW9fc8.js} +2 -2
  79. package/dist/{hooks-cli-te5hzOAB.js → hooks-cli-sYjbF4I6.js} +77 -77
  80. package/dist/{image-BWmcNF8N.js → image-lCS3o9xj.js} +3 -3
  81. package/dist/{image-ops-1OJMSAUX.js → image-ops-DYbDWaIA.js} +10 -10
  82. package/dist/index.js +73 -73
  83. package/dist/{inspect-CvbbCuoa.js → inspect-CNYyHVfH.js} +4 -4
  84. package/dist/{install-safe-path-D3Uz77u7.js → install-safe-path-D3mg1DMG.js} +11 -11
  85. package/dist/{installs-DQcRVF1U.js → installs-CYTVYWH_.js} +10 -10
  86. package/dist/{ir-DZam9q5M.js → ir-Dt4hOzxG.js} +6 -6
  87. package/dist/{lifecycle-core-C4HzGXA1.js → lifecycle-core-DxmxQdhS.js} +5 -5
  88. package/dist/llm-slug-generator.js +1 -1
  89. package/dist/{local-roots-aAFLQGkY.js → local-roots-BBeKX7PX.js} +2 -2
  90. package/dist/{login-DODfJ3Dn.js → login-CnjdNmGD.js} +3 -3
  91. package/dist/{login-qr-CBRxijIg.js → login-qr-DUf6CM0M.js} +5 -5
  92. package/dist/{logs-cli-CfGj-dOg.js → logs-cli-BVd6h2-Q.js} +7 -7
  93. package/dist/{manager-D4LJSRyZ.js → manager-C1CfGzZ2.js} +13 -13
  94. package/dist/{markdown-tables-CEbN0fEm.js → markdown-tables-ZwP14ydw.js} +1 -1
  95. package/dist/{memory-cli-DDumUksr.js → memory-cli-DhkRAIdT.js} +14 -14
  96. package/dist/{model-tWhwnFf8.js → model-CeeOcylL.js} +1 -1
  97. package/dist/{model-catalog-8Son0J4O.js → model-catalog-CvbwxWuC.js} +4 -4
  98. package/dist/{model-picker-CAm2Bftd.js → model-picker-C2MqloOs.js} +3 -3
  99. package/dist/{model-selection-CyFvYcRt.js → model-selection-X1oLh3CE.js} +9 -9
  100. package/dist/{models-BCfPhQ4m.js → models-Zol34e73.js} +2 -2
  101. package/dist/{models-cli-Cj2CwbPw.js → models-cli-BzcEA9oa.js} +3 -3
  102. package/dist/{models-cli-BFAtjNIF.js → models-cli-DnMUzr15.js} +72 -72
  103. package/dist/{models-config-CFFjJPe7.js → models-config-CEMioDUi.js} +7 -7
  104. package/dist/{node-cli-DnfDOh1d.js → node-cli-BVJid4L_.js} +28 -28
  105. package/dist/{node-service-CD47Qpf1.js → node-service-CXzMs782.js} +1 -1
  106. package/dist/{nodes-cli-Ci3oxw8k.js → nodes-cli-BN2Nslim.js} +10 -10
  107. package/dist/{nodes-screen-8Bq7DiSa.js → nodes-screen-Cd49cSPb.js} +4 -4
  108. package/dist/{npm-registry-spec-C0CPT3vr.js → npm-registry-spec-DchndI6P.js} +9 -9
  109. package/dist/{onboard-VcdBF5TB.js → onboard-CSseK0Co.js} +13 -13
  110. package/dist/{onboard-BMq8qc1m.js → onboard-CxOT_xD4.js} +2 -2
  111. package/dist/{onboard-channels-CiOun4k1.js → onboard-channels-CUlITipG.js} +5 -5
  112. package/dist/{onboard-channels-B5wgcffj.js → onboard-channels-D-lh_Vh1.js} +1 -1
  113. package/dist/{onboard-custom-XiomtQr7.js → onboard-custom-DTcLdtA9.js} +3 -3
  114. package/dist/{onboard-helpers-DFvWPFhU.js → onboard-helpers-CdPNw25E.js} +8 -8
  115. package/dist/{onboard-hooks-C3ok8kqB.js → onboard-hooks-C_2_jpWg.js} +1 -1
  116. package/dist/{onboard-remote-BURDxwoE.js → onboard-remote-v6QMnyJD.js} +1 -1
  117. package/dist/{onboard-skills-CbzgBT1W.js → onboard-skills-CQtkRP20.js} +4 -4
  118. package/dist/{onboarding-Dp7p6zKa.js → onboarding-DktESmTv.js} +3 -3
  119. package/dist/{onboarding-CGNpTyg2.js → onboarding-Dn5agNG_.js} +13 -13
  120. package/dist/{onboarding.finalize-CrsE5P43.js → onboarding.finalize-Bm-1Kdnh.js} +6 -6
  121. package/dist/{onboarding.finalize-B6DOu8vp.js → onboarding.finalize-CTIZ1zvV.js} +75 -75
  122. package/dist/{onboarding.gateway-config-DKwJ5bWd.js → onboarding.gateway-config-CwnQkyO0.js} +14 -14
  123. package/dist/{openai-model-default-WqcGxyFM.js → openai-model-default-4kBA1_78.js} +2 -2
  124. package/dist/{outbound-wnv03tb3.js → outbound-_Ir3M05f.js} +4 -4
  125. package/dist/{outbound-attachment-Bw-c5Cdp.js → outbound-attachment-Qfh5dlsg.js} +2 -2
  126. package/dist/{pairing-cli-DSM82gJG.js → pairing-cli-C8UXBJ_A.js} +8 -8
  127. package/dist/{pairing-labels-DyXoD1DS.js → pairing-labels-Dxb898X5.js} +1 -1
  128. package/dist/{pairing-store-CK726Dzq.js → pairing-store-B8ktu-6j.js} +2 -2
  129. package/dist/{pairing-token-CX3NN_qj.js → pairing-token-AV-MMfVE.js} +7 -7
  130. package/dist/{paths-BBm9fwuG.js → paths-CT6jsi4E.js} +1 -1
  131. package/dist/{pi-auth-json-zHckislA.js → pi-auth-json-FpfHyEcu.js} +5 -5
  132. package/dist/{pi-embedded-DQe8vBwU.js → pi-embedded-CYDMb5q0.js} +46 -7
  133. package/dist/{pi-embedded-helpers-BgdB5kvy.js → pi-embedded-helpers-Bs4eMaNo.js} +6 -6
  134. package/dist/{pi-tools.policy-DRWb_Cax.js → pi-tools.policy-BBxnqCay.js} +4 -4
  135. package/dist/{plugin-auto-enable-CP0nONRL.js → plugin-auto-enable-DwIrzVOA.js} +2 -2
  136. package/dist/{plugin-registry-BzIbwU3K.js → plugin-registry-CJGPW1-k.js} +1 -1
  137. package/dist/{plugin-registry-D3TUplW8.js → plugin-registry-d0oZLl6y.js} +3 -3
  138. package/dist/plugin-sdk/{channel-web-B6m8UOCl.js → channel-web-Dm-CzA1O.js} +1 -1
  139. package/dist/plugin-sdk/index.js +2 -2
  140. package/dist/plugin-sdk/{reply-CGoJQT_s.js → reply-4HEU7aDS.js} +46 -7
  141. package/dist/plugin-sdk/{web-CJjSOTnI.js → web-Cclb7FTq.js} +2 -2
  142. package/dist/{plugins-DKDeQZF0.js → plugins-BAyxWQSz.js} +2 -2
  143. package/dist/{plugins-cli-DFyRjAtJ.js → plugins-cli-BWgjIJQL.js} +72 -72
  144. package/dist/{plugins-cli-BD1Jb2Ml.js → plugins-cli-CL0tzkMo.js} +2 -2
  145. package/dist/{ports-BOmtxoTv.js → ports-OZQlocB7.js} +2 -2
  146. package/dist/{ports-DtW62rqS.js → ports-u9lWy2Jt.js} +1 -1
  147. package/dist/{program-qGm2M9PG.js → program-BHjH97Q_.js} +7 -7
  148. package/dist/{program-context-45vPEw2G.js → program-context-CXZHSZ4D.js} +39 -39
  149. package/dist/{prompt-select-styled-DRIS9jSv.js → prompt-select-styled-BUFEoSlM.js} +38 -38
  150. package/dist/{prompt-select-styled-DRraJGwA.js → prompt-select-styled-D8LXSUR7.js} +4 -4
  151. package/dist/{provider-auth-helpers-BNOWsjW5.js → provider-auth-helpers-BFHctF2f.js} +1 -1
  152. package/dist/{provider-auth-helpers-BREVjR7R.js → provider-auth-helpers-CeAbh3lv.js} +5 -5
  153. package/dist/{push-apns-CYC70eKy.js → push-apns-BylbQyP9.js} +1 -1
  154. package/dist/{push-apns-CObVeJLC.js → push-apns-DqFdzIkc.js} +4 -4
  155. package/dist/{pw-ai-DQohWnzT.js → pw-ai-CfrnAHwA.js} +7 -7
  156. package/dist/{qmd-manager-CCUK1xoc.js → qmd-manager-DUNbG4Qr.js} +18 -18
  157. package/dist/{qr-cli-CejYwqsj.js → qr-cli-BZYa2gvF.js} +3 -3
  158. package/dist/{register.agent-DzzY8jON.js → register.agent-DxAqRAt3.js} +6 -6
  159. package/dist/{register.agent-DRrHvYcz.js → register.agent-bzSGKS-l.js} +82 -82
  160. package/dist/register.configure-Boyfir72.js +148 -0
  161. package/dist/{register.configure-DlXkwkNR.js → register.configure-WS1nlSp8.js} +6 -6
  162. package/dist/{register.maintenance-CXLXouZV.js → register.maintenance-B1QcUr38.js} +85 -85
  163. package/dist/{register.maintenance-LEf8Q_5p.js → register.maintenance-D_qMTrgD.js} +8 -8
  164. package/dist/{register.message-C4ifV9vG.js → register.message-CJF8gLAN.js} +64 -64
  165. package/dist/{register.message-DsPa-xHV.js → register.message-zu3HGGff.js} +2 -2
  166. package/dist/{register.onboard-DLRPa_4B.js → register.onboard-9dwNqCe6.js} +4 -4
  167. package/dist/{register.onboard-CrY4PxLP.js → register.onboard-CswoaT7q.js} +75 -75
  168. package/dist/{register.setup-fBG_dJfi.js → register.setup-CvomtGGu.js} +78 -78
  169. package/dist/{register.setup-By37g1vN.js → register.setup-TcjUu6HC.js} +4 -4
  170. package/dist/{register.status-health-sessions-DG7KGnD0.js → register.status-health-sessions-CM1SX81r.js} +3 -3
  171. package/dist/{register.status-health-sessions-Ckw86-gn.js → register.status-health-sessions-CQMvbwr6.js} +76 -76
  172. package/dist/{register.subclis-C_xKLugM.js → register.subclis-CVQASXaL.js} +9 -9
  173. package/dist/{replies-BMqtgBhh.js → replies-Dy92jzrz.js} +1 -1
  174. package/dist/{reply-DyjXROKp.js → reply-CpNWtuU4.js} +183 -144
  175. package/dist/{reply-prefix-CE2YmmsD.js → reply-prefix-BLOOs1aW.js} +1 -1
  176. package/dist/{resolve-route-BMoTaVAH.js → resolve-route-BcnaXYvh.js} +2 -2
  177. package/dist/{routes-BAZTZNuQ.js → routes-CVwRcA9D.js} +8 -8
  178. package/dist/{rpc-Co5PQ3IJ.js → rpc-CZFfee1J.js} +1 -1
  179. package/dist/{run-main-Cg3ecTbO.js → run-main-Dq6tfDry.js} +14 -14
  180. package/dist/{runner-DRv0uCK_.js → runner-BAVs-p6Z.js} +20 -20
  181. package/dist/{sandbox-B6N8cV4d.js → sandbox-HZ_uilsn.js} +18 -18
  182. package/dist/{sandbox-cli-DwzaNjIJ.js → sandbox-cli-wZtiyo8g.js} +20 -20
  183. package/dist/{security-cli-D5BWzqEJ.js → security-cli-BESmRIrl.js} +36 -36
  184. package/dist/{send-CQVnyJyF.js → send-BVBCh27_.js} +13 -13
  185. package/dist/{send-DVm0du0_.js → send-CXFTeD_J.js} +4 -4
  186. package/dist/{send-B3RdXvjC.js → send-DT-5buW5.js} +6 -6
  187. package/dist/{send-9SapUCg7.js → send-DsSI8z3F.js} +6 -6
  188. package/dist/{send-Bm4ULEzh.js → send-JWV62VbW.js} +6 -6
  189. package/dist/{server-context-CCBZN8a0.js → server-context-VlF1_hYj.js} +5 -5
  190. package/dist/{server-methods-CWcLut3F.js → server-methods-B0pdetGJ.js} +130 -64
  191. package/dist/{server-methods-CW8eFTGD.js → server-methods-IBEaQXPX.js} +177 -111
  192. package/dist/{server-node-events-CDB0u8PP.js → server-node-events-BACmfyjo.js} +64 -64
  193. package/dist/{server-node-events-C2h9OPo7.js → server-node-events-CyDj7Txd.js} +2 -2
  194. package/dist/{service-osK70kTZ.js → service-D80PyJxB.js} +15 -15
  195. package/dist/{session-DsJGtM7g.js → session-6Qyc4cBQ.js} +2 -2
  196. package/dist/{session-dirs-Dgz7kkUM.js → session-dirs-DPzjjra2.js} +2 -2
  197. package/dist/{sessions-Cpgnq0pA.js → sessions-jTAGYjWl.js} +13 -13
  198. package/dist/{shared-DnmJ0ABB.js → shared-BV7WhIkY.js} +1 -1
  199. package/dist/{shared-73T9fyuK.js → shared-BfhtOZAz.js} +3 -3
  200. package/dist/{skill-commands-Cxw-jNxU.js → skill-commands-ZXbEITKi.js} +5 -5
  201. package/dist/{skill-scanner-hMtQbWPV.js → skill-scanner-w3DJvw1Q.js} +5 -5
  202. package/dist/{skills-6jdJQ5ZL.js → skills-DqQUtOph.js} +4 -4
  203. package/dist/{skills-cli-DXkx4vNV.js → skills-cli-D3lePXkf.js} +7 -7
  204. package/dist/{skills-install-CWVdJkLn.js → skills-install-HGYidhrv.js} +3 -3
  205. package/dist/{skills-status-C3ptXwnh.js → skills-status-Cjsh8we0.js} +1 -1
  206. package/dist/{sqlite-Dx3J_aSE.js → sqlite-BV5ILFtC.js} +12 -12
  207. package/dist/{status-DfPfMVNZ.js → status-BJtbD-cG.js} +2 -2
  208. package/dist/{status-CMx3GAax.js → status-DUeTrQSz.js} +1 -1
  209. package/dist/{status-B2Qt-5kL.js → status-DzHL-eVu.js} +3 -3
  210. package/dist/{status-ZPW5EACm.js → status-nzJEZmNT.js} +25 -25
  211. package/dist/{status.update-CG0ciGaf.js → status.update-TlYwuzTa.js} +3 -3
  212. package/dist/{store-r1DJSDq-.js → store-DvtcmOKj.js} +5 -5
  213. package/dist/{subagent-registry-DQHg3jUV.js → subagent-registry-CzS4CfnV.js} +46 -7
  214. package/dist/{symi-root-CrGJbkzf.js → symi-root-MF6_6SCS.js} +2 -2
  215. package/dist/{system-cli-DFZNGx0i.js → system-cli-C2yhGP4C.js} +7 -7
  216. package/dist/{systemd-DT6SbCim.js → systemd-CevHlgD4.js} +5 -5
  217. package/dist/{systemd-hints-xYZbFny_.js → systemd-hints-DmgRnw1L.js} +6 -6
  218. package/dist/{systemd-linger-DCskIKcx.js → systemd-linger-ScxQ1_H4.js} +1 -1
  219. package/dist/{tables-BEzT0Da4.js → tables-C38rzF6E.js} +1 -1
  220. package/dist/{target-errors-7AvoVa10.js → target-errors-CCz79CmV.js} +4 -4
  221. package/dist/{tool-images-DvUBlqjX.js → tool-images-B-pqX3nX.js} +1 -1
  222. package/dist/{tui-DjPsMdL6.js → tui-D2MOx3Kx.js} +7 -7
  223. package/dist/{tui-cli-pWD_NrUR.js → tui-cli-B2ii7u23.js} +28 -28
  224. package/dist/{unified-runner-DvOFqcrw.js → unified-runner-BtO3UQSd.js} +46 -7
  225. package/dist/{update-Ya0e-JnM.js → update-Don6XTH9.js} +3 -3
  226. package/dist/{update-check-7EzEjSzb.js → update-check-DCo5RtKp.js} +5 -5
  227. package/dist/{update-cli-DBasZeVl.js → update-cli-DRODEMSI.js} +8 -8
  228. package/dist/{update-cli-Df9rh_aN.js → update-cli-gKtjyXlD.js} +95 -95
  229. package/dist/{update-runner-BRKFzAwV.js → update-runner-AsKAxe31.js} +15 -15
  230. package/dist/{update-runner-DVa6cMqp.js → update-runner-JcdOHr71.js} +1 -1
  231. package/dist/{web-Dd05xbUr.js → web-BIzWZFiN.js} +1 -1
  232. package/dist/{web-Cw3bFAiP.js → web-DGo16lWn.js} +1 -1
  233. package/dist/{web-CGh5tw__.js → web-DKwOxo8E.js} +1 -1
  234. package/dist/web-sefqR11J.js +110 -0
  235. package/dist/{webhooks-cli-BRxe4uCg.js → webhooks-cli-DbnQ2BVE.js} +4 -4
  236. package/dist/{whatsapp-actions-ChO_shrk.js → whatsapp-actions-CqXxtCoj.js} +15 -15
  237. package/dist/{with-timeout-CtVdu_1U.js → with-timeout-Cm5EhxG_.js} +1 -1
  238. package/dist/{workspace-dirs-GpkFi6Kw.js → workspace-dirs-DKu48umx.js} +1 -1
  239. package/dist/{wsl-q8spwrME.js → wsl-xNOi_Ch8.js} +2 -2
  240. package/extensions/bluebubbles/package.json +1 -1
  241. package/extensions/copilot-proxy/package.json +1 -1
  242. package/extensions/diagnostics-otel/package.json +1 -1
  243. package/extensions/discord/package.json +1 -1
  244. package/extensions/feishu/package.json +1 -1
  245. package/extensions/google-antigravity-auth/package.json +1 -1
  246. package/extensions/google-gemini-cli-auth/package.json +1 -1
  247. package/extensions/googlechat/package.json +1 -1
  248. package/extensions/imessage/package.json +1 -1
  249. package/extensions/irc/package.json +1 -1
  250. package/extensions/learning-loop/package.json +1 -1
  251. package/extensions/line/package.json +1 -1
  252. package/extensions/llm-task/package.json +1 -1
  253. package/extensions/matrix/CHANGELOG.md +6 -0
  254. package/extensions/matrix/package.json +1 -1
  255. package/extensions/mattermost/package.json +1 -1
  256. package/extensions/memory-core/package.json +1 -1
  257. package/extensions/memory-lancedb/package.json +1 -1
  258. package/extensions/minimax-portal-auth/package.json +1 -1
  259. package/extensions/msteams/CHANGELOG.md +6 -0
  260. package/extensions/msteams/package.json +1 -1
  261. package/extensions/nextcloud-talk/package.json +1 -1
  262. package/extensions/nostr/CHANGELOG.md +6 -0
  263. package/extensions/nostr/package.json +1 -1
  264. package/extensions/open-prose/package.json +1 -1
  265. package/extensions/outlook/package.json +1 -1
  266. package/extensions/pipeline/package.json +1 -1
  267. package/extensions/signal/package.json +1 -1
  268. package/extensions/slack/package.json +1 -1
  269. package/extensions/telegram/package.json +1 -1
  270. package/extensions/tlon/package.json +1 -1
  271. package/extensions/twitch/CHANGELOG.md +6 -0
  272. package/extensions/twitch/package.json +1 -1
  273. package/extensions/voice-call/CHANGELOG.md +6 -0
  274. package/extensions/voice-call/package.json +1 -1
  275. package/extensions/whatsapp/package.json +1 -1
  276. package/extensions/zalo/CHANGELOG.md +6 -0
  277. package/extensions/zalo/package.json +1 -1
  278. package/extensions/zalouser/CHANGELOG.md +6 -0
  279. package/extensions/zalouser/package.json +1 -1
  280. package/package.json +1 -1
  281. package/skills/long-task/scripts/detach-task.sh +91 -14
  282. package/dist/register.configure-BxtTIFTa.js +0 -148
  283. package/dist/web-KiuDkd0x.js +0 -110
@@ -1,156 +1,156 @@
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-DyjXROKp.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-CpNWtuU4.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
- import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
+ import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.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";
8
8
  import { a as setConsoleSubsystemFilter, f as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
9
9
  import { i as logDebug, n as runExec, s as logWarn, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
10
- import { C as ensureAgentWorkspace, D as resolveDefaultAgentWorkspaceDir, O as resolveWorkspaceTemplateDir, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, r as resolveAgentConfig, s as resolveAgentSkillsFilter } from "./agent-scope-CgUHAtCo.js";
11
- import { Gt as DEFAULT_MODEL, Kt as DEFAULT_PROVIDER, Rt as isPidAlive, Wt as DEFAULT_CONTEXT_TOKENS, a as getModelRefStatus, d as resolveAllowedModelRef, h as resolveHooksGmailModel, o as isCliProvider, p as resolveConfiguredModelRef, y as resolveThinkingDefault } from "./model-selection-CyFvYcRt.js";
10
+ import { C as ensureAgentWorkspace, D as resolveDefaultAgentWorkspaceDir, O as resolveWorkspaceTemplateDir, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, r as resolveAgentConfig, s as resolveAgentSkillsFilter } from "./agent-scope-BRwEc2pG.js";
11
+ import { Gt as DEFAULT_MODEL, Kt as DEFAULT_PROVIDER, Rt as isPidAlive, Wt as DEFAULT_CONTEXT_TOKENS, a as getModelRefStatus, d as resolveAllowedModelRef, h as resolveHooksGmailModel, o as isCliProvider, p as resolveConfiguredModelRef, y as resolveThinkingDefault } from "./model-selection-X1oLh3CE.js";
12
12
  import "./github-copilot-token-DAu1a6BX.js";
13
13
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
14
14
  import "./boolean-BsqeuxE6.js";
15
15
  import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
16
16
  import { _ as normalizeGatewayClientMode, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient } from "./message-channel-aT-I_DTX.js";
17
- import "./send-CQVnyJyF.js";
18
- import { B as resolveAgentMaxConcurrent, C as parseDurationMs, H as VERSION, U as resolveRuntimeServiceVersion, V as resolveSubagentMaxConcurrent, i as loadConfig, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-Dz95lSBW.js";
17
+ import "./send-BVBCh27_.js";
18
+ import { B as resolveAgentMaxConcurrent, C as parseDurationMs, H as VERSION, U as resolveRuntimeServiceVersion, V as resolveSubagentMaxConcurrent, i as loadConfig, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-tNauHpdq.js";
19
19
  import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-C4BxOMWX.js";
20
20
  import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
21
- import { d as registerUnhandledRejectionHandler } from "./runner-DRv0uCK_.js";
22
- import "./image-BWmcNF8N.js";
23
- import "./models-config-CFFjJPe7.js";
21
+ import { d as registerUnhandledRejectionHandler } from "./runner-BAVs-p6Z.js";
22
+ import "./image-lCS3o9xj.js";
23
+ import "./models-config-CEMioDUi.js";
24
24
  import "./pi-model-discovery-4uUnLc3n.js";
25
- import "./pi-embedded-helpers-BgdB5kvy.js";
26
- import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-B6N8cV4d.js";
27
- import "./chrome-DU2ZysN3.js";
25
+ import "./pi-embedded-helpers-Bs4eMaNo.js";
26
+ import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-HZ_uilsn.js";
27
+ import "./chrome-CSJzpT9Z.js";
28
28
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-D5dKabOc.js";
29
29
  import { t as safeEqualSecret } from "./secret-equal-D7A3Bol7.js";
30
30
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-B2SPYrh4.js";
31
31
  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-C7EXRv8z.js";
32
32
  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-B741uFtk.js";
33
- import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-CCBZN8a0.js";
33
+ import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-VlF1_hYj.js";
34
34
  import { d as hasBinary } from "./frontmatter-DWQhtOo7.js";
35
- import { r as buildWorkspaceSkillSnapshot } from "./skills-6jdJQ5ZL.js";
36
- import "./routes-BAZTZNuQ.js";
35
+ import { r as buildWorkspaceSkillSnapshot } from "./skills-DqQUtOph.js";
36
+ import "./routes-CVwRcA9D.js";
37
37
  import "./redact-f-Q-hFt_.js";
38
38
  import { a as isErrno, n as formatErrorMessage } from "./errors-BF3TeRH2.js";
39
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CUjO1ca2.js";
40
- import "./paths-BBm9fwuG.js";
39
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CTDvb1DF.js";
40
+ import "./paths-CT6jsi4E.js";
41
41
  import { t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
42
- import { c as detectMime } from "./image-ops-1OJMSAUX.js";
43
- import "./store-r1DJSDq-.js";
44
- import { a as inspectPortUsage, r as ensurePortAvailable, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
42
+ import { c as detectMime } from "./image-ops-DYbDWaIA.js";
43
+ import "./store-DvtcmOKj.js";
44
+ import { a as inspectPortUsage, r as ensurePortAvailable, s as formatPortDiagnostics } from "./ports-OZQlocB7.js";
45
45
  import "./trash-DcMh1i4B.js";
46
- import { B as resolveAgentMainSessionKey, H as resolveMainSessionKey, M as evaluateSessionFreshness, P as resolveSessionResetPolicy, U as resolveMainSessionKeyFromConfig, Y as cleanStaleLockFiles, _ as mergeDeliveryContext, d as updateSessionStore, h as deliveryContextFromSession, n as parseSessionThreadInfo, o as loadSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-Cpgnq0pA.js";
47
- import "./dock-BhS32F6E.js";
48
- import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
49
- import { n as resolveWhatsAppAccount } from "./accounts-DDuIpcln.js";
50
- import "./accounts-bK-Yqdwx.js";
51
- import "./accounts-DyJN4_vR.js";
52
- import { t as buildChannelAccountBindings } from "./bindings-DFaVVCsf.js";
46
+ import { B as resolveAgentMainSessionKey, H as resolveMainSessionKey, M as evaluateSessionFreshness, P as resolveSessionResetPolicy, U as resolveMainSessionKeyFromConfig, Y as cleanStaleLockFiles, _ as mergeDeliveryContext, d as updateSessionStore, h as deliveryContextFromSession, n as parseSessionThreadInfo, o as loadSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-jTAGYjWl.js";
47
+ import "./dock-BYiRZSgZ.js";
48
+ import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BAyxWQSz.js";
49
+ import { n as resolveWhatsAppAccount } from "./accounts-Cd816n6l.js";
50
+ import "./accounts-CokRskCl.js";
51
+ import "./accounts-mN_EcgxC.js";
52
+ import { t as buildChannelAccountBindings } from "./bindings-ChzePa8q.js";
53
53
  import "./logging-w5jq5901.js";
54
- import "./send-DVm0du0_.js";
54
+ import "./send-CXFTeD_J.js";
55
55
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, s as resolveSessionTranscriptsDirForAgent } from "./paths-CyhzMxFA.js";
56
- import "./tool-images-DvUBlqjX.js";
56
+ import "./tool-images-B-pqX3nX.js";
57
57
  import "./tool-display-D8N3rsYt.js";
58
58
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
59
- import "./api-key-rotation-CzuPlV2t.js";
60
- import "./local-roots-aAFLQGkY.js";
61
- import "./sqlite-Dx3J_aSE.js";
62
- import { n as loadModelCatalog } from "./model-catalog-8Son0J4O.js";
59
+ import "./api-key-rotation-CEr3lKih.js";
60
+ import "./local-roots-BBeKX7PX.js";
61
+ import "./sqlite-BV5ILFtC.js";
62
+ import { n as loadModelCatalog } from "./model-catalog-CvbwxWuC.js";
63
63
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BuceUQDl.js";
64
- import { r as getMachineDisplayName } from "./with-timeout-CtVdu_1U.js";
65
- import { C as getGlobalHookRunner, T as runGlobalGatewayStopSafely, t as deliverOutboundPayloads } from "./deliver-B4KZ6-oZ.js";
64
+ import { r as getMachineDisplayName } from "./with-timeout-Cm5EhxG_.js";
65
+ import { C as getGlobalHookRunner, T as runGlobalGatewayStopSafely, t as deliverOutboundPayloads } from "./deliver-BYdNAEqj.js";
66
66
  import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-CH0skkp6.js";
67
67
  import "./diagnostic-session-state-CUslJyKP.js";
68
- import "./send-B3RdXvjC.js";
69
- import "./model-tWhwnFf8.js";
70
- import { a as resolveAgentIdentity } from "./reply-prefix-CE2YmmsD.js";
71
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-DDumUksr.js";
72
- import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
68
+ import "./send-DT-5buW5.js";
69
+ import "./model-CeeOcylL.js";
70
+ import { a as resolveAgentIdentity } from "./reply-prefix-BLOOs1aW.js";
71
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-DhkRAIdT.js";
72
+ import { i as resolveMemorySearchConfig } from "./manager-C1CfGzZ2.js";
73
73
  import "./retry-BoS4e4X_.js";
74
- import { a as ToolInputError } from "./target-errors-7AvoVa10.js";
74
+ import { a as ToolInputError } from "./target-errors-CCz79CmV.js";
75
75
  import "./chunk-1dhPX1NK.js";
76
- import "./markdown-tables-CEbN0fEm.js";
77
- import "./ir-DZam9q5M.js";
76
+ import "./markdown-tables-ZwP14ydw.js";
77
+ import "./ir-Dt4hOzxG.js";
78
78
  import "./render-CXDO_kgw.js";
79
- import { r as isRestartEnabled } from "./commands-BNLCWX6e.js";
80
- import "./commands-registry-BT0-zzs3.js";
81
- import { $t as verifyDeviceSignature, At as PROTOCOL_VERSION, Ft as buildDeviceAuthPayload, Ht as requestDevicePairing, It as approveDevicePairing, Jt as roleScopesAllow, Kt as updatePairedDeviceMetadata, Lt as ensureDeviceToken, Mt as errorShape, Qt as normalizeDevicePublicKeyBase64Url, R as validateExecApprovalRequestParams, Rt as getPairedDevice, Xt as deriveDeviceIdFromPublicKey, at as validateRequestFrame, jt as ErrorCodes, n as formatValidationErrors, qt as verifyDeviceToken, w as validateConnectParams, z as validateExecApprovalResolveParams } from "./client-jI1oE0_k.js";
82
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-DwpGquzW.js";
83
- import "./pairing-token-CX3NN_qj.js";
79
+ import { r as isRestartEnabled } from "./commands-CtocZ4Lg.js";
80
+ import "./commands-registry-BZ0ZSQpM.js";
81
+ import { $t as verifyDeviceSignature, At as PROTOCOL_VERSION, Ft as buildDeviceAuthPayload, Ht as requestDevicePairing, It as approveDevicePairing, Jt as roleScopesAllow, Kt as updatePairedDeviceMetadata, Lt as ensureDeviceToken, Mt as errorShape, Qt as normalizeDevicePublicKeyBase64Url, R as validateExecApprovalRequestParams, Rt as getPairedDevice, Xt as deriveDeviceIdFromPublicKey, at as validateRequestFrame, jt as ErrorCodes, n as formatValidationErrors, qt as verifyDeviceToken, w as validateConnectParams, z as validateExecApprovalResolveParams } from "./client-Bj_vTpri.js";
82
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-tmHtVCkn.js";
83
+ import "./pairing-token-AV-MMfVE.js";
84
84
  import "./channel-activity-BOiuJS3t.js";
85
85
  import "./fetch-DTNGXEzX.js";
86
- import "./tables-BEzT0Da4.js";
87
- import "./send-Bm4ULEzh.js";
88
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-CK726Dzq.js";
86
+ import "./tables-C38rzF6E.js";
87
+ import "./send-JWV62VbW.js";
88
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-B8ktu-6j.js";
89
89
  import "./proxy-DU7W9XSc.js";
90
90
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
91
91
  import { n as runCommandWithRuntime } from "./cli-utils-DN_hM6ov.js";
92
92
  import { t as formatHelpExamples } from "./help-format-B_-M23wP.js";
93
93
  import { n as withProgress } from "./progress-jIePzvGA.js";
94
- import "./resolve-route-BMoTaVAH.js";
95
- import "./replies-BMqtgBhh.js";
96
- import { S as registerSkillsChangeListener, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, l as refreshRemoteBinsForConnectedNodes, o as getRemoteSkillEligibility, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion } from "./skill-commands-Cxw-jNxU.js";
97
- import "./workspace-dirs-GpkFi6Kw.js";
98
- import "./pi-auth-json-zHckislA.js";
94
+ import "./resolve-route-BcnaXYvh.js";
95
+ import "./replies-Dy92jzrz.js";
96
+ import { S as registerSkillsChangeListener, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, l as refreshRemoteBinsForConnectedNodes, o as getRemoteSkillEligibility, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion } from "./skill-commands-ZXbEITKi.js";
97
+ import "./workspace-dirs-DKu48umx.js";
98
+ import "./pi-auth-json-FpfHyEcu.js";
99
99
  import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-cost-usage-BXAI7CNH.js";
100
- import "./outbound-attachment-Bw-c5Cdp.js";
100
+ import "./outbound-attachment-Qfh5dlsg.js";
101
101
  import "./delivery-queue-CAxX6nGq.js";
102
- import "./send-9SapUCg7.js";
103
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DFvWPFhU.js";
102
+ import "./send-DsSI8z3F.js";
103
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-CdPNw25E.js";
104
104
  import "./prompt-style-CnkMpSXt.js";
105
- import "./pairing-labels-DyXoD1DS.js";
105
+ import "./pairing-labels-Dxb898X5.js";
106
106
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-BgUx3Bm4.js";
107
107
  import { t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-DXM2pQYL.js";
108
- import "./nodes-screen-8Bq7DiSa.js";
109
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DRWb_Cax.js";
110
- import "./control-service-BYKXzY4f.js";
108
+ import "./nodes-screen-Cd49cSPb.js";
109
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-BBxnqCay.js";
110
+ import "./control-service-BBnhN7aZ.js";
111
111
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CvFURHzt.js";
112
- import { n as resolveMessageChannelSelection } from "./channel-selection-V2xDgw16.js";
112
+ import { n as resolveMessageChannelSelection } from "./channel-selection-DaJDux-Q.js";
113
113
  import { i as onHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-ChEo5Zvk.js";
114
114
  import { t as ensureSymiCliOnPath } from "./path-env-BaQ2E7uD.js";
115
115
  import "./runtime-guard-Dik20CVM.js";
116
- import { t as forceFreePortAndWait } from "./ports-DtW62rqS.js";
116
+ import { t as forceFreePortAndWait } from "./ports-u9lWy2Jt.js";
117
117
  import "./catalog-NQ4pj9RI.js";
118
- import "./skills-status-C3ptXwnh.js";
118
+ import "./skills-status-Cjsh8we0.js";
119
119
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-BvU3-DRl.js";
120
120
  import { n as inheritOptionFromParent } from "./command-options-BkTXKWlb.js";
121
121
  import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
122
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CP0nONRL.js";
123
- import "./install-safe-path-D3Uz77u7.js";
124
- import "./skill-scanner-hMtQbWPV.js";
125
- import "./channels-status-issues-CJ0Vb_9z.js";
126
- import "./daemon-runtime-mE1b-Q48.js";
127
- import "./systemd-DT6SbCim.js";
128
- import "./service-osK70kTZ.js";
129
- import "./lifecycle-core-C4HzGXA1.js";
130
- import "./systemd-hints-xYZbFny_.js";
122
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DwIrzVOA.js";
123
+ import "./install-safe-path-D3mg1DMG.js";
124
+ import "./skill-scanner-w3DJvw1Q.js";
125
+ import "./channels-status-issues-B_PI3nEE.js";
126
+ import "./daemon-runtime-u01h46bE.js";
127
+ import "./systemd-CevHlgD4.js";
128
+ import "./service-D80PyJxB.js";
129
+ import "./lifecycle-core-DxmxQdhS.js";
130
+ import "./systemd-hints-DmgRnw1L.js";
131
131
  import { t as parsePort$1 } from "./parse-port-DnJYkByg.js";
132
- import { n as addGatewayServiceCommands } from "./daemon-cli-DSDcmWOi.js";
133
- import "./diagnostics-BRwihzJG.js";
132
+ import { n as addGatewayServiceCommands } from "./daemon-cli-BccZzUb0.js";
133
+ import "./diagnostics-BrUo0gqs.js";
134
134
  import "./table-BKlH0YlA.js";
135
135
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CyVOLgNE.js";
136
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DnmJ0ABB.js";
137
- import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-DB9YkTVX.js";
136
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BV7WhIkY.js";
137
+ import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-Djfdh06o.js";
138
138
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-DUQ6tE92.js";
139
- import { r as pickGatewaySelfPresence } from "./status-ZPW5EACm.js";
140
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-D3w4YMlC.js";
141
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B7moDVHX.js";
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-CGNpTyg2.js";
144
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-CW8eFTGD.js";
145
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CObVeJLC.js";
139
+ import { r as pickGatewaySelfPresence } from "./status-nzJEZmNT.js";
140
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-o847FIt1.js";
141
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-6n-YayeS.js";
142
+ import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-DCo5RtKp.js";
143
+ import { t as runOnboardingWizard } from "./onboarding-Dn5agNG_.js";
144
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-IBEaQXPX.js";
145
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DqFdzIkc.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-BEVb1Pyx.js";
148
- import "./dm-policy-shared-DlDAGtZL.js";
149
- import "./node-service-CD47Qpf1.js";
150
- import "./status.update-CG0ciGaf.js";
151
- import "./skills-install-CWVdJkLn.js";
152
- import "./update-runner-BRKFzAwV.js";
153
- import { t as resolveAgentSessionDirs } from "./session-dirs-Dgz7kkUM.js";
147
+ import "./agents.config-Dib8Uo2P.js";
148
+ import "./dm-policy-shared-epgkayyq.js";
149
+ import "./node-service-CXzMs782.js";
150
+ import "./status.update-TlYwuzTa.js";
151
+ import "./skills-install-HGYidhrv.js";
152
+ import "./update-runner-AsKAxe31.js";
153
+ import { t as resolveAgentSessionDirs } from "./session-dirs-DPzjjra2.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";
156
156
  import * as fsSync from "node:fs";
@@ -159,7 +159,7 @@ import os from "node:os";
159
159
  import path from "node:path";
160
160
  import JSON5 from "json5";
161
161
  import chalk from "chalk";
162
- import fs$1 from "node:fs/promises";
162
+ import fsPromises from "node:fs/promises";
163
163
  import { spawn } from "node:child_process";
164
164
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
165
165
  import { z } from "zod";
@@ -1152,7 +1152,7 @@ function shouldSkipCheck(allowInTests) {
1152
1152
  }
1153
1153
  async function readState(statePath) {
1154
1154
  try {
1155
- const raw = await fs$1.readFile(statePath, "utf-8");
1155
+ const raw = await fsPromises.readFile(statePath, "utf-8");
1156
1156
  const parsed = JSON.parse(raw);
1157
1157
  return parsed && typeof parsed === "object" ? parsed : {};
1158
1158
  } catch {
@@ -1160,8 +1160,8 @@ async function readState(statePath) {
1160
1160
  }
1161
1161
  }
1162
1162
  async function writeState(statePath, state) {
1163
- await fs$1.mkdir(path.dirname(statePath), { recursive: true });
1164
- await fs$1.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1163
+ await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
1164
+ await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1165
1165
  }
1166
1166
  function sameUpdateAvailable(a, b) {
1167
1167
  if (a === b) return true;
@@ -6458,7 +6458,7 @@ function normalizeAgentPayload(payload) {
6458
6458
  async function startBrowserControlServerIfEnabled() {
6459
6459
  if (isTruthyEnvValue(process.env.SYMI_SKIP_BROWSER_CONTROL_SERVER)) return null;
6460
6460
  const override = process.env.SYMI_BROWSER_CONTROL_MODULE?.trim();
6461
- const mod = override ? await import(override) : await import("./control-service-BYKXzY4f.js").then((n) => n.t);
6461
+ const mod = override ? await import(override) : await import("./control-service-BBnhN7aZ.js").then((n) => n.t);
6462
6462
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
6463
6463
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
6464
6464
  if (!start) return null;
@@ -6686,7 +6686,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
6686
6686
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
6687
6687
  const candidate = path.join(rootReal, rel);
6688
6688
  try {
6689
- const st = await fs$1.lstat(candidate);
6689
+ const st = await fsPromises.lstat(candidate);
6690
6690
  if (st.isSymbolicLink()) return null;
6691
6691
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
6692
6692
  } catch {}
@@ -6723,8 +6723,8 @@ async function resolveA2uiRoot() {
6723
6723
  for (const dir of candidates) try {
6724
6724
  const indexPath = path.join(dir, "index.html");
6725
6725
  const bundlePath = path.join(dir, "a2ui.bundle.js");
6726
- await fs$1.stat(indexPath);
6727
- await fs$1.stat(bundlePath);
6726
+ await fsPromises.stat(indexPath);
6727
+ await fsPromises.stat(bundlePath);
6728
6728
  return dir;
6729
6729
  } catch {}
6730
6730
  return null;
@@ -6733,7 +6733,7 @@ async function resolveA2uiRootReal() {
6733
6733
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
6734
6734
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
6735
6735
  const root = await resolveA2uiRoot();
6736
- cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
6736
+ cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
6737
6737
  cachedA2uiResolvedAtMs = Date.now();
6738
6738
  resolvingA2uiRoot = null;
6739
6739
  return cachedA2uiRootReal;
@@ -6954,13 +6954,13 @@ function normalizeBasePath(rawPath) {
6954
6954
  }
6955
6955
  async function prepareCanvasRoot(rootDir) {
6956
6956
  await ensureDir(rootDir);
6957
- const rootReal = await fs$1.realpath(rootDir);
6957
+ const rootReal = await fsPromises.realpath(rootDir);
6958
6958
  try {
6959
6959
  const indexPath = path.join(rootReal, "index.html");
6960
- await fs$1.stat(indexPath);
6960
+ await fsPromises.stat(indexPath);
6961
6961
  } catch {
6962
6962
  try {
6963
- await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
6963
+ await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
6964
6964
  } catch {}
6965
6965
  }
6966
6966
  return rootReal;
@@ -7385,15 +7385,30 @@ function serveFile(res, filePath) {
7385
7385
  res.end(fs.readFileSync(filePath));
7386
7386
  }
7387
7387
  /** Cache-bust token: changes every time the gateway process starts. */
7388
- const CACHE_BUST = `v=${Date.now()}`;
7388
+ const CACHE_BUST_VERSION = `${Date.now()}`;
7389
+ /**
7390
+ * Matches `<script src="..."` or `<link ... href="..."` (or single-quoted),
7391
+ * capturing: (1) the tag + attr lead-in, (2) the opening quote, (3) the URL,
7392
+ * (4) the closing quote (back-reference to ensure quotes match). The URL
7393
+ * capture is non-greedy and restricted to `.js`, `.mjs`, or `.css` so unrelated
7394
+ * links (fonts, favicons, `type="module"` without src, etc.) are left alone.
7395
+ *
7396
+ * Tag matching is loose (`[^>]*`) so attribute order and optional attributes
7397
+ * like `type="module"` or `rel="stylesheet preload"` don't break the match.
7398
+ */
7399
+ const CACHE_BUST_TAG_RE = /(<(?:script|link)\b[^>]*?\b(?:src|href)\s*=\s*)(["'])([^"'>]+?\.(?:mjs|js|css)(?:\?[^"'>]*)?)(\2)/gi;
7400
+ function injectCacheBust(html, version = CACHE_BUST_VERSION) {
7401
+ return html.replace(CACHE_BUST_TAG_RE, (match, lead, open, url, close) => {
7402
+ if (/^(https?:)?\/\//i.test(url)) return match;
7403
+ if (/[?&]v=/.test(url)) return match;
7404
+ return `${lead}${open}${url}${url.includes("?") ? "&" : "?"}v=${version}${close}`;
7405
+ });
7406
+ }
7389
7407
  function serveIndexHtml(res, indexPath) {
7390
7408
  res.setHeader("Content-Type", "text/html; charset=utf-8");
7391
7409
  res.setHeader("Cache-Control", "no-cache");
7392
- let html = fs.readFileSync(indexPath, "utf8");
7393
- html = html.replace(/(<(?:script\s+src|link\s+rel="stylesheet"\s+href)=")([^"]+\.(?:js|css))(")/g, (_, before, url, after) => {
7394
- return `${before}${url}${url.includes("?") ? "&" : "?"}${CACHE_BUST}${after}`;
7395
- });
7396
- res.end(html);
7410
+ const html = fs.readFileSync(indexPath, "utf8");
7411
+ res.end(injectCacheBust(html));
7397
7412
  }
7398
7413
  function isSafeRelativePath(relPath) {
7399
7414
  if (!relPath) return false;
@@ -9793,7 +9808,7 @@ function resolveGatewayOwnerStatus(pid, payload, platform) {
9793
9808
  }
9794
9809
  async function readLockPayload(lockPath) {
9795
9810
  try {
9796
- const raw = await fs$1.readFile(lockPath, "utf8");
9811
+ const raw = await fsPromises.readFile(lockPath, "utf8");
9797
9812
  const parsed = JSON.parse(raw);
9798
9813
  if (typeof parsed.pid !== "number") return null;
9799
9814
  if (typeof parsed.createdAt !== "string") return null;
@@ -9827,11 +9842,11 @@ async function acquireGatewayLock(opts = {}) {
9827
9842
  const staleMs = opts.staleMs ?? DEFAULT_STALE_MS;
9828
9843
  const platform = opts.platform ?? process.platform;
9829
9844
  const { lockPath, configPath } = resolveGatewayLockPath(env);
9830
- await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
9845
+ await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
9831
9846
  const startedAt = Date.now();
9832
9847
  let lastPayload = null;
9833
9848
  while (Date.now() - startedAt < timeoutMs) try {
9834
- const handle = await fs$1.open(lockPath, "wx");
9849
+ const handle = await fsPromises.open(lockPath, "wx");
9835
9850
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
9836
9851
  const payload = {
9837
9852
  pid: process.pid,
@@ -9845,7 +9860,7 @@ async function acquireGatewayLock(opts = {}) {
9845
9860
  configPath,
9846
9861
  release: async () => {
9847
9862
  await handle.close().catch(() => void 0);
9848
- await fs$1.rm(lockPath, { force: true });
9863
+ await fsPromises.rm(lockPath, { force: true });
9849
9864
  }
9850
9865
  };
9851
9866
  } catch (err) {
@@ -9854,7 +9869,7 @@ async function acquireGatewayLock(opts = {}) {
9854
9869
  const ownerPid = lastPayload?.pid;
9855
9870
  const ownerStatus = ownerPid ? resolveGatewayOwnerStatus(ownerPid, lastPayload, platform) : "unknown";
9856
9871
  if (ownerStatus === "dead" && ownerPid) {
9857
- await fs$1.rm(lockPath, { force: true });
9872
+ await fsPromises.rm(lockPath, { force: true });
9858
9873
  continue;
9859
9874
  }
9860
9875
  if (ownerStatus !== "alive") {
@@ -9864,13 +9879,13 @@ async function acquireGatewayLock(opts = {}) {
9864
9879
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
9865
9880
  }
9866
9881
  if (!stale) try {
9867
- const st = await fs$1.stat(lockPath);
9882
+ const st = await fsPromises.stat(lockPath);
9868
9883
  stale = Date.now() - st.mtimeMs > staleMs;
9869
9884
  } catch {
9870
9885
  stale = true;
9871
9886
  }
9872
9887
  if (stale) {
9873
- await fs$1.rm(lockPath, { force: true });
9888
+ await fsPromises.rm(lockPath, { force: true });
9874
9889
  continue;
9875
9890
  }
9876
9891
  }
@@ -11775,7 +11790,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11775
11790
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
11776
11791
  if (!minimalTestGateway) (async () => {
11777
11792
  const { recoverPendingDeliveries } = await import("./delivery-queue-CAxX6nGq.js").then((n) => n.n);
11778
- const { deliverOutboundPayloads } = await import("./deliver-B4KZ6-oZ.js").then((n) => n.n);
11793
+ const { deliverOutboundPayloads } = await import("./deliver-BYdNAEqj.js").then((n) => n.n);
11779
11794
  await recoverPendingDeliveries({
11780
11795
  deliver: deliverOutboundPayloads,
11781
11796
  log: log.child("delivery-recovery"),
@@ -11848,7 +11863,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11848
11863
  });
11849
11864
  let glassUiBridgeCleanup = null;
11850
11865
  if (!minimalTestGateway) {
11851
- const { createGlassUiBridge } = await import("./glass-ui-ws-DoIZyE9O.js");
11866
+ const { createGlassUiBridge } = await import("./glass-ui-ws-D3tAmqKX.js");
11852
11867
  glassUiBridgeCleanup = createGlassUiBridge({
11853
11868
  wss: glassUiWss,
11854
11869
  context: gatewayRequestContext,
@@ -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-DQHg3jUV.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-CzS4CfnV.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-BjI_Yyr5.js";
133
133
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CA_XIzr_.js";
134
- import { i as pickGatewaySelfPresence } from "./status-DfPfMVNZ.js";
135
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-cVvZdeDu.js";
134
+ import { i as pickGatewaySelfPresence } from "./status-BJtbD-cG.js";
135
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-DQEqLYg1.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-Dp7p6zKa.js";
139
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-CWcLut3F.js";
140
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CYC70eKy.js";
138
+ import { t as runOnboardingWizard } from "./onboarding-DktESmTv.js";
139
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-B0pdetGJ.js";
140
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BylbQyP9.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-BKCY6F2A.js";
142
+ import "./agents.config-5PTwsijs.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-DVa6cMqp.js";
147
+ import "./update-runner-JcdOHr71.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";
@@ -7381,15 +7381,30 @@ function serveFile(res, filePath) {
7381
7381
  res.end(fs.readFileSync(filePath));
7382
7382
  }
7383
7383
  /** Cache-bust token: changes every time the gateway process starts. */
7384
- const CACHE_BUST = `v=${Date.now()}`;
7384
+ const CACHE_BUST_VERSION = `${Date.now()}`;
7385
+ /**
7386
+ * Matches `<script src="..."` or `<link ... href="..."` (or single-quoted),
7387
+ * capturing: (1) the tag + attr lead-in, (2) the opening quote, (3) the URL,
7388
+ * (4) the closing quote (back-reference to ensure quotes match). The URL
7389
+ * capture is non-greedy and restricted to `.js`, `.mjs`, or `.css` so unrelated
7390
+ * links (fonts, favicons, `type="module"` without src, etc.) are left alone.
7391
+ *
7392
+ * Tag matching is loose (`[^>]*`) so attribute order and optional attributes
7393
+ * like `type="module"` or `rel="stylesheet preload"` don't break the match.
7394
+ */
7395
+ const CACHE_BUST_TAG_RE = /(<(?:script|link)\b[^>]*?\b(?:src|href)\s*=\s*)(["'])([^"'>]+?\.(?:mjs|js|css)(?:\?[^"'>]*)?)(\2)/gi;
7396
+ function injectCacheBust(html, version = CACHE_BUST_VERSION) {
7397
+ return html.replace(CACHE_BUST_TAG_RE, (match, lead, open, url, close) => {
7398
+ if (/^(https?:)?\/\//i.test(url)) return match;
7399
+ if (/[?&]v=/.test(url)) return match;
7400
+ return `${lead}${open}${url}${url.includes("?") ? "&" : "?"}v=${version}${close}`;
7401
+ });
7402
+ }
7385
7403
  function serveIndexHtml(res, indexPath) {
7386
7404
  res.setHeader("Content-Type", "text/html; charset=utf-8");
7387
7405
  res.setHeader("Cache-Control", "no-cache");
7388
- let html = fs.readFileSync(indexPath, "utf8");
7389
- html = html.replace(/(<(?:script\s+src|link\s+rel="stylesheet"\s+href)=")([^"]+\.(?:js|css))(")/g, (_, before, url, after) => {
7390
- return `${before}${url}${url.includes("?") ? "&" : "?"}${CACHE_BUST}${after}`;
7391
- });
7392
- res.end(html);
7406
+ const html = fs.readFileSync(indexPath, "utf8");
7407
+ res.end(injectCacheBust(html));
7393
7408
  }
7394
7409
  function isSafeRelativePath(relPath) {
7395
7410
  if (!relPath) return false;
@@ -11844,7 +11859,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11844
11859
  });
11845
11860
  let glassUiBridgeCleanup = null;
11846
11861
  if (!minimalTestGateway) {
11847
- const { createGlassUiBridge } = await import("./glass-ui-ws-D0UYleBF.js");
11862
+ const { createGlassUiBridge } = await import("./glass-ui-ws-CvUFd4C6.js");
11848
11863
  glassUiBridgeCleanup = createGlassUiBridge({
11849
11864
  wss: glassUiWss,
11850
11865
  context: gatewayRequestContext,
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
2
- import { n as callGateway } from "./call-DwpGquzW.js";
2
+ import { n as callGateway } from "./call-tmHtVCkn.js";
3
3
  import { n as withProgress } from "./progress-jIePzvGA.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts