@bitseek/claw 1.3.6 → 1.3.8-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/{accounts-CX1yOBOk.js → accounts-BTexwKe8.js} +1 -1
  2. package/dist/{accounts-Bwq1wvds.js → accounts-DMvETf-t.js} +1 -1
  3. package/dist/{accounts-CaiECgq3.js → accounts-ubG6irXZ.js} +16 -16
  4. package/dist/{active-listener-neKWQsOO.js → active-listener-Hd9sOu9T.js} +1 -1
  5. package/dist/{agent-scope-CTbRzU1C.js → agent-scope-C6hps0r3.js} +4 -4
  6. package/dist/{agents-BqONdWNu.js → agents-4yiCX5vO.js} +4 -4
  7. package/dist/{agents.config-2cTTTDPj.js → agents.config-C26BMyOA.js} +1 -1
  8. package/dist/{agents.config-DhIvFsFv.js → agents.config-C4xJzUcO.js} +1 -1
  9. package/dist/{api-key-rotation-BbZD-rsQ.js → api-key-rotation-Cv5_SG_o.js} +2 -2
  10. package/dist/{audio-preflight-C5Crv38h.js → audio-preflight-C2pZmbnM.js} +39 -39
  11. package/dist/{audio-transcription-runner-eVtEKUPC.js → audio-transcription-runner-CQ4BMvGX.js} +11 -11
  12. package/dist/{auth-choice-D6WGnKQk.js → auth-choice-Cpai95xS.js} +1 -1
  13. package/dist/{auth-choice-lhaABxGx.js → auth-choice-D9W2yx7x.js} +1 -1
  14. package/dist/{banner-CMCfl-_K.js → banner-DtaJorEc.js} +1 -1
  15. package/dist/{bindings-Daa-Etag.js → bindings-CsIiIjqN.js} +2 -2
  16. package/dist/build-info.json +2 -2
  17. package/dist/bundled/boot-md/handler.js +65 -65
  18. package/dist/bundled/bootstrap-extra-files/handler.js +7 -7
  19. package/dist/bundled/command-logger/handler.js +2 -2
  20. package/dist/bundled/session-memory/handler.js +65 -65
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-activity-D0BHmeoE.js → channel-activity-Dwc2BBvs.js} +3 -3
  23. package/dist/{channel-options-gDhT85r4.js → channel-options-D3Ck-1W2.js} +1 -1
  24. package/dist/{channel-options-Didnr81h.js → channel-options-DffMDeTp.js} +1 -1
  25. package/dist/{channel-web-C45x6ahP.js → channel-web-BB66exAr.js} +1 -1
  26. package/dist/{channel-web-rP0VBNIt.js → channel-web-zni8DLt7.js} +1 -1
  27. package/dist/{channels-cli-CZQbGl-H.js → channels-cli-D_gj850i.js} +6 -6
  28. package/dist/{channels-cli-BpiA2BQE.js → channels-cli-IQCAixeN.js} +6 -6
  29. package/dist/{chrome-BRjY_MCc.js → chrome-DWfXErGH.js} +26 -26
  30. package/dist/{chunk-Dfkbh8wX.js → chunk-2ZxftpDd.js} +1 -1
  31. package/dist/{cli-Cvdtw0CY.js → cli-BlPS7kZ9.js} +1 -1
  32. package/dist/{cli-D5yg1LCm.js → cli-CrgfzbyT.js} +1 -1
  33. package/dist/{command-registry-BSN6zVlZ.js → command-registry-CjTwwZuF.js} +11 -11
  34. package/dist/{commands-registry-NyRDVN7s.js → commands-registry-CTkboeeC.js} +5 -5
  35. package/dist/{completion-cli-BDeiV4p9.js → completion-cli-CgjnsXtn.js} +1 -1
  36. package/dist/{completion-cli-lZ6S6oKA.js → completion-cli-Clj1_156.js} +2 -2
  37. package/dist/{config-cli-C-yIXgGr.js → config-cli-CE1eTqAM.js} +1 -1
  38. package/dist/{config-cli-BtvOIDkG.js → config-cli-DwKVeQtE.js} +1 -1
  39. package/dist/{configure-DflayaB2.js → configure-BCUvl2Zf.js} +3 -3
  40. package/dist/{configure-CgbTpfrx.js → configure-D2KyFnr8.js} +3 -3
  41. package/dist/{deliver-DlLNT2iR.js → deliver-zrYSWfQ5.js} +22 -22
  42. package/dist/{diagnostic-DpOlXoSr.js → diagnostic-BO1GQJJf.js} +2 -2
  43. package/dist/{dock-DXlPVrMo.js → dock-Bm23mfim.js} +6 -6
  44. package/dist/{doctor-completion-BKCOmkBi.js → doctor-completion-BoZbJ2cC.js} +1 -1
  45. package/dist/{doctor-completion-Bim4XRFT.js → doctor-completion-CACrVkvp.js} +1 -1
  46. package/dist/entry.js +2 -2
  47. package/dist/{env-Bn6pmvjK.js → env-DNMZEG57.js} +2 -2
  48. package/dist/{errors-Ct2kCLWx.js → errors-B11yhRo6.js} +1 -1
  49. package/dist/extensionAPI.js +1 -1
  50. package/dist/{fetch-2cO0rj7X.js → fetch-4RonjgqX.js} +5 -5
  51. package/dist/{fetch-guard-iigSYt3Q.js → fetch-guard-B1EGEHan.js} +2 -2
  52. package/dist/{frontmatter-rlCI8Hmw.js → frontmatter-D6vByAHn.js} +2 -2
  53. package/dist/{fs-safe-CM9EhGvi.js → fs-safe-C77EShMC.js} +4 -4
  54. package/dist/{gateway-cli-CDgld1qp.js → gateway-cli-BUFxEad5.js} +8 -8
  55. package/dist/{gateway-cli-8DmbQc9V.js → gateway-cli-D9mIlXNc.js} +8 -8
  56. package/dist/{github-copilot-token-CPjAmbfr.js → github-copilot-token-DLGN-8YS.js} +7 -7
  57. package/dist/{health-Gkd0akfz.js → health-Cjj_F37M.js} +1 -1
  58. package/dist/{health-DaN3xECS.js → health-CpbNiL9A.js} +1 -1
  59. package/dist/{hooks-cli-gRM8FMyG.js → hooks-cli-C0lC4Kj0.js} +2 -2
  60. package/dist/{hooks-cli-n5Weiheq.js → hooks-cli-DRkHJxMs.js} +2 -2
  61. package/dist/{image-BWlmyhr-.js → image-DnxYCkHO.js} +6 -6
  62. package/dist/{image-ops-jvmQoiyw.js → image-ops-DCpyia_K.js} +1 -1
  63. package/dist/index.js +6 -6
  64. package/dist/{internal-hooks-oLQ2m8YT.js → internal-hooks-yQe6H47q.js} +1 -1
  65. package/dist/{ir-pR36nI-3.js → ir-DcDVAFj3.js} +6 -6
  66. package/dist/llm-slug-generator.js +65 -65
  67. package/dist/{logger-DelEB7MK.js → logger-BlH5MJiV.js} +1 -1
  68. package/dist/{login-Cm2zDfEU.js → login-CgEHUE7h.js} +6 -6
  69. package/dist/{login-qr-iS1jPDpP.js → login-qr-DUJfhbUe.js} +13 -13
  70. package/dist/{manager-BX3KtavU.js → manager-tozHviEd.js} +15 -15
  71. package/dist/{markdown-tables-pfs_NCNh.js → markdown-tables-BHONoo6S.js} +1 -1
  72. package/dist/{message-channel-DB68nc40.js → message-channel-pbgFFUNm.js} +1 -1
  73. package/dist/{model-selection-DfZMxaX3.js → model-selection-D_Si2Ict.js} +44 -44
  74. package/dist/{models-CJodAVSF.js → models-De_qVfBK.js} +2 -2
  75. package/dist/{models-cli-B1Dwj01V.js → models-cli-By7lFchJ.js} +2 -2
  76. package/dist/{models-cli-Ceb37L0t.js → models-cli-aJswKT_o.js} +3 -3
  77. package/dist/{npm-resolution-B5fqS6mO.js → npm-resolution-BiJCUhct.js} +1 -1
  78. package/dist/{npm-resolution-dNC8uD0I.js → npm-resolution-Ez_78UD2.js} +1 -1
  79. package/dist/{onboard-sKY5jwsH.js → onboard-CIrRD9vz.js} +2 -2
  80. package/dist/{onboard-BcaFvsav.js → onboard-DQJ6ZB5N.js} +2 -2
  81. package/dist/{onboard-channels-DPIysHDh.js → onboard-channels-AbBziYo3.js} +1 -1
  82. package/dist/{onboard-channels-DQ1rkv4c.js → onboard-channels-yslMqzIm.js} +1 -1
  83. package/dist/{onboarding-BRfS3PSa.js → onboarding-CIsQzEx6.js} +3 -3
  84. package/dist/{onboarding-JNyox6ZE.js → onboarding-exdNo-8e.js} +3 -3
  85. package/dist/{onboarding.finalize-CG9tTRyw.js → onboarding.finalize-BqpH39L7.js} +5 -5
  86. package/dist/{onboarding.finalize-hBg4b8IC.js → onboarding.finalize-spYqvVP0.js} +6 -6
  87. package/dist/{outbound-N9_vLIGT.js → outbound-9rXkgGZM.js} +7 -7
  88. package/dist/{outbound-attachment-CEt49GWZ.js → outbound-attachment-Cy8rvvJE.js} +2 -2
  89. package/dist/{path-alias-guards-xY_GOJVd.js → path-alias-guards-Cpb5gMG6.js} +1 -1
  90. package/dist/{paths-Bi8MJ8NM.js → paths-BHEVctLd.js} +3 -3
  91. package/dist/{paths-DKuX7-1L.js → paths-aGRLvQx9.js} +5 -5
  92. package/dist/{pi-embedded-cmJctBve.js → pi-embedded-BW8O-Z_R.js} +109 -15
  93. package/dist/{pi-embedded-CDXssetE.js → pi-embedded-DLrpQftt.js} +292 -198
  94. package/dist/{pi-embedded-helpers-DSPiPpLM.js → pi-embedded-helpers-Bo7e-QzJ.js} +29 -29
  95. package/dist/{pi-model-discovery-N7o4F93J.js → pi-model-discovery-DA46fxhD.js} +7 -7
  96. package/dist/{plugin-registry-NaHPDM1s.js → plugin-registry-CgjiDSJy.js} +1 -1
  97. package/dist/{plugin-registry-2CmN8Jv2.js → plugin-registry-DXEjCmXY.js} +1 -1
  98. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +1 -0
  99. package/dist/plugin-sdk/{channel-web-Dn5fneOY.js → channel-web-BhgjzJX5.js} +1 -1
  100. package/dist/plugin-sdk/index.js +2 -2
  101. package/dist/plugin-sdk/{reply-rsLB0nJs.js → reply-CLQkx08P.js} +107 -13
  102. package/dist/plugin-sdk/{web-RBob4uU1.js → web-D5yQYvYF.js} +2 -2
  103. package/dist/{plugins-D63QYxW6.js → plugins-CJoaoIHc.js} +11 -11
  104. package/dist/{plugins-cli-DwKgp7q7.js → plugins-cli-CpSINdz-.js} +2 -2
  105. package/dist/{plugins-cli-o6KJO4Qe.js → plugins-cli-DKIC54hQ.js} +2 -2
  106. package/dist/{program-B_-eFyJE.js → program-R4eCXcVV.js} +7 -7
  107. package/dist/{program-context-BJQXRZ1w.js → program-context-XIBDpYkH.js} +19 -19
  108. package/dist/{prompt-select-styled-QH4mD93d.js → prompt-select-styled-CSGsMtmW.js} +4 -4
  109. package/dist/{prompt-select-styled-asxoqY78.js → prompt-select-styled-CxcE42jh.js} +4 -4
  110. package/dist/{provider-auth-helpers-hI1pbI9r.js → provider-auth-helpers-BPwzCB_M.js} +1 -1
  111. package/dist/{provider-auth-helpers-CzSm0FSu.js → provider-auth-helpers-BqRZaAgE.js} +1 -1
  112. package/dist/{proxy-jINniQBi.js → proxy-DfJJLvch.js} +1 -1
  113. package/dist/{proxy-env-Drg9J503.js → proxy-env-ynOWOBHx.js} +1 -1
  114. package/dist/{proxy-fetch-AvkSvetA.js → proxy-fetch-xlbVQYN_.js} +1 -1
  115. package/dist/{push-apns-DZ0qaSFA.js → push-apns-BFPYim-z.js} +1 -1
  116. package/dist/{push-apns-DMeB2M_b.js → push-apns-D_JirvZj.js} +1 -1
  117. package/dist/{pw-ai-gDXxKGzT.js → pw-ai-Cu3cnNF0.js} +17 -17
  118. package/dist/{qmd-manager-DXbV8CPG.js → qmd-manager-n4jauq3A.js} +11 -11
  119. package/dist/{query-expansion-C0A4WwZX.js → query-expansion-CdDUaBcQ.js} +5 -5
  120. package/dist/{redact-BC9R18Uw.js → redact-CaZQhKzI.js} +1 -1
  121. package/dist/{register.agent-D9rmYCMS.js → register.agent-Cls5qjTc.js} +6 -6
  122. package/dist/{register.agent-BBOmACUM.js → register.agent-rU2v36L0.js} +7 -7
  123. package/dist/{register.configure-CZF2XAPO.js → register.configure-BMDzBahu.js} +7 -7
  124. package/dist/{register.configure-BJ7l1h-A.js → register.configure-BUhyYBGQ.js} +7 -7
  125. package/dist/{register.init-BdPckTb9.js → register.init-CFdcOH88.js} +1 -0
  126. package/dist/{register.init-CNKrbvCo.js → register.init-pWy0PRza.js} +1 -0
  127. package/dist/{register.maintenance-B0nZqqML.js → register.maintenance-CofdyNUx.js} +7 -7
  128. package/dist/{register.maintenance-DvWoKstb.js → register.maintenance-Cy17SXVH.js} +8 -8
  129. package/dist/{register.message-BME4m1Jr.js → register.message-3BQdcipC.js} +2 -2
  130. package/dist/{register.message-Cs0mwtTw.js → register.message-Ce33qQCZ.js} +2 -2
  131. package/dist/{register.onboard-DOhvWYV7.js → register.onboard-BlcK7F0u.js} +2 -2
  132. package/dist/{register.onboard-B1-O21vU.js → register.onboard-ESEjBMtx.js} +2 -2
  133. package/dist/{register.setup-ixDBzvTR.js → register.setup-CUxHFPRL.js} +2 -2
  134. package/dist/{register.setup-KPZYo_I1.js → register.setup-N8V5bjG1.js} +2 -2
  135. package/dist/{register.start-Df91ZVJJ.js → register.start-CI8ol0Mk.js} +1 -1
  136. package/dist/{register.start-DErNT3nQ.js → register.start-D5trBtN0.js} +1 -1
  137. package/dist/{register.status-health-sessions-Czq26k6E.js → register.status-health-sessions-BKFS62CW.js} +3 -3
  138. package/dist/{register.status-health-sessions-wp3A615j.js → register.status-health-sessions-Bj4rUQRe.js} +3 -3
  139. package/dist/{register.subclis-BSGvOwqU.js → register.subclis-lEqV1Knw.js} +9 -9
  140. package/dist/{registry-C2GEGa2t.js → registry-CJCkqTms.js} +3 -3
  141. package/dist/{replies-B6I1tT5t.js → replies-D6zARd6r.js} +3 -3
  142. package/dist/{reply-OEcNPoWd.js → reply-CAA6gLtt.js} +109 -15
  143. package/dist/{reply-prefix-9mzt89Cf.js → reply-prefix-DK1i6bCJ.js} +1 -1
  144. package/dist/{resolve-route-BNElrVxR.js → resolve-route-C5hVstLo.js} +4 -4
  145. package/dist/{retry-Ayb7e4XG.js → retry-DTeP7C3h.js} +1 -1
  146. package/dist/{run-main-CdI1kXKr.js → run-main-BTmP3wme.js} +14 -14
  147. package/dist/{send-BMzVXosN.js → send--Gq-Uh-l.js} +7 -7
  148. package/dist/{send-DC_e_Iev.js → send-BpyiQEov.js} +6 -6
  149. package/dist/{send-B6QQ8XfC.js → send-CcQZM0c7.js} +8 -8
  150. package/dist/{send-Buidj_8L.js → send-D2zYssqK.js} +27 -27
  151. package/dist/{send-BQETStDl.js → send-DcL81tZr.js} +10 -10
  152. package/dist/{server-node-events-BE-B31Iv.js → server-node-events-CD_Wo8L4.js} +2 -2
  153. package/dist/{server-node-events-h5NyibKC.js → server-node-events-ap09x8RZ.js} +2 -2
  154. package/dist/{session-meta-DAMj6ZRX.js → session-meta-BbCwXniv.js} +2 -2
  155. package/dist/{session-TVb8hgJP.js → session-xKPVUYQP.js} +9 -9
  156. package/dist/{sessions-Ck4ZR4dY.js → sessions-D7EjW0sG.js} +31 -31
  157. package/dist/{skill-commands-KesfMtZ9.js → skill-commands-Cea3CZFF.js} +9 -9
  158. package/dist/{skills-BYmEoxNo.js → skills-BttlqUXr.js} +22 -22
  159. package/dist/{status-CmNVuywF.js → status-CB2Fs5iL.js} +2 -2
  160. package/dist/{status-D_I-fLJF.js → status-DCtLhxlh.js} +2 -2
  161. package/dist/{store-KLMMBnKE.js → store-B7PaqfvZ.js} +2 -2
  162. package/dist/{subagent-registry-D4xGq2uc.js → subagent-registry-B4xJjOu2.js} +109 -15
  163. package/dist/{subsystem-CAatx5oo.js → subsystem-BRjuJbbM.js} +14 -14
  164. package/dist/{tables-DqechQWF.js → tables-BJ0XAman.js} +1 -1
  165. package/dist/{target-errors-C-KolUyX.js → target-errors-Dad0aUFR.js} +2 -2
  166. package/dist/{tokens-BvzZdrVJ.js → tokens-B9EDT4jv.js} +1 -1
  167. package/dist/{tool-images-DiKIlElg.js → tool-images-ArXzv82F.js} +2 -2
  168. package/dist/{tool-loop-detection-C4V990MS.js → tool-loop-detection-CLoYKYIq.js} +3 -3
  169. package/dist/{update-cli-CfeiDzYx.js → update-cli-BIMys5Ua.js} +7 -7
  170. package/dist/{update-cli-DKmrzt8l.js → update-cli-BuVnlit7.js} +8 -8
  171. package/dist/{update-runner-D5vyQGte.js → update-runner-C4bLqctv.js} +1 -1
  172. package/dist/{update-runner-BUth8QlB.js → update-runner-DGqZqXVF.js} +1 -1
  173. package/dist/{utils-Bo1RFF0l.js → utils-BFZnl-5N.js} +6 -6
  174. package/dist/{web-CQqnJkMB.js → web-BCpNE4aE.js} +2 -2
  175. package/dist/{web-BYeS4JNp.js → web-BJQKWHqO.js} +1 -1
  176. package/dist/{web-BPI4HIht.js → web-Bun-T89j.js} +69 -69
  177. package/dist/{web-Bc1AWW4q.js → web-Cb4sindp.js} +2 -2
  178. package/dist/{whatsapp-actions-Bf61u88d.js → whatsapp-actions-Be9uvUUL.js} +28 -28
  179. package/dist/{workspace-CswOYN9T.js → workspace-D6mrCnXi.js} +21 -21
  180. package/package.json +1 -1
