@symerian/symi 3.4.27 → 3.4.29

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 (215) hide show
  1. package/dist/{agent-DOOj3Gzb.js → agent-CQlyTNu-.js} +1 -1
  2. package/dist/{agent-CiqPWDUd.js → agent-N_J2cDO6.js} +18 -18
  3. package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
  4. package/dist/{agents-BBQfFoen.js → agents-1xmRO246.js} +2 -2
  5. package/dist/{agents.config-Dm3oLpYK.js → agents.config-BJ9RIQlb.js} +1 -1
  6. package/dist/{audit-BSX7fMfc.js → audit-DCwHws4M.js} +20 -20
  7. package/dist/{auth-choice-rhBmet5i.js → auth-choice-DwXdS4c2.js} +11 -11
  8. package/dist/{auth-choice-BYbTjWcs.js → auth-choice-Ryx7oj6G.js} +1 -1
  9. package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
  10. package/dist/{auth-token-CAV1oLQG.js → auth-token-DgRRSbEX.js} +3 -3
  11. package/dist/{banner-C1qG5Rm9.js → banner-CxMQaUgh.js} +1 -1
  12. package/dist/{browser-cli-De8jg4-F.js → browser-cli-C3hfJNZy.js} +9 -9
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +2 -2
  15. package/dist/bundled/session-memory/handler.js +2 -2
  16. package/dist/{call-CW8U1BPq.js → call-BouPakqe.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-CJD7jwYg.js → channel-options-WR29vfWK.js} +1 -1
  19. package/dist/{channel-options-BsXUgCMq.js → channel-options-n9C_ovb1.js} +1 -1
  20. package/dist/{channels-cli-Dxn5n9e4.js → channels-cli-Cs-Uq67O.js} +7 -7
  21. package/dist/{channels-cli-Bao4VNbH.js → channels-cli-DbFGI3vF.js} +57 -57
  22. package/dist/{chrome-pFBxO63W.js → chrome-rzK8edU7.js} +2 -2
  23. package/dist/{cli-WP38F9C5.js → cli-7ceDvtPc.js} +45 -45
  24. package/dist/{cli-CrhLSz3t.js → cli-D55pCJ8Q.js} +4 -4
  25. package/dist/{client-T5P9umyG.js → client-BzUAFrla.js} +1 -1
  26. package/dist/{command-registry-DoXcG7FZ.js → command-registry-DAy62yhH.js} +10 -10
  27. package/dist/{commands-registry-BjcGLk4v.js → commands-registry-VfAQOVZO.js} +1 -1
  28. package/dist/{completion-cli-C0SXi7ya.js → completion-cli-Bc1jojml.js} +12 -12
  29. package/dist/{completion-cli-DaWi3_ux.js → completion-cli-Bh-Y2NVp.js} +2 -2
  30. package/dist/{config-D-PYSlE8.js → config-D7SS4vdk.js} +2 -2
  31. package/dist/{config-cli-DXKm0pS5.js → config-cli-BxRcn2oD.js} +1 -1
  32. package/dist/{config-cli-DS67KtKf.js → config-cli-DupKETmw.js} +4 -4
  33. package/dist/{config-guard-xLTTFANi.js → config-guard-BGAQzX2K.js} +6 -6
  34. package/dist/{config-validation-C4wGq3rz.js → config-validation-COcIIMNe.js} +1 -1
  35. package/dist/{configure-B99YJJb0.js → configure-0XYm59w7.js} +14 -14
  36. package/dist/{configure-CzO4_jJJ.js → configure-BilM_Fgn.js} +2 -2
  37. package/dist/{consolidate-BB4BOQIN.js → consolidate-DI20-Wtn.js} +6 -6
  38. package/dist/{control-service-y53w3Jzy.js → control-service-Ry7Le68N.js} +4 -4
  39. package/dist/{control-ui-assets-Dryy7mCE.js → control-ui-assets-DuDhl0co.js} +1 -1
  40. package/dist/{cron-cli-BMblAFRK.js → cron-cli-DHFgjr_X.js} +7 -7
  41. package/dist/{daemon-cli-BJGNf5qV.js → daemon-cli-fC2R9YZd.js} +11 -11
  42. package/dist/{daemon-runtime-u4p9jsEF.js → daemon-runtime-tZgIbDPz.js} +10 -10
  43. package/dist/{deliver-C79-Umbk.js → deliver-DB4v0Tyl.js} +2 -2
  44. package/dist/{deps-UA1UBhl7.js → deps-BlmO-MfQ.js} +1 -1
  45. package/dist/{devices-cli-wsTs-nti.js → devices-cli-DtkKN4l0.js} +6 -6
  46. package/dist/{diagnostics-oW0LBW-t.js → diagnostics-tVJR9V0_.js} +5 -5
  47. package/dist/{directory-cli-D8As6t8Z.js → directory-cli-Bfy_ejW2.js} +3 -3
  48. package/dist/{dm-policy-shared-DRJrFKqJ.js → dm-policy-shared-CBlUyDSX.js} +1 -1
  49. package/dist/{dns-cli-BKOTBn3n.js → dns-cli-DzKaV6NZ.js} +3 -3
  50. package/dist/{docs-cli-D5j7Nmz2.js → docs-cli-a90_8wuN.js} +1 -1
  51. package/dist/{doctor-completion-mev5PRjN.js → doctor-completion-B6OPl_GZ.js} +2 -2
  52. package/dist/{doctor-completion-B1YCzbvi.js → doctor-completion-BZJWX3Dr.js} +1 -1
  53. package/dist/{doctor-config-flow-Uv41seME.js → doctor-config-flow-30ZEvATb.js} +9 -9
  54. package/dist/entry.js +1 -1
  55. package/dist/{exec-approvals-cli-B4ry9s5r.js → exec-approvals-cli-C3gZAwV8.js} +13 -13
  56. package/dist/extensionAPI.js +2 -2
  57. package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
  58. package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
  59. package/dist/{gateway-cli-B3JVj_dv.js → gateway-cli-CyhLb-zS.js} +98 -98
  60. package/dist/{gateway-cli-Chnp6icp.js → gateway-cli-DQhYa6AL.js} +10 -10
  61. package/dist/{gateway-rpc-CLzM6ugo.js → gateway-rpc-DNq7EMhm.js} +1 -1
  62. package/dist/{glass-ui-ws-5o8dvEZO.js → glass-ui-ws-CLDbMDPk.js} +8 -8
  63. package/dist/{glass-ui-ws--GjxFRyX.js → glass-ui-ws-SJVljtUx.js} +67 -67
  64. package/dist/{health-D2th0Ip6.js → health-DZ0aipDZ.js} +4 -4
  65. package/dist/{hooks-cli-B4Nvp9AV.js → hooks-cli-BMRj13QU.js} +59 -59
  66. package/dist/{hooks-cli-B_sZth4r.js → hooks-cli-BVtdP5x7.js} +5 -5
  67. package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
  68. package/dist/index.js +52 -52
  69. package/dist/{inspect-U3g9owQ8.js → inspect-CXsOujVt.js} +4 -4
  70. package/dist/{install-safe-path-BwMMOh9z.js → install-safe-path-D5gi-nfu.js} +11 -11
  71. package/dist/{installs-vdi1BESF.js → installs-DF_LhGX6.js} +10 -10
  72. package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
  73. package/dist/{lifecycle-core-BfmNlC-k.js → lifecycle-core-Bvdl2ShM.js} +5 -5
  74. package/dist/llm-slug-generator.js +2 -2
  75. package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
  76. package/dist/{logs-cli-COZzdFu6.js → logs-cli-mdSEYBKS.js} +7 -7
  77. package/dist/{manager-DyYRwHZt.js → manager-BLg6zbeA.js} +15 -15
  78. package/dist/{manager-BfbQb9qM.js → manager-BhIaahpm.js} +1 -1
  79. package/dist/{manager-Bryhc0Ip.js → manager-BsQIpjy1.js} +1 -1
  80. package/dist/{manager-C5FGNRjL.js → manager-CtDuNn2T.js} +1 -1
  81. package/dist/{memory-DgDnTEcB.js → memory-B4DsKRSc.js} +5 -5
  82. package/dist/{memory-Cypj1lBQ.js → memory-BENbCb4f.js} +2 -2
  83. package/dist/{memory-cli-DB7UIev4.js → memory-cli-BIjwqjBx.js} +2 -2
  84. package/dist/{memory-cli-CfJkD7mO.js → memory-cli-DotHyA76.js} +12 -12
  85. package/dist/{model-DbILYCfo.js → model-DsMHOvMn.js} +1 -1
  86. package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
  87. package/dist/{model-catalog-CeqDEWGz.js → model-catalog-DQTmHZK7.js} +3 -3
  88. package/dist/{model-picker-C_f6MALt.js → model-picker-D4TY_tPx.js} +5 -5
  89. package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
  90. package/dist/{models-Bpqeds64.js → models-CmToZKBp.js} +2 -2
  91. package/dist/{models-cli-BUWfj5iJ.js → models-cli-CZgkOUZB.js} +55 -55
  92. package/dist/{models-cli-Bc47WFhD.js → models-cli-Di7iKhD4.js} +6 -6
  93. package/dist/{models-config-Dp5-tBqs.js → models-config-CRnTzdFs.js} +8 -8
  94. package/dist/{node-cli-BdjmGI32.js → node-cli-BXv9SEDG.js} +27 -27
  95. package/dist/{node-service-DphkTjBV.js → node-service-CrDVFWQl.js} +1 -1
  96. package/dist/{nodes-cli-BChJzcKY.js → nodes-cli-Cim3ANNU.js} +10 -10
  97. package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
  98. package/dist/{npm-registry-spec-CqVgiBCf.js → npm-registry-spec-YMWTMnm_.js} +9 -9
  99. package/dist/{onboard-BbfERyKU.js → onboard-BXI02b3e.js} +1 -1
  100. package/dist/{onboard-C0nMMiiS.js → onboard-CuLvp4Ds.js} +15 -15
  101. package/dist/{onboard-channels-CMp9YXHC.js → onboard-channels-A6_QP7MR.js} +1 -1
  102. package/dist/{onboard-channels-CmsfVut5.js → onboard-channels-E5NIYGJz.js} +4 -4
  103. package/dist/{onboard-custom-BfHczxx0.js → onboard-custom-BrtjWDlX.js} +3 -3
  104. package/dist/{onboard-helpers-OB_xKQze.js → onboard-helpers---sZ9pdZ.js} +8 -8
  105. package/dist/{onboard-hooks-BA22KYCG.js → onboard-hooks-CtIRdncr.js} +1 -1
  106. package/dist/{onboard-remote-Dv2Uz8Ru.js → onboard-remote-BUB3VPBP.js} +1 -1
  107. package/dist/{onboard-skills-BzxofI4T.js → onboard-skills-Cs3BZ4VJ.js} +3 -3
  108. package/dist/{onboarding-vgZFhH5N.js → onboarding-BWMBA6cP.js} +12 -12
  109. package/dist/{onboarding-DoYMfCjS.js → onboarding-BeYl1Egj.js} +3 -3
  110. package/dist/{onboarding.finalize-Dj0xG8pk.js → onboarding.finalize-Bk-XW8b3.js} +4 -4
  111. package/dist/{onboarding.finalize-BYHDzz2i.js → onboarding.finalize-CH8dBgA2.js} +31 -31
  112. package/dist/{onboarding.gateway-config-CDRLfIZM.js → onboarding.gateway-config-arRNxrI9.js} +8 -8
  113. package/dist/{openai-model-default-Dl21Ivjc.js → openai-model-default-XudD4Xik.js} +2 -2
  114. package/dist/{pairing-cli-C2_Zobhz.js → pairing-cli-NDavTm1_.js} +5 -5
  115. package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
  116. package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
  117. package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
  118. package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
  119. package/dist/{pi-embedded-C7mJzGIf.js → pi-embedded-BL3_b-H_.js} +6 -52
  120. package/dist/{pi-embedded-helpers-y3vJmW6T.js → pi-embedded-helpers-B5cWV7_y.js} +6 -6
  121. package/dist/{pi-tools.policy-ji-L-Mpv.js → pi-tools.policy-BdGVEMZn.js} +3 -3
  122. package/dist/{plugin-auto-enable-Ctbn2w4Q.js → plugin-auto-enable-B_lNp6yM.js} +1 -1
  123. package/dist/{plugin-registry-pKaJ4ltN.js → plugin-registry-CAdIrLmG.js} +1 -1
  124. package/dist/{plugin-registry-D2ZbwBU_.js → plugin-registry-DovNSdK0.js} +3 -3
  125. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -1
  126. package/dist/plugin-sdk/agents/tools/common.d.ts +0 -30
  127. package/dist/{plugins-cli-uo8lcB7v.js → plugins-cli-JzKO-vmR.js} +5 -5
  128. package/dist/{plugins-cli-CoHiV4BX.js → plugins-cli-ZG4PxNTC.js} +54 -54
  129. package/dist/{ports-ukrEAkOP.js → ports-C3ZSkRGq.js} +1 -1
  130. package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
  131. package/dist/{program-rzYjZKRz.js → program-BbfU4idg.js} +10 -10
  132. package/dist/{program-context-B1ZbQmLL.js → program-context-ByiEP1Lk.js} +38 -38
  133. package/dist/{prompt-select-styled-F6P-rvFI.js → prompt-select-styled-CWH2Mcrb.js} +4 -4
  134. package/dist/{prompt-select-styled-CX0v66wx.js → prompt-select-styled-DvrG_zWV.js} +38 -38
  135. package/dist/{provider-auth-helpers-_jn9PngO.js → provider-auth-helpers-2x7YxT5F.js} +6 -6
  136. package/dist/{provider-auth-helpers-Ck98bkHV.js → provider-auth-helpers-CMQexdSl.js} +1 -1
  137. package/dist/{push-apns-BtMtpzEm.js → push-apns-CtWwPxRj.js} +1 -1
  138. package/dist/{push-apns-CmeoBcIQ.js → push-apns-eGdGU3r7.js} +4 -4
  139. package/dist/{pw-ai-CQJsGI1b.js → pw-ai-tgngV3iZ.js} +7 -7
  140. package/dist/{qmd-manager-DawTY2mB.js → qmd-manager-qV_04VKG.js} +19 -19
  141. package/dist/{qr-cli-DKowtQcM.js → qr-cli-Vo1XL6B2.js} +3 -3
  142. package/dist/{register.agent-_UqSBmt5.js → register.agent-DZE9NBNx.js} +9 -9
  143. package/dist/{register.agent-0hWBZXD7.js → register.agent-Dwkya1rv.js} +67 -67
  144. package/dist/{register.configure-KrTtvKSp.js → register.configure-CD8WkXo8.js} +8 -8
  145. package/dist/{register.configure-CgQ6sqtQ.js → register.configure-DCpbCHR0.js} +70 -70
  146. package/dist/{register.maintenance-DjZeknO6.js → register.maintenance-Bqjj77CZ.js} +67 -67
  147. package/dist/{register.maintenance-DDSfzFoo.js → register.maintenance-CxVeo_7j.js} +9 -9
  148. package/dist/{register.message-DSwwDcGi.js → register.message-tcJN7-E3.js} +5 -5
  149. package/dist/{register.message-DTZJ5OiL.js → register.message-uhAmNxoO.js} +47 -47
  150. package/dist/{register.onboard-B8k5phG7.js → register.onboard-F6d_Wrv1.js} +25 -25
  151. package/dist/{register.onboard-BToIZTIS.js → register.onboard-Rm5t0yxX.js} +2 -2
  152. package/dist/{register.setup-BdUewOo1.js → register.setup-C2datfZK.js} +2 -2
  153. package/dist/{register.setup-1fexz2oW.js → register.setup-CcHxpsUT.js} +28 -28
  154. package/dist/{register.status-health-sessions-eBaeXIvo.js → register.status-health-sessions-DFVjS9Hy.js} +3 -3
  155. package/dist/{register.status-health-sessions-0RyA2cXf.js → register.status-health-sessions-DIUDRMqm.js} +41 -41
  156. package/dist/{register.subclis-tX3BslaT.js → register.subclis-D9uGnVGm.js} +9 -9
  157. package/dist/{replies-D3cffD5N.js → replies-DzsYQ8Md.js} +1 -1
  158. package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
  159. package/dist/{resolve-route-B0i_o4Fo.js → resolve-route-Zww0Y-HJ.js} +1 -1
  160. package/dist/{routes-zpAUwtCG.js → routes-C-rIjd8Z.js} +10 -10
  161. package/dist/{rpc-DhsDKVo-.js → rpc-BkFkeuJ6.js} +1 -1
  162. package/dist/{run-main-DIl_Kl0B.js → run-main-HkbyvIDy.js} +17 -17
  163. package/dist/{sandbox-DQCaejcD.js → sandbox-Dx8IMw-E.js} +18 -18
  164. package/dist/{sandbox-cli-CbvyZs1z.js → sandbox-cli-BFkLKdlk.js} +13 -13
  165. package/dist/{security-cli-CbJxNYZx.js → security-cli-BEpQ_rO1.js} +29 -29
  166. package/dist/{send-QscYkkNh.js → send-Cxu1tl56.js} +7 -7
  167. package/dist/{server-context-CXVq7gZ7.js → server-context--mmXXEkE.js} +5 -5
  168. package/dist/{server-methods-CpFBGxWI.js → server-methods-DJ8eiTu1.js} +6 -6
  169. package/dist/{server-methods-DPxjPGr0.js → server-methods-RtjWUhkv.js} +58 -58
  170. package/dist/{server-node-events-2SUW10k3.js → server-node-events-CT8fFtBQ.js} +6 -6
  171. package/dist/{server-node-events-B_BPbi7z.js → server-node-events-DQ1iCUgY.js} +48 -48
  172. package/dist/{service-Cm4-5AH9.js → service-CyEDtYLq.js} +15 -15
  173. package/dist/{session-dirs-BypCYFN3.js → session-dirs-CXErIzZq.js} +2 -2
  174. package/dist/{session-utils-lXjJoBxe.js → session-utils-BZnPW904.js} +14 -14
  175. package/dist/{sessions-aSo5jsmg.js → sessions-optZRB57.js} +10 -10
  176. package/dist/{shared-DDX_4ypC.js → shared-Ctok0Bcs.js} +1 -1
  177. package/dist/{shared-BI-gOZsD.js → shared-DJFwvlUi.js} +3 -3
  178. package/dist/{skill-commands-C9WuAfb2.js → skill-commands-yPirQFOb.js} +4 -4
  179. package/dist/{skill-scanner-CFqMkfZW.js → skill-scanner-BBwesm0w.js} +5 -5
  180. package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
  181. package/dist/{skills-cli-BgyaAQoj.js → skills-cli-gC5ETdly.js} +7 -7
  182. package/dist/{skills-install-MGsx6q5Z.js → skills-install-CLN_Ks5r.js} +3 -3
  183. package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
  184. package/dist/{skills-status-CbSdFlvm.js → skills-status-iltfI_bO.js} +1 -1
  185. package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
  186. package/dist/{status-DbNNmkNB.js → status-CoqGtHXq.js} +1 -1
  187. package/dist/{status-BVYDUlnp.js → status-Cpz64Vy_.js} +1 -1
  188. package/dist/{status-C-r9JpJf.js → status-CuMBp54T.js} +23 -23
  189. package/dist/{status-DIJvpgEm.js → status-EAjzyREy.js} +3 -3
  190. package/dist/{status.update-EyslEZkn.js → status.update-F4CbQCxF.js} +3 -3
  191. package/dist/{subagent-registry-DWemyjbN.js → subagent-registry-Dkif1XYO.js} +6 -52
  192. package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
  193. package/dist/{synthesis-BdTiornP.js → synthesis-B6tq6-9G.js} +2 -2
  194. package/dist/{synthesis-C7RlvHEs.js → synthesis-CKKZrrYd.js} +45 -45
  195. package/dist/{synthesis-BxYzOZUA.js → synthesis-CpsURf9J.js} +4 -4
  196. package/dist/{synthesis-DQ7Y6OE0.js → synthesis-mgcCKSzl.js} +2 -2
  197. package/dist/{system-cli-DgOvK_kU.js → system-cli-DMKzffe3.js} +7 -7
  198. package/dist/{systemd-B2nTr3Y2.js → systemd-DRpQb_L1.js} +5 -5
  199. package/dist/{systemd-hints-DtOWJT_2.js → systemd-hints-DR4u43WA.js} +6 -6
  200. package/dist/{systemd-linger-CWi5l8Nt.js → systemd-linger-BQQl5RXN.js} +1 -1
  201. package/dist/{tui-D7ms_iQ4.js → tui-CqrM_Fj2.js} +7 -7
  202. package/dist/{tui-cli-DNvAqIYN.js → tui-cli-BsqRmqTX.js} +19 -19
  203. package/dist/{unified-runner-DPWNhQQA.js → unified-runner-DAWxqcS9.js} +6 -52
  204. package/dist/{unified-runner-BIUJm_Iv.js → unified-runner-DZAjU6aB.js} +104 -150
  205. package/dist/{update-pddgyV7i.js → update-CWEjB8uS.js} +3 -3
  206. package/dist/{update-check-CduiCxPo.js → update-check-CxBGAP1E.js} +5 -5
  207. package/dist/{update-cli-BM-A3cIZ.js → update-cli-Bgk30eoA.js} +9 -9
  208. package/dist/{update-cli-GKXF83cS.js → update-cli-t7W6vcQY.js} +77 -77
  209. package/dist/{update-runner-BMYqz1dl.js → update-runner-C4Uy75eP.js} +15 -15
  210. package/dist/{webhooks-cli-BPPmnDCj.js → webhooks-cli-Dp-pp0Sf.js} +4 -4
  211. package/dist/{with-timeout-D1qzvPE0.js → with-timeout-B5zAsivw.js} +1 -1
  212. package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
  213. package/dist/{wsl-Sed675xh.js → wsl-DMA0sTvh.js} +2 -2
  214. package/package.json +1 -1
  215. package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +0 -10
