@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,12 +1,12 @@
1
1
  import { h as resolveUserPath } from "./utils-BU8jVQFM.js";
2
2
  import { o as loadPluginManifest, r as discoverSymiPlugins } from "./manifest-registry-D7Qup2Vq.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-ZXEjR9Sp.js";
4
- import fsPromises from "node:fs/promises";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-CLp95gcX.js";
4
+ import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/plugins/update.ts
7
7
  async function readInstalledPackageVersion(dir) {
8
8
  try {
9
- const raw = await fsPromises.readFile(`${dir}/package.json`, "utf-8");
9
+ const raw = await fs.readFile(`${dir}/package.json`, "utf-8");
10
10
  const parsed = JSON.parse(raw);
11
11
  return typeof parsed.version === "string" ? parsed.version : void 0;
12
12
  } catch {
@@ -2,7 +2,7 @@ import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
2
2
  import { n as fetchWithTimeout } from "./fetch-timeout-CgmRK282.js";
3
3
  import { r as parseSemver } from "./runtime-guard-BZ3_1QqS.js";
4
4
  import path from "node:path";
5
- import fsPromises from "node:fs/promises";
5
+ import fs from "node:fs/promises";
6
6
 
7
7
  //#region src/infra/update-channels.ts
8
8
  const DEFAULT_PACKAGE_CHANNEL = "stable";
@@ -86,11 +86,11 @@ function resolveUpdateChannelDisplay(params) {
86
86
  //#region src/infra/detect-package-manager.ts
87
87
  async function detectPackageManager$1(root) {
88
88
  try {
89
- const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
89
+ const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
90
90
  const pm = JSON.parse(raw)?.packageManager?.split("@")[0]?.trim();
91
91
  if (pm === "pnpm" || pm === "bun" || pm === "npm") return pm;
92
92
  } catch {}
93
- const files = await fsPromises.readdir(root).catch(() => []);
93
+ const files = await fs.readdir(root).catch(() => []);
94
94
  if (files.includes("pnpm-lock.yaml")) return "pnpm";
95
95
  if (files.includes("bun.lockb")) return "bun";
96
96
  if (files.includes("package-lock.json")) return "npm";
@@ -112,7 +112,7 @@ function formatGitInstallLabel(update) {
112
112
  }
113
113
  async function exists(p) {
114
114
  try {
115
- await fsPromises.access(p);
115
+ await fs.access(p);
116
116
  return true;
117
117
  } catch {
118
118
  return false;
@@ -239,7 +239,7 @@ async function checkGitUpdateStatus(params) {
239
239
  }
240
240
  async function statMtimeMs(p) {
241
241
  try {
242
- return (await fsPromises.stat(p)).mtimeMs;
242
+ return (await fs.stat(p)).mtimeMs;
243
243
  } catch {
244
244
  return null;
245
245
  }
@@ -17,12 +17,12 @@ import "./client-CAz5aPpp.js";
17
17
  import "./call-BocrIanP.js";
18
18
  import "./message-channel-CNPAq1Tl.js";
19
19
  import "./pairing-token-Bnr7QjVF.js";
20
- import "./subagent-registry-CWolsN8K.js";
20
+ import "./subagent-registry-B1RgR3-0.js";
21
21
  import "./sessions-7jk0D1BI.js";
22
22
  import "./plugins-Bq-Msc8Z.js";
23
23
  import "./send-CLJ2KPVT.js";
24
24
  import "./with-timeout-BsavN1IH.js";
25
- import "./deliver-CRqS1O8w.js";
25
+ import "./deliver-DcP6aVt4.js";
26
26
  import "./diagnostic-BevbDWGa.js";
27
27
  import "./diagnostic-session-state-Zw87xFym.js";
28
28
  import "./pi-embedded-helpers-DnAXWUyj.js";
@@ -45,8 +45,8 @@ import "./paths-CNexk5_o.js";
45
45
  import "./thinking-BDh5LPh-.js";
46
46
  import "./models-config-BfmuswQ_.js";
47
47
  import "./reply-prefix-CRdCnS44.js";
48
- import "./memory-B7TJXpqS.js";
49
- import "./manager-CpBl-VGg.js";
48
+ import "./memory-CMKSFx1T.js";
49
+ import "./manager-BI8o6AGu.js";
50
50
  import "./sqlite-l3CZYU6t.js";
51
51
  import "./chunk-BySyfaEr.js";
52
52
  import "./markdown-tables-CCOfinlW.js";
@@ -55,7 +55,7 @@ import "./local-roots-CkcUju_2.js";
55
55
  import "./commands-CHkx0oTl.js";
56
56
  import "./commands-registry-CY-QAK3n.js";
57
57
  import "./tool-display-wSdT0Ynz.js";
58
- import "./tokens-DJQ4rO24.js";
58
+ import "./tokens-K3kGchJA.js";
59
59
  import "./skills-remote-DEkSSz2R.js";
60
60
  import { c as trimLogTail } from "./redact-identifier-gZfj5mH2.js";
61
61
  import "./workspace-dirs-B6EAh6SV.js";
@@ -78,9 +78,9 @@ import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
78
78
  import "./cli-utils-BqMwAlgf.js";
79
79
  import { t as formatHelpExamples } from "./help-format-DbbIlOje.js";
80
80
  import "./progress-C4ck6JXh.js";
81
- import "./memory-cli-C0WA_nRS.js";
81
+ import "./memory-cli-rdfaJrCS.js";
82
82
  import "./logging-D0L9TWhE.js";
83
- import "./replies-CgVOirGF.js";
83
+ import "./replies-BOy28KVL.js";
84
84
  import "./pi-tools.policy-D-WJTlz8.js";
85
85
  import { n as inheritOptionFromParent } from "./command-options-BtJGezJl.js";
86
86
  import "./catalog-D2QxJOn1.js";
@@ -92,10 +92,10 @@ import "./npm-registry-spec-NLo2PCol.js";
92
92
  import "./skill-scanner-DkITukAS.js";
93
93
  import "./installs-D0_bsQwa.js";
94
94
  import "./channels-status-issues-GSsGZvfn.js";
95
- import "./register.subclis-DpPYIqkP.js";
96
- import "./command-registry-BwbT4ll7.js";
95
+ import "./register.subclis-CHTY5PYx.js";
96
+ import "./command-registry-UxY6jjeo.js";
97
97
  import "./program-context-BFKw4l9I.js";
98
- import { r as installCompletion } from "./completion-cli-CyOSA5xZ.js";
98
+ import { r as installCompletion } from "./completion-cli-m9L2Gv9t.js";
99
99
  import "./daemon-runtime-Y8XS0WGP.js";
100
100
  import { r as parseSemver } from "./runtime-guard-p4-FMx0l.js";
101
101
  import "./onboard-helpers-LbRPhqLj.js";
@@ -117,8 +117,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
117
117
  import "./doctor-config-flow-DlX_L8Y-.js";
118
118
  import "./systemd-linger-BM4qvprK.js";
119
119
  import "./health-format-DaP03FBk.js";
120
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BRcRFLzB.js";
121
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DqvmZZEo.js";
120
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CwXc8EFB.js";
121
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion--AgLv0kV.js";
122
122
  import { spawn, spawnSync } from "node:child_process";
123
123
  import os from "node:os";
124
124
  import path from "node:path";
@@ -1,129 +1,129 @@
1
- import "./unified-runner-Cdj1nLUh.js";
1
+ import "./unified-runner-Bn9vq7Zy.js";
2
2
  import { j as theme } from "./registry-DKJLAPDB.js";
3
3
  import { g as resolveStateDir } from "./paths-BSzKwaxE.js";
4
4
  import { f as pathExists } from "./utils-BU8jVQFM.js";
5
5
  import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
6
- import "./auth-profiles-BVtpxYtY.js";
6
+ import "./auth-profiles-CPlXilKu.js";
7
7
  import { n as replaceCliName, r as resolveCliName, t as formatCliCommand } from "./command-format-BvAkTjTI.js";
8
- import { t as resolveSymiPackageRoot } from "./symi-root-0MUhiNlM.js";
8
+ import { t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.js";
9
9
  import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
10
- import "./agent-scope-BjEBQhs0.js";
10
+ import "./agent-scope-B_oqIiaD.js";
11
11
  import "./github-copilot-token-BTNK6Tcd.js";
12
12
  import "./boolean-Wzu0-e0P.js";
13
13
  import "./env-B97Ms861.js";
14
- import "./pi-embedded-helpers-Be-EeyzH.js";
15
- import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-CW8aDVM0.js";
14
+ import "./pi-embedded-helpers-BRM8EM4P.js";
15
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-CphS_6eg.js";
16
16
  import "./manifest-registry-D7Qup2Vq.js";
17
- import "./sandbox-DGG12SGo.js";
18
- import "./chrome-NUKborg3.js";
17
+ import "./sandbox-CQU7Gcb9.js";
18
+ import "./chrome-owBWinlj.js";
19
19
  import "./tailscale-D7dC-5EX.js";
20
20
  import "./auth-BbwD4lRX.js";
21
- import "./server-context-BNbx1tUD.js";
21
+ import "./server-context-BsMQBnUG.js";
22
22
  import "./frontmatter-B6IdJ7UK.js";
23
- import "./skills-C_KgxpBD.js";
24
- import "./routes-xZZ99jJJ.js";
23
+ import "./skills-DL8DjveU.js";
24
+ import "./routes-BJ2iXVJF.js";
25
25
  import "./redact-CSc_2Nka.js";
26
26
  import "./errors-Z-WkF18Q.js";
27
- import "./fs-safe-DjAKGGJ8.js";
28
- import "./paths-DaQrPPet.js";
27
+ import "./fs-safe-B6nMaZqV.js";
28
+ import "./paths-Dc6A9_vI.js";
29
29
  import "./ssrf-CC9kEPCT.js";
30
- import "./image-ops-c7_of0HT.js";
31
- import "./ports-EAVAOFyK.js";
30
+ import "./image-ops-C-gIIp7Q.js";
31
+ import "./ports-DqxP-bXz.js";
32
32
  import "./trash-BjVrPcAx.js";
33
- import "./sessions-BaFVKzC2.js";
33
+ import "./sessions-DQMaURzb.js";
34
34
  import "./dock-CnGWTXL4.js";
35
35
  import "./message-channel-C_V8IAYx.js";
36
36
  import "./plugins-DuuHorqi.js";
37
- import "./send-BzUWmgQ9.js";
37
+ import "./send-BAKkoPOy.js";
38
38
  import "./paths-CJcw9nbZ.js";
39
39
  import "./thinking-177f26eg.js";
40
- import "./tokens-DvvjOTxN.js";
41
- import "./deliver-DZ7ynJYH.js";
40
+ import "./tokens-BKbemuIk.js";
41
+ import "./deliver-63FtOVMC.js";
42
42
  import "./diagnostic-CwF3MnBL.js";
43
43
  import "./diagnostic-session-state-I4x9gPY4.js";
44
- import "./models-config-DRgHv7Ss.js";
45
- import "./pi-auth-json-DGZH6URT.js";
44
+ import "./models-config-CFUwiu4W.js";
45
+ import "./pi-auth-json-1Z1j1PDI.js";
46
46
  import "./session-cost-usage-DYcv40ss.js";
47
- import { h as trimLogTail } from "./session-utils-BVC8mmBv.js";
48
- import "./with-timeout-DwVWQ2sN.js";
49
- import "./reply-prefix-CyLplifX.js";
50
- import "./memory-DcWXMzOH.js";
51
- import "./manager-9dNT9kNF.js";
52
- import "./sqlite-BUXBg2yu.js";
47
+ import { h as trimLogTail } from "./session-utils-0F9pB5d6.js";
48
+ import "./with-timeout-C0UtpXBj.js";
49
+ import "./reply-prefix-xaWqfM9m.js";
50
+ import "./memory-2OKjMT7V.js";
51
+ import "./manager-BQ5Wl5r-.js";
52
+ import "./sqlite-DBEvS-Ne.js";
53
53
  import "./chunk-DQGU0F8t.js";
54
54
  import "./markdown-tables-GTLvbzuR.js";
55
55
  import "./fetch-guard-DG6T0ZdL.js";
56
- import "./local-roots-CTriU02e.js";
56
+ import "./local-roots-JhQs5w0I.js";
57
57
  import "./commands-B3UrgxIz.js";
58
- import "./commands-registry-DYk02tmt.js";
59
- import "./client-Bs2zB0rY.js";
60
- import "./call-CdXXPXpo.js";
61
- import "./pairing-token-DorpwP8O.js";
58
+ import "./commands-registry-W2GQIywv.js";
59
+ import "./client-ZZqt0H0-.js";
60
+ import "./call-Du4CT1Hp.js";
61
+ import "./pairing-token-CURbSHdi.js";
62
62
  import "./tool-display-Dr6VaTg5.js";
63
- import "./skills-remote-C0gcKYWX.js";
64
- import "./workspace-dirs-DStsDXra.js";
63
+ import "./skills-remote-Db5Wwr4s.js";
64
+ import "./workspace-dirs-gn_0yzFP.js";
65
65
  import "./pi-model-discovery-DdkUSfiI.js";
66
- import "./model-catalog-BGVslwAT.js";
67
- import "./skill-commands-X3T9Y9lT.js";
68
- import "./pairing-store-CxT0UGxd.js";
66
+ import "./model-catalog-DKBhNiWm.js";
67
+ import "./skill-commands-DP1fshwh.js";
68
+ import "./pairing-store-mmeniyUt.js";
69
69
  import "./exec-approvals-CZOc8M5w.js";
70
- import "./nodes-screen-CT94yu_w.js";
70
+ import "./nodes-screen-JELuBMBi.js";
71
71
  import { r as formatDurationPrecise } from "./format-duration-DbZRICyO.js";
72
72
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-DsZw7bas.js";
73
- import "./control-service-Drd2sr2o.js";
73
+ import "./control-service-CMVDL3Yl.js";
74
74
  import "./stagger-BhvnarfO.js";
75
75
  import "./channel-selection-BvIcXQLj.js";
76
76
  import "./delivery-queue-DDs84baU.js";
77
77
  import "./bindings-9LSA3Jr1.js";
78
- import "./resolve-route-xpyI3enn.js";
78
+ import "./resolve-route-DKhx5C-P.js";
79
79
  import { t as formatDocsLink } from "./links-CSaUKNKm.js";
80
80
  import "./cli-utils-CX1oQ81G.js";
81
81
  import { t as formatHelpExamples } from "./help-format-BI_G2p1e.js";
82
82
  import "./progress-CyPyGCDn.js";
83
- import "./memory-cli-xBZPEOeL.js";
83
+ import "./memory-cli-CmPcKzGZ.js";
84
84
  import "./logging-B5YNzZB9.js";
85
- import "./replies-Dqft-42v.js";
86
- import "./pi-tools.policy-qwS9SXOa.js";
87
- import "./model-BXWgh5eZ.js";
85
+ import "./replies-P7jbK6Bo.js";
86
+ import "./pi-tools.policy-BBHbN8Nh.js";
87
+ import "./model-BKtw-Bqs.js";
88
88
  import { r as parseSemver } from "./runtime-guard-BZ3_1QqS.js";
89
- import "./program-context-C7uCS8z7.js";
89
+ import "./program-context-GaV454D6.js";
90
90
  import "./catalog-BEREnWaa.js";
91
- import "./skills-status-CdfQvU1h.js";
91
+ import "./skills-status-Dx3Lf5iU.js";
92
92
  import { n as inheritOptionFromParent } from "./command-options-ChiIn6Na.js";
93
93
  import { n as stylePromptMessage } from "./prompt-style-Cad0BDRS.js";
94
94
  import "./note-CHrtEumO.js";
95
- import "./plugin-auto-enable-zDUaiaf2.js";
96
- import "./install-safe-path-B73BkVO3.js";
97
- import "./npm-registry-spec-B8X06AqB.js";
98
- import "./skill-scanner-DVq7ZopF.js";
99
- import "./installs-ZXEjR9Sp.js";
95
+ import "./plugin-auto-enable-BCwyDNSP.js";
96
+ import "./install-safe-path-CQXx3s9R.js";
97
+ import "./npm-registry-spec-BXw_6vF6.js";
98
+ import "./skill-scanner-qMQf6-FN.js";
99
+ import "./installs-CLp95gcX.js";
100
100
  import "./channels-status-issues-DC8vgOMo.js";
101
- import { r as installCompletion } from "./completion-cli-DiNUqrNY.js";
102
- import "./daemon-runtime-BH3ZBZXS.js";
103
- import "./onboard-helpers-DZKHFY2J.js";
104
- import "./systemd-8KKQdTO_.js";
105
- import { t as resolveGatewayService } from "./service-9ItKCWWS.js";
106
- import "./lifecycle-core-zhQYm_ni.js";
107
- import "./systemd-hints-_ghBqtKo.js";
108
- import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-BY9BFNuw.js";
109
- import "./diagnostics-nLP2i_BY.js";
101
+ import { r as installCompletion } from "./completion-cli-DebZ6nSb.js";
102
+ import "./daemon-runtime-BD-3XS8R.js";
103
+ import "./onboard-helpers-D2mWJnFB.js";
104
+ import "./systemd-9LEEqibe.js";
105
+ import { t as resolveGatewayService } from "./service-AP9pR9R5.js";
106
+ import "./lifecycle-core-_BlNODTH.js";
107
+ import "./systemd-hints-CeavseQh.js";
108
+ import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-B__05b-d.js";
109
+ import "./diagnostics-DxdqTfpW.js";
110
110
  import { t as renderTable } from "./table-DkAQzCOR.js";
111
- import "./health-D59E1VfO.js";
112
- import "./control-ui-assets-D22DSxhv.js";
113
- import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-BdSIMYWq.js";
114
- import "./dm-policy-shared-CnKffdt_.js";
115
- import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-Cvj7y384.js";
116
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-D_UHlPN0.js";
111
+ import "./health-BdxlhiXA.js";
112
+ import "./control-ui-assets-DUhvOLUL.js";
113
+ import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-CZxZhEXr.js";
114
+ import "./dm-policy-shared-C1TQOlkZ.js";
115
+ import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-CQ1vKrEg.js";
116
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-C8L4XRQb.js";
117
117
  import "./logging-B96FQvnn.js";
118
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-XJWQZpV7.js";
119
- import "./doctor-config-flow-BvHSaiFy.js";
120
- import "./systemd-linger-CnKJZBUr.js";
118
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BvDXKE6K.js";
119
+ import "./doctor-config-flow-4UT3396o.js";
120
+ import "./systemd-linger-PqG8iGCt.js";
121
121
  import "./health-format-39e76m9p.js";
122
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-DcMra8CK.js";
123
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-D_cwpDAq.js";
122
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BkowcFQR.js";
123
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-D1ImH_eM.js";
124
124
  import path from "node:path";
125
125
  import os from "node:os";
126
- import fsPromises from "node:fs/promises";
126
+ import fs from "node:fs/promises";
127
127
  import { spawn, spawnSync } from "node:child_process";
128
128
  import { confirm, isCancel, spinner } from "@clack/prompts";
129
129
 
@@ -166,7 +166,7 @@ async function resolveTargetVersion(tag, timeoutMs) {
166
166
  }
167
167
  async function isGitCheckout(root) {
168
168
  try {
169
- await fsPromises.stat(path.join(root, ".git"));
169
+ await fs.stat(path.join(root, ".git"));
170
170
  return true;
171
171
  } catch {
172
172
  return false;
@@ -178,7 +178,7 @@ async function isCorePackage(root) {
178
178
  }
179
179
  async function isEmptyDir(targetPath) {
180
180
  try {
181
- return (await fsPromises.readdir(targetPath)).length === 0;
181
+ return (await fs.readdir(targetPath)).length === 0;
182
182
  } catch {
183
183
  return false;
184
184
  }
@@ -575,7 +575,7 @@ del "%~f0"
575
575
  `;
576
576
  } else return null;
577
577
  const scriptPath = path.join(tmpDir, filename);
578
- await fsPromises.writeFile(scriptPath, scriptContent, { mode: 493 });
578
+ await fs.writeFile(scriptPath, scriptContent, { mode: 493 });
579
579
  return scriptPath;
580
580
  } catch {
581
581
  return null;
@@ -1,16 +1,16 @@
1
1
  import { f as pathExists } from "./utils-BU8jVQFM.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
3
- import { h as trimLogTail } from "./session-utils-BVC8mmBv.js";
4
- import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-D22DSxhv.js";
5
- import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-BdSIMYWq.js";
3
+ import { h as trimLogTail } from "./session-utils-0F9pB5d6.js";
4
+ import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-DUhvOLUL.js";
5
+ import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-CZxZhEXr.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
8
- import fsPromises from "node:fs/promises";
8
+ import fs from "node:fs/promises";
9
9
 
10
10
  //#region src/infra/package-json.ts
11
11
  async function readPackageVersion(root) {
12
12
  try {
13
- const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
13
+ const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
14
14
  const parsed = JSON.parse(raw);
15
15
  return typeof parsed?.version === "string" ? parsed.version : null;
16
16
  } catch {
@@ -19,7 +19,7 @@ async function readPackageVersion(root) {
19
19
  }
20
20
  async function readPackageName(root) {
21
21
  try {
22
- const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
22
+ const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
23
23
  const name = JSON.parse(raw)?.name?.trim();
24
24
  return name ? name : null;
25
25
  } catch {
@@ -39,7 +39,7 @@ const NPM_GLOBAL_INSTALL_QUIET_FLAGS = [
39
39
  ];
40
40
  async function tryRealpath(targetPath) {
41
41
  try {
42
- return await fsPromises.realpath(targetPath);
42
+ return await fs.realpath(targetPath);
43
43
  } catch {
44
44
  return path.resolve(targetPath);
45
45
  }
@@ -140,7 +140,7 @@ async function cleanupGlobalRenameDirs(params) {
140
140
  const prefix = `${GLOBAL_RENAME_PREFIX}${name}-`;
141
141
  let entries = [];
142
142
  try {
143
- entries = await fsPromises.readdir(root);
143
+ entries = await fs.readdir(root);
144
144
  } catch {
145
145
  return { removed };
146
146
  }
@@ -148,8 +148,8 @@ async function cleanupGlobalRenameDirs(params) {
148
148
  if (!entry.startsWith(prefix)) continue;
149
149
  const target = path.join(root, entry);
150
150
  try {
151
- if (!(await fsPromises.lstat(target)).isDirectory()) continue;
152
- await fsPromises.rm(target, {
151
+ if (!(await fs.lstat(target)).isDirectory()) continue;
152
+ await fs.rm(target, {
153
153
  recursive: true,
154
154
  force: true
155
155
  });
@@ -261,7 +261,7 @@ async function findPackageRoot(candidates) {
261
261
  for (let i = 0; i < 12; i += 1) {
262
262
  const pkgPath = path.join(current, "package.json");
263
263
  try {
264
- const raw = await fsPromises.readFile(pkgPath, "utf-8");
264
+ const raw = await fs.readFile(pkgPath, "utf-8");
265
265
  const name = JSON.parse(raw)?.name?.trim();
266
266
  if (name && CORE_PACKAGE_NAMES.has(name)) return current;
267
267
  } catch {}
@@ -543,7 +543,7 @@ async function runGatewayUpdate(opts = {}) {
543
543
  durationMs: Date.now() - startedAt
544
544
  };
545
545
  const manager = await detectPackageManager(gitRoot);
546
- const preflightRoot = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-update-preflight-"));
546
+ const preflightRoot = await fs.mkdtemp(path.join(os.tmpdir(), "symi-update-preflight-"));
547
547
  const worktreeDir = path.join(preflightRoot, "worktree");
548
548
  const worktreeStep = await runStep(step("preflight worktree", [
549
549
  "git",
@@ -557,7 +557,7 @@ async function runGatewayUpdate(opts = {}) {
557
557
  ], gitRoot));
558
558
  steps.push(worktreeStep);
559
559
  if (worktreeStep.exitCode !== 0) {
560
- await fsPromises.rm(preflightRoot, {
560
+ await fs.rm(preflightRoot, {
561
561
  recursive: true,
562
562
  force: true
563
563
  }).catch(() => {});
@@ -621,7 +621,7 @@ async function runGatewayUpdate(opts = {}) {
621
621
  cwd: gitRoot,
622
622
  timeoutMs
623
623
  }).catch(() => null);
624
- await fsPromises.rm(preflightRoot, {
624
+ await fs.rm(preflightRoot, {
625
625
  recursive: true,
626
626
  force: true
627
627
  }).catch(() => {});
@@ -769,7 +769,7 @@ async function runGatewayUpdate(opts = {}) {
769
769
  durationMs: Date.now() - startedAt
770
770
  };
771
771
  const doctorEntry = path.join(gitRoot, "symi.mjs");
772
- if (!await fsPromises.stat(doctorEntry).then(() => true).catch(() => false)) {
772
+ if (!await fs.stat(doctorEntry).then(() => true).catch(() => false)) {
773
773
  steps.push({
774
774
  name: "symi doctor entry",
775
775
  command: `verify ${doctorEntry}`,
@@ -2,17 +2,17 @@ import { b as danger, j as theme } from "./registry-DKJLAPDB.js";
2
2
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-BSzKwaxE.js";
3
3
  import { a as displayPath } from "./utils-BU8jVQFM.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
5
- import "./auth-profiles-BVtpxYtY.js";
5
+ import "./auth-profiles-CPlXilKu.js";
6
6
  import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
7
7
  import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
8
- import "./agent-scope-BjEBQhs0.js";
8
+ import "./agent-scope-B_oqIiaD.js";
9
9
  import "./github-copilot-token-BTNK6Tcd.js";
10
10
  import "./boolean-Wzu0-e0P.js";
11
11
  import "./env-B97Ms861.js";
12
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-CW8aDVM0.js";
12
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-CphS_6eg.js";
13
13
  import "./manifest-registry-D7Qup2Vq.js";
14
14
  import "./frontmatter-B6IdJ7UK.js";
15
- import "./skills-C_KgxpBD.js";
15
+ import "./skills-DL8DjveU.js";
16
16
  import { t as formatDocsLink } from "./links-CSaUKNKm.js";
17
17
  import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-D5G00y8h.js";
18
18
  import { spawn } from "node:child_process";
@@ -1,5 +1,5 @@
1
1
  import { c as escapeRegExp } from "./utils-BU8jVQFM.js";
2
- import { t as registerBrowserRoutes } from "./routes-xZZ99jJJ.js";
2
+ import { t as registerBrowserRoutes } from "./routes-BJ2iXVJF.js";
3
3
  import os from "node:os";
4
4
  import { promisify } from "node:util";
5
5
  import { execFile } from "node:child_process";
@@ -1,7 +1,7 @@
1
1
  import { u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
2
2
  import { _ as isSubagentSessionKey, g as isCronSessionKey } from "./session-key-BmQ2R1ev.js";
3
- import { D as warn, E as shouldLogVerbose, M as getLogger, Y as resolveUserPath, b as danger, q as pathExists, w as logVerboseConsole, x as info } from "./registry-9AaJQms1.js";
4
- import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DhOo2FZn.js";
3
+ import { D as warn, E as shouldLogVerbose, M as getLogger, Y as resolveUserPath, b as danger, q as pathExists, w as logVerboseConsole, x as info } from "./registry-C-JddWwo.js";
4
+ import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DzRUKS9f.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
  import os from "node:os";
@@ -1,4 +1,4 @@
1
- import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BjEBQhs0.js";
1
+ import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-B_oqIiaD.js";
2
2
 
3
3
  //#region src/agents/workspace-dirs.ts
4
4
  function listAgentWorkspaceDirs(cfg) {
@@ -1,4 +1,4 @@
1
- import fsPromises from "node:fs/promises";
1
+ import fs$1 from "node:fs/promises";
2
2
 
3
3
  //#region src/infra/wsl.ts
4
4
  let wslCached = null;
@@ -13,7 +13,7 @@ async function isWSL() {
13
13
  return wslCached;
14
14
  }
15
15
  try {
16
- const release = await fsPromises.readFile("/proc/sys/kernel/osrelease", "utf8");
16
+ const release = await fs$1.readFile("/proc/sys/kernel/osrelease", "utf8");
17
17
  wslCached = release.toLowerCase().includes("microsoft") || release.toLowerCase().includes("wsl");
18
18
  } catch {
19
19
  wslCached = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.3.1",
3
+ "version": "3.3.3",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -1,26 +0,0 @@
1
- export declare const HEARTBEAT_PROMPT = "Read SYMIPULSE.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply SYMIPULSE_OK.";
2
- export declare const DEFAULT_HEARTBEAT_EVERY: string | undefined;
3
- export declare const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
4
- /**
5
- * Check if SYMIPULSE.md content is "effectively empty" - meaning it has no actionable tasks.
6
- * This allows skipping heartbeat API calls when no tasks are configured.
7
- *
8
- * A file is considered effectively empty if it contains only:
9
- * - Whitespace
10
- * - Comment lines (lines starting with #)
11
- * - Empty lines
12
- *
13
- * Note: A missing file returns false (not effectively empty) so the LLM can still
14
- * decide what to do. This function is only for when the file exists but has no content.
15
- */
16
- export declare function isHeartbeatContentEffectivelyEmpty(content: string | undefined | null): boolean;
17
- export declare function resolveHeartbeatPrompt(raw?: string): string;
18
- export type StripHeartbeatMode = "heartbeat" | "message";
19
- export declare function stripHeartbeatToken(raw?: string, opts?: {
20
- mode?: StripHeartbeatMode;
21
- maxAckChars?: number;
22
- }): {
23
- shouldSkip: boolean;
24
- text: string;
25
- didStrip: boolean;
26
- };
@@ -1,25 +0,0 @@
1
- import { type PayloadMiddleware } from "./payload-middleware.js";
2
- export interface WithHeartbeatStripOptions {
3
- /**
4
- * Optional notification when a stray SYMIPULSE_OK token was stripped.
5
- * Production fires this once per run as a verbose log line — kept
6
- * configurable so callers without a logger don't pay the dependency.
7
- */
8
- onStrip?: () => void;
9
- }
10
- /**
11
- * Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
12
- * replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
13
- * decide whether to strip; reads `payload.isError` to give the sanitizer
14
- * the right context flag.
15
- *
16
- * Equivalence claim (proven by tests): for every input shape the chain's
17
- * `normalizeStreamingText({text})` would have produced `{ skip, text }`,
18
- * this middleware produces the corresponding `PayloadDelivery`:
19
- *
20
- * skip=true → delivered=false (drop)
21
- * skip=false, text=undefined → delivered=true with payload.text undefined
22
- * (media-only carry-through case)
23
- * skip=false, text=string → delivered=true with payload.text=sanitized
24
- */
25
- export declare function withHeartbeatStrip(opts?: WithHeartbeatStripOptions): PayloadMiddleware;