@@ -1,30 +1,30 @@
1
- import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-CTbRzU1C.js";
2
- import { a as resolveGatewayPort, n as STATE_DIR } from "./paths-DKuX7-1L.js";
3
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CAatx5oo.js";
1
+ import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-C6hps0r3.js";
2
+ import { a as resolveGatewayPort, n as STATE_DIR } from "./paths-aGRLvQx9.js";
3
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BRjuJbbM.js";
4
4
  import { c as normalizeAgentId, u as resolveAgentIdFromSessionKey } from "./session-key-a6av96Fj.js";
5
- import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-Bo1RFF0l.js";
6
- import { D as resolvePathViaExistingAncestorSync, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, y as runExec } from "./workspace-CswOYN9T.js";
7
- import { H as loadConfig, K as writeConfigFile, V as createConfigIO, it as getBlockedNetworkModeReason } from "./model-selection-DfZMxaX3.js";
8
- import { n as formatCliCommand } from "./env-Bn6pmvjK.js";
5
+ import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-BFZnl-5N.js";
6
+ import { D as resolvePathViaExistingAncestorSync, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, y as runExec } from "./workspace-D6mrCnXi.js";
7
+ import { H as loadConfig, K as writeConfigFile, V as createConfigIO, it as getBlockedNetworkModeReason } from "./model-selection-D_Si2Ict.js";
8
+ import { n as formatCliCommand } from "./env-DNMZEG57.js";
9
9
  import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