@@ -1,7 +1,7 @@
1
1
  import { n as runExec } from "./exec-DuYbft0z.js";
2
2
  import path from "node:path";
3
3
  import os from "node:os";
4
- import fsPromises from "node:fs/promises";
4
+ import fs from "node:fs/promises";
5
5
  import { fileTypeFromBuffer } from "file-type";
6
6
 
7
7
  //#region src/media/constants.ts
@@ -230,11 +230,11 @@ function readJpegExifOrientation(buffer) {
230
230
  return null;
231
231
  }
232
232
  async function withTempDir(fn) {
233
- const dir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-img-"));
233
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "symi-img-"));
234
234
  try {
235
235
  return await fn(dir);
236
236
  } finally {
237
- await fsPromises.rm(dir, {
237
+ await fs.rm(dir, {
238
238
  recursive: true,
239
239
  force: true
240
240
  }).catch(() => {});
@@ -243,7 +243,7 @@ async function withTempDir(fn) {
243
243
  async function sipsMetadataFromBuffer(buffer) {
244
244
  return await withTempDir(async (dir) => {
245
245
  const input = path.join(dir, "in.img");
246
- await fsPromises.writeFile(input, buffer);
246
+ await fs.writeFile(input, buffer);
247
247
  const { stdout } = await runExec("/usr/bin/sips", [
248
248
  "-g",
249
249
  "pixelWidth",
@@ -271,7 +271,7 @@ async function sipsResizeToJpeg(params) {
271
271
  return await withTempDir(async (dir) => {
272
272
  const input = path.join(dir, "in.img");
273
273
  const output = path.join(dir, "out.jpg");
274
- await fsPromises.writeFile(input, params.buffer);
274
+ await fs.writeFile(input, params.buffer);
275
275
  await runExec("/usr/bin/sips", [
276
276
  "-Z",
277
277
  String(Math.max(1, Math.round(params.maxSide))),
@@ -288,14 +288,14 @@ async function sipsResizeToJpeg(params) {
288
288
  timeoutMs: 2e4,
289
289
  maxBuffer: 1024 * 1024
290
290
  });
291
- return await fsPromises.readFile(output);
291
+ return await fs.readFile(output);
292
292
  });
293
293
  }
294
294
  async function sipsConvertToJpeg(buffer) {
295
295
  return await withTempDir(async (dir) => {
296
296
  const input = path.join(dir, "in.heic");
297
297
  const output = path.join(dir, "out.jpg");
298
- await fsPromises.writeFile(input, buffer);
298
+ await fs.writeFile(input, buffer);
299
299
  await runExec("/usr/bin/sips", [
300
300
  "-s",
301
301
  "format",
@@ -307,7 +307,7 @@ async function sipsConvertToJpeg(buffer) {
307
307
  timeoutMs: 2e4,
308
308
  maxBuffer: 1024 * 1024
309
309
  });
310
- return await fsPromises.readFile(output);
310
+ return await fs.readFile(output);
311
311
  });
312
312
  }
313
313
  async function getImageMetadata(buffer) {
@@ -358,7 +358,7 @@ async function sipsApplyOrientation(buffer, orientation) {
358
358
  return await withTempDir(async (dir) => {
359
359
  const input = path.join(dir, "in.jpg");
360
360
  const output = path.join(dir, "out.jpg");
361
- await fsPromises.writeFile(input, buffer);
361
+ await fs.writeFile(input, buffer);
362
362
  await runExec("/usr/bin/sips", [
363
363
  ...ops,
364
364
  input,
@@ -368,7 +368,7 @@ async function sipsApplyOrientation(buffer, orientation) {
368
368
  timeoutMs: 2e4,
369
369
  maxBuffer: 1024 * 1024
370
370
  });
371
- return await fsPromises.readFile(output);
371
+ return await fs.readFile(output);
372
372
  });
373
373
  }
374
374
  async function resizeToJpeg(params) {
package/dist/index.js CHANGED
@@ -1,102 +1,102 @@
1
1
  #!/usr/bin/env node
2
- import { Mt as prepareAgentRun, Tn as composeTurnMiddleware, _ as withContextUsageWarning, b as buildAgentTurnParams, jt as applyTemplate, on as installUnhandledRejectionHandler, t as runAgentTurn, ut as resolveCommitHash, v as withContextOverflowRecovery, x as prepareReplyTurn } from "./unified-runner-BIUJm_Iv.js";
2
+ import { Mt as prepareAgentRun, Tn as composeTurnMiddleware, _ as withContextUsageWarning, b as buildAgentTurnParams, jt as applyTemplate, on as installUnhandledRejectionHandler, t as runAgentTurn, ut as resolveCommitHash, v as withContextOverflowRecovery, x as prepareReplyTurn } from "./unified-runner-DZAjU6aB.js";
3
3
  import { A as isRich, E as setVerbose, j as theme } from "./registry-Sbac4a4z.js";
4
4
  import "./paths-By0XjHBk.js";
5
5
  import { c as escapeRegExp, d as normalizeE164 } from "./utils-CTPsqyE_.js";
6
6
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-CHbO_DkH.js";
7
- import "./auth-profiles-D5nYBj_Z.js";
7
+ import "./auth-profiles-Ce7R_25e.js";
8
8
  import { n as resolveCliName, t as replaceCliName } from "./cli-name-CzMV-gJF.js";
9
9
  import { n as runExec, t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
10
- import "./agent-scope-Bnsyyeci.js";
11
- import "./model-selection-CCTzD29o.js";
12
- import "./file-lock-2AecMjCa.js";
10
+ import "./agent-scope-DOrZjOnW.js";
11
+ import "./model-selection-7wdmO-Iw.js";
12
+ import "./file-lock-BVUYnlQv.js";
13
13
  import "./agent-paths-BbZSGrUA.js";
14
- import "./pi-embedded-helpers-y3vJmW6T.js";
15
- import { F as loadDotEnv, N as VERSION, i as loadConfig } from "./config-D-PYSlE8.js";
14
+ import "./pi-embedded-helpers-B5cWV7_y.js";
15
+ import { F as loadDotEnv, N as VERSION, i as loadConfig } from "./config-D7SS4vdk.js";
16
16
  import "./boolean-CbZoNRMn.js";
17
17
  import { r as normalizeEnv, t as isTruthyEnvValue } from "./env-BRnPI9sO.js";
18
18
  import "./shell-env-Dc3iU7HK.js";
19
19
  import "./manifest-registry-D1MLZEjS.js";
20
- import "./sandbox-DQCaejcD.js";
21
- import "./chrome-pFBxO63W.js";
20
+ import "./sandbox-Dx8IMw-E.js";
21
+ import "./chrome-rzK8edU7.js";
22
22
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-DpKBMIvx.js";
23
23
  import "./auth-Bkx-QuRN.js";
24
- import "./server-context-CXVq7gZ7.js";
24
+ import "./server-context--mmXXEkE.js";
25
25
  import "./frontmatter-B_jqcova.js";
26
- import "./skills-CYcBtLGH.js";
27
- import "./routes-zpAUwtCG.js";
26
+ import "./skills-BwDmcZdt.js";
27
+ import "./routes-C-rIjd8Z.js";
28
28
  import "./redact-B3O-RBO1.js";
29
29
  import { r as formatUncaughtError } from "./errors-bI7Tdx75.js";
30
- import "./fs-safe-B0Is-oLk.js";
31
- import "./paths-BWqg8NZT.js";
30
+ import "./fs-safe-BdejYjW8.js";
31
+ import "./paths-DObzwe08.js";
32
32
  import "./ssrf-DOZRI5XH.js";
33
- import "./image-ops-BzCBIakN.js";
34
- import { i as handlePortError, n as describePortOwner, r as ensurePortAvailable, t as PortInUseError } from "./ports-CB_Iu83U.js";
33
+ import "./image-ops-L70xVnpG.js";
34
+ import { i as handlePortError, n as describePortOwner, r as ensurePortAvailable, t as PortInUseError } from "./ports-gxLM5ahL.js";
35
35
  import "./trash-_YhavPQI.js";
36
- import { A as deriveSessionKey, j as resolveSessionKey, l as saveSessionStore, o as loadSessionStore } from "./sessions-aSo5jsmg.js";
36
+ import { A as deriveSessionKey, j as resolveSessionKey, l as saveSessionStore, o as loadSessionStore } from "./sessions-optZRB57.js";
37
37
  import "./dock-hF45sewN.js";
38
38
  import "./message-channel-DgjXWzf-.js";
39
39
  import "./plugins-CF5skkHh.js";
40
- import "./send-QscYkkNh.js";
40
+ import "./send-Cxu1tl56.js";
41
41
  import { c as resolveStorePath } from "./paths-BtvQ7JvU.js";
42
42
  import "./thinking-COroyVA5.js";
43
43
  import "./tokens-0yh2UnJq.js";
44
- import "./deliver-C79-Umbk.js";
44
+ import "./deliver-DB4v0Tyl.js";
45
45
  import "./diagnostic-DbT9t0Sh.js";
46
46
  import "./diagnostic-session-state-DnkpMfCl.js";
47
- import "./model-auth-_C07_3Yr.js";
47
+ import "./model-auth-1EAQvYRv.js";
48
48
  import "./github-copilot-token-D-FdDfee.js";
49
- import "./models-config-Dp5-tBqs.js";
50
- import "./pi-auth-json-D-vdh-nY.js";
49
+ import "./models-config-CRnTzdFs.js";
50
+ import "./pi-auth-json-Db8XJVGL.js";
51
51
  import "./session-cost-usage-D6Ocwmq1.js";
52
- import "./session-utils-lXjJoBxe.js";
53
- import "./with-timeout-D1qzvPE0.js";
54
- import "./reply-prefix-CtZtkTJK.js";
55
- import "./memory-DgDnTEcB.js";
56
- import "./manager-DyYRwHZt.js";
57
- import "./sqlite-BpogPlQW.js";
52
+ import "./session-utils-BZnPW904.js";
53
+ import "./with-timeout-B5zAsivw.js";
54
+ import "./reply-prefix-BFNeXT65.js";
55
+ import "./memory-B4DsKRSc.js";
56
+ import "./manager-BLg6zbeA.js";
57
+ import "./sqlite-Cod7C5ba.js";
58
58
  import "./chunk-BxfKjCUx.js";
59
59
  import "./markdown-tables-CS1Tvb3z.js";
60
60
  import "./fetch-guard-JHxT9355.js";
61
- import "./local-roots-2Jb79HZ8.js";
61
+ import "./local-roots-CgDCgCuM.js";
62
62
  import "./commands-DUzLGgEZ.js";
63
- import "./commands-registry-BjcGLk4v.js";
64
- import "./client-T5P9umyG.js";
65
- import "./call-CW8U1BPq.js";
66
- import "./pairing-token-B703A1U3.js";
63
+ import "./commands-registry-VfAQOVZO.js";
64
+ import "./client-BzUAFrla.js";
65
+ import "./call-BouPakqe.js";
66
+ import "./pairing-token-Dcy37-4s.js";
67
67
  import "./tool-display-DFOL6UQ9.js";
68
- import "./skills-remote-BcRQTDsZ.js";
69
- import "./workspace-dirs-DCICLTHx.js";
68
+ import "./skills-remote-bz71Bstn.js";
69
+ import "./workspace-dirs-jKFQf7of.js";
70
70
  import "./pi-model-discovery-ClQLvlCW.js";
71
- import "./model-catalog-CeqDEWGz.js";
72
- import "./skill-commands-C9WuAfb2.js";
73
- import "./pairing-store-Be-ZQK87.js";
71
+ import "./model-catalog-DQTmHZK7.js";
72
+ import "./skill-commands-yPirQFOb.js";
73
+ import "./pairing-store-BNhJOnWn.js";
74
74
  import "./exec-approvals-DioSaIeH.js";
75
- import "./nodes-screen-Cp5QP3ET.js";
76
- import "./control-service-y53w3Jzy.js";
75
+ import "./nodes-screen-De9ma6e1.js";
76
+ import "./control-service-Ry7Le68N.js";
77
77
  import "./stagger-DUVGiPYV.js";
78
78
  import "./channel-selection-DF4bza2Q.js";
79
79
  import "./delivery-queue-RUd4NhRw.js";
80
80
  import "./bindings-CLS_owm_.js";
81
- import "./resolve-route-B0i_o4Fo.js";
81
+ import "./resolve-route-Zww0Y-HJ.js";
82
82
  import { t as formatDocsLink } from "./links-TQwptN6q.js";
83
83
  import "./cli-utils-tNdOjVQI.js";
84
84
  import "./help-format-CPT6NY3h.js";
85
85
  import "./progress-HNhsbm0E.js";
86
- import "./memory-cli-CfJkD7mO.js";
86
+ import "./memory-cli-DotHyA76.js";
87
87
  import "./logging-Czh4x_NQ.js";
88
- import "./replies-D3cffD5N.js";
89
- import "./pi-tools.policy-ji-L-Mpv.js";
90
- import "./model-DbILYCfo.js";
91
- import { t as createDefaultDeps } from "./deps-UA1UBhl7.js";
88
+ import "./replies-DzsYQ8Md.js";
89
+ import "./pi-tools.policy-BdGVEMZn.js";
90
+ import "./model-DsMHOvMn.js";
91
+ import { t as createDefaultDeps } from "./deps-BlmO-MfQ.js";
92
92
  import { t as ensureSymiCliOnPath } from "./path-env-DV7jtyFi.js";
93
93
  import { t as assertSupportedRuntime } from "./runtime-guard-DfRLODeV.js";
94
- import "./ports-ukrEAkOP.js";
94
+ import "./ports-C3ZSkRGq.js";
95
95
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-BH07Qj4L.js";
96
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-B1ZbQmLL.js";
96
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-ByiEP1Lk.js";
97
97
  import "./catalog-DsC3JTw1.js";
98
- import "./plugin-registry-D2ZbwBU_.js";
99
- import { n as resolveCliChannelOptions } from "./channel-options-BsXUgCMq.js";
98
+ import "./plugin-registry-DovNSdK0.js";
99
+ import { n as resolveCliChannelOptions } from "./channel-options-n9C_ovb1.js";
100
100
  import process$1 from "node:process";
101
101
  import { fileURLToPath } from "node:url";
102
102
  import path from "node:path";
@@ -556,13 +556,13 @@ function registerPreActionHooks(program, programVersion) {
556
556
  setVerbose(verbose);
557
557
  if (!verbose) process.env.NODE_NO_WARNINGS ??= "1";
558
558
  if (commandPath[0] === "doctor" || commandPath[0] === "completion") return;
559
- const { ensureConfigReady } = await import("./config-guard-xLTTFANi.js");
559
+ const { ensureConfigReady } = await import("./config-guard-BGAQzX2K.js");
560
560
  await ensureConfigReady({
561
561
  runtime: defaultRuntime,
562
562
  commandPath
563
563
  });
564
564
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
565
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-D2ZbwBU_.js").then((n) => n.n);
565
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-DovNSdK0.js").then((n) => n.n);
566
566
  ensurePluginRegistryLoaded();
567
567
  }
568
568
  });
@@ -1,7 +1,7 @@
1
1
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, n as GATEWAY_SERVICE_KIND, r as GATEWAY_SERVICE_MARKER } from "./constants-ChnKXZKi.js";
2
- import { n as execSchtasks } from "./service-Cm4-5AH9.js";
2
+ import { n as execSchtasks } from "./service-CyEDtYLq.js";
3
3
  import path from "node:path";
4
- import fsPromises from "node:fs/promises";
4
+ import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/daemon/inspect.ts
7
7
  const EXTRA_MARKERS = [
@@ -76,14 +76,14 @@ function isLegacyLabel(label) {
76
76
  }
77
77
  async function readDirEntries(dir) {
78
78
  try {
79
- return await fsPromises.readdir(dir);
79
+ return await fs.readdir(dir);
80
80
  } catch {
81
81
  return [];
82
82
  }
83
83
  }
84
84
  async function readUtf8File(filePath) {
85
85
  try {
86
- return await fsPromises.readFile(filePath, "utf8");
86
+ return await fs.readFile(filePath, "utf8");
87
87
  } catch {
88
88
  return null;
89
89
  }
@@ -2,7 +2,7 @@ import { n as resolveSafeBaseDir } from "./path-safety-C0C4YlKw.js";
2
2
  import { createHash } from "node:crypto";
3
3
  import path from "node:path";
4
4
  import { createWriteStream } from "node:fs";
5
- import fsPromises from "node:fs/promises";
5
+ import fs$1 from "node:fs/promises";
6
6
  import { pipeline } from "node:stream/promises";
7
7
  import { Readable, Transform } from "node:stream";
8
8
  import JSZip from "jszip";
@@ -69,9 +69,9 @@ function resolveArchiveKind(filePath) {
69
69
  async function resolvePackedRootDir(extractDir) {
70
70
  const direct = path.join(extractDir, "package");
71
71
  try {
72
- if ((await fsPromises.stat(direct)).isDirectory()) return direct;
72
+ if ((await fs$1.stat(direct)).isDirectory()) return direct;
73
73
  } catch {}
74
- const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
74
+ const dirs = (await fs$1.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
75
75
  if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
76
76
  const onlyDir = dirs[0];
77
77
  if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
@@ -144,8 +144,8 @@ async function readZipEntryStream(entry) {
144
144
  }
145
145
  async function extractZip(params) {
146
146
  const limits = resolveExtractLimits(params.limits);
147
- if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
148
- const buffer = await fsPromises.readFile(params.archivePath);
147
+ if ((await fs$1.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
148
+ const buffer = await fs$1.readFile(params.archivePath);
149
149
  const zip = await JSZip.loadAsync(buffer);
150
150
  const entries = Object.values(zip.files);
151
151
  const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
@@ -162,21 +162,21 @@ async function extractZip(params) {
162
162
  originalPath: entry.name
163
163
  });
164
164
  if (entry.dir) {
165
- await fsPromises.mkdir(outPath, { recursive: true });
165
+ await fs$1.mkdir(outPath, { recursive: true });
166
166
  continue;
167
167
  }
168
- await fsPromises.mkdir(path.dirname(outPath), { recursive: true });
168
+ await fs$1.mkdir(path.dirname(outPath), { recursive: true });
169
169
  budget.startEntry();
170
170
  const readable = await readZipEntryStream(entry);
171
171
  try {
172
172
  await pipeline(readable, createExtractBudgetTransform({ onChunkBytes: budget.addBytes }), createWriteStream(outPath));
173
173
  } catch (err) {
174
- await fsPromises.unlink(outPath).catch(() => void 0);
174
+ await fs$1.unlink(outPath).catch(() => void 0);
175
175
  throw err;
176
176
  }
177
177
  if (typeof entry.unixPermissions === "number") {
178
178
  const mode = entry.unixPermissions & 511;
179
- if (mode !== 0) await fsPromises.chmod(outPath, mode).catch(() => void 0);
179
+ if (mode !== 0) await fs$1.chmod(outPath, mode).catch(() => void 0);
180
180
  }
181
181
  }
182
182
  }
@@ -236,14 +236,14 @@ async function extractArchive(params) {
236
236
  }
237
237
  async function fileExists(filePath) {
238
238
  try {
239
- await fsPromises.stat(filePath);
239
+ await fs$1.stat(filePath);
240
240
  return true;
241
241
  } catch {
242
242
  return false;
243
243
  }
244
244
  }
245
245
  async function readJsonFile(filePath) {
246
- const raw = await fsPromises.readFile(filePath, "utf-8");
246
+ const raw = await fs$1.readFile(filePath, "utf-8");
247
247
  return JSON.parse(raw);
248
248
  }
249
249
 
@@ -1,10 +1,10 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-CTPsqyE_.js";
2
2
  import { i as isPathInside, n as MANIFEST_KEY, r as extensionUsesSkippedScannerPath } from "./legacy-names-BQ9vKISY.js";
3
- import { a as extractArchive, c as resolveArchiveKind, i as unscopedPackageName, l as resolvePackedRootDir, n as safeDirName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-BwMMOh9z.js";
4
- import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchive, r as resolveArchiveSourcePath, t as validateRegistryNpmSpec } from "./npm-registry-spec-CqVgiBCf.js";
5
- import { t as scanDirectoryWithSummary } from "./skill-scanner-CFqMkfZW.js";
3
+ import { a as extractArchive, c as resolveArchiveKind, i as unscopedPackageName, l as resolvePackedRootDir, n as safeDirName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-D5gi-nfu.js";
4
+ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchive, r as resolveArchiveSourcePath, t as validateRegistryNpmSpec } from "./npm-registry-spec-YMWTMnm_.js";
5
+ import { t as scanDirectoryWithSummary } from "./skill-scanner-BBwesm0w.js";
6
6
  import path from "node:path";
7
- import fsPromises from "node:fs/promises";
7
+ import fs from "node:fs/promises";
8
8
 
9
9
  //#region src/plugins/install.ts
10
10
  const defaultLogger = {};
@@ -116,7 +116,7 @@ async function installPluginFromPackageDir(params) {
116
116
  logger.warn?.(`Plugin "${pluginId}" code safety scan failed (${String(err)}). Installation continues; run "symi security audit --deep" after install.`);
117
117
  }
118
118
  const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
119
- await fsPromises.mkdir(extensionsDir, { recursive: true });
119
+ await fs.mkdir(extensionsDir, { recursive: true });
120
120
  const targetDirResult = resolveSafeInstallDir({
121
121
  baseDir: extensionsDir,
122
122
  id: pluginId,
@@ -180,7 +180,7 @@ async function installPluginFromArchive(params) {
180
180
  const archivePath = archivePathResult.path;
181
181
  return await withTempDir("symi-plugin-", async (tmpDir) => {
182
182
  const extractDir = path.join(tmpDir, "extract");
183
- await fsPromises.mkdir(extractDir, { recursive: true });
183
+ await fs.mkdir(extractDir, { recursive: true });
184
184
  logger.info?.(`Extracting ${archivePath}…`);
185
185
  try {
186
186
  await extractArchive({
@@ -221,7 +221,7 @@ async function installPluginFromDir(params) {
221
221
  ok: false,
222
222
  error: `directory not found: ${dirPath}`
223
223
  };
224
- if (!(await fsPromises.stat(dirPath)).isDirectory()) return {
224
+ if (!(await fs.stat(dirPath)).isDirectory()) return {
225
225
  ok: false,
226
226
  error: `not a directory: ${dirPath}`
227
227
  };
@@ -243,7 +243,7 @@ async function installPluginFromFile(params) {
243
243
  error: `file not found: ${filePath}`
244
244
  };
245
245
  const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
246
- await fsPromises.mkdir(extensionsDir, { recursive: true });
246
+ await fs.mkdir(extensionsDir, { recursive: true });
247
247
  const pluginId = path.basename(filePath, path.extname(filePath)) || "plugin";
248
248
  const pluginIdError = validatePluginId(pluginId);
249
249
  if (pluginIdError) return {
@@ -257,7 +257,7 @@ async function installPluginFromFile(params) {
257
257
  };
258
258
  if (dryRun) return buildFileInstallResult(pluginId, targetFile);
259
259
  logger.info?.(`Installing to ${targetFile}…`);
260
- await fsPromises.copyFile(filePath, targetFile);
260
+ await fs.copyFile(filePath, targetFile);
261
261
  return buildFileInstallResult(pluginId, targetFile);
262
262
  }
263
263
  async function installPluginFromNpmSpec(params) {
@@ -303,7 +303,7 @@ async function installPluginFromPath(params) {
303
303
  ok: false,
304
304
  error: `path not found: ${resolved}`
305
305
  };
306
- if ((await fsPromises.stat(resolved)).isDirectory()) return await installPluginFromDir({
306
+ if ((await fs.stat(resolved)).isDirectory()) return await installPluginFromDir({
307
307
  dirPath: resolved,
308
308
  extensionsDir: params.extensionsDir,
309
309
  timeoutMs: params.timeoutMs,
@@ -1,7 +1,7 @@
1
1
  import crypto from "node:crypto";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
- import fsPromises from "node:fs/promises";
4
+ import fs$1 from "node:fs/promises";
5
5
 
6
6
  //#region src/memory/fs-utils.ts
7
7
  function isFileMissingError(err) {
@@ -10,7 +10,7 @@ function isFileMissingError(err) {
10
10
  async function statRegularFile(absPath) {
11
11
  let stat;
12
12
  try {
13
- stat = await fsPromises.lstat(absPath);
13
+ stat = await fs$1.lstat(absPath);
14
14
  } catch (err) {
15
15
  if (isFileMissingError(err)) return { missing: true };
16
16
  throw err;
@@ -86,7 +86,7 @@ function isMemoryPath(relPath) {
86
86
  return normalized.startsWith("memory/");
87
87
  }
88
88
  async function walkDir(dir, files) {
89
- const entries = await fsPromises.readdir(dir, { withFileTypes: true });
89
+ const entries = await fs$1.readdir(dir, { withFileTypes: true });
90
90
  for (const entry of entries) {
91
91
  const full = path.join(dir, entry.name);
92
92
  if (entry.isSymbolicLink()) continue;
@@ -106,7 +106,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
106
106
  const memoryDir = path.join(workspaceDir, "memory");
107
107
  const addMarkdownFile = async (absPath) => {
108
108
  try {
109
- const stat = await fsPromises.lstat(absPath);
109
+ const stat = await fs$1.lstat(absPath);
110
110
  if (stat.isSymbolicLink() || !stat.isFile()) return;
111
111
  if (!absPath.endsWith(".md")) return;
112
112
  result.push(absPath);
@@ -115,12 +115,12 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
115
115
  await addMarkdownFile(memoryFile);
116
116
  await addMarkdownFile(altMemoryFile);
117
117
  try {
118
- const dirStat = await fsPromises.lstat(memoryDir);
118
+ const dirStat = await fs$1.lstat(memoryDir);
119
119
  if (!dirStat.isSymbolicLink() && dirStat.isDirectory()) await walkDir(memoryDir, result);
120
120
  } catch {}
121
121
  const normalizedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
122
122
  if (normalizedExtraPaths.length > 0) for (const inputPath of normalizedExtraPaths) try {
123
- const stat = await fsPromises.lstat(inputPath);
123
+ const stat = await fs$1.lstat(inputPath);
124
124
  if (stat.isSymbolicLink()) continue;
125
125
  if (stat.isDirectory()) {
126
126
  await walkDir(inputPath, result);
@@ -134,7 +134,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
134
134
  for (const entry of result) {
135
135
  let key = entry;
136
136
  try {
137
- key = await fsPromises.realpath(entry);
137
+ key = await fs$1.realpath(entry);
138
138
  } catch {}
139
139
  if (seen.has(key)) continue;
140
140
  seen.add(key);
@@ -148,14 +148,14 @@ function hashText(value) {
148
148
  async function buildFileEntry(absPath, workspaceDir) {
149
149
  let stat;
150
150
  try {
151
- stat = await fsPromises.stat(absPath);
151
+ stat = await fs$1.stat(absPath);
152
152
  } catch (err) {
153
153
  if (isFileMissingError(err)) return null;
154
154
  throw err;
155
155
  }
156
156
  let content;
157
157
  try {
158
- content = await fsPromises.readFile(absPath, "utf-8");
158
+ content = await fs$1.readFile(absPath, "utf-8");
159
159
  } catch (err) {
160
160
  if (isFileMissingError(err)) return null;
161
161
  throw err;
@@ -2,13 +2,13 @@ import { A as isRich, P as getResolvedLoggerSettings, j as theme, k as colorize
2
2
  import { d as resolveIsNixMode } from "./paths-By0XjHBk.js";
3
3
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
4
4
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
5
- import { i as loadConfig } from "./config-D-PYSlE8.js";
5
+ import { i as loadConfig } from "./config-D7SS4vdk.js";
6
6
  import { c as pickPrimaryLanIPv4 } from "./ws-C7Ktmt-R.js";
7
7
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-ChnKXZKi.js";
8
- import { t as isWSL } from "./wsl-Sed675xh.js";
9
- import { r as isSystemdUserServiceAvailable } from "./systemd-B2nTr3Y2.js";
10
- import { s as resolveGatewayLogPaths } from "./service-Cm4-5AH9.js";
11
- import { a as checkTokenDrift, n as renderSystemdUnavailableHints } from "./systemd-hints-DtOWJT_2.js";
8
+ import { t as isWSL } from "./wsl-DMA0sTvh.js";
9
+ import { r as isSystemdUserServiceAvailable } from "./systemd-DRpQb_L1.js";
10
+ import { s as resolveGatewayLogPaths } from "./service-CyEDtYLq.js";
11
+ import { a as checkTokenDrift, n as renderSystemdUnavailableHints } from "./systemd-hints-DR4u43WA.js";
12
12
  import { t as parsePort } from "./parse-port-Bi7Gqqv0.js";
13
13
  import { Writable } from "node:stream";
14
14
 
@@ -3,7 +3,7 @@ import "./registry-C-JddWwo.js";
3
3
  import { o as resolveAgentWorkspaceDir, s as resolveDefaultAgentId } from "./agent-scope-B1Ina6jV.js";
4
4
  import "./subsystem-DzRUKS9f.js";
5
5
  import "./workspace-CsaDUuDn.js";
6
- import { t as runAgentTurn } from "./unified-runner-DPWNhQQA.js";
6
+ import { t as runAgentTurn } from "./unified-runner-DAWxqcS9.js";
7
7
  import "./auth-profiles-BSw0aQND.js";
8
8
  import "./model-selection-BqshlIZc.js";
9
9
  import "./deliver-DTRkeYm3.js";
@@ -25,7 +25,7 @@ import "./paths-BsT3BvfH.js";
25
25
  import "./tokens-D_vCJSzF.js";
26
26
  import "./diagnostic-BALvP9wI.js";
27
27
  import "./diagnostic-session-state-BDfanaOY.js";
28
- import "./manager-C5FGNRjL.js";
28
+ import "./manager-CtDuNn2T.js";
29
29
  import "./github-copilot-token-uhEBNQfj.js";
30
30
  import "./pi-auth-json-DCGR3yfh.js";
31
31
  import "./reply-prefix-D0NzzC4I.js";
@@ -1,6 +1,6 @@
1
1
  import { B as resolvePreferredSymiTmpDir } from "./registry-Sbac4a4z.js";
2
2
  import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
3
- import { c as resolveAgentWorkspaceDir } from "./agent-scope-Bnsyyeci.js";
3
+ import { c as resolveAgentWorkspaceDir } from "./agent-scope-DOrZjOnW.js";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region src/media/local-roots.ts
@@ -4,20 +4,20 @@ import "./utils-CTPsqyE_.js";
4
4
  import { c as formatLocalIsoWithOffset, m as clearActiveProgressLine } from "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
6
6
  import "./exec-DuYbft0z.js";
7
- import "./agent-scope-Bnsyyeci.js";
8
- import "./model-selection-CCTzD29o.js";
9
- import "./config-D-PYSlE8.js";
7
+ import "./agent-scope-DOrZjOnW.js";
8
+ import "./model-selection-7wdmO-Iw.js";
9
+ import "./config-D7SS4vdk.js";
10
10
  import "./boolean-CbZoNRMn.js";
11
11
  import "./env-BRnPI9sO.js";
12
12
  import "./shell-env-Dc3iU7HK.js";
13
13
  import "./manifest-registry-D1MLZEjS.js";
14
14
  import "./message-channel-DgjXWzf-.js";
15
- import "./client-T5P9umyG.js";
16
- import { t as buildGatewayConnectionDetails } from "./call-CW8U1BPq.js";
17
- import "./pairing-token-B703A1U3.js";
15
+ import "./client-BzUAFrla.js";
16
+ import { t as buildGatewayConnectionDetails } from "./call-BouPakqe.js";
17
+ import "./pairing-token-Dcy37-4s.js";
18
18
  import { t as formatDocsLink } from "./links-TQwptN6q.js";
19
19
  import "./progress-HNhsbm0E.js";
20
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CLzM6ugo.js";
20
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DNq7EMhm.js";
21
21
  import { t as parseLogLine } from "./parse-log-line-BX_3CQNJ.js";
22
22
  import { setTimeout } from "node:timers/promises";
23
23