@symerian/symi 3.3.0 → 3.3.1

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 (330) hide show
  1. package/dist/{agent-B2IkIBj2.js → agent-BI1-UXxQ.js} +1 -1
  2. package/dist/{agent-BrIHHGnC.js → agent-DeLysRUa.js} +29 -29
  3. package/dist/{agent-scope-2la27US0.js → agent-scope-BjEBQhs0.js} +23 -23
  4. package/dist/{agent-scope-D_MtsuXX.js → agent-scope-DE5eEsvh.js} +2 -2
  5. package/dist/{agents-B57SUSPt.js → agents-BMRZpxNt.js} +2 -2
  6. package/dist/{agents.config-COMcEDAk.js → agents.config-BFKM-a83.js} +3 -3
  7. package/dist/{audit-B58SlbPa.js → audit-DQ_p2Pbq.js} +34 -34
  8. package/dist/{auth-CC9_WXMi.js → auth-BbwD4lRX.js} +3 -3
  9. package/dist/{auth-choice-B6iYCDVN.js → auth-choice-BGZsmh6a.js} +9 -9
  10. package/dist/{auth-choice-Z1qCZxwg.js → auth-choice-T77Ymi34.js} +1 -1
  11. package/dist/{auth-profiles-CZTGpbyT.js → auth-profiles-B6ISm3Th.js} +5 -5
  12. package/dist/{auth-profiles-8vSEr9B4.js → auth-profiles-BVtpxYtY.js} +17 -17
  13. package/dist/{auth-token-DpYUPTNG.js → auth-token-CPluo60n.js} +3 -3
  14. package/dist/{banner-QsnCDxXH.js → banner-BJHky-bq.js} +1 -1
  15. package/dist/{bindings-CiRAK4tH.js → bindings-9LSA3Jr1.js} +2 -2
  16. package/dist/{bonjour-discovery-lp5P_YUR.js → bonjour-discovery-CU1mz7AC.js} +3 -3
  17. package/dist/{browser-cli-_9G3GBJS.js → browser-cli-O7Ic8DI3.js} +28 -28
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +34 -34
  20. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  21. package/dist/bundled/session-memory/handler.js +33 -33
  22. package/dist/{call-DLBaLOHo.js → call-CdXXPXpo.js} +13 -13
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{catalog-CNZxYA15.js → catalog-BEREnWaa.js} +4 -4
  25. package/dist/{channel-options-DckWOMWG.js → channel-options-BrDTgiiV.js} +5 -5
  26. package/dist/{channel-options-Cj-xJAMD.js → channel-options-C1yi5h7A.js} +1 -1
  27. package/dist/{channel-selection-BGtIUbFL.js → channel-selection-BvIcXQLj.js} +2 -2
  28. package/dist/{channels-cli-CIq4PFA0.js → channels-cli-BYeGzy-G.js} +7 -7
  29. package/dist/{channels-cli-Y8CGJ_qQ.js → channels-cli-Pxe1OINS.js} +98 -98
  30. package/dist/{channels-status-issues-rRBNHH7B.js → channels-status-issues-DC8vgOMo.js} +1 -1
  31. package/dist/{chrome-b556dOQ6.js → chrome-CQnRgvJz.js} +7 -7
  32. package/dist/{chrome-BgQbis3t.js → chrome-FAf5DZL2.js} +11 -11
  33. package/dist/{chrome-sQI2Ex5S.js → chrome-NUKborg3.js} +7 -7
  34. package/dist/{chunk-CKgSHf7u.js → chunk-DQGU0F8t.js} +2 -2
  35. package/dist/{chunk-Ds8SZRkS.js → chunk-DX6VtywY.js} +1 -1
  36. package/dist/{clack-prompter-CR9tYooX.js → clack-prompter-CWQQn_CK.js} +5 -5
  37. package/dist/cli-DFNOC2Ad.js +128 -0
  38. package/dist/{cli--omJsLkl.js → cli-Dt-wfm_7.js} +4 -4
  39. package/dist/{client-D8iTVY4F.js → client-Bs2zB0rY.js} +7 -7
  40. package/dist/{clipboard-C9NQe8TV.js → clipboard-McRwF3r0.js} +1 -1
  41. package/dist/{command-registry-bozDt85D.js → command-registry-BwbT4ll7.js} +10 -10
  42. package/dist/{commands-sNCgvbpu.js → commands-B3UrgxIz.js} +2 -2
  43. package/dist/{commands-registry-CRkL6mTz.js → commands-registry-C5IdtVVy.js} +4 -4
  44. package/dist/{commands-registry-DXK4Ortm.js → commands-registry-DYk02tmt.js} +6 -6
  45. package/dist/{completion-cli-9qQYFUPk.js → completion-cli-CyOSA5xZ.js} +2 -2
  46. package/dist/{completion-cli-FXkVKM19.js → completion-cli-DiNUqrNY.js} +16 -16
  47. package/dist/{config-fTqqDRAc.js → config-CW8aDVM0.js} +9 -9
  48. package/dist/{config-cli-BexhS7Qb.js → config-cli-DBU_S417.js} +15 -15
  49. package/dist/{config-cli-C3D7beGW.js → config-cli-DfG0nukz.js} +1 -1
  50. package/dist/{config-guard-IteQa1rq.js → config-guard-CNmD3-IC.js} +23 -23
  51. package/dist/{config-validation-B05t9fma.js → config-validation-Bz5CV181.js} +2 -2
  52. package/dist/{configure-BWXNd2TO.js → configure-BYu2DI_6.js} +2 -2
  53. package/dist/{configure-0e3ty1G9.js → configure-BkH4ueot.js} +26 -26
  54. package/dist/{consolidate-BaeR2tIX.js → consolidate-Cx7qF5Ht.js} +10 -10
  55. package/dist/{consolidate-C-HKdAJo.js → consolidate-dh1m3X1s.js} +2 -2
  56. package/dist/{control-service-BDMq-0pg.js → control-service-Drd2sr2o.js} +5 -5
  57. package/dist/{control-ui-assets-muBwnb6-.js → control-ui-assets-D22DSxhv.js} +4 -4
  58. package/dist/{conversation-label-B4d5pKXr.js → conversation-label-CS5Zjc4w.js} +1 -1
  59. package/dist/{conversation-label-WjwKgn7n.js → conversation-label-tLwAlqLf.js} +1 -1
  60. package/dist/{cron-cli-DvDr2Uxo.js → cron-cli-BTAdnRhX.js} +21 -21
  61. package/dist/{daemon-cli-DiLogoCM.js → daemon-cli-BY9BFNuw.js} +22 -22
  62. package/dist/{daemon-runtime-C3dBpZhs.js → daemon-runtime-BH3ZBZXS.js} +13 -13
  63. package/dist/{deliver-B_Fv-dS9.js → deliver-DZ7ynJYH.js} +8 -8
  64. package/dist/{deliver-B_Gz2_tA.js → deliver-Dlq2X0K5.js} +4 -4
  65. package/dist/{deliver-B_jXI55b.js → deliver-kmnOOp9j.js} +22 -22
  66. package/dist/{delivery-queue-CeY346SK.js → delivery-queue-DDs84baU.js} +2 -2
  67. package/dist/{deps-Du8ZcRHN.js → deps-i1g0Zpz4.js} +1 -1
  68. package/dist/{devices-cli-BFPrh5bu.js → devices-cli-Cqi6L8PH.js} +19 -19
  69. package/dist/{diagnostic-D7z6O7v0.js → diagnostic-CQLyE7_n.js} +1 -1
  70. package/dist/{diagnostic-oeL366QK.js → diagnostic-CwF3MnBL.js} +1 -1
  71. package/dist/{diagnostics-3x3usVgE.js → diagnostics-nLP2i_BY.js} +5 -5
  72. package/dist/{directory-cli-BUBucKQI.js → directory-cli-B0XsBWso.js} +19 -19
  73. package/dist/{dm-policy-shared-BcXoqtVd.js → dm-policy-shared-CnKffdt_.js} +2 -2
  74. package/dist/{dns-cli-B6QTNBXV.js → dns-cli-BHWlCG31.js} +17 -17
  75. package/dist/{dock-n_MeJBcj.js → dock-CnGWTXL4.js} +3 -3
  76. package/dist/{docs-cli-C2xEH6jC.js → docs-cli-DASNErN-.js} +13 -13
  77. package/dist/{doctor-completion-K1dL1s3P.js → doctor-completion-D_cwpDAq.js} +4 -4
  78. package/dist/{doctor-completion-CcHk8myN.js → doctor-completion-DqvmZZEo.js} +1 -1
  79. package/dist/{doctor-config-flow-Dl08K6Q3.js → doctor-config-flow-BvHSaiFy.js} +15 -15
  80. package/dist/entry.js +1 -1
  81. package/dist/{env-B7UUyzd_.js → env-B97Ms861.js} +2 -2
  82. package/dist/{errors-BgCjRT2k.js → errors-BkfLlDKo.js} +1 -1
  83. package/dist/{errors-CBVhQiQ9.js → errors-Z-WkF18Q.js} +1 -1
  84. package/dist/{exec-BcvUYCcV.js → exec-DKyLtSjm.js} +2 -2
  85. package/dist/{exec-approvals-BWtVKlN2.js → exec-approvals-CZOc8M5w.js} +3 -3
  86. package/dist/{exec-approvals-cli-SDF4LICf.js → exec-approvals-cli-CyHTywue.js} +27 -27
  87. package/dist/extensionAPI.js +4 -4
  88. package/dist/{fetch-guard-BWofyagX.js → fetch-guard-DG6T0ZdL.js} +2 -2
  89. package/dist/{frontmatter-B5iYTsZP.js → frontmatter-B6IdJ7UK.js} +2 -2
  90. package/dist/{frontmatter-vaw8OX7Y.js → frontmatter-BW7tVmn4.js} +5 -5
  91. package/dist/{fs-safe-CR_3Yr4x.js → fs-safe-DjAKGGJ8.js} +7 -7
  92. package/dist/{gateway-cli-CAFWFnSX.js → gateway-cli-BBqSqFGV.js} +451 -151
  93. package/dist/{gateway-cli-CzD6faIt.js → gateway-cli-BYGA5ex3.js} +311 -11
  94. package/dist/{gateway-rpc-o8CJkHuM.js → gateway-rpc-BJF1iDnx.js} +3 -3
  95. package/dist/{github-copilot-token-DTYkb2IC.js → github-copilot-token-BTNK6Tcd.js} +2 -2
  96. package/dist/{glass-ui-ws-Bbs2mIij.js → glass-ui-ws-DJnV8nJK.js} +8 -8
  97. package/dist/{glass-ui-ws-Dsez9bGF.js → glass-ui-ws-NJNiRFL3.js} +105 -105
  98. package/dist/{gmail-setup-utils-CLvOQ6kY.js → gmail-setup-utils-D5G00y8h.js} +5 -5
  99. package/dist/{health-iJ9JzccO.js → health-D59E1VfO.js} +13 -13
  100. package/dist/{health-format-CxAXRqzB.js → health-format-39e76m9p.js} +1 -1
  101. package/dist/{help-format-BWTv-lf6.js → help-format-BI_G2p1e.js} +1 -1
  102. package/dist/{helpers-BtwjKsDp.js → helpers-BBypnAYf.js} +1 -1
  103. package/dist/{hooks-cli-BEYoHsqh.js → hooks-cli-Bidz8ACz.js} +98 -98
  104. package/dist/{hooks-cli-DNlmk6eB.js → hooks-cli-CyjEjDSY.js} +5 -5
  105. package/dist/{hooks-status-D9SOPTTY.js → hooks-status-DLHEahg_.js} +3 -3
  106. package/dist/{image-ops-BkR5mVOY.js → image-ops-c7_of0HT.js} +12 -12
  107. package/dist/{inbound-context-CICDRKxY.js → inbound-context-CJj1VfzK.js} +2 -2
  108. package/dist/{inbound-context-B4B7i7oM.js → inbound-context-DqAyGDbE.js} +2 -2
  109. package/dist/index.js +90 -90
  110. package/dist/{inspect-XD55qAEL.js → inspect-op0Ov-v4.js} +4 -4
  111. package/dist/{install-safe-path-odQNUvjd.js → install-safe-path-B73BkVO3.js} +12 -12
  112. package/dist/{installs-DLhIne1t.js → installs-ZXEjR9Sp.js} +12 -12
  113. package/dist/{internal-CBKiu8Jv.js → internal-C3o_xyzP.js} +10 -10
  114. package/dist/{legacy-names-BVA_sKnb.js → legacy-names-C0hZiM-7.js} +1 -1
  115. package/dist/{lifecycle-core-CcinwCvM.js → lifecycle-core-zhQYm_ni.js} +10 -10
  116. package/dist/{links-C6mXo5Yj.js → links-CSaUKNKm.js} +1 -1
  117. package/dist/llm-slug-generator.js +33 -33
  118. package/dist/{local-roots-C0G03E-R.js → local-roots-CTriU02e.js} +3 -3
  119. package/dist/{local-roots-DtvYChMM.js → local-roots-Dm8-ErgQ.js} +3 -3
  120. package/dist/{logging-CMolPIQB.js → logging-B96FQvnn.js} +2 -2
  121. package/dist/{logs-cli--Wek899G.js → logs-cli-B7RJ57Dc.js} +20 -20
  122. package/dist/{manager-CS1vxold.js → manager-9dNT9kNF.js} +22 -22
  123. package/dist/{manager-9Rt8-xIT.js → manager-CpBl-VGg.js} +1 -1
  124. package/dist/{manager-Bmh-pcUv.js → manager-Dsdh0rGn.js} +9 -9
  125. package/dist/{manager-Do0-i7vp.js → manager-t4GthPGw.js} +1 -1
  126. package/dist/{manifest-registry-Cc80pffV.js → manifest-registry-B2vClvK5.js} +2 -2
  127. package/dist/{manifest-registry-B4I9g0CL.js → manifest-registry-D7Qup2Vq.js} +3 -3
  128. package/dist/{markdown-tables-D0bwB4O7.js → markdown-tables-BaWa2kOe.js} +1 -1
  129. package/dist/{markdown-tables-jlJYpF1X.js → markdown-tables-GTLvbzuR.js} +2 -2
  130. package/dist/{memory-BduQaKuC.js → memory-B7TJXpqS.js} +2 -2
  131. package/dist/{memory-ofHIUCzf.js → memory-DcWXMzOH.js} +7 -7
  132. package/dist/{memory-cli-BCz9iNCM.js → memory-cli-C0WA_nRS.js} +2 -2
  133. package/dist/{memory-cli-LXH0BNmI.js → memory-cli-xBZPEOeL.js} +22 -22
  134. package/dist/{message-channel-j44ChSJV.js → message-channel-C_V8IAYx.js} +1 -1
  135. package/dist/{model-BBL3doiY.js → model-BXWgh5eZ.js} +1 -1
  136. package/dist/{model-catalog-D8YRs6r8.js → model-catalog-BGVslwAT.js} +4 -4
  137. package/dist/{model-picker-CdmjvvmL.js → model-picker-aTfyp_mP.js} +3 -3
  138. package/dist/{models-DTHdIg0A.js → models-IfAFy9bK.js} +2 -2
  139. package/dist/{models-cli-CdL5Tf5E.js → models-cli-DiB4JqF2.js} +6 -6
  140. package/dist/{models-cli-DrJsggrX.js → models-cli-h8h_qu3F.js} +94 -94
  141. package/dist/{models-config-BCa11tVc.js → models-config-DRgHv7Ss.js} +8 -8
  142. package/dist/{node-cli-Dl-lvH1N.js → node-cli-BPkbqgRt.js} +50 -50
  143. package/dist/{node-service-O5CpXu6c.js → node-service-DuN9eBL6.js} +1 -1
  144. package/dist/{nodes-cli-C9pjIduh.js → nodes-cli-C09c6nCf.js} +27 -27
  145. package/dist/{nodes-screen-B_D8bZhT.js → nodes-screen-CT94yu_w.js} +7 -7
  146. package/dist/{note-1QdZVD7W.js → note-CHrtEumO.js} +2 -2
  147. package/dist/{npm-registry-spec-BQ7yzKIT.js → npm-registry-spec-B8X06AqB.js} +12 -12
  148. package/dist/{onboard-channels-DmvTuYe_.js → onboard-channels-BfzW-9vo.js} +1 -1
  149. package/dist/{onboard-channels-CXqIlUcV.js → onboard-channels-Deq8QGnM.js} +13 -13
  150. package/dist/{onboard-custom-DAD9D1fS.js → onboard-custom-DEdRdzNq.js} +3 -3
  151. package/dist/{onboard-helpers-C5J9vSm2.js → onboard-helpers-DZKHFY2J.js} +16 -16
  152. package/dist/{onboard-hooks-D87tRcuX.js → onboard-hooks-DZZM8goM.js} +11 -11
  153. package/dist/{onboard-3VcPRZV5.js → onboard-iL7Z0wKJ.js} +1 -1
  154. package/dist/{onboard-remote-D3CWFQ0_.js → onboard-remote-dn4L5WdE.js} +3 -3
  155. package/dist/{onboard-Cr1Rd93U.js → onboard-sMgEOBjV.js} +20 -20
  156. package/dist/{onboard-skills-CTv0hBJv.js → onboard-skills-DGHye9Q3.js} +5 -5
  157. package/dist/{onboarding-D_wPq7hv.js → onboarding-70YKbZi6.js} +3 -3
  158. package/dist/{onboarding-Bop5peq2.js → onboarding-BjXYbWlg.js} +19 -19
  159. package/dist/{onboarding.finalize-DGwAMlRi.js → onboarding.finalize-Ch3V08eY.js} +4 -4
  160. package/dist/{onboarding.finalize-Pa0bEFjp.js → onboarding.finalize-dU_CtL43.js} +62 -62
  161. package/dist/{onboarding.gateway-config-aIrdqmcQ.js → onboarding.gateway-config-DfF8Rxvn.js} +23 -23
  162. package/dist/{openai-model-default-BDH_OYY8.js → openai-model-default-D1NFHFF_.js} +4 -4
  163. package/dist/{pairing-cli-PrIxvqnD.js → pairing-cli-CJv8LQfb.js} +17 -17
  164. package/dist/{pairing-store-DmCi9E47.js → pairing-store-CxT0UGxd.js} +5 -5
  165. package/dist/{pairing-token-BmIoXjHZ.js → pairing-token-DorpwP8O.js} +9 -9
  166. package/dist/{path-env-CRW1aXZp.js → path-env-DuQralyy.js} +3 -3
  167. package/dist/{paths-Cqn-zk3M.js → paths-BSzKwaxE.js} +1 -1
  168. package/dist/paths-BeAyfCRg.js +127 -0
  169. package/dist/{paths-CdGa1jlU.js → paths-CJcw9nbZ.js} +3 -3
  170. package/dist/{paths-DvXvD4Xu.js → paths-DaQrPPet.js} +2 -2
  171. package/dist/{pi-auth-json-ChKC--mV.js → pi-auth-json-BzuhVcKu.js} +1 -1
  172. package/dist/{pi-auth-json-DhbhmAvs.js → pi-auth-json-DGZH6URT.js} +5 -5
  173. package/dist/{pi-embedded-hri4e4ie.js → pi-embedded-DOCVZrmx.js} +20 -64
  174. package/dist/{pi-embedded-helpers-VZo1D4Ck.js → pi-embedded-helpers-Be-EeyzH.js} +9 -9
  175. package/dist/{pi-tools.policy-DrRZdkk0.js → pi-tools.policy-qwS9SXOa.js} +6 -6
  176. package/dist/{plugin-auto-enable-BV-thF8P.js → plugin-auto-enable-zDUaiaf2.js} +4 -4
  177. package/dist/{plugin-registry-CYEwOWqU.js → plugin-registry-BgGVB3kW.js} +5 -5
  178. package/dist/{plugin-registry-q_UuFncy.js → plugin-registry-CP2mbhwk.js} +1 -1
  179. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +0 -1
  180. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +0 -3
  181. package/dist/plugin-sdk/auto-reply/reply/payload-middleware.d.ts +0 -2
  182. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +5 -3
  183. package/dist/plugin-sdk/auto-reply/types.d.ts +0 -3
  184. package/dist/plugin-sdk/gateway/outbound-filter.d.ts +4 -7
  185. package/dist/plugin-sdk/infra/agent-events.d.ts +0 -1
  186. package/dist/{plugins-CYQOjCDt.js → plugins-DuuHorqi.js} +3 -3
  187. package/dist/{plugins-cli-DE_0PdqM.js → plugins-cli-1wkCRsFe.js} +5 -5
  188. package/dist/{plugins-cli-CR1PAkGv.js → plugins-cli-B_Gtx3LU.js} +89 -89
  189. package/dist/{plugins-BG2b7dR_.js → plugins-yymezpEd.js} +2 -2
  190. package/dist/{ports-DfsXfAsq.js → ports-ChuJYhEL.js} +2 -2
  191. package/dist/{ports-LzI_-wEZ.js → ports-EAVAOFyK.js} +7 -7
  192. package/dist/{program-x8XxEZXE.js → program-UyCr49qs.js} +10 -10
  193. package/dist/{program-context-CvgJOZ3Q.js → program-context-C7uCS8z7.js} +39 -39
  194. package/dist/{progress-B6mhJhX6.js → progress-CyPyGCDn.js} +2 -2
  195. package/dist/{prompt-select-styled-BFV2QYJC.js → prompt-select-styled-BRcRFLzB.js} +4 -4
  196. package/dist/{prompt-select-styled-CFeLUnsr.js → prompt-select-styled-DcMra8CK.js} +54 -54
  197. package/dist/{prompt-style-DtQMGj0v.js → prompt-style-Cad0BDRS.js} +1 -1
  198. package/dist/{provider-auth-helpers-D2GLBV7U.js → provider-auth-helpers-BJTb9xI0.js} +1 -1
  199. package/dist/{provider-auth-helpers-C-Cv3SZA.js → provider-auth-helpers-Xn1TAPPY.js} +8 -8
  200. package/dist/{push-apns-DTqLWoEj.js → push-apns-Aaqf9WKI.js} +10 -10
  201. package/dist/{push-apns-9XQgEWxs.js → push-apns-Bfqnchj6.js} +1 -1
  202. package/dist/{pw-ai-BFZrohva.js → pw-ai-B3qisJP1.js} +1 -1
  203. package/dist/{pw-ai-Bb4P23-n.js → pw-ai-C-ddUgTA.js} +20 -20
  204. package/dist/{pw-ai-D5WlMgqy.js → pw-ai-DJrnU1ja.js} +12 -12
  205. package/dist/{qmd-manager-92cDmzSO.js → qmd-manager-D5kqCz-Y.js} +28 -28
  206. package/dist/{qmd-manager-D6ABQ2yd.js → qmd-manager-DrM6m9z1.js} +7 -7
  207. package/dist/{qr-cli-B_kge4ua.js → qr-cli-B_mw4i0R.js} +12 -12
  208. package/dist/{register.agent-C-p6kDhf.js → register.agent-BqKNzdaW.js} +108 -108
  209. package/dist/{register.agent-D9FfFyh0.js → register.agent-vAJ0_4m0.js} +9 -9
  210. package/dist/register.configure-7TmTqCgU.js +129 -0
  211. package/dist/{register.configure-CtbO9t7v.js → register.configure-BzgavjpU.js} +8 -8
  212. package/dist/{register.maintenance-Dy8l8hKt.js → register.maintenance-6Wz4HXlm.js} +109 -109
  213. package/dist/{register.maintenance-h-CVvMpP.js → register.maintenance-BJO0RCk9.js} +9 -9
  214. package/dist/{register.message-DFytf1Dr.js → register.message-CW9PahRi.js} +5 -5
  215. package/dist/{register.message-CaOagrcp.js → register.message-XYivyrQJ.js} +81 -81
  216. package/dist/{register.onboard-SunldfQB.js → register.onboard-BgwkmP4D.js} +45 -45
  217. package/dist/{register.onboard-BAQSWmTB.js → register.onboard-MWRC29wD.js} +2 -2
  218. package/dist/{register.setup-D3uuohUQ.js → register.setup-7OoAqQG_.js} +48 -48
  219. package/dist/{register.setup-BnuPTj2h.js → register.setup-V-arsKvb.js} +2 -2
  220. package/dist/{register.status-health-sessions-azKiEST-.js → register.status-health-sessions-1VnuXhGM.js} +3 -3
  221. package/dist/{register.status-health-sessions-CPcQpUNU.js → register.status-health-sessions-Bgg1sdY_.js} +68 -68
  222. package/dist/{register.subclis-Di2DRNVF.js → register.subclis-DpPYIqkP.js} +9 -9
  223. package/dist/{registry-C-JddWwo.js → registry-9AaJQms1.js} +2 -2
  224. package/dist/{registry-CtguoMhn.js → registry-DKJLAPDB.js} +4 -4
  225. package/dist/{replies-CvuXRwhI.js → replies-BZN1LuJP.js} +3 -3
  226. package/dist/{replies-BUaT9S6J.js → replies-Dqft-42v.js} +3 -3
  227. package/dist/{reply-prefix-ClUrRCRd.js → reply-prefix-CyLplifX.js} +1 -1
  228. package/dist/{reply-prefix-ChIeKp-P.js → reply-prefix-DkDTGwTs.js} +1 -1
  229. package/dist/{resolve-route-BLDKso2x.js → resolve-route-CIA0TSsF.js} +4 -4
  230. package/dist/{resolve-route-C0EHjIMD.js → resolve-route-xpyI3enn.js} +6 -6
  231. package/dist/{routes-BFfAPz_0.js → routes-xZZ99jJJ.js} +14 -14
  232. package/dist/{rpc-CQUsmQ6_.js → rpc-BzR2wLkc.js} +3 -3
  233. package/dist/{run-main-BhJ6M7oy.js → run-main-n0fjk-o5.js} +17 -17
  234. package/dist/{runtime-guard-Btd35-OG.js → runtime-guard-BZ3_1QqS.js} +1 -1
  235. package/dist/{sandbox-sayuve7z.js → sandbox-DGG12SGo.js} +27 -27
  236. package/dist/{sandbox-cli-Dyh_eqHp.js → sandbox-cli--d2MJPM2.js} +37 -37
  237. package/dist/{security-cli-B5XGCe-n.js → security-cli-CeP9ss1g.js} +53 -53
  238. package/dist/{send-dfhV1QIV.js → send-BQJKg0bU.js} +7 -7
  239. package/dist/{send-B-tsyoRw.js → send-BzUWmgQ9.js} +13 -13
  240. package/dist/{server-context-hxl_K7eY.js → server-context-BNbx1tUD.js} +11 -11
  241. package/dist/{server-methods-MUFuMWc_.js → server-methods-BHg4GltA.js} +76 -408
  242. package/dist/{server-methods-3uA_KwN4.js → server-methods-DkZ2XtEo.js} +8 -340
  243. package/dist/{server-node-events-FUPulMjB.js → server-node-events-6dZ22EGj.js} +82 -82
  244. package/dist/{server-node-events-DkbyHj1T.js → server-node-events-BXviL2UH.js} +6 -6
  245. package/dist/{service-B5aOZmQH.js → service-9ItKCWWS.js} +15 -15
  246. package/dist/{session-cost-usage-DQjHUno0.js → session-cost-usage-DYcv40ss.js} +3 -3
  247. package/dist/{session-dirs-Chh7bBGo.js → session-dirs-B6PWqKEf.js} +2 -2
  248. package/dist/{session-utils-C6O0Db39.js → session-utils-BVC8mmBv.js} +22 -22
  249. package/dist/{sessions-oPVoK2gW.js → sessions-BaFVKzC2.js} +25 -25
  250. package/dist/{shared-BJxR-kzm.js → shared-DUmy8R4n.js} +5 -5
  251. package/dist/{shared-E4KDN3LG.js → shared-ot5_jkpP.js} +3 -3
  252. package/dist/{skill-commands-CfGPouRa.js → skill-commands-DaNhP2Jb.js} +5 -5
  253. package/dist/{skill-commands-4afIEM1a.js → skill-commands-X3T9Y9lT.js} +4 -4
  254. package/dist/{skill-scanner-BGtq5jZi.js → skill-scanner-DVq7ZopF.js} +7 -7
  255. package/dist/{skills-Kt1PL_Um.js → skills-BMTJ2Tiq.js} +6 -6
  256. package/dist/{skills-BF_e-fYt.js → skills-C_KgxpBD.js} +9 -9
  257. package/dist/{skills-cli-BlFM1U3r.js → skills-cli-DwYoPwkG.js} +19 -19
  258. package/dist/{skills-install-miTQGOBQ.js → skills-install-U4FmCP8u.js} +9 -9
  259. package/dist/{skills-remote-Ch1B-1aN.js → skills-remote-C0gcKYWX.js} +6 -6
  260. package/dist/{skills-status-CFVFYR-o.js → skills-status-CdfQvU1h.js} +4 -4
  261. package/dist/{sqlite-CfMLToLW.js → sqlite-BUXBg2yu.js} +8 -8
  262. package/dist/{sqlite-BKMdYqso.js → sqlite-C6MZhX4c.js} +3 -3
  263. package/dist/{ssrf-LaudpmHD.js → ssrf-BvjSIOlZ.js} +9 -9
  264. package/dist/{status-BNH-f3PA.js → status-BAnT_4qI.js} +4 -4
  265. package/dist/{status-B-XD80Yl.js → status-BK-ZK7SP.js} +36 -36
  266. package/dist/{status-CCgqMBwp.js → status-CmoBgZ99.js} +1 -1
  267. package/dist/{status-C7F7r-qN.js → status-J_gR_zbh.js} +1 -1
  268. package/dist/{status.update-B9WCVHPy.js → status.update-Cvj7y384.js} +4 -4
  269. package/dist/{subagent-registry-z08a8MUS.js → subagent-registry-CWolsN8K.js} +13 -55
  270. package/dist/{subsystem-CgepNOk5.js → subsystem-CtH6J8AV.js} +1 -1
  271. package/dist/{subsystem-DzRUKS9f.js → subsystem-DhOo2FZn.js} +1 -1
  272. package/dist/{symi-root-7ei1lwo0.js → symi-root-0MUhiNlM.js} +3 -3
  273. package/dist/{synthesis-D4iCZvKx.js → synthesis-BSKiS446.js} +4 -4
  274. package/dist/{synthesis-CjFmYp54.js → synthesis-CRQp5mTx.js} +78 -78
  275. package/dist/{synthesis-Dlweuq0p.js → synthesis-D3wZX5g3.js} +33 -33
  276. package/dist/{synthesis-ByjLMHMS.js → synthesis-DTZGPpj5.js} +4 -4
  277. package/dist/{system-cli-Ccu9utFt.js → system-cli-CUGyogmP.js} +19 -19
  278. package/dist/{systemd-ChKNxGyT.js → systemd-8KKQdTO_.js} +8 -8
  279. package/dist/{systemd-hints-hoofHqb7.js → systemd-hints-_ghBqtKo.js} +7 -7
  280. package/dist/{systemd-linger-DLgi3jd0.js → systemd-linger-CnKJZBUr.js} +2 -2
  281. package/dist/{table-Cyd0-LaL.js → table-DkAQzCOR.js} +2 -2
  282. package/dist/{tailscale-D3KwzQUZ.js → tailscale-D7dC-5EX.js} +3 -3
  283. package/dist/{thinking-nf5YVDrR.js → thinking-BYtE7_UC.js} +2 -2
  284. package/dist/{tokens-DfB8vBa4.js → tokens-DvvjOTxN.js} +1 -1
  285. package/dist/{tokens-B24nv23l.js → tokens-wW7opugV.js} +1 -1
  286. package/dist/{tool-display-D1Hh5TqL.js → tool-display-Dr6VaTg5.js} +2 -2
  287. package/dist/{tool-loop-detection-BxrJfVQU.js → tool-loop-detection-CSSq5kkt.js} +4 -4
  288. package/dist/{tool-loop-detection-BR52lwOt.js → tool-loop-detection-DyZ0TWGh.js} +2 -2
  289. package/dist/transcript-events-JGGQViao.js +17 -0
  290. package/dist/{trash-oWw0M_xA.js → trash-BjVrPcAx.js} +2 -2
  291. package/dist/{tui-cli-sRKxOjmC.js → tui-cli-BPOcMJ-f.js} +43 -43
  292. package/dist/{tui-DqMRn1zF.js → tui-fKWqWqeq.js} +12 -12
  293. package/dist/{unified-runner-Uyw1gZOm.js → unified-runner-Cdj1nLUh.js} +286 -328
  294. package/dist/{unified-runner-CBVGL54b.js → unified-runner-DftrstdI.js} +200 -245
  295. package/dist/{update-rop24lF7.js → update-XJWQZpV7.js} +5 -5
  296. package/dist/{update-check-CC111uwU.js → update-check-BdSIMYWq.js} +7 -7
  297. package/dist/{update-cli-BbtFbkK5.js → update-cli-D_MLjj6j.js} +120 -120
  298. package/dist/{update-cli-CH7SLjSd.js → update-cli-jQo-vg6S.js} +9 -9
  299. package/dist/{update-runner-B0L2a2rW.js → update-runner-D_UHlPN0.js} +18 -18
  300. package/dist/{utils-AQWIWjGu.js → utils-BU8jVQFM.js} +2 -2
  301. package/dist/{webhooks-cli-CFMpDwWL.js → webhooks-cli-DgRLVVrD.js} +17 -17
  302. package/dist/{widearea-dns-DxpPXWPv.js → widearea-dns-C5NqCQ3L.js} +2 -2
  303. package/dist/{with-timeout-Bxn0qVBQ.js → with-timeout-DwVWQ2sN.js} +2 -2
  304. package/dist/{workspace-StbmAqYj.js → workspace-B_xyjOdv.js} +4 -4
  305. package/dist/{workspace-CsaDUuDn.js → workspace-OBnI5mKu.js} +2 -2
  306. package/dist/{workspace-dirs-B5axjz_-.js → workspace-dirs-DStsDXra.js} +1 -1
  307. package/dist/{ws-FAiTi9-v.js → ws-CahTJvD6.js} +1 -1
  308. package/dist/{wsl-ZWGwnnKI.js → wsl-DO9usEVV.js} +2 -2
  309. package/package.json +1 -1
  310. package/dist/cli-iz9sMJ9d.js +0 -128
  311. package/dist/plugin-sdk/gateway/server-chat.d.ts +0 -49
  312. package/dist/register.configure-D69HXLo4.js +0 -129
  313. package/dist/{boolean-B8-BqKGQ.js → boolean-Wzu0-e0P.js} +0 -0
  314. package/dist/{boolean-BgXe2hyu.js → boolean-mcn6kL0s.js} +0 -0
  315. package/dist/{brew-ip7v32wW.js → brew-BoKmB5x9.js} +1 -1
  316. /package/dist/{chat-type-B2TfTsnW.js → chat-type-B7XD_ESN.js} +0 -0
  317. /package/dist/{chat-type-BoBpxitL.js → chat-type-BPBtOjer.js} +0 -0
  318. /package/dist/{command-format-CyXZlazG.js → command-format-BvAkTjTI.js} +0 -0
  319. /package/dist/{github-copilot-token-BUd9oA8x.js → github-copilot-token-B31ugq7R.js} +0 -0
  320. /package/dist/{input-provenance-iBlnbS1d.js → input-provenance-DsLesw6T.js} +0 -0
  321. /package/dist/{legacy-names-BlIw4lsD.js → legacy-names-sghWmXe3.js} +0 -0
  322. /package/dist/{redact-CozCe54d.js → redact-CSc_2Nka.js} +0 -0
  323. /package/dist/{redact-DPnDWsnT.js → redact-Dd8jrogi.js} +0 -0
  324. /package/dist/{secret-equal-DjTAoH50.js → secret-equal-D1BCVB1D.js} +0 -0
  325. /package/dist/{session-key-DUSb7CCb.js → session-key-B_ZVH1kE.js} +0 -0
  326. /package/dist/{ssrf-Cirmgays.js → ssrf-CC9kEPCT.js} +0 -0
  327. /package/dist/{tailnet-BruyvjMC.js → tailnet-LYvn9g3I.js} +0 -0
  328. /package/dist/{thinking-BTh3b5vY.js → thinking-177f26eg.js} +0 -0
  329. /package/dist/{transcript-events-BOK6eOU8.js → transcript-events-Ch7wLX-j.js} +0 -0
  330. /package/dist/{transcript-tools--a2pL_yH.js → transcript-tools-CrMLYORt.js} +0 -0
