@fased/fased 0.1.28 → 0.1.30

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 (301) hide show
  1. package/dist/{active-listener-Dmc7Xtuo.js → active-listener-Bw8DT1EX.js} +1 -1
  2. package/dist/{agent-scope-BYecP9O5.js → agent-scope-Bx0XQq3s.js} +124 -124
  3. package/dist/{agents-iYhhEhBa.js → agents-BU4NqZkn.js} +8 -8
  4. package/dist/{attachment-normalize-BhAxfpDx.js → attachment-normalize-3_V1yb6a.js} +1 -1
  5. package/dist/{attachment-normalize-CKtDb7Dr.js → attachment-normalize-D3LvGnxE.js} +1 -1
  6. package/dist/{audio-preflight-C8g4U208.js → audio-preflight-B4hZi0X5.js} +1 -1
  7. package/dist/{audio-preflight-W0jytQTE.js → audio-preflight-DcQrkXYr.js} +2 -2
  8. package/dist/{audio-preflight-Ck89DLHq.js → audio-preflight-MUfVeIPT.js} +31 -31
  9. package/dist/{audio-preflight-ktHzRxN9.js → audio-preflight-YPQKo93v.js} +1 -1
  10. package/dist/{audio-preflight-Cay8mZwp.js → audio-preflight-r8PHFHTe.js} +2 -2
  11. package/dist/{audit-DAgPJ6XG.js → audit-BNmzld5I.js} +1 -1
  12. package/dist/{audit-nu4TuGmi.js → audit-ChF16w3M.js} +1 -1
  13. package/dist/{auth-BXZyivvK.js → auth-DGXGqcN7.js} +5 -5
  14. package/dist/{auth-choice-T0k3b6-S.js → auth-choice-BJGGTOYU.js} +1 -1
  15. package/dist/{auth-choice--uTO5KF9.js → auth-choice-UvbBnRhr.js} +1 -1
  16. package/dist/{auth-choice-prompt-CpPAxYWh.js → auth-choice-prompt-9uH2hSjM.js} +1 -1
  17. package/dist/{auth-choice-prompt-DT4lamSy.js → auth-choice-prompt-CPoTg_-G.js} +1 -1
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +31 -31
  20. package/dist/bundled/bootstrap-extra-files/handler.js +3 -3
  21. package/dist/bundled/command-logger/handler.js +2 -2
  22. package/dist/bundled/session-memory/handler.js +31 -31
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{channel-activity-D69hLBEQ.js → channel-activity-BvC4RbBO.js} +1 -1
  25. package/dist/{channel-web-C5m2F4jn.js → channel-web-0wKGD4yD.js} +1 -1
  26. package/dist/{channel-web-DCEtUdZl.js → channel-web-DLD1undh.js} +1 -1
  27. package/dist/{channels-BKcpSzps.js → channels-B9bvlD7y.js} +6 -6
  28. package/dist/{channels-DmfjfmuY.js → channels-CBT56Ap7.js} +6 -6
  29. package/dist/{channels-cli-Cz7A96xt.js → channels-cli-CK1qojpR.js} +5 -5
  30. package/dist/{channels-cli-CQoyRjEk.js → channels-cli-D6ioLe8o.js} +5 -5
  31. package/dist/{chunk-KatG8h1H.js → chunk-CiQeXMLG.js} +1 -1
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-CTiidr2w.js → cli-ByaZFcQl.js} +2 -2
  34. package/dist/{cli-D6qlo3sU.js → cli-DgHb9Vld.js} +2 -2
  35. package/dist/{command-registry-DjcstblD.js → command-registry-mptWJW8S.js} +9 -9
  36. package/dist/{commands-registry-CG-_VuYC.js → commands-registry-t0hu8c_Z.js} +1 -1
  37. package/dist/{completion-cli-DId41h2e.js → completion-cli-BRvgVQzN.js} +2 -2
  38. package/dist/{completion-cli-B_uil7u0.js → completion-cli-DyJbXhbh.js} +1 -1
  39. package/dist/{config-cli-B6Eyt9Xm.js → config-cli-BrzPOli4.js} +1 -1
  40. package/dist/{config-cli-atr2j6q9.js → config-cli-R0TQZDi7.js} +1 -1
  41. package/dist/{config-eval-DxNYxraZ.js → config-eval-CLXDBlCw.js} +3 -3
  42. package/dist/{configure-CrAz2sq9.js → configure-Bt3nH-_I.js} +13 -13
  43. package/dist/{configure-C5toPgaS.js → configure-pREf12zB.js} +13 -13
  44. package/dist/control-ui/assets/app-DXYMrRJ9.js.map +1 -1
  45. package/dist/{cron-cli-CJ90NUZf.js → cron-cli-BIYfBpRP.js} +5 -5
  46. package/dist/{cron-cli-B9LYsXv6.js → cron-cli-zdoRLQ0m.js} +5 -5
  47. package/dist/{daemon-cli-D2K0A2cj.js → daemon-cli-Cj4_RgEM.js} +4 -4
  48. package/dist/{daemon-cli-BS1JARm_.js → daemon-cli-LLGP6g2r.js} +4 -4
  49. package/dist/daemon-cli.js +3 -10
  50. package/dist/{daemon-install-helpers-BKLej54T.js → daemon-install-helpers-BPdikKF-.js} +2 -9
  51. package/dist/{daemon-install-helpers-DTxcfITS.js → daemon-install-helpers-BdhhuvlY.js} +2 -9
  52. package/dist/{deps-BX9qxzg9.js → deps-QnUngXA3.js} +1 -1
  53. package/dist/{deps-BtUx0oOa.js → deps-sd-SQKYn.js} +1 -1
  54. package/dist/{diagnostic-BYQE13k1.js → diagnostic-C6MSQFZF.js} +1 -1
  55. package/dist/entry.js +1 -1
  56. package/dist/extensionAPI.js +1 -1
  57. package/dist/{fetch-CYWabNXm.js → fetch-BwkjkjT6.js} +1 -1
  58. package/dist/{fetch-guard-CNlKZ01R.js → fetch-guard-DdMratk8.js} +1 -1
  59. package/dist/{filesystem-manager-CWbYjhcQ.js → filesystem-manager-B8V6mEya.js} +4 -4
  60. package/dist/{fs-safe-T802CTm-.js → fs-safe-CrX7hR24.js} +2 -2
  61. package/dist/{gateway-cli-DQUDvD-P.js → gateway-cli-Cn3STpYX.js} +30 -30
  62. package/dist/{gateway-cli-C8uThQly.js → gateway-cli-yfNsUzH6.js} +30 -30
  63. package/dist/{github-copilot-token-eyrRGmGp.js → github-copilot-token-DYrFvncE.js} +8 -8
  64. package/dist/{health-ylUwlg54.js → health-BfGnSyOV.js} +2 -2
  65. package/dist/{health-BH3E5Lbb.js → health-DcurJYny.js} +2 -2
  66. package/dist/{heartbeat-runner-CrsGVWl5.js → heartbeat-runner-CJZStXhx.js} +1 -1
  67. package/dist/{heartbeat-runner-7_Hl_o9c.js → heartbeat-runner-CY41VFZE.js} +1 -1
  68. package/dist/{hooks-cli-tKMQrFUs.js → hooks-cli-DpkFISKR.js} +3 -3
  69. package/dist/{hooks-cli-CeznlOC9.js → hooks-cli-WtC65axA.js} +3 -3
  70. package/dist/index.js +7 -7
  71. package/dist/{internal-CGfrGFGR.js → internal-QlbJb-4V.js} +3 -3
  72. package/dist/{ipv4-xPPu8uhS.js → ipv4-BkY__Z0A.js} +2 -2
  73. package/dist/{ipv4-BdcUd7th.js → ipv4-CdRPraPM.js} +2 -2
  74. package/dist/{lifecycle-Dgvcj0y7.js → lifecycle-DUPuKIvd.js} +1 -1
  75. package/dist/{lifecycle-BiI4r6Yk.js → lifecycle-Dd-6tFQk.js} +1 -1
  76. package/dist/{list.auth-overview-DBtoDv3I.js → list.auth-overview-CE2_GQ-8.js} +1 -1
  77. package/dist/{list.auth-overview-CEuyMCA_.js → list.auth-overview-DcdJySBi.js} +1 -1
  78. package/dist/llm-slug-generator.js +31 -31
  79. package/dist/{login-H3-M4-wp.js → login-BGt2KP5c.js} +2 -2
  80. package/dist/{login-qr-DIly-pBD.js → login-qr-CDDF5Ark.js} +3 -3
  81. package/dist/{manager-ZRPdFyMZ.js → manager-BfodMNDG.js} +8 -8
  82. package/dist/{markdown-tables-KcZiNfqg.js → markdown-tables-C-HEtwaC.js} +1 -1
  83. package/dist/{media-93Hw7QIY.js → media-CInvDVc0.js} +5 -5
  84. package/dist/{memory-search-CueDEO0U.js → memory-search-BZt8FFLW.js} +2 -2
  85. package/dist/{model-catalog-CZu0lceX.js → model-catalog-DOuyqwFa.js} +6 -6
  86. package/dist/{models-CH88-l57.js → models-ItVo4_FF.js} +4 -4
  87. package/dist/{models-cli-DaSPxlwv.js → models-cli-DKEzhF9X.js} +4 -4
  88. package/dist/{models-cli-BidzQ2ub.js → models-cli-YznPWFUE.js} +5 -5
  89. package/dist/{node-cli-DHodXSn8.js → node-cli-CZaJUGYu.js} +5 -5
  90. package/dist/{node-cli-DtpX07Iy.js → node-cli-qkHTKDmW.js} +5 -5
  91. package/dist/{onboard-C6FZXU0s.js → onboard--COJdfXc.js} +7 -7
  92. package/dist/{onboard-DxuuLAd-.js → onboard-Cpw2fP2S.js} +7 -7
  93. package/dist/{onboard-channels-md6qnWB2.js → onboard-channels-BH6atgy1.js} +2 -2
  94. package/dist/{onboard-channels-CD98bI5k.js → onboard-channels-CbQgdo3k.js} +2 -2
  95. package/dist/{onboard-search-VCCwZ9cO.js → onboard-search-Bg8qvHBV.js} +5 -5
  96. package/dist/{onboard-search-DxM2zPhD.js → onboard-search-BxaAdq5U.js} +5 -5
  97. package/dist/{onboarding-CIOt4f3q.js → onboarding-B-_4gKpN.js} +9 -9
  98. package/dist/{onboarding-CUFTjmEm.js → onboarding-DiuUZg9l.js} +9 -9
  99. package/dist/{openresponses-http-B6U9EAH8.js → openresponses-http-BNIAyGrH.js} +1 -1
  100. package/dist/{openresponses-http-C-s0pFs7.js → openresponses-http-BVdja8Nj.js} +2 -2
  101. package/dist/{openresponses-http-CP2yl2hZ.js → openresponses-http-DGAqU5K9.js} +1 -1
  102. package/dist/{openresponses-http-BQnFLiT5.js → openresponses-http-DhBER2sI.js} +2 -2
  103. package/dist/{openresponses-http-D4z9eTJH.js → openresponses-http-svQwMBaq.js} +31 -31
  104. package/dist/{outbound-C7mwBvhN.js → outbound-CfdOHhpP.js} +6 -6
  105. package/dist/{outbound-attachment-DILp822M.js → outbound-attachment-BL6wK70V.js} +2 -2
  106. package/dist/{parent-default-help-ChpJAsU-.js → parent-default-help-B2mCEhav.js} +1 -1
  107. package/dist/{parent-default-help-DbZXyZlW.js → parent-default-help-DUqMyqko.js} +1 -1
  108. package/dist/{path-alias-guards-DyTCSx8q.js → path-alias-guards-Dalcwl5X.js} +1 -1
  109. package/dist/{paths-DBTQPSY5.js → paths-zdeD1PNp.js} +13 -13
  110. package/dist/{pi-embedded-B8HZySK8.js → pi-embedded-CrKlYvWM.js} +234 -234
  111. package/dist/{pi-embedded-CulwZKSH.js → pi-embedded-DPl5Aqw4.js} +5 -5
  112. package/dist/{pi-model-discovery--TE7j7VE.js → pi-model-discovery-C1CAe7eM.js} +7 -7
  113. package/dist/pi-model-discovery-runtime-C34IWfDn.js +5 -0
  114. package/dist/{plugin-registry-BnvUlYjK.js → plugin-registry-BBzitaxQ.js} +1 -1
  115. package/dist/{plugin-registry-DxU6FpxL.js → plugin-registry-CIiRwpQv.js} +1 -1
  116. package/dist/plugin-sdk/{active-listener--vjYvMEK.js → active-listener-BMdC_vyr.js} +1 -1
  117. package/dist/plugin-sdk/{audio-preflight-IwS9Ev0P.js → audio-preflight-B-__-RfZ.js} +29 -29
  118. package/dist/plugin-sdk/{audio-preflight-DVUWB0LK.js → audio-preflight-DcJUk03P.js} +1 -1
  119. package/dist/plugin-sdk/{channel-activity-DkLb5E2L.js → channel-activity-NWX3LiLh.js} +1 -1
  120. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  121. package/dist/plugin-sdk/{channel-web-B2i4wI9t.js → channel-web-DoGtD0PQ.js} +14 -14
  122. package/dist/plugin-sdk/{chunk-BDulh-FS.js → chunk-DnpNE3Xp.js} +1 -1
  123. package/dist/plugin-sdk/command-status.js +1 -1
  124. package/dist/plugin-sdk/{commands-registry-Cl80XXdf.js → commands-registry-D-wBX44P.js} +1 -1
  125. package/dist/plugin-sdk/{diagnostic-BDrUrfZB.js → diagnostic-BjLGAdPW.js} +1 -1
  126. package/dist/plugin-sdk/{fetch-dvtAysG4.js → fetch-CwQDqOty.js} +1 -1
  127. package/dist/plugin-sdk/{fetch-guard-BxBS-Ozv.js → fetch-guard-C9OlAzZl.js} +1 -1
  128. package/dist/plugin-sdk/{filesystem-manager-6RcmLJuY.js → filesystem-manager-D2yRTu4v.js} +3 -3
  129. package/dist/plugin-sdk/{fs-safe-CVSBTTvX.js → fs-safe-Vt6xas26.js} +2 -2
  130. package/dist/plugin-sdk/index.js +34 -34
  131. package/dist/plugin-sdk/{internal-s9L09jdh.js → internal-BRBMoaD6.js} +1 -1
  132. package/dist/plugin-sdk/{ir-BmFS6Dzq.js → ir-BD_A53gm.js} +4 -4
  133. package/dist/plugin-sdk/{login-DNZBECsI.js → login-Beyw9UA5.js} +2 -2
  134. package/dist/plugin-sdk/{login-qr-B4GBAfDr.js → login-qr-CvB90Ony.js} +2 -2
  135. package/dist/plugin-sdk/{manager-BlHbK3u2.js → manager-BQu1VKQ6.js} +5 -5
  136. package/dist/plugin-sdk/{markdown-tables-CnJAOUZL.js → markdown-tables-trVxBCrI.js} +1 -1
  137. package/dist/plugin-sdk/{memory-search-nQXS-L20.js → memory-search-DjvKx_Hd.js} +1 -1
  138. package/dist/plugin-sdk/{openresponses-http-CCgnaxp6.js → openresponses-http-DQWJE95u.js} +1 -1
  139. package/dist/plugin-sdk/{openresponses-http-CFXgOYZ8.js → openresponses-http-VFgg_bR4.js} +29 -29
  140. package/dist/plugin-sdk/{outbound-DNozCpaG.js → outbound-D_1hFaJ-.js} +6 -6
  141. package/dist/plugin-sdk/{outbound-attachment-D22qcHys.js → outbound-attachment-DenNTymT.js} +2 -2
  142. package/dist/plugin-sdk/{path-alias-guards-DN9j8duf.js → path-alias-guards-Wu92iGvE.js} +1 -1
  143. package/dist/plugin-sdk/{paths-Cn8yCaSN.js → paths-CK25m2hW.js} +2 -2
  144. package/dist/plugin-sdk/{pi-model-discovery-BeAR6-Xm.js → pi-model-discovery-DMqhr7U_.js} +1 -1
  145. package/dist/plugin-sdk/{pi-model-discovery-runtime-DaiqegxK.js → pi-model-discovery-runtime-CwXjrUIM.js} +1 -1
  146. package/dist/plugin-sdk/{pi-model-discovery-runtime-DRhhMGTg.js → pi-model-discovery-runtime-DScmspTB.js} +2 -2
  147. package/dist/plugin-sdk/{pw-ai-CVhjKZsh.js → pw-ai-Cs75h-nL.js} +4 -4
  148. package/dist/plugin-sdk/{qmd-manager-Hhb9s5Ex.js → qmd-manager-DEcJj-8k.js} +4 -4
  149. package/dist/plugin-sdk/{qmd-scope-DOiYgpAa.js → qmd-scope-BjxICI2O.js} +1 -1
  150. package/dist/plugin-sdk/{query-expansion-DlX2-yhE.js → query-expansion-6wijZpq6.js} +2 -2
  151. package/dist/plugin-sdk/{registry-D1bAj51G.js → registry-C90cYLNB.js} +8 -8
  152. package/dist/plugin-sdk/{replies-DsTSTkkm.js → replies-C28zWuLO.js} +2 -2
  153. package/dist/plugin-sdk/{reply-BzHXWKR0.js → reply-D4WNXysa.js} +67 -67
  154. package/dist/plugin-sdk/{reply-prefix-CM9vmzNS.js → reply-prefix-CZBe0Ovo.js} +1 -1
  155. package/dist/plugin-sdk/{resolve-outbound-target-BmAvZt5m.js → resolve-outbound-target-DyNIwkzd.js} +2 -2
  156. package/dist/plugin-sdk/{resolve-route-DB2O8xap.js → resolve-route-aT1YT8Ih.js} +1 -1
  157. package/dist/plugin-sdk/{runtime-B3BC00NW.js → runtime-Dxpfvz83.js} +8 -8
  158. package/dist/plugin-sdk/{send-Dzl1P-r1.js → send-5VxqNtsW.js} +7 -7
  159. package/dist/plugin-sdk/{send-B2PuRxAo.js → send-Bf5cNKV-.js} +5 -5
  160. package/dist/plugin-sdk/{send-CX4dzEhO.js → send-D4Figs17.js} +5 -5
  161. package/dist/plugin-sdk/{send-Co84r8KW.js → send-Des0LL0Y.js} +7 -7
  162. package/dist/plugin-sdk/{send-LjnXKHz9.js → send-Uasa6JPL.js} +4 -4
  163. package/dist/plugin-sdk/{session-KVX2v7T3.js → session-BYUOdzi1.js} +1 -1
  164. package/dist/plugin-sdk/{skill-commands-CZ5QzawX.js → skill-commands-FnaJNY1m.js} +5 -5
  165. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  166. package/dist/plugin-sdk/{status-B0XnEiYk.js → status-BlX9jStp.js} +5 -5
  167. package/dist/plugin-sdk/{tables-B8koh_pB.js → tables-DjSNh4Qx.js} +1 -1
  168. package/dist/plugin-sdk/{target-errors-Bnnn54IW.js → target-errors-DDRTJb87.js} +2 -2
  169. package/dist/plugin-sdk/{tool-loop-detection-ImTTGqAY.js → tool-loop-detection-B0pfI1b9.js} +1 -1
  170. package/dist/plugin-sdk/{web-C9P8KPay.js → web-CEucw6Dl.js} +1 -1
  171. package/dist/plugin-sdk/web-Cr8AJx43.js +40 -0
  172. package/dist/plugin-sdk/{whatsapp-actions-DjtDOMIg.js → whatsapp-actions-Bx1OtYYh.js} +12 -12
  173. package/dist/{plugins-cli-ipO2s_1B.js → plugins-cli-B9w9SKYa.js} +5 -5
  174. package/dist/{plugins-cli-1E09EVlV.js → plugins-cli-CdRa6xYi.js} +5 -5
  175. package/dist/{program-CDxLwJ0z.js → program-C9wZbb_-.js} +7 -7
  176. package/dist/{program-context-BD93RW74.js → program-context-Dc8hoANx.js} +25 -25
  177. package/dist/{prompt-select-styled-CAKroAbM.js → prompt-select-styled-9E7HlPjk.js} +6 -6
  178. package/dist/{prompt-select-styled-C-zi15KS.js → prompt-select-styled-oUCALY2N.js} +6 -6
  179. package/dist/{pw-ai-4dv28kg0.js → pw-ai-5b6U6vNE.js} +5 -5
  180. package/dist/{qmd-manager-DA3v0Y-t.js → qmd-manager-CVbI17-v.js} +5 -5
  181. package/dist/{qmd-scope-Byk5KlGv.js → qmd-scope-CL7VCB5M.js} +1 -1
  182. package/dist/{query-expansion-CGVFZR8O.js → query-expansion-DrMLz38Q.js} +2 -2
  183. package/dist/{register.agent-BGaZQH1X.js → register.agent-BhoMAqJe.js} +8 -8
  184. package/dist/{register.agent-eKraQHJw.js → register.agent-Dty2GQos.js} +9 -9
  185. package/dist/{register.configure-BA-xnssd.js → register.configure-CjQhBudl.js} +13 -13
  186. package/dist/{register.configure-GwR5so5q.js → register.configure-DZl7w5Se.js} +13 -13
  187. package/dist/{register.maintenance-C8OesoUh.js → register.maintenance-C9_UzTyI.js} +10 -10
  188. package/dist/{register.maintenance-BXgIzrdf.js → register.maintenance-CGFQEESj.js} +11 -11
  189. package/dist/{register.message-DhqGREy0.js → register.message-C3BTjmhg.js} +3 -3
  190. package/dist/{register.message-Cu7PekBP.js → register.message-DnrC31ZC.js} +3 -3
  191. package/dist/{register.onboard-CQU1AliO.js → register.onboard-DIxJ1bFs.js} +16 -16
  192. package/dist/{register.onboard-DkIAVugY.js → register.onboard-DzO2dNpB.js} +16 -16
  193. package/dist/{register.setup-BusNqDdc.js → register.setup-B5Ji_Smo.js} +16 -16
  194. package/dist/{register.setup-DQaKZMeV.js → register.setup-Cd8rXata.js} +16 -16
  195. package/dist/{register.start-Bsm3VLUW.js → register.start-BObciIYA.js} +1 -1
  196. package/dist/{register.start-CmIaQmz8.js → register.start-zfaQ2lDQ.js} +1 -1
  197. package/dist/{register.status-health-sessions-ChOZwDRw.js → register.status-health-sessions-CUw6awJ6.js} +6 -6
  198. package/dist/{register.status-health-sessions-D6VCFOIo.js → register.status-health-sessions-CYpKmq3y.js} +6 -6
  199. package/dist/{register.subclis-Drc4P-Nq.js → register.subclis-DEnba1hq.js} +17 -17
  200. package/dist/{replies-oXYe4wxf.js → replies-DEtI8EHM.js} +2 -2
  201. package/dist/{reply-BiTQJbqI.js → reply-DVGmtLPq.js} +6 -6
  202. package/dist/{reply-prefix-DZjj9KHV.js → reply-prefix-DVyUjzCQ.js} +1 -1
  203. package/dist/{resolve-route-D3-NnOVE.js → resolve-route-Dc1L-NXd.js} +1 -1
  204. package/dist/{run-main-BY0Rwey1.js → run-main-BqiU1shU.js} +14 -14
  205. package/dist/{runtime-helper-grants-DfJj0yBK.js → runtime-helper-grants-BQl2Y_KJ.js} +1 -1
  206. package/dist/{runtime-helper-grants-KLyyfrTt.js → runtime-helper-grants-CHz5azhO.js} +1 -1
  207. package/dist/{sandbox-cli-DA7q2-Ck.js → sandbox-cli-BLWfhZh2.js} +2 -2
  208. package/dist/{sandbox-cli-DaBgqYew.js → sandbox-cli-C7tRjHGl.js} +2 -2
  209. package/dist/{security-cli-CjylWZ8O.js → security-cli-0-5Vgk1A.js} +3 -3
  210. package/dist/{security-cli-BzwvvYlN.js → security-cli-DGCfCHzM.js} +3 -3
  211. package/dist/{send-BqgaWpoE.js → send-BohOQw4n.js} +4 -4
  212. package/dist/{send-B-sa1Rzn.js → send-CqQ88clX.js} +18 -18
  213. package/dist/{send-DQ3s5E33.js → send-D2IXnEJl.js} +7 -7
  214. package/dist/{send-C1YtjPQb.js → send-D8eFKkkd.js} +5 -5
  215. package/dist/{send-Bhj3bXKi.js → send-Ps08x526.js} +5 -5
  216. package/dist/{server-B-QKsL4x.js → server-BMZYE37o.js} +2 -2
  217. package/dist/{server-Bz-J2_5y.js → server-DamsmTjm.js} +2 -2
  218. package/dist/{server-cron-CyHe5fDq.js → server-cron-BUWyjpTV.js} +2 -2
  219. package/dist/{server-cron-B5wrfwxM.js → server-cron-DC9t05LU.js} +2 -2
  220. package/dist/{server-node-events-Baqsf2NX.js → server-node-events-C3IOxSF_.js} +3 -3
  221. package/dist/{server-node-events-0EBnfqMC.js → server-node-events-cusaGrcY.js} +3 -3
  222. package/dist/{service-audit-CKhQ-gE8.js → service-audit-1anzCSV2.js} +1 -1
  223. package/dist/{service-audit-vZURAwy5.js → service-audit-Daqv2ulM.js} +1 -1
  224. package/dist/{session-CYgXtJQQ.js → session-Cz9lOeBe.js} +5 -5
  225. package/dist/{shared-NfkGRhDK.js → shared-BO4hP_yT.js} +1 -1
  226. package/dist/{shared-BiAB2K_s.js → shared-DnllDWpn.js} +1 -1
  227. package/dist/{skill-commands-HOHDwVYx.js → skill-commands-LW0SeGsB.js} +24 -24
  228. package/dist/{status-Bn_17wli.js → status-B39ZJFhD.js} +1 -1
  229. package/dist/{status-CedgExBn.js → status-CrL7Hp3R.js} +4 -4
  230. package/dist/{status-B2XDD6O1.js → status-Dlt3xwcf.js} +4 -4
  231. package/dist/{status-DkO_XJ89.js → status-Doqt5wXN.js} +1 -1
  232. package/dist/{tables-BQMYTcw_.js → tables-CjmIs23-.js} +1 -1
  233. package/dist/{target-errors-iZTI1Fwr.js → target-errors-C3MQ1_UT.js} +2 -2
  234. package/dist/{tool-loop-detection-CqQip5ev.js → tool-loop-detection-CSfX9pJE.js} +2 -2
  235. package/dist/{tui-DNfrxf46.js → tui-DdPEVWjR.js} +1 -1
  236. package/dist/{tui-CM1AENKh.js → tui-R-P_OV8J.js} +1 -1
  237. package/dist/{tui-cli-CCBB8SMS.js → tui-cli-BgihXvs7.js} +3 -3
  238. package/dist/{tui-cli-DIW91DD7.js → tui-cli-ChpP9FsL.js} +3 -3
  239. package/dist/{update-cli-BjzhdsTf.js → update-cli-DPdSuHZT.js} +17 -17
  240. package/dist/{update-cli-BmVv97nm.js → update-cli-DVCjSLYw.js} +18 -18
  241. package/dist/{update-runner-Bqlzlgnj.js → update-runner-COs-YDhT.js} +38 -4
  242. package/dist/{update-runner-CweCoZFE.js → update-runner-DNPfs265.js} +38 -4
  243. package/dist/{web-Cx5CZwIi.js → web-B2SWpLdC.js} +3 -3
  244. package/dist/{web-D9Laamj2.js → web-BHp_2XHP.js} +1 -1
  245. package/dist/{web-By4q48rt.js → web-D8bq1XRX.js} +3 -3
  246. package/dist/{web-D2vp8fmO.js → web-DQuQBwMr.js} +35 -35
  247. package/dist/{web-search-providers.runtime-CuW6jS_G.js → web-search-providers.runtime-BD9Vp8eD.js} +1 -1
  248. package/dist/{web-search-providers.runtime-C_62DK_P.js → web-search-providers.runtime-CiOoq6G3.js} +1 -1
  249. package/dist/{web-BpZesxOB.js → web-vGE7qeF-.js} +1 -1
  250. package/dist/{whatsapp-actions-CrVrn3wF.js → whatsapp-actions-oa93ddRw.js} +12 -12
  251. package/extensions/acpx/package.json +1 -1
  252. package/extensions/bluebubbles/package.json +1 -1
  253. package/extensions/copilot-proxy/package.json +1 -1
  254. package/extensions/diagnostics-otel/package.json +1 -1
  255. package/extensions/discord/package.json +1 -1
  256. package/extensions/fased-federation/package.json +1 -1
  257. package/extensions/feishu/package.json +1 -1
  258. package/extensions/google-gemini-cli-auth/package.json +1 -1
  259. package/extensions/googlechat/package.json +1 -1
  260. package/extensions/imessage/package.json +1 -1
  261. package/extensions/irc/package.json +1 -1
  262. package/extensions/line/package.json +1 -1
  263. package/extensions/llm-task/package.json +1 -1
  264. package/extensions/lobster/package.json +1 -1
  265. package/extensions/matrix/CHANGELOG.md +12 -0
  266. package/extensions/matrix/package.json +1 -1
  267. package/extensions/mattermost/package.json +1 -1
  268. package/extensions/memory-core/package.json +1 -1
  269. package/extensions/memory-lancedb/package.json +1 -1
  270. package/extensions/minimax-portal-auth/package.json +1 -1
  271. package/extensions/msteams/CHANGELOG.md +12 -0
  272. package/extensions/msteams/package.json +1 -1
  273. package/extensions/nextcloud-talk/package.json +1 -1
  274. package/extensions/nostr/CHANGELOG.md +12 -0
  275. package/extensions/nostr/package.json +1 -1
  276. package/extensions/open-prose/package.json +1 -1
  277. package/extensions/sat-mining/package.json +1 -1
  278. package/extensions/signal/package.json +1 -1
  279. package/extensions/slack/package.json +1 -1
  280. package/extensions/synology-chat/package.json +1 -1
  281. package/extensions/telegram/package.json +1 -1
  282. package/extensions/tlon/package.json +1 -1
  283. package/extensions/twitch/CHANGELOG.md +12 -0
  284. package/extensions/twitch/package.json +1 -1
  285. package/extensions/voice-call/CHANGELOG.md +12 -0
  286. package/extensions/voice-call/package.json +1 -1
  287. package/extensions/whatsapp/package.json +1 -1
  288. package/extensions/zalo/CHANGELOG.md +12 -0
  289. package/extensions/zalo/package.json +1 -1
  290. package/extensions/zalouser/CHANGELOG.md +12 -0
  291. package/extensions/zalouser/package.json +1 -1
  292. package/package.json +1 -1
  293. package/src/brand.ts +1 -1
  294. package/src/canvas-host/a2ui/.bundle.hash +1 -1
  295. package/src/cli/update-cli/progress.ts +2 -2
  296. package/src/cli/update-cli/update-command.ts +4 -3
  297. package/src/commands/daemon-install-helpers.ts +0 -12
  298. package/src/infra/update-global.ts +47 -0
  299. package/src/infra/update-runner.ts +10 -2
  300. package/dist/pi-model-discovery-runtime-DD55ZBCk.js +0 -5
  301. package/dist/plugin-sdk/web-qxwuv8Ap.js +0 -40
