activeclaw 2026.2.11 → 2026.2.13

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 (531) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/dist/{accounts-DbzMEfKN.js → accounts-DCDeFTra.js} +2 -2
  3. package/dist/{accounts-C2elk6PC.js → accounts-DeqIQjo1.js} +2 -2
  4. package/dist/{acp-cli-CVFTdsQY.js → acp-cli-CeYI4XRd.js} +15 -16
  5. package/dist/{acp-cli-BpJwIyLl.js → acp-cli-rNbGXICg.js} +14 -15
  6. package/dist/{agent-Bz1r5O8q.js → agent-BvNJF5QL.js} +19 -15
  7. package/dist/{agent-22-R4bNS.js → agent-CyMxTyrG.js} +20 -16
  8. package/dist/{agent-scope-D8miw9q_.js → agent-scope-BIEhVP4_.js} +172 -4
  9. package/dist/{agent-scope-CGmuusG9.js → agent-scope-CQCus0rI.js} +3 -3
  10. package/dist/{agent-scope-DQuy3dwI.js → agent-scope-CsRbLH4l.js} +4 -4
  11. package/dist/{agent-scope-BEf5crnU.js → agent-scope-DPIFau3f.js} +5 -1
  12. package/dist/audio-preflight-BU8W7uxc.js +60 -0
  13. package/dist/audio-preflight-CGsumMzb.js +60 -0
  14. package/dist/audio-preflight-SLmkJI6-.js +74 -0
  15. package/dist/audio-preflight-jZc5mFCZ.js +71 -0
  16. package/dist/{audit-C4wLaF0D.js → audit-Dmww_503.js} +71 -19
  17. package/dist/{audit-CY-yopxa.js → audit-wPu26VMb.js} +72 -20
  18. package/dist/{tailscale-DU6DgqVy.js → auth-9x3lqfIY.js} +208 -3
  19. package/dist/{tailscale-Cu-2HNvU.js → auth-CQNl_IaI.js} +190 -3
  20. package/dist/{auth-health-BFKUoCwJ.js → auth-health-C4L4FGBA.js} +1 -1
  21. package/dist/{auth-health-d7BMZlWG.js → auth-health-j6epgQbq.js} +1 -1
  22. package/dist/{auth-profiles-Bv1AEm-Y.js → auth-profiles-ByNs3eEm.js} +87 -31
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +28 -22
  25. package/dist/bundled/session-memory/handler.js +33 -22
  26. package/dist/{call-7yrB6v4I.js → call-DVYCIV8m.js} +5 -5
  27. package/dist/{call-Bek1xlgk.js → call-SolyGS1r.js} +6 -6
  28. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  29. package/dist/{channel-options-3mdYN0C_.js → channel-options-BwC2yQcR.js} +4 -4
  30. package/dist/{channel-options-DJ0b1m7B.js → channel-options-Cq9BVDkP.js} +12 -7
  31. package/dist/{channel-selection-RZimme3j.js → channel-selection-D4D6ImhN.js} +2 -2
  32. package/dist/{channel-selection-B9b7Kuit.js → channel-selection-MZAHm4U8.js} +2 -2
  33. package/dist/{channels-cli-CYbK2Dku.js → channels-cli-9Dsk9Qm7.js} +57 -53
  34. package/dist/{channels-cli-BFznbGOs.js → channels-cli-BJUppQll.js} +59 -55
  35. package/dist/{channels-status-issues-B3KkflfR.js → channels-status-issues-D7GSV1GS.js} +1 -1
  36. package/dist/{channels-status-issues-DQkRaZts.js → channels-status-issues-DDAWeT-6.js} +1 -1
  37. package/dist/{chrome-Db7w64LF.js → chrome-BfB6JdKF.js} +4 -4
  38. package/dist/{chrome-Dm-EgOjJ.js → chrome-Cvr-57lg.js} +6 -5
  39. package/dist/{chrome-CF16STk9.js → chrome-DL0avO8n.js} +2 -1
  40. package/dist/{chrome-yIKmOzCO.js → chrome-foEwx3lN.js} +5 -4
  41. package/dist/{clack-prompter-BCiBkJVr.js → clack-prompter-Bz3Mmcl-.js} +5 -5
  42. package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-ChCGXfyt.js} +4 -4
  43. package/dist/cli/daemon-cli.js +1 -1
  44. package/dist/{cli-Cl3PdJei.js → cli-ZR9ugUBX.js} +42 -38
  45. package/dist/cli-miPe4Ujz.js +93 -0
  46. package/dist/{client-6xKrRC-1.js → client-BrYfyoDK.js} +54 -5
  47. package/dist/{client-DMloFP_O.js → client-CTwXnRl7.js} +54 -5
  48. package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
  49. package/dist/{command-options-BTAzyqqb.js → command-options-BvgxzPbK.js} +9 -4
  50. package/dist/{commands-CjEGXOZ_.js → commands-BX_OIIVR.js} +4 -4
  51. package/dist/{completion-cli-DrJGfJGl.js → completion-cli-CR77-jyv.js} +3 -3
  52. package/dist/{completion-cli-DOec3E2Z.js → completion-cli-DnjpxAag.js} +30 -30
  53. package/dist/{config-B00lvFac.js → config-Bdhomfei.js} +21 -7
  54. package/dist/{config-XBdA0ciN.js → config-BvMsmctM.js} +83 -9
  55. package/dist/{config-BqGVMf1y.js → config-QYrbd7x7.js} +60 -6
  56. package/dist/{config--NUdpACy.js → config-aFQssWKX.js} +21 -7
  57. package/dist/{config-guard-4kCO_rnQ.js → config-guard-CljaSxJd.js} +160 -51
  58. package/dist/{configure-B69emwZv.js → configure-BXLiucXo.js} +28 -25
  59. package/dist/{configure-sMhpLzFf.js → configure-BYPqXzGZ.js} +28 -25
  60. package/dist/control-auth-8Cf4WXpR.js +54 -0
  61. package/dist/control-auth-DBCu3qyv.js +54 -0
  62. package/dist/{control-service-Db_1V-KY.js → control-service-B5KnPqGP.js} +11 -5
  63. package/dist/{control-service-IRAmbcbN.js → control-service-DKnttEus.js} +10 -4
  64. package/dist/control-ui/assets/{index-CnB9IO4a.js → index-B4LPvte9.js} +369 -369
  65. package/dist/control-ui/assets/index-B4LPvte9.js.map +1 -0
  66. package/dist/control-ui/index.html +1 -1
  67. package/dist/{cron-cli-Cum2324v.js → cron-cli-D7BRjDv2.js} +20 -20
  68. package/dist/{cron-cli-DhUWcYdk.js → cron-cli-z1zk_FXQ.js} +19 -19
  69. package/dist/{daemon-cli-q7nkEF5-.js → daemon-cli-BDkU2ocb.js} +60 -21
  70. package/dist/{daemon-cli-CTC2CHci.js → daemon-cli-cNSF93-v.js} +59 -20
  71. package/dist/{daemon-runtime-c0uXH4Dl.js → daemon-runtime-B0tg_LsX.js} +3 -3
  72. package/dist/{daemon-runtime-UsK-tOty.js → daemon-runtime-Bsjeut6m.js} +3 -3
  73. package/dist/{deliver-hf-WKyWd.js → deliver-CIU9Npgs.js} +373 -281
  74. package/dist/{deliver-CT6KiDqO.js → deliver-DYYCo1G7.js} +369 -278
  75. package/dist/{deliver-T9d44OpZ.js → deliver-LsxKETro.js} +371 -279
  76. package/dist/{deliver-CPy8jYj9.js → deliver-xUU3mGHo.js} +369 -277
  77. package/dist/{deps-Bv1kLtwo.js → deps-QSwGcoNZ.js} +2 -2
  78. package/dist/{deps-DFQdAWQc.js → deps-lAAA2zYI.js} +2 -2
  79. package/dist/{devices-cli-Cm7U1py9.js → devices-cli-BG3-2oqt.js} +14 -14
  80. package/dist/{devices-cli-ZpjlfK-e.js → devices-cli-VIQtOvt_.js} +14 -14
  81. package/dist/{directory-cli-B14TUSJA.js → directory-cli-BCJwjVC0.js} +16 -16
  82. package/dist/{directory-cli-67kzd4I5.js → directory-cli-jYzZ02gk.js} +14 -14
  83. package/dist/{dispatcher-3ElQWGVI.js → dispatcher-DY51b-Zc.js} +2 -2
  84. package/dist/{dns-cli-CU-xfhTN.js → dns-cli-DHIiMJjS.js} +12 -12
  85. package/dist/{dns-cli-Dqj7O6Q_.js → dns-cli-pZlv87Ib.js} +11 -11
  86. package/dist/{docs-cli-CamBqzb5.js → docs-cli-2JDiwfzP.js} +8 -8
  87. package/dist/{docs-cli-Cj3L5oqB.js → docs-cli-BhkYqoIQ.js} +7 -7
  88. package/dist/{doctor-BV1kvbMm.js → doctor-Bf8EhNtA.js} +36 -35
  89. package/dist/{doctor-BJirShBi.js → doctor-sYG5V4Co.js} +34 -33
  90. package/dist/entry.js +56 -18
  91. package/dist/{env-BxRc6wWv.js → env-ONzUVAG2.js} +1 -1
  92. package/dist/{exec-CijMSZd9.js → exec-B8lXct-k.js} +503 -14
  93. package/dist/{exec-B8JKbXKW.js → exec-CACT5OAW.js} +1 -1
  94. package/dist/{exec-57A8Rlc8.js → exec-CJFFoM7H.js} +32 -13
  95. package/dist/{exec-Cv_Ofd1m.js → exec-YIosokWE.js} +1 -1
  96. package/dist/{exec-approvals-cli-DEzz9Iai.js → exec-approvals-cli-7LH0lwhO.js} +21 -21
  97. package/dist/{exec-approvals-cli-DhXj3hQX.js → exec-approvals-cli-apGnQbpj.js} +21 -21
  98. package/dist/extensionAPI.js +7733 -8746
  99. package/dist/fetch-DmiOpALK.js +274 -0
  100. package/dist/fetch-timeout-BEtUjM1S.js +274 -0
  101. package/dist/fetch-timeout-DEoXG_SF.js +274 -0
  102. package/dist/fetch-timeout-DTK9vxex.js +274 -0
  103. package/dist/{gateway-cli-D1EdIq8I.js → gateway-cli-DUdYxlZS.js} +491 -136
  104. package/dist/{gateway-cli-B_xDUDy2.js → gateway-cli-DbvWmE-9.js} +495 -140
  105. package/dist/{gateway-rpc-3B5y445n.js → gateway-rpc-BByb2Snz.js} +3 -3
  106. package/dist/{gateway-rpc-BoL2vinh.js → gateway-rpc-wXSCUZXj.js} +3 -3
  107. package/dist/{github-copilot-auth-Omqrto0J.js → github-copilot-auth-D7ewvpMd.js} +205 -17
  108. package/dist/{github-copilot-auth-CZxurvdz.js → github-copilot-auth-DDispnyz.js} +205 -17
  109. package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-Cfs0Wxr8.js} +1 -1
  110. package/dist/{gmail-setup-utils-BXQKsLtI.js → gmail-setup-utils-Cfns8TQx.js} +3 -3
  111. package/dist/{gmail-setup-utils-CHcssBOA.js → gmail-setup-utils-DJb-_5kO.js} +4 -4
  112. package/dist/{health-format-Dy1caGsq.js → health-format-KGPokKJH.js} +97 -42
  113. package/dist/{health-format-DrGFg8bx.js → health-format-LZDxu3rv.js} +95 -40
  114. package/dist/{help-format-DAj7l5uV.js → help-format-C48TXngO.js} +1 -1
  115. package/dist/{help-format-CUnac_bT.js → help-format-R5fLToDw.js} +1 -1
  116. package/dist/{hooks-cli-ptEf6TIM.js → hooks-cli-CT8JCRkH.js} +51 -46
  117. package/dist/{hooks-cli-Bhf5VRp1.js → hooks-cli-S1MKumJO.js} +49 -44
  118. package/dist/{hooks-status-Br-2bK2G.js → hooks-status-Cw0xD8Lt.js} +3 -3
  119. package/dist/{hooks-status-DNQJSa4B.js → hooks-status-D9MhwHRp.js} +3 -3
  120. package/dist/{image-rOFfK3PJ.js → image-Brk1sJbw.js} +10 -7
  121. package/dist/{image-fUwR7slg.js → image-C4Nn2p3e.js} +10 -7
  122. package/dist/{image-Ds4NLGPR.js → image-DgtfXMcX.js} +9 -6
  123. package/dist/{image-Dnnxt82I.js → image-RKwc3fsL.js} +8 -5
  124. package/dist/index.js +208 -97
  125. package/dist/{installs-CRSjQxbR.js → installs-CrLcWYHe.js} +8 -7
  126. package/dist/{installs-89zeUsVn.js → installs-DscWb9b9.js} +8 -7
  127. package/dist/{links-7M-j83As.js → links-B8LAzWwg.js} +1 -1
  128. package/dist/{links-C591fM9M.js → links-Eax1UO3w.js} +1 -1
  129. package/dist/llm-slug-generator.js +18 -19
  130. package/dist/{loader-wXwp4rZJ.js → loader-KjT074JR.js} +5722 -6888
  131. package/dist/{logging-MMRGFxGI.js → logging-BAyPwvdH.js} +1 -1
  132. package/dist/{logging-DuK6YXuK.js → logging-CRq4h04P.js} +2 -2
  133. package/dist/{login-qr-wM8BnKJh.js → login-qr-B6ZgAuIf.js} +5 -5
  134. package/dist/{login-qr-CPEsT6dN.js → login-qr-Bua-p0nG.js} +3 -4
  135. package/dist/{login-qr-CGEu5TU-.js → login-qr-CuvemJj4.js} +6 -6
  136. package/dist/{login-qr-DH150tTp.js → login-qr-Djr1JfIf.js} +2 -2
  137. package/dist/{logs-cli-ClgkHnfT.js → logs-cli-9IAV7rWY.js} +38 -22
  138. package/dist/{logs-cli-CmfINsOj.js → logs-cli-EiKzUFPa.js} +37 -21
  139. package/dist/{manager-DYo4PlVM.js → manager-BIMh_eSm.js} +7 -8
  140. package/dist/{manager-D6EbxDV4.js → manager-CwinWQoz.js} +5 -5
  141. package/dist/{manager-BbnHek5T.js → manager-DkqF1GiK.js} +9 -9
  142. package/dist/{manager-CcVYv0N5.js → manager-T1XfGchB.js} +8 -8
  143. package/dist/{manifest-registry-3It8Z8yN.js → manifest-registry-CQhdnDBZ.js} +40 -2
  144. package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-u0okVSkU.js} +40 -2
  145. package/dist/{message-channel-Cu61-7H6.js → message-channel-BLi2a6Yw.js} +1 -1
  146. package/dist/{message-channel-BlgPSDAh.js → message-channel-C_MmebBt.js} +1 -1
  147. package/dist/{model-auth-ioeR_zLX.js → model-auth-CabXIF6O.js} +116 -34
  148. package/dist/{model-selection-BK7DuyH8.js → model-selection-BLuqsGVB.js} +86 -30
  149. package/dist/{model-selection-CezC36lH.js → model-selection-C1GmkTAV.js} +84 -28
  150. package/dist/{models-cli-C3uGdOrd.js → models-cli-9jmDv-h3.js} +52 -48
  151. package/dist/{models-cli-CUIVPgXE.js → models-cli-zS9rtWz8.js} +53 -49
  152. package/dist/{node-cli-BxBGSuPE.js → node-cli-CrpTxTTs.js} +28 -26
  153. package/dist/{node-cli-CdYAsuQQ.js → node-cli-wemUMCg-.js} +28 -26
  154. package/dist/{node-service-u8g85nD3.js → node-service-C8DTHTMg.js} +2 -2
  155. package/dist/{node-service-CM5vkdIo.js → node-service-WQuEKz6W.js} +2 -2
  156. package/dist/{nodes-cli-By6yeCTB.js → nodes-cli-BaU2SIFw.js} +20 -20
  157. package/dist/{nodes-cli-BaVMTAPc.js → nodes-cli-Dx23D72n.js} +20 -20
  158. package/dist/{nodes-screen-Dvl_ohUY.js → nodes-screen-C0IuBqUL.js} +1 -1
  159. package/dist/{note-5WqioBRA.js → note-BhRSeNeu.js} +2 -2
  160. package/dist/{note-Ci08TSbV.js → note-hhtubr2j.js} +1 -1
  161. package/dist/{onboard-channels-DxXvp8og.js → onboard-channels-C501x8GI.js} +8 -8
  162. package/dist/{onboard-channels-CXhnVy4E.js → onboard-channels-Dxzroasd.js} +8 -8
  163. package/dist/{onboard-skills-CBxsRGyf.js → onboard-skills-DV0Qzvjj.js} +440 -136
  164. package/dist/{onboard-skills-DQwOQ6Ry.js → onboard-skills-rlBHcu3Q.js} +439 -135
  165. package/dist/{onboarding-Du_7qEng.js → onboarding-CN-EDLjd.js} +38 -38
  166. package/dist/{openclaw-root-JLDMp6ux.js → openclaw-root-1VeFrph_.js} +4 -0
  167. package/dist/{openclaw-root-Dw6gumSU.js → openclaw-root-BNlEap4i.js} +4 -0
  168. package/dist/{pairing-cli-CRQDpj8f.js → pairing-cli-CDHG4xuI.js} +15 -15
  169. package/dist/{pairing-cli-Cng1KFWw.js → pairing-cli-CQP34Dlx.js} +15 -15
  170. package/dist/{pairing-labels-Ciu3Zoxj.js → pairing-labels-B6CN0SNH.js} +1 -1
  171. package/dist/{pairing-labels-CWFEtSc3.js → pairing-labels-CgNHnjzT.js} +1 -1
  172. package/dist/{pairing-store-c-QQ2u8p.js → pairing-store-CmlRVqOz.js} +2 -2
  173. package/dist/{pairing-store-CgXR3ZWJ.js → pairing-store-Dp5_JGnG.js} +3 -3
  174. package/dist/{path-env-CXWUFfFv.js → path-env-CLvYNwtL.js} +1 -1
  175. package/dist/{path-env-BgLvMbz_.js → path-env-CaYUVIML.js} +2 -2
  176. package/dist/{paths-MnZaxqPw.js → paths-B0a4ywSO.js} +30 -5
  177. package/dist/{paths-Bkhd_qY8.js → paths-B49s6UZQ.js} +30 -5
  178. package/dist/{paths-DL6EIRTw.js → paths-D0O87MfH.js} +30 -5
  179. package/dist/{paths-IivnSNkP.js → paths-DLINmNFQ.js} +31 -6
  180. package/dist/{pi-embedded-CgPTEqlB.js → pi-embedded-Ctrt2kz0.js} +8759 -9600
  181. package/dist/{pi-embedded-helpers-DYH6OWft.js → pi-embedded-helpers-CMKLjW6X.js} +68 -9
  182. package/dist/{pi-embedded-helpers-y1_Se0yq.js → pi-embedded-helpers-CUzTc1v6.js} +241 -24
  183. package/dist/{pi-embedded-helpers-Bkpd4fTr.js → pi-embedded-helpers-DfwkwPYD.js} +67 -8
  184. package/dist/{pi-embedded-helpers-BbWRSUnc.js → pi-embedded-helpers-WDwx99UA.js} +347 -32
  185. package/dist/{pi-tools.policy-akYsGFiA.js → pi-tools.policy-BpsROZbz.js} +4 -4
  186. package/dist/{plugin-auto-enable-lZwe2yX5.js → plugin-auto-enable-Bqhc3w5n.js} +5 -5
  187. package/dist/{plugin-auto-enable-AOSOJ-v1.js → plugin-auto-enable-PW76g_PJ.js} +5 -5
  188. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
  189. package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
  190. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
  191. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  192. package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
  193. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
  194. package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
  195. package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
  196. package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
  197. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
  198. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
  199. package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
  200. package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
  201. package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
  202. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
  203. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
  204. package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
  205. package/dist/plugin-sdk/agents/usage.d.ts +1 -0
  206. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +1 -1
  207. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
  208. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
  209. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
  210. package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
  211. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
  212. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
  213. package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
  214. package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
  215. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
  216. package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
  217. package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
  218. package/dist/plugin-sdk/commands/onboard-types.d.ts +7 -1
  219. package/dist/plugin-sdk/config/sessions/paths.d.ts +7 -2
  220. package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
  221. package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
  222. package/dist/plugin-sdk/config/types.gateway.d.ts +15 -0
  223. package/dist/plugin-sdk/config/types.hooks.d.ts +15 -0
  224. package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
  225. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
  226. package/dist/plugin-sdk/config/zod-schema.d.ts +13 -1
  227. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +1 -1
  228. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +9 -0
  229. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +4 -0
  230. package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
  231. package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
  232. package/dist/plugin-sdk/cron/types.d.ts +2 -0
  233. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
  234. package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
  235. package/dist/plugin-sdk/gateway/auth.d.ts +36 -0
  236. package/dist/plugin-sdk/gateway/protocol/index.d.ts +0 -3
  237. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
  238. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
  239. package/dist/plugin-sdk/index.js +935 -660
  240. package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
  241. package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
  242. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
  243. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
  244. package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
  245. package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
  246. package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
  247. package/dist/plugin-sdk/logging/console.d.ts +1 -0
  248. package/dist/plugin-sdk/logging/logger.d.ts +1 -1
  249. package/dist/plugin-sdk/logging/state.d.ts +1 -0
  250. package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
  251. package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
  252. package/dist/plugin-sdk/media/input-files.d.ts +5 -0
  253. package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
  254. package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
  255. package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
  256. package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
  257. package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
  258. package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
  259. package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
  260. package/dist/plugin-sdk/security/external-content.d.ts +1 -1
  261. package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
  262. package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
  263. package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
  264. package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
  265. package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
  266. package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
  267. package/dist/plugin-sdk/telegram/send.d.ts +3 -0
  268. package/dist/plugin-sdk/web/media.d.ts +2 -0
  269. package/dist/{plugins-Db5BiELK.js → plugins-4Hqd1WGf.js} +3 -3
  270. package/dist/{plugins-CNaHNND_.js → plugins-X7d_tfTE.js} +4 -4
  271. package/dist/{plugins-cli-8G-hQPCu.js → plugins-cli-Bgku3EGj.js} +253 -44
  272. package/dist/{plugins-cli-CDiocaDE.js → plugins-cli-CVToH3if.js} +257 -48
  273. package/dist/{ports-BeebfNCb.js → ports-qkt29rdC.js} +2 -2
  274. package/dist/{program-0Cj9YxRN.js → program-Cf7lkBur.js} +82 -80
  275. package/dist/{progress-DIQJt9Va.js → progress-C9kngsTD.js} +1 -1
  276. package/dist/{progress-Da1ehW-x.js → progress-DWqhRakV.js} +1 -1
  277. package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-BFH5D5LN.js} +1 -1
  278. package/dist/{prompt-style-CjQRlDx4.js → prompt-style-CIbmaxSa.js} +1 -1
  279. package/dist/{pw-ai-C43wv1ZF.js → pw-ai-8mdv3h-d.js} +7 -6
  280. package/dist/{pw-ai-COWYvUfG.js → pw-ai-CM1IsSgZ.js} +6 -6
  281. package/dist/{pw-ai-BxJ-KCIy.js → pw-ai-FGoRVblI.js} +5 -6
  282. package/dist/{pw-ai-CsvaObGM.js → pw-ai-sS1fRKW_.js} +3 -3
  283. package/dist/{qmd-manager-CpsjQyaZ.js → qmd-manager-C67Fc8aN.js} +79 -26
  284. package/dist/{qmd-manager-C9YWFeG6.js → qmd-manager-CXVbfg99.js} +81 -26
  285. package/dist/{qmd-manager-C02E8ixK.js → qmd-manager-RMRE8Tqt.js} +81 -26
  286. package/dist/{qmd-manager-BzY2LQTT.js → qmd-manager-pyc_MTIe.js} +78 -23
  287. package/dist/{register.subclis-DUkirdHn.js → register.subclis-C02e4zuJ.js} +29 -29
  288. package/dist/{reply--b7BsXGP.js → reply-DICXkh_C.js} +7289 -8455
  289. package/dist/{routes-DUkEKAc1.js → routes-CmOI1hIH.js} +29 -11
  290. package/dist/{routes-B4QQiFju.js → routes-DewK5tq2.js} +29 -12
  291. package/dist/{rpc-CuMtxrRT.js → rpc-DHr30euf.js} +3 -3
  292. package/dist/{rpc-Blt6MJ4F.js → rpc-T300F8zI.js} +3 -3
  293. package/dist/{run-main-XZcPA23b.js → run-main-C5wpthq1.js} +84 -82
  294. package/dist/runner-CY0nmVme.js +1886 -0
  295. package/dist/runner-Cfm5nTMc.js +1785 -0
  296. package/dist/runner-D_dujMod.js +1886 -0
  297. package/dist/runner-DrGYLH5K.js +1785 -0
  298. package/dist/{sandbox-Aks-9EcZ.js → sandbox-BKYnhYQH.js} +24 -17
  299. package/dist/{sandbox-DqUO2K83.js → sandbox-Bhjnh1Xg.js} +23 -16
  300. package/dist/{sandbox-cli-C99Thxi8.js → sandbox-cli-DBsAjZJN.js} +21 -21
  301. package/dist/{sandbox-cli-CJqRM4V6.js → sandbox-cli-rV9LtFeu.js} +21 -21
  302. package/dist/{security-cli-iqYLMOz3.js → security-cli-BIwJM_rs.js} +27 -27
  303. package/dist/{security-cli-DW3lCz-o.js → security-cli-BRjny8Yu.js} +27 -27
  304. package/dist/{server-context-fX4xiYRh.js → server-context-BGpGs3qd.js} +7 -7
  305. package/dist/{server-context-8Qt35QdF.js → server-context-Cl0U0vE3.js} +7 -7
  306. package/dist/{server-node-events-CHWXfb_T.js → server-node-events-CBfTbiTA.js} +48 -44
  307. package/dist/{server-node-events-BzrEnKLX.js → server-node-events-QCvh8EgI.js} +45 -41
  308. package/dist/{service-Cd4BxKuo.js → service--nPk7DvT.js} +8 -4
  309. package/dist/{service-DDPRbf8a.js → service-99RDXwX4.js} +8 -4
  310. package/dist/{service-audit-CCFxuvKs.js → service-audit-DnLmRGQt.js} +4 -4
  311. package/dist/{service-audit-x6jCN-6a.js → service-audit-ckBaRCVC.js} +4 -4
  312. package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-D7HuoSSD.js} +12 -10
  313. package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-D9hHANWI.js} +12 -10
  314. package/dist/{shared-ILguacOr.js → shared-Bs4vduG4.js} +3 -3
  315. package/dist/{shared-CagUDdmp.js → shared-CEY5IkwG.js} +3 -3
  316. package/dist/{shared-gOyV38rM.js → shared-DRohONn_.js} +4 -4
  317. package/dist/{shared-BDk_zC9p.js → shared-ICqOZibV.js} +4 -4
  318. package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-CucvxYhu.js} +1 -1
  319. package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-rHMtUHtP.js} +1 -1
  320. package/dist/{skills-D5UZZZSY.js → skills-DRjfSQT3.js} +141 -6
  321. package/dist/{skills-ccAgQ3Ad.js → skills-DprQj9X2.js} +142 -7
  322. package/dist/{skills-cli-DQilTG3n.js → skills-cli-9WO-C55s.js} +12 -12
  323. package/dist/{skills-cli-ggyLBtAY.js → skills-cli-B9eej-EW.js} +13 -13
  324. package/dist/{skills-status-BosMnzIs.js → skills-status-5U3P3YfJ.js} +3 -3
  325. package/dist/{skills-status-DjtPPMnY.js → skills-status-TDIgVd1K.js} +2 -2
  326. package/dist/{sqlite-B7FPASCO.js → sqlite-BINzs1U0.js} +2 -2
  327. package/dist/{sqlite-Btrgi7-j.js → sqlite-D4w5TejA.js} +3 -3
  328. package/dist/{sqlite-BrQ9tw8B.js → sqlite-DRRHmlug.js} +3 -3
  329. package/dist/{sqlite-HepBVDoX.js → sqlite-F6PGkEm1.js} +2 -2
  330. package/dist/{status-BByCntWS.js → status-BKGkKC_v.js} +3 -3
  331. package/dist/{status-Dt7RE_Yy.js → status-CiHtHdaa.js} +4 -4
  332. package/dist/{status-zfL4Yej7.js → status-DDWoOpeB.js} +37 -37
  333. package/dist/{subsystem-Bh1Y_6Uv.js → subsystem-BoExtIHo.js} +52 -17
  334. package/dist/{system-cli-DwuUkdkH.js → system-cli-B6lr60Io.js} +14 -14
  335. package/dist/{system-cli-Clqsx8U5.js → system-cli-CprW9G3h.js} +14 -14
  336. package/dist/{systemd-BEWwfwn0.js → systemd-C0VZriGM.js} +3 -3
  337. package/dist/{systemd-D6wTPnHi.js → systemd-DrmBtJ5T.js} +3 -3
  338. package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-DZtXiVHa.js} +1 -1
  339. package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-NC2kl1SC.js} +2 -2
  340. package/dist/{systemd-linger-BxjTrgoH.js → systemd-linger-xdn3BdPh.js} +2 -2
  341. package/dist/{table-DEnmtvl5.js → table-B8dx3v4v.js} +2 -2
  342. package/dist/{table-cCoGqLsk.js → table-CwulTLQp.js} +1 -1
  343. package/dist/{tool-display-DskiU8Kt.js → tool-display-CZRIDMRm.js} +2 -2
  344. package/dist/{tool-display-o-dDAlqF.js → tool-display-ClRud3pg.js} +2 -2
  345. package/dist/{tui-BdJWZdto.js → tui-CVTQn-dC.js} +14 -13
  346. package/dist/{tui-Bc7XUQGP.js → tui-Lu8FdrlK.js} +13 -14
  347. package/dist/{tui-cli-BGYh0UL0.js → tui-cli-BLpTj1X9.js} +27 -27
  348. package/dist/{tui-cli-D3n-O9zB.js → tui-cli-BLx5kL2I.js} +26 -26
  349. package/dist/{tui-formatters-CA85v4U2.js → tui-formatters-CNySEfJN.js} +6 -6
  350. package/dist/{tui-formatters-C3NarH24.js → tui-formatters-DePhZK3J.js} +6 -6
  351. package/dist/{update-JB16aPIY.js → update-DHVxMTpQ.js} +3 -3
  352. package/dist/{update-Ct9sqJC_.js → update-DU1geolI.js} +3 -3
  353. package/dist/{update-cli-wWKDS3cm.js → update-cli-C0hUvJWK.js} +89 -71
  354. package/dist/{update-cli-DDXp_N9B.js → update-cli-Wb1GB3rL.js} +88 -70
  355. package/dist/{update-runner-ChTf6O6p.js → update-runner--ixK4J3W.js} +11 -11
  356. package/dist/{update-runner-CmE6cHdn.js → update-runner-7Qa1T9y6.js} +10 -10
  357. package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
  358. package/dist/{utils-es4ygvQ-.js → utils-Cd9QdCHh.js} +1 -1
  359. package/dist/{webhooks-cli-CVIE9TtX.js → webhooks-cli-DgcMy7RG.js} +12 -12
  360. package/dist/{webhooks-cli-BmKSiQQC.js → webhooks-cli-aVzUcJY9.js} +11 -11
  361. package/dist/{widearea-dns-2ah0bkAj.js → widearea-dns-BaIgNEhY.js} +3 -3
  362. package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-DzuRdwk5.js} +3 -3
  363. package/dist/{ws-DtDKpbLR.js → ws-CHCQHs0F.js} +1 -1
  364. package/dist/{ws-log-BP3z_g6Z.js → ws-log-CIXbLCka.js} +1 -1
  365. package/dist/{ws-log-D7MkvKhg.js → ws-log-DcQFZByi.js} +2 -2
  366. package/dist/{wsl-Cwo7X0Un.js → wsl-BUOkxKJu.js} +2 -2
  367. package/docs/assets/install-script.svg +1 -0
  368. package/docs/automation/hooks.md +1 -38
  369. package/docs/automation/webhook.md +43 -2
  370. package/docs/channels/discord.md +389 -381
  371. package/docs/channels/imessage.md +229 -218
  372. package/docs/channels/slack.md +294 -415
  373. package/docs/channels/telegram.md +401 -505
  374. package/docs/channels/whatsapp.md +338 -310
  375. package/docs/ci.md +0 -12
  376. package/docs/cli/hooks.md +1 -14
  377. package/docs/cli/index.md +6 -1
  378. package/docs/cli/logs.md +4 -0
  379. package/docs/cli/onboard.md +30 -0
  380. package/docs/cli/plugins.md +20 -1
  381. package/docs/cli/security.md +1 -0
  382. package/docs/concepts/memory.md +7 -4
  383. package/docs/concepts/session-tool.md +1 -0
  384. package/docs/docs.json +11 -11
  385. package/docs/gateway/configuration-examples.md +9 -2
  386. package/docs/gateway/configuration-reference.md +2329 -0
  387. package/docs/gateway/configuration.md +338 -3304
  388. package/docs/gateway/index.md +162 -238
  389. package/docs/gateway/openresponses-http-api.md +15 -0
  390. package/docs/gateway/security/index.md +3 -0
  391. package/docs/help/faq.md +9 -0
  392. package/docs/install/hetzner.md +21 -0
  393. package/docs/install/installer.md +20 -0
  394. package/docs/nodes/audio.md +19 -0
  395. package/docs/platforms/mac/release.md +7 -7
  396. package/docs/providers/glm.md +3 -3
  397. package/docs/providers/index.md +1 -0
  398. package/docs/providers/litellm.md +153 -0
  399. package/docs/providers/zai.md +2 -2
  400. package/docs/reference/templates/AGENTS.md +26 -26
  401. package/docs/reference/templates/HEARTBEAT.md +31 -2
  402. package/docs/reference/templates/SOUL.md +14 -8
  403. package/docs/reference/transcript-hygiene.md +18 -0
  404. package/docs/start/getting-started.md +5 -0
  405. package/docs/start/wizard-cli-automation.md +17 -0
  406. package/docs/start/wizard-cli-reference.md +12 -0
  407. package/docs/tools/browser.md +6 -0
  408. package/docs/zh-CN/automation/hooks.md +1 -38
  409. package/docs/zh-CN/cli/hooks.md +1 -14
  410. package/extensions/bluebubbles/package.json +1 -1
  411. package/extensions/bluebubbles/src/monitor.test.ts +40 -28
  412. package/extensions/bluebubbles/src/monitor.ts +0 -4
  413. package/extensions/copilot-proxy/package.json +1 -1
  414. package/extensions/diagnostics-otel/package.json +10 -10
  415. package/extensions/discord/package.json +1 -1
  416. package/extensions/feishu/package.json +2 -5
  417. package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
  418. package/extensions/feishu/src/bot.ts +1 -1
  419. package/extensions/feishu/src/channel.test.ts +48 -0
  420. package/extensions/feishu/src/channel.ts +1 -3
  421. package/extensions/feishu/src/config-schema.ts +6 -0
  422. package/extensions/feishu/src/docx.ts +14 -4
  423. package/extensions/feishu/src/media.test.ts +151 -0
  424. package/extensions/feishu/src/media.ts +27 -13
  425. package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
  426. package/extensions/feishu/src/reply-dispatcher.ts +124 -67
  427. package/extensions/feishu/src/streaming-card.ts +223 -0
  428. package/extensions/feishu/src/targets.test.ts +16 -0
  429. package/extensions/feishu/src/targets.ts +1 -1
  430. package/extensions/google-antigravity-auth/package.json +1 -1
  431. package/extensions/google-gemini-cli-auth/package.json +1 -1
  432. package/extensions/googlechat/package.json +1 -1
  433. package/extensions/imessage/package.json +1 -1
  434. package/extensions/irc/package.json +1 -1
  435. package/extensions/irc/src/client.ts +1 -1
  436. package/extensions/line/package.json +1 -1
  437. package/extensions/llm-task/package.json +1 -1
  438. package/extensions/lobster/package.json +1 -1
  439. package/extensions/matrix/CHANGELOG.md +6 -0
  440. package/extensions/matrix/package.json +2 -2
  441. package/extensions/mattermost/package.json +1 -1
  442. package/extensions/memory-core/package.json +1 -1
  443. package/extensions/memory-lancedb/index.ts +6 -2
  444. package/extensions/memory-lancedb/package.json +2 -2
  445. package/extensions/minimax-portal-auth/index.ts +7 -5
  446. package/extensions/minimax-portal-auth/package.json +1 -1
  447. package/extensions/msteams/CHANGELOG.md +6 -0
  448. package/extensions/msteams/package.json +1 -1
  449. package/extensions/nextcloud-talk/package.json +1 -1
  450. package/extensions/nostr/CHANGELOG.md +6 -0
  451. package/extensions/nostr/package.json +2 -2
  452. package/extensions/open-prose/package.json +1 -1
  453. package/extensions/signal/package.json +1 -1
  454. package/extensions/slack/package.json +1 -1
  455. package/extensions/telegram/package.json +1 -1
  456. package/extensions/tlon/package.json +1 -1
  457. package/extensions/twitch/CHANGELOG.md +6 -0
  458. package/extensions/twitch/package.json +1 -1
  459. package/extensions/voice-call/CHANGELOG.md +6 -0
  460. package/extensions/voice-call/package.json +1 -1
  461. package/extensions/voice-call/src/media-stream.ts +7 -1
  462. package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
  463. package/extensions/voice-call/src/providers/twilio.ts +12 -1
  464. package/extensions/whatsapp/package.json +1 -1
  465. package/extensions/zalo/CHANGELOG.md +6 -0
  466. package/extensions/zalo/package.json +1 -1
  467. package/extensions/zalouser/CHANGELOG.md +6 -0
  468. package/extensions/zalouser/package.json +1 -1
  469. package/package.json +26 -22
  470. package/dist/auth-BcNHFK-i.js +0 -184
  471. package/dist/auth-BvIPpm7G.js +0 -184
  472. package/dist/boolean-M-esQJt6.js +0 -30
  473. package/dist/bundled/soul-evil/HOOK.md +0 -71
  474. package/dist/bundled/soul-evil/handler.js +0 -194
  475. package/dist/cli-DJbWJ9aB.js +0 -89
  476. package/dist/config-CI7EpvlP.js +0 -15
  477. package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
  478. package/dist/date-time-c6HTX6IW.js +0 -187
  479. package/dist/frontmatter-xwTm0734.js +0 -105
  480. package/dist/parse-duration-De_tAQSe.js +0 -24
  481. package/dist/session-key-nXYQSv-a.js +0 -167
  482. package/dist/utils-dp_OM900.js +0 -476
  483. package/docs/hooks/soul-evil.md +0 -69
  484. package/docs/zh-CN/hooks/soul-evil.md +0 -72
  485. /package/dist/{archive-CXhvR9nU.js → archive-beaSfAzA.js} +0 -0
  486. /package/dist/{brew-BIrWdDps.js → brew-BUIxHEkn.js} +0 -0
  487. /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
  488. /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
  489. /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-LcHOt63h.js} +0 -0
  490. /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
  491. /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
  492. /package/dist/{constants-DuoCkWRh.js → constants-JPeoOZnw.js} +0 -0
  493. /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
  494. /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
  495. /package/dist/{errors-x4NYs-1P.js → errors-DjZBTJJ3.js} +0 -0
  496. /package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Cb4ZLukq.js} +0 -0
  497. /package/dist/{exec-approvals-DhmKpiIo.js → exec-approvals-DQ8TVVmj.js} +0 -0
  498. /package/dist/{format-CaxeRcue.js → format-CNU-Zkrz.js} +0 -0
  499. /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
  500. /package/dist/{format-duration-Be5Z7JdJ.js → format-duration-84n6_DgO.js} +0 -0
  501. /package/dist/{format-duration-CEmFWLyX.js → format-duration-Bo9zNKwO.js} +0 -0
  502. /package/dist/{format-relative-79_Y1n2Y.js → format-relative-CZOlQ2pA.js} +0 -0
  503. /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
  504. /package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DkiRbJdR.js} +0 -0
  505. /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
  506. /package/dist/{helpers-CRzoyyXS.js → helpers-D_jqdWkd.js} +0 -0
  507. /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
  508. /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
  509. /package/dist/{logging-BzvBIA3Y.js → logging-fywhKCmE.js} +0 -0
  510. /package/dist/{nodes-screen-lykd2cny.js → nodes-screen-CdCWeiwy.js} +0 -0
  511. /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
  512. /package/dist/{parse-DqAvJRIf.js → parse-ioZhOtha.js} +0 -0
  513. /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BoDqomM4.js} +0 -0
  514. /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-DPxH1XZx.js} +0 -0
  515. /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
  516. /package/dist/{parse-timeout-DV8NQQWk.js → parse-timeout-DMW-z4Iz.js} +0 -0
  517. /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
  518. /package/dist/{pi-model-discovery-DzFOAbQt.js → pi-model-discovery-EwKVHlZB.js} +0 -0
  519. /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
  520. /package/dist/{redact-DAKeu7PA.js → redact-BRsnXqwD.js} +0 -0
  521. /package/dist/{redact-DuEEf1p1.js → redact-Br9GfacZ.js} +0 -0
  522. /package/dist/{redact-BOIof271.js → redact-BrXLgslJ.js} +0 -0
  523. /package/dist/{status-Cv36yYdi.js → status-BRZfQbJ2.js} +0 -0
  524. /package/dist/{status-Drziap9H.js → status-CoAy6bEC.js} +0 -0
  525. /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
  526. /package/dist/{tailnet-DGRSvYuQ.js → tailnet-DATIFSsY.js} +0 -0
  527. /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
  528. /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
  529. /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-BtNd-j6q.js} +0 -0
  530. /package/dist/{usage-format-6Uar63S0.js → usage-format-C4JfTbSp.js} +0 -0
  531. /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