10
- import { t as CHANNEL_IDS } from "./registry-C2GEGa2t.js";
10
+ import { t as CHANNEL_IDS } from "./registry-CJCkqTms.js";
11
11
  import { t as generateSecureToken } from "./secure-random-CY3Mg7Dp.js";
12
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-jvmQoiyw.js";
13
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-BRjY_MCc.js";
14
- import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BYmEoxNo.js";
15
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-xY_GOJVd.js";
16
- import { n as extractErrorCode, r as formatErrorMessage } from "./errors-Ct2kCLWx.js";
17
- import { n as SsrFBlockedError } from "./proxy-env-Drg9J503.js";
18
- import { i as saveMediaBuffer, n as ensureMediaDir } from "./store-KLMMBnKE.js";
12
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DCpyia_K.js";
13
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-DWfXErGH.js";
14
+ import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BttlqUXr.js";
15
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cpb5gMG6.js";
16
+ import { n as extractErrorCode, r as formatErrorMessage } from "./errors-B11yhRo6.js";
17
+ import { n as SsrFBlockedError } from "./proxy-env-ynOWOBHx.js";
18
+ import { i as saveMediaBuffer, n as ensureMediaDir } from "./store-B7PaqfvZ.js";
19
19
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-wLpB_Uk8.js";
20
20
  import { r as writeJsonAtomic } from "./json-files-BpxTFudd.js";
21
- import { B as canonicalizeMainSessionAlias, K as acquireSessionWriteLock, V as resolveAgentMainSessionKey } from "./sessions-Ck4ZR4dY.js";
22
- import { t as sanitizeContentBlocksImages } from "./tool-images-DiKIlElg.js";
21
+ import { B as canonicalizeMainSessionAlias, K as acquireSessionWriteLock, V as resolveAgentMainSessionKey } from "./sessions-D7EjW0sG.js";
22
+ import { t as sanitizeContentBlocksImages } from "./tool-images-ArXzv82F.js";
23
23
  import { o as normalizeThinkLevel } from "./thinking-BcOnJa2q.js";
24
24
  import fs from "node:fs/promises";
25
25
  import os from "node:os";
26
26
  import path, { posix } from "node:path";
27
- import fs$1, { existsSync } from "node:fs";
27
+ import syncFs, { existsSync } from "node:fs";
28
28
  import { spawn } from "node:child_process";
29
29
  import crypto, { createHash, timingSafeEqual } from "node:crypto";
30
30
  import express from "express";
@@ -1192,7 +1192,7 @@ function isModuleNotFoundError(err) {
1192
1192
  }