@@ -1,54 +1,54 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $ as loadSessionStore, $i as resolveOwnerDisplaySetting, $o as matchPluginCommand, $r as discoverFasedAgentPlugins, $t as normalizeTelegramCommandName, A as getChatChannelMeta, Aa as createTelegramActionGate, Ai as extractErrorCode, An as analyzeShellCommand, Ao as resolveMessageChannel, Ar as normalizeModelCatalogModelId, As as isRich, At as DEFAULT_RESET_TRIGGERS, B as loadCombinedSessionStoreForGateway, Ba as resolveSlackAppToken, Bi as logDebug, Bn as isShellWrapperExecutable, Bo as resolveEffectiveEnableState, Br as resolveApiKeyForProfile, Bs as resolveAgentModelFallbackValues, Bt as canonicalizeMainSessionAlias, C as ensureAgentWorkspace, Ca as createNonExitingRuntime, Cn as unsetConfigValueAtPath, Co as isDeliverableMessageChannel, Cr as resolveModelAuthMode, Ct as resolveSessionLockMaxHoldFromTimeout, Da as unregisterActiveProgressLine, Dn as listWritableExplicitTrustedSafeBinDirs, Do as listDeliverableMessageChannels, Dr as retryAsync, Dt as resolveSessionResetPolicy, E as loadWorkspaceBootstrapFiles, Ea as registerActiveProgressLine, En as isTrustedSafeBinPath, Eo as isMarkdownCapableMessageChannel, Es as shouldLogVerbose, Et as resolveChannelResetConfig, F as getActivePluginRegistryKey, Fa as buildChannelAccountBindings, Fi as redactToolDetail, Fn as matchAllowlist, Fo as normalizeHyphenSlug, Fr as getSoonestCooldownExpiry, Fs as resolvePreferredFasedAgentTmpDir, Ft as resolveSessionFilePath, G as extractDeliveryInfo, Ga as createDiscordActionGate, Gn as normalizeSafeBinProfileFixtures, Go as ADMIN_SCOPE, Gr as markAuthProfileGood, Gt as loadConfig, H as resolveContextTokensForModel, Ha as listEnabledSignalAccounts, Hi as logInfo, Hn as unwrapKnownShellMultiplexerInvocation, Ho as CHANNEL_IDS, Hr as dedupeProfileIds, Hs as toAgentModelListLike, Ht as resolveExplicitAgentSessionKey, I as requireActivePluginRegistry, Ii as compileSafeRegex, In as resolveAllowlistCandidatePath, Io as normalizeStringEntries, Ir as isProfileInCooldown, Is as createInternalHookEvent, It as resolveSessionFilePathOptions, J as resolveMirroredTranscriptText, Ja as normalizeDiscordToken, Ji as resolveShellEnvFallbackTimeoutMs, Jn as isSafeExecutableValue, Jo as normalizePluginHttpPath, Jr as resolveFasedAgentAgentDir, Jt as readConfigFileSnapshotForWrite, K as parseSessionThreadInfo, Ka as listEnabledDiscordAccounts, Kn as resolveSafeBinProfiles, Ko as CLI_DEFAULT_OPERATOR_SCOPES, Kr as ensureAuthProfileStore, Kt as parseConfigJson5, L as setActivePluginRegistry, La as isTruthyEnvValue, Li as runCommandWithTimeout, Ln as resolveCommandResolutionFromArgv, Lo as normalizeStringEntriesLower, Lr as markAuthProfileFailure, Lt as resolveSessionTranscriptPath, M as normalizeAnyChannelId, Ma as listTelegramAccountIds, Mi as formatUncaughtError, Mn as isWindowsPlatform, Mo as GATEWAY_CLIENT_MODES, Mr as normalizeProviderCatalogRows, Ms as getChildLogger, Mt as resolveFreshSessionTotalTokens, N as normalizeChannelId$2, Na as resolveTelegramAccount, Nn as splitCommandChain, No as GATEWAY_CLIENT_NAMES, Nt as setSessionRuntimeModel, Oa as formatCliCommand, On as normalizeTrustedSafeBinDirs, Oo as normalizeMessageChannel, Or as buildModelCatalogMergeKey, Os as warn, Ot as resolveSessionResetType, P as getActivePluginRegistry, Pa as resolveTelegramToken, Pi as redactSensitiveText, Pn as DEFAULT_SAFE_BINS, Po as normalizeAtHashSlug, Pr as resolveAuthProfileOrder, Ps as normalizeLogLevel, Pt as resolveDefaultSessionStorePath, Qa as DEFAULT_AGENT_ID, Qi as sanitizeHostExecEnv, Qn as resolveSlackStreamingMode, Qo as listPluginCommands, Qr as loadPluginManifestRegistry, Qt as TELEGRAM_COMMAND_NAME_PATTERN, R as createPluginRegistry, Ra as parseBooleanValue$1, Ri as runExec, Rn as extractShellWrapperInlineCommand, Ro as applyTestPluginDefaults, Rr as markAuthProfileUsed, Rt as resolveSessionTranscriptsDirForAgent, S as DEFAULT_USER_FILENAME, Sa as webAuthExists, Si as getPackageManifestMetadata, Sn as setConfigValueAtPath, So as INTERNAL_MESSAGE_CHANNEL, Sr as resolveEnvApiKey, Ss as danger, St as acquireSessionWriteLock, Ta as clearActiveProgressLine, Ti as openBoundaryFileSync, Tn as getTrustedSafeBinDirs, To as isInternalMessageChannel, Tr as listCurrentModelCatalogRows, Ts as setVerbose, Tt as evaluateSessionFreshness, U as ensureFasedAgentModelsJson, Ua as resolveSignalAccount, Ui as logWarn, Un as splitShellArgs, Uo as CHAT_CHANNEL_ORDER, Ur as listProfilesForProvider, Ut as resolveMainSessionKey, V as lookupContextTokens, Va as resolveSlackBotToken, Vi as logError, Vn as unwrapKnownDispatchWrapperInvocation, Vo as resolveMemorySlotDecision, Vr as runTasksWithConcurrency, Vs as resolveAgentModelPrimaryValue, Vt as resolveAgentMainSessionKey, Wa as resolveIMessageAccount, Wn as SAFE_BIN_PROFILES, Wo as normalizeChatChannelId, Wr as listProvidersWithStoredCredentials, Wt as createConfigIO, X as resolveAndPersistSessionFile, Xa as resolveChannelGroupRequireMention, Xn as resolveDiscordPreviewStreamMode, Xo as executePluginCommand, Xr as findNormalizedProviderValue$1, Xt as writeConfigFile, Y as resolveSessionTranscriptFile, Ya as resolveChannelGroupPolicy, Yi as isDangerousHostEnvOverrideVarName, Yn as mapStreamingModeToSlackLegacyDraftStreamMode, Yo as clearPluginCommands, Yr as withFileLock, Yt as resolveConfigSnapshotHash, Z as emitSessionTranscriptUpdate, Za as resolveChannelGroupToolsPolicy, Zi as isDangerousHostInheritedEnvVarName, Zn as resolveSlackNativeStreaming, Zo as getPluginCommandSpecs, Zr as normalizeProviderId$2, Zt as validateConfigObjectWithPlugins, _ as DEFAULT_BOOTSTRAP_FILENAME, _i as supportsXHighThinking, _n as resetConfigOverrides, _o as isSubagentSessionKey, _r as normalizeGoogleModelId, _s as sleep$1, _t as parseInlineDirectives$1, a as resolveAgentDir, aa as listChannelDocks, ai as isPrivateNetworkBaseUrl, an as resolveIMessageRemoteAttachmentRoots, ao as normalizeMainKey, ar as findNormalizedProviderValue, as as escapeRegExp, at as isCacheEnabled, b as DEFAULT_SOUL_FILENAME, bi as DEFAULT_PROVIDER, bn as getConfigValueAtPath, bo as resolveAccountEntry, br as requireApiKey, bs as truncateUtf16Safe, bt as hasInterSessionUserProvenance, c as resolveAgentSkillsFilter, ca as normalizeSignalMessagingTarget, ci as coerceSecretRef, cn as getBlockedNetworkModeReason, co as sanitizeAgentId, cr as normalizeModelRef$2, ct as deliveryContextKey, d as resolveEffectiveModelFallbacks, di as lookupProviderManifestModelCapability, dn as isAvatarDataUrl, do as normalizeOptionalAccountId, dr as resolveConfiguredModelRef, dt as normalizeSessionDeliveryFields, ea as deriveSessionMetaPatch, ei as isPathInside, en as resolveTelegramCustomCommands, eo as buildAgentMainSessionKey, er as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, es as CONFIG_DIR, et as readSessionUpdatedAt, f as resolveRunModelFallbacksOverride, fa as getWebAuthAgeMs, fi as formatThinkingLevels, fn as isAvatarHttpUrl, fo as isBlockedObjectKey, fr as resolveDefaultModelForAgent, ft as normalizeAccountId$3, g as DEFAULT_AGENT_WORKSPACE_DIR, gi as resolveModelThinkingCapability, gn as getConfigOverrides, go as isCronSessionKey, gr as resolveThinkingDefault, gs as shortenHomePath, gt as extractToolCallNames, h as DEFAULT_AGENTS_FILENAME, hi as normalizeThinkLevel, hn as validateJsonSchemaValue, ho as isAcpSessionKey, hr as resolveSubagentSpawnModelSelection, hs as shortenHomeInString, ht as countToolResults, i as resolveAgentConfig, ia as getChannelDock, ii as resolveAuthProfileDisplayLabel, in as resolveIMessageAttachmentRoots, io as normalizeAgentId, ir as buildModelAliasIndex, is as ensureDir$3, it as updateSessionStoreEntry, j as listChatChannels, ja as listEnabledTelegramAccounts, ji as formatErrorMessage, jn as buildEnforcedShellCommand, jo as GATEWAY_CLIENT_IDS, jr as normalizeModelCatalogProviderId, js as theme, jt as mergeSessionEntry, k as createSubsystemLogger, ka as resolveCliName, ki as resolvePathViaExistingAncestorSync, kn as validateSafeBinArgv, ko as resolveGatewayMessageChannel, kr as mergeModelCatalogRowsByAuthority, ks as colorize, kt as resolveThreadFlag, l as resolveAgentWorkspaceDir, la as hasAnyWhatsAppAuth, li as splitTrailingAuthProfile, ln as parseDurationMs, lo as DEFAULT_ACCOUNT_ID, lr as normalizeProviderId$1, lt as mergeDeliveryContext, m as resolveSessionAgentIds, ma as logoutWeb, mn as isSupportedLocalAvatarExtension, mo as getSubagentDepth, mr as resolveReasoningDefault, mt as capArrayByJsonBytes, n as listAgentEntries, na as listChannelPlugins, ni as resolveFasedAgentPackageRoot, nn as isInboundPathAllowed, nr as buildAllowedModelSet, ns as clampInt, nt as updateLastRoute, oa as isWhatsAppGroupJid, oi as normalizeSecretInput, on as normalizeScpRemoteHost, oo as resolveAgentIdFromSessionKey, or as isCliProvider, os as formatTerminalLink, ot as resolveCacheTtlMs$1, p as resolveSessionAgentId, pa as logWebSelfId, pi as formatXHighModelHint, pn as isPathWithinRoot, po as deriveSessionChatType, pr as resolveModelRefFromString, ps as resolveUserPath, pt as archiveSessionTranscripts, q as appendAssistantMessageToSessionTranscript, qa as resolveDiscordAccount, qi as getShellPathFromLoginShell, qn as applyMergePatch, qo as resolveLeastPrivilegeOperatorScopesForMethod, qr as resolveAuthStorePathForDisplay, qt as readConfigFileSnapshot, r as listAgentIds, ra as normalizeChannelId$1, ri as resolveFasedAgentPackageRootSync, rn as mergeInboundPathRoots, ro as classifySessionKeyShape, rr as buildConfiguredAllowlistKeys, rt as updateSessionStore, s as resolveAgentModelFallbacksOverride, sa as normalizeWhatsAppTarget, si as assertSecretInputResolved, sn as MODEL_APIS, so as resolveThreadSessionKeys, sr as modelKey, ss as isRecord$3, st as deliveryContextFromSession, t as hasConfiguredModelFallbacks, ta as getChannelPlugin, ti as safeStatSync, tn as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, tr as resolveAgentMaxConcurrent, tt as recordSessionMetaFromInbound, u as resolveDefaultAgentId, ua as resolveWhatsAppAccount, ui as isOpenAISignInRuntimeModelSupported, un as AVATAR_MAX_BYTES, uo as normalizeAccountId$2, us as normalizeE164, ut as normalizeDeliveryContext, v as DEFAULT_HEARTBEAT_FILENAME, va as readWebSelfId, vi as DEFAULT_CONTEXT_TOKENS, vn as setConfigOverride, vo as parseAgentSessionKey, vr as getApiKeyForModel, vs as sliceUtf16Safe, vt as INPUT_PROVENANCE_KIND_VALUES, w as filterBootstrapFilesForSession, wa as defaultRuntime, wi as openBoundaryFile, wn as ensurePluginAllowlisted, wo as isGatewayMessageChannel, wr as CURRENT_MODEL_PROVIDER_CATALOG, ws as logVerbose, wt as resolveSessionKey$1, x as DEFAULT_TOOLS_FILENAME, xi as VERSION, xn as parseConfigPath, xo as resolveGroupSessionKey, xr as resolveApiKeyForProvider, xs as isPlainObject, xt as normalizeInputProvenance, y as DEFAULT_IDENTITY_FILENAME, yi as DEFAULT_MODEL, yn as unsetConfigOverride, yo as resolveThreadParentSessionKey, yr as getCustomProviderApiKey, yt as applyInputProvenanceToUserMessage, z as createRuntimeHelpers, za as resolveSlackAccount, zi as spawnWithFallback, zn as isDispatchWrapperExecutable, zo as normalizePluginsConfig, zr as resolveProfilesUnavailableReason, zs as triggerInternalHook, zt as resolveStorePath } from "./agent-scope-BYecP9O5.js";
3
- import { a as saveJsonFile, f as resolveStateDir, h as resolveRequiredHomeDir, i as loadJsonFile, l as resolveGatewayPort, o as STATE_DIR, p as expandHomePrefix, s as resolveConfigPath } from "./github-copilot-token-eyrRGmGp.js";
2
+ import { $ as loadSessionStore, $i as resolveOwnerDisplaySetting, $o as matchPluginCommand, $r as discoverFasedAgentPlugins, $t as normalizeTelegramCommandName, A as getChatChannelMeta, Aa as createTelegramActionGate, Ai as extractErrorCode, An as analyzeShellCommand, Ao as resolveMessageChannel, Ar as normalizeModelCatalogModelId, As as isRich, At as DEFAULT_RESET_TRIGGERS, B as loadCombinedSessionStoreForGateway, Ba as resolveSlackAppToken, Bi as logDebug, Bn as isShellWrapperExecutable, Bo as resolveEffectiveEnableState, Br as resolveApiKeyForProfile, Bs as resolveAgentModelFallbackValues, Bt as canonicalizeMainSessionAlias, C as ensureAgentWorkspace, Ca as createNonExitingRuntime, Cn as unsetConfigValueAtPath, Co as isDeliverableMessageChannel, Cr as resolveModelAuthMode, Ct as resolveSessionLockMaxHoldFromTimeout, Da as unregisterActiveProgressLine, Dn as listWritableExplicitTrustedSafeBinDirs, Do as listDeliverableMessageChannels, Dr as retryAsync, Dt as resolveSessionResetPolicy, E as loadWorkspaceBootstrapFiles, Ea as registerActiveProgressLine, En as isTrustedSafeBinPath, Eo as isMarkdownCapableMessageChannel, Es as shouldLogVerbose, Et as resolveChannelResetConfig, F as getActivePluginRegistryKey, Fa as buildChannelAccountBindings, Fi as redactToolDetail, Fn as matchAllowlist, Fo as normalizeHyphenSlug, Fr as getSoonestCooldownExpiry, Fs as resolvePreferredFasedAgentTmpDir, Ft as resolveSessionFilePath, G as extractDeliveryInfo, Ga as createDiscordActionGate, Gn as normalizeSafeBinProfileFixtures, Go as ADMIN_SCOPE, Gr as markAuthProfileGood, Gt as loadConfig, H as resolveContextTokensForModel, Ha as listEnabledSignalAccounts, Hi as logInfo, Hn as unwrapKnownShellMultiplexerInvocation, Ho as CHANNEL_IDS, Hr as dedupeProfileIds, Hs as toAgentModelListLike, Ht as resolveExplicitAgentSessionKey, I as requireActivePluginRegistry, Ii as compileSafeRegex, In as resolveAllowlistCandidatePath, Io as normalizeStringEntries, Ir as isProfileInCooldown, Is as createInternalHookEvent, It as resolveSessionFilePathOptions, J as resolveMirroredTranscriptText, Ja as normalizeDiscordToken, Ji as resolveShellEnvFallbackTimeoutMs, Jn as isSafeExecutableValue, Jo as normalizePluginHttpPath, Jr as resolveFasedAgentAgentDir, Jt as readConfigFileSnapshotForWrite, K as parseSessionThreadInfo, Ka as listEnabledDiscordAccounts, Kn as resolveSafeBinProfiles, Ko as CLI_DEFAULT_OPERATOR_SCOPES, Kr as ensureAuthProfileStore, Kt as parseConfigJson5, L as setActivePluginRegistry, La as isTruthyEnvValue, Li as runCommandWithTimeout, Ln as resolveCommandResolutionFromArgv, Lo as normalizeStringEntriesLower, Lr as markAuthProfileFailure, Lt as resolveSessionTranscriptPath, M as normalizeAnyChannelId, Ma as listTelegramAccountIds, Mi as formatUncaughtError, Mn as isWindowsPlatform, Mo as GATEWAY_CLIENT_MODES, Mr as normalizeProviderCatalogRows, Ms as getChildLogger, Mt as resolveFreshSessionTotalTokens, N as normalizeChannelId$2, Na as resolveTelegramAccount, Nn as splitCommandChain, No as GATEWAY_CLIENT_NAMES, Nt as setSessionRuntimeModel, Oa as formatCliCommand, On as normalizeTrustedSafeBinDirs, Oo as normalizeMessageChannel, Or as buildModelCatalogMergeKey, Os as warn, Ot as resolveSessionResetType, P as getActivePluginRegistry, Pa as resolveTelegramToken, Pi as redactSensitiveText, Pn as DEFAULT_SAFE_BINS, Po as normalizeAtHashSlug, Pr as resolveAuthProfileOrder, Ps as normalizeLogLevel, Pt as resolveDefaultSessionStorePath, Qa as DEFAULT_AGENT_ID, Qi as sanitizeHostExecEnv, Qn as resolveSlackStreamingMode, Qo as listPluginCommands, Qr as loadPluginManifestRegistry, Qt as TELEGRAM_COMMAND_NAME_PATTERN, R as createPluginRegistry, Ra as parseBooleanValue$1, Ri as runExec, Rn as extractShellWrapperInlineCommand, Ro as applyTestPluginDefaults, Rr as markAuthProfileUsed, Rt as resolveSessionTranscriptsDirForAgent, S as DEFAULT_USER_FILENAME, Sa as webAuthExists, Si as getPackageManifestMetadata, Sn as setConfigValueAtPath, So as INTERNAL_MESSAGE_CHANNEL, Sr as resolveEnvApiKey, Ss as danger, St as acquireSessionWriteLock, Ta as clearActiveProgressLine, Ti as openBoundaryFileSync, Tn as getTrustedSafeBinDirs, To as isInternalMessageChannel, Tr as listCurrentModelCatalogRows, Ts as setVerbose, Tt as evaluateSessionFreshness, U as ensureFasedAgentModelsJson, Ua as resolveSignalAccount, Ui as logWarn, Un as splitShellArgs, Uo as CHAT_CHANNEL_ORDER, Ur as listProfilesForProvider, Ut as resolveMainSessionKey, V as lookupContextTokens, Va as resolveSlackBotToken, Vi as logError, Vn as unwrapKnownDispatchWrapperInvocation, Vo as resolveMemorySlotDecision, Vr as runTasksWithConcurrency, Vs as resolveAgentModelPrimaryValue, Vt as resolveAgentMainSessionKey, Wa as resolveIMessageAccount, Wn as SAFE_BIN_PROFILES, Wo as normalizeChatChannelId, Wr as listProvidersWithStoredCredentials, Wt as createConfigIO, X as resolveAndPersistSessionFile, Xa as resolveChannelGroupRequireMention, Xn as resolveDiscordPreviewStreamMode, Xo as executePluginCommand, Xr as findNormalizedProviderValue$1, Xt as writeConfigFile, Y as resolveSessionTranscriptFile, Ya as resolveChannelGroupPolicy, Yi as isDangerousHostEnvOverrideVarName, Yn as mapStreamingModeToSlackLegacyDraftStreamMode, Yo as clearPluginCommands, Yr as withFileLock, Yt as resolveConfigSnapshotHash, Z as emitSessionTranscriptUpdate, Za as resolveChannelGroupToolsPolicy, Zi as isDangerousHostInheritedEnvVarName, Zn as resolveSlackNativeStreaming, Zo as getPluginCommandSpecs, Zr as normalizeProviderId$2, Zt as validateConfigObjectWithPlugins, _ as DEFAULT_BOOTSTRAP_FILENAME, _i as supportsXHighThinking, _n as resetConfigOverrides, _o as isSubagentSessionKey, _r as normalizeGoogleModelId, _s as sleep$1, _t as parseInlineDirectives$1, a as resolveAgentDir, aa as listChannelDocks, ai as isPrivateNetworkBaseUrl, an as resolveIMessageRemoteAttachmentRoots, ao as normalizeMainKey, ar as findNormalizedProviderValue, as as escapeRegExp, at as isCacheEnabled, b as DEFAULT_SOUL_FILENAME, bi as DEFAULT_PROVIDER, bn as getConfigValueAtPath, bo as resolveAccountEntry, br as requireApiKey, bs as truncateUtf16Safe, bt as hasInterSessionUserProvenance, c as resolveAgentSkillsFilter, ca as normalizeSignalMessagingTarget, ci as coerceSecretRef, cn as getBlockedNetworkModeReason, co as sanitizeAgentId, cr as normalizeModelRef$2, ct as deliveryContextKey, d as resolveEffectiveModelFallbacks, di as lookupProviderManifestModelCapability, dn as isAvatarDataUrl, do as normalizeOptionalAccountId, dr as resolveConfiguredModelRef, dt as normalizeSessionDeliveryFields, ea as deriveSessionMetaPatch, ei as isPathInside, en as resolveTelegramCustomCommands, eo as buildAgentMainSessionKey, er as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, es as CONFIG_DIR, et as readSessionUpdatedAt, f as resolveRunModelFallbacksOverride, fa as getWebAuthAgeMs, fi as formatThinkingLevels, fn as isAvatarHttpUrl, fo as isBlockedObjectKey, fr as resolveDefaultModelForAgent, ft as normalizeAccountId$3, g as DEFAULT_AGENT_WORKSPACE_DIR, gi as resolveModelThinkingCapability, gn as getConfigOverrides, go as isCronSessionKey, gr as resolveThinkingDefault, gs as shortenHomePath, gt as extractToolCallNames, h as DEFAULT_AGENTS_FILENAME, hi as normalizeThinkLevel, hn as validateJsonSchemaValue, ho as isAcpSessionKey, hr as resolveSubagentSpawnModelSelection, hs as shortenHomeInString, ht as countToolResults, i as resolveAgentConfig, ia as getChannelDock, ii as resolveAuthProfileDisplayLabel, in as resolveIMessageAttachmentRoots, io as normalizeAgentId, ir as buildModelAliasIndex, is as ensureDir$3, it as updateSessionStoreEntry, j as listChatChannels, ja as listEnabledTelegramAccounts, ji as formatErrorMessage, jn as buildEnforcedShellCommand, jo as GATEWAY_CLIENT_IDS, jr as normalizeModelCatalogProviderId, js as theme, jt as mergeSessionEntry, k as createSubsystemLogger, ka as resolveCliName, ki as resolvePathViaExistingAncestorSync, kn as validateSafeBinArgv, ko as resolveGatewayMessageChannel, kr as mergeModelCatalogRowsByAuthority, ks as colorize, kt as resolveThreadFlag, l as resolveAgentWorkspaceDir, la as hasAnyWhatsAppAuth, li as splitTrailingAuthProfile, ln as parseDurationMs, lo as DEFAULT_ACCOUNT_ID, lr as normalizeProviderId$1, lt as mergeDeliveryContext, m as resolveSessionAgentIds, ma as logoutWeb, mn as isSupportedLocalAvatarExtension, mo as getSubagentDepth, mr as resolveReasoningDefault, mt as capArrayByJsonBytes, n as listAgentEntries, na as listChannelPlugins, ni as resolveFasedAgentPackageRoot, nn as isInboundPathAllowed, nr as buildAllowedModelSet, ns as clampInt, nt as updateLastRoute, oa as isWhatsAppGroupJid, oi as normalizeSecretInput, on as normalizeScpRemoteHost, oo as resolveAgentIdFromSessionKey, or as isCliProvider, os as formatTerminalLink, ot as resolveCacheTtlMs$1, p as resolveSessionAgentId, pa as logWebSelfId, pi as formatXHighModelHint, pn as isPathWithinRoot, po as deriveSessionChatType, pr as resolveModelRefFromString, ps as resolveUserPath, pt as archiveSessionTranscripts, q as appendAssistantMessageToSessionTranscript, qa as resolveDiscordAccount, qi as getShellPathFromLoginShell, qn as applyMergePatch, qo as resolveLeastPrivilegeOperatorScopesForMethod, qr as resolveAuthStorePathForDisplay, qt as readConfigFileSnapshot, r as listAgentIds, ra as normalizeChannelId$1, ri as resolveFasedAgentPackageRootSync, rn as mergeInboundPathRoots, ro as classifySessionKeyShape, rr as buildConfiguredAllowlistKeys, rt as updateSessionStore, s as resolveAgentModelFallbacksOverride, sa as normalizeWhatsAppTarget, si as assertSecretInputResolved, sn as MODEL_APIS, so as resolveThreadSessionKeys, sr as modelKey, ss as isRecord$3, st as deliveryContextFromSession, t as hasConfiguredModelFallbacks, ta as getChannelPlugin, ti as safeStatSync, tn as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, tr as resolveAgentMaxConcurrent, tt as recordSessionMetaFromInbound, u as resolveDefaultAgentId, ua as resolveWhatsAppAccount, ui as isOpenAISignInRuntimeModelSupported, un as AVATAR_MAX_BYTES, uo as normalizeAccountId$2, us as normalizeE164, ut as normalizeDeliveryContext, v as DEFAULT_HEARTBEAT_FILENAME, va as readWebSelfId, vi as DEFAULT_CONTEXT_TOKENS, vn as setConfigOverride, vo as parseAgentSessionKey, vr as getApiKeyForModel, vs as sliceUtf16Safe, vt as INPUT_PROVENANCE_KIND_VALUES, w as filterBootstrapFilesForSession, wa as defaultRuntime, wi as openBoundaryFile, wn as ensurePluginAllowlisted, wo as isGatewayMessageChannel, wr as CURRENT_MODEL_PROVIDER_CATALOG, ws as logVerbose, wt as resolveSessionKey$1, x as DEFAULT_TOOLS_FILENAME, xi as VERSION, xn as parseConfigPath, xo as resolveGroupSessionKey, xr as resolveApiKeyForProvider, xs as isPlainObject, xt as normalizeInputProvenance, y as DEFAULT_IDENTITY_FILENAME, yi as DEFAULT_MODEL, yn as unsetConfigOverride, yo as resolveThreadParentSessionKey, yr as getCustomProviderApiKey, yt as applyInputProvenanceToUserMessage, z as createRuntimeHelpers, za as resolveSlackAccount, zi as spawnWithFallback, zn as isDispatchWrapperExecutable, zo as normalizePluginsConfig, zr as resolveProfilesUnavailableReason, zs as triggerInternalHook, zt as resolveStorePath } from "./agent-scope-Bx0XQq3s.js";
3
+ import { a as saveJsonFile, f as resolveStateDir, h as resolveRequiredHomeDir, i as loadJsonFile, l as resolveGatewayPort, o as STATE_DIR, p as expandHomePrefix, s as resolveConfigPath } from "./github-copilot-token-DYrFvncE.js";
4
4
  import { n as resolveConversationLabel, r as normalizeChatType } from "./conversation-label-BNq0hhpR.js";
