@symerian/symi 3.3.1 → 3.3.3

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 (257) hide show
  1. package/dist/{agent-BI1-UXxQ.js → agent-9zPi5Bip.js} +2 -5
  2. package/dist/{agent-DeLysRUa.js → agent-M9EC02CI.js} +17 -20
  3. package/dist/{agent-scope-BjEBQhs0.js → agent-scope-B_oqIiaD.js} +18 -18
  4. package/dist/{agent-scope-DE5eEsvh.js → agent-scope-D_MtsuXX.js} +2 -2
  5. package/dist/{agents-BMRZpxNt.js → agents-CW9uf_n0.js} +2 -2
  6. package/dist/{agents.config-BFKM-a83.js → agents.config-B_LFeRQS.js} +1 -1
  7. package/dist/{audit-DQ_p2Pbq.js → audit-B_HL4UJ_.js} +20 -20
  8. package/dist/{auth-choice-BGZsmh6a.js → auth-choice-Bio1-QUP.js} +8 -8
  9. package/dist/{auth-choice-T77Ymi34.js → auth-choice-DS5oaUTz.js} +1 -1
  10. package/dist/{auth-profiles-BVtpxYtY.js → auth-profiles-CPlXilKu.js} +9 -9
  11. package/dist/{auth-profiles-B6ISm3Th.js → auth-profiles-duUuQXeC.js} +3 -3
  12. package/dist/{auth-token-CPluo60n.js → auth-token-DTj2WrbV.js} +1 -1
  13. package/dist/{banner-BJHky-bq.js → banner-0vT1O9w2.js} +1 -1
  14. package/dist/{browser-cli-O7Ic8DI3.js → browser-cli-C-Q0t9y_.js} +9 -9
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +29 -32
  17. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  18. package/dist/bundled/session-memory/handler.js +28 -28
  19. package/dist/{call-CdXXPXpo.js → call-Du4CT1Hp.js} +9 -9
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-BrDTgiiV.js → channel-options-CcGtiy0Q.js} +1 -1
  22. package/dist/{channel-options-C1yi5h7A.js → channel-options-DZ17japQ.js} +1 -1
  23. package/dist/{channels-cli-BYeGzy-G.js → channels-cli-BSvEpjOV.js} +10 -10
  24. package/dist/{channels-cli-Pxe1OINS.js → channels-cli-DxSXTCCh.js} +55 -55
  25. package/dist/{chrome-FAf5DZL2.js → chrome-C9mX2mtt.js} +3 -3
  26. package/dist/{chrome-NUKborg3.js → chrome-owBWinlj.js} +2 -2
  27. package/dist/{chunk-DX6VtywY.js → chunk-5H33X8qU.js} +1 -1
  28. package/dist/{cli-Dt-wfm_7.js → cli-CHk4wR-F.js} +7 -7
  29. package/dist/{cli-DFNOC2Ad.js → cli-Dn9ylBb2.js} +43 -43
  30. package/dist/{client-Bs2zB0rY.js → client-ZZqt0H0-.js} +1 -1
  31. package/dist/{command-registry-BwbT4ll7.js → command-registry-UxY6jjeo.js} +10 -10
  32. package/dist/{commands-registry-C5IdtVVy.js → commands-registry-DaPrWQSe.js} +4 -4
  33. package/dist/{commands-registry-DYk02tmt.js → commands-registry-W2GQIywv.js} +1 -1
  34. package/dist/{completion-cli-DiNUqrNY.js → completion-cli-DebZ6nSb.js} +12 -12
  35. package/dist/{completion-cli-CyOSA5xZ.js → completion-cli-m9L2Gv9t.js} +2 -2
  36. package/dist/{config-CW8aDVM0.js → config-CphS_6eg.js} +2 -2
  37. package/dist/{config-cli-DBU_S417.js → config-cli-D4_gO3Pd.js} +4 -4
  38. package/dist/{config-cli-DfG0nukz.js → config-cli-D9YdRiN2.js} +1 -1
  39. package/dist/{config-guard-CNmD3-IC.js → config-guard-B5BwQ-AP.js} +6 -6
  40. package/dist/{config-validation-Bz5CV181.js → config-validation-A2rXGvVY.js} +1 -1
  41. package/dist/{configure-BkH4ueot.js → configure-BXjJQG1p.js} +14 -14
  42. package/dist/{configure-BYu2DI_6.js → configure-D9NeIMjP.js} +2 -2
  43. package/dist/{consolidate-Cx7qF5Ht.js → consolidate-7Usm-b2g.js} +6 -6
  44. package/dist/{consolidate-dh1m3X1s.js → consolidate-C-HKdAJo.js} +2 -2
  45. package/dist/{control-service-Drd2sr2o.js → control-service-CMVDL3Yl.js} +4 -4
  46. package/dist/{control-ui-assets-D22DSxhv.js → control-ui-assets-DUhvOLUL.js} +1 -1
  47. package/dist/{cron-cli-BTAdnRhX.js → cron-cli-DR4W075u.js} +7 -7
  48. package/dist/{daemon-cli-BY9BFNuw.js → daemon-cli-B__05b-d.js} +11 -11
  49. package/dist/{daemon-runtime-BH3ZBZXS.js → daemon-runtime-BD-3XS8R.js} +10 -10
  50. package/dist/{deliver-DZ7ynJYH.js → deliver-63FtOVMC.js} +3 -3
  51. package/dist/{deliver-Dlq2X0K5.js → deliver-DSMNXd9k.js} +1 -1
  52. package/dist/{deliver-kmnOOp9j.js → deliver-DSv-Z24A.js} +16 -16
  53. package/dist/{deliver-CRqS1O8w.js → deliver-DcP6aVt4.js} +1 -1
  54. package/dist/{deps-i1g0Zpz4.js → deps-DD_ZCq3v.js} +1 -1
  55. package/dist/{devices-cli-Cqi6L8PH.js → devices-cli-CJom2K8b.js} +6 -6
  56. package/dist/{diagnostic-CQLyE7_n.js → diagnostic-D7z6O7v0.js} +1 -1
  57. package/dist/{diagnostics-nLP2i_BY.js → diagnostics-DxdqTfpW.js} +5 -5
  58. package/dist/{directory-cli-B0XsBWso.js → directory-cli-BwhEj1FE.js} +3 -3
  59. package/dist/{dm-policy-shared-CnKffdt_.js → dm-policy-shared-C1TQOlkZ.js} +1 -1
  60. package/dist/{dns-cli-BHWlCG31.js → dns-cli-DzQDEQM2.js} +3 -3
  61. package/dist/{docs-cli-DASNErN-.js → docs-cli--T-77Ujn.js} +1 -1
  62. package/dist/{doctor-completion-DqvmZZEo.js → doctor-completion--AgLv0kV.js} +1 -1
  63. package/dist/{doctor-completion-D_cwpDAq.js → doctor-completion-D1ImH_eM.js} +2 -2
  64. package/dist/{doctor-config-flow-BvHSaiFy.js → doctor-config-flow-4UT3396o.js} +9 -9
  65. package/dist/entry.js +1 -1
  66. package/dist/{exec-approvals-cli-CyHTywue.js → exec-approvals-cli-D-MLmhzh.js} +13 -13
  67. package/dist/extensionAPI.js +5 -5
  68. package/dist/{frontmatter-BW7tVmn4.js → frontmatter-BzAaXBfE.js} +2 -2
  69. package/dist/{fs-safe-DjAKGGJ8.js → fs-safe-B6nMaZqV.js} +6 -6
  70. package/dist/{gateway-cli-BBqSqFGV.js → gateway-cli-5KVJJGFm.js} +97 -117
  71. package/dist/{gateway-cli-BYGA5ex3.js → gateway-cli-BjGvnfU3.js} +15 -35
  72. package/dist/{gateway-rpc-BJF1iDnx.js → gateway-rpc-CUIXRk2t.js} +1 -1
  73. package/dist/{glass-ui-ws-NJNiRFL3.js → glass-ui-ws-CwJdwqn6.js} +65 -65
  74. package/dist/{glass-ui-ws-DJnV8nJK.js → glass-ui-ws-f_OPXcN2.js} +11 -11
  75. package/dist/{health-D59E1VfO.js → health-BdxlhiXA.js} +4 -4
  76. package/dist/{hooks-cli-Bidz8ACz.js → hooks-cli-BfVq5C1p.js} +57 -57
  77. package/dist/{hooks-cli-CyjEjDSY.js → hooks-cli-CQ6rF_LQ.js} +8 -8
  78. package/dist/{image-ops-c7_of0HT.js → image-ops-C-gIIp7Q.js} +10 -10
  79. package/dist/index.js +50 -50
  80. package/dist/{inspect-op0Ov-v4.js → inspect-BDzd6yBs.js} +4 -4
  81. package/dist/{install-safe-path-B73BkVO3.js → install-safe-path-CQXx3s9R.js} +11 -11
  82. package/dist/{installs-ZXEjR9Sp.js → installs-CLp95gcX.js} +10 -10
  83. package/dist/{internal-C3o_xyzP.js → internal-CHnZdvRy.js} +9 -9
  84. package/dist/{lifecycle-core-zhQYm_ni.js → lifecycle-core-_BlNODTH.js} +5 -5
  85. package/dist/llm-slug-generator.js +28 -28
  86. package/dist/{local-roots-CTriU02e.js → local-roots-JhQs5w0I.js} +1 -1
  87. package/dist/{local-roots-Dm8-ErgQ.js → local-roots-WWcVq0Ma.js} +3 -3
  88. package/dist/{logs-cli-B7RJ57Dc.js → logs-cli-BEWOyW5R.js} +7 -7
  89. package/dist/{manager-CpBl-VGg.js → manager-BI8o6AGu.js} +1 -1
  90. package/dist/{manager-9dNT9kNF.js → manager-BQ5Wl5r-.js} +14 -14
  91. package/dist/{manager-t4GthPGw.js → manager-BUS2wGkQ.js} +1 -1
  92. package/dist/{manager-Dsdh0rGn.js → manager-D_AVoLu8.js} +6 -6
  93. package/dist/{manifest-registry-B2vClvK5.js → manifest-registry-DsTUFMvZ.js} +1 -1
  94. package/dist/{markdown-tables-BaWa2kOe.js → markdown-tables-ptfgMe6b.js} +1 -1
  95. package/dist/{memory-DcWXMzOH.js → memory-2OKjMT7V.js} +5 -5
  96. package/dist/{memory-B7TJXpqS.js → memory-CMKSFx1T.js} +2 -2
  97. package/dist/{memory-cli-xBZPEOeL.js → memory-cli-CmPcKzGZ.js} +12 -12
  98. package/dist/{memory-cli-C0WA_nRS.js → memory-cli-rdfaJrCS.js} +2 -2
  99. package/dist/{model-BXWgh5eZ.js → model-BKtw-Bqs.js} +1 -1
  100. package/dist/{model-catalog-BGVslwAT.js → model-catalog-DKBhNiWm.js} +4 -4
  101. package/dist/{model-picker-aTfyp_mP.js → model-picker-DKzvan7c.js} +3 -3
  102. package/dist/{models-IfAFy9bK.js → models-DRtgYyTB.js} +2 -2
  103. package/dist/{models-cli-h8h_qu3F.js → models-cli-183sPHZO.js} +53 -53
  104. package/dist/{models-cli-DiB4JqF2.js → models-cli-DN2zTFw9.js} +9 -9
  105. package/dist/{models-config-DRgHv7Ss.js → models-config-CFUwiu4W.js} +7 -7
  106. package/dist/{node-cli-BPkbqgRt.js → node-cli-CgWAxe-K.js} +27 -27
  107. package/dist/{node-service-DuN9eBL6.js → node-service-tPO_yUk7.js} +1 -1
  108. package/dist/{nodes-cli-C09c6nCf.js → nodes-cli-CprJ5K63.js} +10 -10
  109. package/dist/{nodes-screen-CT94yu_w.js → nodes-screen-JELuBMBi.js} +4 -4
  110. package/dist/{npm-registry-spec-B8X06AqB.js → npm-registry-spec-BXw_6vF6.js} +9 -9
  111. package/dist/{onboard-sMgEOBjV.js → onboard-CPHA8CdV.js} +13 -13
  112. package/dist/{onboard-iL7Z0wKJ.js → onboard-bTgNnEHK.js} +1 -1
  113. package/dist/{onboard-channels-Deq8QGnM.js → onboard-channels-B_iyN1qL.js} +4 -4
  114. package/dist/{onboard-channels-BfzW-9vo.js → onboard-channels-D5ugcgBE.js} +1 -1
  115. package/dist/{onboard-custom-DEdRdzNq.js → onboard-custom-Cla8O-Tv.js} +3 -3
  116. package/dist/{onboard-helpers-DZKHFY2J.js → onboard-helpers-D2mWJnFB.js} +8 -8
  117. package/dist/{onboard-hooks-DZZM8goM.js → onboard-hooks-DZD-nGLB.js} +1 -1
  118. package/dist/{onboard-remote-dn4L5WdE.js → onboard-remote-Bi2BNRnh.js} +1 -1
  119. package/dist/{onboard-skills-DGHye9Q3.js → onboard-skills-C0XDXvWw.js} +4 -4
  120. package/dist/{onboarding-BjXYbWlg.js → onboarding-D2SLzcWH.js} +12 -12
  121. package/dist/{onboarding-70YKbZi6.js → onboarding-ii3ok0Ih.js} +3 -3
  122. package/dist/{onboarding.finalize-dU_CtL43.js → onboarding.finalize-DOHv_Xe8.js} +31 -31
  123. package/dist/{onboarding.finalize-Ch3V08eY.js → onboarding.finalize-g-_d-wVY.js} +4 -4
  124. package/dist/{onboarding.gateway-config-DfF8Rxvn.js → onboarding.gateway-config-BmaAH8uo.js} +8 -8
  125. package/dist/{openai-model-default-D1NFHFF_.js → openai-model-default-BeRT9S75.js} +2 -2
  126. package/dist/{pairing-cli-CJv8LQfb.js → pairing-cli-DdtW6Nu-.js} +4 -4
  127. package/dist/{pairing-store-CxT0UGxd.js → pairing-store-mmeniyUt.js} +1 -1
  128. package/dist/{pairing-token-DorpwP8O.js → pairing-token-CURbSHdi.js} +7 -7
  129. package/dist/{paths-DaQrPPet.js → paths-Dc6A9_vI.js} +1 -1
  130. package/dist/{pi-auth-json-DGZH6URT.js → pi-auth-json-1Z1j1PDI.js} +5 -5
  131. package/dist/{pi-auth-json-BzuhVcKu.js → pi-auth-json-D4Bl4hBw.js} +1 -1
  132. package/dist/{pi-embedded-DOCVZrmx.js → pi-embedded-CvGL6bij.js} +39 -212
  133. package/dist/{pi-embedded-helpers-Be-EeyzH.js → pi-embedded-helpers-BRM8EM4P.js} +6 -6
  134. package/dist/{pi-tools.policy-qwS9SXOa.js → pi-tools.policy-BBHbN8Nh.js} +3 -3
  135. package/dist/{plugin-auto-enable-zDUaiaf2.js → plugin-auto-enable-BCwyDNSP.js} +1 -1
  136. package/dist/{plugin-registry-BgGVB3kW.js → plugin-registry-DSG-0min.js} +3 -3
  137. package/dist/{plugin-registry-CP2mbhwk.js → plugin-registry-Dl3HqI5J.js} +1 -1
  138. package/dist/plugin-sdk/agents/{symipulse-timeout.d.ts → idle-timeout.d.ts} +3 -3
  139. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +0 -2
  140. package/dist/plugin-sdk/agents/system-prompt.d.ts +1 -2
  141. package/dist/plugin-sdk/auto-reply/reply/middleware-transcript-update.d.ts +1 -8
  142. package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +1 -3
  143. package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +0 -1
  144. package/dist/plugin-sdk/auto-reply/tokens.d.ts +0 -3
  145. package/dist/plugin-sdk/gateway/outbound-filter.d.ts +2 -4
  146. package/dist/{plugins-yymezpEd.js → plugins-CcVzjOo_.js} +1 -1
  147. package/dist/{plugins-cli-1wkCRsFe.js → plugins-cli-CEj-qNus.js} +8 -8
  148. package/dist/{plugins-cli-B_Gtx3LU.js → plugins-cli-CUTyMzoz.js} +52 -52
  149. package/dist/{ports-ChuJYhEL.js → ports-DRHSHvqY.js} +1 -1
  150. package/dist/{ports-EAVAOFyK.js → ports-DqxP-bXz.js} +2 -2
  151. package/dist/{program-UyCr49qs.js → program-CjZ65fN4.js} +13 -13
  152. package/dist/{program-context-C7uCS8z7.js → program-context-GaV454D6.js} +38 -38
  153. package/dist/{prompt-select-styled-DcMra8CK.js → prompt-select-styled-BkowcFQR.js} +36 -36
  154. package/dist/{prompt-select-styled-BRcRFLzB.js → prompt-select-styled-CwXc8EFB.js} +4 -4
  155. package/dist/{provider-auth-helpers-Xn1TAPPY.js → provider-auth-helpers-Bo1_RSEb.js} +5 -5
  156. package/dist/{provider-auth-helpers-BJTb9xI0.js → provider-auth-helpers-CRobCJR_.js} +1 -1
  157. package/dist/{push-apns-Aaqf9WKI.js → push-apns-BBym2pAw.js} +4 -4
  158. package/dist/{push-apns-Bfqnchj6.js → push-apns-Bv16DYOL.js} +1 -1
  159. package/dist/{pw-ai-C-ddUgTA.js → pw-ai-BW5obXRK.js} +7 -7
  160. package/dist/{pw-ai-DJrnU1ja.js → pw-ai-GICi0s74.js} +8 -8
  161. package/dist/{qmd-manager-D5kqCz-Y.js → qmd-manager-C-J9Sfjk.js} +19 -19
  162. package/dist/{qmd-manager-DrM6m9z1.js → qmd-manager-CTHJcHPq.js} +5 -5
  163. package/dist/{qr-cli-B_mw4i0R.js → qr-cli-BIdgVMK1.js} +3 -3
  164. package/dist/{register.agent-vAJ0_4m0.js → register.agent-QXqsCc-q.js} +12 -12
  165. package/dist/{register.agent-BqKNzdaW.js → register.agent-z4GJgPr-.js} +65 -65
  166. package/dist/{register.configure-BzgavjpU.js → register.configure-CYXErdjF.js} +11 -11
  167. package/dist/{register.configure-7TmTqCgU.js → register.configure-DaMmDTaj.js} +68 -68
  168. package/dist/{register.maintenance-BJO0RCk9.js → register.maintenance-CBGhJ5R9.js} +12 -12
  169. package/dist/{register.maintenance-6Wz4HXlm.js → register.maintenance-CcWTycM4.js} +65 -65
  170. package/dist/{register.message-XYivyrQJ.js → register.message-Bcvdcd3v.js} +45 -45
  171. package/dist/{register.message-CW9PahRi.js → register.message-EMkIi8Ga.js} +8 -8
  172. package/dist/{register.onboard-BgwkmP4D.js → register.onboard-CtcLKgR4.js} +22 -22
  173. package/dist/{register.onboard-MWRC29wD.js → register.onboard-lmLaYYZl.js} +2 -2
  174. package/dist/{register.setup-V-arsKvb.js → register.setup-Cu8R_HaH.js} +2 -2
  175. package/dist/{register.setup-7OoAqQG_.js → register.setup-D47FYXH2.js} +25 -25
  176. package/dist/{register.status-health-sessions-1VnuXhGM.js → register.status-health-sessions--q6ddHX9.js} +3 -3
  177. package/dist/{register.status-health-sessions-Bgg1sdY_.js → register.status-health-sessions-B9CINBWm.js} +38 -38
  178. package/dist/{register.subclis-DpPYIqkP.js → register.subclis-CHTY5PYx.js} +9 -9
  179. package/dist/{registry-9AaJQms1.js → registry-C-JddWwo.js} +2 -2
  180. package/dist/{replies-CgVOirGF.js → replies-BOy28KVL.js} +1 -1
  181. package/dist/{replies-pnMj7AtP.js → replies-BeK3uuQ8.js} +1 -1
  182. package/dist/{replies-BZN1LuJP.js → replies-C82xaXm3.js} +3 -3
  183. package/dist/{replies-Dqft-42v.js → replies-P7jbK6Bo.js} +2 -2
  184. package/dist/{reply-prefix-DkDTGwTs.js → reply-prefix-ChIeKp-P.js} +1 -1
  185. package/dist/{reply-prefix-CyLplifX.js → reply-prefix-xaWqfM9m.js} +1 -1
  186. package/dist/{resolve-route-CIA0TSsF.js → resolve-route-CIS2tjpz.js} +3 -3
  187. package/dist/{resolve-route-xpyI3enn.js → resolve-route-DKhx5C-P.js} +1 -1
  188. package/dist/{routes-xZZ99jJJ.js → routes-BJ2iXVJF.js} +10 -10
  189. package/dist/{rpc-BzR2wLkc.js → rpc-CSI4uFgj.js} +1 -1
  190. package/dist/{run-main-n0fjk-o5.js → run-main-Bzub4qvZ.js} +20 -20
  191. package/dist/{sandbox-DGG12SGo.js → sandbox-CQU7Gcb9.js} +18 -18
  192. package/dist/{sandbox-cli--d2MJPM2.js → sandbox-cli-Ci90LP_X.js} +13 -13
  193. package/dist/{security-cli-CeP9ss1g.js → security-cli-BfOZ_cJN.js} +28 -28
  194. package/dist/{send-BzUWmgQ9.js → send-BAKkoPOy.js} +7 -7
  195. package/dist/{send-BQJKg0bU.js → send-DulXmWcG.js} +7 -7
  196. package/dist/{server-context-BNbx1tUD.js → server-context-BsMQBnUG.js} +5 -5
  197. package/dist/{server-methods-BHg4GltA.js → server-methods-C2UnIkWU.js} +57 -57
  198. package/dist/{server-methods-DkZ2XtEo.js → server-methods-THO5vDXZ.js} +7 -7
  199. package/dist/{server-node-events-BXviL2UH.js → server-node-events-j4AWHS1m.js} +9 -9
  200. package/dist/{server-node-events-6dZ22EGj.js → server-node-events-mBi614x_.js} +46 -46
  201. package/dist/{service-9ItKCWWS.js → service-AP9pR9R5.js} +15 -15
  202. package/dist/{session-dirs-B6PWqKEf.js → session-dirs-Chh7bBGo.js} +2 -2
  203. package/dist/{session-utils-BVC8mmBv.js → session-utils-0F9pB5d6.js} +12 -12
  204. package/dist/{sessions-BaFVKzC2.js → sessions-DQMaURzb.js} +11 -11
  205. package/dist/{shared-DUmy8R4n.js → shared-4Z8Ut8Cs.js} +3 -3
  206. package/dist/{shared-ot5_jkpP.js → shared-DmYHvtn2.js} +1 -1
  207. package/dist/{skill-commands-DaNhP2Jb.js → skill-commands-Cwrebyvj.js} +5 -5
  208. package/dist/{skill-commands-X3T9Y9lT.js → skill-commands-DP1fshwh.js} +4 -4
  209. package/dist/{skill-scanner-DVq7ZopF.js → skill-scanner-qMQf6-FN.js} +5 -5
  210. package/dist/{skills-BMTJ2Tiq.js → skills-D0k4o0Ez.js} +6 -6
  211. package/dist/{skills-C_KgxpBD.js → skills-DL8DjveU.js} +4 -4
  212. package/dist/{skills-cli-DwYoPwkG.js → skills-cli-BkIH3HKr.js} +7 -7
  213. package/dist/{skills-install-U4FmCP8u.js → skills-install-C9uT4MR2.js} +3 -3
  214. package/dist/{skills-remote-C0gcKYWX.js → skills-remote-Db5Wwr4s.js} +3 -3
  215. package/dist/{skills-status-CdfQvU1h.js → skills-status-Dx3Lf5iU.js} +1 -1
  216. package/dist/{sqlite-C6MZhX4c.js → sqlite--aBEq1-J.js} +1 -1
  217. package/dist/{sqlite-BUXBg2yu.js → sqlite-DBEvS-Ne.js} +5 -5
  218. package/dist/{ssrf-BvjSIOlZ.js → ssrf-Dcgaqg3U.js} +9 -9
  219. package/dist/{status-CmoBgZ99.js → status-BtAHzMLu.js} +1 -1
  220. package/dist/{status-BK-ZK7SP.js → status-BuHx0FXI.js} +23 -23
  221. package/dist/{status-J_gR_zbh.js → status-FKqnkO3K.js} +1 -1
  222. package/dist/{status-BAnT_4qI.js → status-MkJRgsTJ.js} +3 -3
  223. package/dist/{status.update-Cvj7y384.js → status.update-CQ1vKrEg.js} +3 -3
  224. package/dist/{subagent-registry-CWolsN8K.js → subagent-registry-B1RgR3-0.js} +41 -218
  225. package/dist/{subsystem-DhOo2FZn.js → subsystem-DzRUKS9f.js} +1 -1
  226. package/dist/{symi-root-0MUhiNlM.js → symi-root-DueRHNOE.js} +2 -2
  227. package/dist/{synthesis-DTZGPpj5.js → synthesis-BEaISjwW.js} +5 -5
  228. package/dist/{synthesis-BSKiS446.js → synthesis-BSUjIY0v.js} +7 -7
  229. package/dist/{synthesis-CRQp5mTx.js → synthesis-BtlmxJ7w.js} +43 -43
  230. package/dist/{synthesis-D3wZX5g3.js → synthesis-DsYfiC2s.js} +28 -28
  231. package/dist/{system-cli-CUGyogmP.js → system-cli-5_JOcUt0.js} +7 -7
  232. package/dist/{systemd-8KKQdTO_.js → systemd-9LEEqibe.js} +5 -5
  233. package/dist/{systemd-hints-_ghBqtKo.js → systemd-hints-CeavseQh.js} +6 -6
  234. package/dist/{systemd-linger-CnKJZBUr.js → systemd-linger-PqG8iGCt.js} +1 -1
  235. package/dist/{thinking-BYtE7_UC.js → thinking-CMIo8E_E.js} +2 -2
  236. package/dist/{tokens-wW7opugV.js → tokens-BBh6tlmO.js} +2 -5
  237. package/dist/{tokens-DvvjOTxN.js → tokens-BKbemuIk.js} +1 -4
  238. package/dist/{tokens-CGqnWNmv.js → tokens-CJgPtOxz.js} +1 -4
  239. package/dist/{tokens-DJQ4rO24.js → tokens-K3kGchJA.js} +1 -4
  240. package/dist/{tool-loop-detection-DyZ0TWGh.js → tool-loop-detection-BR52lwOt.js} +2 -2
  241. package/dist/{tui-fKWqWqeq.js → tui-Bnusp3Vd.js} +7 -7
  242. package/dist/{tui-cli-BPOcMJ-f.js → tui-cli-BY8W9Yjm.js} +19 -19
  243. package/dist/{unified-runner-DftrstdI.js → unified-runner-BPyxPZv9.js} +75 -248
  244. package/dist/{unified-runner-Cdj1nLUh.js → unified-runner-Bn9vq7Zy.js} +132 -309
  245. package/dist/{update-XJWQZpV7.js → update-BvDXKE6K.js} +3 -3
  246. package/dist/{update-check-BdSIMYWq.js → update-check-CZxZhEXr.js} +5 -5
  247. package/dist/{update-cli-jQo-vg6S.js → update-cli-BXtHo0ox.js} +12 -12
  248. package/dist/{update-cli-D_MLjj6j.js → update-cli-DLx7LNVB.js} +75 -75
  249. package/dist/{update-runner-D_UHlPN0.js → update-runner-C8L4XRQb.js} +15 -15
  250. package/dist/{webhooks-cli-DgRLVVrD.js → webhooks-cli-CXbv4eB6.js} +4 -4
  251. package/dist/{with-timeout-DwVWQ2sN.js → with-timeout-C0UtpXBj.js} +1 -1
  252. package/dist/{workspace-OBnI5mKu.js → workspace-CsaDUuDn.js} +2 -2
  253. package/dist/{workspace-dirs-DStsDXra.js → workspace-dirs-gn_0yzFP.js} +1 -1
  254. package/dist/{wsl-DO9usEVV.js → wsl-ZWGwnnKI.js} +2 -2
  255. package/package.json +1 -1
  256. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +0 -26
  257. package/dist/plugin-sdk/auto-reply/reply/middleware-heartbeat-strip.d.ts +0 -25