1193
1193
  async function loadPwAiModule(mode) {
1194
1194
  try {
1195
- return await import("./pw-ai-gDXxKGzT.js");
1195
+ return await import("./pw-ai-Cu3cnNF0.js");
1196
1196
  } catch (err) {
1197
1197
  if (mode === "soft") return null;
1198
1198
  if (isModuleNotFoundError(err)) return null;
@@ -2969,11 +2969,11 @@ async function movePathToTrash(targetPath) {
2969
2969
  return targetPath;
2970
2970
  } catch {
2971
2971
  const trashDir = path.join(os.homedir(), ".Trash");
2972
- fs$1.mkdirSync(trashDir, { recursive: true });
2972
+ syncFs.mkdirSync(trashDir, { recursive: true });
2973
2973
  const base = path.basename(targetPath);
2974
2974
  let dest = path.join(trashDir, `${base}-${Date.now()}`);
2975
- if (fs$1.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2976
- fs$1.renameSync(targetPath, dest);
2975
+ if (syncFs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2976
+ syncFs.renameSync(targetPath, dest);
2977
2977
  return dest;
2978
2978
  }
2979
2979
  }
@@ -3060,7 +3060,7 @@ function createBrowserProfilesService(ctx) {
3060
3060
  } catch {}
3061
3061
  const userDataDir = resolveOpenClawUserDataDir(name);
3062
3062
  const profileDir = path.dirname(userDataDir);
3063
- if (fs$1.existsSync(profileDir)) {
3063
+ if (syncFs.existsSync(profileDir)) {
3064
3064
  await movePathToTrash(profileDir);
3065
3065
  deleted = true;
3066
3066
  }
@@ -3558,7 +3558,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3558
3558
  //#region src/browser/server-context.reset.ts
3559
3559
  async function closePlaywrightBrowserConnection() {
3560
3560
  try {
3561
- await (await import("./pw-ai-gDXxKGzT.js")).closePlaywrightBrowserConnection();
3561
+ await (await import("./pw-ai-Cu3cnNF0.js")).closePlaywrightBrowserConnection();
3562
3562
  } catch {}
3563
3563
  }
3564
3564
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {
@@ -3576,7 +3576,7 @@ function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, i
3576
3576
  if (await isHttpReachable(300) && !profileState.running) await closePlaywrightBrowserConnection();
3577
3577
  if (profileState.running) await stopRunningBrowser();
3578
3578
  await closePlaywrightBrowserConnection();
3579
- if (!fs$1.existsSync(userDataDir)) return {
3579
+ if (!syncFs.existsSync(userDataDir)) return {
3580
3580
  moved: false,
3581
3581
  from: userDataDir
3582
3582
  };
@@ -5635,7 +5635,7 @@ var SandboxFsBridgeImpl = class {
5635
5635
  if (guarded.reason !== "path") {
5636
5636
  if (!(options.allowedType === "directory" && this.pathIsExistingDirectory(target.hostPath))) throw guarded.error instanceof Error ? guarded.error : /* @__PURE__ */ new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
5637
5637
  }
5638
- } else fs$1.closeSync(guarded.fd);
5638
+ } else syncFs.closeSync(guarded.fd);
5639
5639
  const canonicalContainerPath = await this.resolveCanonicalContainerPath({
5640
5640
  containerPath: target.containerPath,
5641
5641
  allowFinalSymlinkForUnlink: options.aliasPolicy?.allowFinalSymlinkForUnlink === true
@@ -5646,7 +5646,7 @@ var SandboxFsBridgeImpl = class {
5646
5646
  }
5647
5647
  pathIsExistingDirectory(hostPath) {
5648
5648
  try {
5649
- return fs$1.statSync(hostPath).isDirectory();
5649
+ return syncFs.statSync(hostPath).isDirectory();
5650
5650
  } catch {
5651
5651
  return false;
5652
5652
  }
@@ -5914,13 +5914,13 @@ async function ensureSandboxWorkspace(workspaceDir, seedFrom, skipBootstrap) {
5914
5914
  });
5915
5915
  if (!opened.ok) continue;
5916
5916
  try {
5917
- const content = fs$1.readFileSync(opened.fd, "utf-8");
5917
+ const content = syncFs.readFileSync(opened.fd, "utf-8");
5918
5918
  await fs.writeFile(dest, content, {
5919
5919
  encoding: "utf-8",
5920
5920
  flag: "wx"
5921
5921
  });
5922
5922
  } finally {
5923
- fs$1.closeSync(opened.fd);
5923
+ syncFs.closeSync(opened.fd);
5924
5924
  }
5925
5925
  } catch {}
5926
5926
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Dn as ensureAuthProfileStore, c as normalizeProviderId } from "./model-selection-DfZMxaX3.js";
2
+ import { Dn as ensureAuthProfileStore, c as normalizeProviderId } from "./model-selection-D_Si2Ict.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import syncFs from "node:fs";
5
5
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
6
6
 
7
7
  //#region src/agents/pi-auth-credentials.ts
@@ -70,10 +70,10 @@ function isRecord(value) {
70
70
  }
71
71
  function scrubLegacyStaticAuthJsonEntries(pathname) {
72
72
  if (process.env.OPENCLAW_AUTH_STORE_READONLY === "1") return;
73
- if (!fs.existsSync(pathname)) return;
73
+ if (!syncFs.existsSync(pathname)) return;
74
74
  let parsed;
75
75
  try {
76
- parsed = JSON.parse(fs.readFileSync(pathname, "utf8"));
76
+ parsed = JSON.parse(syncFs.readFileSync(pathname, "utf8"));
77
77
  } catch {
78
78
  return;
79
79
  }
@@ -87,11 +87,11 @@ function scrubLegacyStaticAuthJsonEntries(pathname) {
87
87
  }
88
88
  if (!changed) return;
89
89
  if (Object.keys(parsed).length === 0) {
90
- fs.rmSync(pathname, { force: true });
90
+ syncFs.rmSync(pathname, { force: true });
91
91
  return;
92
92
  }
93
- fs.writeFileSync(pathname, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
94
- fs.chmodSync(pathname, 384);
93
+ syncFs.writeFileSync(pathname, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
94
+ syncFs.chmodSync(pathname, 384);
95
95
  }
96
96
  function createAuthStorage(AuthStorageLike, path, creds) {
97
97
  const withInMemory = AuthStorageLike;
@@ -3,7 +3,7 @@ import { t as createSubsystemLogger } from "./subsystem-DjdBljTA.js";
3
3
  import { M as loadConfig } from "./auth-profiles-Ncv1fyN5.js";
4
4
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-CJelRKYY.js";
5
5
  import { u as getActivePluginRegistry } from "./registry-7fg1BnMw.js";
6
- import { _ as loadOpenClawPlugins } from "./subagent-registry-D4xGq2uc.js";
6
+ import { _ as loadOpenClawPlugins } from "./subagent-registry-B4xJjOu2.js";
7
7
 
8
8
  //#region src/cli/plugin-registry.ts
9
9
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { dt as loadOpenClawPlugins } from "./reply-OEcNPoWd.js";
2
+ import { dt as loadOpenClawPlugins } from "./reply-CAA6gLtt.js";
3
3
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-CiBV1K6b.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-BT74-yyS.js";
5
5
  import { Wt as loadConfig } from "./model-selection-xdfZxwgB.js";
@@ -4,6 +4,7 @@ import type { SandboxFsBridge } from "./sandbox/fs-bridge.js";
4
4
  type OpenClawReadToolOptions = {
5
5
  modelContextWindowTokens?: number;
6
6
  imageSanitization?: ImageSanitizationLimits;
7
+ workspaceRoot?: string;
7
8
  };
8
9
  type RequiredParamGroup = {
9
10
  keys: readonly string[];
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, c as normalizeAgentId, n as DEFAULT_MAIN_KEY, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey } from "./session-key-CVIXEtLx.js";
2
2
  import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-D_pT5EjF.js";
3
- import { At as resolveDefaultGroupPolicy, C as formatDurationPrecise, Ct as resolveDmGroupAccessWithLists, J as DEFAULT_GROUP_HISTORY_LIMIT, Nt as warnMissingProviderGroupPolicyFallbackOnce, St as resolveDmGroupAccessWithCommandGate, Tt as resolvePinnedMainDmOwnerFromAllowlist, U as shouldAckReactionForWhatsApp, W as resolveMentionGating, Y as buildHistoryContextFromEntries, _t as buildPairingReply, ct as formatInboundEnvelope, d as dispatchReplyWithBufferedBlockDispatcher, g as shouldComputeCommandAuthorized, h as hasControlCommand, i as resolveInboundSessionEnvelopeContext, it as createDedupeCache, jt as resolveOpenProviderRuntimeGroupPolicy, l as computeBackoff, m as resolveInboundDebounceMs, n as normalizeGroupActivation, nt as buildMentionRegexes, p as createInboundDebouncer, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as sleepWithAbort, w as enqueueSystemEvent, yt as readStoreAllowFromForDmPolicy } from "./reply-rsLB0nJs.js";
3
+ import { At as resolveDefaultGroupPolicy, C as formatDurationPrecise, Ct as resolveDmGroupAccessWithLists, J as DEFAULT_GROUP_HISTORY_LIMIT, Nt as warnMissingProviderGroupPolicyFallbackOnce, St as resolveDmGroupAccessWithCommandGate, Tt as resolvePinnedMainDmOwnerFromAllowlist, U as shouldAckReactionForWhatsApp, W as resolveMentionGating, Y as buildHistoryContextFromEntries, _t as buildPairingReply, ct as formatInboundEnvelope, d as dispatchReplyWithBufferedBlockDispatcher, g as shouldComputeCommandAuthorized, h as hasControlCommand, i as resolveInboundSessionEnvelopeContext, it as createDedupeCache, jt as resolveOpenProviderRuntimeGroupPolicy, l as computeBackoff, m as resolveInboundDebounceMs, n as normalizeGroupActivation, nt as buildMentionRegexes, p as createInboundDebouncer, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as sleepWithAbort, w as enqueueSystemEvent, yt as readStoreAllowFromForDmPolicy } from "./reply-CLQkx08P.js";
4
4
  import { n as loadConfig } from "./config-DAwOhnVF.js";
5
5
  import { i as defaultRuntime, p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, y as getChildLogger } from "./subsystem-CM1s2lDT.js";
6
6
  import { d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-BcL6KGZf.js";
@@ -1,6 +1,6 @@
1
1
  import { d as resolveThreadSessionKeys, m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-CVIXEtLx.js";
2
2
  import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, r as resolveDefaultWhatsAppAccountId, v as createAccountListHelpers } from "./accounts-D_pT5EjF.js";
3
- import { $ as evictOldHistoryKeys, $t as autoBindSpawnedDiscordSubagent, A as resolveDiscordUserAllowlist, At as resolveDefaultGroupPolicy, B as createTypingCallbacks, Bt as readJsonBodyWithLimit, Ct as resolveDmGroupAccessWithLists, D as resolveSlackUserAllowlist, Dt as GROUP_POLICY_BLOCKED_LABEL, E as parseTelegramThreadId, Et as resolveControlCommandGate, F as stringEnum, Ft as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, G as resolveMentionGatingWithBypass, Gt as isDangerousNameMatchingEnabled, H as shouldAckReaction, Ht as requestBodyErrorToText, I as recordInboundSession, It as DEFAULT_WEBHOOK_MAX_BODY_BYTES, J as DEFAULT_GROUP_HISTORY_LIMIT, Jt as registerAcpRuntimeBackend, K as mergeAllowlist, Kt as registerPluginHttpRoute, L as logAckFailure, Lt as RequestBodyLimitError, M as collectDiscordAuditChannelIds, Mt as resolveRuntimeGroupPolicy, N as formatDocsLink, Nt as warnMissingProviderGroupPolicyFallbackOnce, O as resolveSlackChannelAllowlist, Ot as resetMissingProviderGroupPolicyFallbackWarningsForTesting, P as optionalStringEnum, Pt as pruneMapToMaxSize, Q as clearHistoryEntriesIfEnabled, Qt as AcpRuntimeError, R as logInboundDrop, Rt as installRequestBodyLimitGuard, S as attachFooterText, St as resolveDmGroupAccessWithCommandGate, T as parseTelegramReplyToMessageId, U as shouldAckReactionForWhatsApp, Ut as KeyedAsyncQueue, V as removeAckReactionAfterReply, Vt as readRequestBodyWithLimit, W as resolveMentionGating, Wt as enqueueKeyedTask, X as buildPendingHistoryContextFromMap, Xt as unregisterAcpRuntimeBackend, Yt as requireAcpRuntimeBackend, Z as clearHistoryEntries, Zt as ACP_ERROR_CODES, a as listLineAccountIds, an as BLUEBUBBLES_ACTIONS, at as approveDevicePairing, b as stripMarkdown, bt as resolveDmAllowState, c as resolveLineAccount, cn as CHANNEL_MESSAGE_ACTION_NAMES, dt as formatZonedTimestamp, en as listThreadBindingsBySessionKey, et as recordPendingHistoryEntry, ft as resolveTimezone, gt as issuePairingChallenge, ht as extractToolSend, in as resolveAllowlistMatchSimple, it as createDedupeCache, j as resolveDiscordChannelAllowlist, jt as resolveOpenProviderRuntimeGroupPolicy, k as detectBinary, kt as resolveAllowlistProviderRuntimeGroupPolicy, lt as formatInboundFromLabel, mt as buildMediaPayload, nn as formatAllowlistMatchMeta, o as normalizeAccountId$1, on as BLUEBUBBLES_ACTION_NAMES, ot as listDevicePairing, pt as readBooleanParam, q as summarizeMapping, qt as getAcpRuntimeBackend, rn as resolveAllowlistMatchByCandidates, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_GROUP_ACTIONS, st as rejectDevicePairing, tn as unbindThreadBindingsBySessionKey, tt as recordPendingHistoryEntryIfEnabled, ut as formatUtcTimestamp, v as hasMarkdownToConvert, vt as DM_GROUP_ACCESS_REASON, wt as resolveEffectiveAllowFromLists, x as createReceiptCard, xt as resolveDmGroupAccessDecision, y as processLineMessage, yt as readStoreAllowFromForDmPolicy, z as logTypingFailure, zt as isRequestBodyLimitError } from "./reply-rsLB0nJs.js";
3
+ import { $ as evictOldHistoryKeys, $t as autoBindSpawnedDiscordSubagent, A as resolveDiscordUserAllowlist, At as resolveDefaultGroupPolicy, B as createTypingCallbacks, Bt as readJsonBodyWithLimit, Ct as resolveDmGroupAccessWithLists, D as resolveSlackUserAllowlist, Dt as GROUP_POLICY_BLOCKED_LABEL, E as parseTelegramThreadId, Et as resolveControlCommandGate, F as stringEnum, Ft as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, G as resolveMentionGatingWithBypass, Gt as isDangerousNameMatchingEnabled, H as shouldAckReaction, Ht as requestBodyErrorToText, I as recordInboundSession, It as DEFAULT_WEBHOOK_MAX_BODY_BYTES, J as DEFAULT_GROUP_HISTORY_LIMIT, Jt as registerAcpRuntimeBackend, K as mergeAllowlist, Kt as registerPluginHttpRoute, L as logAckFailure, Lt as RequestBodyLimitError, M as collectDiscordAuditChannelIds, Mt as resolveRuntimeGroupPolicy, N as formatDocsLink, Nt as warnMissingProviderGroupPolicyFallbackOnce, O as resolveSlackChannelAllowlist, Ot as resetMissingProviderGroupPolicyFallbackWarningsForTesting, P as optionalStringEnum, Pt as pruneMapToMaxSize, Q as clearHistoryEntriesIfEnabled, Qt as AcpRuntimeError, R as logInboundDrop, Rt as installRequestBodyLimitGuard, S as attachFooterText, St as resolveDmGroupAccessWithCommandGate, T as parseTelegramReplyToMessageId, U as shouldAckReactionForWhatsApp, Ut as KeyedAsyncQueue, V as removeAckReactionAfterReply, Vt as readRequestBodyWithLimit, W as resolveMentionGating, Wt as enqueueKeyedTask, X as buildPendingHistoryContextFromMap, Xt as unregisterAcpRuntimeBackend, Yt as requireAcpRuntimeBackend, Z as clearHistoryEntries, Zt as ACP_ERROR_CODES, a as listLineAccountIds, an as BLUEBUBBLES_ACTIONS, at as approveDevicePairing, b as stripMarkdown, bt as resolveDmAllowState, c as resolveLineAccount, cn as CHANNEL_MESSAGE_ACTION_NAMES, dt as formatZonedTimestamp, en as listThreadBindingsBySessionKey, et as recordPendingHistoryEntry, ft as resolveTimezone, gt as issuePairingChallenge, ht as extractToolSend, in as resolveAllowlistMatchSimple, it as createDedupeCache, j as resolveDiscordChannelAllowlist, jt as resolveOpenProviderRuntimeGroupPolicy, k as detectBinary, kt as resolveAllowlistProviderRuntimeGroupPolicy, lt as formatInboundFromLabel, mt as buildMediaPayload, nn as formatAllowlistMatchMeta, o as normalizeAccountId$1, on as BLUEBUBBLES_ACTION_NAMES, ot as listDevicePairing, pt as readBooleanParam, q as summarizeMapping, qt as getAcpRuntimeBackend, rn as resolveAllowlistMatchByCandidates, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_GROUP_ACTIONS, st as rejectDevicePairing, tn as unbindThreadBindingsBySessionKey, tt as recordPendingHistoryEntryIfEnabled, ut as formatUtcTimestamp, v as hasMarkdownToConvert, vt as DM_GROUP_ACCESS_REASON, wt as resolveEffectiveAllowFromLists, x as createReceiptCard, xt as resolveDmGroupAccessDecision, y as processLineMessage, yt as readStoreAllowFromForDmPolicy, z as logTypingFailure, zt as isRequestBodyLimitError } from "./reply-CLQkx08P.js";
4
4
  import "./paths-C__vjTc0.js";
5
5
  import "./github-copilot-token-WHEJfZD4.js";
6
6
  import { A as GroupPolicySchema, D as BlockStreamingCoalesceSchema, E as ToolPolicySchema, F as TtsConfigSchema, I as TtsModeSchema, Jn as acquireFileLock, L as TtsProviderSchema, M as MarkdownTableModeSchema, N as ReplyRuntimeConfigSchemaShape, O as DmConfigSchema, P as TtsAutoSchema, R as normalizeAllowFrom, Yn as withFileLock, c as WhatsAppConfigSchema, d as IMessageConfigSchema, f as MSTeamsConfigSchema, h as TelegramConfigSchema, j as MarkdownConfigSchema, k as DmPolicySchema, l as DiscordConfigSchema, m as SlackConfigSchema, p as SignalConfigSchema, u as GoogleChatConfigSchema, z as requireOpenAllowFrom } from "./config-DAwOhnVF.js";
@@ -52,7 +52,7 @@ import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticE
52
52
  import { r as extractOriginalFilename } from "./store-BZbE1V-C.js";
53
53
  import "./pi-embedded-helpers-CKEUWckk.js";
54
54
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-D3Y4F2Le.js";
55
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-Dn5fneOY.js";
55
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-BhgjzJX5.js";
56
56
  import "./thinking-DGaZRXAR.js";
57
57
  import "./image-B3A2l2ep.js";
58
58
  import "./pi-model-discovery-BPeQq9XM.js";
@@ -7,7 +7,7 @@ import { $n as resolveAuthProfileDisplayLabel, An as resolveApiKeyForProvider, A
7
7
  import { D as consumeRootOptionToken, E as FLAG_TERMINATOR, T as resolvePreferredOpenClawTmpDir, _ as isRich, a as clearActiveProgressLine, c as danger, f as setVerbose, g as colorize, h as warn, i as defaultRuntime, o as registerActiveProgressLine, p as shouldLogVerbose, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger, u as logVerbose, v as theme, w as normalizeLogLevel, y as getChildLogger } from "./subsystem-CM1s2lDT.js";
8
8
  import { C as isPlainObject, S as truncateUtf16Safe, _ as shortenHomeInString, a as ensureDir$3, b as sliceUtf16Safe, c as isRecord$1, d as normalizeE164, h as resolveUserPath, o as escapeRegExp, r as clampInt, s as formatTerminalLink, t as CONFIG_DIR, v as shortenHomePath, y as sleep$1 } from "./utils-BcL6KGZf.js";
9
9
  import { n as isTruthyEnvValue, r as parseBooleanValue$1, t as formatCliCommand } from "./command-format-BOJz3y1v.js";
10
- import { A as spawnWithFallback, C as loadWorkspaceBootstrapFiles, E as resolveOpenClawPackageRoot, G as resolveAgentModelPrimaryValue, H as normalizeWindowsPathForComparison, K as toAgentModelListLike, M as openBoundaryFile, N as openBoundaryFileSync, O as runCommandWithTimeout, S as filterBootstrapFilesForSession, W as resolveAgentModelFallbackValues, _ as DEFAULT_IDENTITY_FILENAME, c as resolveDefaultAgentId, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, k as runExec, l as resolveEffectiveModelFallbacks, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentSkillsFilter, r as resolveAgentConfig, s as resolveAgentWorkspaceDir, t as hasConfiguredModelFallbacks, u as resolveRunModelFallbacksOverride, w as resolveWorkspaceAttachmentsRoot, x as ensureAgentWorkspace } from "./agent-scope-DT5pxpJB.js";
10
+ import { A as spawnWithFallback, B as isPathInside$1, C as loadWorkspaceBootstrapFiles, E as resolveOpenClawPackageRoot, G as resolveAgentModelPrimaryValue, H as normalizeWindowsPathForComparison, K as toAgentModelListLike, M as openBoundaryFile, N as openBoundaryFileSync, O as runCommandWithTimeout, R as hasNodeErrorCode, S as filterBootstrapFilesForSession, W as resolveAgentModelFallbackValues, _ as DEFAULT_IDENTITY_FILENAME, c as resolveDefaultAgentId, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, k as runExec, l as resolveEffectiveModelFallbacks, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentSkillsFilter, r as resolveAgentConfig, s as resolveAgentWorkspaceDir, t as hasConfiguredModelFallbacks, u as resolveRunModelFallbacksOverride, w as resolveWorkspaceAttachmentsRoot, x as ensureAgentWorkspace, z as isNotFoundPathError } from "./agent-scope-DT5pxpJB.js";
11
11
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-Cr-x0vMf.js";
12
12
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-Ckp-v-FK.js";
13
13
  import { _ as getPluginCommandSpecs, a as normalizeAnyChannelId, b as createInternalHookEvent, c as getActivePluginRegistry, d as requireActivePluginRegistry, f as setActivePluginRegistry, g as executePluginCommand, h as clearPluginCommands, i as listChatChannels, l as getActivePluginRegistryKey, m as normalizePluginHttpPath, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as createPluginRegistry, r as getChatChannelMeta, s as normalizeChatChannelId, v as listPluginCommands, x as triggerInternalHook, y as matchPluginCommand } from "./registry-Cv-oHUj1.js";
@@ -41201,7 +41201,7 @@ function createOutboundSendDepsFromCliSource(deps) {
41201
41201
  function createDefaultDeps() {
41202
41202
  return {
41203
41203
  sendMessageWhatsApp: async (...args) => {
41204
- const { sendMessageWhatsApp } = await import("./web-RBob4uU1.js");
41204
+ const { sendMessageWhatsApp } = await import("./web-D5yQYvYF.js");
41205
41205
  return await sendMessageWhatsApp(...args);
41206
41206
  },
41207
41207
  sendMessageTelegram: async (...args) => {
@@ -61236,7 +61236,7 @@ function loadWebLoginQr() {
61236
61236
  return webLoginQrPromise;
61237
61237
  }
61238
61238
  function loadWebChannel() {
61239
- webChannelPromise ??= import("./web-RBob4uU1.js");
61239
+ webChannelPromise ??= import("./web-D5yQYvYF.js");
61240
61240
  return webChannelPromise;
61241
61241
  }
61242
61242
  function loadWhatsAppActions() {
@@ -73829,6 +73829,82 @@ function stripReadTruncationContentDetails(result) {
73829
73829
  }
73830
73830
  };
73831
73831
  }
73832
+ function extractRequestedReadPath(record) {
73833
+ const trimmed = (typeof record?.path === "string" ? record.path : typeof record?.file_path === "string" ? record.file_path : void 0)?.trim();
73834
+ return trimmed ? trimmed : void 0;
73835
+ }
73836
+ function normalizeReadPathCandidate(filePath) {
73837
+ const trimmed = filePath.trim();
73838
+ const withoutAt = trimmed.startsWith("@") ? trimmed.slice(1) : trimmed;
73839
+ if (/^file:\/\//i.test(withoutAt)) try {
73840
+ return fileURLToPath(withoutAt);
73841
+ } catch {
73842
+ return withoutAt;
73843
+ }
73844
+ return withoutAt;
73845
+ }
73846
+ function normalizeRelativeReadPath(filePath) {
73847
+ return filePath.replace(/\\/g, "/").replace(/^(?:\.\/)+/, "").replace(/^\/+/, "").replace(/\/+$/, "");
73848
+ }
73849
+ function getReadPathRelativeToWorkspace(filePath, workspaceRoot) {
73850
+ const normalized = normalizeReadPathCandidate(filePath);
73851
+ if (!path.isAbsolute(normalized)) return normalizeRelativeReadPath(normalized);
73852
+ if (!workspaceRoot) return;
73853
+ const root = path.resolve(workspaceRoot);
73854
+ const resolved = path.resolve(normalized);
73855
+ if (!isPathInside$1(root, resolved)) return;
73856
+ return normalizeRelativeReadPath(path.relative(root, resolved));
73857
+ }
73858
+ function isMemoryReadPath(filePath, workspaceRoot) {
73859
+ const relative = getReadPathRelativeToWorkspace(filePath, workspaceRoot);
73860
+ return relative === "memory" || Boolean(relative?.startsWith("memory/"));
73861
+ }
73862
+ function resolveReadPathWithinWorkspace(filePath, workspaceRoot) {
73863
+ if (!workspaceRoot) return;
73864
+ const normalized = normalizeReadPathCandidate(filePath);
73865
+ const resolved = path.isAbsolute(normalized) ? path.resolve(normalized) : path.resolve(workspaceRoot, normalized);
73866
+ return isPathInside$1(path.resolve(workspaceRoot), resolved) ? resolved : void 0;
73867
+ }
73868
+ function createMemoryDirectoryReadResult(filePath) {
73869
+ return {
73870
+ content: [{
73871
+ type: "text",
73872
+ text: `${filePath} is a directory, not a file. Read a specific file such as MEMORY.md or memory/YYYY-MM-DD.md instead.`
73873
+ }],
73874
+ details: {}
73875
+ };
73876
+ }
73877
+ function createMissingMemoryReadResult(filePath) {
73878
+ return {
73879
+ content: [{
73880
+ type: "text",
73881
+ text: `No memory file exists at ${filePath} yet. Continue normally, or create a file such as memory/YYYY-MM-DD.md when you want to save notes.`
73882
+ }],
73883
+ details: {}
73884
+ };
73885
+ }
73886
+ async function maybeCreateMemoryReadCompatibilityResult(params) {
73887
+ if (!isMemoryReadPath(params.filePath, params.workspaceRoot)) return null;
73888
+ const absolutePath = resolveReadPathWithinWorkspace(params.filePath, params.workspaceRoot);
73889
+ if (!absolutePath) return null;
73890
+ try {
73891
+ if ((await fs$1.stat(absolutePath)).isDirectory()) return createMemoryDirectoryReadResult(params.filePath);
73892
+ return null;
73893
+ } catch (error) {
73894
+ if (isNotFoundPathError(error)) return createMissingMemoryReadResult(params.filePath);
73895
+ throw error;
73896
+ }
73897
+ }
73898
+ function maybeRecoverMemoryReadError(params) {
73899
+ if (!isMemoryReadPath(params.filePath, params.workspaceRoot)) return null;
73900
+ if (params.error instanceof SafeOpenError) {
73901
+ if (params.error.code === "not-file") return createMemoryDirectoryReadResult(params.filePath);
73902
+ if (params.error.code === "not-found") return createMissingMemoryReadResult(params.filePath);
73903
+ }
73904
+ if (hasNodeErrorCode(params.error, "EISDIR")) return createMemoryDirectoryReadResult(params.filePath);
73905
+ if (isNotFoundPathError(params.error)) return createMissingMemoryReadResult(params.filePath);
73906
+ return null;
73907
+ }
73832
73908
  async function executeReadWithAdaptivePaging(params) {
73833
73909
  const userLimit = params.args.limit;
73834
73910
  if (typeof userLimit === "number" && Number.isFinite(userLimit) && userLimit > 0) return await params.base.execute(params.toolCallId, params.args, params.signal);
@@ -74104,7 +74180,8 @@ function wrapToolWorkspaceRootGuardWithOptions(tool, root, options) {
74104
74180
  function createSandboxedReadTool(params) {
74105
74181
  return createOpenClawReadTool(createReadTool(params.root, { operations: createSandboxReadOperations(params) }), {
74106
74182
  modelContextWindowTokens: params.modelContextWindowTokens,
74107
- imageSanitization: params.imageSanitization
74183
+ imageSanitization: params.imageSanitization,
74184
+ workspaceRoot: params.root
74108
74185
  });
74109
74186
  }
74110
74187
  function createSandboxedWriteTool(params) {
@@ -74170,14 +74247,30 @@ function createOpenClawReadTool(base, options) {
74170
74247
  const normalized = normalizeToolParams(params);
74171
74248
  const record = normalized ?? (params && typeof params === "object" ? params : void 0);
74172
74249
  assertRequiredParams(record, CLAUDE_PARAM_GROUPS.read, base.name);
74173
- const result = await executeReadWithAdaptivePaging({
74174
- base,
74175
- toolCallId,
74176
- args: normalized ?? params ?? {},
74177
- signal,
74178
- maxBytes: resolveAdaptiveReadMaxBytes(options)
74179
- });
74180
- const filePath = typeof record?.path === "string" ? String(record.path) : "<unknown>";
74250
+ const filePath = extractRequestedReadPath(record) ?? "<unknown>";
74251
+ const memoryCompatibilityResult = filePath !== "<unknown>" ? await maybeCreateMemoryReadCompatibilityResult({
74252
+ filePath,
74253
+ workspaceRoot: options?.workspaceRoot
74254
+ }) : null;
74255
+ if (memoryCompatibilityResult) return memoryCompatibilityResult;
74256
+ let result;
74257
+ try {
74258
+ result = await executeReadWithAdaptivePaging({
74259
+ base,
74260
+ toolCallId,
74261
+ args: normalized ?? params ?? {},
74262
+ signal,
74263
+ maxBytes: resolveAdaptiveReadMaxBytes(options)
74264
+ });
74265
+ } catch (error) {
74266
+ const recovered = filePath !== "<unknown>" ? maybeRecoverMemoryReadError({
74267
+ filePath,
74268
+ workspaceRoot: options?.workspaceRoot,
74269
+ error
74270
+ }) : null;
74271
+ if (recovered) return recovered;
74272
+ throw error;
74273
+ }
74181
74274
  return sanitizeToolResultImages(await normalizeReadImageResult(stripReadTruncationContentDetails(result), filePath), `read:${filePath}`, options?.imageSanitization);
74182
74275
  }
74183
74276
  };
@@ -74943,7 +75036,8 @@ function createOpenClawCodingTools(options) {
74943
75036
  }
74944
75037
  const wrapped = createOpenClawReadTool(createReadTool(workspaceRoot), {
74945
75038
  modelContextWindowTokens: options?.modelContextWindowTokens,
74946
- imageSanitization
75039
+ imageSanitization,
75040
+ workspaceRoot
74947
75041
  });
74948
75042
  return [workspaceOnly ? wrapToolWorkspaceRootGuard(wrapped, workspaceRoot) : wrapped];
74949
75043
  }
@@ -1,5 +1,5 @@
1
1
  import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, o as WA_WEB_AUTH_DIR } from "./accounts-D_pT5EjF.js";
2
- import "./reply-rsLB0nJs.js";
2
+ import "./reply-CLQkx08P.js";
3
3
  import "./paths-C__vjTc0.js";
4
4
  import "./github-copilot-token-WHEJfZD4.js";
5
5
  import "./config-DAwOhnVF.js";
@@ -49,7 +49,7 @@ import "./deliver-PdH-MCq8.js";
49
49
  import "./diagnostic-BZvj-qNu.js";
50
50
  import "./store-BZbE1V-C.js";
51
51
  import "./pi-embedded-helpers-CKEUWckk.js";
52
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Dn5fneOY.js";
52
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-BhgjzJX5.js";
53
53
  import "./thinking-DGaZRXAR.js";
54
54
  import "./image-B3A2l2ep.js";
55
55
  import "./pi-model-discovery-BPeQq9XM.js";
@@ -1,13 +1,13 @@
1
- import { t as createSubsystemLogger } from "./subsystem-CAatx5oo.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-BRjuJbbM.js";
2
2
  import { h as normalizeOptionalAccountId, m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-a6av96Fj.js";
3
- import { d as normalizeE164 } from "./utils-Bo1RFF0l.js";
4
- import { t as isTruthyEnvValue } from "./env-Bn6pmvjK.js";
5
- import { a as normalizeAnyChannelId, d as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER, u as getActivePluginRegistryVersion } from "./registry-C2GEGa2t.js";
6
- import { h as createAccountListHelpers } from "./accounts-CaiECgq3.js";
3
+ import { d as normalizeE164 } from "./utils-BFZnl-5N.js";
4
+ import { t as isTruthyEnvValue } from "./env-DNMZEG57.js";
5
+ import { a as normalizeAnyChannelId, d as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER, u as getActivePluginRegistryVersion } from "./registry-CJCkqTms.js";
6
+ import { h as createAccountListHelpers } from "./accounts-ubG6irXZ.js";
7
7
  import { t as resolveAccountEntry } from "./account-lookup-JrULBwdR.js";
8
8
  import { t as normalizeChatType } from "./chat-type-DKb2TlGZ.js";
9
- import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-Daa-Etag.js";
10
- import fs from "node:fs";
9
+ import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-CsIiIjqN.js";
10
+ import syncFs from "node:fs";
11
11
  import util from "node:util";
12
12
 
13
13
  //#region src/channels/plugins/account-action-gate.ts
@@ -218,7 +218,7 @@ function resolveTelegramToken(cfg, opts = {}) {
218
218
  const accountCfg = resolveAccountCfg(accountId !== DEFAULT_ACCOUNT_ID ? accountId : DEFAULT_ACCOUNT_ID);
219
219
  const accountTokenFile = accountCfg?.tokenFile?.trim();
220
220
  if (accountTokenFile) {
221
- if (!fs.existsSync(accountTokenFile)) {
221
+ if (!syncFs.existsSync(accountTokenFile)) {
222
222
  opts.logMissingFile?.(`channels.telegram.accounts.${accountId}.tokenFile not found: ${accountTokenFile}`);
223
223
  return {
224
224
  token: "",
@@ -226,7 +226,7 @@ function resolveTelegramToken(cfg, opts = {}) {
226
226
  };
227
227
  }
228
228
  try {
229
- const token = fs.readFileSync(accountTokenFile, "utf-8").trim();
229
+ const token = syncFs.readFileSync(accountTokenFile, "utf-8").trim();
230
230
  if (token) return {
231
231
  token,
232
232
  source: "tokenFile"
@@ -251,7 +251,7 @@ function resolveTelegramToken(cfg, opts = {}) {
251
251
  const allowEnv = accountId === DEFAULT_ACCOUNT_ID;
252
252
  const tokenFile = telegramCfg?.tokenFile?.trim();
253
253
  if (tokenFile && allowEnv) {
254
- if (!fs.existsSync(tokenFile)) {
254
+ if (!syncFs.existsSync(tokenFile)) {
255
255
  opts.logMissingFile?.(`channels.telegram.tokenFile not found: ${tokenFile}`);
256
256
  return {
257
257
  token: "",
@@ -259,7 +259,7 @@ function resolveTelegramToken(cfg, opts = {}) {
259
259
  };
260
260
  }
261
261
  try {
262
- const token = fs.readFileSync(tokenFile, "utf-8").trim();
262
+ const token = syncFs.readFileSync(tokenFile, "utf-8").trim();
263
263
  if (token) return {
264
264
  token,
265
265
  source: "tokenFile"
@@ -30,7 +30,7 @@ import "./accounts-C0g5--0e.js";
30
30
  import "./bindings-C2tByF8e.js";
31
31
  import "./send-BaweV9LV.js";
32
32
  import "./send-aCOVuBQ6.js";
33
- import "./subagent-registry-D4xGq2uc.js";
33
+ import "./subagent-registry-B4xJjOu2.js";
34
34
  import "./paths-CFzDnbY4.js";
35
35
  import "./chat-envelope-AUuZAcrC.js";
36
36
  import "./client-D3Y8sx9i.js";
@@ -125,7 +125,7 @@ import "./npm-pack-install-C9DS0YeS.js";
125
125
  import "./skill-scanner-CSmiOSFd.js";
126
126
  import { a as installPluginFromPath, i as installPluginFromNpmSpec, n as recordPluginInstall, o as resolvePluginInstallDir, r as PLUGIN_INSTALL_ERROR_CODE } from "./installs-B-WNFE2v.js";
127
127
  import { t as renderTable } from "./table-9IueuXKv.js";
128
- import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-B5fqS6mO.js";
128
+ import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-BiJCUhct.js";
129
129
  import { n as updateNpmInstalledPlugins, r as findBundledPluginSource } from "./update-Cn9hdCvW.js";
130
130
  import path from "node:path";
131
131
  import os from "node:os";
@@ -2,7 +2,7 @@ import { g as resolveStateDir } from "./paths-BYr-iJJ9.js";
2
2
  import { p as theme } from "./globals-uLeGcRW1.js";
3
3
  import { S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-CP51tiAi.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import "./reply-OEcNPoWd.js";
5
+ import "./reply-CAA6gLtt.js";
6
6
  import "./agent-scope-CiBV1K6b.js";
7
7
  import { d as defaultRuntime } from "./subsystem-BT74-yyS.js";
8
8
  import { _ as resolveWorkspaceExtensionsDir } from "./workspace-CRdln__H.js";
@@ -124,7 +124,7 @@ import "./npm-pack-install-xfUcKuzY.js";
124
124
  import "./skill-scanner-ew2xZjjk.js";
125
125
  import { a as installPluginFromPath, i as installPluginFromNpmSpec, n as recordPluginInstall, o as resolvePluginInstallDir, r as PLUGIN_INSTALL_ERROR_CODE } from "./installs-DOXDa0sd.js";
126
126
  import { t as renderTable } from "./table-C0joisBj.js";
127
- import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-dNC8uD0I.js";
127
+ import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-Ez_78UD2.js";
128
128
  import { n as updateNpmInstalledPlugins, r as findBundledPluginSource } from "./update-CaU7_eQx.js";
129
129
  import fs from "node:fs";
130
130
  import os from "node:os";
@@ -31,7 +31,7 @@ import "./accounts-C0g5--0e.js";
31
31
  import "./bindings-C2tByF8e.js";
32
32
  import "./send-BaweV9LV.js";
33
33
  import "./send-aCOVuBQ6.js";
34
- import "./subagent-registry-D4xGq2uc.js";
34
+ import "./subagent-registry-B4xJjOu2.js";
35
35
  import "./paths-CFzDnbY4.js";
36
36
  import "./chat-envelope-AUuZAcrC.js";
37
37
  import "./client-D3Y8sx9i.js";
@@ -120,13 +120,13 @@ import "./help-format-Bf46Qqc-.js";
120
120
  import "./progress-BkZzF3Qm.js";
121
121
  import "./constants-D1Q8yQ1_.js";
122
122
  import "./context-window-guard-BqrKjiIm.js";
123
- import "./plugin-registry-NaHPDM1s.js";
124
- import { n as resolveCliChannelOptions } from "./channel-options-gDhT85r4.js";
125
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-BSGvOwqU.js";
126
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BSN6zVlZ.js";
123
+ import "./plugin-registry-CgjiDSJy.js";
124
+ import { n as resolveCliChannelOptions } from "./channel-options-D3Ck-1W2.js";
125
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-lEqV1Knw.js";
126
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-CjTwwZuF.js";
127
127
  import { r as setProgramContext } from "./program-context-BqyLhTGk.js";
128
128
  import { t as forceFreePort } from "./ports-CmP85Z6Y.js";
129
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-CMCfl-_K.js";
129
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DtaJorEc.js";
130
130
  import { Command, InvalidArgumentError } from "commander";
131
131
 
132
132
  //#region src/cli/program/context.ts
@@ -260,7 +260,7 @@ function loadConfigGuardModule() {
260
260
  return configGuardModulePromise;
261
261
  }
262
262
  function loadPluginRegistryModule() {
263
- pluginRegistryModulePromise ??= import("./plugin-registry-NaHPDM1s.js").then((n) => n.n);
263
+ pluginRegistryModulePromise ??= import("./plugin-registry-CgjiDSJy.js").then((n) => n.n);
264
264
  return pluginRegistryModulePromise;
265
265
  }
266
266
  function getRootCommand(command) {