wednesdayai 0.5.1-dev.36 → 0.5.1-dev.38
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.
- package/dist/{acp-cli-BCtWMJDr.js → acp-cli-DHAxJufY.js} +11 -11
- package/dist/{agent-scope-BXqrHhZ0.js → agent-scope-BZ0wFh-U.js} +21 -21
- package/dist/{agent-scope-cTY4-zRz.js → agent-scope-CoIdVzmg.js} +3 -3
- package/dist/{agent-turn-enqueue-TStC2eAo.js → agent-turn-enqueue-DZ607FR0.js} +6 -6
- package/dist/{agent-turn-execute-B8YL98Ei.js → agent-turn-execute-CGTvDxUE.js} +152 -152
- package/dist/{agent-turn-recovery-adapter-DMCiX5id.js → agent-turn-recovery-adapter-bACrcJAQ.js} +3 -3
- package/dist/{agent-turn-runner-7LQU6Fut.js → agent-turn-runner-C3LuaN7w.js} +6 -6
- package/dist/{agent-turn-runner-JxDS9bU_.js → agent-turn-runner-CiEPY6RO.js} +2 -2
- package/dist/{agent-turn-runner-Dqbqrgbg.js → agent-turn-runner-qSzYP-xO.js} +4 -4
- package/dist/{agents-DecMea6v.js → agents-C8johSLq.js} +21 -21
- package/dist/{agents.config-C9y5L4K8.js → agents.config-BjA0noNV.js} +3 -3
- package/dist/{api-key-rotation-BCh_J5f6.js → api-key-rotation-CoKWzuyV.js} +2 -2
- package/dist/{api-key-rotation-muerimbF.js → api-key-rotation-D4lnO3Ok.js} +1 -1
- package/dist/{audio-preflight-Cxyte-N3.js → audio-preflight-CKFGJslr.js} +3 -3
- package/dist/{audio-preflight-C9EHsVrE.js → audio-preflight-Djb8Ia-c.js} +23 -23
- package/dist/{audio-preflight-CP5CtdsH.js → audio-preflight-oL1-kPAm.js} +37 -37
- package/dist/{audio-transcription-runner-CoyogVcx.js → audio-transcription-runner-B-MEt_yD.js} +1 -1
- package/dist/{audio-transcription-runner-Bs4pG29e.js → audio-transcription-runner-BXSN8eBn.js} +27 -27
- package/dist/{audio-transcription-runner-DXlkPfwW.js → audio-transcription-runner-DhoPP3LM.js} +25 -25
- package/dist/{audit-CEciibi6.js → audit-CKbyr9j7.js} +31 -31
- package/dist/{auth-C4aicgu0.js → auth--kj7eWiw.js} +4 -4
- package/dist/{auth-choice-CzqQjA2v.js → auth-choice-BOcw0TMX.js} +15 -15
- package/dist/{auth-choice-CAZCvJj_.js → auth-choice-RfKE6K30.js} +13 -13
- package/dist/{auth-choice.apply-helpers-DWNqsu7M.js → auth-choice.apply-helpers-NHz-APrm.js} +1 -1
- package/dist/{auth-token-DEhILWtz.js → auth-token-BdrfJ6LM.js} +2 -2
- package/dist/{banner-CI86ZCI2.js → banner-BF4fYjB7.js} +4 -4
- package/dist/{bonjour-discovery-24oEkWjB.js → bonjour-discovery-BthO3c3w.js} +3 -3
- package/dist/{browser-cli-DhjLTPwH.js → browser-cli-sLIHnZHe.js} +19 -19
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +50 -50
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +2 -2
- package/dist/bundled/session-journal/handler.js +50 -50
- package/dist/bundled/session-memory/handler.js +50 -50
- package/dist/{call-C4ArH9Si.js → call-BY-wbSIJ.js} +12 -12
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-CndjAqFL.js → channel-account-context-DIx7V4k-.js} +7 -7
- package/dist/{channel-options-OJHp5c5p.js → channel-options-B10KsMrg.js} +3 -3
- package/dist/{channel-selection-JkSKVHJp.js → channel-selection-BxBw-nya.js} +1 -1
- package/dist/{channels-cli-Z1jMieGO.js → channels-cli-C4-OqjW1.js} +119 -119
- package/dist/{channels-status-issues-KrOAESoD.js → channels-status-issues-DYdDrl6F.js} +1 -1
- package/dist/{chat-content-Cafge7N8.js → chat-content-01nUeO9I.js} +3 -3
- package/dist/{chat-content-Csm95kDY.js → chat-content-Cp63XvqY.js} +39 -39
- package/dist/{chrome-CBtFbbNQ.js → chrome-CMvVElGc.js} +6 -6
- package/dist/{plugin-sdk/chrome-DT2r85gp.js → chrome-DW9-DzcL.js} +25 -25
- package/dist/{chrome-H5-7mQ4m.js → chrome-kwiyU0Mr.js} +8 -8
- package/dist/{chunk-zortZzCP.js → chunk-BRJHaAd6.js} +3 -3
- package/dist/{chunk-TNziyyRO.js → chunk-DAmLsltN.js} +3 -3
- package/dist/{clack-prompter-BGz_-0Jy.js → clack-prompter-gj894fSZ.js} +5 -5
- package/dist/clawbot-cli-Uwda-gwl.js +31 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-9kY6bXto.js +165 -0
- package/dist/{client-x4GnolXm.js → client-DsaKKPz1.js} +4 -4
- package/dist/{client-profiles-DeaEz84_.js → client-profiles-HTQt5I_7.js} +4 -4
- package/dist/{clipboard-CpnmAh1M.js → clipboard-Dwm1nI9r.js} +1 -1
- package/dist/{command-queue-DfL4YmGb.js → command-queue-CRm1AADE.js} +1 -1
- package/dist/{command-queue-DqvFUE_T.js → command-queue-D7PleaNJ.js} +1 -1
- package/dist/{command-registry-DZhaDT6k.js → command-registry-mp4MxXzC.js} +14 -14
- package/dist/{command-secret-targets-CX4FWTx8.js → command-secret-targets-MpNVd6gM.js} +4 -4
- package/dist/{commands-DYSm3eNj.js → commands-BSuDoyqC.js} +1 -1
- package/dist/{commands-registry-BbHkcgn_.js → commands-registry-CWGturUV.js} +3 -3
- package/dist/{commands-registry-Vo5C1XbD.js → commands-registry-D3lOVOa7.js} +2 -2
- package/dist/{completion-cli-KeHhpylY.js → completion-cli-D1oQvlFE.js} +16 -16
- package/dist/{config-2hPOvE4Z.js → config-D--rwfpd.js} +31 -31
- package/dist/{config-cli-D-H6Kr9B.js → config-cli-BXmt8okw.js} +10 -10
- package/dist/{config-guard-BvNFubkG.js → config-guard-Cw6VZZIa.js} +4 -4
- package/dist/{config-validation-CoY1swln.js → config-validation-ak7uy8sQ.js} +4 -4
- package/dist/{configure-DvBl6V3D.js → configure-Jq_Nd0lw.js} +25 -25
- package/dist/{control-ui-assets-DvutqvBd.js → control-ui-assets-D7LC9ugV.js} +3 -3
- package/dist/{controller-Cph9HEXR.js → controller-C5VfLHxD.js} +1 -1
- package/dist/{credentials-DLluMUaA.js → credentials-D2RfV9B5.js} +1 -1
- package/dist/{cron-cli-Bx35RD7d.js → cron-cli-BgEowQB-.js} +14 -14
- package/dist/{daemon-cli-DlS7PDJU.js → daemon-cli-BVlct7Qh.js} +19 -19
- package/dist/{daemon-install-P8cLD1fo.js → daemon-install-BXgUCwNe.js} +10 -10
- package/dist/{daemon-install-helpers-YbryCWUm.js → daemon-install-helpers-DN9p53IN.js} +13 -13
- package/dist/{delete-agent-sessions-C60hkBQ-.js → delete-agent-sessions-B4HnloYv.js} +1 -1
- package/dist/{deliver-x22mTRDq.js → deliver-CgFkiA4Z.js} +1 -1
- package/dist/{deliver-BKt_OVTK.js → deliver-CiY0WQtq.js} +28 -28
- package/dist/{deliver-gllA2ft3.js → deliver-CjuGs2ZT.js} +12 -12
- package/dist/{devices-cli-Dc_tu4bW.js → devices-cli-BCEiHurA.js} +13 -13
- package/dist/{diagnostic-8jsvSbYs.js → diagnostic-BSnQ1U_E.js} +3 -3
- package/dist/{diagnostic-C2zSaTPq.js → diagnostic-jFNdnXCb.js} +4 -4
- package/dist/{diagnostics-CSh5FcKM.js → diagnostics-CbXyRsTN.js} +5 -5
- package/dist/{directory-cli-CcMw7ktc.js → directory-cli-CEQEXtQ_.js} +11 -11
- package/dist/{dm-policy-shared-DyPD8y1v.js → dm-policy-shared-BHHuPFZr.js} +5 -5
- package/dist/{dns-cli-Cxw9US4K.js → dns-cli-CfEIvluV.js} +10 -10
- package/dist/{docs-cli-BnnuPnNf.js → docs-cli-BvqOi7vO.js} +9 -9
- package/dist/{doctor-completion-B4D14F1Y.js → doctor-completion-Cbb3ZrZO.js} +3 -3
- package/dist/{doctor-config-flow-CY4BZ2VP.js → doctor-config-flow-zfYUW8HP.js} +17 -17
- package/dist/{enable-PpktglSI.js → enable-B7CD1rL9.js} +2 -2
- package/dist/entry.js +4 -4
- package/dist/{errors-muW4vMSB.js → errors-CgPgYfWg.js} +1 -1
- package/dist/{exec-EGo-G7vR.js → exec-DWOKM6EC.js} +2 -2
- package/dist/{exec-approvals-CImDpHtY.js → exec-approvals-CavJfWPl.js} +2 -2
- package/dist/{exec-approvals-allowlist-B3_jgDyG.js → exec-approvals-allowlist-CfzuCK0Q.js} +1 -1
- package/dist/{exec-approvals-cli-C6AHbPh4.js → exec-approvals-cli-uvLKhEsP.js} +22 -22
- package/dist/{exec-safe-bin-runtime-policy-h4hE5cjd.js → exec-safe-bin-runtime-policy-CY75nr5s.js} +2 -2
- package/dist/{extension-relay-auth-D49uIEqs.js → extension-relay-auth-CEkGLele.js} +10 -10
- package/dist/extensionAPI.js +6 -6
- package/dist/{fetch-Ciq99DHJ.js → fetch-BBi5dEoV.js} +8 -8
- package/dist/{fetch-B9Tca1cY.js → fetch-BrwJHFZR.js} +1 -1
- package/dist/{fetch-BZPOzq9L.js → fetch-CLk1nKmU.js} +5 -5
- package/dist/{fetch-guard-DaJwMbcY.js → fetch-guard-BcLYPGi1.js} +2 -2
- package/dist/{fetch-guard-laNnWRKl.js → fetch-guard-TJQinE0a.js} +2 -2
- package/dist/{frontmatter-BzlMEBkz.js → frontmatter-DQTIIgFI.js} +5 -5
- package/dist/{fs-safe-CDfp5e8Q.js → fs-safe-CRbowDkj.js} +26 -26
- package/dist/{fs-safe-db4fkk2l.js → fs-safe-sWugzmbo.js} +25 -25
- package/dist/{gateway-cli-Y92yCSUC.js → gateway-cli-C4Xm8OKF.js} +197 -197
- package/dist/{gateway-rpc-DogQQ77j.js → gateway-rpc-CIkWW5n2.js} +3 -3
- package/dist/{globals-BRyHSrWD.js → globals-3lUHnZas.js} +7 -7
- package/dist/{gmail-setup-utils-CahF-fra.js → gmail-setup-utils-CBsUX2F0.js} +2 -2
- package/dist/{health-CKyXEs4C.js → health-CkjZqvKv.js} +11 -11
- package/dist/{health-format-81amZFDs.js → health-format-CCvWwiB3.js} +1 -1
- package/dist/{heartbeat-tick-SbqJkBFN.js → heartbeat-tick-BVllHRaT.js} +1 -1
- package/dist/{help-format-CUXi0c_1.js → help-format-BQ0UHPHt.js} +1 -1
- package/dist/{helpers-CmoGqLct.js → helpers-DpVn76ht.js} +1 -1
- package/dist/{hooks-cli-BQlL_eiX.js → hooks-cli-Ced8bfd_.js} +107 -107
- package/dist/{hooks-status-BcYtOqKY.js → hooks-status-CxaWMb-v.js} +2 -2
- package/dist/{image-ops-BFv9Aw5H.js → image-ops-C0np5f9V.js} +11 -11
- package/dist/{inspect-DmQmgYu2.js → inspect-GlutPeaP.js} +4 -4
- package/dist/{install-safe-path-BZ4b1O0D.js → install-safe-path-2eEPQsHT.js} +25 -25
- package/dist/{installs-D16nEuyM.js → installs-DSwIaqJH.js} +10 -10
- package/dist/{ipv4-DV6XbKGD.js → ipv4-BexgmRwg.js} +2 -2
- package/dist/{ir-BbGjFYnq.js → ir-BoNkouUO.js} +8 -8
- package/dist/{ir-BczXO28b.js → ir-D___VWlp.js} +4 -4
- package/dist/{issue-format-OFCh_2sH.js → issue-format-DhAa1_iS.js} +1 -1
- package/dist/{jobs-Pj6_tyn5.js → jobs-D8gtzx-n.js} +3 -3
- package/dist/{json-files-CNVg1Wi5.js → json-files-CurKd8gy.js} +28 -28
- package/dist/{json-files-G3m05NRY.js → json-files-DNNBEygD.js} +7 -7
- package/dist/{legacy-names-CRCLZarD.js → legacy-names-D7ywm6_7.js} +1 -1
- package/dist/{lifecycle-core-BI6xkw0D.js → lifecycle-core-BP96hEWA.js} +9 -9
- package/dist/{links-BRY-h8H0.js → links-CPIBVJ0k.js} +1 -1
- package/dist/llm-slug-generator.js +50 -50
- package/dist/{log-tail-DeaaUA7g.js → log-tail-DoAwmIXn.js} +7 -7
- package/dist/{logging-C7kf6mNZ.js → logging-CjgQOisq.js} +1 -1
- package/dist/{logs-cli-DQhMoYgT.js → logs-cli-CIeDTp3g.js} +18 -18
- package/dist/{manager-Be7W1lBp.js → manager-B5VtBnfA.js} +14 -14
- package/dist/{manager-C5AVBxrT.js → manager-vjvTALqw.js} +9 -9
- package/dist/{manager-ywiQQ5nv.js → manager-yAtdyPwQ.js} +18 -18
- package/dist/{markdown-tables-i_PaXF56.js → markdown-tables-BwQlrMEW.js} +2 -2
- package/dist/{markdown-tables-CmGUH7Wy.js → markdown-tables-DfqPFbkZ.js} +2 -2
- package/dist/{memory-cli-vUKqKvFg.js → memory-cli-DajAbkdp.js} +19 -19
- package/dist/{model-UbsJmYeh.js → model-A1TZLzNB.js} +2 -2
- package/dist/{model-catalog-D1B81cpq.js → model-catalog-BcJh6M8w.js} +4 -4
- package/dist/{model-picker-D7AGuTS7.js → model-picker-BYGP4JvH.js} +4 -4
- package/dist/{model-selection-BJZFC8fA.js → model-selection-B7FYf8Fo.js} +83 -83
- package/dist/{models-wwUL9ZYa.js → models-CaKTiIIq.js} +22 -22
- package/dist/{models-cli-DYk-Xwo5.js → models-cli-BA6zwth-.js} +107 -107
- package/dist/{models-config-CC5yFmpv.js → models-config-CBX2i56k.js} +7 -7
- package/dist/{node-cli-B7Zt1yCl.js → node-cli-BF1J4vkA.js} +43 -43
- package/dist/{node-command-policy-C-htkgT_.js → node-command-policy-S97zDTm2.js} +1 -1
- package/dist/{node-service-Ch4eBsUZ.js → node-service-Drxz78wf.js} +1 -1
- package/dist/{nodes-cli-CEm6ENzh.js → nodes-cli-BzNwotgj.js} +23 -23
- package/dist/{nodes-screen-DO6BNCQ6.js → nodes-screen-Brwiveoh.js} +8 -8
- package/dist/{note-Dq9MhE7Z.js → note-D-rFqUUL.js} +2 -2
- package/dist/{npm-pack-install-B__b0nDK.js → npm-pack-install-BwupN_XV.js} +23 -23
- package/dist/{npm-resolution-2lzpgd44.js → npm-resolution-DoQ0TbSm.js} +5 -5
- package/dist/{oauth-tls-preflight-CzOK4dkk.js → oauth-tls-preflight-CU1ceznS.js} +1 -1
- package/dist/{onboard-channels-CDVGqsGH.js → onboard-channels-aStIhqMG.js} +24 -24
- package/dist/{onboard-custom-BJe8lC0m.js → onboard-custom-CF-Qyb3Y.js} +4 -4
- package/dist/{onboard-helpers-ByS2aPrW.js → onboard-helpers-Bz91Pf6D.js} +13 -13
- package/dist/{onboard-hooks-ColglUdK.js → onboard-hooks-CP5ICg3d.js} +6 -6
- package/dist/{onboard-remote-CATwWYLS.js → onboard-remote-DkBLTgQh.js} +5 -5
- package/dist/{onboard-skills-CmLqdEyd.js → onboard-skills-BdbiUQFJ.js} +4 -4
- package/dist/{onboard-_LkcuZt4.js → onboard-uXr7A8A7.js} +11 -11
- package/dist/{onboarding-Z7sHNPIN.js → onboarding-CHVuwQW-.js} +18 -18
- package/dist/{onboarding.finalize-B2oQRJVj.js → onboarding.finalize-D4_usXNq.js} +115 -115
- package/dist/{onboarding.gateway-config-isEZPjpx.js → onboarding.gateway-config-DKqp9L2Q.js} +21 -21
- package/dist/{onboarding.secret-input--lcWBs-r.js → onboarding.secret-input-Bly8kI9z.js} +1 -1
- package/dist/{openai-model-default-BHLjGfhz.js → openai-model-default-hQ_Lz4xl.js} +2 -2
- package/dist/{openclaw-root-B6Tk0FH8.js → openclaw-root-CvJ5CJns.js} +2 -2
- package/dist/{operator-commands-WFKXbJHh.js → operator-commands-1PttwYpR.js} +6 -6
- package/dist/{outbound-attachment-BXAhY7Q6.js → outbound-attachment-BJq1brbB.js} +2 -2
- package/dist/{outbound-attachment-BbJWA7EA.js → outbound-attachment-DK190u8V.js} +2 -2
- package/dist/{outbound-message-hooks-_I696mNI.js → outbound-message-hooks-BvKzCtP_.js} +5 -5
- package/dist/{outbound-message-hooks-CjfNIFcN.js → outbound-message-hooks-Dl2zci3u.js} +5 -5
- package/dist/{pairing-cli-dhBxo6Vw.js → pairing-cli-CjvOW_Qy.js} +10 -10
- package/dist/{pairing-labels-BDuNTDsa.js → pairing-labels-BSl8PmyI.js} +1 -1
- package/dist/{pairing-store-ZXK7b5SG.js → pairing-store-BbBjVYYR.js} +4 -4
- package/dist/{path-alias-guards-L34PKmdW.js → path-alias-guards-DhwCAYKX.js} +3 -3
- package/dist/{path-alias-guards-BV6CR8H3.js → path-alias-guards-nWrE5acE.js} +1 -1
- package/dist/{path-safety-DHLkivTI.js → path-safety-Dibh-nnA.js} +1 -1
- package/dist/{pi-embedded-D6Ti_RiY.js → pi-embedded-1pY41iFz.js} +267 -267
- package/dist/{pi-embedded-BzjQS2tl.js → pi-embedded-BAKd4NmP.js} +18 -18
- package/dist/{pi-embedded-helpers--xcGBKr8.js → pi-embedded-helpers-BbOp_MHS.js} +6 -6
- package/dist/{pi-embedded-recovery-adapter-Cct1moq2.js → pi-embedded-recovery-adapter-mI-4XOPi.js} +37 -37
- package/dist/{pi-embedded-utils-Bqo7G8Hn.js → pi-embedded-utils-Df8_gFa-.js} +2 -2
- package/dist/{pi-model-discovery-Rjo2hv2p.js → pi-model-discovery-BWXqga5N.js} +1 -1
- package/dist/{pi-model-discovery-PH-bhX7g.js → pi-model-discovery-CusLASy5.js} +7 -7
- package/dist/{pid-alive-TVJ4mVal.js → pid-alive-DIe5jzmE.js} +1 -1
- package/dist/{plugin-auto-enable-CbW6trDK.js → plugin-auto-enable-BtVVoq7k.js} +2 -2
- package/dist/{plugin-owned-work-recovery-adapter-CStAW3lt.js → plugin-owned-work-recovery-adapter-Civ7pCIM.js} +7 -7
- package/dist/{plugin-registry-BPGjlX1-.js → plugin-registry-B9Gdebb5.js} +4 -4
- package/dist/plugin-sdk/{agent-scope-Brtnf-qo.js → agent-scope-DsdTj4Lw.js} +1 -1
- package/dist/plugin-sdk/agent-turn-execute-B7OZd3j0.js +53 -0
- package/dist/plugin-sdk/{agent-turn-runner-BoyCp6a7.js → agent-turn-runner-DFx8RFgs.js} +7 -7
- package/dist/plugin-sdk/{api-key-rotation-rNPxdoXy.js → api-key-rotation-DLFDIQvI.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-7GBWBtz1.js → audio-preflight-BuvLfTSs.js} +18 -18
- package/dist/plugin-sdk/{audio-transcription-runner-Dh6ZjtWU.js → audio-transcription-runner-DVeHis5y.js} +10 -10
- package/dist/plugin-sdk/{auth-profiles-C9WuWuhF.js → auth-profiles-DWv_drRN.js} +3 -3
- package/dist/plugin-sdk/{chat-content-CLCeI_Qk.js → chat-content-CpswkXNb.js} +14 -14
- package/dist/{chrome-D-DfD0Cv.js → plugin-sdk/chrome-3OYkv183.js} +7 -7
- package/dist/plugin-sdk/{chunk-cBcZnYwM.js → chunk-BzqRmzIt.js} +4 -4
- package/dist/plugin-sdk/{command-queue-7UljN6ld.js → command-queue-CN4gqnUj.js} +2 -2
- package/dist/plugin-sdk/{commands-registry-D2pMVn_S.js → commands-registry-Bdwwpat-.js} +3 -3
- package/dist/plugin-sdk/deliver-B5KEZCZc.js +30 -0
- package/dist/plugin-sdk/{deliver-Bg_r4acr.js → deliver-hk3L8q2Q.js} +13 -13
- package/dist/plugin-sdk/{diagnostic-Cr-CoLa3.js → diagnostic-CEwjaZ_7.js} +5 -5
- package/dist/plugin-sdk/{diagnostic-session-state-DX8FyVQw.js → diagnostic-session-state-BzWdoxLm.js} +1 -1
- package/dist/plugin-sdk/{errors-D358LwuI.js → errors-CsbG_v7K.js} +1 -1
- package/dist/plugin-sdk/{fetch-Be4fqzal.js → fetch-DBno66KN.js} +1 -1
- package/dist/plugin-sdk/{fetch-ZGQKpqWb.js → fetch-WGWEe3le.js} +6 -6
- package/dist/plugin-sdk/{fetch-guard-BKTJU-gg.js → fetch-guard-A8GwiDhx.js} +2 -2
- package/dist/plugin-sdk/{fs-safe-B3AzvZ4l.js → fs-safe-1aioFv3e.js} +3 -3
- package/dist/plugin-sdk/{inbound-context-BtSlo1sB.js → inbound-context-Bxf_1vgP.js} +1 -1
- package/dist/plugin-sdk/{ir-B4yx0AL3.js → ir-D_W-MQYl.js} +4 -4
- package/dist/plugin-sdk/{json-files-B__As2nb.js → json-files-BnqU_vp9.js} +6 -6
- package/dist/plugin-sdk/manager-B_wRtuCz.js +14 -0
- package/dist/plugin-sdk/{manager-BINTVC6-.js → manager-UVkpOLce.js} +7 -7
- package/dist/plugin-sdk/{markdown-tables-DFUNbiGy.js → markdown-tables-DN5kZ7HX.js} +3 -3
- package/dist/plugin-sdk/{monitor-Cv-Hb6Vg.js → monitor-1WWBQbrJ.js} +88 -88
- package/dist/plugin-sdk/{outbound-attachment-DRUsY_P3.js → outbound-attachment-D2FAxmw-.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-CRi90QdZ.js → path-alias-guards-BaV88b3G.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-DpiYKs_-.js → pi-model-discovery-eQO5jtHE.js} +2 -2
- package/dist/plugin-sdk/provider-dispatcher-CIuwPWhR.js +53 -0
- package/dist/plugin-sdk/{proxy-env-CAAaD_vE.js → proxy-env-iizeE-yn.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-DF_oDAcU.js → pw-ai-RkUVP2CG.js} +9 -9
- package/dist/plugin-sdk/{qmd-manager-DxXmjvMl.js → qmd-manager-DtWRq-3E.js} +8 -8
- package/dist/plugin-sdk/{qmd-scope-mVSXoI81.js → qmd-scope-hKKHM7ur.js} +1 -1
- package/dist/plugin-sdk/{query-expansion-Bu7AUpJ5.js → query-expansion-BF9IjXa5.js} +2 -2
- package/dist/plugin-sdk/{recorder-BsamU-hC.js → recorder-EjxEn6z5.js} +2 -2
- package/dist/plugin-sdk/{redact-Lv3jVFd_.js → redact-CuefNlXl.js} +1 -1
- package/dist/plugin-sdk/{registry-CSJhdmW7.js → registry-B-PTnKXn.js} +6 -6
- package/dist/plugin-sdk/replies-BWD2mqj4.js +24 -0
- package/dist/plugin-sdk/{replies-CFNkUmLR.js → replies-CgjY5QeJ.js} +5 -5
- package/dist/plugin-sdk/{reply-prefix-DNyziUbc.js → reply-prefix-B_4F5prZ.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-CBCLd9yp.js → resolve-route-BHhFfPZt.js} +4 -4
- package/dist/plugin-sdk/{send-b1bp0W-q.js → send-BCEdvryY.js} +8 -8
- package/dist/plugin-sdk/{send-kEZiGg40.js → send-BJGiPB1S.js} +8 -8
- package/dist/plugin-sdk/send-C6pt4yW6.js +21 -0
- package/dist/plugin-sdk/{send-DCt-5Eqo.js → send-CFy9VJtY.js} +6 -6
- package/dist/plugin-sdk/{send-Dx8aO_vF.js → send-CIwbHo3j.js} +16 -16
- package/dist/plugin-sdk/{send-1zs5bgjT.js → send-Ct68W7Yb.js} +7 -7
- package/dist/plugin-sdk/send-MGm8Xvbs.js +22 -0
- package/dist/plugin-sdk/send-WNRxCcA_.js +20 -0
- package/dist/plugin-sdk/{session-context-B4geQCsj.js → session-context-CMK0kc4L.js} +4 -4
- package/dist/plugin-sdk/{session-meta-cugffpHm.js → session-meta-CnQldSIv.js} +2 -2
- package/dist/plugin-sdk/{sessions-Dx1DxBM0.js → sessions-Bi3Stvmk.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-BIbJBws5.js → skill-commands-B-RjcEg8.js} +5 -5
- package/dist/plugin-sdk/{store-CP7sxsrB.js → store-BS62UMsC.js} +2 -2
- package/dist/plugin-sdk/subagent-registry-CWWUdAWI.js +53 -0
- package/dist/plugin-sdk/{subsystem-BRH2eiRx.js → subsystem-DbM6sYsb.js} +4 -4
- package/dist/plugin-sdk/{tables-C-7zslmS.js → tables-rlu-3LoD.js} +1 -1
- package/dist/plugin-sdk/testing.js +46 -46
- package/dist/plugin-sdk/{tokens-DEiV8tMG.js → tokens-DnxgKy4h.js} +1 -1
- package/dist/plugin-sdk/{tool-loop-detection-DnYfACQq.js → tool-loop-detection-CvzazEft.js} +1 -1
- package/dist/plugin-sdk/{user-run-recording-Cx-DPR7Y.js → user-run-recording-CuHcEoPI.js} +3 -3
- package/dist/{plugins-cli-B3yDmnzB.js → plugins-cli-xEbYlD1N.js} +110 -110
- package/dist/{ports-CbxaZ4JR.js → ports-DkQ0JgDq.js} +2 -2
- package/dist/{ports-CbjXbpjb.js → ports-R8I-Rd2p.js} +3 -3
- package/dist/{program-CiwRqh1J.js → program-Rzncx3aZ.js} +106 -106
- package/dist/{progress-80iGSJGv.js → progress-DGJz2cvq.js} +2 -2
- package/dist/{prompt-select-styled-Ds_J2iyU.js → prompt-select-styled-BeWIYKDx.js} +48 -48
- package/dist/{prompt-style-DUK2H9pQ.js → prompt-style-CevZQqqE.js} +1 -1
- package/dist/{provider-auth-helpers-C20ZUFM2.js → provider-auth-helpers-CLBGTBnJ.js} +6 -6
- package/dist/{proxy-env-DXcKRnns.js → proxy-env-DrmTb0QW.js} +1 -1
- package/dist/{proxy-env-BcMrDxNo.js → proxy-env-t-re7bCo.js} +1 -1
- package/dist/{push-apns-DspwiDEu.js → push-apns-CcZhsDRS.js} +10 -10
- package/dist/{pw-ai-ByUzz5o2.js → pw-ai-6cOpjyxA.js} +13 -13
- package/dist/{pw-ai-qlENNDHC.js → pw-ai-CPIjXEgJ.js} +1 -1
- package/dist/{pw-ai-BH-VHtsR.js → pw-ai-h0Uxwko3.js} +18 -18
- package/dist/{qmd-manager-CPPURYfg.js → qmd-manager-BYC9bX-E.js} +12 -12
- package/dist/{qmd-manager-JUjGk3hv.js → qmd-manager-DR95ckLZ.js} +25 -25
- package/dist/{qmd-scope-dd_YbPG-.js → qmd-scope-D6tMcgqR.js} +1 -1
- package/dist/{qmd-scope-bewl8Eiz.js → qmd-scope-DGZXz9jW.js} +1 -1
- package/dist/{qr-cli-Bk-iHfQo.js → qr-cli-K0UQq59w.js} +9 -9
- package/dist/{query-expansion-0S2l-J2-.js → query-expansion-CnQI0IeV.js} +13 -13
- package/dist/{query-expansion-BzoTldVy.js → query-expansion-DtX8mWw8.js} +10 -10
- package/dist/{reconcile-bundled-DM4QcNVH.js → reconcile-bundled-V0NDG76P.js} +3 -3
- package/dist/{recorder-CrrhLZt5.js → recorder-B7dhxQ62.js} +2 -2
- package/dist/{recorder-CLU0QuFV.js → recorder-C5MQyLQu.js} +2 -2
- package/dist/{recovery-adapter-CjmLDOyV.js → recovery-adapter-BRrpxylo.js} +2 -2
- package/dist/{recovery-adapter-ye4l6Gn4.js → recovery-adapter-C1kHnt9q.js} +3 -3
- package/dist/{recovery-adapter-ipXNpK0H.js → recovery-adapter-D14MlfbA.js} +7 -7
- package/dist/{recovery-prompt-Bmmt8OXc.js → recovery-prompt-BEH6XjKs.js} +1 -1
- package/dist/{redact-BkE4uRXu.js → redact-CysJDryP.js} +1 -1
- package/dist/{redact-snapshot-46g6fP3z.js → redact-snapshot-Dr2xSc0p.js} +2 -2
- package/dist/{register.agent-BAgBhHHu.js → register.agent-C5VjXiOa.js} +121 -121
- package/dist/register.configure-BrZHLfY5.js +169 -0
- package/dist/{register.maintenance-DZSlUCjt.js → register.maintenance-CRkCaoyK.js} +129 -129
- package/dist/{register.message-CmwWkv0S.js → register.message-T_8nxRk5.js} +100 -100
- package/dist/{register.onboard-D2FYzcez.js → register.onboard-V55Y2Ubu.js} +26 -26
- package/dist/{register.setup-Dviebdoo.js → register.setup-CADjhLHK.js} +29 -29
- package/dist/{register.status-health-sessions-ShjYv_Uh.js → register.status-health-sessions-DdVD0IOM.js} +119 -119
- package/dist/{register.subclis-DJxVoTQj.js → register.subclis-xNwfLrGG.js} +34 -34
- package/dist/{replies-j6q2EArA.js → replies-CP8xbTSR.js} +5 -5
- package/dist/{replies-DxPPKLeJ.js → replies-t1yaLy4q.js} +5 -5
- package/dist/{reply-directives-B_4oA3B0.js → reply-directives-De0PRN70.js} +2 -2
- package/dist/{reply-prefix-KAeJzNvt.js → reply-prefix-B0ufPLD2.js} +1 -1
- package/dist/{reply-prefix-BCu_i91I.js → reply-prefix-C7r81KLS.js} +1 -1
- package/dist/{reset-CDG1YZWx.js → reset-DxYrusrF.js} +1 -1
- package/dist/{resolve-route-WUZ7lH6L.js → resolve-route-BvD1w4_v.js} +4 -4
- package/dist/{resolve-route-IeN1DK4w.js → resolve-route-CZXzecu6.js} +5 -5
- package/dist/{rpc-C7VnW-Aw.js → rpc-Bg0RuGsL.js} +3 -3
- package/dist/{run-main-CnNc7DLd.js → run-main-C-PQ_TDh.js} +119 -119
- package/dist/{runs-0PYx5aDJ.js → runs-DzlzC2_b.js} +7 -7
- package/dist/{runtime-B1z-tYeF.js → runtime-DxtfUxa-.js} +4 -4
- package/dist/{runtime-config-Dm2RpLJ7.js → runtime-config-DZ4anlFD.js} +1 -1
- package/dist/{runtime-config-collectors-Chqse-1v.js → runtime-config-collectors-rhm6uhD8.js} +1 -1
- package/dist/{runtime-guard-BGWl62dI.js → runtime-guard-7e_ZRPFH.js} +1 -1
- package/dist/{sandbox-DSs8pONL.js → sandbox-BcT2OU_g.js} +21 -21
- package/dist/{sandbox-cli-X1PaKHUO.js → sandbox-cli-Cghszshw.js} +33 -33
- package/dist/{secrets-cli-D1DpG6VH.js → secrets-cli-2cyObDEq.js} +16 -16
- package/dist/{security-cli-ZmvFe4nX.js → security-cli-y5Ln-Bce.js} +47 -47
- package/dist/{send-DizMtGn_.js → send-36dNynVs.js} +7 -7
- package/dist/{send-lY0a6iA2.js → send-4WdiWuFu.js} +8 -8
- package/dist/{send-CFG2EYja.js → send-BZv91SjC.js} +6 -6
- package/dist/{send-0JKFG0wR.js → send-CFvOM8pI.js} +6 -6
- package/dist/{send-BPuhxPvx.js → send-CVaGAWEm.js} +6 -6
- package/dist/{send-80rMjd6V.js → send-CjR30q4U.js} +8 -8
- package/dist/{send-S06NYAWt.js → send-D1V_gt-x.js} +13 -13
- package/dist/{send-D1aXT71a.js → send-bmlVFiBl.js} +7 -7
- package/dist/{server-B_-KxUi3.js → server-DvHjKPLj.js} +24 -24
- package/dist/{server-context-D_ZTBjWX.js → server-context-DXaMid9A.js} +12 -12
- package/dist/{server-lifecycle-CAXoy64R.js → server-lifecycle-BHXiQH6m.js} +3 -3
- package/dist/{server-middleware-BxKu1j_s.js → server-middleware-CaVc3KiU.js} +1 -1
- package/dist/{server-node-events-3XEsy92y.js → server-node-events-D_Ue3RLX.js} +100 -100
- package/dist/{service-DMkBvr4B.js → service-DoOh34VG.js} +15 -15
- package/dist/{session-consumer-agents-CBqraSzI.js → session-consumer-agents-Zo97FAeD.js} +1 -1
- package/dist/{session-consumer-claim-sweep-AZ5o8Cu-.js → session-consumer-claim-sweep-xufX6DVl.js} +9 -9
- package/dist/{session-key-BRw3GFxY.js → session-key-Cr27HfX5.js} +1 -1
- package/dist/{session-meta-BjRAI6ON.js → session-meta-BeqTuIFU.js} +1 -1
- package/dist/{session-meta-WRN3ZcJ5.js → session-meta-wyuckoIK.js} +1 -1
- package/dist/{session-storage-7cXTEQfZ.js → session-storage-CwLPwLoF.js} +22 -22
- package/dist/{session-storage-owner-BLPjnobT.js → session-storage-owner-D0BMYGR6.js} +53 -53
- package/dist/{session-store-targets-i0Ss9Rbv.js → session-store-targets-hup1YSx3.js} +3 -3
- package/dist/{session-utils-Btoq903T.js → session-utils-BsJs6MoS.js} +9 -9
- package/dist/{sessions-B6iaKddN.js → sessions-BjSGNjb0.js} +5 -5
- package/dist/{sessions-Dp4oQDh2.js → sessions-CXVIRQ7I.js} +6 -6
- package/dist/{sessions-DPV-OS7q.js → sessions-D5-WnU1c.js} +5 -5
- package/dist/{sessions-Bi3UGKUO.js → sessions-DQ3diYco.js} +17 -17
- package/dist/{sessions-claims-status-Dhd9Pthy.js → sessions-claims-status-BIYvHBRD.js} +11 -11
- package/dist/{sessions-maintenance-core-C2cCpUiU.js → sessions-maintenance-core-CmawGRLz.js} +8 -8
- package/dist/{setup-helpers-zG3DfqLd.js → setup-helpers-BQ-rg8A3.js} +1 -1
- package/dist/{shared-B32sbGiP.js → shared-CN5xidM6.js} +4 -4
- package/dist/{shared-COhRUP1S.js → shared-DCN12ugV.js} +2 -2
- package/dist/{skill-commands-BG0ravVA.js → skill-commands-CcrQquVr.js} +8 -8
- package/dist/{skill-commands-BktltILY.js → skill-commands-DKmd3uhq.js} +7 -7
- package/dist/{skill-scanner-ubz0B8p_.js → skill-scanner-YQwX3yC-.js} +7 -7
- package/dist/{skills-cli-DE9fB_sx.js → skills-cli-mRBgNuUB.js} +9 -9
- package/dist/{skills-install-Cu_sfOVw.js → skills-install-B5X0Cyhn.js} +9 -9
- package/dist/{skills-CWQC3bQU.js → skills-rshN3U9G.js} +6 -6
- package/dist/{skills-status--U7Dyunf.js → skills-status-C40ecVhY.js} +3 -3
- package/dist/{status-CCetLhy5.js → status-D-NG9OFK.js} +49 -49
- package/dist/{status.update-CHNp32m-.js → status.update-BjR63JWs.js} +2 -2
- package/dist/{storage-config-CS0-6wW6.js → storage-config-BJj76p6F.js} +4 -4
- package/dist/{store-ccSeveJ0.js → store-BKtDaCRf.js} +7 -7
- package/dist/{store-BXWb__DD.js → store-DniD8E6a.js} +7 -7
- package/dist/{subsystem-BNf8H-Zm.js → subsystem-xTuYkxuQ.js} +1 -1
- package/dist/{supervisor-RBm1KDN1.js → supervisor-CbcownOj.js} +2 -2
- package/dist/{system-cli-YRe6nHya.js → system-cli-CqiLRr8j.js} +13 -13
- package/dist/{system-run-command-CtzUrDfp.js → system-run-command-DmwSJZGF.js} +2 -2
- package/dist/{systemd-CyRDQg6V.js → systemd-DCrSOh9E.js} +11 -11
- package/dist/{systemd-hints-CPEnXHmj.js → systemd-hints-Dc0OitcD.js} +9 -9
- package/dist/{systemd-linger-AXTvmw5z.js → systemd-linger-j9L7X6dA.js} +2 -2
- package/dist/{table-BRTxbR4E.js → table-Buk61GwP.js} +2 -2
- package/dist/{tables-BhzelQWA.js → tables-B62PgWcr.js} +1 -1
- package/dist/{tables-CBpS5G91.js → tables-BbmkAuhA.js} +1 -1
- package/dist/{tailnet-CBZAvwAf.js → tailnet-B5JdDATD.js} +1 -1
- package/dist/{tailscale-IMHmOQwv.js → tailscale-BiCf3X3Y.js} +2 -2
- package/dist/{task-pipeline-boot-BqE_GrmQ.js → task-pipeline-boot-DgTg-CLO.js} +100 -100
- package/dist/{task-runlog-retention-v6UWCQjX.js → task-runlog-retention-Cq2OgFdi.js} +5 -5
- package/dist/{tasks-B4CFmiA3.js → tasks-B8WGpUhG.js} +11 -11
- package/dist/{tokens-Q7TMdIpT.js → tokens-C2ll8wSq.js} +1 -1
- package/dist/{tokens-B0SYKifB.js → tokens-D5eYPE3_.js} +1 -1
- package/dist/{tool-display-CjfVgl4p.js → tool-display-BuSkjyOX.js} +1 -1
- package/dist/{tool-loop-detection-CVIDnpv_.js → tool-loop-detection-B0Jj6y2H.js} +2 -2
- package/dist/{tool-loop-detection--ScllGh1.js → tool-loop-detection-DcldeAQA.js} +2 -2
- package/dist/{trash-DhfDhVld.js → trash-D8OVe313.js} +3 -3
- package/dist/{tui-BtDuMK-Q.js → tui-Bbgsj5cD.js} +9 -9
- package/dist/{tui-cli-AAdDdzBF.js → tui-cli-BB3hPnig.js} +35 -35
- package/dist/{update-MKP9QOUt.js → update-OC3VeAt9.js} +3 -3
- package/dist/{update-cli-BSA_q7RE.js → update-cli-DqM1XIf_.js} +139 -139
- package/dist/{update-runner-BMqGHvjP.js → update-runner-CtQqJO0C.js} +18 -18
- package/dist/{user-run-recording-DNsWtMOn.js → user-run-recording-COpooN64.js} +2 -2
- package/dist/{user-run-recording-Cw29-tG1.js → user-run-recording-DrY68KAf.js} +2 -2
- package/dist/{validation-cli-VaCU6by-.js → validation-cli-CdS1nA-4.js} +99 -99
- package/dist/{web-cli-Dp96CkEW.js → web-cli-DvWcPGwe.js} +3 -3
- package/dist/{webhooks-cli--2FyIwfR.js → webhooks-cli-VMJNe3gx.js} +10 -10
- package/dist/{widearea-dns-BhBfoR1S.js → widearea-dns-CvnQrk1m.js} +1 -1
- package/dist/{with-timeout-BbJQtRIl.js → with-timeout-DG_Ef3S1.js} +6 -6
- package/dist/{workspace-C4JU6kgP.js → workspace-C8NxbJFT.js} +2 -2
- package/dist/{workspace-dirs-DBNKIvKX.js → workspace-dirs-B1dGJTd4.js} +1 -1
- package/dist/{workspace-D8z8s1Xz.js → workspace-xnzx7wEV.js} +26 -26
- package/dist/{ws-BafnkIRl.js → ws-Dnz-ugxp.js} +2 -2
- package/dist/{wsl-CG9o9v6x.js → wsl-Bm8bcioC.js} +2 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/anthropic/package.json +1 -1
- package/extensions/bifrost/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/deepgram/package.json +1 -1
- package/extensions/deepinfra/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diffs/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/dream-cycle/package.json +1 -1
- package/extensions/elevenlabs/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/gemini-search/package.json +1 -1
- package/extensions/google/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/grok-search/package.json +1 -1
- package/extensions/groq/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/kimi-search/package.json +1 -1
- package/extensions/kokoro/package.json +1 -1
- package/extensions/learning-core/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +1 -1
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/mistral/package.json +1 -1
- package/extensions/moonshot/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +1 -1
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +1 -1
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai/package.json +1 -1
- package/extensions/openai-realtime/package.json +1 -1
- package/extensions/openrouter/package.json +1 -1
- package/extensions/perplexity-search/package.json +1 -1
- package/extensions/searxng-search/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +1 -1
- package/extensions/twitch/package.json +1 -1
- package/extensions/ui-surfaces/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +1 -1
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zai/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +1 -1
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +1 -1
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/clawbot-cli-D1k1DpEc.js +0 -31
- package/dist/cli-Dc-MpdqR.js +0 -165
- package/dist/github-copilot-token-DrVydgnY.js +0 -106
- package/dist/paths-BIDPYPVC.js +0 -233
- package/dist/plugin-sdk/agent-turn-execute-UxpRMk9j.js +0 -53
- package/dist/plugin-sdk/deliver-CM8QDSXe.js +0 -30
- package/dist/plugin-sdk/manager-DHw8x1pr.js +0 -14
- package/dist/plugin-sdk/provider-dispatcher-B7p6f3-i.js +0 -53
- package/dist/plugin-sdk/replies-Djswi7iH.js +0 -24
- package/dist/plugin-sdk/send-CTz3VFmd.js +0 -21
- package/dist/plugin-sdk/send-DsxMWGTy.js +0 -22
- package/dist/plugin-sdk/send-RHWHegWE.js +0 -20
- package/dist/plugin-sdk/subagent-registry-Ck6o6MPJ.js +0 -53
- package/dist/register.configure-zu159EnI.js +0 -169
- package/dist/subsystem-BOg9wqSC.js +0 -2777
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { X as isPathInside, Y as isNotFoundPathError } from "./globals-
|
|
2
|
-
import { a as openWritableFileWithinRoot, t as SafeOpenError } from "./fs-safe-
|
|
3
|
-
import { n as resolveSafeBaseDir } from "./path-safety-
|
|
1
|
+
import { X as isPathInside, Y as isNotFoundPathError } from "./globals-3lUHnZas.js";
|
|
2
|
+
import { a as openWritableFileWithinRoot, t as SafeOpenError } from "./fs-safe-sWugzmbo.js";
|
|
3
|
+
import { n as resolveSafeBaseDir } from "./path-safety-Dibh-nnA.js";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import fsPromises from "node:fs/promises";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
8
8
|
import { Readable, Transform } from "node:stream";
|
|
@@ -78,9 +78,9 @@ function resolveArchiveKind(filePath) {
|
|
|
78
78
|
async function resolvePackedRootDir(extractDir) {
|
|
79
79
|
const direct = path.join(extractDir, "package");
|
|
80
80
|
try {
|
|
81
|
-
if ((await
|
|
81
|
+
if ((await fsPromises.stat(direct)).isDirectory()) return direct;
|
|
82
82
|
} catch {}
|
|
83
|
-
const dirs = (await
|
|
83
|
+
const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
84
84
|
if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
|
|
85
85
|
const onlyDir = dirs[0];
|
|
86
86
|
if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
|
|
@@ -150,10 +150,10 @@ function symlinkTraversalError(originalPath) {
|
|
|
150
150
|
return new ArchiveSecurityError("destination-symlink-traversal", `${ERROR_ARCHIVE_ENTRY_TRAVERSES_SYMLINK}: ${originalPath}`);
|
|
151
151
|
}
|
|
152
152
|
async function assertDestinationDirReady(destDir) {
|
|
153
|
-
const stat = await
|
|
153
|
+
const stat = await fsPromises.lstat(destDir);
|
|
154
154
|
if (stat.isSymbolicLink()) throw new ArchiveSecurityError("destination-symlink", "archive destination is a symlink");
|
|
155
155
|
if (!stat.isDirectory()) throw new ArchiveSecurityError("destination-not-directory", "archive destination is not a directory");
|
|
156
|
-
return await
|
|
156
|
+
return await fsPromises.realpath(destDir);
|
|
157
157
|
}
|
|
158
158
|
async function assertNoSymlinkTraversal(params) {
|
|
159
159
|
const parts = params.relPath.split("/").filter(Boolean);
|
|
@@ -162,7 +162,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
162
162
|
current = path.join(current, part);
|
|
163
163
|
let stat;
|
|
164
164
|
try {
|
|
165
|
-
stat = await
|
|
165
|
+
stat = await fsPromises.lstat(current);
|
|
166
166
|
} catch (err) {
|
|
167
167
|
if (isNotFoundPathError(err)) continue;
|
|
168
168
|
throw err;
|
|
@@ -173,7 +173,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
173
173
|
async function assertResolvedInsideDestination(params) {
|
|
174
174
|
let resolved;
|
|
175
175
|
try {
|
|
176
|
-
resolved = await
|
|
176
|
+
resolved = await fsPromises.realpath(params.targetPath);
|
|
177
177
|
} catch (err) {
|
|
178
178
|
if (isNotFoundPathError(err)) return;
|
|
179
179
|
throw err;
|
|
@@ -196,12 +196,12 @@ async function openZipOutputFile(params) {
|
|
|
196
196
|
async function cleanupPartialRegularFile(filePath) {
|
|
197
197
|
let stat;
|
|
198
198
|
try {
|
|
199
|
-
stat = await
|
|
199
|
+
stat = await fsPromises.lstat(filePath);
|
|
200
200
|
} catch (err) {
|
|
201
201
|
if (isNotFoundPathError(err)) return;
|
|
202
202
|
throw err;
|
|
203
203
|
}
|
|
204
|
-
if (stat.isFile()) await
|
|
204
|
+
if (stat.isFile()) await fsPromises.unlink(filePath).catch(() => void 0);
|
|
205
205
|
}
|
|
206
206
|
async function readZipEntryStream(entry) {
|
|
207
207
|
if (typeof entry.nodeStream === "function") return entry.nodeStream();
|
|
@@ -229,7 +229,7 @@ async function prepareZipOutputPath(params) {
|
|
|
229
229
|
originalPath: params.originalPath
|
|
230
230
|
});
|
|
231
231
|
if (params.isDirectory) {
|
|
232
|
-
await
|
|
232
|
+
await fsPromises.mkdir(params.outPath, { recursive: true });
|
|
233
233
|
await assertResolvedInsideDestination({
|
|
234
234
|
destinationRealDir: params.destinationRealDir,
|
|
235
235
|
targetPath: params.outPath,
|
|
@@ -238,7 +238,7 @@ async function prepareZipOutputPath(params) {
|
|
|
238
238
|
return;
|
|
239
239
|
}
|
|
240
240
|
const parentDir = path.dirname(params.outPath);
|
|
241
|
-
await
|
|
241
|
+
await fsPromises.mkdir(parentDir, { recursive: true });
|
|
242
242
|
await assertResolvedInsideDestination({
|
|
243
243
|
destinationRealDir: params.destinationRealDir,
|
|
244
244
|
targetPath: parentDir,
|
|
@@ -261,7 +261,7 @@ async function writeZipFileEntry(params) {
|
|
|
261
261
|
try {
|
|
262
262
|
await pipeline(readable, createExtractBudgetTransform({ onChunkBytes: params.budget.addBytes }), writable);
|
|
263
263
|
} catch (err) {
|
|
264
|
-
if (opened.createdForWrite) await
|
|
264
|
+
if (opened.createdForWrite) await fsPromises.rm(opened.openedRealPath, { force: true }).catch(() => void 0);
|
|
265
265
|
else await cleanupPartialRegularFile(opened.openedRealPath).catch(() => void 0);
|
|
266
266
|
throw err;
|
|
267
267
|
} finally {
|
|
@@ -269,14 +269,14 @@ async function writeZipFileEntry(params) {
|
|
|
269
269
|
}
|
|
270
270
|
if (typeof params.entry.unixPermissions === "number") {
|
|
271
271
|
const mode = params.entry.unixPermissions & 511;
|
|
272
|
-
if (mode !== 0) await
|
|
272
|
+
if (mode !== 0) await fsPromises.chmod(opened.openedRealPath, mode).catch(() => void 0);
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
async function extractZip(params) {
|
|
276
276
|
const limits = resolveExtractLimits(params.limits);
|
|
277
277
|
const destinationRealDir = await assertDestinationDirReady(params.destDir);
|
|
278
|
-
if ((await
|
|
279
|
-
const buffer = await
|
|
278
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
279
|
+
const buffer = await fsPromises.readFile(params.archivePath);
|
|
280
280
|
const zip = await JSZip.loadAsync(buffer);
|
|
281
281
|
const entries = Object.values(zip.files);
|
|
282
282
|
const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
|
|
@@ -349,7 +349,7 @@ async function extractArchive(params) {
|
|
|
349
349
|
const label = kind === "zip" ? "extract zip" : "extract tar";
|
|
350
350
|
if (kind === "tar") {
|
|
351
351
|
const limits = resolveExtractLimits(params.limits);
|
|
352
|
-
if ((await
|
|
352
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
353
353
|
const checkTarEntrySafety = createTarEntrySafetyChecker({
|
|
354
354
|
rootDir: params.destDir,
|
|
355
355
|
stripComponents: params.stripComponents,
|
|
@@ -382,14 +382,14 @@ async function extractArchive(params) {
|
|
|
382
382
|
}
|
|
383
383
|
async function fileExists(filePath) {
|
|
384
384
|
try {
|
|
385
|
-
await
|
|
385
|
+
await fsPromises.stat(filePath);
|
|
386
386
|
return true;
|
|
387
387
|
} catch {
|
|
388
388
|
return false;
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
391
|
async function readJsonFile(filePath) {
|
|
392
|
-
const raw = await
|
|
392
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
393
393
|
return JSON.parse(raw);
|
|
394
394
|
}
|
|
395
395
|
|
|
@@ -433,13 +433,13 @@ async function assertCanonicalPathWithinBase(params) {
|
|
|
433
433
|
const baseDir = path.resolve(params.baseDir);
|
|
434
434
|
const candidatePath = path.resolve(params.candidatePath);
|
|
435
435
|
if (!isPathInside(baseDir, candidatePath)) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
436
|
-
const baseLstat = await
|
|
436
|
+
const baseLstat = await fsPromises.lstat(baseDir);
|
|
437
437
|
if (!baseLstat.isDirectory() || baseLstat.isSymbolicLink()) throw new Error(`Invalid ${params.boundaryLabel}: base directory must be a real directory`);
|
|
438
|
-
const baseRealPath = await
|
|
438
|
+
const baseRealPath = await fsPromises.realpath(baseDir);
|
|
439
439
|
const validateDirectory = async (dirPath) => {
|
|
440
|
-
const dirLstat = await
|
|
440
|
+
const dirLstat = await fsPromises.lstat(dirPath);
|
|
441
441
|
if (!dirLstat.isDirectory() || dirLstat.isSymbolicLink()) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
442
|
-
if (!isPathInside(baseRealPath, await
|
|
442
|
+
if (!isPathInside(baseRealPath, await fsPromises.realpath(dirPath))) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
443
443
|
};
|
|
444
444
|
try {
|
|
445
445
|
await validateDirectory(candidatePath);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { R as extensionUsesSkippedScannerPath, St as resolveUserPath, ct as CONFIG_DIR, z as isPathInside } from "./globals-
|
|
2
|
-
import { At as loadPluginManifest, jt as resolvePackageExtensionEntries, pt as checkPluginVersionCompat } from "./config-
|
|
1
|
+
import { R as extensionUsesSkippedScannerPath, St as resolveUserPath, ct as CONFIG_DIR, z as isPathInside } from "./globals-3lUHnZas.js";
|
|
2
|
+
import { At as loadPluginManifest, jt as resolvePackageExtensionEntries, pt as checkPluginVersionCompat } from "./config-D--rwfpd.js";
|
|
3
3
|
import { n as resolveHostVersionInfo } from "./version-D_9__Xw6.js";
|
|
4
|
-
import { C as validateRegistryNpmSpec } from "./skills-
|
|
5
|
-
import { c as writeFileFromPathWithinRoot } from "./fs-safe-
|
|
4
|
+
import { C as validateRegistryNpmSpec } from "./skills-rshN3U9G.js";
|
|
5
|
+
import { c as writeFileFromPathWithinRoot } from "./fs-safe-sWugzmbo.js";
|
|
6
6
|
import { n as docsSiteUrl } from "./docs-site-B8KujBhr.js";
|
|
7
|
-
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-
|
|
8
|
-
import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-
|
|
9
|
-
import { t as scanDirectoryWithSummary } from "./skill-scanner-
|
|
7
|
+
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-2eEPQsHT.js";
|
|
8
|
+
import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-BwupN_XV.js";
|
|
9
|
+
import { t as scanDirectoryWithSummary } from "./skill-scanner-YQwX3yC-.js";
|
|
10
10
|
import path from "node:path";
|
|
11
|
-
import
|
|
11
|
+
import fsPromises from "node:fs/promises";
|
|
12
12
|
|
|
13
13
|
//#region src/plugins/install.ts
|
|
14
14
|
const MISSING_EXTENSIONS_ERROR = "package.json missing openclaw.extensions; update the plugin package to include openclaw.extensions (for example [\"./dist/index.js\"]). See " + docsSiteUrl("users/help/troubleshooting#plugin-install-fails-with-missing-openclaw-extensions");
|
|
@@ -254,7 +254,7 @@ async function installPluginFromDir(params) {
|
|
|
254
254
|
ok: false,
|
|
255
255
|
error: `directory not found: ${dirPath}`
|
|
256
256
|
};
|
|
257
|
-
if (!(await
|
|
257
|
+
if (!(await fsPromises.stat(dirPath)).isDirectory()) return {
|
|
258
258
|
ok: false,
|
|
259
259
|
error: `not a directory: ${dirPath}`
|
|
260
260
|
};
|
|
@@ -271,7 +271,7 @@ async function installPluginFromFile(params) {
|
|
|
271
271
|
error: `file not found: ${filePath}`
|
|
272
272
|
};
|
|
273
273
|
const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
|
|
274
|
-
await
|
|
274
|
+
await fsPromises.mkdir(extensionsDir, { recursive: true });
|
|
275
275
|
const pluginId = path.basename(filePath, path.extname(filePath)) || "plugin";
|
|
276
276
|
const pluginIdError = validatePluginId(pluginId);
|
|
277
277
|
if (pluginIdError) return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { H as isIpv6Address, J as parseCanonicalIpAddress, R as isCanonicalDottedDecimalIPv4 } from "./config-
|
|
2
|
-
import { o as getTailnetHostname } from "./tailscale-
|
|
1
|
+
import { H as isIpv6Address, J as parseCanonicalIpAddress, R as isCanonicalDottedDecimalIPv4 } from "./config-D--rwfpd.js";
|
|
2
|
+
import { o as getTailnetHostname } from "./tailscale-BiCf3X3Y.js";
|
|
3
3
|
import { n as docsSiteUrl } from "./docs-site-B8KujBhr.js";
|
|
4
4
|
|
|
5
5
|
//#region src/gateway/gateway-config-prompts.shared.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { St as resolveUserPath, a as logVerbose, c as shouldLogVerbose } from "./globals-
|
|
2
|
-
import { s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
3
|
-
import { a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, p as kindFromMime, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-
|
|
4
|
-
import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia } from "./fetch-
|
|
5
|
-
import { a as chunkText } from "./chunk-
|
|
1
|
+
import { St as resolveUserPath, a as logVerbose, c as shouldLogVerbose } from "./globals-3lUHnZas.js";
|
|
2
|
+
import { s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-sWugzmbo.js";
|
|
3
|
+
import { a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, p as kindFromMime, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-C0np5f9V.js";
|
|
4
|
+
import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia } from "./fetch-CLk1nKmU.js";
|
|
5
|
+
import { a as chunkText } from "./chunk-DAmLsltN.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fsPromises from "node:fs/promises";
|
|
9
9
|
import MarkdownIt from "markdown-it";
|
|
10
10
|
|
|
11
11
|
//#region src/media/web-media.ts
|
|
@@ -36,7 +36,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
|
|
|
36
36
|
const roots = localRoots ?? getDefaultLocalRoots();
|
|
37
37
|
let resolved;
|
|
38
38
|
try {
|
|
39
|
-
resolved = await
|
|
39
|
+
resolved = await fsPromises.realpath(mediaPath);
|
|
40
40
|
} catch {
|
|
41
41
|
resolved = path.resolve(mediaPath);
|
|
42
42
|
}
|
|
@@ -53,7 +53,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
|
|
|
53
53
|
for (const root of roots) {
|
|
54
54
|
let resolvedRoot;
|
|
55
55
|
try {
|
|
56
|
-
resolvedRoot = await
|
|
56
|
+
resolvedRoot = await fsPromises.realpath(root);
|
|
57
57
|
} catch {
|
|
58
58
|
resolvedRoot = path.resolve(root);
|
|
59
59
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { f as logVerbose, h as shouldLogVerbose, st as resolveUserPath } from "./subsystem-
|
|
2
|
-
import { a as getDefaultMediaLocalRoots, c as convertHeicToJpeg, d as optimizeImageToPng, f as resizeToJpeg, m as extensionForMime, n as fetchRemoteMedia, p as detectMime, u as hasAlphaChannel, v as kindFromMime, x as maxBytesForKind } from "./fetch-
|
|
3
|
-
import { o as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
4
|
-
import { a as chunkText } from "./chunk-
|
|
1
|
+
import { f as logVerbose, h as shouldLogVerbose, st as resolveUserPath } from "./subsystem-DynBFcQj.js";
|
|
2
|
+
import { a as getDefaultMediaLocalRoots, c as convertHeicToJpeg, d as optimizeImageToPng, f as resizeToJpeg, m as extensionForMime, n as fetchRemoteMedia, p as detectMime, u as hasAlphaChannel, v as kindFromMime, x as maxBytesForKind } from "./fetch-BBi5dEoV.js";
|
|
3
|
+
import { o as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-CRbowDkj.js";
|
|
4
|
+
import { a as chunkText } from "./chunk-BRJHaAd6.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import fs from "node:fs/promises";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Ot as truncateUtf16Safe } from "./globals-
|
|
2
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
3
|
-
import { p as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-
|
|
1
|
+
import { Ot as truncateUtf16Safe } from "./globals-3lUHnZas.js";
|
|
2
|
+
import { t as createSubsystemLogger } from "./subsystem-xTuYkxuQ.js";
|
|
3
|
+
import { p as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-Cr27HfX5.js";
|
|
4
4
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-D2m6f_VQ.js";
|
|
5
5
|
import crypto, { randomUUID } from "node:crypto";
|
|
6
6
|
import { Cron } from "croner";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { m as normalizeSkillFilter } from "./agent-scope-
|
|
2
|
-
import { H as isPathInside, K as isDangerousHostEnvVarName, N as isPathInsideWithRealpath, Z as CONFIG_DIR, mt as resolvePreferredOpenClawTmpDir, st as resolveUserPath, t as createSubsystemLogger } from "./subsystem-
|
|
1
|
+
import { m as normalizeSkillFilter } from "./agent-scope-CoIdVzmg.js";
|
|
2
|
+
import { H as isPathInside, K as isDangerousHostEnvVarName, N as isPathInsideWithRealpath, Z as CONFIG_DIR, mt as resolvePreferredOpenClawTmpDir, st as resolveUserPath, t as createSubsystemLogger } from "./subsystem-DynBFcQj.js";
|
|
3
3
|
import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";
|
|
4
|
-
import { h as resolveOpenClawPackageRootSync } from "./workspace-
|
|
5
|
-
import { At as resolveMemorySlotDecision, Ot as normalizePluginsConfig, Sa as normalizeResolvedSecretInputString, kt as resolveEffectiveEnableState, wt as loadPluginManifestRegistry } from "./model-selection-
|
|
6
|
-
import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveOpenClawManifestInstall, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-
|
|
7
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
4
|
+
import { h as resolveOpenClawPackageRootSync } from "./workspace-xnzx7wEV.js";
|
|
5
|
+
import { At as resolveMemorySlotDecision, Ot as normalizePluginsConfig, Sa as normalizeResolvedSecretInputString, kt as resolveEffectiveEnableState, wt as loadPluginManifestRegistry } from "./model-selection-B7FYf8Fo.js";
|
|
6
|
+
import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveOpenClawManifestInstall, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-DQTIIgFI.js";
|
|
7
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-nWrE5acE.js";
|
|
8
8
|
import path from "node:path";
|
|
9
|
-
import
|
|
9
|
+
import syncFs from "node:fs";
|
|
10
10
|
import os from "node:os";
|
|
11
|
-
import fs
|
|
11
|
+
import fs from "node:fs/promises";
|
|
12
12
|
import { URL as URL$1, fileURLToPath } from "node:url";
|
|
13
13
|
import { randomUUID } from "node:crypto";
|
|
14
14
|
import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
|
|
@@ -545,13 +545,13 @@ function shortPath(value) {
|
|
|
545
545
|
//#region src/agents/skills/bundled-dir.ts
|
|
546
546
|
function looksLikeSkillsDir(dir) {
|
|
547
547
|
try {
|
|
548
|
-
const entries =
|
|
548
|
+
const entries = syncFs.readdirSync(dir, { withFileTypes: true });
|
|
549
549
|
for (const entry of entries) {
|
|
550
550
|
if (entry.name.startsWith(".")) continue;
|
|
551
551
|
const fullPath = path.join(dir, entry.name);
|
|
552
552
|
if (entry.isFile() && entry.name.endsWith(".md")) return true;
|
|
553
553
|
if (entry.isDirectory()) {
|
|
554
|
-
if (
|
|
554
|
+
if (syncFs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
557
|
} catch {
|
|
@@ -566,7 +566,7 @@ function resolveBundledSkillsDir(opts = {}) {
|
|
|
566
566
|
const execPath = opts.execPath ?? process.execPath;
|
|
567
567
|
const execDir = path.dirname(execPath);
|
|
568
568
|
const sibling = path.join(execDir, "skills");
|
|
569
|
-
if (
|
|
569
|
+
if (syncFs.existsSync(sibling)) return sibling;
|
|
570
570
|
} catch {}
|
|
571
571
|
try {
|
|
572
572
|
const moduleUrl = opts.moduleUrl ?? import.meta.url;
|
|
@@ -629,7 +629,7 @@ function resolvePluginSkillDirs(params) {
|
|
|
629
629
|
const trimmed = raw.trim();
|
|
630
630
|
if (!trimmed) continue;
|
|
631
631
|
const candidate = path.resolve(record.rootDir, trimmed);
|
|
632
|
-
if (!
|
|
632
|
+
if (!syncFs.existsSync(candidate)) {
|
|
633
633
|
log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
|
|
634
634
|
continue;
|
|
635
635
|
}
|
|
@@ -660,7 +660,7 @@ async function serializeByKey(key, task) {
|
|
|
660
660
|
|
|
661
661
|
//#endregion
|
|
662
662
|
//#region src/agents/skills/workspace.ts
|
|
663
|
-
const fsp =
|
|
663
|
+
const fsp = syncFs.promises;
|
|
664
664
|
const skillsLogger = createSubsystemLogger("skills");
|
|
665
665
|
const skillCommandDebugOnceState = resolveProcessScopedMap(Symbol.for("openclaw.agents.skills.workspace.skillCommandDebugOnce"));
|
|
666
666
|
const skillCommandDebugOnce = skillCommandDebugOnceState.get("value") ?? /* @__PURE__ */ new Set();
|
|
@@ -739,7 +739,7 @@ function resolveSkillsLimits(config) {
|
|
|
739
739
|
}
|
|
740
740
|
function listChildDirectories(dir) {
|
|
741
741
|
try {
|
|
742
|
-
const entries =
|
|
742
|
+
const entries = syncFs.readdirSync(dir, { withFileTypes: true });
|
|
743
743
|
const dirs = [];
|
|
744
744
|
for (const entry of entries) {
|
|
745
745
|
if (entry.name.startsWith(".")) continue;
|
|
@@ -750,7 +750,7 @@ function listChildDirectories(dir) {
|
|
|
750
750
|
continue;
|
|
751
751
|
}
|
|
752
752
|
if (entry.isSymbolicLink()) try {
|
|
753
|
-
if (
|
|
753
|
+
if (syncFs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
|
|
754
754
|
} catch {}
|
|
755
755
|
}
|
|
756
756
|
return dirs;
|
|
@@ -761,7 +761,7 @@ function listChildDirectories(dir) {
|
|
|
761
761
|
function resolveNestedSkillsRoot(dir, opts) {
|
|
762
762
|
const nested = path.join(dir, "skills");
|
|
763
763
|
try {
|
|
764
|
-
if (!
|
|
764
|
+
if (!syncFs.existsSync(nested) || !syncFs.statSync(nested).isDirectory()) return { baseDir: dir };
|
|
765
765
|
} catch {
|
|
766
766
|
return { baseDir: dir };
|
|
767
767
|
}
|
|
@@ -770,7 +770,7 @@ function resolveNestedSkillsRoot(dir, opts) {
|
|
|
770
770
|
const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
|
|
771
771
|
for (const name of toScan) {
|
|
772
772
|
const skillMd = path.join(nested, name, "SKILL.md");
|
|
773
|
-
if (
|
|
773
|
+
if (syncFs.existsSync(skillMd)) return {
|
|
774
774
|
baseDir: nested,
|
|
775
775
|
note: `Detected nested skills root at ${nested}`
|
|
776
776
|
};
|
|
@@ -790,9 +790,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
790
790
|
const loadSkills = (params) => {
|
|
791
791
|
const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
|
|
792
792
|
const rootSkillMd = path.join(baseDir, "SKILL.md");
|
|
793
|
-
if (
|
|
793
|
+
if (syncFs.existsSync(rootSkillMd)) {
|
|
794
794
|
try {
|
|
795
|
-
const size =
|
|
795
|
+
const size = syncFs.statSync(rootSkillMd).size;
|
|
796
796
|
if (size > limits.maxSkillFileBytes) {
|
|
797
797
|
skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
|
|
798
798
|
dir: baseDir,
|
|
@@ -831,9 +831,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
831
831
|
for (const name of limitedChildren) {
|
|
832
832
|
const skillDir = path.join(baseDir, name);
|
|
833
833
|
const skillMd = path.join(skillDir, "SKILL.md");
|
|
834
|
-
if (!
|
|
834
|
+
if (!syncFs.existsSync(skillMd)) continue;
|
|
835
835
|
try {
|
|
836
|
-
const size =
|
|
836
|
+
const size = syncFs.statSync(skillMd).size;
|
|
837
837
|
if (size > limits.maxSkillFileBytes) {
|
|
838
838
|
skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
|
|
839
839
|
skill: name,
|
|
@@ -901,7 +901,7 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
901
901
|
return Array.from(merged.values()).map((skill) => {
|
|
902
902
|
let frontmatter = {};
|
|
903
903
|
try {
|
|
904
|
-
frontmatter = parseFrontmatter(
|
|
904
|
+
frontmatter = parseFrontmatter(syncFs.readFileSync(skill.filePath, "utf-8"));
|
|
905
905
|
} catch {}
|
|
906
906
|
return {
|
|
907
907
|
skill,
|
|
@@ -1139,7 +1139,7 @@ function buildWorkspaceSkillCommandSpecs(workspaceDir, opts) {
|
|
|
1139
1139
|
//#region src/infra/json-files.ts
|
|
1140
1140
|
async function readJsonFile(filePath) {
|
|
1141
1141
|
try {
|
|
1142
|
-
const raw = await fs
|
|
1142
|
+
const raw = await fs.readFile(filePath, "utf8");
|
|
1143
1143
|
return JSON.parse(raw);
|
|
1144
1144
|
} catch {
|
|
1145
1145
|
return null;
|
|
@@ -1154,7 +1154,7 @@ async function writeJsonAtomic(filePath, value, options) {
|
|
|
1154
1154
|
}
|
|
1155
1155
|
async function chmodIfSupported(filePath, mode) {
|
|
1156
1156
|
try {
|
|
1157
|
-
await fs
|
|
1157
|
+
await fs.chmod(filePath, mode);
|
|
1158
1158
|
} catch (err) {
|
|
1159
1159
|
if (process.platform === "win32") return;
|
|
1160
1160
|
throw err;
|
|
@@ -1165,18 +1165,18 @@ async function writeTextAtomic(filePath, content, options) {
|
|
|
1165
1165
|
const payload = options?.appendTrailingNewline && !content.endsWith("\n") ? `${content}\n` : content;
|
|
1166
1166
|
const mkdirOptions = { recursive: true };
|
|
1167
1167
|
if (typeof options?.ensureDirMode === "number") mkdirOptions.mode = options.ensureDirMode;
|
|
1168
|
-
await fs
|
|
1168
|
+
await fs.mkdir(path.dirname(filePath), mkdirOptions);
|
|
1169
1169
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
1170
1170
|
try {
|
|
1171
|
-
await fs
|
|
1171
|
+
await fs.writeFile(tmp, payload, {
|
|
1172
1172
|
encoding: "utf8",
|
|
1173
1173
|
mode
|
|
1174
1174
|
});
|
|
1175
1175
|
await chmodIfSupported(tmp, mode);
|
|
1176
|
-
await fs
|
|
1176
|
+
await fs.rename(tmp, filePath);
|
|
1177
1177
|
await chmodIfSupported(filePath, mode);
|
|
1178
1178
|
} finally {
|
|
1179
|
-
await fs
|
|
1179
|
+
await fs.rm(tmp, { force: true }).catch(() => void 0);
|
|
1180
1180
|
}
|
|
1181
1181
|
}
|
|
1182
1182
|
function createAsyncLock() {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import
|
|
2
|
+
import fsPromises from "node:fs/promises";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
|
|
5
5
|
//#region src/infra/json-files.ts
|
|
6
6
|
async function readJsonFile(filePath) {
|
|
7
7
|
try {
|
|
8
|
-
const raw = await
|
|
8
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
9
9
|
return JSON.parse(raw);
|
|
10
10
|
} catch {
|
|
11
11
|
return null;
|
|
@@ -20,7 +20,7 @@ async function writeJsonAtomic(filePath, value, options) {
|
|
|
20
20
|
}
|
|
21
21
|
async function chmodIfSupported(filePath, mode) {
|
|
22
22
|
try {
|
|
23
|
-
await
|
|
23
|
+
await fsPromises.chmod(filePath, mode);
|
|
24
24
|
} catch (err) {
|
|
25
25
|
if (process.platform === "win32") return;
|
|
26
26
|
throw err;
|
|
@@ -31,18 +31,18 @@ async function writeTextAtomic(filePath, content, options) {
|
|
|
31
31
|
const payload = options?.appendTrailingNewline && !content.endsWith("\n") ? `${content}\n` : content;
|
|
32
32
|
const mkdirOptions = { recursive: true };
|
|
33
33
|
if (typeof options?.ensureDirMode === "number") mkdirOptions.mode = options.ensureDirMode;
|
|
34
|
-
await
|
|
34
|
+
await fsPromises.mkdir(path.dirname(filePath), mkdirOptions);
|
|
35
35
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
36
36
|
try {
|
|
37
|
-
await
|
|
37
|
+
await fsPromises.writeFile(tmp, payload, {
|
|
38
38
|
encoding: "utf8",
|
|
39
39
|
mode
|
|
40
40
|
});
|
|
41
41
|
await chmodIfSupported(tmp, mode);
|
|
42
|
-
await
|
|
42
|
+
await fsPromises.rename(tmp, filePath);
|
|
43
43
|
await chmodIfSupported(filePath, mode);
|
|
44
44
|
} finally {
|
|
45
|
-
await
|
|
45
|
+
await fsPromises.rm(tmp, { force: true }).catch(() => void 0);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
function createAsyncLock() {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Tt as shortenHomePath, d as colorize, f as isRich, g as getResolvedLoggerSettings, p as theme } from "./globals-
|
|
1
|
+
import { Tt as shortenHomePath, d as colorize, f as isRich, g as getResolvedLoggerSettings, p as theme } from "./globals-3lUHnZas.js";
|
|
2
2
|
import { d as resolveIsNixMode } from "./paths-BMo6kTge.js";
|
|
3
|
-
import { m as defaultRuntime } from "./subsystem-
|
|
4
|
-
import { c as loadConfig, u as readConfigFileSnapshot } from "./config-
|
|
3
|
+
import { m as defaultRuntime } from "./subsystem-xTuYkxuQ.js";
|
|
4
|
+
import { c as loadConfig, u as readConfigFileSnapshot } from "./config-D--rwfpd.js";
|
|
5
5
|
import { t as formatCliCommand } from "./command-format-DWAk9aIH.js";
|
|
6
|
-
import { t as resolveGatewayCredentialsFromConfig } from "./credentials-
|
|
6
|
+
import { t as resolveGatewayCredentialsFromConfig } from "./credentials-D2RfV9B5.js";
|
|
7
7
|
import { m as resolveGatewayWindowsTaskName, p as resolveGatewaySystemdServiceName, u as resolveGatewayLaunchAgentLabel } from "./constants-C6ozS4px.js";
|
|
8
|
-
import { t as isWSL } from "./wsl-
|
|
9
|
-
import { n as formatConfigIssueLines } from "./issue-format-
|
|
10
|
-
import { s as resolveGatewayLogPaths } from "./service-
|
|
11
|
-
import { r as isSystemdUserServiceAvailable } from "./systemd-
|
|
12
|
-
import { a as checkTokenDrift, n as renderSystemdUnavailableHints } from "./systemd-hints-
|
|
8
|
+
import { t as isWSL } from "./wsl-Bm8bcioC.js";
|
|
9
|
+
import { n as formatConfigIssueLines } from "./issue-format-DhAa1_iS.js";
|
|
10
|
+
import { s as resolveGatewayLogPaths } from "./service-DoOh34VG.js";
|
|
11
|
+
import { r as isSystemdUserServiceAvailable } from "./systemd-DCrSOh9E.js";
|
|
12
|
+
import { a as checkTokenDrift, n as renderSystemdUnavailableHints } from "./systemd-hints-Dc0OitcD.js";
|
|
13
13
|
import { t as parsePort } from "./parse-port-DnJYkByg.js";
|
|
14
14
|
import { Writable } from "node:stream";
|
|
15
15
|
|