@@ -1,138 +1,138 @@
1
- import { $t as clearAgentRunContext, B as normalizeOptionalText, Bt as countActiveRunsForSession, Cn as waitForActiveTasks, Ct as DEFAULT_INPUT_IMAGE_MIMES, D as resolveOutboundSessionRoute, Dt as extractImageContentFromSource, En as resolveModelProfile, Et as extractFileContentFromSource, G as hasLegacyDeliveryHints, Gt as resolveAgentTimeoutMs, H as normalizeRequiredName, Ht as listDescendantRunsForRequester, K as stripLegacyDeliveryFields, Kt as runSubagentAnnounceFlow, L as inferLegacyName, M as resetDirectoryCache, O as resolveOutboundTarget, On as runWithModelFallback, Ot as normalizeMimeList, P as normalizeHttpWebhookUrl, Q as isExternalHookSession, R as normalizeOptionalAgentId, S as createSymiTools, Sn as setCommandLaneConcurrency, St as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tn as classifyOutboundMessage, Tt as DEFAULT_INPUT_TIMEOUT_MS, U as migrateLegacyCronPayload, V as normalizePayloadToSystemText, Vt as initSubagentRegistry, W as buildDeliveryFromLegacyPayload, X as detectSuspiciousPatterns, Xt as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Y as buildSafeExternalPrompt, Z as getHookType, Zt as stripHeartbeatToken, a as getPluginToolMeta, at as markGatewaySigusr1RestartHandled, bn as getTotalQueueSize, c as handleSlackHttpRequest, ct as setPreRestartDeferralCheck, d as buildHistoryContextFromEntries, en as emitAgentEvent, fn as formatUserTime, h as getTotalPendingReplies, it as isGatewaySigusr1RestartExternallyAllowed, k as resolveSessionDeliveryTarget, kt as resolveInputFileLimits, l as readJsonBodyWithLimit, ln as registerUnhandledRejectionHandler, mn as resolveUserTimezone, n as applyToolPolicyPipeline, nn as onAgentEvent, nt as deferGatewayRestartUntilIdle, on as getActiveEmbeddedRunCount, pn as resolveUserTimeFormat, qt as readLatestAssistantReply, r as buildDefaultToolPolicyPipelineSteps, rn as registerAgentRunContext, rt as emitGatewayRestart, s as loadSymiPlugins, st as setGatewaySigusr1RestartPolicy, t as runAgentTurn, tn as getAgentRunContext, tt as consumeGatewaySigusr1RestartAuthorization, u as requestBodyErrorToText, un as ToolInputError, w as resolveAnnounceTargetFromKey, wn as CommandLane, wt as DEFAULT_INPUT_MAX_REDIRECTS, xn as resetAllLanes, yn as getActiveTaskCount, z as normalizeOptionalSessionKey, zt as countActiveDescendantRuns } from "./unified-runner-Cdj1nLUh.js";
1
+ import { $t as getAgentRunContext, B as normalizeOptionalText, Bt as countActiveRunsForSession, Cn as classifyOutboundMessage, Ct as DEFAULT_INPUT_IMAGE_MIMES, D as resolveOutboundSessionRoute, Dt as extractImageContentFromSource, En as runWithModelFallback, Et as extractFileContentFromSource, G as hasLegacyDeliveryHints, Gt as resolveAgentTimeoutMs, H as normalizeRequiredName, Ht as listDescendantRunsForRequester, K as stripLegacyDeliveryFields, Kt as runSubagentAnnounceFlow, L as inferLegacyName, M as resetDirectoryCache, O as resolveOutboundTarget, Ot as normalizeMimeList, P as normalizeHttpWebhookUrl, Q as isExternalHookSession, Qt as emitAgentEvent, R as normalizeOptionalAgentId, S as createSymiTools, Sn as CommandLane, St as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as DEFAULT_INPUT_TIMEOUT_MS, U as migrateLegacyCronPayload, V as normalizePayloadToSystemText, Vt as initSubagentRegistry, W as buildDeliveryFromLegacyPayload, X as detectSuspiciousPatterns, Y as buildSafeExternalPrompt, Z as getHookType, Zt as clearAgentRunContext, _n as getActiveTaskCount, a as getPluginToolMeta, at as markGatewaySigusr1RestartHandled, bn as setCommandLaneConcurrency, c as handleSlackHttpRequest, cn as ToolInputError, ct as setPreRestartDeferralCheck, d as buildHistoryContextFromEntries, dn as resolveUserTimeFormat, en as onAgentEvent, fn as resolveUserTimezone, h as getTotalPendingReplies, in as getActiveEmbeddedRunCount, it as isGatewaySigusr1RestartExternallyAllowed, k as resolveSessionDeliveryTarget, kt as resolveInputFileLimits, l as readJsonBodyWithLimit, n as applyToolPolicyPipeline, nt as deferGatewayRestartUntilIdle, qt as readLatestAssistantReply, r as buildDefaultToolPolicyPipelineSteps, rt as emitGatewayRestart, s as loadSymiPlugins, sn as registerUnhandledRejectionHandler, st as setGatewaySigusr1RestartPolicy, t as runAgentTurn, tn as registerAgentRunContext, tt as consumeGatewaySigusr1RestartAuthorization, u as requestBodyErrorToText, un as formatUserTime, vn as getTotalQueueSize, w as resolveAnnounceTargetFromKey, wn as resolveModelProfile, wt as DEFAULT_INPUT_MAX_REDIRECTS, xn as waitForActiveTasks, yn as resetAllLanes, z as normalizeOptionalSessionKey, zt as countActiveDescendantRuns } from "./unified-runner-Bn9vq7Zy.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-DKJLAPDB.js";
3
3
  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-BSzKwaxE.js";