@@ -1,26 +1,26 @@
1
- import "./paths-Cqn-zk3M.js";
2
- import "./utils-AQWIWjGu.js";
3
- import "./registry-CtguoMhn.js";
4
- import "./subsystem-CgepNOk5.js";
5
- import "./auth-profiles-8vSEr9B4.js";
6
- import "./exec-BcvUYCcV.js";
7
- import "./agent-scope-2la27US0.js";
8
- import "./github-copilot-token-DTYkb2IC.js";
9
- import "./boolean-BgXe2hyu.js";
10
- import "./env-B7UUyzd_.js";
11
- import "./config-fTqqDRAc.js";
12
- import "./manifest-registry-B4I9g0CL.js";
13
- import { a as findTailscaleBinary } from "./tailscale-D3KwzQUZ.js";
14
- import "./sessions-oPVoK2gW.js";
15
- import "./dock-n_MeJBcj.js";
16
- import "./message-channel-j44ChSJV.js";
17
- import "./plugins-CYQOjCDt.js";
18
- import "./paths-CdGa1jlU.js";
19
- import "./client-D8iTVY4F.js";
20
- import "./call-DLBaLOHo.js";
21
- import "./pairing-token-BmIoXjHZ.js";
22
- import "./prompt-style-DtQMGj0v.js";
23
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-C5J9vSm2.js";
1
+ import "./registry-DKJLAPDB.js";
2
+ import "./paths-BSzKwaxE.js";
3
+ import "./utils-BU8jVQFM.js";
4
+ import "./subsystem-CtH6J8AV.js";
5
+ import "./auth-profiles-BVtpxYtY.js";
6
+ import "./exec-DKyLtSjm.js";
7
+ import "./agent-scope-BjEBQhs0.js";
8
+ import "./github-copilot-token-BTNK6Tcd.js";
9
+ import "./boolean-Wzu0-e0P.js";
10
+ import "./env-B97Ms861.js";
11
+ import "./config-CW8aDVM0.js";
12
+ import "./manifest-registry-D7Qup2Vq.js";
13
+ import { a as findTailscaleBinary } from "./tailscale-D7dC-5EX.js";
14
+ import "./sessions-BaFVKzC2.js";
15
+ import "./dock-CnGWTXL4.js";
16
+ import "./message-channel-C_V8IAYx.js";
17
+ import "./plugins-DuuHorqi.js";
18
+ import "./paths-CJcw9nbZ.js";
19
+ import "./client-Bs2zB0rY.js";
20
+ import "./call-CdXXPXpo.js";
21
+ import "./pairing-token-DorpwP8O.js";
22
+ import "./prompt-style-Cad0BDRS.js";
23
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-DZKHFY2J.js";
24
24
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-CfVqgiTN.js";
25
25
 
26
26
  //#region src/wizard/onboarding.gateway-config.ts
@@ -1,9 +1,9 @@
1
- import { c as escapeRegExp, p as resolveConfigDir } from "./utils-AQWIWjGu.js";
2
- import { B as resolveAllowlistModelKey, Ut as DEFAULT_PROVIDER } from "./auth-profiles-8vSEr9B4.js";
1
+ import { c as escapeRegExp, p as resolveConfigDir } from "./utils-BU8jVQFM.js";
2
+ import { B as resolveAllowlistModelKey, Ut as DEFAULT_PROVIDER } from "./auth-profiles-BVtpxYtY.js";
3
3
  import { n as fetchWithTimeout } from "./fetch-timeout-CgmRK282.js";
4
- import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-DpYUPTNG.js";
5
- import fs from "node:fs";
4
+ import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-CPluo60n.js";
6
5
  import path from "node:path";
6
+ import fs from "node:fs";
7
7
 
8
8
  //#region src/commands/model-allowlist.ts
9
9
  function ensureModelAllowlistEntry(params) {
@@ -1,20 +1,20 @@
1
- import "./paths-Cqn-zk3M.js";
2
- import "./utils-AQWIWjGu.js";
3
- import { j as theme } from "./registry-CtguoMhn.js";
4
- import { f as defaultRuntime } from "./subsystem-CgepNOk5.js";
5
- import "./auth-profiles-8vSEr9B4.js";
6
- import { t as formatCliCommand } from "./command-format-CyXZlazG.js";
7
- import "./exec-BcvUYCcV.js";
8
- import "./agent-scope-2la27US0.js";
9
- import "./github-copilot-token-DTYkb2IC.js";
10
- import "./boolean-BgXe2hyu.js";
11
- import "./env-B7UUyzd_.js";
12
- import { i as loadConfig } from "./config-fTqqDRAc.js";
13
- import "./manifest-registry-B4I9g0CL.js";
14
- import { r as normalizeChannelId } from "./plugins-CYQOjCDt.js";
15
- import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-DmCi9E47.js";
16
- import { t as formatDocsLink } from "./links-C6mXo5Yj.js";
17
- import { t as renderTable } from "./table-Cyd0-LaL.js";
1
+ import { j as theme } from "./registry-DKJLAPDB.js";
2
+ import "./paths-BSzKwaxE.js";
3
+ import "./utils-BU8jVQFM.js";
4
+ import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
5
+ import "./auth-profiles-BVtpxYtY.js";
6
+ import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
7
+ import "./exec-DKyLtSjm.js";
8
+ import "./agent-scope-BjEBQhs0.js";
9
+ import "./github-copilot-token-BTNK6Tcd.js";
10
+ import "./boolean-Wzu0-e0P.js";
11
+ import "./env-B97Ms861.js";
12
+ import { i as loadConfig } from "./config-CW8aDVM0.js";
13
+ import "./manifest-registry-D7Qup2Vq.js";
14
+ import { r as normalizeChannelId } from "./plugins-DuuHorqi.js";
15
+ import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-CxT0UGxd.js";
16
+ import { t as formatDocsLink } from "./links-CSaUKNKm.js";
17
+ import { t as renderTable } from "./table-DkAQzCOR.js";
18
18
 
19
19
  //#region src/pairing/pairing-labels.ts
20
20
  function resolvePairingIdLabel(channel) {
@@ -1,11 +1,11 @@
1
- import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
2
- import { g as safeParseJson } from "./utils-AQWIWjGu.js";
3
- import { E as withFileLock$1 } from "./auth-profiles-8vSEr9B4.js";
4
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CYQOjCDt.js";
1
+ import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-BSzKwaxE.js";
2
+ import { g as safeParseJson } from "./utils-BU8jVQFM.js";
3
+ import { E as withFileLock$1 } from "./auth-profiles-BVtpxYtY.js";
4
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
5
5
  import crypto from "node:crypto";
6
+ import path from "node:path";
6
7
  import fs from "node:fs";
7
8
  import os from "node:os";
8
- import path from "node:path";
9
9
 
10
10
  //#region src/channels/plugins/pairing.ts
11
11
  function listPairingChannels() {
@@ -1,13 +1,13 @@
1
- import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
- import { t as safeEqualSecret } from "./secret-equal-DjTAoH50.js";
1
+ import { g as resolveStateDir } from "./paths-BSzKwaxE.js";
2
+ import { t as safeEqualSecret } from "./secret-equal-D1BCVB1D.js";
3
3
  import { randomBytes, randomUUID } from "node:crypto";
4
4
  import path from "node:path";
5
- import fs from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
 
7
7
  //#region src/infra/json-files.ts
8
8
  async function readJsonFile(filePath) {
9
9
  try {
10
- const raw = await fs.readFile(filePath, "utf8");
10
+ const raw = await fsPromises.readFile(filePath, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return null;
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
16
16
  async function writeJsonAtomic(filePath, value, options) {
17
17
  const mode = options?.mode ?? 384;
18
18
  const dir = path.dirname(filePath);
19
- await fs.mkdir(dir, { recursive: true });
19
+ await fsPromises.mkdir(dir, { recursive: true });
20
20
  const tmp = `${filePath}.${randomUUID()}.tmp`;
21
- await fs.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
21
+ await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
22
22
  try {
23
- await fs.chmod(tmp, mode);
23
+ await fsPromises.chmod(tmp, mode);
24
24
  } catch {}
25
- await fs.rename(tmp, filePath);
25
+ await fsPromises.rename(tmp, filePath);
26
26
  try {
27
- await fs.chmod(filePath, mode);
27
+ await fsPromises.chmod(filePath, mode);
28
28
  } catch {}
29
29
  }
30
30
  function createAsyncLock() {
@@ -1,8 +1,8 @@
1
- import { t as isTruthyEnvValue } from "./env-B7UUyzd_.js";
2
- import { n as resolveBrewPathDirs } from "./brew-ip7v32wW.js";
1
+ import { t as isTruthyEnvValue } from "./env-B97Ms861.js";
2
+ import { n as resolveBrewPathDirs } from "./brew-BoKmB5x9.js";
3
+ import path from "node:path";
3
4
  import fs from "node:fs";
4
5
  import os from "node:os";
5
- import path from "node:path";
6
6
 
7
7
  //#region src/infra/path-env.ts
8
8
  function isExecutable(filePath) {
@@ -1,6 +1,6 @@
1
+ import path from "node:path";
1
2
  import fs from "node:fs";
2
3
  import os from "node:os";
3
- import path from "node:path";
4
4
 
5
5
  //#region src/infra/home-dir.ts
6
6
  function normalize(value) {
@@ -0,0 +1,127 @@
1
+ import { c as expandHomePrefix, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
2
+ import { o as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BmQ2R1ev.js";
3
+ import path from "node:path";
4
+ import os from "node:os";
5
+
6
+ //#region src/config/sessions/paths.ts
7
+ function resolveAgentSessionsDir(agentId, env = process.env, homedir = () => resolveRequiredHomeDir(env, os.homedir)) {
8
+ const root = resolveStateDir(env, homedir);
9
+ const id = normalizeAgentId(agentId ?? DEFAULT_AGENT_ID);
10
+ return path.join(root, "agents", id, "sessions");
11
+ }
12
+ function resolveSessionTranscriptsDirForAgent(agentId, env = process.env, homedir = () => resolveRequiredHomeDir(env, os.homedir)) {
13
+ return resolveAgentSessionsDir(agentId, env, homedir);
14
+ }
15
+ function resolveDefaultSessionStorePath(agentId) {
16
+ return path.join(resolveAgentSessionsDir(agentId), "sessions.json");
17
+ }
18
+ function resolveSessionFilePathOptions(params) {
19
+ const agentId = params.agentId?.trim();
20
+ const storePath = params.storePath?.trim();
21
+ if (storePath) {
22
+ const sessionsDir = path.dirname(path.resolve(storePath));
23
+ return agentId ? {
24
+ sessionsDir,
25
+ agentId
26
+ } : { sessionsDir };
27
+ }
28
+ if (agentId) return { agentId };
29
+ }
30
+ const SAFE_SESSION_ID_RE = /^[a-z0-9][a-z0-9._-]{0,127}$/i;
31
+ function validateSessionId(sessionId) {
32
+ const trimmed = sessionId.trim();
33
+ if (!SAFE_SESSION_ID_RE.test(trimmed)) throw new Error(`Invalid session ID: ${sessionId}`);
34
+ return trimmed;
35
+ }
36
+ function resolveSessionsDir(opts) {
37
+ const sessionsDir = opts?.sessionsDir?.trim();
38
+ if (sessionsDir) return path.resolve(sessionsDir);
39
+ return resolveAgentSessionsDir(opts?.agentId);
40
+ }
41
+ function resolvePathFromAgentSessionsDir(agentSessionsDir, candidateAbsPath) {
42
+ const agentBase = path.resolve(agentSessionsDir);
43
+ const relative = path.relative(agentBase, candidateAbsPath);
44
+ if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) return;
45
+ return path.resolve(agentBase, relative);
46
+ }
47
+ function resolveSiblingAgentSessionsDir(baseSessionsDir, agentId) {
48
+ const resolvedBase = path.resolve(baseSessionsDir);
49
+ if (path.basename(resolvedBase) !== "sessions") return;
50
+ const baseAgentDir = path.dirname(resolvedBase);
51
+ const baseAgentsDir = path.dirname(baseAgentDir);
52
+ if (path.basename(baseAgentsDir) !== "agents") return;
53
+ const rootDir = path.dirname(baseAgentsDir);
54
+ return path.join(rootDir, "agents", normalizeAgentId(agentId), "sessions");
55
+ }
56
+ function extractAgentIdFromAbsoluteSessionPath(candidateAbsPath) {
57
+ const parts = path.normalize(path.resolve(candidateAbsPath)).split(path.sep).filter(Boolean);
58
+ const sessionsIndex = parts.lastIndexOf("sessions");
59
+ if (sessionsIndex < 2 || parts[sessionsIndex - 2] !== "agents") return;
60
+ return parts[sessionsIndex - 1] || void 0;
61
+ }
62
+ function resolvePathWithinSessionsDir(sessionsDir, candidate, opts) {
63
+ const trimmed = candidate.trim();
64
+ if (!trimmed) throw new Error("Session file path must not be empty");
65
+ const resolvedBase = path.resolve(sessionsDir);
66
+ const normalized = path.isAbsolute(trimmed) ? path.relative(resolvedBase, trimmed) : trimmed;
67
+ if (normalized.startsWith("..") && path.isAbsolute(trimmed)) {
68
+ const tryAgentFallback = (agentId) => {
69
+ const normalizedAgentId = normalizeAgentId(agentId);
70
+ const siblingSessionsDir = resolveSiblingAgentSessionsDir(resolvedBase, normalizedAgentId);
71
+ if (siblingSessionsDir) {
72
+ const siblingResolved = resolvePathFromAgentSessionsDir(siblingSessionsDir, trimmed);
73
+ if (siblingResolved) return siblingResolved;
74
+ }
75
+ return resolvePathFromAgentSessionsDir(resolveAgentSessionsDir(normalizedAgentId), trimmed);
76
+ };
77
+ const explicitAgentId = opts?.agentId?.trim();
78
+ if (explicitAgentId) {
79
+ const resolvedFromAgent = tryAgentFallback(explicitAgentId);
80
+ if (resolvedFromAgent) return resolvedFromAgent;
81
+ }
82
+ const extractedAgentId = extractAgentIdFromAbsoluteSessionPath(trimmed);
83
+ if (extractedAgentId) {
84
+ const resolvedFromPath = tryAgentFallback(extractedAgentId);
85
+ if (resolvedFromPath) return resolvedFromPath;
86
+ return path.resolve(trimmed);
87
+ }
88
+ }
89
+ if (!normalized || normalized.startsWith("..") || path.isAbsolute(normalized)) throw new Error("Session file path must be within sessions directory");
90
+ return path.resolve(resolvedBase, normalized);
91
+ }
92
+ function resolveSessionTranscriptPathInDir(sessionId, sessionsDir, topicId) {
93
+ const safeSessionId = validateSessionId(sessionId);
94
+ const safeTopicId = typeof topicId === "string" ? encodeURIComponent(topicId) : typeof topicId === "number" ? String(topicId) : void 0;
95
+ return resolvePathWithinSessionsDir(sessionsDir, safeTopicId !== void 0 ? `${safeSessionId}-topic-${safeTopicId}.jsonl` : `${safeSessionId}.jsonl`);
96
+ }
97
+ function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
98
+ return resolveSessionTranscriptPathInDir(sessionId, resolveAgentSessionsDir(agentId), topicId);
99
+ }
100
+ function resolveSessionFilePath(sessionId, entry, opts) {
101
+ const sessionsDir = resolveSessionsDir(opts);
102
+ const candidate = entry?.sessionFile?.trim();
103
+ if (candidate) return resolvePathWithinSessionsDir(sessionsDir, candidate, { agentId: opts?.agentId });
104
+ return resolveSessionTranscriptPathInDir(sessionId, sessionsDir);
105
+ }
106
+ function resolveStorePath(store, opts) {
107
+ const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID);
108
+ if (!store) return resolveDefaultSessionStorePath(agentId);
109
+ if (store.includes("{agentId}")) {
110
+ const expanded = store.replaceAll("{agentId}", agentId);
111
+ if (expanded.startsWith("~")) return path.resolve(expandHomePrefix(expanded, {
112
+ home: resolveRequiredHomeDir(process.env, os.homedir),
113
+ env: process.env,
114
+ homedir: os.homedir
115
+ }));
116
+ return path.resolve(expanded);
117
+ }
118
+ if (store.startsWith("~")) return path.resolve(expandHomePrefix(store, {
119
+ home: resolveRequiredHomeDir(process.env, os.homedir),
120
+ env: process.env,
121
+ homedir: os.homedir
122
+ }));
123
+ return path.resolve(store);
124
+ }
125
+
126
+ //#endregion
127
+ export { resolveSessionTranscriptPathInDir as a, resolveSessionTranscriptPath as i, resolveSessionFilePath as n, resolveSessionTranscriptsDirForAgent as o, resolveSessionFilePathOptions as r, resolveStorePath as s, resolveDefaultSessionStorePath as t };
@@ -1,7 +1,7 @@
1
- import { _ as expandHomePrefix, g as resolveStateDir, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
2
- import { o as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-DUSb7CCb.js";
3
- import os from "node:os";
1
+ import { _ as expandHomePrefix, g as resolveStateDir, y as resolveRequiredHomeDir } from "./paths-BSzKwaxE.js";
2
+ import { o as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-B_ZVH1kE.js";
4
3
  import path from "node:path";
4
+ import os from "node:os";
5
5
 
6
6
  //#region src/config/sessions/paths.ts
7
7
  function resolveAgentSessionsDir(agentId, env = process.env, homedir = () => resolveRequiredHomeDir(env, os.homedir)) {
@@ -1,5 +1,5 @@
1
- import { B as resolvePreferredSymiTmpDir } from "./registry-CtguoMhn.js";
2
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CR_3Yr4x.js";
1
+ import { B as resolvePreferredSymiTmpDir } from "./registry-DKJLAPDB.js";
2
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-DjAKGGJ8.js";
3
3
  import path from "node:path";
4
4
 
5
5
  //#region src/browser/paths.ts
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { W as normalizeOptionalSecretInput, d as ensureAuthProfileStore, w as normalizeProviderId } from "./auth-profiles-CZTGpbyT.js";
2
+ import { W as normalizeOptionalSecretInput, d as ensureAuthProfileStore, w as normalizeProviderId } from "./auth-profiles-B6ISm3Th.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
 
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { L as normalizeProviderId, Tt as normalizeOptionalSecretInput, b as ensureAuthProfileStore } from "./auth-profiles-8vSEr9B4.js";
2
+ import { L as normalizeProviderId, Tt as normalizeOptionalSecretInput, b as ensureAuthProfileStore } from "./auth-profiles-BVtpxYtY.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs/promises";
4
+ import fsPromises from "node:fs/promises";
5
5
 
6
6
  //#region src/agents/pi-auth-json.ts
7
7
  var pi_auth_json_exports = /* @__PURE__ */ __exportAll({ ensurePiAuthJsonFromAuthProfiles: () => ensurePiAuthJsonFromAuthProfiles });
8
8
  async function readAuthJson(filePath) {
9
9
  try {
10
- const raw = await fs.readFile(filePath, "utf8");
10
+ const raw = await fsPromises.readFile(filePath, "utf8");
11
11
  const parsed = JSON.parse(raw);
12
12
  if (!parsed || typeof parsed !== "object") return {};
13
13
  return parsed;
@@ -118,11 +118,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir, options) {
118
118
  wrote: false,
119
119
  authPath
120
120
  };
121
- await fs.mkdir(agentDir, {
121
+ await fsPromises.mkdir(agentDir, {
122
122
  recursive: true,
123
123
  mode: 448
124
124
  });
125
- await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
125
+ await fsPromises.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
126
126
  return {
127
127
  wrote: true,
128
128
  authPath
@@ -10,13 +10,13 @@ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Bbs
10
10
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
11
11
  import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
12
12
  import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-pnMj7AtP.js";
13
- import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-B_Gz2_tA.js";
13
+ import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-Dlq2X0K5.js";
14
14
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BvZmqxYI.js";
15
15
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
16
16
  import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-BjnT3w_x.js";
17
17
  import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, m as parseDurationMs, o as normalizeHostname, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-BJZIZ4yo.js";
18
18
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-BV_2TbGz.js";
19
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-b556dOQ6.js";
19
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CQnRgvJz.js";
20
20
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-xmXjOnAV.js";
21
21
  import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
22
22
  import { n as formatErrorMessage } from "./errors-C6sHIFo_.js";
@@ -25,7 +25,7 @@ import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeV
25
25
  import { n as resolveConversationLabel } from "./conversation-label-CPUfoQmh.js";
26
26
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
27
27
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
28
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-Do0-i7vp.js";
28
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-t4GthPGw.js";
29
29
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
30
30
  import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
31
31
  import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-BO62ZyK2.js";
@@ -49,7 +49,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
49
49
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
50
50
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
51
51
  import AjvPkg from "ajv";
52
- import { WebSocket } from "ws";
52
+ import { WebSocket as WebSocket$1 } from "ws";
53
53
  import { Buffer as Buffer$1 } from "node:buffer";
54
54
  import { createJiti } from "jiti";
55
55
  import { Type } from "@sinclair/typebox";
@@ -1028,7 +1028,7 @@ async function getMemorySearchManager(params) {
1028
1028
  const wrapper = new FallbackMemoryManager({
1029
1029
  primary,
1030
1030
  fallbackFactory: async () => {
1031
- const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1031
+ const { MemoryIndexManager } = await import("./manager-t4GthPGw.js").then((n) => n.t);
1032
1032
  return await MemoryIndexManager.get(params);
1033
1033
  }
1034
1034
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1041,7 +1041,7 @@ async function getMemorySearchManager(params) {
1041
1041
  }
1042
1042
  }
1043
1043
  try {
1044
- const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1044
+ const { MemoryIndexManager } = await import("./manager-t4GthPGw.js").then((n) => n.t);
1045
1045
  return { manager: await MemoryIndexManager.get(params) };
1046
1046
  } catch (err) {
1047
1047
  return {
@@ -3557,7 +3557,7 @@ var GatewayClient = class {
3557
3557
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
3558
3558
  });
3559
3559
  }
3560
- this.ws = new WebSocket(url, wsOptions);
3560
+ this.ws = new WebSocket$1(url, wsOptions);
3561
3561
  this.ws.on("open", () => {
3562
3562
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
3563
3563
  const tlsError = this.validateTlsFingerprint();
@@ -3776,7 +3776,7 @@ var GatewayClient = class {
3776
3776
  return null;
3777
3777
  }
3778
3778
  async request(method, params, opts) {
3779
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
3779
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
3780
3780
  const id = randomUUID();
3781
3781
  const frame = {
3782
3782
  type: "req",
@@ -4162,9 +4162,6 @@ function randomIdempotencyKey() {
4162
4162
  const seqByRun = /* @__PURE__ */ new Map();
4163
4163
  const listeners = /* @__PURE__ */ new Set();
4164
4164
  const runContextById = /* @__PURE__ */ new Map();
4165
- function getAgentRunContext(runId) {
4166
- return runContextById.get(runId);
4167
- }
4168
4165
  function emitAgentEvent(event) {
4169
4166
  const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
4170
4167
  seqByRun.set(event.runId, nextSeq);
@@ -4827,7 +4824,7 @@ async function routeReply(params) {
4827
4824
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4828
4825
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4829
4826
  try {
4830
- const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
4827
+ const { deliverOutboundPayloads } = await import("./deliver-Dlq2X0K5.js").then((n) => n.n);
4831
4828
  return {
4832
4829
  ok: true,
4833
4830
  messageId: (await deliverOutboundPayloads({
@@ -10503,8 +10500,7 @@ async function incrementCompactionCount(params) {
10503
10500
  //#endregion
10504
10501
  //#region src/auto-reply/reply/typing-mode.ts
10505
10502
  const DEFAULT_GROUP_TYPING_MODE = "message";
10506
- function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat }) {
10507
- if (isHeartbeat) return "never";
10503
+ function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
10508
10504
  if (configured) return configured;
10509
10505
  if (!isGroupChat || wasMentioned) return "instant";
10510
10506
  return DEFAULT_GROUP_TYPING_MODE;
@@ -10538,12 +10534,11 @@ async function prepareAgentRun(params) {
10538
10534
  const isFirstTurnInSession = isNewSession || !currentSystemSent;
10539
10535
  const isGroupChat = sessionCtx.ChatType === "group";
10540
10536
  const wasMentioned = ctx.WasMentioned === true;
10541
- const isHeartbeat = opts?.isHeartbeat === true;
10542
10537
  const typingMode = resolveTypingMode({
10543
10538
  configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
10544
10539
  isGroupChat,
10545
10540
  wasMentioned,
10546
- isHeartbeat
10541
+ isHeartbeat: false
10547
10542
  });
10548
10543
  const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
10549
10544
  const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
@@ -14577,8 +14572,7 @@ async function createModelSelectionState(params) {
14577
14572
  sessionKey,
14578
14573
  parentSessionKey
14579
14574
  });
14580
- const skipStoredOverride = params.hasResolvedHeartbeatModelOverride === true;
14581
- if (storedOverride?.model && !skipStoredOverride) {
14575
+ if (storedOverride?.model) {
14582
14576
  const candidateProvider = storedOverride.provider || defaultProvider;
14583
14577
  const key = modelKey(candidateProvider, storedOverride.model);
14584
14578
  if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
@@ -28058,7 +28052,7 @@ function resolveExecOverrides(params) {
28058
28052
  };
28059
28053
  }
28060
28054
  async function resolveReplyDirectives(params) {
28061
- const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel, hasResolvedHeartbeatModelOverride, typing, opts, skillFilter } = params;
28055
+ const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel, typing, opts, skillFilter } = params;
28062
28056
  let provider = initialProvider;
28063
28057
  let model = initialModel;
28064
28058
  const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
@@ -28199,8 +28193,7 @@ async function resolveReplyDirectives(params) {
28199
28193
  defaultModel,
28200
28194
  provider,
28201
28195
  model,
28202
- hasModelDirective: directives.hasModelDirective,
28203
- hasResolvedHeartbeatModelOverride
28196
+ hasModelDirective: directives.hasModelDirective
28204
28197
  });
28205
28198
  provider = modelState.provider;
28206
28199
  model = modelState.model;
@@ -38907,7 +38900,7 @@ async function deliverSessionMaintenanceWarning(params) {
38907
38900
  return;
38908
38901
  }
38909
38902
  try {
38910
- const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
38903
+ const { deliverOutboundPayloads } = await import("./deliver-Dlq2X0K5.js").then((n) => n.n);
38911
38904
  await deliverOutboundPayloads({
38912
38905
  cfg: params.cfg,
38913
38906
  channel,
@@ -39581,20 +39574,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39581
39574
  });
39582
39575
  let provider = defaultProvider;
39583
39576
  let model = defaultModel;
39584
- let hasResolvedHeartbeatModelOverride = false;
39585
- if (opts?.isHeartbeat) {
39586
- const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
39587
- const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
39588
- raw: heartbeatRaw,
39589
- defaultProvider,
39590
- aliasIndex
39591
- }) : null;
39592
- if (heartbeatRef) {
39593
- provider = heartbeatRef.ref.provider;
39594
- model = heartbeatRef.ref.model;
39595
- hasResolvedHeartbeatModelOverride = true;
39596
- }
39597
- }
39598
39577
  const workspaceDir = (await ensureAgentWorkspace({
39599
39578
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
39600
39579
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -39673,8 +39652,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39673
39652
  groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
39674
39653
  parentSessionKey: sessionCtx.ParentSessionKey
39675
39654
  });
39676
- const hasSessionModelOverride = Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim());
39677
- if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
39655
+ if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
39678
39656
  const resolved = resolveModelRefFromString({
39679
39657
  raw: channelModelOverride.model,
39680
39658
  defaultProvider,
@@ -39707,7 +39685,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39707
39685
  aliasIndex,
39708
39686
  provider,
39709
39687
  model,
39710
- hasResolvedHeartbeatModelOverride,
39711
39688
  typing,
39712
39689
  opts: resolvedOpts,
39713
39690
  skillFilter: mergedSkillFilter
@@ -40402,34 +40379,13 @@ function isBareSymipulseAck(text) {
40402
40379
  * Returns a structured verdict the caller uses to decide whether to
40403
40380
  * broadcast / persist a payload. Pure function — no side effects.
40404
40381
  */
40405
- function classifyOutboundMessage(rawText, opts) {
40382
+ function classifyOutboundMessage(rawText, _opts) {
40406
40383
  const text = typeof rawText === "string" ? rawText : "";
40407
40384
  if (isBareSilentReply(text)) return {
40408
40385
  action: "drop",
40409
40386
  output: "",
40410
40387
  reason: "silent-reply-bare"
40411
40388
  };
40412
- if (opts.isHeartbeat) {
40413
- const stripped = stripHeartbeatToken(text, {
40414
- mode: "heartbeat",
40415
- maxAckChars: opts.heartbeatAckMaxChars
40416
- });
40417
- if (stripped.shouldSkip) return {
40418
- action: "drop",
40419
- output: "",
40420
- reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
40421
- };
40422
- if (stripped.didStrip) return {
40423
- action: "deliver-stripped",
40424
- output: stripped.text,
40425
- reason: "symipulse-heartbeat-stripped"
40426
- };
40427
- return {
40428
- action: "deliver",
40429
- output: text,
40430
- reason: "deliver"
40431
- };
40432
- }
40433
40389
  if (isBareSymipulseAck(text)) return {
40434
40390
  action: "drop",
40435
40391
  output: "",
@@ -50196,8 +50152,8 @@ async function runAgentTurnImpl(params) {
50196
50152
  const result = await runEmbeddedPiAgent(buildInternalParams());
50197
50153
  const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
50198
50154
  const outboundResult = classifyOutboundMessage(rawText, {
50199
- isHeartbeat: getAgentRunContext(runId)?.isHeartbeat === true,
50200
- heartbeatAckMaxChars: Math.max(0, params.config.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS)
50155
+ isHeartbeat: false,
50156
+ heartbeatAckMaxChars: 0
50201
50157
  });
50202
50158
  const filteredText = outboundResult.output.trim();
50203
50159
  const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
@@ -50785,7 +50741,7 @@ function withHeartbeatStrip(opts) {
50785
50741
  return (next) => async (payload, ctx) => {
50786
50742
  let text = payload.text;
50787
50743
  const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
50788
- if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
50744
+ if (typeof text === "string" && text.includes("SYMIPULSE_OK")) {
50789
50745
  const stripped = stripHeartbeatToken(text, { mode: "message" });
50790
50746
  if (stripped.didStrip && !didLogStrip) {
50791
50747
  didLogStrip = true;