@@ -1,43 +1,43 @@
1
1
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-DVBShlw6.js";
2
- import { D as info, L as isRich, R as theme, c as defaultRuntime, l as restoreTerminalState } from "./subsystem-Bh1Y_6Uv.js";
3
- import { b as resolveUserPath, g as pathExists, w as sleep } from "./utils-es4ygvQ-.js";
4
- import { At as probeGatewayReachable, Bt as getRemoteSkillEligibility, Ct as formatControlUiSshHint, Dr as peekSystemEvents, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, J as summarizeRestartSentinel, Mt as resolveControlUiLinks, Ot as openUrl, Pt as summarizeExistingConfig, Rt as normalizeControlUiBasePath, St as ensureWorkspaceAndSessions, Tt as handleReset, Vn as getMemorySearchManager, a as buildChannelSummary, br as lookupContextTokens, dt as loadProviderUsageSummary, f as sha256HexPrefix, ft as formatUsageReportLines, h as listAgentsForGateway, jt as randomToken, kt as printWizardHeader, q as readRestartSentinel, vt as DEFAULT_WORKSPACE, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply--b7BsXGP.js";
2
+ import { D as info, L as isRich, R as theme, c as defaultRuntime, l as restoreTerminalState } from "./subsystem-BoExtIHo.js";
3
+ import { b as resolveUserPath, g as pathExists, w as sleep } from "./utils-Cd9QdCHh.js";
4
+ import { At as probeGatewayReachable, Bt as getRemoteSkillEligibility, Ct as formatControlUiSshHint, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, J as summarizeRestartSentinel, Mt as resolveControlUiLinks, Ot as openUrl, Pt as summarizeExistingConfig, Rt as normalizeControlUiBasePath, Sr as lookupContextTokens, St as ensureWorkspaceAndSessions, Tt as handleReset, Vn as getMemorySearchManager, a as buildChannelSummary, dt as loadProviderUsageSummary, f as sha256HexPrefix, ft as formatUsageReportLines, h as listAgentsForGateway, jt as randomToken, kr as peekSystemEvents, kt as printWizardHeader, q as readRestartSentinel, vt as DEFAULT_WORKSPACE, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply-DICXkh_C.js";
5
5
  import { l as normalizeAgentId, y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
6
- import { n as runExec } from "./exec-Cv_Ofd1m.js";
7
- import { t as resolveOpenClawPackageRoot } from "./openclaw-root-JLDMp6ux.js";
8
- import { c as resolveDefaultAgentId, h as DEFAULT_IDENTITY_FILENAME, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-CGmuusG9.js";
9
- import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, d as resolveConfiguredModelRef, ht as ensureAuthProfileStore } from "./model-selection-BK7DuyH8.js";
6
+ import { n as runExec } from "./exec-YIosokWE.js";
7
+ import { t as resolveOpenClawPackageRoot } from "./openclaw-root-1VeFrph_.js";
8
+ import { c as resolveDefaultAgentId, h as DEFAULT_IDENTITY_FILENAME, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-CQCus0rI.js";
9
+ import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, d as resolveConfiguredModelRef, ht as ensureAuthProfileStore } from "./model-selection-BLuqsGVB.js";
10
10
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-ChfKqObn.js";
11
- import { M as VERSION, c as writeConfigFile, i as loadConfig, o as readConfigFileSnapshot } from "./config--NUdpACy.js";
12
- import { n as listChannelPlugins } from "./plugins-CNaHNND_.js";
13
- import { L as resolveMainSessionKey, d as loadSessionStore } from "./sandbox-DqUO2K83.js";
14
- import { d as inspectPortUsage, f as resolveLsofCommandSync, p as formatPortDiagnostics } from "./chrome-Dm-EgOjJ.js";
15
- import { o as resolveStorePath } from "./paths-Bkhd_qY8.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-Bek1xlgk.js";
17
- import { r as formatDurationPrecise } from "./format-duration-CEmFWLyX.js";
18
- import { n as formatTimeAgo } from "./format-relative-Db7eqEu8.js";
19
- import { n as withProgress } from "./progress-DIQJt9Va.js";
20
- import { a as findTailscaleBinary, o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-Cu-2HNvU.js";
21
- import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-UsK-tOty.js";
22
- import { t as resolveChannelDefaultAccountId } from "./helpers-C89IG08W.js";
23
- import { n as logConfigUpdated } from "./logging-MMRGFxGI.js";
24
- import { t as WizardCancelledError } from "./prompts--d-6l5Ln.js";
25
- import { _ as promptAuthChoiceGrouped, a as promptCustomApiConfig, c as applyPrimaryModel, d as resolvePreferredProviderForAuthChoice, f as warnIfModelConfigLooksOff, l as promptDefaultModel, p as applyAuthChoice, r as promptRemoteGatewayConfig, t as setupSkills } from "./onboard-skills-DQwOQ6Ry.js";
26
- import { n as setupChannels } from "./onboard-channels-CXhnVy4E.js";
27
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-Dy1caGsq.js";
28
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-CmE6cHdn.js";
29
- import { i as probeGateway, t as runSecurityAudit } from "./audit-C4wLaF0D.js";
30
- import { t as renderTable } from "./table-DEnmtvl5.js";
31
- import { t as buildWorkspaceSkillStatus } from "./skills-status-BosMnzIs.js";
32
- import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cd4BxKuo.js";
33
- import { r as isSystemdUserServiceAvailable } from "./systemd-D6wTPnHi.js";
34
- import { o as readLastGatewayErrorLine } from "./service-audit-CCFxuvKs.js";
35
- import { t as resolveNodeService } from "./node-service-CM5vkdIo.js";
36
- import { t as collectChannelStatusIssues } from "./channels-status-issues-DQkRaZts.js";
37
- import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DLOJPZmo.js";
38
- import { r as installCompletion } from "./completion-cli-DOec3E2Z.js";
39
- import { t as buildWorkspaceHookStatus } from "./hooks-status-DNQJSa4B.js";
40
- import { t as runTui } from "./tui-Bc7XUQGP.js";
11
+ import { M as VERSION, c as writeConfigFile, i as loadConfig, o as readConfigFileSnapshot } from "./config-aFQssWKX.js";
12
+ import { n as listChannelPlugins } from "./plugins-X7d_tfTE.js";
13
+ import { L as resolveMainSessionKey, d as loadSessionStore } from "./sandbox-Bhjnh1Xg.js";
14
+ import { d as inspectPortUsage, f as resolveLsofCommandSync, p as formatPortDiagnostics } from "./chrome-Cvr-57lg.js";
15
+ import { s as resolveStorePath } from "./paths-B49s6UZQ.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-SolyGS1r.js";
17
+ import { r as formatDurationPrecise } from "./format-duration-84n6_DgO.js";
18
+ import { n as formatTimeAgo } from "./format-relative-cegC_FF5.js";
19
+ import { n as withProgress } from "./progress-C9kngsTD.js";
20
+ import { d as getTailnetHostname, f as readTailscaleStatusJson, u as findTailscaleBinary } from "./auth-CQNl_IaI.js";
21
+ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Bsjeut6m.js";
22
+ import { t as resolveChannelDefaultAccountId } from "./helpers-HyeZXsnu.js";
23
+ import { n as logConfigUpdated } from "./logging-BAyPwvdH.js";
24
+ import { t as WizardCancelledError } from "./prompts-Bg96reub.js";
25
+ import { S as promptAuthChoiceGrouped, _ as applyAuthChoice, c as promptCustomApiConfig, f as applyPrimaryModel, g as warnIfModelConfigLooksOff, h as resolvePreferredProviderForAuthChoice, p as promptDefaultModel, r as promptRemoteGatewayConfig, t as setupSkills } from "./onboard-skills-rlBHcu3Q.js";
26
+ import { n as setupChannels } from "./onboard-channels-Dxzroasd.js";
27
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-KGPokKJH.js";
28
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-7Qa1T9y6.js";
29
+ import { i as probeGateway, t as runSecurityAudit } from "./audit-Dmww_503.js";
30
+ import { t as renderTable } from "./table-B8dx3v4v.js";
31
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-5U3P3YfJ.js";
32
+ import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service--nPk7DvT.js";
33
+ import { r as isSystemdUserServiceAvailable } from "./systemd-DrmBtJ5T.js";
34
+ import { o as readLastGatewayErrorLine } from "./service-audit-DnLmRGQt.js";
35
+ import { t as resolveNodeService } from "./node-service-C8DTHTMg.js";
36
+ import { t as collectChannelStatusIssues } from "./channels-status-issues-DDAWeT-6.js";
37
+ import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DcfK-dwd.js";
38
+ import { r as installCompletion } from "./completion-cli-DnjpxAag.js";
39
+ import { t as buildWorkspaceHookStatus } from "./hooks-status-D9MhwHRp.js";
40
+ import { t as runTui } from "./tui-CVTQn-dC.js";
41
41
  import fs from "node:fs";
42
42
  import os from "node:os";
43
43
  import path from "node:path";
@@ -2535,7 +2535,7 @@ async function finalizeOnboardingWizard(options) {
2535
2535
  const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
2536
2536
  if (process.platform === "linux" && !systemdAvailable) await prompter.note("Systemd user services are unavailable. Skipping lingering checks and service install.", "Systemd");
2537
2537
  if (process.platform === "linux" && systemdAvailable) {
2538
- const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-BxjTrgoH.js").then((n) => n.r);
2538
+ const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-NC2kl1SC.js").then((n) => n.r);
2539
2539
  await ensureSystemdUserLingerInteractive({
2540
2540
  runtime,
2541
2541
  prompter: {
@@ -48,6 +48,10 @@ function findPackageRootSync(startDir, maxDepth = 12) {
48
48
  function candidateDirsFromArgv1(argv1) {
49
49
  const normalized = path.resolve(argv1);
50
50
  const candidates = [path.dirname(normalized)];
51
+ try {
52
+ const resolved = fs.realpathSync(normalized);
53
+ if (resolved !== normalized) candidates.push(path.dirname(resolved));
54
+ } catch {}
51
55
  const parts = normalized.split(path.sep);
52
56
  const binIndex = parts.lastIndexOf(".bin");
53
57
  if (binIndex > 0 && parts[binIndex - 1] === "node_modules") {
@@ -48,6 +48,10 @@ function findPackageRootSync(startDir, maxDepth = 12) {
48
48
  function candidateDirsFromArgv1(argv1) {
49
49
  const normalized = path.resolve(argv1);
50
50
  const candidates = [path.dirname(normalized)];
51
+ try {
52
+ const resolved = fs.realpathSync(normalized);
53
+ if (resolved !== normalized) candidates.push(path.dirname(resolved));
54
+ } catch {}
51
55
  const parts = normalized.split(path.sep);
52
56
  const binIndex = parts.lastIndexOf(".bin");
53
57
  if (binIndex > 0 && parts[binIndex - 1] === "node_modules") {
@@ -1,19 +1,19 @@
1
- import { k as theme, p as defaultRuntime } from "./entry.js";
2
- import "./auth-profiles-Bv1AEm-Y.js";
3
- import { t as formatCliCommand } from "./command-format-ayFsmwwz.js";
4
- import "./utils-Dk86IbEs.js";
5
- import "./exec-B8JKbXKW.js";
6
- import "./agent-scope-DQuy3dwI.js";
7
- import "./github-copilot-token-SLWintYd.js";
8
- import { i as loadConfig } from "./config-B00lvFac.js";
9
- import "./manifest-registry-D5SiA3xq.js";
10
- import { t as formatDocsLink } from "./links-7M-j83As.js";
11
- import { r as normalizeChannelId } from "./plugins-Db5BiELK.js";
1
+ import { A as theme, p as defaultRuntime } from "./entry.js";
2
+ import "./auth-profiles-ByNs3eEm.js";
3
+ import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
4
+ import "./utils-BLJAc3ZV.js";
5
+ import "./exec-CACT5OAW.js";
6
+ import "./agent-scope-CsRbLH4l.js";
7
+ import "./github-copilot-token-Cfs0Wxr8.js";
8
+ import { i as loadConfig } from "./config-Bdhomfei.js";
9
+ import "./manifest-registry-u0okVSkU.js";
10
+ import { t as formatDocsLink } from "./links-B8LAzWwg.js";
11
+ import { r as normalizeChannelId } from "./plugins-4Hqd1WGf.js";
12
12
  import "./logging-CfEk_PnX.js";
13
- import "./accounts-DbzMEfKN.js";
14
- import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-CgXR3ZWJ.js";
15
- import { t as resolvePairingIdLabel } from "./pairing-labels-CWFEtSc3.js";
16
- import { t as renderTable } from "./table-cCoGqLsk.js";
13
+ import "./accounts-DCDeFTra.js";
14
+ import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-Dp5_JGnG.js";
15
+ import { t as resolvePairingIdLabel } from "./pairing-labels-CgNHnjzT.js";
16
+ import { t as renderTable } from "./table-CwulTLQp.js";
17
17
 
18
18
  //#region src/cli/pairing-cli.ts
19
19
  /** Parse channel, allowing extension channels not in core registry. */
@@ -1,22 +1,22 @@
1
1
  import "./paths-DVBShlw6.js";
2
- import { R as theme, c as defaultRuntime } from "./subsystem-Bh1Y_6Uv.js";
3
- import "./utils-es4ygvQ-.js";
4
- import "./exec-Cv_Ofd1m.js";
5
- import "./agent-scope-CGmuusG9.js";
6
- import "./model-selection-BK7DuyH8.js";
2
+ import { R as theme, c as defaultRuntime } from "./subsystem-BoExtIHo.js";
3
+ import "./utils-Cd9QdCHh.js";
4
+ import "./exec-YIosokWE.js";
5
+ import "./agent-scope-CQCus0rI.js";
6
+ import "./model-selection-BLuqsGVB.js";
7
7
  import "./github-copilot-token-BW-SEg7E.js";
8
8
  import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
9
9
  import "./boolean-BgXe2hyu.js";
10
- import "./env-BxRc6wWv.js";
11
- import { i as loadConfig } from "./config--NUdpACy.js";
12
- import "./manifest-registry-3It8Z8yN.js";
13
- import { r as normalizeChannelId } from "./plugins-CNaHNND_.js";
14
- import "./logging-BzvBIA3Y.js";
15
- import "./accounts-C2elk6PC.js";
16
- import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-c-QQ2u8p.js";
17
- import { t as formatDocsLink } from "./links-C591fM9M.js";
18
- import { t as resolvePairingIdLabel } from "./pairing-labels-Ciu3Zoxj.js";
19
- import { t as renderTable } from "./table-DEnmtvl5.js";
10
+ import "./env-ONzUVAG2.js";
11
+ import { i as loadConfig } from "./config-aFQssWKX.js";
12
+ import "./manifest-registry-CQhdnDBZ.js";
13
+ import { r as normalizeChannelId } from "./plugins-X7d_tfTE.js";
14
+ import "./logging-fywhKCmE.js";
15
+ import "./accounts-DeqIQjo1.js";
16
+ import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-CmlRVqOz.js";
17
+ import { t as formatDocsLink } from "./links-Eax1UO3w.js";
18
+ import { t as resolvePairingIdLabel } from "./pairing-labels-B6CN0SNH.js";
19
+ import { t as renderTable } from "./table-B8dx3v4v.js";
20
20
 
21
21
  //#region src/cli/pairing-cli.ts
22
22
  /** Parse channel, allowing extension channels not in core registry. */
@@ -1,4 +1,4 @@
1
- import { s as getPairingAdapter } from "./pairing-store-c-QQ2u8p.js";
1
+ import { s as getPairingAdapter } from "./pairing-store-CmlRVqOz.js";
2
2
 
3
3
  //#region src/pairing/pairing-labels.ts
4
4
  function resolvePairingIdLabel(channel) {
@@ -1,4 +1,4 @@
1
- import { s as getPairingAdapter } from "./pairing-store-CgXR3ZWJ.js";
1
+ import { s as getPairingAdapter } from "./pairing-store-Dp5_JGnG.js";
2
2
 
3
3
  //#region src/pairing/pairing-labels.ts
4
4
  function resolvePairingIdLabel(channel) {
@@ -1,6 +1,6 @@
1
1
  import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-DVBShlw6.js";
2
- import { x as safeParseJson } from "./utils-es4ygvQ-.js";
3
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CNaHNND_.js";
2
+ import { x as safeParseJson } from "./utils-Cd9QdCHh.js";
3
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-X7d_tfTE.js";
4
4
  import fs from "node:fs";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
@@ -1,6 +1,6 @@
1
- import { J as resolveOAuthDir, X as resolveStateDir, pt as resolveRequiredHomeDir } from "./entry.js";
2
- import { b as safeParseJson } from "./utils-Dk86IbEs.js";
3
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-Db5BiELK.js";
1
+ import { Y as resolveOAuthDir, Z as resolveStateDir, ht as resolveRequiredHomeDir } from "./entry.js";
2
+ import { b as safeParseJson } from "./utils-BLJAc3ZV.js";
3
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-4Hqd1WGf.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { n as isTruthyEnvValue } from "./entry.js";
2
- import { n as resolveBrewPathDirs } from "./brew-BIrWdDps.js";
2
+ import { n as resolveBrewPathDirs } from "./brew-BUIxHEkn.js";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
5
5
  import fs from "node:fs";
@@ -1,5 +1,5 @@
1
- import { t as isTruthyEnvValue } from "./env-BxRc6wWv.js";
2
- import { n as resolveBrewPathDirs } from "./brew-B7YK4ZoL.js";
1
+ import { t as isTruthyEnvValue } from "./env-ONzUVAG2.js";
2
+ import { n as resolveBrewPathDirs } from "./brew-ROHf0-Xp.js";
3
3
  import fs from "node:fs";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { c as expandHomePrefix, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-BZtyHNCi.js";
2
- import { l as normalizeAgentId, n as DEFAULT_AGENT_ID } from "./session-key-nXYQSv-a.js";
2
+ import { M as normalizeAgentId, T as DEFAULT_AGENT_ID } from "./agent-scope-BIEhVP4_.js";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
 
@@ -15,14 +15,39 @@ function resolveSessionTranscriptsDirForAgent(agentId, env = process.env, homedi
15
15
  function resolveDefaultSessionStorePath(agentId) {
16
16
  return path.join(resolveAgentSessionsDir(agentId), "sessions.json");
17
17
  }
18
- function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
18
+ const SAFE_SESSION_ID_RE = /^[a-z0-9][a-z0-9._-]{0,127}$/i;
19
+ function validateSessionId(sessionId) {
20
+ const trimmed = sessionId.trim();
21
+ if (!SAFE_SESSION_ID_RE.test(trimmed)) throw new Error(`Invalid session ID: ${sessionId}`);
22
+ return trimmed;
23
+ }
24
+ function resolveSessionsDir(opts) {
25
+ const sessionsDir = opts?.sessionsDir?.trim();
26
+ if (sessionsDir) return path.resolve(sessionsDir);
27
+ return resolveAgentSessionsDir(opts?.agentId);
28
+ }
29
+ function resolvePathWithinSessionsDir(sessionsDir, candidate) {
30
+ const trimmed = candidate.trim();
31
+ if (!trimmed) throw new Error("Session file path must not be empty");
32
+ const resolvedBase = path.resolve(sessionsDir);
33
+ const resolvedCandidate = path.resolve(resolvedBase, trimmed);
34
+ const relative = path.relative(resolvedBase, resolvedCandidate);
35
+ if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error("Session file path must be within sessions directory");
36
+ return resolvedCandidate;
37
+ }
38
+ function resolveSessionTranscriptPathInDir(sessionId, sessionsDir, topicId) {
39
+ const safeSessionId = validateSessionId(sessionId);
19
40
  const safeTopicId = typeof topicId === "string" ? encodeURIComponent(topicId) : typeof topicId === "number" ? String(topicId) : void 0;
20
- const fileName = safeTopicId !== void 0 ? `${sessionId}-topic-${safeTopicId}.jsonl` : `${sessionId}.jsonl`;
21
- return path.join(resolveAgentSessionsDir(agentId), fileName);
41
+ return resolvePathWithinSessionsDir(sessionsDir, safeTopicId !== void 0 ? `${safeSessionId}-topic-${safeTopicId}.jsonl` : `${safeSessionId}.jsonl`);
42
+ }
43
+ function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
44
+ return resolveSessionTranscriptPathInDir(sessionId, resolveAgentSessionsDir(agentId), topicId);
22
45
  }
23
46
  function resolveSessionFilePath(sessionId, entry, opts) {
47
+ const sessionsDir = resolveSessionsDir(opts);
24
48
  const candidate = entry?.sessionFile?.trim();
25
- return candidate ? candidate : resolveSessionTranscriptPath(sessionId, opts?.agentId);
49
+ if (candidate) return resolvePathWithinSessionsDir(sessionsDir, candidate);
50
+ return resolveSessionTranscriptPathInDir(sessionId, sessionsDir);
26
51
  }
27
52
  function resolveStorePath(store, opts) {
28
53
  const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID);
@@ -18,14 +18,39 @@ function resolveSessionTranscriptsDirForAgent(agentId, env = process.env, homedi
18
18
  function resolveDefaultSessionStorePath(agentId) {
19
19
  return path.join(resolveAgentSessionsDir(agentId), "sessions.json");
20
20
  }
21
- function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
21
+ const SAFE_SESSION_ID_RE = /^[a-z0-9][a-z0-9._-]{0,127}$/i;
22
+ function validateSessionId(sessionId) {
23
+ const trimmed = sessionId.trim();
24
+ if (!SAFE_SESSION_ID_RE.test(trimmed)) throw new Error(`Invalid session ID: ${sessionId}`);
25
+ return trimmed;
26
+ }
27
+ function resolveSessionsDir(opts) {
28
+ const sessionsDir = opts?.sessionsDir?.trim();
29
+ if (sessionsDir) return path.resolve(sessionsDir);
30
+ return resolveAgentSessionsDir(opts?.agentId);
31
+ }
32
+ function resolvePathWithinSessionsDir(sessionsDir, candidate) {
33
+ const trimmed = candidate.trim();
34
+ if (!trimmed) throw new Error("Session file path must not be empty");
35
+ const resolvedBase = path.resolve(sessionsDir);
36
+ const resolvedCandidate = path.resolve(resolvedBase, trimmed);
37
+ const relative = path.relative(resolvedBase, resolvedCandidate);
38
+ if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error("Session file path must be within sessions directory");
39
+ return resolvedCandidate;
40
+ }
41
+ function resolveSessionTranscriptPathInDir(sessionId, sessionsDir, topicId) {
42
+ const safeSessionId = validateSessionId(sessionId);
22
43
  const safeTopicId = typeof topicId === "string" ? encodeURIComponent(topicId) : typeof topicId === "number" ? String(topicId) : void 0;
23
- const fileName = safeTopicId !== void 0 ? `${sessionId}-topic-${safeTopicId}.jsonl` : `${sessionId}.jsonl`;
24
- return path.join(resolveAgentSessionsDir(agentId), fileName);
44
+ return resolvePathWithinSessionsDir(sessionsDir, safeTopicId !== void 0 ? `${safeSessionId}-topic-${safeTopicId}.jsonl` : `${safeSessionId}.jsonl`);
45
+ }
46
+ function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
47
+ return resolveSessionTranscriptPathInDir(sessionId, resolveAgentSessionsDir(agentId), topicId);
25
48
  }
26
49
  function resolveSessionFilePath(sessionId, entry, opts) {
50
+ const sessionsDir = resolveSessionsDir(opts);
27
51
  const candidate = entry?.sessionFile?.trim();
28
- return candidate ? candidate : resolveSessionTranscriptPath(sessionId, opts?.agentId);
52
+ if (candidate) return resolvePathWithinSessionsDir(sessionsDir, candidate);
53
+ return resolveSessionTranscriptPathInDir(sessionId, sessionsDir);
29
54
  }
30
55
  function resolveStorePath(store, opts) {
31
56
  const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID);
@@ -48,4 +73,4 @@ function resolveStorePath(store, opts) {
48
73
  }
49
74
 
50
75
  //#endregion
51
- export { resolveSessionTranscriptsDirForAgent as a, resolveSessionTranscriptsDir as i, resolveSessionFilePath as n, resolveStorePath as o, resolveSessionTranscriptPath as r, resolveDefaultSessionStorePath as t };
76
+ export { resolveSessionTranscriptsDir as a, resolveSessionTranscriptPathInDir as i, resolveSessionFilePath as n, resolveSessionTranscriptsDirForAgent as o, resolveSessionTranscriptPath as r, resolveStorePath as s, resolveDefaultSessionStorePath as t };
@@ -1,5 +1,5 @@
1
1
  import { c as expandHomePrefix, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-rb94mUrR.js";
2
- import { M as normalizeAgentId, T as DEFAULT_AGENT_ID } from "./agent-scope-BEf5crnU.js";
2
+ import { M as normalizeAgentId, T as DEFAULT_AGENT_ID } from "./agent-scope-DPIFau3f.js";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
5
5
 
@@ -15,14 +15,39 @@ function resolveSessionTranscriptsDirForAgent(agentId, env = process.env, homedi
15
15
  function resolveDefaultSessionStorePath(agentId) {
16
16
  return path.join(resolveAgentSessionsDir(agentId), "sessions.json");
17
17
  }
18
- function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
18
+ const SAFE_SESSION_ID_RE = /^[a-z0-9][a-z0-9._-]{0,127}$/i;
19
+ function validateSessionId(sessionId) {
20
+ const trimmed = sessionId.trim();
21
+ if (!SAFE_SESSION_ID_RE.test(trimmed)) throw new Error(`Invalid session ID: ${sessionId}`);
22
+ return trimmed;
23
+ }
24
+ function resolveSessionsDir(opts) {
25
+ const sessionsDir = opts?.sessionsDir?.trim();
26
+ if (sessionsDir) return path.resolve(sessionsDir);
27
+ return resolveAgentSessionsDir(opts?.agentId);
28
+ }
29
+ function resolvePathWithinSessionsDir(sessionsDir, candidate) {
30
+ const trimmed = candidate.trim();
31
+ if (!trimmed) throw new Error("Session file path must not be empty");
32
+ const resolvedBase = path.resolve(sessionsDir);
33
+ const resolvedCandidate = path.resolve(resolvedBase, trimmed);
34
+ const relative = path.relative(resolvedBase, resolvedCandidate);
35
+ if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error("Session file path must be within sessions directory");
36
+ return resolvedCandidate;
37
+ }
38
+ function resolveSessionTranscriptPathInDir(sessionId, sessionsDir, topicId) {
39
+ const safeSessionId = validateSessionId(sessionId);
19
40
  const safeTopicId = typeof topicId === "string" ? encodeURIComponent(topicId) : typeof topicId === "number" ? String(topicId) : void 0;
20
- const fileName = safeTopicId !== void 0 ? `${sessionId}-topic-${safeTopicId}.jsonl` : `${sessionId}.jsonl`;
21
- return path.join(resolveAgentSessionsDir(agentId), fileName);
41
+ return resolvePathWithinSessionsDir(sessionsDir, safeTopicId !== void 0 ? `${safeSessionId}-topic-${safeTopicId}.jsonl` : `${safeSessionId}.jsonl`);
42
+ }
43
+ function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
44
+ return resolveSessionTranscriptPathInDir(sessionId, resolveAgentSessionsDir(agentId), topicId);
22
45
  }
23
46
  function resolveSessionFilePath(sessionId, entry, opts) {
47
+ const sessionsDir = resolveSessionsDir(opts);
24
48
  const candidate = entry?.sessionFile?.trim();
25
- return candidate ? candidate : resolveSessionTranscriptPath(sessionId, opts?.agentId);
49
+ if (candidate) return resolvePathWithinSessionsDir(sessionsDir, candidate);
50
+ return resolveSessionTranscriptPathInDir(sessionId, sessionsDir);
26
51
  }
27
52
  function resolveStorePath(store, opts) {
28
53
  const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID);
@@ -1,4 +1,4 @@
1
- import { X as resolveStateDir, dt as expandHomePrefix, pt as resolveRequiredHomeDir } from "./entry.js";
1
+ import { Z as resolveStateDir, ht as resolveRequiredHomeDir, pt as expandHomePrefix } from "./entry.js";
2
2
  import { l as normalizeAgentId, n as DEFAULT_AGENT_ID } from "./session-key-DVvxnFKg.js";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
@@ -18,14 +18,39 @@ function resolveSessionTranscriptsDirForAgent(agentId, env = process.env, homedi
18
18
  function resolveDefaultSessionStorePath(agentId) {
19
19
  return path.join(resolveAgentSessionsDir(agentId), "sessions.json");
20
20
  }
21
- function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
21
+ const SAFE_SESSION_ID_RE = /^[a-z0-9][a-z0-9._-]{0,127}$/i;
22
+ function validateSessionId(sessionId) {
23
+ const trimmed = sessionId.trim();
24
+ if (!SAFE_SESSION_ID_RE.test(trimmed)) throw new Error(`Invalid session ID: ${sessionId}`);
25
+ return trimmed;
26
+ }
27
+ function resolveSessionsDir(opts) {
28
+ const sessionsDir = opts?.sessionsDir?.trim();
29
+ if (sessionsDir) return path.resolve(sessionsDir);
30
+ return resolveAgentSessionsDir(opts?.agentId);
31
+ }
32
+ function resolvePathWithinSessionsDir(sessionsDir, candidate) {
33
+ const trimmed = candidate.trim();
34
+ if (!trimmed) throw new Error("Session file path must not be empty");
35
+ const resolvedBase = path.resolve(sessionsDir);
36
+ const resolvedCandidate = path.resolve(resolvedBase, trimmed);
37
+ const relative = path.relative(resolvedBase, resolvedCandidate);
38
+ if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error("Session file path must be within sessions directory");
39
+ return resolvedCandidate;
40
+ }
41
+ function resolveSessionTranscriptPathInDir(sessionId, sessionsDir, topicId) {
42
+ const safeSessionId = validateSessionId(sessionId);
22
43
  const safeTopicId = typeof topicId === "string" ? encodeURIComponent(topicId) : typeof topicId === "number" ? String(topicId) : void 0;
23
- const fileName = safeTopicId !== void 0 ? `${sessionId}-topic-${safeTopicId}.jsonl` : `${sessionId}.jsonl`;
24
- return path.join(resolveAgentSessionsDir(agentId), fileName);
44
+ return resolvePathWithinSessionsDir(sessionsDir, safeTopicId !== void 0 ? `${safeSessionId}-topic-${safeTopicId}.jsonl` : `${safeSessionId}.jsonl`);
45
+ }
46
+ function resolveSessionTranscriptPath(sessionId, agentId, topicId) {
47
+ return resolveSessionTranscriptPathInDir(sessionId, resolveAgentSessionsDir(agentId), topicId);
25
48
  }
26
49
  function resolveSessionFilePath(sessionId, entry, opts) {
50
+ const sessionsDir = resolveSessionsDir(opts);
27
51
  const candidate = entry?.sessionFile?.trim();
28
- return candidate ? candidate : resolveSessionTranscriptPath(sessionId, opts?.agentId);
52
+ if (candidate) return resolvePathWithinSessionsDir(sessionsDir, candidate);
53
+ return resolveSessionTranscriptPathInDir(sessionId, sessionsDir);
29
54
  }
30
55
  function resolveStorePath(store, opts) {
31
56
  const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID);
@@ -48,4 +73,4 @@ function resolveStorePath(store, opts) {
48
73
  }
49
74
 
50
75
  //#endregion
51
- export { resolveSessionTranscriptsDirForAgent as a, resolveSessionTranscriptsDir as i, resolveSessionFilePath as n, resolveStorePath as o, resolveSessionTranscriptPath as r, resolveDefaultSessionStorePath as t };
76
+ export { resolveSessionTranscriptsDir as a, resolveSessionTranscriptPathInDir as i, resolveSessionFilePath as n, resolveSessionTranscriptsDirForAgent as o, resolveSessionTranscriptPath as r, resolveStorePath as s, resolveDefaultSessionStorePath as t };