4
4
  import { h as resolveUserPath, s as ensureDir, t as CONFIG_DIR, v as shortenHomePath, x as truncateUtf16Safe } from "./utils-BU8jVQFM.js";
5
5
  import { a as setConsoleSubsystemFilter, f as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
6
- import { Ht as DEFAULT_MODEL, N as getModelRefStatus, O as isPidAlive, P as isCliProvider, U as resolveHooksGmailModel, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, q as resolveThinkingDefault, z as resolveAllowedModelRef } from "./auth-profiles-BVtpxYtY.js";
6
+ import { Ht as DEFAULT_MODEL, N as getModelRefStatus, O as isPidAlive, P as isCliProvider, U as resolveHooksGmailModel, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, q as resolveThinkingDefault, z as resolveAllowedModelRef } from "./auth-profiles-CPlXilKu.js";
7
7
  import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
8
8
  import { b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, d as toAgentRequestSessionKey, f as toAgentStoreSessionKey, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey, s as normalizeMainKey, t as DEFAULT_AGENT_ID, v as isCronRunSessionKey, x as parseAgentSessionKey } from "./session-key-B_ZVH1kE.js";
9
- import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-0MUhiNlM.js";
9
+ import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.js";
10
10
  import { i as logDebug, n as runExec, s as logWarn, t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
11
- 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-BjEBQhs0.js";
11
+ 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-B_oqIiaD.js";
12
12
  import "./github-copilot-token-BTNK6Tcd.js";
13
13
  import "./boolean-Wzu0-e0P.js";
14
14
  import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-B97Ms861.js";
15
- import "./pi-embedded-helpers-Be-EeyzH.js";
16
- import { M as resolveSubagentMaxConcurrent, N as VERSION, P as resolveRuntimeServiceVersion, i as loadConfig, j as resolveAgentMaxConcurrent, l as writeConfigFile, m as parseDurationMs, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-CW8aDVM0.js";
15
+ import "./pi-embedded-helpers-BRM8EM4P.js";
16
+ import { M as resolveSubagentMaxConcurrent, N as VERSION, P as resolveRuntimeServiceVersion, i as loadConfig, j as resolveAgentMaxConcurrent, l as writeConfigFile, m as parseDurationMs, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-CphS_6eg.js";
17
17
  import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-D7Qup2Vq.js";
18
18
  import { a as isPathInsideWithRealpath } from "./legacy-names-C0hZiM-7.js";
19
- import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-DGG12SGo.js";
20
- import "./chrome-NUKborg3.js";
19
+ import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-CQU7Gcb9.js";
20
+ import "./chrome-owBWinlj.js";
21
21
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-D7dC-5EX.js";
22
22
  import { t as safeEqualSecret } from "./secret-equal-D1BCVB1D.js";
23
23
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-LYvn9g3I.js";
24
24
  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-CahTJvD6.js";
25
25
  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-BbwD4lRX.js";
26
- import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-BNbx1tUD.js";
26
+ import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-BsMQBnUG.js";
27
27
  import { d as hasBinary } from "./frontmatter-B6IdJ7UK.js";
28
- import { r as buildWorkspaceSkillSnapshot } from "./skills-C_KgxpBD.js";
29
- import "./routes-xZZ99jJJ.js";
28
+ import { r as buildWorkspaceSkillSnapshot } from "./skills-DL8DjveU.js";
29
+ import "./routes-BJ2iXVJF.js";
30
30
  import "./redact-CSc_2Nka.js";
31
31
  import { a as isErrno, n as formatErrorMessage } from "./errors-Z-WkF18Q.js";
32
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-DjAKGGJ8.js";
33
- import "./paths-DaQrPPet.js";
32
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-B6nMaZqV.js";
33
+ import "./paths-Dc6A9_vI.js";
34
34
  import { t as SsrFBlockedError } from "./ssrf-CC9kEPCT.js";
35
- import { c as detectMime } from "./image-ops-c7_of0HT.js";
36
- import { a as inspectPortUsage, r as ensurePortAvailable, s as formatPortDiagnostics } from "./ports-EAVAOFyK.js";
35
+ import { c as detectMime } from "./image-ops-C-gIIp7Q.js";
36
+ import { a as inspectPortUsage, r as ensurePortAvailable, s as formatPortDiagnostics } from "./ports-DqxP-bXz.js";
37
37
  import "./trash-BjVrPcAx.js";
38
- 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-BaFVKzC2.js";
38
+ 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-DQMaURzb.js";
39
39
  import "./dock-CnGWTXL4.js";
40
40
  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-C_V8IAYx.js";
41
41
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
42
- import "./send-BzUWmgQ9.js";
42
+ import "./send-BAKkoPOy.js";
43
43
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, s as resolveSessionTranscriptsDirForAgent } from "./paths-CJcw9nbZ.js";
44
44
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-177f26eg.js";
45
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DvvjOTxN.js";
46
- import { _ as runGlobalGatewayStopSafely, h as getGlobalHookRunner, t as deliverOutboundPayloads } from "./deliver-DZ7ynJYH.js";
45
+ import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-BKbemuIk.js";
46
+ import { _ as runGlobalGatewayStopSafely, h as getGlobalHookRunner, t as deliverOutboundPayloads } from "./deliver-63FtOVMC.js";
47
47
  import { c as startDiagnosticHeartbeat, l as stopDiagnosticHeartbeat, u as isDiagnosticsEnabled } from "./diagnostic-CwF3MnBL.js";
48
48
  import "./diagnostic-session-state-I4x9gPY4.js";
49
- import "./models-config-DRgHv7Ss.js";
50
- import "./pi-auth-json-DGZH6URT.js";
49
+ import "./models-config-CFUwiu4W.js";
50
+ import "./pi-auth-json-1Z1j1PDI.js";
51
51
  import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-cost-usage-DYcv40ss.js";
52
- 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-BVC8mmBv.js";
53
- import { r as getMachineDisplayName } from "./with-timeout-DwVWQ2sN.js";
54
- import { a as resolveAgentIdentity } from "./reply-prefix-CyLplifX.js";
55
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DcWXMzOH.js";
56
- import { c as resolveMemorySearchConfig } from "./manager-9dNT9kNF.js";
57
- import "./sqlite-BUXBg2yu.js";
52
+ 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-0F9pB5d6.js";
53
+ import { r as getMachineDisplayName } from "./with-timeout-C0UtpXBj.js";
54
+ import { a as resolveAgentIdentity } from "./reply-prefix-xaWqfM9m.js";
55
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-2OKjMT7V.js";
56
+ import { c as resolveMemorySearchConfig } from "./manager-BQ5Wl5r-.js";
57
+ import "./sqlite-DBEvS-Ne.js";
58
58
  import "./chunk-DQGU0F8t.js";
59
59
  import "./markdown-tables-GTLvbzuR.js";
60
60
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
61
- import "./local-roots-CTriU02e.js";
61
+ import "./local-roots-JhQs5w0I.js";
62
62
  import { n as isRestartEnabled } from "./commands-B3UrgxIz.js";
63
- import "./commands-registry-DYk02tmt.js";
64
- import { $t as roleScopesAllow, Bt as buildDeviceAuthPayload, Ft as PROTOCOL_VERSION, Ht as ensureDeviceToken, It as ErrorCodes, Lt as errorShape, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Ut as getPairedDevice, Vt as approveDevicePairing, Zt as updatePairedDeviceMetadata, at as validateRequestFrame, in as verifyDeviceSignature, n as formatValidationErrors, qt as requestDevicePairing, rn as normalizeDevicePublicKeyBase64Url, tn as deriveDeviceIdFromPublicKey, w as validateConnectParams, z as validateExecApprovalResolveParams } from "./client-Bs2zB0rY.js";
65
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-CdXXPXpo.js";
66
- import "./pairing-token-DorpwP8O.js";
63
+ import "./commands-registry-W2GQIywv.js";
64
+ import { $t as roleScopesAllow, Bt as buildDeviceAuthPayload, Ft as PROTOCOL_VERSION, Ht as ensureDeviceToken, It as ErrorCodes, Lt as errorShape, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Ut as getPairedDevice, Vt as approveDevicePairing, Zt as updatePairedDeviceMetadata, at as validateRequestFrame, in as verifyDeviceSignature, n as formatValidationErrors, qt as requestDevicePairing, rn as normalizeDevicePublicKeyBase64Url, tn as deriveDeviceIdFromPublicKey, w as validateConnectParams, z as validateExecApprovalResolveParams } from "./client-ZZqt0H0-.js";
65
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-Du4CT1Hp.js";
66
+ import "./pairing-token-CURbSHdi.js";
67
67
  import "./tool-display-Dr6VaTg5.js";
68
- 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-C0gcKYWX.js";
69
- import "./workspace-dirs-DStsDXra.js";
68
+ 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-Db5Wwr4s.js";
69
+ import "./workspace-dirs-gn_0yzFP.js";
70
70
  import "./pi-model-discovery-DdkUSfiI.js";
71
- import { n as loadModelCatalog } from "./model-catalog-BGVslwAT.js";
72
- import "./skill-commands-X3T9Y9lT.js";
73
- import "./pairing-store-CxT0UGxd.js";
71
+ import { n as loadModelCatalog } from "./model-catalog-DKBhNiWm.js";
72
+ import "./skill-commands-DP1fshwh.js";
73
+ import "./pairing-store-mmeniyUt.js";
74
74
  import { t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-CZOc8M5w.js";
75
- import "./nodes-screen-CT94yu_w.js";
75
+ import "./nodes-screen-JELuBMBi.js";
76
76
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-Ca9K30TH.js";
77
- import "./control-service-Drd2sr2o.js";
77
+ import "./control-service-CMVDL3Yl.js";
78
78
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BhvnarfO.js";
79
79
  import { n as resolveMessageChannelSelection } from "./channel-selection-BvIcXQLj.js";
80
80
  import "./delivery-queue-DDs84baU.js";
81
81
  import { t as buildChannelAccountBindings } from "./bindings-9LSA3Jr1.js";
82
- import "./resolve-route-xpyI3enn.js";
82
+ import "./resolve-route-DKhx5C-P.js";
83
83
  import { t as formatDocsLink } from "./links-CSaUKNKm.js";
84
84
  import { n as runCommandWithRuntime } from "./cli-utils-CX1oQ81G.js";
85
85
  import { t as formatHelpExamples } from "./help-format-BI_G2p1e.js";
86
86
  import { n as withProgress } from "./progress-CyPyGCDn.js";
87
- import "./memory-cli-xBZPEOeL.js";
87
+ import "./memory-cli-CmPcKzGZ.js";
88
88
  import "./logging-B5YNzZB9.js";
89
- import "./replies-Dqft-42v.js";
90
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-qwS9SXOa.js";
91
- import "./model-BXWgh5eZ.js";
92
- import { t as createDefaultDeps } from "./deps-i1g0Zpz4.js";
89
+ import "./replies-P7jbK6Bo.js";
90
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-BBHbN8Nh.js";
91
+ import "./model-BKtw-Bqs.js";
92
+ import { t as createDefaultDeps } from "./deps-DD_ZCq3v.js";
93
93
  import { t as ensureSymiCliOnPath } from "./path-env-DuQralyy.js";
94
94
  import "./runtime-guard-BZ3_1QqS.js";
95
- import { t as forceFreePortAndWait } from "./ports-ChuJYhEL.js";
95
+ import { t as forceFreePortAndWait } from "./ports-DRHSHvqY.js";
96
96
  import "./catalog-BEREnWaa.js";
97
- import "./skills-status-CdfQvU1h.js";
97
+ import "./skills-status-Dx3Lf5iU.js";
98
98
  import { n as inheritOptionFromParent } from "./command-options-ChiIn6Na.js";
99
99
  import "./prompt-style-Cad0BDRS.js";
100
100
  import { t as resolveChannelDefaultAccountId } from "./helpers-BBypnAYf.js";
101
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-zDUaiaf2.js";
102
- import "./install-safe-path-B73BkVO3.js";
103
- import "./skill-scanner-DVq7ZopF.js";
101
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BCwyDNSP.js";
102
+ import "./install-safe-path-CQXx3s9R.js";
103
+ import "./skill-scanner-qMQf6-FN.js";
104
104
  import "./channels-status-issues-DC8vgOMo.js";
105
- import "./daemon-runtime-BH3ZBZXS.js";
106
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DZKHFY2J.js";
107
- import "./systemd-8KKQdTO_.js";
108
- import "./service-9ItKCWWS.js";
109
- import "./lifecycle-core-zhQYm_ni.js";
110
- import "./systemd-hints-_ghBqtKo.js";
105
+ import "./daemon-runtime-BD-3XS8R.js";
106
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-D2mWJnFB.js";
107
+ import "./systemd-9LEEqibe.js";
108
+ import "./service-AP9pR9R5.js";
109
+ import "./lifecycle-core-_BlNODTH.js";
110
+ import "./systemd-hints-CeavseQh.js";
111
111
  import { t as parsePort$1 } from "./parse-port-CykvIgQu.js";
112
- import { n as addGatewayServiceCommands } from "./daemon-cli-BY9BFNuw.js";
113
- import "./diagnostics-nLP2i_BY.js";
112
+ import { n as addGatewayServiceCommands } from "./daemon-cli-B__05b-d.js";
113
+ import "./diagnostics-DxdqTfpW.js";
114
114
  import "./table-DkAQzCOR.js";
115
115
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-C5NqCQ3L.js";
116
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-ot5_jkpP.js";
117
- import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-DQ_p2Pbq.js";
116
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DmYHvtn2.js";
117
+ import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-B_HL4UJ_.js";
118
118
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CU1mz7AC.js";
119
- import { r as pickGatewaySelfPresence } from "./status-BK-ZK7SP.js";
120
- import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-D59E1VfO.js";
121
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-D22DSxhv.js";
122
- import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-BdSIMYWq.js";
123
- import { t as runOnboardingWizard } from "./onboarding-BjXYbWlg.js";
124
- 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-BHg4GltA.js";
125
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-Aaqf9WKI.js";
119
+ import { r as pickGatewaySelfPresence } from "./status-BuHx0FXI.js";
120
+ import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-BdxlhiXA.js";
121
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DUhvOLUL.js";
122
+ import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CZxZhEXr.js";
123
+ import { t as runOnboardingWizard } from "./onboarding-D2SLzcWH.js";
124
+ 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-C2UnIkWU.js";
125
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BBym2pAw.js";
126
126
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-D5G00y8h.js";
127
- import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-DeLysRUa.js";
127
+ import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-M9EC02CI.js";
128
128
  import { t as createOutboundSendDeps } from "./outbound-send-deps-BpziI1pC.js";
129
- import { s as loadAgentIdentityFromWorkspace } from "./agents.config-BFKM-a83.js";
130
- import "./dm-policy-shared-CnKffdt_.js";
131
- import "./node-service-DuN9eBL6.js";
132
- import "./status.update-Cvj7y384.js";
133
- import "./skills-install-U4FmCP8u.js";
134
- import "./update-runner-D_UHlPN0.js";
135
- import { t as resolveAgentSessionDirs } from "./session-dirs-B6PWqKEf.js";
129
+ import { s as loadAgentIdentityFromWorkspace } from "./agents.config-B_LFeRQS.js";
130
+ import "./dm-policy-shared-C1TQOlkZ.js";
131
+ import "./node-service-tPO_yUk7.js";
132
+ import "./status.update-CQ1vKrEg.js";
133
+ import "./skills-install-C9uT4MR2.js";
134
+ import "./update-runner-C8L4XRQb.js";
135
+ import { t as resolveAgentSessionDirs } from "./session-dirs-Chh7bBGo.js";
136
136
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B_xyjOdv.js";
137
137
  import { fileURLToPath, pathToFileURL } from "node:url";
138
138
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
@@ -142,7 +142,7 @@ import * as fsSync from "node:fs";
142
142
  import fs from "node:fs";
143
143
  import os from "node:os";
144
144
  import JSON5 from "json5";
145
- import fsPromises from "node:fs/promises";
145
+ import fs$1 from "node:fs/promises";
146
146
  import { spawn } from "node:child_process";
147
147
  import { z } from "zod";
148
148
  import net from "node:net";
@@ -1132,7 +1132,7 @@ function shouldSkipCheck(allowInTests) {
1132
1132
  }
1133
1133
  async function readState(statePath) {
1134
1134
  try {
1135
- const raw = await fsPromises.readFile(statePath, "utf-8");
1135
+ const raw = await fs$1.readFile(statePath, "utf-8");
1136
1136
  const parsed = JSON.parse(raw);
1137
1137
  return parsed && typeof parsed === "object" ? parsed : {};
1138
1138
  } catch {
@@ -1140,8 +1140,8 @@ async function readState(statePath) {
1140
1140
  }
1141
1141
  }
1142
1142
  async function writeState(statePath, state) {
1143
- await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
1144
- await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1143
+ await fs$1.mkdir(path.dirname(statePath), { recursive: true });
1144
+ await fs$1.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1145
1145
  }
1146
1146
  function sameUpdateAvailable(a, b) {
1147
1147
  if (a === b) return true;
@@ -2648,24 +2648,6 @@ function pickLastDeliverablePayload(payloads) {
2648
2648
  if (text || hasMedia || hasChannelData) return payload;
2649
2649
  }
2650
2650
  }
2651
- /**
2652
- * Check if all payloads are just heartbeat ack responses (SYMIPULSE_OK).
2653
- * Returns true if delivery should be skipped because there's no real content.
2654
- */
2655
- function isHeartbeatOnlyResponse(payloads, ackMaxChars) {
2656
- if (payloads.length === 0) return true;
2657
- return payloads.every((payload) => {
2658
- if ((payload.mediaUrls?.length ?? 0) > 0 || Boolean(payload.mediaUrl)) return false;
2659
- return stripHeartbeatToken(payload.text, {
2660
- mode: "heartbeat",
2661
- maxAckChars: ackMaxChars
2662
- }).shouldSkip;
2663
- });
2664
- }
2665
- function resolveHeartbeatAckMaxChars(agentCfg) {
2666
- const raw = agentCfg?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS;
2667
- return Math.max(0, raw);
2668
- }
2669
2651
 
2670
2652
  //#endregion
2671
2653
  //#region src/cron/isolated-agent/session.ts
@@ -3163,15 +3145,13 @@ async function runCronIsolatedAgentTurn(params) {
3163
3145
  let deliveryPayloads = deliveryPayload !== void 0 ? [deliveryPayload] : synthesizedText ? [{ text: synthesizedText }] : [];
3164
3146
  const deliveryPayloadHasStructuredContent = Boolean(deliveryPayload?.mediaUrl) || (deliveryPayload?.mediaUrls?.length ?? 0) > 0 || Object.keys(deliveryPayload?.channelData ?? {}).length > 0;
3165
3147
  const deliveryBestEffort = resolveCronDeliveryBestEffort(params.job);
3166
- const ackMaxChars = resolveHeartbeatAckMaxChars(agentCfg);
3167
- const skipHeartbeatDelivery = deliveryRequested && isHeartbeatOnlyResponse(payloads, ackMaxChars);
3168
3148
  const skipMessagingToolDelivery = deliveryRequested && runResult.didSendViaMessagingTool === true && (runResult.messagingToolSentTargets ?? []).some((target) => matchesMessagingToolDeliveryTarget(target, {
3169
3149
  channel: resolvedDelivery.channel,
3170
3150
  to: resolvedDelivery.to,
3171
3151
  accountId: resolvedDelivery.accountId
3172
3152
  }));
3173
3153
  let delivered = skipMessagingToolDelivery;
3174
- if (deliveryRequested && !skipHeartbeatDelivery && !skipMessagingToolDelivery) {
3154
+ if (deliveryRequested && !skipMessagingToolDelivery) {
3175
3155
  if (resolvedDelivery.error) {
3176
3156
  if (!deliveryBestEffort) return withRunSession({
3177
3157
  status: "error",
@@ -6587,7 +6567,7 @@ function normalizeAgentPayload(payload) {
6587
6567
  async function startBrowserControlServerIfEnabled() {
6588
6568
  if (isTruthyEnvValue(process.env.SYMI_SKIP_BROWSER_CONTROL_SERVER)) return null;
6589
6569
  const override = process.env.SYMI_BROWSER_CONTROL_MODULE?.trim();
6590
- const mod = override ? await import(override) : await import("./control-service-Drd2sr2o.js").then((n) => n.t);
6570
+ const mod = override ? await import(override) : await import("./control-service-CMVDL3Yl.js").then((n) => n.t);
6591
6571
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
6592
6572
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
6593
6573
  if (!start) return null;
@@ -6814,7 +6794,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
6814
6794
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
6815
6795
  const candidate = path.join(rootReal, rel);
6816
6796
  try {
6817
- const st = await fsPromises.lstat(candidate);
6797
+ const st = await fs$1.lstat(candidate);
6818
6798
  if (st.isSymbolicLink()) return null;
6819
6799
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
6820
6800
  } catch {}
@@ -6851,8 +6831,8 @@ async function resolveA2uiRoot() {
6851
6831
  for (const dir of candidates) try {
6852
6832
  const indexPath = path.join(dir, "index.html");
6853
6833
  const bundlePath = path.join(dir, "a2ui.bundle.js");
6854
- await fsPromises.stat(indexPath);
6855
- await fsPromises.stat(bundlePath);
6834
+ await fs$1.stat(indexPath);
6835
+ await fs$1.stat(bundlePath);
6856
6836
  return dir;
6857
6837
  } catch {}
6858
6838
  return null;
@@ -6861,7 +6841,7 @@ async function resolveA2uiRootReal() {
6861
6841
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
6862
6842
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
6863
6843
  const root = await resolveA2uiRoot();
6864
- cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
6844
+ cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
6865
6845
  cachedA2uiResolvedAtMs = Date.now();
6866
6846
  resolvingA2uiRoot = null;
6867
6847
  return cachedA2uiRootReal;
@@ -7082,13 +7062,13 @@ function normalizeBasePath(rawPath) {
7082
7062
  }
7083
7063
  async function prepareCanvasRoot(rootDir) {
7084
7064
  await ensureDir(rootDir);
7085
- const rootReal = await fsPromises.realpath(rootDir);
7065
+ const rootReal = await fs$1.realpath(rootDir);
7086
7066
  try {
7087
7067
  const indexPath = path.join(rootReal, "index.html");
7088
- await fsPromises.stat(indexPath);
7068
+ await fs$1.stat(indexPath);
7089
7069
  } catch {
7090
7070
  try {
7091
- await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
7071
+ await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
7092
7072
  } catch {}
7093
7073
  }
7094
7074
  return rootReal;
@@ -10035,7 +10015,7 @@ function resolveGatewayOwnerStatus(pid, payload, platform) {
10035
10015
  }
10036
10016
  async function readLockPayload(lockPath) {
10037
10017
  try {
10038
- const raw = await fsPromises.readFile(lockPath, "utf8");
10018
+ const raw = await fs$1.readFile(lockPath, "utf8");
10039
10019
  const parsed = JSON.parse(raw);
10040
10020
  if (typeof parsed.pid !== "number") return null;
10041
10021
  if (typeof parsed.createdAt !== "string") return null;
@@ -10069,11 +10049,11 @@ async function acquireGatewayLock(opts = {}) {
10069
10049
  const staleMs = opts.staleMs ?? DEFAULT_STALE_MS;
10070
10050
  const platform = opts.platform ?? process.platform;
10071
10051
  const { lockPath, configPath } = resolveGatewayLockPath(env);
10072
- await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
10052
+ await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
10073
10053
  const startedAt = Date.now();
10074
10054
  let lastPayload = null;
10075
10055
  while (Date.now() - startedAt < timeoutMs) try {
10076
- const handle = await fsPromises.open(lockPath, "wx");
10056
+ const handle = await fs$1.open(lockPath, "wx");
10077
10057
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
10078
10058
  const payload = {
10079
10059
  pid: process.pid,
@@ -10087,7 +10067,7 @@ async function acquireGatewayLock(opts = {}) {
10087
10067
  configPath,
10088
10068
  release: async () => {
10089
10069
  await handle.close().catch(() => void 0);
10090
- await fsPromises.rm(lockPath, { force: true });
10070
+ await fs$1.rm(lockPath, { force: true });
10091
10071
  }
10092
10072
  };
10093
10073
  } catch (err) {
@@ -10096,7 +10076,7 @@ async function acquireGatewayLock(opts = {}) {
10096
10076
  const ownerPid = lastPayload?.pid;
10097
10077
  const ownerStatus = ownerPid ? resolveGatewayOwnerStatus(ownerPid, lastPayload, platform) : "unknown";
10098
10078
  if (ownerStatus === "dead" && ownerPid) {
10099
- await fsPromises.rm(lockPath, { force: true });
10079
+ await fs$1.rm(lockPath, { force: true });
10100
10080
  continue;
10101
10081
  }
10102
10082
  if (ownerStatus !== "alive") {
@@ -10106,13 +10086,13 @@ async function acquireGatewayLock(opts = {}) {
10106
10086
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
10107
10087
  }
10108
10088
  if (!stale) try {
10109
- const st = await fsPromises.stat(lockPath);
10089
+ const st = await fs$1.stat(lockPath);
10110
10090
  stale = Date.now() - st.mtimeMs > staleMs;
10111
10091
  } catch {
10112
10092
  stale = true;
10113
10093
  }
10114
10094
  if (stale) {
10115
- await fsPromises.rm(lockPath, { force: true });
10095
+ await fs$1.rm(lockPath, { force: true });
10116
10096
  continue;
10117
10097
  }
10118
10098
  }
@@ -12010,7 +11990,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12010
11990
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
12011
11991
  if (!minimalTestGateway) (async () => {
12012
11992
  const { recoverPendingDeliveries } = await import("./delivery-queue-DDs84baU.js").then((n) => n.n);
12013
- const { deliverOutboundPayloads } = await import("./deliver-DZ7ynJYH.js").then((n) => n.n);
11993
+ const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
12014
11994
  await recoverPendingDeliveries({
12015
11995
  deliver: deliverOutboundPayloads,
12016
11996
  log: log.child("delivery-recovery"),
@@ -12083,7 +12063,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12083
12063
  });
12084
12064
  let glassUiBridgeCleanup = null;
12085
12065
  if (!minimalTestGateway) {
12086
- const { createGlassUiBridge } = await import("./glass-ui-ws-NJNiRFL3.js");
12066
+ const { createGlassUiBridge } = await import("./glass-ui-ws-CwJdwqn6.js");
12087
12067
  glassUiBridgeCleanup = createGlassUiBridge({
12088
12068
  wss: glassUiWss,
12089
12069
  context: gatewayRequestContext,
@@ -22,12 +22,12 @@ import "./pairing-token-Bnr7QjVF.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 { Cn as clearAgentRunContext, Ct as emitGatewayRestart, D as getActiveEmbeddedRunCount, Dn as registerAgentRunContext, Dt as setGatewaySigusr1RestartPolicy, En as onAgentEvent, F as createSymiTools, Gt as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveOutboundTarget, J as runWithModelFallback, Jt as DEFAULT_INPUT_TIMEOUT_MS, K as resetDirectoryCache, Kt as DEFAULT_INPUT_IMAGE_MIMES, L as readLatestAssistantReply, M as resolveModelProfile, Ot as setPreRestartDeferralCheck, Q as normalizeHttpWebhookUrl, Qt as resolveInputFileLimits, R as resolveAnnounceTargetFromKey, S as getTotalPendingReplies, Sn as CommandLane, St as deferGatewayRestartUntilIdle, T as runAgentTurn, Tn as getAgentRunContext, Tt as markGatewaySigusr1RestartHandled, U as resolveSessionDeliveryTarget, V as resolveOutboundSessionRoute, Wt as registerUnhandledRejectionHandler, Xt as extractImageContentFromSource, Yt as extractFileContentFromSource, Zt as normalizeMimeList, _ as requestBodyErrorToText, _n as getActiveTaskCount, at as normalizePayloadToSystemText, bn as setCommandLaneConcurrency, ct as buildDeliveryFromLegacyPayload, en as resolveAgentTimeoutMs, f as getPluginToolMeta, fn as formatUserTime, g as readJsonBodyWithLimit, gt as isExternalHookSession, h as handleSlackHttpRequest, ht as getHookType, i as listDescendantRunsForRequester, in as stripHeartbeatToken, it as normalizeOptionalText, j as classifyOutboundMessage, l as applyToolPolicyPipeline, lt as hasLegacyDeliveryHints, m as loadSymiPlugins, mn as resolveUserTimezone, mt as detectSuspiciousPatterns, n as countActiveRunsForSession, nt as normalizeOptionalAgentId, ot as normalizeRequiredName, pn as resolveUserTimeFormat, pt as buildSafeExternalPrompt, qt as DEFAULT_INPUT_MAX_REDIRECTS, r as initSubagentRegistry, rn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, rt as normalizeOptionalSessionKey, s as runSubagentAnnounceFlow, st as migrateLegacyCronPayload, t as countActiveDescendantRuns, tt as inferLegacyName, u as buildDefaultToolPolicyPipelineSteps, un as ToolInputError, ut as stripLegacyDeliveryFields, v as buildHistoryContextFromEntries, vn as getTotalQueueSize, wn as emitAgentEvent, wt as isGatewaySigusr1RestartExternallyAllowed, xn as waitForActiveTasks, xt as consumeGatewaySigusr1RestartAuthorization, yn as resetAllLanes } from "./subagent-registry-CWolsN8K.js";
25
+ import { Cn as getAgentRunContext, Ct as emitGatewayRestart, D as getActiveEmbeddedRunCount, Dt as setGatewaySigusr1RestartPolicy, F as createSymiTools, Gt as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveOutboundTarget, J as runWithModelFallback, Jt as DEFAULT_INPUT_TIMEOUT_MS, K as resetDirectoryCache, Kt as DEFAULT_INPUT_IMAGE_MIMES, L as readLatestAssistantReply, M as resolveModelProfile, Ot as setPreRestartDeferralCheck, Q as normalizeHttpWebhookUrl, Qt as resolveInputFileLimits, R as resolveAnnounceTargetFromKey, S as getTotalPendingReplies, Sn as emitAgentEvent, St as deferGatewayRestartUntilIdle, T as runAgentTurn, Tn as registerAgentRunContext, Tt as markGatewaySigusr1RestartHandled, U as resolveSessionDeliveryTarget, V as resolveOutboundSessionRoute, Wt as registerUnhandledRejectionHandler, Xt as extractImageContentFromSource, Yt as extractFileContentFromSource, Zt as normalizeMimeList, _ as requestBodyErrorToText, _n as resetAllLanes, at as normalizePayloadToSystemText, bn as CommandLane, cn as ToolInputError, ct as buildDeliveryFromLegacyPayload, dn as resolveUserTimeFormat, en as resolveAgentTimeoutMs, f as getPluginToolMeta, fn as resolveUserTimezone, g as readJsonBodyWithLimit, gn as getTotalQueueSize, gt as isExternalHookSession, h as handleSlackHttpRequest, hn as getActiveTaskCount, ht as getHookType, i as listDescendantRunsForRequester, it as normalizeOptionalText, j as classifyOutboundMessage, l as applyToolPolicyPipeline, lt as hasLegacyDeliveryHints, m as loadSymiPlugins, mt as detectSuspiciousPatterns, n as countActiveRunsForSession, nt as normalizeOptionalAgentId, ot as normalizeRequiredName, pt as buildSafeExternalPrompt, qt as DEFAULT_INPUT_MAX_REDIRECTS, r as initSubagentRegistry, rt as normalizeOptionalSessionKey, s as runSubagentAnnounceFlow, st as migrateLegacyCronPayload, t as countActiveDescendantRuns, tt as inferLegacyName, u as buildDefaultToolPolicyPipelineSteps, un as formatUserTime, ut as stripLegacyDeliveryFields, v as buildHistoryContextFromEntries, vn as setCommandLaneConcurrency, wn as onAgentEvent, wt as isGatewaySigusr1RestartExternallyAllowed, xn as clearAgentRunContext, xt as consumeGatewaySigusr1RestartAuthorization, yn as waitForActiveTasks } from "./subagent-registry-B1RgR3-0.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-7jk0D1BI.js";
27
27
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-Bq-Msc8Z.js";
28
28
  import "./send-CLJ2KPVT.js";
29
29
  import { r as getMachineDisplayName } from "./with-timeout-BsavN1IH.js";
30
- import { _ as runGlobalGatewayStopSafely, h as getGlobalHookRunner, t as deliverOutboundPayloads } from "./deliver-CRqS1O8w.js";
30
+ import { _ as runGlobalGatewayStopSafely, h as getGlobalHookRunner, t as deliverOutboundPayloads } from "./deliver-DcP6aVt4.js";
31
31
  import { c as startDiagnosticHeartbeat, l as stopDiagnosticHeartbeat, u as isDiagnosticsEnabled } from "./diagnostic-BevbDWGa.js";
32
32
  import "./diagnostic-session-state-Zw87xFym.js";
33
33
  import "./pi-embedded-helpers-DnAXWUyj.js";
@@ -50,8 +50,8 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, s as resolveS
50
50
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-BDh5LPh-.js";
51
51
  import "./models-config-BfmuswQ_.js";
52
52
  import { a as resolveAgentIdentity } from "./reply-prefix-CRdCnS44.js";
53
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-B7TJXpqS.js";
54
- import { c as resolveMemorySearchConfig } from "./manager-CpBl-VGg.js";
53
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-CMKSFx1T.js";
54
+ import { c as resolveMemorySearchConfig } from "./manager-BI8o6AGu.js";
55
55
  import "./sqlite-l3CZYU6t.js";
56
56
  import "./chunk-BySyfaEr.js";
57
57
  import "./markdown-tables-CCOfinlW.js";
@@ -60,7 +60,7 @@ import "./local-roots-CkcUju_2.js";
60
60
  import { n as isRestartEnabled } from "./commands-CHkx0oTl.js";
61
61
  import "./commands-registry-CY-QAK3n.js";
62
62
  import "./tool-display-wSdT0Ynz.js";
63
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DJQ4rO24.js";
63
+ import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-K3kGchJA.js";
64
64
  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-DEkSSz2R.js";
65
65
  import { a as formatRestartSentinelMessage, h as enqueueSystemEvent, r as consumeRestartSentinel, s as summarizeRestartSentinel } from "./redact-identifier-gZfj5mH2.js";
66
66
  import "./workspace-dirs-B6EAh6SV.js";
@@ -82,9 +82,9 @@ import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
82
82
  import { n as runCommandWithRuntime } from "./cli-utils-BqMwAlgf.js";
83
83
  import { t as formatHelpExamples } from "./help-format-DbbIlOje.js";
84
84
  import { n as withProgress } from "./progress-C4ck6JXh.js";
85
- import "./memory-cli-C0WA_nRS.js";
85
+ import "./memory-cli-rdfaJrCS.js";
86
86
  import "./logging-D0L9TWhE.js";
87
- import "./replies-CgVOirGF.js";
87
+ import "./replies-BOy28KVL.js";
88
88
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-D-WJTlz8.js";
89
89
  import { n as inheritOptionFromParent } from "./command-options-BtJGezJl.js";
90
90
  import "./catalog-D2QxJOn1.js";
@@ -109,17 +109,17 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
109
109
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DP6YX7_w.js";
110
110
  import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-DEXQlMwn.js";
111
111
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BTpm6P8H.js";
112
- import { i as pickGatewaySelfPresence } from "./status-J_gR_zbh.js";
112
+ import { i as pickGatewaySelfPresence } from "./status-FKqnkO3K.js";
113
113
  import { a as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-CvdEEMPS.js";
114
114
  import { n as createDefaultDeps, t as createOutboundSendDeps } from "./outbound-send-deps-WKDU2JsO.js";
115
115
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5BrwGRs.js";
116
116
  import { t as ensureSymiCliOnPath } from "./path-env-DmaMvYrK.js";
117
117
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-C1JNxsic.js";
118
- import { t as runOnboardingWizard } from "./onboarding-70YKbZi6.js";
119
- 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-DkZ2XtEo.js";
120
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-Bfqnchj6.js";
118
+ import { t as runOnboardingWizard } from "./onboarding-ii3ok0Ih.js";
119
+ 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-THO5vDXZ.js";
120
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-Bv16DYOL.js";
121
121
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DjIM4-F9.js";
122
- import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-BI1-UXxQ.js";
122
+ import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-9zPi5Bip.js";
123
123
  import { s as loadAgentIdentityFromWorkspace } from "./agents.config-RCL-IJds.js";
124
124
  import "./dm-policy-shared-CC_pbZzd.js";
125
125
  import "./node-service-DDDCEDdv.js";
@@ -2643,24 +2643,6 @@ function pickLastDeliverablePayload(payloads) {
2643
2643
  if (text || hasMedia || hasChannelData) return payload;
2644
2644
  }
2645
2645
  }
2646
- /**
2647
- * Check if all payloads are just heartbeat ack responses (SYMIPULSE_OK).
2648
- * Returns true if delivery should be skipped because there's no real content.
2649
- */
2650
- function isHeartbeatOnlyResponse(payloads, ackMaxChars) {
2651
- if (payloads.length === 0) return true;
2652
- return payloads.every((payload) => {
2653
- if ((payload.mediaUrls?.length ?? 0) > 0 || Boolean(payload.mediaUrl)) return false;
2654
- return stripHeartbeatToken(payload.text, {
2655
- mode: "heartbeat",
2656
- maxAckChars: ackMaxChars
2657
- }).shouldSkip;
2658
- });
2659
- }
2660
- function resolveHeartbeatAckMaxChars(agentCfg) {
2661
- const raw = agentCfg?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS;
2662
- return Math.max(0, raw);
2663
- }
2664
2646
 
2665
2647
  //#endregion
2666
2648
  //#region src/cron/isolated-agent/session.ts
@@ -3158,15 +3140,13 @@ async function runCronIsolatedAgentTurn(params) {
3158
3140
  let deliveryPayloads = deliveryPayload !== void 0 ? [deliveryPayload] : synthesizedText ? [{ text: synthesizedText }] : [];
3159
3141
  const deliveryPayloadHasStructuredContent = Boolean(deliveryPayload?.mediaUrl) || (deliveryPayload?.mediaUrls?.length ?? 0) > 0 || Object.keys(deliveryPayload?.channelData ?? {}).length > 0;
3160
3142
  const deliveryBestEffort = resolveCronDeliveryBestEffort(params.job);
3161
- const ackMaxChars = resolveHeartbeatAckMaxChars(agentCfg);
3162
- const skipHeartbeatDelivery = deliveryRequested && isHeartbeatOnlyResponse(payloads, ackMaxChars);
3163
3143
  const skipMessagingToolDelivery = deliveryRequested && runResult.didSendViaMessagingTool === true && (runResult.messagingToolSentTargets ?? []).some((target) => matchesMessagingToolDeliveryTarget(target, {
3164
3144
  channel: resolvedDelivery.channel,
3165
3145
  to: resolvedDelivery.to,
3166
3146
  accountId: resolvedDelivery.accountId
3167
3147
  }));
3168
3148
  let delivered = skipMessagingToolDelivery;
3169
- if (deliveryRequested && !skipHeartbeatDelivery && !skipMessagingToolDelivery) {
3149
+ if (deliveryRequested && !skipMessagingToolDelivery) {
3170
3150
  if (resolvedDelivery.error) {
3171
3151
  if (!deliveryBestEffort) return withRunSession({
3172
3152
  status: "error",
@@ -12005,7 +11985,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12005
11985
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
12006
11986
  if (!minimalTestGateway) (async () => {
12007
11987
  const { recoverPendingDeliveries } = await import("./delivery-queue-nheCYaMd.js").then((n) => n.n);
12008
- const { deliverOutboundPayloads } = await import("./deliver-CRqS1O8w.js").then((n) => n.n);
11988
+ const { deliverOutboundPayloads } = await import("./deliver-DcP6aVt4.js").then((n) => n.n);
12009
11989
  await recoverPendingDeliveries({
12010
11990
  deliver: deliverOutboundPayloads,
12011
11991
  log: log.child("delivery-recovery"),
@@ -12078,7 +12058,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12078
12058
  });
12079
12059
  let glassUiBridgeCleanup = null;
12080
12060
  if (!minimalTestGateway) {
12081
- const { createGlassUiBridge } = await import("./glass-ui-ws-DJnV8nJK.js");
12061
+ const { createGlassUiBridge } = await import("./glass-ui-ws-f_OPXcN2.js");
12082
12062
  glassUiBridgeCleanup = createGlassUiBridge({
12083
12063
  wss: glassUiWss,
12084
12064
  context: gatewayRequestContext,
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C_V8IAYx.js";
2
- import { n as callGateway } from "./call-CdXXPXpo.js";
2
+ import { n as callGateway } from "./call-Du4CT1Hp.js";
3
3
  import { n as withProgress } from "./progress-CyPyGCDn.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts