@symerian/symi 3.4.25 → 3.4.27

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 (221) hide show
  1. package/dist/{agent-N_J2cDO6.js → agent-CiqPWDUd.js} +18 -18
  2. package/dist/{agent-CQlyTNu-.js → agent-DOOj3Gzb.js} +1 -1
  3. package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
  4. package/dist/{agents-1xmRO246.js → agents-BBQfFoen.js} +2 -2
  5. package/dist/{agents.config-BJ9RIQlb.js → agents.config-Dm3oLpYK.js} +1 -1
  6. package/dist/{audit-DCwHws4M.js → audit-BSX7fMfc.js} +20 -20
  7. package/dist/{auth-choice-Ryx7oj6G.js → auth-choice-BYbTjWcs.js} +1 -1
  8. package/dist/{auth-choice-DwXdS4c2.js → auth-choice-rhBmet5i.js} +11 -11
  9. package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
  10. package/dist/{auth-token-DgRRSbEX.js → auth-token-CAV1oLQG.js} +3 -3
  11. package/dist/{banner-CxMQaUgh.js → banner-C1qG5Rm9.js} +1 -1
  12. package/dist/{browser-cli-C3hfJNZy.js → browser-cli-De8jg4-F.js} +9 -9
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +4 -4
  15. package/dist/bundled/session-memory/handler.js +4 -4
  16. package/dist/{call-BouPakqe.js → call-CW8U1BPq.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-n9C_ovb1.js → channel-options-BsXUgCMq.js} +1 -1
  19. package/dist/{channel-options-WR29vfWK.js → channel-options-CJD7jwYg.js} +1 -1
  20. package/dist/{channels-cli-DbFGI3vF.js → channels-cli-Bao4VNbH.js} +57 -57
  21. package/dist/{channels-cli-Cs-Uq67O.js → channels-cli-Dxn5n9e4.js} +7 -7
  22. package/dist/{chrome-B7-rO4i9.js → chrome-BKUACyeO.js} +7 -7
  23. package/dist/{chrome-C_I81hbq.js → chrome-DPjznJQ-.js} +7 -7
  24. package/dist/{chrome-rzK8edU7.js → chrome-pFBxO63W.js} +2 -2
  25. package/dist/{cli-D55pCJ8Q.js → cli-CrhLSz3t.js} +4 -4
  26. package/dist/{cli-7ceDvtPc.js → cli-WP38F9C5.js} +45 -45
  27. package/dist/{client-BzUAFrla.js → client-T5P9umyG.js} +1 -1
  28. package/dist/{command-registry-DAy62yhH.js → command-registry-DoXcG7FZ.js} +10 -10
  29. package/dist/{commands-registry-VfAQOVZO.js → commands-registry-BjcGLk4v.js} +1 -1
  30. package/dist/{completion-cli-Bc1jojml.js → completion-cli-C0SXi7ya.js} +12 -12
  31. package/dist/{completion-cli-Bh-Y2NVp.js → completion-cli-DaWi3_ux.js} +2 -2
  32. package/dist/{config-D7SS4vdk.js → config-D-PYSlE8.js} +2 -2
  33. package/dist/{config-cli-DupKETmw.js → config-cli-DS67KtKf.js} +4 -4
  34. package/dist/{config-cli-BxRcn2oD.js → config-cli-DXKm0pS5.js} +1 -1
  35. package/dist/{config-guard-BGAQzX2K.js → config-guard-xLTTFANi.js} +6 -6
  36. package/dist/{config-validation-COcIIMNe.js → config-validation-C4wGq3rz.js} +1 -1
  37. package/dist/{configure-0XYm59w7.js → configure-B99YJJb0.js} +14 -14
  38. package/dist/{configure-BilM_Fgn.js → configure-CzO4_jJJ.js} +2 -2
  39. package/dist/{consolidate-DI20-Wtn.js → consolidate-BB4BOQIN.js} +6 -6
  40. package/dist/{control-service-Ry7Le68N.js → control-service-y53w3Jzy.js} +4 -4
  41. package/dist/{control-ui-assets-DuDhl0co.js → control-ui-assets-Dryy7mCE.js} +1 -1
  42. package/dist/{cron-cli-DHFgjr_X.js → cron-cli-BMblAFRK.js} +7 -7
  43. package/dist/{daemon-cli-fC2R9YZd.js → daemon-cli-BJGNf5qV.js} +11 -11
  44. package/dist/{daemon-runtime-tZgIbDPz.js → daemon-runtime-u4p9jsEF.js} +10 -10
  45. package/dist/{deliver-DB4v0Tyl.js → deliver-C79-Umbk.js} +2 -2
  46. package/dist/{deliver-oWGJwzFf.js → deliver-Cjyb6h4g.js} +4 -4
  47. package/dist/{deliver-DyO3QD8O.js → deliver-DTRkeYm3.js} +4 -4
  48. package/dist/{deps-BlmO-MfQ.js → deps-UA1UBhl7.js} +1 -1
  49. package/dist/{devices-cli-DtkKN4l0.js → devices-cli-wsTs-nti.js} +6 -6
  50. package/dist/{diagnostics-tVJR9V0_.js → diagnostics-oW0LBW-t.js} +5 -5
  51. package/dist/{directory-cli-Bfy_ejW2.js → directory-cli-D8As6t8Z.js} +3 -3
  52. package/dist/{dm-policy-shared-CBlUyDSX.js → dm-policy-shared-DRJrFKqJ.js} +1 -1
  53. package/dist/{dns-cli-DzKaV6NZ.js → dns-cli-BKOTBn3n.js} +3 -3
  54. package/dist/{docs-cli-a90_8wuN.js → docs-cli-D5j7Nmz2.js} +1 -1
  55. package/dist/{doctor-completion-BZJWX3Dr.js → doctor-completion-B1YCzbvi.js} +1 -1
  56. package/dist/{doctor-completion-B6OPl_GZ.js → doctor-completion-mev5PRjN.js} +2 -2
  57. package/dist/{doctor-config-flow-30ZEvATb.js → doctor-config-flow-Uv41seME.js} +9 -9
  58. package/dist/entry.js +1 -1
  59. package/dist/{exec-approvals-cli-C3gZAwV8.js → exec-approvals-cli-B4ry9s5r.js} +13 -13
  60. package/dist/extensionAPI.js +4 -4
  61. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  62. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  63. package/dist/{gateway-cli-CyhLb-zS.js → gateway-cli-B3JVj_dv.js} +98 -98
  64. package/dist/{gateway-cli-DQhYa6AL.js → gateway-cli-Chnp6icp.js} +10 -10
  65. package/dist/{gateway-rpc-DNq7EMhm.js → gateway-rpc-CLzM6ugo.js} +1 -1
  66. package/dist/{glass-ui-ws-SJVljtUx.js → glass-ui-ws--GjxFRyX.js} +67 -67
  67. package/dist/{glass-ui-ws-CLDbMDPk.js → glass-ui-ws-5o8dvEZO.js} +8 -8
  68. package/dist/{health-DZ0aipDZ.js → health-D2th0Ip6.js} +4 -4
  69. package/dist/{hooks-cli-BMRj13QU.js → hooks-cli-B4Nvp9AV.js} +59 -59
  70. package/dist/{hooks-cli-BVtdP5x7.js → hooks-cli-B_sZth4r.js} +5 -5
  71. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  72. package/dist/index.js +52 -52
  73. package/dist/{inspect-CXsOujVt.js → inspect-U3g9owQ8.js} +4 -4
  74. package/dist/{install-safe-path-D5gi-nfu.js → install-safe-path-BwMMOh9z.js} +11 -11
  75. package/dist/{installs-DF_LhGX6.js → installs-vdi1BESF.js} +10 -10
  76. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  77. package/dist/{lifecycle-core-Bvdl2ShM.js → lifecycle-core-BfmNlC-k.js} +5 -5
  78. package/dist/llm-slug-generator.js +4 -4
  79. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  80. package/dist/{logs-cli-mdSEYBKS.js → logs-cli-COZzdFu6.js} +7 -7
  81. package/dist/{manager-BhIaahpm.js → manager-BfbQb9qM.js} +1 -1
  82. package/dist/{manager-DhHNnMyK.js → manager-Bryhc0Ip.js} +1 -1
  83. package/dist/{manager-BIt2_nlu.js → manager-C5FGNRjL.js} +1 -1
  84. package/dist/{manager-BLg6zbeA.js → manager-DyYRwHZt.js} +15 -15
  85. package/dist/{memory-BENbCb4f.js → memory-Cypj1lBQ.js} +2 -2
  86. package/dist/{memory-B4DsKRSc.js → memory-DgDnTEcB.js} +5 -5
  87. package/dist/{memory-cli-DotHyA76.js → memory-cli-CfJkD7mO.js} +12 -12
  88. package/dist/{memory-cli-BIjwqjBx.js → memory-cli-DB7UIev4.js} +2 -2
  89. package/dist/{model-DsMHOvMn.js → model-DbILYCfo.js} +1 -1
  90. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  91. package/dist/{model-catalog-DQTmHZK7.js → model-catalog-CeqDEWGz.js} +3 -3
  92. package/dist/{model-picker-D4TY_tPx.js → model-picker-C_f6MALt.js} +5 -5
  93. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  94. package/dist/{models-CmToZKBp.js → models-Bpqeds64.js} +2 -2
  95. package/dist/{models-cli-CZgkOUZB.js → models-cli-BUWfj5iJ.js} +55 -55
  96. package/dist/{models-cli-Di7iKhD4.js → models-cli-Bc47WFhD.js} +6 -6
  97. package/dist/{models-config-CRnTzdFs.js → models-config-Dp5-tBqs.js} +8 -8
  98. package/dist/{node-cli-BXv9SEDG.js → node-cli-BdjmGI32.js} +27 -27
  99. package/dist/{node-service-CrDVFWQl.js → node-service-DphkTjBV.js} +1 -1
  100. package/dist/{nodes-cli-Cim3ANNU.js → nodes-cli-BChJzcKY.js} +10 -10
  101. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  102. package/dist/{npm-registry-spec-YMWTMnm_.js → npm-registry-spec-CqVgiBCf.js} +9 -9
  103. package/dist/{onboard-BXI02b3e.js → onboard-BbfERyKU.js} +1 -1
  104. package/dist/{onboard-CuLvp4Ds.js → onboard-C0nMMiiS.js} +15 -15
  105. package/dist/{onboard-channels-A6_QP7MR.js → onboard-channels-CMp9YXHC.js} +1 -1
  106. package/dist/{onboard-channels-E5NIYGJz.js → onboard-channels-CmsfVut5.js} +4 -4
  107. package/dist/{onboard-custom-BrtjWDlX.js → onboard-custom-BfHczxx0.js} +3 -3
  108. package/dist/{onboard-helpers---sZ9pdZ.js → onboard-helpers-OB_xKQze.js} +8 -8
  109. package/dist/{onboard-hooks-CtIRdncr.js → onboard-hooks-BA22KYCG.js} +1 -1
  110. package/dist/{onboard-remote-BUB3VPBP.js → onboard-remote-Dv2Uz8Ru.js} +1 -1
  111. package/dist/{onboard-skills-Cs3BZ4VJ.js → onboard-skills-BzxofI4T.js} +3 -3
  112. package/dist/{onboarding-BeYl1Egj.js → onboarding-DoYMfCjS.js} +3 -3
  113. package/dist/{onboarding-BWMBA6cP.js → onboarding-vgZFhH5N.js} +12 -12
  114. package/dist/{onboarding.finalize-CH8dBgA2.js → onboarding.finalize-BYHDzz2i.js} +31 -31
  115. package/dist/{onboarding.finalize-Bk-XW8b3.js → onboarding.finalize-Dj0xG8pk.js} +4 -4
  116. package/dist/{onboarding.gateway-config-arRNxrI9.js → onboarding.gateway-config-CDRLfIZM.js} +8 -8
  117. package/dist/{openai-model-default-XudD4Xik.js → openai-model-default-Dl21Ivjc.js} +2 -2
  118. package/dist/{pairing-cli-NDavTm1_.js → pairing-cli-C2_Zobhz.js} +5 -5
  119. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  120. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  121. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  122. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  123. package/dist/{pi-embedded-0I7WdtRz.js → pi-embedded-C7mJzGIf.js} +59 -13
  124. package/dist/{pi-embedded-helpers-B5cWV7_y.js → pi-embedded-helpers-y3vJmW6T.js} +6 -6
  125. package/dist/{pi-tools.policy-BdGVEMZn.js → pi-tools.policy-ji-L-Mpv.js} +3 -3
  126. package/dist/{plugin-auto-enable-B_lNp6yM.js → plugin-auto-enable-Ctbn2w4Q.js} +1 -1
  127. package/dist/{plugin-registry-DovNSdK0.js → plugin-registry-D2ZbwBU_.js} +3 -3
  128. package/dist/{plugin-registry-CAdIrLmG.js → plugin-registry-pKaJ4ltN.js} +1 -1
  129. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +1 -2
  130. package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +10 -0
  131. package/dist/plugin-sdk/agents/tools/common.d.ts +30 -0
  132. package/dist/{plugins-cli-ZG4PxNTC.js → plugins-cli-CoHiV4BX.js} +54 -54
  133. package/dist/{plugins-cli-JzKO-vmR.js → plugins-cli-uo8lcB7v.js} +5 -5
  134. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  135. package/dist/{ports-C3ZSkRGq.js → ports-ukrEAkOP.js} +1 -1
  136. package/dist/{program-context-ByiEP1Lk.js → program-context-B1ZbQmLL.js} +38 -38
  137. package/dist/{program-BbfU4idg.js → program-rzYjZKRz.js} +10 -10
  138. package/dist/{prompt-select-styled-DvrG_zWV.js → prompt-select-styled-CX0v66wx.js} +38 -38
  139. package/dist/{prompt-select-styled-CWH2Mcrb.js → prompt-select-styled-F6P-rvFI.js} +4 -4
  140. package/dist/{provider-auth-helpers-CMQexdSl.js → provider-auth-helpers-Ck98bkHV.js} +1 -1
  141. package/dist/{provider-auth-helpers-2x7YxT5F.js → provider-auth-helpers-_jn9PngO.js} +6 -6
  142. package/dist/{push-apns-CtWwPxRj.js → push-apns-BtMtpzEm.js} +1 -1
  143. package/dist/{push-apns-eGdGU3r7.js → push-apns-CmeoBcIQ.js} +4 -4
  144. package/dist/{pw-ai-BOOB8qoi.js → pw-ai-BFS9ezWe.js} +1 -1
  145. package/dist/{pw-ai-tgngV3iZ.js → pw-ai-CQJsGI1b.js} +7 -7
  146. package/dist/{pw-ai-Cx-Ko_FL.js → pw-ai-D2pEVS5n.js} +1 -1
  147. package/dist/{qmd-manager-qV_04VKG.js → qmd-manager-DawTY2mB.js} +19 -19
  148. package/dist/{qr-cli-Vo1XL6B2.js → qr-cli-DKowtQcM.js} +3 -3
  149. package/dist/{register.agent-Dwkya1rv.js → register.agent-0hWBZXD7.js} +67 -67
  150. package/dist/{register.agent-DZE9NBNx.js → register.agent-_UqSBmt5.js} +9 -9
  151. package/dist/{register.configure-DCpbCHR0.js → register.configure-CgQ6sqtQ.js} +70 -70
  152. package/dist/{register.configure-CD8WkXo8.js → register.configure-KrTtvKSp.js} +8 -8
  153. package/dist/{register.maintenance-CxVeo_7j.js → register.maintenance-DDSfzFoo.js} +9 -9
  154. package/dist/{register.maintenance-Bqjj77CZ.js → register.maintenance-DjZeknO6.js} +67 -67
  155. package/dist/{register.message-tcJN7-E3.js → register.message-DSwwDcGi.js} +5 -5
  156. package/dist/{register.message-uhAmNxoO.js → register.message-DTZJ5OiL.js} +47 -47
  157. package/dist/{register.onboard-F6d_Wrv1.js → register.onboard-B8k5phG7.js} +25 -25
  158. package/dist/{register.onboard-Rm5t0yxX.js → register.onboard-BToIZTIS.js} +2 -2
  159. package/dist/{register.setup-CcHxpsUT.js → register.setup-1fexz2oW.js} +28 -28
  160. package/dist/{register.setup-C2datfZK.js → register.setup-BdUewOo1.js} +2 -2
  161. package/dist/{register.status-health-sessions-DIUDRMqm.js → register.status-health-sessions-0RyA2cXf.js} +41 -41
  162. package/dist/{register.status-health-sessions-DFVjS9Hy.js → register.status-health-sessions-eBaeXIvo.js} +3 -3
  163. package/dist/{register.subclis-D9uGnVGm.js → register.subclis-tX3BslaT.js} +9 -9
  164. package/dist/{replies-DzsYQ8Md.js → replies-D3cffD5N.js} +1 -1
  165. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  166. package/dist/{resolve-route-Zww0Y-HJ.js → resolve-route-B0i_o4Fo.js} +1 -1
  167. package/dist/{routes-C-rIjd8Z.js → routes-zpAUwtCG.js} +10 -10
  168. package/dist/{rpc-BkFkeuJ6.js → rpc-DhsDKVo-.js} +1 -1
  169. package/dist/{run-main-HkbyvIDy.js → run-main-DIl_Kl0B.js} +17 -17
  170. package/dist/{sandbox-Dx8IMw-E.js → sandbox-DQCaejcD.js} +18 -18
  171. package/dist/{sandbox-cli-BFkLKdlk.js → sandbox-cli-CbvyZs1z.js} +13 -13
  172. package/dist/{security-cli-BEpQ_rO1.js → security-cli-CbJxNYZx.js} +29 -29
  173. package/dist/{send-Cxu1tl56.js → send-QscYkkNh.js} +7 -7
  174. package/dist/{server-context--mmXXEkE.js → server-context-CXVq7gZ7.js} +5 -5
  175. package/dist/{server-methods-DJ8eiTu1.js → server-methods-CpFBGxWI.js} +6 -6
  176. package/dist/{server-methods-RtjWUhkv.js → server-methods-DPxjPGr0.js} +58 -58
  177. package/dist/{server-node-events-CT8fFtBQ.js → server-node-events-2SUW10k3.js} +6 -6
  178. package/dist/{server-node-events-DQ1iCUgY.js → server-node-events-B_BPbi7z.js} +48 -48
  179. package/dist/{service-CyEDtYLq.js → service-Cm4-5AH9.js} +15 -15
  180. package/dist/{session-dirs-CXErIzZq.js → session-dirs-BypCYFN3.js} +2 -2
  181. package/dist/{session-utils-BZnPW904.js → session-utils-lXjJoBxe.js} +14 -14
  182. package/dist/{sessions-optZRB57.js → sessions-aSo5jsmg.js} +10 -10
  183. package/dist/{shared-DJFwvlUi.js → shared-BI-gOZsD.js} +3 -3
  184. package/dist/{shared-Ctok0Bcs.js → shared-DDX_4ypC.js} +1 -1
  185. package/dist/{skill-commands-yPirQFOb.js → skill-commands-C9WuAfb2.js} +4 -4
  186. package/dist/{skill-scanner-BBwesm0w.js → skill-scanner-CFqMkfZW.js} +5 -5
  187. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  188. package/dist/{skills-cli-gC5ETdly.js → skills-cli-BgyaAQoj.js} +7 -7
  189. package/dist/{skills-install-CLN_Ks5r.js → skills-install-MGsx6q5Z.js} +3 -3
  190. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  191. package/dist/{skills-status-iltfI_bO.js → skills-status-CbSdFlvm.js} +1 -1
  192. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  193. package/dist/{status-Cpz64Vy_.js → status-BVYDUlnp.js} +1 -1
  194. package/dist/{status-CuMBp54T.js → status-C-r9JpJf.js} +23 -23
  195. package/dist/{status-EAjzyREy.js → status-DIJvpgEm.js} +3 -3
  196. package/dist/{status-CoqGtHXq.js → status-DbNNmkNB.js} +1 -1
  197. package/dist/{status.update-F4CbQCxF.js → status.update-EyslEZkn.js} +3 -3
  198. package/dist/{subagent-registry-Dkif1XYO.js → subagent-registry-DWemyjbN.js} +52 -6
  199. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  200. package/dist/{synthesis-D3fpp3Vu.js → synthesis-BdTiornP.js} +4 -4
  201. package/dist/{synthesis-CpsURf9J.js → synthesis-BxYzOZUA.js} +4 -4
  202. package/dist/{synthesis-CKKZrrYd.js → synthesis-C7RlvHEs.js} +45 -45
  203. package/dist/{synthesis-B0PXRiiM.js → synthesis-DQ7Y6OE0.js} +4 -4
  204. package/dist/{system-cli-DMKzffe3.js → system-cli-DgOvK_kU.js} +7 -7
  205. package/dist/{systemd-DRpQb_L1.js → systemd-B2nTr3Y2.js} +5 -5
  206. package/dist/{systemd-hints-DR4u43WA.js → systemd-hints-DtOWJT_2.js} +6 -6
  207. package/dist/{systemd-linger-BQQl5RXN.js → systemd-linger-CWi5l8Nt.js} +1 -1
  208. package/dist/{tui-CqrM_Fj2.js → tui-D7ms_iQ4.js} +7 -7
  209. package/dist/{tui-cli-BsqRmqTX.js → tui-cli-DNvAqIYN.js} +19 -19
  210. package/dist/{unified-runner-DZAjU6aB.js → unified-runner-BIUJm_Iv.js} +150 -104
  211. package/dist/{unified-runner-DkPztkL8.js → unified-runner-DPWNhQQA.js} +59 -13
  212. package/dist/{update-check-CxBGAP1E.js → update-check-CduiCxPo.js} +5 -5
  213. package/dist/{update-cli-Bgk30eoA.js → update-cli-BM-A3cIZ.js} +9 -9
  214. package/dist/{update-cli-t7W6vcQY.js → update-cli-GKXF83cS.js} +77 -77
  215. package/dist/{update-CWEjB8uS.js → update-pddgyV7i.js} +3 -3
  216. package/dist/{update-runner-C4Uy75eP.js → update-runner-BMYqz1dl.js} +15 -15
  217. package/dist/{webhooks-cli-Dp-pp0Sf.js → webhooks-cli-BPPmnDCj.js} +4 -4
  218. package/dist/{with-timeout-B5zAsivw.js → with-timeout-D1qzvPE0.js} +1 -1
  219. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  220. package/dist/{wsl-DMA0sTvh.js → wsl-Sed675xh.js} +2 -2
  221. package/package.json +1 -1
@@ -9,12 +9,12 @@ import { _ as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, c as
9
9
  import { n as resolveCliName, t as formatCliCommand } from "./command-format-BrrHNE8r.js";
10
10
  import { _ as DEFAULT_MODEL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, g as DEFAULT_CONTEXT_TOKENS, h as getProviderAdapter, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$1, t as buildAllowedModelSet, u as resolveConfiguredModelRef, v as DEFAULT_PROVIDER } from "./model-selection-BqshlIZc.js";
11
11
  import { n as saveJsonFile, t as loadJsonFile } from "./json-file-CZ3ssFR9.js";
12
- import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-DyO3QD8O.js";
12
+ import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-DTRkeYm3.js";
13
13
  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, o as normalizeHostname, p as parseDurationMs, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-oI58TMOb.js";
14
14
  import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
15
15
  import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-B1lDWz4t.js";
16
16
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-BGJu2aC-.js";
17
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-C_I81hbq.js";
17
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DPjznJQ-.js";
18
18
  import { l as parseFrontmatterBlock } from "./frontmatter-CJEX1BrH.js";
19
19
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Dm4gX4Tl.js";
20
20
  import { n as redactToolDetail } from "./redact-CSGZUFxa.js";
@@ -31,7 +31,7 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.j
31
31
  import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-D_vCJSzF.js";
32
32
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BALvP9wI.js";
33
33
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-BDfanaOY.js";
34
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-BIt2_nlu.js";
34
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-C5FGNRjL.js";
35
35
  import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-uhEBNQfj.js";
36
36
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DCGR3yfh.js";
37
37
  import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-D0NzzC4I.js";
@@ -58,7 +58,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
58
58
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
59
59
  import AjvPkg from "ajv";
60
60
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
61
- import { WebSocket as WebSocket$1 } from "ws";
61
+ import { WebSocket } from "ws";
62
62
  import { Buffer as Buffer$1 } from "node:buffer";
63
63
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
64
64
  import { createJiti } from "jiti";
@@ -4460,7 +4460,7 @@ async function getMemorySearchManager(params) {
4460
4460
  const wrapper = new FallbackMemoryManager({
4461
4461
  primary,
4462
4462
  fallbackFactory: async () => {
4463
- const { MemoryIndexManager } = await import("./manager-BIt2_nlu.js").then((n) => n.t);
4463
+ const { MemoryIndexManager } = await import("./manager-C5FGNRjL.js").then((n) => n.t);
4464
4464
  return await MemoryIndexManager.get(params);
4465
4465
  }
4466
4466
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -4473,7 +4473,7 @@ async function getMemorySearchManager(params) {
4473
4473
  }
4474
4474
  }
4475
4475
  try {
4476
- const { MemoryIndexManager } = await import("./manager-BIt2_nlu.js").then((n) => n.t);
4476
+ const { MemoryIndexManager } = await import("./manager-C5FGNRjL.js").then((n) => n.t);
4477
4477
  return { manager: await MemoryIndexManager.get(params) };
4478
4478
  } catch (err) {
4479
4479
  return {
@@ -9619,7 +9619,7 @@ var GatewayClient = class {
9619
9619
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
9620
9620
  });
9621
9621
  }
9622
- this.ws = new WebSocket$1(url, wsOptions);
9622
+ this.ws = new WebSocket(url, wsOptions);
9623
9623
  this.ws.on("open", () => {
9624
9624
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
9625
9625
  const tlsError = this.validateTlsFingerprint();
@@ -9838,7 +9838,7 @@ var GatewayClient = class {
9838
9838
  return null;
9839
9839
  }
9840
9840
  async request(method, params, opts) {
9841
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
9841
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
9842
9842
  const id = randomUUID();
9843
9843
  const frame = {
9844
9844
  type: "req",
@@ -10798,7 +10798,7 @@ async function routeReply(params) {
10798
10798
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10799
10799
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10800
10800
  try {
10801
- const { deliverOutboundPayloads } = await import("./deliver-DyO3QD8O.js").then((n) => n.n);
10801
+ const { deliverOutboundPayloads } = await import("./deliver-DTRkeYm3.js").then((n) => n.n);
10802
10802
  return {
10803
10803
  ok: true,
10804
10804
  messageId: (await deliverOutboundPayloads({
@@ -43083,11 +43083,19 @@ function createWebSearchTool(options) {
43083
43083
  const provider = resolveSearchProvider(search);
43084
43084
  const perplexityConfig = resolvePerplexityConfig(search);
43085
43085
  const grokConfig = resolveGrokConfig(search);
43086
+ const description = provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.";
43087
+ const resolveActiveApiKey = () => {
43088
+ if (provider === "perplexity") return resolvePerplexityApiKey(perplexityConfig)?.apiKey;
43089
+ if (provider === "grok") return resolveGrokApiKey(grokConfig);
43090
+ return resolveSearchApiKey(search);
43091
+ };
43086
43092
  return {
43087
43093
  label: "Web Search",
43088
43094
  name: "web_search",
43089
- description: provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.",
43095
+ description,
43090
43096
  parameters: WebSearchSchema,
43097
+ checkFn: () => Boolean(resolveActiveApiKey()),
43098
+ requiredEnv: provider === "perplexity" ? ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"] : provider === "grok" ? ["XAI_API_KEY"] : ["BRAVE_API_KEY"],
43091
43099
  execute: async (_toolCallId, args) => {
43092
43100
  const perplexityAuth = provider === "perplexity" ? resolvePerplexityApiKey(perplexityConfig) : void 0;
43093
43101
  const apiKey = provider === "perplexity" ? perplexityAuth?.apiKey : provider === "grok" ? resolveGrokApiKey(grokConfig) : resolveSearchApiKey(search);
@@ -43633,7 +43641,7 @@ async function deliverSessionMaintenanceWarning(params) {
43633
43641
  return;
43634
43642
  }
43635
43643
  try {
43636
- const { deliverOutboundPayloads } = await import("./deliver-DyO3QD8O.js").then((n) => n.n);
43644
+ const { deliverOutboundPayloads } = await import("./deliver-DTRkeYm3.js").then((n) => n.n);
43637
43645
  await deliverOutboundPayloads({
43638
43646
  cfg: params.cfg,
43639
43647
  channel,
@@ -53101,6 +53109,44 @@ function applyToolPolicyPipeline(params) {
53101
53109
  return filtered;
53102
53110
  }
53103
53111
 
53112
+ //#endregion
53113
+ //#region src/agents/tools/availability-filter.ts
53114
+ const FORCE_ALL_TOOLS_ENV = "SYMI_FORCE_ALL_TOOLS";
53115
+ /**
53116
+ * Filter the tool palette by each tool's `checkFn`. Tools without a
53117
+ * checkFn pass through unchanged. Throwing checkFns are treated as
53118
+ * available (defensive). The `SYMI_FORCE_ALL_TOOLS=1` env bypasses the
53119
+ * filter entirely.
53120
+ *
53121
+ * Pure function — does not mutate the input array.
53122
+ */
53123
+ function filterToolsByAvailability(tools) {
53124
+ if (isTruthyEnvValue(process.env[FORCE_ALL_TOOLS_ENV])) return [...tools];
53125
+ const out = [];
53126
+ for (const tool of tools) {
53127
+ if (!tool.checkFn) {
53128
+ out.push(tool);
53129
+ continue;
53130
+ }
53131
+ let available;
53132
+ try {
53133
+ available = tool.checkFn();
53134
+ } catch (err) {
53135
+ logVerbose(`tool availability: checkFn for "${getToolName(tool)}" threw — including tool anyway. ${String(err)}`);
53136
+ out.push(tool);
53137
+ continue;
53138
+ }
53139
+ if (available) out.push(tool);
53140
+ else logVerbose(`tool availability: filtered out "${getToolName(tool)}" — checkFn returned false. Set ${FORCE_ALL_TOOLS_ENV}=1 to bypass this filter.`);
53141
+ }
53142
+ return out;
53143
+ }
53144
+ function getToolName(tool) {
53145
+ const definition = tool.definition;
53146
+ if (definition && typeof definition.name === "string") return definition.name;
53147
+ return "(unknown tool)";
53148
+ }
53149
+
53104
53150
  //#endregion
53105
53151
  //#region src/agents/pi-tools.ts
53106
53152
  function isOpenAIProvider(provider) {
@@ -53320,7 +53366,7 @@ function createSymiCodingTools(options) {
53320
53366
  root: sandboxRoot,
53321
53367
  bridge: sandboxFsBridge
53322
53368
  }), readEditTracker) : null;
53323
- const withHooks = applyToolPolicyPipeline({
53369
+ const withHooks = filterToolsByAvailability(applyToolPolicyPipeline({
53324
53370
  tools: applyOwnerOnlyToolPolicy([
53325
53371
  ...base,
53326
53372
  ...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
@@ -53392,7 +53438,7 @@ function createSymiCodingTools(options) {
53392
53438
  label: "subagent tools.allow"
53393
53439
  }
53394
53440
  ]
53395
- }).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
53441
+ })).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
53396
53442
  agentId,
53397
53443
  sessionKey: options?.sessionKey,
53398
53444
  loopDetection: resolveToolLoopDetectionConfig({
@@ -2,7 +2,7 @@ import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
2
2
  import { n as fetchWithTimeout } from "./fetch-timeout-BhdrdVp5.js";
3
3
  import { r as parseSemver } from "./runtime-guard-DfRLODeV.js";
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/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 fs.readFile(path.join(root, "package.json"), "utf-8");
89
+ const raw = await fsPromises.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 fs.readdir(root).catch(() => []);
93
+ const files = await fsPromises.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 fs.access(p);
115
+ await fsPromises.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 fs.stat(p)).mtimeMs;
242
+ return (await fsPromises.stat(p)).mtimeMs;
243
243
  } catch {
244
244
  return null;
245
245
  }
@@ -21,7 +21,7 @@ import "./client-BqT7xONl.js";
21
21
  import "./call-GzGqMHAx.js";
22
22
  import "./message-channel-DXToSaWK.js";
23
23
  import "./pairing-token-B-OTYROz.js";
24
- import "./subagent-registry-Dkif1XYO.js";
24
+ import "./subagent-registry-DWemyjbN.js";
25
25
  import "./sessions-DHPf5TzB.js";
26
26
  import "./plugins-BsEhWvLn.js";
27
27
  import "./send-BBfSp-8Q.js";
@@ -51,8 +51,8 @@ import "./model-auth-Byr7Gic_.js";
51
51
  import "./github-copilot-token-B5y4__YM.js";
52
52
  import "./models-config-Br7EjqgG.js";
53
53
  import "./reply-prefix-DV3KhOhL.js";
54
- import "./memory-BENbCb4f.js";
55
- import "./manager-BhIaahpm.js";
54
+ import "./memory-Cypj1lBQ.js";
55
+ import "./manager-BfbQb9qM.js";
56
56
  import "./sqlite-9jF_eajd.js";
57
57
  import "./chunk-B2lBXhR0.js";
58
58
  import "./markdown-tables-BEdkErjm.js";
@@ -84,7 +84,7 @@ import { t as formatDocsLink } from "./links-BDe4dm1J.js";
84
84
  import "./cli-utils-BhfE5XS2.js";
85
85
  import { t as formatHelpExamples } from "./help-format-CbgFRc-H.js";
86
86
  import "./progress-CqV5lJkt.js";
87
- import "./memory-cli-BIjwqjBx.js";
87
+ import "./memory-cli-DB7UIev4.js";
88
88
  import "./logging-BeW3kpQA.js";
89
89
  import "./replies-LM-arXEE.js";
90
90
  import "./pi-tools.policy-4gtz_Ipq.js";
@@ -98,10 +98,10 @@ import "./npm-registry-spec-B5KYXHyZ.js";
98
98
  import "./skill-scanner-CH9qofCG.js";
99
99
  import "./installs-CylGJ0W4.js";
100
100
  import "./channels-status-issues-DGneT0fj.js";
101
- import "./register.subclis-D9uGnVGm.js";
102
- import "./command-registry-DAy62yhH.js";
101
+ import "./register.subclis-tX3BslaT.js";
102
+ import "./command-registry-DoXcG7FZ.js";
103
103
  import "./program-context-4vIUuzQk.js";
104
- import { r as installCompletion } from "./completion-cli-Bh-Y2NVp.js";
104
+ import { r as installCompletion } from "./completion-cli-DaWi3_ux.js";
105
105
  import "./daemon-runtime-Cyqcsmvq.js";
106
106
  import { r as parseSemver } from "./runtime-guard-C8jl1lEu.js";
107
107
  import "./onboard-helpers-Cut7JJgz.js";
@@ -123,8 +123,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
123
123
  import "./doctor-config-flow-B0pP_wcc.js";
124
124
  import "./systemd-linger-C6G2nDWK.js";
125
125
  import "./health-format-y74JTiFu.js";
126
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CWH2Mcrb.js";
127
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BZJWX3Dr.js";
126
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-F6P-rvFI.js";
127
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B1YCzbvi.js";
128
128
  import { spawn, spawnSync } from "node:child_process";
129
129
  import os from "node:os";
130
130
  import path from "node:path";
@@ -1,135 +1,135 @@
1
- import "./unified-runner-DZAjU6aB.js";
1
+ import "./unified-runner-BIUJm_Iv.js";
2
2
  import { j as theme } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
4
4
  import { f as pathExists } from "./utils-CTPsqyE_.js";
5
5
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
6
- import "./auth-profiles-Ce7R_25e.js";
6
+ import "./auth-profiles-D5nYBj_Z.js";
7
7
  import { n as resolveCliName, t as replaceCliName } from "./cli-name-CzMV-gJF.js";
8
8
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
9
- import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
9
+ import { t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
10
10
  import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
11
- import "./agent-scope-DOrZjOnW.js";
12
- import "./model-selection-7wdmO-Iw.js";
13
- import "./file-lock-BVUYnlQv.js";
11
+ import "./agent-scope-Bnsyyeci.js";
12
+ import "./model-selection-CCTzD29o.js";
13
+ import "./file-lock-2AecMjCa.js";
14
14
  import "./agent-paths-BbZSGrUA.js";
15
- import "./pi-embedded-helpers-B5cWV7_y.js";
16
- import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-D7SS4vdk.js";
15
+ import "./pi-embedded-helpers-y3vJmW6T.js";
16
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-D-PYSlE8.js";
17
17
  import "./boolean-CbZoNRMn.js";
18
18
  import "./env-BRnPI9sO.js";
19
19
  import "./shell-env-Dc3iU7HK.js";
20
20
  import "./manifest-registry-D1MLZEjS.js";
21
- import "./sandbox-Dx8IMw-E.js";
22
- import "./chrome-rzK8edU7.js";
21
+ import "./sandbox-DQCaejcD.js";
22
+ import "./chrome-pFBxO63W.js";
23
23
  import "./tailscale-DpKBMIvx.js";
24
24
  import "./auth-Bkx-QuRN.js";
25
- import "./server-context--mmXXEkE.js";
25
+ import "./server-context-CXVq7gZ7.js";
26
26
  import "./frontmatter-B_jqcova.js";
27
- import "./skills-BwDmcZdt.js";
28
- import "./routes-C-rIjd8Z.js";
27
+ import "./skills-CYcBtLGH.js";
28
+ import "./routes-zpAUwtCG.js";
29
29
  import "./redact-B3O-RBO1.js";
30
30
  import "./errors-bI7Tdx75.js";
31
- import "./fs-safe-BdejYjW8.js";
32
- import "./paths-DObzwe08.js";
31
+ import "./fs-safe-B0Is-oLk.js";
32
+ import "./paths-BWqg8NZT.js";
33
33
  import "./ssrf-DOZRI5XH.js";
34
- import "./image-ops-L70xVnpG.js";
35
- import "./ports-gxLM5ahL.js";
34
+ import "./image-ops-BzCBIakN.js";
35
+ import "./ports-CB_Iu83U.js";
36
36
  import "./trash-_YhavPQI.js";
37
- import "./sessions-optZRB57.js";
37
+ import "./sessions-aSo5jsmg.js";
38
38
  import "./dock-hF45sewN.js";
39
39
  import "./message-channel-DgjXWzf-.js";
40
40
  import "./plugins-CF5skkHh.js";
41
- import "./send-Cxu1tl56.js";
41
+ import "./send-QscYkkNh.js";
42
42
  import "./paths-BtvQ7JvU.js";
43
43
  import "./thinking-COroyVA5.js";
44
44
  import "./tokens-0yh2UnJq.js";
45
- import "./deliver-DB4v0Tyl.js";
45
+ import "./deliver-C79-Umbk.js";
46
46
  import "./diagnostic-DbT9t0Sh.js";
47
47
  import "./diagnostic-session-state-DnkpMfCl.js";
48
- import "./model-auth-1EAQvYRv.js";
48
+ import "./model-auth-_C07_3Yr.js";
49
49
  import "./github-copilot-token-D-FdDfee.js";
50
- import "./models-config-CRnTzdFs.js";
51
- import "./pi-auth-json-Db8XJVGL.js";
50
+ import "./models-config-Dp5-tBqs.js";
51
+ import "./pi-auth-json-D-vdh-nY.js";
52
52
  import "./session-cost-usage-D6Ocwmq1.js";
53
- import { h as trimLogTail } from "./session-utils-BZnPW904.js";
54
- import "./with-timeout-B5zAsivw.js";
55
- import "./reply-prefix-BFNeXT65.js";
56
- import "./memory-B4DsKRSc.js";
57
- import "./manager-BLg6zbeA.js";
58
- import "./sqlite-Cod7C5ba.js";
53
+ import { h as trimLogTail } from "./session-utils-lXjJoBxe.js";
54
+ import "./with-timeout-D1qzvPE0.js";
55
+ import "./reply-prefix-CtZtkTJK.js";
56
+ import "./memory-DgDnTEcB.js";
57
+ import "./manager-DyYRwHZt.js";
58
+ import "./sqlite-BpogPlQW.js";
59
59
  import "./chunk-BxfKjCUx.js";
60
60
  import "./markdown-tables-CS1Tvb3z.js";
61
61
  import "./fetch-guard-JHxT9355.js";
62
- import "./local-roots-CgDCgCuM.js";
62
+ import "./local-roots-2Jb79HZ8.js";
63
63
  import "./commands-DUzLGgEZ.js";
64
- import "./commands-registry-VfAQOVZO.js";
65
- import "./client-BzUAFrla.js";
66
- import "./call-BouPakqe.js";
67
- import "./pairing-token-Dcy37-4s.js";
64
+ import "./commands-registry-BjcGLk4v.js";
65
+ import "./client-T5P9umyG.js";
66
+ import "./call-CW8U1BPq.js";
67
+ import "./pairing-token-B703A1U3.js";
68
68
  import "./tool-display-DFOL6UQ9.js";
69
- import "./skills-remote-bz71Bstn.js";
70
- import "./workspace-dirs-jKFQf7of.js";
69
+ import "./skills-remote-BcRQTDsZ.js";
70
+ import "./workspace-dirs-DCICLTHx.js";
71
71
  import "./pi-model-discovery-ClQLvlCW.js";
72
- import "./model-catalog-DQTmHZK7.js";
73
- import "./skill-commands-yPirQFOb.js";
74
- import "./pairing-store-BNhJOnWn.js";
72
+ import "./model-catalog-CeqDEWGz.js";
73
+ import "./skill-commands-C9WuAfb2.js";
74
+ import "./pairing-store-Be-ZQK87.js";
75
75
  import "./exec-approvals-DioSaIeH.js";
76
- import "./nodes-screen-De9ma6e1.js";
76
+ import "./nodes-screen-Cp5QP3ET.js";
77
77
  import { r as formatDurationPrecise } from "./format-duration-CIjmjQST.js";
78
78
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-ChnKXZKi.js";
79
- import "./control-service-Ry7Le68N.js";
79
+ import "./control-service-y53w3Jzy.js";
80
80
  import "./stagger-DUVGiPYV.js";
81
81
  import "./channel-selection-DF4bza2Q.js";
82
82
  import "./delivery-queue-RUd4NhRw.js";
83
83
  import "./bindings-CLS_owm_.js";
84
- import "./resolve-route-Zww0Y-HJ.js";
84
+ import "./resolve-route-B0i_o4Fo.js";
85
85
  import { t as formatDocsLink } from "./links-TQwptN6q.js";
86
86
  import "./cli-utils-tNdOjVQI.js";
87
87
  import { t as formatHelpExamples } from "./help-format-CPT6NY3h.js";
88
88
  import "./progress-HNhsbm0E.js";
89
- import "./memory-cli-DotHyA76.js";
89
+ import "./memory-cli-CfJkD7mO.js";
90
90
  import "./logging-Czh4x_NQ.js";
91
- import "./replies-DzsYQ8Md.js";
92
- import "./pi-tools.policy-BdGVEMZn.js";
93
- import "./model-DsMHOvMn.js";
91
+ import "./replies-D3cffD5N.js";
92
+ import "./pi-tools.policy-ji-L-Mpv.js";
93
+ import "./model-DbILYCfo.js";
94
94
  import { r as parseSemver } from "./runtime-guard-DfRLODeV.js";
95
- import "./program-context-ByiEP1Lk.js";
95
+ import "./program-context-B1ZbQmLL.js";
96
96
  import "./catalog-DsC3JTw1.js";
97
- import "./skills-status-iltfI_bO.js";
97
+ import "./skills-status-CbSdFlvm.js";
98
98
  import { n as inheritOptionFromParent } from "./command-options-nJfiotBs.js";
99
99
  import { n as stylePromptMessage } from "./prompt-style-BEDZROvQ.js";
100
100
  import "./note-DlaPViz1.js";
101
- import "./plugin-auto-enable-B_lNp6yM.js";
102
- import "./install-safe-path-D5gi-nfu.js";
103
- import "./npm-registry-spec-YMWTMnm_.js";
104
- import "./skill-scanner-BBwesm0w.js";
105
- import "./installs-DF_LhGX6.js";
101
+ import "./plugin-auto-enable-Ctbn2w4Q.js";
102
+ import "./install-safe-path-BwMMOh9z.js";
103
+ import "./npm-registry-spec-CqVgiBCf.js";
104
+ import "./skill-scanner-CFqMkfZW.js";
105
+ import "./installs-vdi1BESF.js";
106
106
  import "./channels-status-issues-mROqdfm_.js";
107
- import { r as installCompletion } from "./completion-cli-Bc1jojml.js";
108
- import "./daemon-runtime-tZgIbDPz.js";
109
- import "./onboard-helpers---sZ9pdZ.js";
110
- import "./systemd-DRpQb_L1.js";
111
- import { t as resolveGatewayService } from "./service-CyEDtYLq.js";
112
- import "./lifecycle-core-Bvdl2ShM.js";
113
- import "./systemd-hints-DR4u43WA.js";
114
- import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-fC2R9YZd.js";
115
- import "./diagnostics-tVJR9V0_.js";
107
+ import { r as installCompletion } from "./completion-cli-C0SXi7ya.js";
108
+ import "./daemon-runtime-u4p9jsEF.js";
109
+ import "./onboard-helpers-OB_xKQze.js";
110
+ import "./systemd-B2nTr3Y2.js";
111
+ import { t as resolveGatewayService } from "./service-Cm4-5AH9.js";
112
+ import "./lifecycle-core-BfmNlC-k.js";
113
+ import "./systemd-hints-DtOWJT_2.js";
114
+ import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-BJGNf5qV.js";
115
+ import "./diagnostics-oW0LBW-t.js";
116
116
  import { t as renderTable } from "./table-D902H0x3.js";
117
- import "./health-DZ0aipDZ.js";
118
- import "./control-ui-assets-DuDhl0co.js";
119
- 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-CxBGAP1E.js";
120
- import "./dm-policy-shared-CBlUyDSX.js";
121
- import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-F4CbQCxF.js";
122
- 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-C4Uy75eP.js";
117
+ import "./health-D2th0Ip6.js";
118
+ import "./control-ui-assets-Dryy7mCE.js";
119
+ 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-CduiCxPo.js";
120
+ import "./dm-policy-shared-DRJrFKqJ.js";
121
+ import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-EyslEZkn.js";
122
+ 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-BMYqz1dl.js";
123
123
  import "./logging-CoYSc9bY.js";
124
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-CWEjB8uS.js";
125
- import "./doctor-config-flow-30ZEvATb.js";
126
- import "./systemd-linger-BQQl5RXN.js";
124
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-pddgyV7i.js";
125
+ import "./doctor-config-flow-Uv41seME.js";
126
+ import "./systemd-linger-CWi5l8Nt.js";
127
127
  import "./health-format-CUEM0lJl.js";
128
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-DvrG_zWV.js";
129
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B6OPl_GZ.js";
128
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CX0v66wx.js";
129
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-mev5PRjN.js";
130
130
  import path from "node:path";
131
131
  import os from "node:os";
132
- import fs from "node:fs/promises";
132
+ import fsPromises from "node:fs/promises";
133
133
  import { spawn, spawnSync } from "node:child_process";
134
134
  import { confirm, isCancel, spinner } from "@clack/prompts";
135
135
 
@@ -172,7 +172,7 @@ async function resolveTargetVersion(tag, timeoutMs) {
172
172
  }
173
173
  async function isGitCheckout(root) {
174
174
  try {
175
- await fs.stat(path.join(root, ".git"));
175
+ await fsPromises.stat(path.join(root, ".git"));
176
176
  return true;
177
177
  } catch {
178
178
  return false;
@@ -184,7 +184,7 @@ async function isCorePackage(root) {
184
184
  }
185
185
  async function isEmptyDir(targetPath) {
186
186
  try {
187
- return (await fs.readdir(targetPath)).length === 0;
187
+ return (await fsPromises.readdir(targetPath)).length === 0;
188
188
  } catch {
189
189
  return false;
190
190
  }
@@ -581,7 +581,7 @@ del "%~f0"
581
581
  `;
582
582
  } else return null;
583
583
  const scriptPath = path.join(tmpDir, filename);
584
- await fs.writeFile(scriptPath, scriptContent, { mode: 493 });
584
+ await fsPromises.writeFile(scriptPath, scriptContent, { mode: 493 });
585
585
  return scriptPath;
586
586
  } catch {
587
587
  return null;
@@ -1,12 +1,12 @@
1
1
  import { h as resolveUserPath } from "./utils-CTPsqyE_.js";
2
2
  import { o as loadPluginManifest, r as discoverSymiPlugins } from "./manifest-registry-D1MLZEjS.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-DF_LhGX6.js";
4
- import fs from "node:fs/promises";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-vdi1BESF.js";
4
+ import fsPromises 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 fs.readFile(`${dir}/package.json`, "utf-8");
9
+ const raw = await fsPromises.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 {
@@ -1,16 +1,16 @@
1
1
  import { f as pathExists } from "./utils-CTPsqyE_.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
3
- import { h as trimLogTail } from "./session-utils-BZnPW904.js";
4
- import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-DuDhl0co.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-CxBGAP1E.js";
3
+ import { h as trimLogTail } from "./session-utils-lXjJoBxe.js";
4
+ import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Dryy7mCE.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-CduiCxPo.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
8
- import fs from "node:fs/promises";
8
+ import fsPromises 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 fs.readFile(path.join(root, "package.json"), "utf-8");
13
+ const raw = await fsPromises.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 fs.readFile(path.join(root, "package.json"), "utf-8");
22
+ const raw = await fsPromises.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 fs.realpath(targetPath);
42
+ return await fsPromises.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 fs.readdir(root);
143
+ entries = await fsPromises.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 fs.lstat(target)).isDirectory()) continue;
152
- await fs.rm(target, {
151
+ if (!(await fsPromises.lstat(target)).isDirectory()) continue;
152
+ await fsPromises.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 fs.readFile(pkgPath, "utf-8");
264
+ const raw = await fsPromises.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 fs.mkdtemp(path.join(os.tmpdir(), "symi-update-preflight-"));
546
+ const preflightRoot = await fsPromises.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 fs.rm(preflightRoot, {
560
+ await fsPromises.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 fs.rm(preflightRoot, {
624
+ await fsPromises.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 fs.stat(doctorEntry).then(() => true).catch(() => false)) {
772
+ if (!await fsPromises.stat(doctorEntry).then(() => true).catch(() => false)) {
773
773
  steps.push({
774
774
  name: "symi doctor entry",
775
775
  command: `verify ${doctorEntry}`,