5
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, d as isSilentReplyPrefixText, f as isSilentReplyText, i as createSlackWebClient, l as HEARTBEAT_TOKEN, m as resolveSlackChannelId, o as parseSlackBlocksInput, p as parseSlackTarget, s as validateSlackBlocksArray, t as sendMessageSlack, u as SILENT_REPLY_TOKEN } from "./send-BqgaWpoE.js";
6
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DQ3s5E33.js";
5
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, d as isSilentReplyPrefixText, f as isSilentReplyText, i as createSlackWebClient, l as HEARTBEAT_TOKEN, m as resolveSlackChannelId, o as parseSlackBlocksInput, p as parseSlackTarget, s as validateSlackBlocksArray, t as sendMessageSlack, u as SILENT_REPLY_TOKEN } from "./send-BohOQw4n.js";
6
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D2IXnEJl.js";
7
7
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CSsVRTTy.js";
8
- import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BYQE13k1.js";
8
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-C6MSQFZF.js";
9
9
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CexmAKza.js";
10
10
  import { t as redactIdentifier } from "./redact-identifier-Cy6Tnhkn.js";
11
- import { $ as readChannelAllowFromStore, A as extractTelegramLocation, B as normalizeAllowFrom$2, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as mergeDmAllowFromSources, H as resolveSenderAllowMatch, I as resolveTelegramReplyId, J as toLocationContext, K as resolveGroupAllowFromSources, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as addChannelAllowFromStoreEntry, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as firstDefined$2, V as normalizeDmAllowFromWithStore$1, W as isSenderIdAllowed, X as resolveCronStorePath, Y as loadCronStore, Z as saveCronStore, _ as resolveTelegramFetch, a as reactMessageTelegram, at as listPairingChannels, b as buildGroupLabel, c as sendStickerTelegram, ct as resolveTelegramTargetChatType, d as wasSentByBot, et as removeChannelAllowFromStoreEntry, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, it as getPairingAdapter, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as readJsonFileWithFallback, o as sendMessageTelegram, ot as isVoiceCompatibleAudio, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, rt as writeJsonFileAtomically, s as sendPollTelegram, st as parseTelegramTarget, t as buildInlineKeyboard, tt as upsertChannelPairingRequest, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-B-sa1Rzn.js";
12
- import { E as mediaKindFromMime, S as kindFromMime, _ as extensionForMime, a as buildImageResizeSideGrid, b as isAudioFileName, c as MediaFetchError, g as detectMime, h as getDefaultMediaLocalRoots, i as IMAGE_REDUCE_QUALITY_STEPS, l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia, o as getImageMetadata, s as resizeToJpeg, t as getDefaultLocalRoots, u as readResponseWithLimit, v as getFileExtension, w as MAX_IMAGE_BYTES, x as isGifMedia, y as imageMimeFromFormat } from "./media-93Hw7QIY.js";
13
- import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery--TE7j7VE.js";
14
- import { B as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, C as assertBrowserNavigationAllowed, D as fetchJson$1, E as appendCdpPath, F as isLoopbackHost, G as DEFAULT_FASED_BROWSER_COLOR, H as DEFAULT_AI_SNAPSHOT_MAX_CHARS, I as isSecureWebSocketUrl, K as DEFAULT_FASED_BROWSER_ENABLED, L as isTrustedProxyAddress, M as stopChromeExtensionRelayServer, N as rawDataToString, O as fetchOk, P as isLoopbackAddress, R as resolveClientIp, S as InvalidBrowserNavigationUrlError, T as withBrowserNavigationPolicy, U as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, W as DEFAULT_BROWSER_EVALUATE_ENABLED, _ as captureScreenshot, b as normalizeCdpWsUrl, c as normalizeBrowserFormField, d as isChromeReachable, f as launchFasedAgentChrome, g as resolveLsofCommandSync, h as resolveBrowserExecutableForPlatform, i as resolveExistingPathsWithinRoot, j as ensureChromeExtensionRelayServer, m as stopFasedAgentChrome, n as DEFAULT_TRACE_DIR, o as resolveWritablePathWithinRoot, p as resolveFasedAgentUserDataDir, q as DEFAULT_FASED_BROWSER_PROFILE_NAME, r as DEFAULT_UPLOAD_DIR, t as DEFAULT_DOWNLOAD_DIR, u as isChromeCdpReady, v as createTargetViaCdp, w as assertBrowserNavigationResultAllowed, x as snapshotAria, z as resolveForwardedClientIp } from "./paths-DBTQPSY5.js";
11
+ import { $ as readChannelAllowFromStore, A as extractTelegramLocation, B as normalizeAllowFrom$2, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as mergeDmAllowFromSources, H as resolveSenderAllowMatch, I as resolveTelegramReplyId, J as toLocationContext, K as resolveGroupAllowFromSources, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as addChannelAllowFromStoreEntry, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as firstDefined$2, V as normalizeDmAllowFromWithStore$1, W as isSenderIdAllowed, X as resolveCronStorePath, Y as loadCronStore, Z as saveCronStore, _ as resolveTelegramFetch, a as reactMessageTelegram, at as listPairingChannels, b as buildGroupLabel, c as sendStickerTelegram, ct as resolveTelegramTargetChatType, d as wasSentByBot, et as removeChannelAllowFromStoreEntry, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, it as getPairingAdapter, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as readJsonFileWithFallback, o as sendMessageTelegram, ot as isVoiceCompatibleAudio, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, rt as writeJsonFileAtomically, s as sendPollTelegram, st as parseTelegramTarget, t as buildInlineKeyboard, tt as upsertChannelPairingRequest, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-CqQ88clX.js";
12
+ import { E as mediaKindFromMime, S as kindFromMime, _ as extensionForMime, a as buildImageResizeSideGrid, b as isAudioFileName, c as MediaFetchError, g as detectMime, h as getDefaultMediaLocalRoots, i as IMAGE_REDUCE_QUALITY_STEPS, l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia, o as getImageMetadata, s as resizeToJpeg, t as getDefaultLocalRoots, u as readResponseWithLimit, v as getFileExtension, w as MAX_IMAGE_BYTES, x as isGifMedia, y as imageMimeFromFormat } from "./media-CInvDVc0.js";
13
+ import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-C1CAe7eM.js";
14
+ import { B as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, C as assertBrowserNavigationAllowed, D as fetchJson$1, E as appendCdpPath, F as isLoopbackHost, G as DEFAULT_FASED_BROWSER_COLOR, H as DEFAULT_AI_SNAPSHOT_MAX_CHARS, I as isSecureWebSocketUrl, K as DEFAULT_FASED_BROWSER_ENABLED, L as isTrustedProxyAddress, M as stopChromeExtensionRelayServer, N as rawDataToString, O as fetchOk, P as isLoopbackAddress, R as resolveClientIp, S as InvalidBrowserNavigationUrlError, T as withBrowserNavigationPolicy, U as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, W as DEFAULT_BROWSER_EVALUATE_ENABLED, _ as captureScreenshot, b as normalizeCdpWsUrl, c as normalizeBrowserFormField, d as isChromeReachable, f as launchFasedAgentChrome, g as resolveLsofCommandSync, h as resolveBrowserExecutableForPlatform, i as resolveExistingPathsWithinRoot, j as ensureChromeExtensionRelayServer, m as stopFasedAgentChrome, n as DEFAULT_TRACE_DIR, o as resolveWritablePathWithinRoot, p as resolveFasedAgentUserDataDir, q as DEFAULT_FASED_BROWSER_PROFILE_NAME, r as DEFAULT_UPLOAD_DIR, t as DEFAULT_DOWNLOAD_DIR, u as isChromeCdpReady, v as createTargetViaCdp, w as assertBrowserNavigationResultAllowed, x as snapshotAria, z as resolveForwardedClientIp } from "./paths-zdeD1PNp.js";
15
15
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DYsl9qoS.js";
16
16
  import { n as redactSensitiveUrlLikeString, t as redactSensitiveUrl } from "./redact-sensitive-url-Dp_gOi-q.js";
17
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DZjj9KHV.js";
18
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DyTCSx8q.js";
19
- import { a as writeFileWithinRoot, n as openFileWithinRoot, r as readFileWithinRoot, t as SafeOpenError } from "./fs-safe-T802CTm-.js";
20
- import { C as createAsyncLock, S as resolvePairingPaths, T as writeJsonAtomic, _ as assertSandboxPath, b as resolveSandboxedMediaSource, c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, g as assertMediaNotDataUrl, h as sanitizeEnvVars, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries, v as resolveSandboxInputPath, w as readJsonFile$1, x as pruneExpiredPending, y as resolveSandboxPath } from "./skill-commands-HOHDwVYx.js";
21
- import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-KatG8h1H.js";
22
- import { n as resolveMarkdownTableMode } from "./markdown-tables-KcZiNfqg.js";
23
- import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Bhj3bXKi.js";
17
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DVyUjzCQ.js";
18
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Dalcwl5X.js";
19
+ import { a as writeFileWithinRoot, n as openFileWithinRoot, r as readFileWithinRoot, t as SafeOpenError } from "./fs-safe-CrX7hR24.js";
20
+ import { C as createAsyncLock, S as resolvePairingPaths, T as writeJsonAtomic, _ as assertSandboxPath, b as resolveSandboxedMediaSource, c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, g as assertMediaNotDataUrl, h as sanitizeEnvVars, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries, v as resolveSandboxInputPath, w as readJsonFile$1, x as pruneExpiredPending, y as resolveSandboxPath } from "./skill-commands-LW0SeGsB.js";
21
+ import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-CiQeXMLG.js";
22
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-C-HEtwaC.js";
23
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Ps08x526.js";
24
24
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ByUoGUeM.js";
25
- import { t as fetchWithSsrFGuard } from "./fetch-guard-CNlKZ01R.js";
26
- import { i as saveMediaBuffer, n as ensureMediaDir, r as getMediaDir } from "./outbound-attachment-DILp822M.js";
27
- import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CYWabNXm.js";
28
- import { t as resolveMemorySearchConfig } from "./memory-search-CueDEO0U.js";
29
- import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-ZRPdFyMZ.js";
30
- import { c as normalizeExtraMemoryPaths, s as listMemoryFiles } from "./internal-CGfrGFGR.js";
31
- import { i as resolveQmdScopeDenial } from "./qmd-scope-Byk5KlGv.js";
32
- import { _ as sanitizeToolResultImages, a as createActionGate, b as estimateBase64DecodedBytes, c as jsonResult, d as readReactionParams, f as readStringArrayParam, g as sanitizeImageBlocks, h as sanitizeContentBlocksImages, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam, v as resolveImageSanitizationLimits, y as canonicalizeBase64 } from "./target-errors-iZTI1Fwr.js";
33
- import { C as isRestartEnabled, S as isNativeCommandsExplicitlyDisabled, T as resolveNativeSkillsEnabled, _ as normalizeReasoningLevel, a as listChatCommands, b as resolveResponseUsageMode, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, g as normalizeElevatedLevel, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody, v as normalizeUsageDisplay, w as resolveNativeCommandsEnabled, x as isCommandFlagEnabled, y as normalizeVerboseLevel } from "./commands-registry-CG-_VuYC.js";
25
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-DdMratk8.js";
26
+ import { i as saveMediaBuffer, n as ensureMediaDir, r as getMediaDir } from "./outbound-attachment-BL6wK70V.js";
27
+ import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BwkjkjT6.js";
28
+ import { t as resolveMemorySearchConfig } from "./memory-search-BZt8FFLW.js";
29
+ import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-BfodMNDG.js";
30
+ import { c as normalizeExtraMemoryPaths, s as listMemoryFiles } from "./internal-QlbJb-4V.js";
31
+ import { i as resolveQmdScopeDenial } from "./qmd-scope-CL7VCB5M.js";
32
+ import { _ as sanitizeToolResultImages, a as createActionGate, b as estimateBase64DecodedBytes, c as jsonResult, d as readReactionParams, f as readStringArrayParam, g as sanitizeImageBlocks, h as sanitizeContentBlocksImages, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam, v as resolveImageSanitizationLimits, y as canonicalizeBase64 } from "./target-errors-C3MQ1_UT.js";
33
+ import { C as isRestartEnabled, S as isNativeCommandsExplicitlyDisabled, T as resolveNativeSkillsEnabled, _ as normalizeReasoningLevel, a as listChatCommands, b as resolveResponseUsageMode, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, g as normalizeElevatedLevel, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody, v as normalizeUsageDisplay, w as resolveNativeCommandsEnabled, x as isCommandFlagEnabled, y as normalizeVerboseLevel } from "./commands-registry-t0hu8c_Z.js";
34
34
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-B0OuvpCZ.js";
35
35
  import { n as normalizePollInput } from "./polls-CYTwXmA1.js";
36
36
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BvR7Vq1g.js";
37
- import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-C1YtjPQb.js";
38
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3-NnOVE.js";
39
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D69hLBEQ.js";
40
- import { t as convertMarkdownTables } from "./tables-BQMYTcw_.js";
37
+ import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-D8eFKkkd.js";
38
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dc1L-NXd.js";
39
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BvC4RbBO.js";
40
+ import { t as convertMarkdownTables } from "./tables-CjmIs23-.js";
41
41
  import { t as makeProxyFetch } from "./proxy-DkRPPIHD.js";
42
42
  import { t as resolveHookConfig } from "./config-CtKjZZ4x.js";
43
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-oXYe4wxf.js";
44
- import { t as getActiveWebListener } from "./active-listener-Dmc7Xtuo.js";
43
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DEtI8EHM.js";
44
+ import { t as getActiveWebListener } from "./active-listener-Bw8DT1EX.js";
45
45
  import { createRequire } from "node:module";
46
- import * as fs$1 from "node:fs/promises";
46
+ import * as fs$2 from "node:fs/promises";
47
47
  import fs, { appendFile, mkdir } from "node:fs/promises";
48
48
  import os, { homedir } from "node:os";
49
49
  import * as path$1 from "node:path";
50
50
  import path, { isAbsolute, posix } from "node:path";
51
- import syncFs, { constants, existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
51
+ import fs$1, { constants, existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
52
52
  import JSON5 from "json5";
53
53
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
54
54
  import crypto, { X509Certificate, createDecipheriv, createHash, createHmac, randomBytes, randomUUID, scryptSync, timingSafeEqual } from "node:crypto";
@@ -4872,7 +4872,7 @@ function resolveSatRuntimeDefaultsFile(env = process.env) {
4872
4872
  path.resolve(import.meta.dirname, "..", "..", "config", "sat-runtime.env"),
4873
4873
  path.resolve(import.meta.dirname, "..", "..", "..", "config", "sat-runtime.env")
4874
4874
  ];
4875
- for (const candidate of candidates) if (candidate && syncFs.existsSync(candidate)) return candidate;
4875
+ for (const candidate of candidates) if (candidate && fs$1.existsSync(candidate)) return candidate;
4876
4876
  return null;
4877
4877
  }
4878
4878
  function loadSatRuntimeDefaults(env = process.env) {
@@ -4880,7 +4880,7 @@ function loadSatRuntimeDefaults(env = process.env) {
4880
4880
  if (explicit) return explicit;
4881
4881
  const file = resolveSatRuntimeDefaultsFile(env);
4882
4882
  if (!file) return null;
4883
- const parsed = parseEnvFile(syncFs.readFileSync(file, "utf8"));
4883
+ const parsed = parseEnvFile(fs$1.readFileSync(file, "utf8"));
4884
4884
  if (!parsed.programId || !parsed.bondProgramId || !parsed.mintAddress || !parsed.mintProgramId) return null;
4885
4885
  return {
4886
4886
  programId: parsed.programId,
@@ -4987,12 +4987,12 @@ function resolveWalletStatePaths(env = process.env) {
4987
4987
  }
4988
4988
  function ensureWalletStateDir(env = process.env) {
4989
4989
  const paths = resolveWalletStatePaths(env);
4990
- syncFs.mkdirSync(paths.rootDir, {
4990
+ fs$1.mkdirSync(paths.rootDir, {
4991
4991
  recursive: true,
4992
4992
  mode: 448
4993
4993
  });
4994
4994
  try {
4995
- syncFs.chmodSync(paths.rootDir, 448);
4995
+ fs$1.chmodSync(paths.rootDir, 448);
4996
4996
  } catch {}
4997
4997
  return paths;
4998
4998
  }
@@ -5288,9 +5288,9 @@ function normalizeRegistry(raw) {
5288
5288
  }
5289
5289
  function readWalletProviderRegistry(env = process.env) {
5290
5290
  const file = registryPath(env);
5291
- if (!syncFs.existsSync(file)) return makeDefaultRegistry();
5291
+ if (!fs$1.existsSync(file)) return makeDefaultRegistry();
5292
5292
  try {
5293
- const normalized = normalizeRegistry(JSON.parse(syncFs.readFileSync(file, "utf8")));
5293
+ const normalized = normalizeRegistry(JSON.parse(fs$1.readFileSync(file, "utf8")));
5294
5294
  if (normalized.changed) writeWalletProviderRegistry(normalized.registry, env);
5295
5295
  return normalized.registry;
5296
5296
  } catch {
@@ -5304,12 +5304,12 @@ function writeWalletProviderRegistry(registry, env = process.env) {
5304
5304
  version: 1,
5305
5305
  updatedAt: nowIso$2()
5306
5306
  };
5307
- syncFs.writeFileSync(file, `${JSON.stringify(payload, null, 2)}\n`, {
5307
+ fs$1.writeFileSync(file, `${JSON.stringify(payload, null, 2)}\n`, {
5308
5308
  encoding: "utf8",
5309
5309
  mode: REGISTRY_FILE_MODE
5310
5310
  });
5311
5311
  try {
5312
- syncFs.chmodSync(file, REGISTRY_FILE_MODE);
5312
+ fs$1.chmodSync(file, REGISTRY_FILE_MODE);
5313
5313
  } catch {}
5314
5314
  }
5315
5315
  function resolveWalletSelectionForAgent(params) {
@@ -6313,7 +6313,7 @@ var EmbeddedKeystoreAdapter = class {
6313
6313
  checkedAt: (/* @__PURE__ */ new Date()).toISOString(),
6314
6314
  details: "missing embedded keystore config (FASED_WALLET_KEYSTORE_PATH, FASED_WALLET_PASSPHRASE, FASED_WALLET_[EMBEDDED_KEYSTORE_]RPC_URL)"
6315
6315
  };
6316
- if (!syncFs.existsSync(this.keystorePath)) return {
6316
+ if (!fs$1.existsSync(this.keystorePath)) return {
6317
6317
  ok: false,
6318
6318
  provider: this.id,
6319
6319
  configured: true,
@@ -6321,7 +6321,7 @@ var EmbeddedKeystoreAdapter = class {
6321
6321
  details: `keystore file not found: ${this.keystorePath}`
6322
6322
  };
6323
6323
  try {
6324
- if (detectKeystoreType(await syncFs.promises.readFile(this.keystorePath, "utf8")) !== "solana-envelope") throw new Error("keystore file is not a Solana keystore envelope");
6324
+ if (detectKeystoreType(await fs$1.promises.readFile(this.keystorePath, "utf8")) !== "solana-envelope") throw new Error("keystore file is not a Solana keystore envelope");
6325
6325
  const [address, lamports] = await Promise.all([this.getSolanaAddress(), this.getSolanaBalanceLamports()]);
6326
6326
  return {
6327
6327
  ok: true,
@@ -6353,7 +6353,7 @@ var EmbeddedKeystoreAdapter = class {
6353
6353
  return result;
6354
6354
  }
6355
6355
  try {
6356
- if (detectKeystoreType(await syncFs.promises.readFile(this.keystorePath, "utf8")) === "solana-envelope") {
6356
+ if (detectKeystoreType(await fs$1.promises.readFile(this.keystorePath, "utf8")) === "solana-envelope") {
6357
6357
  if (this.supportsChain("solana")) result.solana = await this.getSolanaAddress();
6358
6358
  }
6359
6359
  return result;
@@ -6538,7 +6538,7 @@ var EmbeddedKeystoreAdapter = class {
6538
6538
  message: "embedded-keystore missing keystore path or passphrase"
6539
6539
  });
6540
6540
  this.solanaKeypairPromise ??= (async () => {
6541
- const envelope = parseSolanaKeystoreEnvelope(await syncFs.promises.readFile(this.keystorePath, "utf8"));
6541
+ const envelope = parseSolanaKeystoreEnvelope(await fs$1.promises.readFile(this.keystorePath, "utf8"));
6542
6542
  if (!envelope) throw new WalletProviderError({
6543
6543
  code: "wallet_provider_invalid_config",
6544
6544
  message: "embedded-keystore file is not a Solana keystore envelope"
@@ -6763,7 +6763,7 @@ function signerTimeoutFor(payload) {
6763
6763
  function assertSecureLocalSignerSocket(socketPath) {
6764
6764
  let stat;
6765
6765
  try {
6766
- stat = syncFs.lstatSync(socketPath);
6766
+ stat = fs$1.lstatSync(socketPath);
6767
6767
  } catch (err) {
6768
6768
  throw new WalletProviderError({
6769
6769
  code: "wallet_provider_unavailable",
@@ -7187,12 +7187,12 @@ const MASTER_KEY_BYTES = 32;
7187
7187
  const MASTER_KEY_FILENAME = "master.key";
7188
7188
  function ensureSecretsDir(env = process.env) {
7189
7189
  const dir = path.join(resolveStateDir(env), "secrets");
7190
- syncFs.mkdirSync(dir, {
7190
+ fs$1.mkdirSync(dir, {
7191
7191
  recursive: true,
7192
7192
  mode: SECRETS_DIR_MODE
7193
7193
  });
7194
7194
  try {
7195
- syncFs.chmodSync(dir, SECRETS_DIR_MODE);
7195
+ fs$1.chmodSync(dir, SECRETS_DIR_MODE);
7196
7196
  } catch {}
7197
7197
  return dir;
7198
7198
  }
@@ -7205,18 +7205,18 @@ function resolveWalletProviderSecretPath(providerId, env = process.env) {
7205
7205
  }
7206
7206
  function readOrCreateMasterKey(env = process.env) {
7207
7207
  const keyPath = resolveMasterKeyPath(env);
7208
- if (syncFs.existsSync(keyPath)) {
7209
- const raw = syncFs.readFileSync(keyPath, "utf8").trim();
7208
+ if (fs$1.existsSync(keyPath)) {
7209
+ const raw = fs$1.readFileSync(keyPath, "utf8").trim();
7210
7210
  const parsed = Buffer.from(raw, "hex");
7211
7211
  if (parsed.length === MASTER_KEY_BYTES) return parsed;
7212
7212
  }
7213
7213
  const key = randomBytes(MASTER_KEY_BYTES);
7214
- syncFs.writeFileSync(keyPath, `${key.toString("hex")}\n`, {
7214
+ fs$1.writeFileSync(keyPath, `${key.toString("hex")}\n`, {
7215
7215
  mode: SECRET_FILE_MODE,
7216
7216
  encoding: "utf8"
7217
7217
  });
7218
7218
  try {
7219
- syncFs.chmodSync(keyPath, SECRET_FILE_MODE);
7219
+ fs$1.chmodSync(keyPath, SECRET_FILE_MODE);
7220
7220
  } catch {}
7221
7221
  return key;
7222
7222
  }
@@ -7266,9 +7266,9 @@ function decryptProviderPayload(encrypted, env = process.env) {
7266
7266
  }
7267
7267
  function loadWalletProviderSecret(providerId, env = process.env) {
7268
7268
  const secretPath = resolveWalletProviderSecretPath(providerId, env);
7269
- if (!syncFs.existsSync(secretPath)) return null;
7269
+ if (!fs$1.existsSync(secretPath)) return null;
7270
7270
  try {
7271
- const value = decryptProviderPayload(JSON.parse(syncFs.readFileSync(secretPath, "utf8")), env);
7271
+ const value = decryptProviderPayload(JSON.parse(fs$1.readFileSync(secretPath, "utf8")), env);
7272
7272
  if (!value || value.providerId !== providerId) return null;
7273
7273
  return value;
7274
7274
  } catch {
@@ -7602,14 +7602,14 @@ function normalizeState(input) {
7602
7602
  }
7603
7603
  function loadState$2(env = process.env) {
7604
7604
  const statePath = resolveStatePath(env);
7605
- if (!syncFs.existsSync(statePath)) return {
7605
+ if (!fs$1.existsSync(statePath)) return {
7606
7606
  version: 2,
7607
7607
  passkeys: [],
7608
7608
  challenges: [],
7609
7609
  grants: []
7610
7610
  };
7611
7611
  try {
7612
- const raw = syncFs.readFileSync(statePath, "utf8");
7612
+ const raw = fs$1.readFileSync(statePath, "utf8");
7613
7613
  return normalizeState(JSON.parse(raw));
7614
7614
  } catch {
7615
7615
  return {
@@ -7622,12 +7622,12 @@ function loadState$2(env = process.env) {
7622
7622
  }
7623
7623
  function saveState$1(state, env = process.env) {
7624
7624
  const statePath = resolveStatePath(env);
7625
- syncFs.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, {
7625
+ fs$1.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, {
7626
7626
  encoding: "utf8",
7627
7627
  mode: 384
7628
7628
  });
7629
7629
  try {
7630
- syncFs.chmodSync(statePath, 384);
7630
+ fs$1.chmodSync(statePath, 384);
7631
7631
  } catch {}
7632
7632
  }
7633
7633
  function pruneState$1(state) {
@@ -7769,9 +7769,9 @@ function normalizeWalletUsageBucket(raw) {
7769
7769
  }
7770
7770
  function loadLedger(paths) {
7771
7771
  const fallback = defaultWalletUsageLedger();
7772
- if (!syncFs.existsSync(paths.dailyUsagePath)) return fallback;
7772
+ if (!fs$1.existsSync(paths.dailyUsagePath)) return fallback;
7773
7773
  try {
7774
- const raw = syncFs.readFileSync(paths.dailyUsagePath, "utf8");
7774
+ const raw = fs$1.readFileSync(paths.dailyUsagePath, "utf8");
7775
7775
  const parsed = JSON.parse(raw);
7776
7776
  if (parsed && parsed.version === 2 && typeof parsed.date === "string") {
7777
7777
  const walletsRaw = parsed.wallets && typeof parsed.wallets === "object" && !Array.isArray(parsed.wallets) ? parsed.wallets : {};
@@ -7799,9 +7799,9 @@ function loadLedger(paths) {
7799
7799
  return fallback;
7800
7800
  }
7801
7801
  function writeLedger(paths, ledger) {
7802
- syncFs.writeFileSync(paths.dailyUsagePath, `${JSON.stringify(ledger, null, 2)}\n`, { mode: 384 });
7802
+ fs$1.writeFileSync(paths.dailyUsagePath, `${JSON.stringify(ledger, null, 2)}\n`, { mode: 384 });
7803
7803
  try {
7804
- syncFs.chmodSync(paths.dailyUsagePath, 384);
7804
+ fs$1.chmodSync(paths.dailyUsagePath, 384);
7805
7805
  } catch {}
7806
7806
  }
7807
7807
  function resolveWalletUsageBucket(ledger, walletId) {
@@ -8007,9 +8007,9 @@ function readWalletPolicyState(env = process.env) {
8007
8007
  updatedAt: nowIso$1(),
8008
8008
  wallets: {}
8009
8009
  };
8010
- if (!syncFs.existsSync(statePath)) return fallback;
8010
+ if (!fs$1.existsSync(statePath)) return fallback;
8011
8011
  try {
8012
- const raw = syncFs.readFileSync(statePath, "utf8");
8012
+ const raw = fs$1.readFileSync(statePath, "utf8");
8013
8013
  const parsed = JSON.parse(raw);
8014
8014
  if (parsed.version !== 1) return fallback;
8015
8015
  const walletsRaw = parsed.wallets && typeof parsed.wallets === "object" && !Array.isArray(parsed.wallets) ? parsed.wallets : {};
@@ -8030,9 +8030,9 @@ function readWalletPolicyState(env = process.env) {
8030
8030
  }
8031
8031
  function writeWalletPolicyState(state, env = process.env) {
8032
8032
  const statePath = resolveWalletPolicyStatePath(ensureWalletStateDir(env));
8033
- syncFs.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, { mode: 384 });
8033
+ fs$1.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, { mode: 384 });
8034
8034
  try {
8035
- syncFs.chmodSync(statePath, 384);
8035
+ fs$1.chmodSync(statePath, 384);
8036
8036
  } catch {}
8037
8037
  }
8038
8038
  function buildResolvedPolicyFromDefaults(defaults) {
@@ -8645,25 +8645,25 @@ function resolveCustodyShareStatePath(walletId, env = process.env) {
8645
8645
  }
8646
8646
  function locateCustodyStatePath(walletId, env = process.env) {
8647
8647
  const scopedPath = resolveCustodyStatePath(walletId, env);
8648
- if (syncFs.existsSync(scopedPath)) return scopedPath;
8648
+ if (fs$1.existsSync(scopedPath)) return scopedPath;
8649
8649
  const legacyPath = resolveLegacyCustodyStatePath(env);
8650
- return syncFs.existsSync(legacyPath) ? legacyPath : scopedPath;
8650
+ return fs$1.existsSync(legacyPath) ? legacyPath : scopedPath;
8651
8651
  }
8652
8652
  function locateCustodyShareStatePath(walletId, env = process.env) {
8653
8653
  const scopedPath = resolveCustodyShareStatePath(walletId, env);
8654
- if (syncFs.existsSync(scopedPath)) return scopedPath;
8654
+ if (fs$1.existsSync(scopedPath)) return scopedPath;
8655
8655
  const legacyPath = resolveLegacyCustodyShareStatePath(env);
8656
- return syncFs.existsSync(legacyPath) ? legacyPath : scopedPath;
8656
+ return fs$1.existsSync(legacyPath) ? legacyPath : scopedPath;
8657
8657
  }
8658
8658
  function listCustodyStateTargets(env = process.env) {
8659
8659
  const walletPaths = ensureWalletStateDir(env);
8660
8660
  const custodyRoot = path.join(walletPaths.rootDir, "custody");
8661
8661
  const targets = /* @__PURE__ */ new Set();
8662
- if (syncFs.existsSync(custodyRoot)) {
8663
- for (const entry of syncFs.readdirSync(custodyRoot, { withFileTypes: true })) if (entry.isDirectory() && entry.name.trim()) targets.add(entry.name.trim());
8662
+ if (fs$1.existsSync(custodyRoot)) {
8663
+ for (const entry of fs$1.readdirSync(custodyRoot, { withFileTypes: true })) if (entry.isDirectory() && entry.name.trim()) targets.add(entry.name.trim());
8664
8664
  }
8665
8665
  const out = [...targets];
8666
- if (syncFs.existsSync(resolveLegacyCustodyStatePath(env)) || out.length === 0) out.push(void 0);
8666
+ if (fs$1.existsSync(resolveLegacyCustodyStatePath(env)) || out.length === 0) out.push(void 0);
8667
8667
  return out;
8668
8668
  }
8669
8669
  function readUnlockTtlSeconds(env = process.env, requestedTtlSeconds) {
@@ -8885,9 +8885,9 @@ function resolveWalletCustodyScope(params) {
8885
8885
  }
8886
8886
  function loadShareState(walletId, env = process.env) {
8887
8887
  const filePath = locateCustodyShareStatePath(walletId, env);
8888
- if (!syncFs.existsSync(filePath)) return null;
8888
+ if (!fs$1.existsSync(filePath)) return null;
8889
8889
  try {
8890
- const parsed = JSON.parse(syncFs.readFileSync(filePath, "utf8"));
8890
+ const parsed = JSON.parse(fs$1.readFileSync(filePath, "utf8"));
8891
8891
  if (parsed.version === 1 && parsed.scheme === "xor-3of3-v1" && typeof parsed.secretBytes === "number" && parsed.secretBytes > 0 && typeof parsed.hotShare === "string" && typeof parsed.coldShare === "string" && typeof parsed.deviceShareHash === "string" && typeof parsed.secretChecksum === "string" && typeof parsed.createdAt === "string" && typeof parsed.updatedAt === "string") {
8892
8892
  const hot = decodeBase64Share(parsed.hotShare);
8893
8893
  const cold = decodeBase64Share(parsed.coldShare);
@@ -8948,12 +8948,12 @@ function loadShareState(walletId, env = process.env) {
8948
8948
  }
8949
8949
  function loadState$1(walletId, env = process.env) {
8950
8950
  const filePath = locateCustodyStatePath(walletId, env);
8951
- if (!syncFs.existsSync(filePath)) return {
8951
+ if (!fs$1.existsSync(filePath)) return {
8952
8952
  version: 1,
8953
8953
  unlockSessions: []
8954
8954
  };
8955
8955
  try {
8956
- const parsed = JSON.parse(syncFs.readFileSync(filePath, "utf8"));
8956
+ const parsed = JSON.parse(fs$1.readFileSync(filePath, "utf8"));
8957
8957
  if (parsed.version !== 1 || !Array.isArray(parsed.unlockSessions)) return {
8958
8958
  version: 1,
8959
8959
  unlockSessions: []
@@ -8990,16 +8990,16 @@ function loadState$1(walletId, env = process.env) {
8990
8990
  }
8991
8991
  function saveState(state, walletId, env = process.env) {
8992
8992
  const filePath = resolveCustodyStatePath(walletId, env);
8993
- syncFs.mkdirSync(path.dirname(filePath), {
8993
+ fs$1.mkdirSync(path.dirname(filePath), {
8994
8994
  recursive: true,
8995
8995
  mode: 448
8996
8996
  });
8997
- syncFs.writeFileSync(filePath, `${JSON.stringify(state, null, 2)}\n`, {
8997
+ fs$1.writeFileSync(filePath, `${JSON.stringify(state, null, 2)}\n`, {
8998
8998
  encoding: "utf8",
8999
8999
  mode: 384
9000
9000
  });
9001
9001
  try {
9002
- syncFs.chmodSync(filePath, 384);
9002
+ fs$1.chmodSync(filePath, 384);
9003
9003
  } catch {}
9004
9004
  }
9005
9005
  function pruneState(state) {
@@ -9530,7 +9530,7 @@ function identityHasValues(identity) {
9530
9530
  }
9531
9531
  function loadIdentityFromFile(identityPath) {
9532
9532
  try {
9533
- const parsed = parseIdentityMarkdown(syncFs.readFileSync(identityPath, "utf-8"));
9533
+ const parsed = parseIdentityMarkdown(fs$1.readFileSync(identityPath, "utf-8"));
9534
9534
  if (!identityHasValues(parsed)) return null;
9535
9535
  return parsed;
9536
9536
  } catch {
@@ -9558,7 +9558,7 @@ function resolveAvatarSource(cfg, agentId, opts) {
9558
9558
  }
9559
9559
  function resolveExistingPath(value) {
9560
9560
  try {
9561
- return syncFs.realpathSync(value);
9561
+ return fs$1.realpathSync(value);
9562
9562
  } catch {
9563
9563
  return path.resolve(value);
9564
9564
  }
@@ -9576,7 +9576,7 @@ function resolveLocalAvatarPath(params) {
9576
9576
  reason: "unsupported_extension"
9577
9577
  };
9578
9578
  try {
9579
- const stat = syncFs.statSync(realPath);
9579
+ const stat = fs$1.statSync(realPath);
9580
9580
  if (!stat.isFile()) return {
9581
9581
  ok: false,
9582
9582
  reason: "missing"
@@ -9650,12 +9650,12 @@ function appendWalletAuditEntry(params) {
9650
9650
  actor: params.actor?.trim() || "system",
9651
9651
  details: params.details ?? {}
9652
9652
  };
9653
- syncFs.appendFileSync(paths.auditLogPath, `${JSON.stringify(entry)}\n`, {
9653
+ fs$1.appendFileSync(paths.auditLogPath, `${JSON.stringify(entry)}\n`, {
9654
9654
  encoding: "utf8",
9655
9655
  mode: 384
9656
9656
  });
9657
9657
  try {
9658
- syncFs.chmodSync(paths.auditLogPath, 384);
9658
+ fs$1.chmodSync(paths.auditLogPath, 384);
9659
9659
  } catch {}
9660
9660
  return entry;
9661
9661
  }
@@ -9799,7 +9799,7 @@ function resolveDefaultIdentityPath() {
9799
9799
  return path.join(resolveStateDir(), "identity", "device.json");
9800
9800
  }
9801
9801
  function ensureDir$2(filePath) {
9802
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
9802
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
9803
9803
  }
9804
9804
  const ED25519_SPKI_PREFIX$1 = Buffer.from("302a300506032b6570032100", "hex");
9805
9805
  function base64UrlEncode(buf) {
@@ -9835,8 +9835,8 @@ function generateIdentity() {
9835
9835
  }
9836
9836
  function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
9837
9837
  try {
9838
- if (syncFs.existsSync(filePath)) {
9839
- const raw = syncFs.readFileSync(filePath, "utf8");
9838
+ if (fs$1.existsSync(filePath)) {
9839
+ const raw = fs$1.readFileSync(filePath, "utf8");
9840
9840
  const parsed = JSON.parse(raw);
9841
9841
  if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
9842
9842
  const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
@@ -9845,9 +9845,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
9845
9845
  ...parsed,
9846
9846
  deviceId: derivedId
9847
9847
  };
9848
- syncFs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
9848
+ fs$1.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
9849
9849
  try {
9850
- syncFs.chmodSync(filePath, 384);
9850
+ fs$1.chmodSync(filePath, 384);
9851
9851
  } catch {}
9852
9852
  return {
9853
9853
  deviceId: derivedId,
@@ -9872,9 +9872,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
9872
9872
  privateKeyPem: identity.privateKeyPem,
9873
9873
  createdAtMs: Date.now()
9874
9874
  };
9875
- syncFs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
9875
+ fs$1.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
9876
9876
  try {
9877
- syncFs.chmodSync(filePath, 384);
9877
+ fs$1.chmodSync(filePath, 384);
9878
9878
  } catch {}
9879
9879
  return identity;
9880
9880
  }
@@ -10581,12 +10581,12 @@ function linksFilePath(env = process.env) {
10581
10581
  }
10582
10582
  function loadFile$1(env = process.env) {
10583
10583
  const filePath = linksFilePath(env);
10584
- if (!syncFs.existsSync(filePath)) return {
10584
+ if (!fs$1.existsSync(filePath)) return {
10585
10585
  version: 1,
10586
10586
  links: []
10587
10587
  };
10588
10588
  try {
10589
- const parsed = JSON.parse(syncFs.readFileSync(filePath, "utf8"));
10589
+ const parsed = JSON.parse(fs$1.readFileSync(filePath, "utf8"));
10590
10590
  if (parsed?.version === 1 && Array.isArray(parsed.links)) return {
10591
10591
  version: 1,
10592
10592
  links: parsed.links
@@ -10599,12 +10599,12 @@ function loadFile$1(env = process.env) {
10599
10599
  }
10600
10600
  function saveFile$1(file, env = process.env) {
10601
10601
  const filePath = linksFilePath(env);
10602
- syncFs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, {
10602
+ fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, {
10603
10603
  encoding: "utf8",
10604
10604
  mode: 384
10605
10605
  });
10606
10606
  try {
10607
- syncFs.chmodSync(filePath, 384);
10607
+ fs$1.chmodSync(filePath, 384);
10608
10608
  } catch {}
10609
10609
  }
10610
10610
  function upsertWalletSettlementLink(params) {
@@ -10706,7 +10706,7 @@ function sanitizeStore(raw) {
10706
10706
  function loadStore(filePath = resolveTaskRegistryPath()) {
10707
10707
  if (cachedStore && loadedPath === filePath) return cachedStore;
10708
10708
  try {
10709
- const raw = syncFs.readFileSync(filePath, "utf8");
10709
+ const raw = fs$1.readFileSync(filePath, "utf8");
10710
10710
  cachedStore = sanitizeStore(JSON.parse(raw));
10711
10711
  } catch {
10712
10712
  cachedStore = defaultStore();
@@ -10715,10 +10715,10 @@ function loadStore(filePath = resolveTaskRegistryPath()) {
10715
10715
  return cachedStore;
10716
10716
  }
10717
10717
  function saveStore(store, filePath = resolveTaskRegistryPath()) {
10718
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
10718
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
10719
10719
  const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
10720
- syncFs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
10721
- syncFs.renameSync(tmpPath, filePath);
10720
+ fs$1.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
10721
+ fs$1.renameSync(tmpPath, filePath);
10722
10722
  cachedStore = store;
10723
10723
  loadedPath = filePath;
10724
10724
  }
@@ -11312,12 +11312,12 @@ async function executeWalletSendWithRetry(params) {
11312
11312
  }
11313
11313
  function loadFile(env = process.env) {
11314
11314
  const paths = ensureWalletStateDir(env);
11315
- if (!syncFs.existsSync(paths.sendApprovalsPath)) return {
11315
+ if (!fs$1.existsSync(paths.sendApprovalsPath)) return {
11316
11316
  version: 1,
11317
11317
  requests: []
11318
11318
  };
11319
11319
  try {
11320
- const parsed = JSON.parse(syncFs.readFileSync(paths.sendApprovalsPath, "utf8"));
11320
+ const parsed = JSON.parse(fs$1.readFileSync(paths.sendApprovalsPath, "utf8"));
11321
11321
  if (parsed?.version === 1 && Array.isArray(parsed.requests)) return {
11322
11322
  version: 1,
11323
11323
  requests: parsed.requests
@@ -11330,12 +11330,12 @@ function loadFile(env = process.env) {
11330
11330
  }
11331
11331
  function saveFile(file, env = process.env) {
11332
11332
  const paths = ensureWalletStateDir(env);
11333
- syncFs.writeFileSync(paths.sendApprovalsPath, `${JSON.stringify(file, null, 2)}\n`, {
11333
+ fs$1.writeFileSync(paths.sendApprovalsPath, `${JSON.stringify(file, null, 2)}\n`, {
11334
11334
  encoding: "utf8",
11335
11335
  mode: 384
11336
11336
  });
11337
11337
  try {
11338
- syncFs.chmodSync(paths.sendApprovalsPath, 384);
11338
+ fs$1.chmodSync(paths.sendApprovalsPath, 384);
11339
11339
  } catch {}
11340
11340
  }
11341
11341
  function markExpired(file) {
@@ -11749,7 +11749,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
11749
11749
  function hasGitMarker(repoRoot) {
11750
11750
  const gitPath = path.join(repoRoot, ".git");
11751
11751
  try {
11752
- const stat = syncFs.statSync(gitPath);
11752
+ const stat = fs$1.statSync(gitPath);
11753
11753
  return stat.isDirectory() || stat.isFile();
11754
11754
  } catch {
11755
11755
  return false;
@@ -11761,10 +11761,10 @@ function findGitRoot(startDir, opts = {}) {
11761
11761
  function resolveGitDirFromMarker(repoRoot) {
11762
11762
  const gitPath = path.join(repoRoot, ".git");
11763
11763
  try {
11764
- const stat = syncFs.statSync(gitPath);
11764
+ const stat = fs$1.statSync(gitPath);
11765
11765
  if (stat.isDirectory()) return gitPath;
11766
11766
  if (!stat.isFile()) return null;
11767
- const match = syncFs.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
11767
+ const match = fs$1.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
11768
11768
  if (!match?.[1]) return null;
11769
11769
  return path.resolve(repoRoot, match[1].trim());
11770
11770
  } catch {
@@ -11813,7 +11813,7 @@ function isMissingPathError$2(error) {
11813
11813
  function resolveGitRefsBase(headPath) {
11814
11814
  const gitDir = path.dirname(headPath);
11815
11815
  try {
11816
- const commonDirRaw = syncFs.readFileSync(path.join(gitDir, "commondir"), "utf-8").trim();
11816
+ const commonDirRaw = fs$1.readFileSync(path.join(gitDir, "commondir"), "utf-8").trim();
11817
11817
  if (!commonDirRaw) return gitDir;
11818
11818
  return path.resolve(gitDir, commonDirRaw);
11819
11819
  } catch (error) {
@@ -11832,7 +11832,7 @@ function resolveRefPath(refsBase, ref) {
11832
11832
  }
11833
11833
  function readCommitFromPackedRefs(refsBase, ref) {
11834
11834
  try {
11835
- const packedRefs = syncFs.readFileSync(path.join(refsBase, "packed-refs"), "utf-8");
11835
+ const packedRefs = fs$1.readFileSync(path.join(refsBase, "packed-refs"), "utf-8");
11836
11836
  for (const line of packedRefs.split("\n")) {
11837
11837
  if (!line || line.startsWith("#") || line.startsWith("^")) continue;
11838
11838
  const [commit, packedRef] = line.trim().split(/\s+/, 2);
@@ -11868,7 +11868,7 @@ const resolveCommitHash = (options = {}) => {
11868
11868
  cachedCommit = null;
11869
11869
  return cachedCommit;
11870
11870
  }
11871
- const head = syncFs.readFileSync(headPath, "utf-8").trim();
11871
+ const head = fs$1.readFileSync(headPath, "utf-8").trim();
11872
11872
  if (!head) {
11873
11873
  cachedCommit = null;
11874
11874
  return cachedCommit;
@@ -11882,7 +11882,7 @@ const resolveCommitHash = (options = {}) => {
11882
11882
  return cachedCommit;
11883
11883
  }
11884
11884
  try {
11885
- cachedCommit = formatCommit(syncFs.readFileSync(refPath, "utf-8").trim());
11885
+ cachedCommit = formatCommit(fs$1.readFileSync(refPath, "utf-8").trim());
11886
11886
  return cachedCommit;
11887
11887
  } catch (error) {
11888
11888
  if (!isMissingPathError$2(error)) throw error;
@@ -12093,9 +12093,9 @@ function sanitizeBucket(input) {
12093
12093
  }
12094
12094
  function readSnapshot(env) {
12095
12095
  const file = observabilityPath(env);
12096
- if (!syncFs.existsSync(file)) return makeDefaultSnapshot();
12096
+ if (!fs$1.existsSync(file)) return makeDefaultSnapshot();
12097
12097
  try {
12098
- const parsed = JSON.parse(syncFs.readFileSync(file, "utf8"));
12098
+ const parsed = JSON.parse(fs$1.readFileSync(file, "utf8"));
12099
12099
  if (parsed?.version !== 1) return makeDefaultSnapshot();
12100
12100
  return {
12101
12101
  version: 1,
@@ -12112,12 +12112,12 @@ function readSnapshot(env) {
12112
12112
  }
12113
12113
  function writeSnapshot(env, snapshot) {
12114
12114
  const file = observabilityPath(env);
12115
- syncFs.writeFileSync(file, `${JSON.stringify(snapshot, null, 2)}\n`, {
12115
+ fs$1.writeFileSync(file, `${JSON.stringify(snapshot, null, 2)}\n`, {
12116
12116
  mode: 384,
12117
12117
  encoding: "utf8"
12118
12118
  });
12119
12119
  try {
12120
- syncFs.chmodSync(file, 384);
12120
+ fs$1.chmodSync(file, 384);
12121
12121
  } catch {}
12122
12122
  }
12123
12123
  function incrementWalletObservabilityCounter(params) {
@@ -13326,8 +13326,8 @@ function resolveDeviceAuthPath(env = process.env) {
13326
13326
  }
13327
13327
  function readStore(filePath) {
13328
13328
  try {
13329
- if (!syncFs.existsSync(filePath)) return null;
13330
- const raw = syncFs.readFileSync(filePath, "utf8");
13329
+ if (!fs$1.existsSync(filePath)) return null;
13330
+ const raw = fs$1.readFileSync(filePath, "utf8");
13331
13331
  const parsed = JSON.parse(raw);
13332
13332
  if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
13333
13333
  if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
@@ -13337,10 +13337,10 @@ function readStore(filePath) {
13337
13337
  }
13338
13338
  }
13339
13339
  function writeStore(filePath, store) {
13340
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
13341
- syncFs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
13340
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
13341
+ fs$1.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
13342
13342
  try {
13343
- syncFs.chmodSync(filePath, 384);
13343
+ fs$1.chmodSync(filePath, 384);
13344
13344
  } catch {}
13345
13345
  }
13346
13346
  function loadDeviceAuthToken(params) {
@@ -17896,11 +17896,11 @@ function resolveFailedDir(stateDir) {
17896
17896
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
17897
17897
  async function ensureQueueDir(stateDir) {
17898
17898
  const queueDir = resolveQueueDir(stateDir);
17899
- await syncFs.promises.mkdir(queueDir, {
17899
+ await fs$1.promises.mkdir(queueDir, {
17900
17900
  recursive: true,
17901
17901
  mode: 448
17902
17902
  });
17903
- await syncFs.promises.mkdir(resolveFailedDir(stateDir), {
17903
+ await fs$1.promises.mkdir(resolveFailedDir(stateDir), {
17904
17904
  recursive: true,
17905
17905
  mode: 448
17906
17906
  });
@@ -17927,18 +17927,18 @@ async function enqueueDelivery(params, stateDir) {
17927
17927
  const filePath = path.join(queueDir, `${id}.json`);
17928
17928
  const tmp = `${filePath}.${process.pid}.tmp`;
17929
17929
  const json = JSON.stringify(entry, null, 2);
17930
- await syncFs.promises.writeFile(tmp, json, {
17930
+ await fs$1.promises.writeFile(tmp, json, {
17931
17931
  encoding: "utf-8",
17932
17932
  mode: 384
17933
17933
  });
17934
- await syncFs.promises.rename(tmp, filePath);
17934
+ await fs$1.promises.rename(tmp, filePath);
17935
17935
  return id;
17936
17936
  }
17937
17937
  /** Remove a successfully delivered entry from the queue. */
17938
17938
  async function ackDelivery(id, stateDir) {
17939
17939
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
17940
17940
  try {
17941
- await syncFs.promises.unlink(filePath);
17941
+ await fs$1.promises.unlink(filePath);
17942
17942
  } catch (err) {
17943
17943
  if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) !== "ENOENT") throw err;
17944
17944
  }
@@ -17946,17 +17946,17 @@ async function ackDelivery(id, stateDir) {
17946
17946
  /** Update a queue entry after a failed delivery attempt. */
17947
17947
  async function failDelivery(id, error, stateDir) {
17948
17948
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
17949
- const raw = await syncFs.promises.readFile(filePath, "utf-8");
17949
+ const raw = await fs$1.promises.readFile(filePath, "utf-8");
17950
17950
  const entry = JSON.parse(raw);
17951
17951
  entry.retryCount += 1;
17952
17952
  entry.lastAttemptAt = Date.now();
17953
17953
  entry.lastError = error;
17954
17954
  const tmp = `${filePath}.${process.pid}.tmp`;
17955
- await syncFs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
17955
+ await fs$1.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
17956
17956
  encoding: "utf-8",
17957
17957
  mode: 384
17958
17958
  });
17959
- await syncFs.promises.rename(tmp, filePath);
17959
+ await fs$1.promises.rename(tmp, filePath);
17960
17960
  }
17961
17961
 
17962
17962
  //#endregion
@@ -19122,27 +19122,27 @@ function createOutboundSendDepsFromCliSource(deps) {
19122
19122
  function createDefaultDeps() {
19123
19123
  return {
19124
19124
  sendMessageWhatsApp: async (...args) => {
19125
- const { sendMessageWhatsApp } = await import("./web-D2vp8fmO.js");
19125
+ const { sendMessageWhatsApp } = await import("./web-DQuQBwMr.js");
19126
19126
  return await sendMessageWhatsApp(...args);
19127
19127
  },
19128
19128
  sendMessageTelegram: async (...args) => {
19129
- const { sendMessageTelegram } = await import("./send-B-sa1Rzn.js").then((n) => n.l);
19129
+ const { sendMessageTelegram } = await import("./send-CqQ88clX.js").then((n) => n.l);
19130
19130
  return await sendMessageTelegram(...args);
19131
19131
  },
19132
19132
  sendMessageDiscord: async (...args) => {
19133
- const { sendMessageDiscord } = await import("./send-DQ3s5E33.js").then((n) => n.t);
19133
+ const { sendMessageDiscord } = await import("./send-D2IXnEJl.js").then((n) => n.t);
19134
19134
  return await sendMessageDiscord(...args);
19135
19135
  },
19136
19136
  sendMessageSlack: async (...args) => {
19137
- const { sendMessageSlack } = await import("./send-BqgaWpoE.js").then((n) => n.n);
19137
+ const { sendMessageSlack } = await import("./send-BohOQw4n.js").then((n) => n.n);
19138
19138
  return await sendMessageSlack(...args);
19139
19139
  },
19140
19140
  sendMessageSignal: async (...args) => {
19141
- const { sendMessageSignal } = await import("./send-Bhj3bXKi.js").then((n) => n.i);
19141
+ const { sendMessageSignal } = await import("./send-Ps08x526.js").then((n) => n.i);
19142
19142
  return await sendMessageSignal(...args);
19143
19143
  },
19144
19144
  sendMessageIMessage: async (...args) => {
19145
- const { sendMessageIMessage } = await import("./send-C1YtjPQb.js").then((n) => n.n);
19145
+ const { sendMessageIMessage } = await import("./send-D8eFKkkd.js").then((n) => n.n);
19146
19146
  return await sendMessageIMessage(...args);
19147
19147
  }
19148
19148
  };
@@ -21293,7 +21293,7 @@ async function getMemorySearchManager(params) {
21293
21293
  if (cached) return { manager: cached };
21294
21294
  }
21295
21295
  try {
21296
- const { QmdMemoryManager } = await import("./qmd-manager-DA3v0Y-t.js");
21296
+ const { QmdMemoryManager } = await import("./qmd-manager-CVbI17-v.js");
21297
21297
  const primary = await QmdMemoryManager.create({
21298
21298
  cfg: params.cfg,
21299
21299
  agentId: params.agentId,
@@ -21305,7 +21305,7 @@ async function getMemorySearchManager(params) {
21305
21305
  const wrapper = new FallbackMemoryManager({
21306
21306
  primary,
21307
21307
  fallbackFactory: async () => {
21308
- const { MemoryIndexManager } = await import("./manager-ZRPdFyMZ.js").then((n) => n.t);
21308
+ const { MemoryIndexManager } = await import("./manager-BfodMNDG.js").then((n) => n.t);
21309
21309
  return await MemoryIndexManager.get(params);
21310
21310
  }
21311
21311
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -21318,12 +21318,12 @@ async function getMemorySearchManager(params) {
21318
21318
  }
21319
21319
  }
21320
21320
  try {
21321
- const { MemoryIndexManager } = await import("./manager-ZRPdFyMZ.js").then((n) => n.t);
21321
+ const { MemoryIndexManager } = await import("./manager-BfodMNDG.js").then((n) => n.t);
21322
21322
  return { manager: await MemoryIndexManager.get(params) };
21323
21323
  } catch (err) {
21324
21324
  const message = err instanceof Error ? err.message : String(err);
21325
21325
  if (isNodeSqliteUnavailable(message)) {
21326
- const { FilesystemMemorySearchManager } = await import("./filesystem-manager-CWbYjhcQ.js");
21326
+ const { FilesystemMemorySearchManager } = await import("./filesystem-manager-B8V6mEya.js");
21327
21327
  const manager = await FilesystemMemorySearchManager.create({
21328
21328
  cfg: params.cfg,
21329
21329
  agentId: params.agentId,
@@ -26996,7 +26996,7 @@ function normalizeSessionKey(value) {
26996
26996
  }
26997
26997
  function readSessionStore(storePath) {
26998
26998
  try {
26999
- const raw = syncFs.readFileSync(storePath, "utf-8");
26999
+ const raw = fs$1.readFileSync(storePath, "utf-8");
27000
27000
  const parsed = JSON5.parse(raw);
27001
27001
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
27002
27002
  } catch {}
@@ -41230,7 +41230,7 @@ function mergeLegacyAgent(current, legacy) {
41230
41230
  }
41231
41231
  function ensureDir$1(filePath) {
41232
41232
  const dir = path.dirname(filePath);
41233
- syncFs.mkdirSync(dir, { recursive: true });
41233
+ fs$1.mkdirSync(dir, { recursive: true });
41234
41234
  }
41235
41235
  function coerceAllowlistEntries(allowlist) {
41236
41236
  if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
@@ -41300,11 +41300,11 @@ function generateToken() {
41300
41300
  function loadExecApprovals() {
41301
41301
  const filePath = resolveExecApprovalsPath();
41302
41302
  try {
41303
- if (!syncFs.existsSync(filePath)) return normalizeExecApprovals({
41303
+ if (!fs$1.existsSync(filePath)) return normalizeExecApprovals({
41304
41304
  version: 1,
41305
41305
  agents: {}
41306
41306
  });
41307
- const raw = syncFs.readFileSync(filePath, "utf8");
41307
+ const raw = fs$1.readFileSync(filePath, "utf8");
41308
41308
  const parsed = JSON.parse(raw);
41309
41309
  if (parsed?.version !== 1) return normalizeExecApprovals({
41310
41310
  version: 1,
@@ -41321,9 +41321,9 @@ function loadExecApprovals() {
41321
41321
  function saveExecApprovals(file) {
41322
41322
  const filePath = resolveExecApprovalsPath();
41323
41323
  ensureDir$1(filePath);
41324
- syncFs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
41324
+ fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
41325
41325
  try {
41326
- syncFs.chmodSync(filePath, 384);
41326
+ fs$1.chmodSync(filePath, 384);
41327
41327
  } catch {}
41328
41328
  }
41329
41329
  function ensureExecApprovals() {
@@ -41912,18 +41912,18 @@ function drainSystemEventEntries(sessionKey) {
41912
41912
  function resolvePowerShellPath() {
41913
41913
  const programFiles = process.env.ProgramFiles || process.env.PROGRAMFILES || "C:\\Program Files";
41914
41914
  const pwsh7 = path.join(programFiles, "PowerShell", "7", "pwsh.exe");
41915
- if (syncFs.existsSync(pwsh7)) return pwsh7;
41915
+ if (fs$1.existsSync(pwsh7)) return pwsh7;
41916
41916
  const programW6432 = process.env.ProgramW6432;
41917
41917
  if (programW6432 && programW6432 !== programFiles) {
41918
41918
  const pwsh7Alt = path.join(programW6432, "PowerShell", "7", "pwsh.exe");
41919
- if (syncFs.existsSync(pwsh7Alt)) return pwsh7Alt;
41919
+ if (fs$1.existsSync(pwsh7Alt)) return pwsh7Alt;
41920
41920
  }
41921
41921
  const pwshInPath = resolveShellFromPath("pwsh");
41922
41922
  if (pwshInPath) return pwshInPath;
41923
41923
  const systemRoot = process.env.SystemRoot || process.env.WINDIR;
41924
41924
  if (systemRoot) {
41925
41925
  const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
41926
- if (syncFs.existsSync(candidate)) return candidate;
41926
+ if (fs$1.existsSync(candidate)) return candidate;
41927
41927
  }
41928
41928
  return "powershell.exe";
41929
41929
  }
@@ -41961,7 +41961,7 @@ function resolveShellFromPath(name) {
41961
41961
  for (const entry of entries) {
41962
41962
  const candidate = path.join(entry, name);
41963
41963
  try {
41964
- syncFs.accessSync(candidate, syncFs.constants.X_OK);
41964
+ fs$1.accessSync(candidate, fs$1.constants.X_OK);
41965
41965
  return candidate;
41966
41966
  } catch {}
41967
41967
  }
@@ -43420,9 +43420,9 @@ function loadExternalCatalogEntries(options) {
43420
43420
  function loadCatalogEntriesFromPaths(paths) {
43421
43421
  const entries = [];
43422
43422
  for (const resolved of paths) {
43423
- if (!syncFs.existsSync(resolved)) continue;
43423
+ if (!fs$1.existsSync(resolved)) continue;
43424
43424
  try {
43425
- const payload = JSON.parse(syncFs.readFileSync(resolved, "utf-8"));
43425
+ const payload = JSON.parse(fs$1.readFileSync(resolved, "utf-8"));
43426
43426
  entries.push(...parseCatalogEntries(payload));
43427
43427
  } catch {}
43428
43428
  }
@@ -46483,17 +46483,17 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
46483
46483
  } catch {
46484
46484
  return;
46485
46485
  }
46486
- if (!syncFs.existsSync(logPath)) return;
46486
+ if (!fs$1.existsSync(logPath)) return;
46487
46487
  try {
46488
46488
  const TAIL_BYTES = 8192;
46489
- const stat = syncFs.statSync(logPath);
46489
+ const stat = fs$1.statSync(logPath);
46490
46490
  const offset = Math.max(0, stat.size - TAIL_BYTES);
46491
46491
  const buf = Buffer.alloc(Math.min(TAIL_BYTES, stat.size));
46492
- const fd = syncFs.openSync(logPath, "r");
46492
+ const fd = fs$1.openSync(logPath, "r");
46493
46493
  try {
46494
- syncFs.readSync(fd, buf, 0, buf.length, offset);
46494
+ fs$1.readSync(fd, buf, 0, buf.length, offset);
46495
46495
  } finally {
46496
- syncFs.closeSync(fd);
46496
+ fs$1.closeSync(fd);
46497
46497
  }
46498
46498
  const tail = buf.toString("utf-8");
46499
46499
  const lines = (offset > 0 ? tail.slice(tail.indexOf("\n") + 1) : tail).split(/\n+/);
@@ -52931,9 +52931,9 @@ function resolvePatchFileOps(options) {
52931
52931
  });
52932
52932
  assertBoundaryRead(opened, filePath);
52933
52933
  try {
52934
- return syncFs.readFileSync(opened.fd, "utf8");
52934
+ return fs$1.readFileSync(opened.fd, "utf8");
52935
52935
  } finally {
52936
- syncFs.closeSync(opened.fd);
52936
+ fs$1.closeSync(opened.fd);
52937
52937
  }
52938
52938
  },
52939
52939
  writeFile: async (filePath, content) => {
@@ -53590,7 +53590,7 @@ function isModuleNotFoundError(err) {
53590
53590
  }
53591
53591
  async function loadPwAiModule(mode) {
53592
53592
  try {
53593
- return await import("./pw-ai-4dv28kg0.js");
53593
+ return await import("./pw-ai-5b6U6vNE.js");
53594
53594
  } catch (err) {
53595
53595
  if (mode === "soft") return null;
53596
53596
  if (isModuleNotFoundError(err)) return null;
@@ -53681,11 +53681,11 @@ async function movePathToTrash(targetPath) {
53681
53681
  return targetPath;
53682
53682
  } catch {
53683
53683
  const trashDir = path.join(os.homedir(), ".Trash");
53684
- syncFs.mkdirSync(trashDir, { recursive: true });
53684
+ fs$1.mkdirSync(trashDir, { recursive: true });
53685
53685
  const base = path.basename(targetPath);
53686
53686
  let dest = path.join(trashDir, `${base}-${Date.now()}`);
53687
- if (syncFs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
53688
- syncFs.renameSync(targetPath, dest);
53687
+ if (fs$1.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
53688
+ fs$1.renameSync(targetPath, dest);
53689
53689
  return dest;
53690
53690
  }
53691
53691
  }
@@ -53984,13 +53984,13 @@ function createProfileContext(opts, profile) {
53984
53984
  const userDataDir = resolveFasedAgentUserDataDir(profile.name);
53985
53985
  const profileState = getProfileState();
53986
53986
  if (await isHttpReachable(300) && !profileState.running) try {
53987
- await (await import("./pw-ai-4dv28kg0.js")).closePlaywrightBrowserConnection();
53987
+ await (await import("./pw-ai-5b6U6vNE.js")).closePlaywrightBrowserConnection();
53988
53988
  } catch {}
53989
53989
  if (profileState.running) await stopRunningBrowser();
53990
53990
  try {
53991
- await (await import("./pw-ai-4dv28kg0.js")).closePlaywrightBrowserConnection();
53991
+ await (await import("./pw-ai-5b6U6vNE.js")).closePlaywrightBrowserConnection();
53992
53992
  } catch {}
53993
- if (!syncFs.existsSync(userDataDir)) return {
53993
+ if (!fs$1.existsSync(userDataDir)) return {
53994
53994
  moved: false,
53995
53995
  from: userDataDir
53996
53996
  };
@@ -55695,7 +55695,7 @@ function createBrowserProfilesService(ctx) {
55695
55695
  } catch {}
55696
55696
  const userDataDir = resolveFasedAgentUserDataDir(name);
55697
55697
  const profileDir = path.dirname(userDataDir);
55698
- if (syncFs.existsSync(profileDir)) {
55698
+ if (fs$1.existsSync(profileDir)) {
55699
55699
  await movePathToTrash(profileDir);
55700
55700
  deleted = true;
55701
55701
  }
@@ -57344,7 +57344,7 @@ function asBoolean(value) {
57344
57344
  }
57345
57345
  function resolveTempPathParts(opts) {
57346
57346
  const tmpDir = opts.tmpDir ?? resolvePreferredFasedAgentTmpDir();
57347
- if (!opts.tmpDir) syncFs.mkdirSync(tmpDir, {
57347
+ if (!opts.tmpDir) fs$1.mkdirSync(tmpDir, {
57348
57348
  recursive: true,
57349
57349
  mode: 448
57350
57350
  });
@@ -57410,7 +57410,7 @@ async function writeUrlToFile(filePath, url) {
57410
57410
  if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
57411
57411
  const body = res.body;
57412
57412
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
57413
- const fileHandle = await fs$1.open(filePath, "w");
57413
+ const fileHandle = await fs$2.open(filePath, "w");
57414
57414
  let bytes = 0;
57415
57415
  let thrown;
57416
57416
  try {
@@ -57429,7 +57429,7 @@ async function writeUrlToFile(filePath, url) {
57429
57429
  await fileHandle.close();
57430
57430
  }
57431
57431
  if (thrown) {
57432
- await fs$1.unlink(filePath).catch(() => {});
57432
+ await fs$2.unlink(filePath).catch(() => {});
57433
57433
  throw thrown;
57434
57434
  }
57435
57435
  return {
@@ -57439,7 +57439,7 @@ async function writeUrlToFile(filePath, url) {
57439
57439
  }
57440
57440
  async function writeBase64ToFile(filePath, base64) {
57441
57441
  const buf = Buffer.from(base64, "base64");
57442
- await fs$1.writeFile(filePath, buf);
57442
+ await fs$2.writeFile(filePath, buf);
57443
57443
  return {
57444
57444
  path: filePath,
57445
57445
  bytes: buf.length
@@ -63439,8 +63439,8 @@ function resolveZaiApiKey() {
63439
63439
  }
63440
63440
  try {
63441
63441
  const authPath = path.join(resolveRequiredHomeDir(process.env, os.homedir), ".pi", "agent", "auth.json");
63442
- if (!syncFs.existsSync(authPath)) return;
63443
- const data = JSON.parse(syncFs.readFileSync(authPath, "utf-8"));
63442
+ if (!fs$1.existsSync(authPath)) return;
63443
+ const data = JSON.parse(fs$1.readFileSync(authPath, "utf-8"));
63444
63444
  return data["z-ai"]?.access || data.zai?.access;
63445
63445
  } catch {
63446
63446
  return;
@@ -70039,7 +70039,7 @@ async function recordLoopOutcome(args) {
70039
70039
  if (!args.ctx?.sessionKey) return;
70040
70040
  try {
70041
70041
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CexmAKza.js").then((n) => n.n);
70042
- const { recordToolCallOutcome } = await import("./tool-loop-detection-CqQip5ev.js");
70042
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-CSfX9pJE.js");
70043
70043
  recordToolCallOutcome(getDiagnosticSessionState({
70044
70044
  sessionKey: args.ctx.sessionKey,
70045
70045
  sessionId: args.ctx?.agentId
@@ -70060,8 +70060,8 @@ async function runBeforeToolCallHook(args) {
70060
70060
  const params = args.params;
70061
70061
  if (args.ctx?.sessionKey) {
70062
70062
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CexmAKza.js").then((n) => n.n);
70063
- const { logToolLoopAction } = await import("./diagnostic-BYQE13k1.js").then((n) => n.n);
70064
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CqQip5ev.js");
70063
+ const { logToolLoopAction } = await import("./diagnostic-C6MSQFZF.js").then((n) => n.n);
70064
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CSfX9pJE.js");
70065
70065
  const sessionState = getDiagnosticSessionState({
70066
70066
  sessionKey: args.ctx.sessionKey,
70067
70067
  sessionId: args.ctx?.agentId
@@ -71853,7 +71853,7 @@ function resolveRepoRoot(params) {
71853
71853
  const configured = params.config?.agents?.defaults?.repoRoot?.trim();
71854
71854
  if (configured) try {
71855
71855
  const resolved = path.resolve(configured);
71856
- if (syncFs.statSync(resolved).isDirectory()) return resolved;
71856
+ if (fs$1.statSync(resolved).isDirectory()) return resolved;
71857
71857
  } catch {}
71858
71858
  const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
71859
71859
  const seen = /* @__PURE__ */ new Set();
@@ -72711,7 +72711,7 @@ async function buildContextReply(params) {
72711
72711
  //#region src/auto-reply/reply/commands-export-session.ts
72712
72712
  const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
72713
72713
  function loadTemplate(fileName) {
72714
- return syncFs.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
72714
+ return fs$1.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
72715
72715
  }
72716
72716
  function generateHtml(sessionData) {
72717
72717
  const template = loadTemplate("template.html");
@@ -72782,7 +72782,7 @@ function writeNewDefaultExportFile(filePath, html) {
72782
72782
  for (let suffix = 1; suffix <= 100; suffix++) {
72783
72783
  const candidate = suffix === 1 ? filePath : addCollisionSuffix(filePath, suffix);
72784
72784
  try {
72785
- syncFs.writeFileSync(candidate, html, {
72785
+ fs$1.writeFileSync(candidate, html, {
72786
72786
  encoding: "utf-8",
72787
72787
  flag: "wx"
72788
72788
  });
@@ -72809,7 +72809,7 @@ async function buildExportSessionReply(params) {
72809
72809
  } catch (err) {
72810
72810
  return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
72811
72811
  }
72812
- if (!syncFs.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
72812
+ if (!fs$1.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
72813
72813
  const sessionManager = SessionManager.open(sessionFile);
72814
72814
  const entries = sessionManager.getEntries();
72815
72815
  const header = sessionManager.getHeader();
@@ -72830,8 +72830,8 @@ async function buildExportSessionReply(params) {
72830
72830
  const defaultFileName = `fased-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
72831
72831
  let outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
72832
72832
  const outputDir = path.dirname(outputPath);
72833
- if (!syncFs.existsSync(outputDir)) syncFs.mkdirSync(outputDir, { recursive: true });
72834
- if (args.outputPath) syncFs.writeFileSync(outputPath, html, "utf-8");
72833
+ if (!fs$1.existsSync(outputDir)) fs$1.mkdirSync(outputDir, { recursive: true });
72834
+ if (args.outputPath) fs$1.writeFileSync(outputPath, html, "utf-8");
72835
72835
  else outputPath = writeNewDefaultExportFile(outputPath, html);
72836
72836
  const relativePath = path.relative(params.workspaceDir, outputPath);
72837
72837
  return { text: [
@@ -73825,7 +73825,7 @@ function shouldPersistAnyBindingState() {
73825
73825
  }
73826
73826
  function shouldPersistBindingMutations() {
73827
73827
  if (shouldPersistAnyBindingState()) return true;
73828
- return syncFs.existsSync(resolveThreadBindingsPath());
73828
+ return fs$1.existsSync(resolveThreadBindingsPath());
73829
73829
  }
73830
73830
  function saveBindingsToDisk(params = {}) {
73831
73831
  if (!params.force && !shouldPersistAnyBindingState()) return;
@@ -74694,7 +74694,7 @@ const applyCostTotal = (totals, costTotal) => {
74694
74694
  totals.totalCost += costTotal;
74695
74695
  };
74696
74696
  async function* readJsonlRecords(filePath) {
74697
- const fileStream = syncFs.createReadStream(filePath, { encoding: "utf-8" });
74697
+ const fileStream = fs$1.createReadStream(filePath, { encoding: "utf-8" });
74698
74698
  const rl = readline.createInterface({
74699
74699
  input: fileStream,
74700
74700
  crlfDelay: Infinity
@@ -74766,10 +74766,10 @@ async function loadCostUsageSummary(params) {
74766
74766
  const dailyMap = /* @__PURE__ */ new Map();
74767
74767
  const totals = emptyTotals();
74768
74768
  const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
74769
- const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
74769
+ const entries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
74770
74770
  const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
74771
74771
  const filePath = path.join(sessionsDir, entry.name);
74772
- const stats = await syncFs.promises.stat(filePath).catch(() => null);
74772
+ const stats = await fs$1.promises.stat(filePath).catch(() => null);
74773
74773
  if (!stats) return null;
74774
74774
  if (stats.mtimeMs < sinceTime) return null;
74775
74775
  return filePath;
@@ -74802,7 +74802,7 @@ async function loadCostUsageSummary(params) {
74802
74802
  }
74803
74803
  async function loadSessionCostSummary(params) {
74804
74804
  const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
74805
- if (!sessionFile || !syncFs.existsSync(sessionFile)) return null;
74805
+ if (!sessionFile || !fs$1.existsSync(sessionFile)) return null;
74806
74806
  const totals = emptyTotals();
74807
74807
  let firstActivity;
74808
74808
  let lastActivity;
@@ -76574,7 +76574,7 @@ async function createModelSelectionState(params) {
76574
76574
  }
76575
76575
  }
76576
76576
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
76577
- const { ensureAuthProfileStore } = await import("./agent-scope-BYecP9O5.js").then((n) => n.Nr);
76577
+ const { ensureAuthProfileStore } = await import("./agent-scope-Bx0XQq3s.js").then((n) => n.Nr);
76578
76578
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
76579
76579
  const providerKey = normalizeProviderId$1(provider);
76580
76580
  if (!profile || normalizeProviderId$1(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -79412,7 +79412,7 @@ async function resolveFasedAgentDocsPath(params) {
79412
79412
  const workspaceDir = params.workspaceDir?.trim();
79413
79413
  if (workspaceDir) {
79414
79414
  const workspaceDocs = path.join(workspaceDir, "docs");
79415
- if (syncFs.existsSync(workspaceDocs)) return workspaceDocs;
79415
+ if (fs$1.existsSync(workspaceDocs)) return workspaceDocs;
79416
79416
  }
79417
79417
  const packageRoot = await resolveFasedAgentPackageRoot({
79418
79418
  cwd: params.cwd,
@@ -79421,7 +79421,7 @@ async function resolveFasedAgentDocsPath(params) {
79421
79421
  });
79422
79422
  if (!packageRoot) return null;
79423
79423
  const packageDocs = path.join(packageRoot, "docs");
79424
- return syncFs.existsSync(packageDocs) ? packageDocs : null;
79424
+ return fs$1.existsSync(packageDocs) ? packageDocs : null;
79425
79425
  }
79426
79426
 
79427
79427
  //#endregion
@@ -80608,7 +80608,7 @@ async function runAgentTurnWithFallback(params) {
80608
80608
  if (corruptedSessionId) {
80609
80609
  const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
80610
80610
  try {
80611
- syncFs.unlinkSync(transcriptPath);
80611
+ fs$1.unlinkSync(transcriptPath);
80612
80612
  } catch {}
80613
80613
  }
80614
80614
  delete params.activeSessionStore[sessionKey];
@@ -81386,9 +81386,9 @@ function auditPostCompactionReads(readFilePaths, workspaceDir, requiredReads = D
81386
81386
  * Returns messages from the last N lines (default 100).
81387
81387
  */
81388
81388
  function readSessionMessages(sessionFile, maxLines = 100) {
81389
- if (!syncFs.existsSync(sessionFile)) return [];
81389
+ if (!fs$1.existsSync(sessionFile)) return [];
81390
81390
  try {
81391
- const recentLines = syncFs.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
81391
+ const recentLines = fs$1.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
81392
81392
  const messages = [];
81393
81393
  for (const line of recentLines) try {
81394
81394
  const entry = JSON.parse(line);
@@ -81429,8 +81429,8 @@ const MAX_CONTEXT_CHARS = 3e3;
81429
81429
  async function readPostCompactionContext(workspaceDir) {
81430
81430
  const agentsPath = path.join(workspaceDir, "AGENTS.md");
81431
81431
  try {
81432
- if (!syncFs.existsSync(agentsPath)) return null;
81433
- const sections = extractSections(await syncFs.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
81432
+ if (!fs$1.existsSync(agentsPath)) return null;
81433
+ const sections = extractSections(await fs$1.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
81434
81434
  if (sections.length === 0) return null;
81435
81435
  const combined = sections.join("\n\n");
81436
81436
  return "[Post-compaction context refresh]\n\nSession was just compacted. The conversation summary above is a hint, NOT a substitute for your startup sequence. Execute your Session Startup sequence now — read the required files before responding to the user.\n\nCritical rules from AGENTS.md:\n\n" + (combined.length > MAX_CONTEXT_CHARS ? combined.slice(0, MAX_CONTEXT_CHARS) + "\n...[truncated]..." : combined);
@@ -81736,7 +81736,7 @@ async function runReplyAgent(params) {
81736
81736
  if (resolved) transcriptCandidates.add(resolved);
81737
81737
  transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
81738
81738
  for (const candidate of transcriptCandidates) try {
81739
- syncFs.unlinkSync(candidate);
81739
+ fs$1.unlinkSync(candidate);
81740
81740
  } catch {}
81741
81741
  }
81742
81742
  return true;
@@ -82819,7 +82819,7 @@ function forkSessionFromParent(params) {
82819
82819
  agentId: params.agentId,
82820
82820
  sessionsDir: params.sessionsDir
82821
82821
  });
82822
- if (!parentSessionFile || !syncFs.existsSync(parentSessionFile)) return null;
82822
+ if (!parentSessionFile || !fs$1.existsSync(parentSessionFile)) return null;
82823
82823
  try {
82824
82824
  const manager = SessionManager.open(parentSessionFile);
82825
82825
  const leafId = manager.getLeafId();
@@ -82843,7 +82843,7 @@ function forkSessionFromParent(params) {
82843
82843
  cwd: manager.getCwd(),
82844
82844
  parentSession: parentSessionFile
82845
82845
  };
82846
- syncFs.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
82846
+ fs$1.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
82847
82847
  return {
82848
82848
  sessionId,
82849
82849
  sessionFile
@@ -87901,7 +87901,7 @@ function createWhatsAppLoginTool() {
87901
87901
  force: Type.Optional(Type.Boolean())
87902
87902
  }),
87903
87903
  execute: async (_toolCallId, args) => {
87904
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DIly-pBD.js");
87904
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CDDF5Ark.js");
87905
87905
  if ((args?.action ?? "start") === "wait") {
87906
87906
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
87907
87907
  return {
@@ -88963,7 +88963,7 @@ function kindFromStats(stat) {
88963
88963
  async function backupTarget(entry) {
88964
88964
  const beforeState = await inspectPath(entry.targetPath);
88965
88965
  if (beforeState.kind === "file") {
88966
- await fs.copyFile(entry.targetPath, entry.snapshotPath, syncFs.constants.COPYFILE_EXCL);
88966
+ await fs.copyFile(entry.targetPath, entry.snapshotPath, fs$1.constants.COPYFILE_EXCL);
88967
88967
  return {
88968
88968
  proposalId: entry.proposalId,
88969
88969
  action: entry.action,
@@ -89374,7 +89374,7 @@ async function withMemoryManagerForAgent(params) {
89374
89374
  }
89375
89375
  async function checkReadableFile(pathname) {
89376
89376
  try {
89377
- await fs.access(pathname, syncFs.constants.R_OK);
89377
+ await fs.access(pathname, fs$1.constants.R_OK);
89378
89378
  return { exists: true };
89379
89379
  } catch (err) {
89380
89380
  const code = err.code;
@@ -89433,7 +89433,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
89433
89433
  }
89434
89434
  let dirReadable = null;
89435
89435
  try {
89436
- await fs.access(memoryDir, syncFs.constants.R_OK);
89436
+ await fs.access(memoryDir, fs$1.constants.R_OK);
89437
89437
  dirReadable = true;
89438
89438
  } catch (err) {
89439
89439
  const code = err.code;
@@ -91758,7 +91758,7 @@ async function preflightDiscordMessage(params) {
91758
91758
  let preflightTranscript;
91759
91759
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
91760
91760
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
91761
- const { transcribeFirstAudio } = await import("./audio-preflight-Ck89DLHq.js");
91761
+ const { transcribeFirstAudio } = await import("./audio-preflight-MUfVeIPT.js");
91762
91762
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
91763
91763
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
91764
91764
  ctx: {
@@ -99055,7 +99055,7 @@ async function waitForTransportReady(params) {
99055
99055
 
99056
99056
  //#endregion
99057
99057
  //#region src/brand.ts
99058
- const FASED_PRODUCT_VERSION = "0.1.28";
99058
+ const FASED_PRODUCT_VERSION = "0.1.30";
99059
99059
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
99060
99060
 
99061
99061
  //#endregion
@@ -100021,7 +100021,7 @@ async function monitorIMessageProvider(opts = {}) {
100021
100021
  function readFileIfExists(filePath) {
100022
100022
  if (!filePath) return;
100023
100023
  try {
100024
- return syncFs.readFileSync(filePath, "utf-8").trim();
100024
+ return fs$1.readFileSync(filePath, "utf-8").trim();
100025
100025
  } catch {
100026
100026
  return;
100027
100027
  }
@@ -100613,7 +100613,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
100613
100613
  prefix: "line-media",
100614
100614
  extension: getExtensionForContentType(contentType)
100615
100615
  });
100616
- await syncFs.promises.writeFile(filePath, buffer);
100616
+ await fs$1.promises.writeFile(filePath, buffer);
100617
100617
  logVerbose(`line: downloaded media ${formatLineIdForLog(messageId)} to ${filePath} (${buffer.length} bytes)`);
100618
100618
  return {
100619
100619
  path: filePath,
@@ -105757,7 +105757,7 @@ function readSlackExternalArgMenuToken(raw) {
105757
105757
  }
105758
105758
  let commandsRegistry;
105759
105759
  async function getCommandsRegistry() {
105760
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CG-_VuYC.js").then((n) => n.n);
105760
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-t0hu8c_Z.js").then((n) => n.n);
105761
105761
  return commandsRegistry;
105762
105762
  }
105763
105763
  function encodeSlackCommandArgValue(parts) {
@@ -106081,14 +106081,14 @@ async function registerSlackMonitorSlashCommands(params) {
106081
106081
  const channelName = channelInfo?.name;
106082
106082
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
106083
106083
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
106084
- import("./resolve-route-D3-NnOVE.js").then((n) => n.r),
106084
+ import("./resolve-route-Dc1L-NXd.js").then((n) => n.r),
106085
106085
  import("./inbound-context-B0OuvpCZ.js").then((n) => n.n),
106086
106086
  Promise.resolve().then(() => provider_dispatcher_exports)
106087
106087
  ]);
106088
106088
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
106089
106089
  import("./conversation-label-BNq0hhpR.js").then((n) => n.t),
106090
- import("./reply-prefix-DZjj9KHV.js").then((n) => n.n),
106091
- import("./agent-scope-BYecP9O5.js").then((n) => n.W)
106090
+ import("./reply-prefix-DVyUjzCQ.js").then((n) => n.n),
106091
+ import("./agent-scope-Bx0XQq3s.js").then((n) => n.W)
106092
106092
  ]);
106093
106093
  const route = resolveAgentRoute({
106094
106094
  cfg,
@@ -106156,9 +106156,9 @@ async function registerSlackMonitorSlashCommands(params) {
106156
106156
  });
106157
106157
  const deliverSlashPayloads = async (replies) => {
106158
106158
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
106159
- import("./replies-oXYe4wxf.js").then((n) => n.r),
106160
- import("./chunk-KatG8h1H.js").then((n) => n.s),
106161
- import("./markdown-tables-KcZiNfqg.js").then((n) => n.t)
106159
+ import("./replies-DEtI8EHM.js").then((n) => n.r),
106160
+ import("./chunk-CiQeXMLG.js").then((n) => n.s),
106161
+ import("./markdown-tables-C-HEtwaC.js").then((n) => n.t)
106162
106162
  ]);
106163
106163
  await deliverSlackSlashReplies({
106164
106164
  replies,
@@ -106211,7 +106211,7 @@ async function registerSlackMonitorSlashCommands(params) {
106211
106211
  let nativeCommands = [];
106212
106212
  if (nativeEnabled) {
106213
106213
  reg = await getCommandsRegistry();
106214
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-HOHDwVYx.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
106214
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-LW0SeGsB.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
106215
106215
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
106216
106216
  skillCommands,
106217
106217
  provider: "slack"
@@ -108678,7 +108678,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
108678
108678
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
108679
108679
  let preflightTranscript;
108680
108680
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
108681
- const { transcribeFirstAudio } = await import("./audio-preflight-Ck89DLHq.js");
108681
+ const { transcribeFirstAudio } = await import("./audio-preflight-MUfVeIPT.js");
108682
108682
  preflightTranscript = await transcribeFirstAudio({
108683
108683
  ctx: {
108684
108684
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -111292,23 +111292,23 @@ let webLoginQrPromise = null;
111292
111292
  let webChannelPromise = null;
111293
111293
  let whatsappActionsPromise = null;
111294
111294
  function loadWebOutbound() {
111295
- webOutboundPromise ??= import("./outbound-C7mwBvhN.js").then((n) => n.t);
111295
+ webOutboundPromise ??= import("./outbound-CfdOHhpP.js").then((n) => n.t);
111296
111296
  return webOutboundPromise;
111297
111297
  }
111298
111298
  function loadWebLogin() {
111299
- webLoginPromise ??= import("./login-H3-M4-wp.js").then((n) => n.n);
111299
+ webLoginPromise ??= import("./login-BGt2KP5c.js").then((n) => n.n);
111300
111300
  return webLoginPromise;
111301
111301
  }
111302
111302
  function loadWebLoginQr() {
111303
- webLoginQrPromise ??= import("./login-qr-DIly-pBD.js");
111303
+ webLoginQrPromise ??= import("./login-qr-CDDF5Ark.js");
111304
111304
  return webLoginQrPromise;
111305
111305
  }
111306
111306
  function loadWebChannel() {
111307
- webChannelPromise ??= import("./web-D2vp8fmO.js");
111307
+ webChannelPromise ??= import("./web-DQuQBwMr.js");
111308
111308
  return webChannelPromise;
111309
111309
  }
111310
111310
  function loadWhatsAppActions() {
111311
- whatsappActionsPromise ??= import("./whatsapp-actions-CrVrn3wF.js");
111311
+ whatsappActionsPromise ??= import("./whatsapp-actions-oa93ddRw.js");
111312
111312
  return whatsappActionsPromise;
111313
111313
  }
111314
111314
  function createPluginRuntime(options = {}) {
@@ -111539,7 +111539,7 @@ const resolvePluginSdkAliasFile = (params) => {
111539
111539
  const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
111540
111540
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
111541
111541
  const orderedCandidates = isDistRuntime ? [distCandidate, srcCandidate] : isTest ? [distCandidate, srcCandidate] : [distCandidate];
111542
- for (const candidate of orderedCandidates) if (syncFs.existsSync(candidate)) return candidate;
111542
+ for (const candidate of orderedCandidates) if (fs$1.existsSync(candidate)) return candidate;
111543
111543
  const parent = path.dirname(cursor);
111544
111544
  if (parent === cursor) break;
111545
111545
  cursor = parent;
@@ -111931,7 +111931,7 @@ function loadFasedAgentPlugins(options = {}) {
111931
111931
  continue;
111932
111932
  }
111933
111933
  const safeSource = opened.path;
111934
- syncFs.closeSync(opened.fd);
111934
+ fs$1.closeSync(opened.fd);
111935
111935
  let mod = null;
111936
111936
  try {
111937
111937
  mod = getJiti()(safeSource);
@@ -112068,7 +112068,7 @@ function loadFasedAgentPlugins(options = {}) {
112068
112068
  }
112069
112069
  function safeRealpathOrResolve(value) {
112070
112070
  try {
112071
- return syncFs.realpathSync(value);
112071
+ return fs$1.realpathSync(value);
112072
112072
  } catch {
112073
112073
  return path.resolve(value);
112074
112074
  }
@@ -113227,7 +113227,7 @@ const log$7 = createSubsystemLogger("model-catalog");
113227
113227
  let modelCatalogPromise = null;
113228
113228
  let hasLoggedModelCatalogError = false;
113229
113229
  let hasLoggedProviderCatalogError = false;
113230
- const defaultImportPiSdk = () => import("./pi-model-discovery--TE7j7VE.js").then((n) => n.a);
113230
+ const defaultImportPiSdk = () => import("./pi-model-discovery-C1CAe7eM.js").then((n) => n.a);
113231
113231
  let importPiSdk = defaultImportPiSdk;
113232
113232
  const CODEX_PROVIDER = "openai-codex";
113233
113233
  const OPENAI_PROVIDER = "openai";
@@ -116492,7 +116492,7 @@ var SandboxFsBridgeImpl = class {
116492
116492
  });
116493
116493
  if (!guarded.ok) {
116494
116494
  if (guarded.reason !== "path" || options.allowMissingTarget === false) throw guarded.error instanceof Error ? guarded.error : /* @__PURE__ */ new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
116495
- } else syncFs.closeSync(guarded.fd);
116495
+ } else fs$1.closeSync(guarded.fd);
116496
116496
  const canonicalContainerPath = await this.resolveCanonicalContainerPath({
116497
116497
  containerPath: target.containerPath,
116498
116498
  allowFinalSymlinkForUnlink: options.aliasPolicy?.allowFinalSymlinkForUnlink === true
@@ -118031,7 +118031,7 @@ function buildEmbeddedPiSettingsSnapshot(params) {
118031
118031
  }
118032
118032
  function readJsonFile(filePath) {
118033
118033
  try {
118034
- const raw = syncFs.readFileSync(filePath, "utf8");
118034
+ const raw = fs$1.readFileSync(filePath, "utf8");
118035
118035
  const parsed = JSON.parse(raw);
118036
118036
  return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
118037
118037
  } catch {
@@ -118049,7 +118049,7 @@ function loadEnabledBundlePiSettingsSnapshot(params) {
118049
118049
  const servers = mcp.mcpServers && typeof mcp.mcpServers === "object" && !Array.isArray(mcp.mcpServers) ? mcp.mcpServers : void 0;
118050
118050
  if (servers) {
118051
118051
  const resolvedServers = {};
118052
- const resolvedRoot = syncFs.realpathSync.native?.(pluginRoot) ?? syncFs.realpathSync(pluginRoot);
118052
+ const resolvedRoot = fs$1.realpathSync.native?.(pluginRoot) ?? fs$1.realpathSync(pluginRoot);
118053
118053
  for (const [name, server] of Object.entries(servers)) {
118054
118054
  if (!server || typeof server !== "object" || Array.isArray(server)) {
118055
118055
  resolvedServers[name] = server;
@@ -119430,8 +119430,8 @@ async function readWorkspaceContextForSummary() {
119430
119430
  const workspaceDir = process.cwd();
119431
119431
  const agentsPath = path.join(workspaceDir, "AGENTS.md");
119432
119432
  try {
119433
- if (!syncFs.existsSync(agentsPath)) return "";
119434
- const sections = extractSections(await syncFs.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
119433
+ if (!fs$1.existsSync(agentsPath)) return "";
119434
+ const sections = extractSections(await fs$1.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
119435
119435
  if (sections.length === 0) return "";
119436
119436
  const combined = sections.join("\n\n");
119437
119437
  return `\n\n<workspace-critical-rules>\n${combined.length > MAX_SUMMARY_CONTEXT_CHARS ? combined.slice(0, MAX_SUMMARY_CONTEXT_CHARS) + "\n...[truncated]..." : combined}\n</workspace-critical-rules>`;
@@ -120807,7 +120807,7 @@ async function compactEmbeddedPiSessionDirect(params) {
120807
120807
  });
120808
120808
  if (!apiKeyInfo.apiKey) throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
120809
120809
  else if (model.provider === "github-copilot") {
120810
- const { resolveCopilotApiToken } = await import("./github-copilot-token-eyrRGmGp.js").then((n) => n.n);
120810
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-DYrFvncE.js").then((n) => n.n);
120811
120811
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
120812
120812
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
120813
120813
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -122151,8 +122151,8 @@ function readBundleMcpFile(params) {
122151
122151
  const filePath = path.resolve(rootDir, params.fileName);
122152
122152
  const relative = path.relative(rootDir, filePath);
122153
122153
  if (relative.startsWith("..") || path.isAbsolute(relative)) return {};
122154
- if (!syncFs.existsSync(filePath)) return {};
122155
- const servers = extractMcpServerMap(JSON.parse(syncFs.readFileSync(filePath, "utf-8")));
122154
+ if (!fs$1.existsSync(filePath)) return {};
122155
+ const servers = extractMcpServerMap(JSON.parse(fs$1.readFileSync(filePath, "utf-8")));
122156
122156
  const baseDir = path.dirname(filePath);
122157
122157
  return Object.fromEntries(Object.entries(servers).map(([serverName, server]) => [serverName, absolutizeBundleMcpServer({
122158
122158
  rootDir,
@@ -122179,7 +122179,7 @@ function loadEnabledBundleMcpConfig(params) {
122179
122179
  cfg: params.cfg,
122180
122180
  pluginId
122181
122181
  })) {
122182
- if (!syncFs.existsSync(rootDir)) continue;
122182
+ if (!fs$1.existsSync(rootDir)) continue;
122183
122183
  for (const fileName of BUNDLE_MCP_FILENAMES) try {
122184
122184
  Object.assign(mcpServers, readBundleMcpFile({
122185
122185
  rootDir,
@@ -123184,11 +123184,11 @@ function appendRawStream(payload) {
123184
123184
  if (!rawStreamReady) {
123185
123185
  rawStreamReady = true;
123186
123186
  try {
123187
- syncFs.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
123187
+ fs$1.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
123188
123188
  } catch {}
123189
123189
  }
123190
123190
  try {
123191
- syncFs.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
123191
+ fs$1.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
123192
123192
  } catch {}
123193
123193
  }
123194
123194
 
@@ -126654,7 +126654,7 @@ async function runEmbeddedPiAgent(params) {
126654
126654
  apiKeyInfo = await resolveApiKeyForCandidate(candidate);
126655
126655
  if (!apiKeyInfo.apiKey) throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
126656
126656
  if (model.provider === "github-copilot") {
126657
- const { resolveCopilotApiToken } = await import("./github-copilot-token-eyrRGmGp.js").then((n) => n.n);
126657
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-DYrFvncE.js").then((n) => n.n);
126658
126658
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
126659
126659
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
126660
126660
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);