@gguf/claw 2026.2.9 → 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.
- package/CHANGELOG.md +159 -0
- package/LICENSE +1 -1
- package/dist/{accounts-MyAvfCVH.js → accounts-54zZMYCo.js} +5 -2
- package/dist/{accounts-DbzMEfKN.js → accounts-Bvh0DFxS.js} +5 -2
- package/dist/{acp-cli-MZ3h1E1n.js → acp-cli-BslcOPdx.js} +146 -25
- package/dist/{acp-cli-DKJRTfwB.js → acp-cli-D6rk5cOh.js} +145 -24
- package/dist/{agent-whSJT2Lk.js → agent-C0yL70cy.js} +26 -20
- package/dist/{agent-c1QNeDmV.js → agent-DjZxytiC.js} +26 -20
- package/dist/{agent-scope-D3me2AZa.js → agent-scope-Bkr9fZtl.js} +31 -14
- package/dist/{agent-scope-Dp8sREli.js → agent-scope-DASgjz2_.js} +199 -14
- package/dist/{agent-scope-DnyDZ5RH.js → agent-scope-GYIs5dyU.js} +30 -13
- package/dist/{agent-scope-Dpav7C-i.js → agent-scope-okUOVjE5.js} +32 -11
- package/dist/audio-preflight-B0kLz-Ma.js +60 -0
- package/dist/audio-preflight-BCs_J33s.js +60 -0
- package/dist/audio-preflight-CTl2RCyF.js +71 -0
- package/dist/audio-preflight-MhF6YlAY.js +74 -0
- package/dist/{audit-BFYy1qSw.js → audit-BYfhZ7LA.js} +454 -31
- package/dist/{audit-Dn2cBl2x.js → audit-CfPZ_5Id.js} +452 -29
- package/dist/auth-9nTeB2Je.js +602 -0
- package/dist/auth-CLhyWwAU.js +593 -0
- package/dist/{auth-health-Cx5exPMV.js → auth-health-CWiLyzSr.js} +1 -1
- package/dist/{auth-health-DjT4fUpw.js → auth-health-qD4RND47.js} +1 -1
- package/dist/{auth-profiles-FJ3VY25a.js → auth-profiles-Cp9MtUdM.js} +353 -33
- package/dist/build-info.json +2 -2
- package/dist/bundled/boot-md/handler.js +33 -25
- package/dist/bundled/session-memory/handler.js +33 -22
- package/dist/{call-CD2IZCHT.js → call-CjEdFGAf.js} +7 -7
- package/dist/{call-CM25qgxz.js → call-DAfkvtVq.js} +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +7 -1
- package/dist/{channel-options-CremuJyh.js → channel-options-B8dPzlyO.js} +4 -4
- package/dist/{channel-options-D-JnJ4Ft.js → channel-options-Bq5IC5Tv.js} +12 -7
- package/dist/{channel-selection-DAHCVAX4.js → channel-selection-BaW1xXEa.js} +2 -2
- package/dist/{channel-selection-DPV9hvY8.js → channel-selection-dR0jCgTn.js} +2 -2
- package/dist/{channels-cli-6deHFr9t.js → channels-cli-hPo28hWS.js} +61 -56
- package/dist/{channels-cli-D3tKmhlt.js → channels-cli-zi3rO0jq.js} +62 -57
- package/dist/{channels-status-issues-BN1ICfdy.js → channels-status-issues-kb-M2Fi0.js} +1 -1
- package/dist/{channels-status-issues-DFhI_u0p.js → channels-status-issues-ketdwZun.js} +1 -1
- package/dist/{chrome-B2UjqY-9.js → chrome--Fe8F5Kf.js} +24 -12
- package/dist/{chrome-COabMr6f.js → chrome-BWeMtFGf.js} +24 -12
- package/dist/{chrome-CQd_MVOA.js → chrome-Bx24uq7B.js} +27 -15
- package/dist/{chrome-CxRJz4ZD.js → chrome-n_3rtK2c.js} +22 -11
- package/dist/{clack-prompter-BkNZ4Xdw.js → clack-prompter-B-tJmODa.js} +5 -5
- package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-DpuKn_Uy.js} +5 -5
- package/dist/cli/daemon-cli.js +8 -1
- package/dist/cli-9lwO6Ttx.js +94 -0
- package/dist/cli-CNNdyxPO.js +91 -0
- package/dist/{client-DMloFP_O.js → client-BhZjzrH2.js} +73 -9
- package/dist/{client-C0gQ7hrj.js → client-DyAxKXKY.js} +73 -9
- package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
- package/dist/{command-options-BQdH6qnK.js → command-options-BDV7Xgs-.js} +9 -4
- package/dist/{commands-BWHYcc83.js → commands-gOiRcfoU.js} +4 -4
- package/dist/{tui-formatters-BDP_71Xt.js → commands-registry-6NUFrejL.js} +6 -114
- package/dist/{tui-formatters-CIx4sCQO.js → commands-registry-DGgkLQ7A.js} +6 -114
- package/dist/{completion-cli-DEJia0V1.js → completion-cli-B1kHKJZX.js} +30 -30
- package/dist/{completion-cli-D_0fx2O6.js → completion-cli-Drks7xRK.js} +3 -3
- package/dist/{config-CQt4vGxI.js → config-7NCznPmF.js} +336 -97
- package/dist/{config-fCnPoWjU.js → config-B8v0zg48.js} +295 -99
- package/dist/{config-Bj2eDa02.js → config-CeWMHOiQ.js} +295 -99
- package/dist/{config-ethqi73X.js → config-D8pgDSNo.js} +358 -99
- package/dist/{config-guard-BJuqQvng.js → config-guard-RbHxYc9j.js} +212 -63
- package/dist/{configure-skrLiSwW.js → configure-DLp2Xz7L.js} +59 -40
- package/dist/{configure-C-pYuYg_.js → configure-Su1S0gi-.js} +58 -39
- package/dist/control-auth-BlWU-jBl.js +54 -0
- package/dist/control-auth-C8rIqEdA.js +54 -0
- package/dist/{control-service-BDgF-FZ0.js → control-service-BNDthc1N.js} +11 -5
- package/dist/{control-service-Djd_WI3_.js → control-service-COF59GQe.js} +10 -4
- package/dist/control-ui/assets/{index-CnB9IO4a.js → index-BECn2L1T.js} +369 -368
- package/dist/control-ui/assets/index-BECn2L1T.js.map +1 -0
- package/dist/control-ui/assets/index-DRPcd1Z4.css +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/{cron-cli-CB6CufAb.js → cron-cli-CSy4-JGS.js} +20 -20
- package/dist/{cron-cli-Db6fardJ.js → cron-cli-Db3uCDIT.js} +21 -21
- package/dist/{daemon-cli-Xe22v7lZ.js → daemon-cli-BLbzcTuD.js} +61 -22
- package/dist/{daemon-cli-BlHK0ly2.js → daemon-cli-DR0D35MO.js} +60 -21
- package/dist/{daemon-runtime-CMqH8BUE.js → daemon-runtime-ZWXvLDxx.js} +3 -3
- package/dist/{daemon-runtime-DwQFvDXZ.js → daemon-runtime-pVcZ2KDE.js} +3 -3
- package/dist/{deliver-CD7-BhYD.js → deliver-BHNoC9Yk.js} +396 -290
- package/dist/{deliver-BdGjIcTC.js → deliver-C_5eGQrX.js} +392 -286
- package/dist/{deliver-nTKaXF--.js → deliver-DPHZlWgr.js} +392 -287
- package/dist/{deliver-CDMGxRoW.js → deliver-geVWJ52I.js} +394 -288
- package/dist/{deps-BDQ_K8zf.js → deps-CP0dcOgD.js} +2 -2
- package/dist/{deps-D60FbgTP.js → deps-DW5r2IEk.js} +2 -2
- package/dist/{devices-cli-N559801X.js → devices-cli-BViqX5pl.js} +15 -15
- package/dist/{devices-cli-IxmPLIk8.js → devices-cli-DpYaY-iM.js} +14 -14
- package/dist/{directory-cli-Caq-OYk8.js → directory-cli-BWD1DdKf.js} +16 -16
- package/dist/{directory-cli-ClrdmQL-.js → directory-cli-BcvZfkfo.js} +17 -17
- package/dist/{dispatcher-BfXtm4Dl.js → dispatcher-4Qn951N3.js} +5 -3
- package/dist/{dns-cli-DgVO0Pkw.js → dns-cli-_Ych2tu9.js} +12 -12
- package/dist/{dns-cli-BTNZkWHs.js → dns-cli-gQCxUXgU.js} +13 -13
- package/dist/{docs-cli-9Xan7C6D.js → docs-cli-Bseiau7J.js} +7 -7
- package/dist/{docs-cli-DZULc91f.js → docs-cli-DzBTlWQE.js} +8 -8
- package/dist/{doctor-D39rZvNH.js → doctor-BNkYYahD.js} +37 -36
- package/dist/{doctor-Dq1YeYdH.js → doctor-DzIgdPx1.js} +37 -36
- package/dist/entry.js +77 -21
- package/dist/{env-B5YXooWp.js → env-BUuSkE19.js} +1 -1
- package/dist/{exec-DFOtZbI0.js → exec-BPQSKwGa.js} +5 -3
- package/dist/{exec-B8JKbXKW.js → exec-DqZFMawz.js} +5 -3
- package/dist/{exec-Bas1hoSJ.js → exec-EKUaAU91.js} +57 -18
- package/dist/{exec-CiH_vkWn.js → exec-_PSUrMP8.js} +528 -19
- package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Bqk-tIxY.js} +134 -51
- package/dist/{exec-approvals-C9InMoAB.js → exec-approvals-C67V-ljH.js} +134 -51
- package/dist/{exec-approvals-cli-EASbqFd-.js → exec-approvals-cli-D6vfSqQu.js} +22 -22
- package/dist/{exec-approvals-cli-DPHItoxG.js → exec-approvals-cli-DAdoki_R.js} +21 -21
- package/dist/extensionAPI.js +8518 -9140
- package/dist/fetch-Bz1WxfzV.js +285 -0
- package/dist/fetch-D2O8s8I1.js +285 -0
- package/dist/fetch-Dm-nCwa_.js +285 -0
- package/dist/fetch-wuOZDzdT.js +285 -0
- package/dist/{gateway-cli-BFqUIif8.js → gateway-cli-C-k7JPlr.js} +1868 -1072
- package/dist/{gateway-cli-v4kSPsLE.js → gateway-cli-DIIJ9Z0Y.js} +1870 -1074
- package/dist/{gateway-rpc-D6LrkcSA.js → gateway-rpc-D6jLh81b.js} +3 -3
- package/dist/{gateway-rpc-dHFK02Kk.js → gateway-rpc-aqysUyf5.js} +3 -3
- package/dist/{github-copilot-auth-CQIWc0hC.js → github-copilot-auth-BUqfX7hG.js} +316 -52
- package/dist/{github-copilot-auth-D2jfnapd.js → github-copilot-auth-By-nyRb6.js} +316 -52
- package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-C9W4SY9o.js} +7 -4
- package/dist/{github-copilot-token-BW-SEg7E.js → github-copilot-token-CiF5Iyi2.js} +6 -3
- package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DatTe1w-.js} +6 -3
- package/dist/{github-copilot-token-wCk9Fg_E.js → github-copilot-token-c9Igt3ZH.js} +6 -3
- package/dist/{gmail-setup-utils-CVNgLkXL.js → gmail-setup-utils-HvKMdooP.js} +4 -4
- package/dist/{gmail-setup-utils-CAM1vbUS.js → gmail-setup-utils-c-iF00aL.js} +3 -3
- package/dist/{health-format-C77hrjEQ.js → health-format-BORnJOeS.js} +106 -44
- package/dist/{health-format-DDYtlkB9.js → health-format-Nd0jcoqM.js} +105 -43
- package/dist/{help-format-CUnac_bT.js → help-format-Cd5PLwXe.js} +1 -1
- package/dist/{help-format-aiW76js8.js → help-format-DYBEvMOX.js} +1 -1
- package/dist/{hooks-cli-DsflBRxX.js → hooks-cli-3KdsbdRi.js} +53 -47
- package/dist/{hooks-cli-C7kctMuZ.js → hooks-cli-BThja6wK.js} +53 -47
- package/dist/{hooks-status-DRAVHSPg.js → hooks-status-BbIz0zmm.js} +6 -5
- package/dist/{hooks-status-lHWrY64E.js → hooks-status-DPJORMB6.js} +6 -5
- package/dist/{image--gbzucyh.js → image-BaJKrmCs.js} +12 -8
- package/dist/{image-ORs4LLwg.js → image-D-5pUELC.js} +13 -9
- package/dist/{image-DMnjYGdA.js → image-TvL5YI_W.js} +13 -9
- package/dist/{image-BVNytEIn.js → image-bodq5cUH.js} +13 -9
- package/dist/index.js +261 -109
- package/dist/{installs-CXGV291R.js → installs-BrOMqREO.js} +7 -6
- package/dist/{installs-89zeUsVn.js → installs-z69au9Te.js} +7 -6
- package/dist/{links-Dg90NTyF.js → links-AVB88xxH.js} +1 -1
- package/dist/{links-7M-j83As.js → links-DpxpaKe1.js} +1 -1
- package/dist/llm-slug-generator.js +18 -19
- package/dist/{loader-BnzQyT31.js → loader-CS-5lMQa.js} +3694 -4531
- package/dist/{logging-DuK6YXuK.js → logging-B3KnAryz.js} +2 -2
- package/dist/{logging-CNq0UUgf.js → logging-DEPo2hji.js} +1 -1
- package/dist/{login-qr-CJ__cE3-.js → login-qr--28WL1TN.js} +11 -5
- package/dist/{login-qr-BVeOFfNW.js → login-qr-4o2aC2UE.js} +9 -4
- package/dist/{login-qr-BJChByHH.js → login-qr-BUdeu1Sl.js} +8 -2
- package/dist/{login-qr-KUOtNJaQ.js → login-qr-BsYM2E1y.js} +12 -6
- package/dist/{logs-cli-Cm7AiarR.js → logs-cli-DDMD5w5_.js} +38 -22
- package/dist/{logs-cli-BWmtAsjp.js → logs-cli-DvPoVKCN.js} +38 -22
- package/dist/{manager-C-jXr9ks.js → manager-CXo1uqmO.js} +102 -86
- package/dist/{manager-CMFBuvVd.js → manager-ChW0jk7T.js} +101 -85
- package/dist/{manager-D2Ndphg3.js → manager-DUOe7ud6.js} +100 -85
- package/dist/{manager-BsdlwsL5.js → manager-PoxUqdN_.js} +98 -82
- package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-CVsqjgX0.js} +40 -2
- package/dist/{manifest-registry-DyMRD3rY.js → manifest-registry-jeAPx6AW.js} +40 -2
- package/dist/{message-channel-CHRYQtAM.js → message-channel-CTtrEkmW.js} +1 -1
- package/dist/{message-channel-BlgPSDAh.js → message-channel-DWcu72r7.js} +1 -1
- package/dist/{model-auth-BqjMkNFs.js → model-auth-BvODRbV0.js} +362 -35
- package/dist/{model-selection-DbsbOAoh.js → model-selection-B53OvWCf.js} +353 -33
- package/dist/{model-selection-DlV6wnTr.js → model-selection-vC82fEiP.js} +331 -30
- package/dist/{models-cli-DIFBrK4W.js → models-cli-DqsKsOgd.js} +66 -55
- package/dist/{models-cli-0XhQQbMW.js → models-cli-NV0bnh8l.js} +66 -55
- package/dist/{node-cli-BMUfVCSq.js → node-cli-C7YleuBk.js} +54 -44
- package/dist/{node-cli-DY4lzhDA.js → node-cli-CxwoHnZ6.js} +54 -44
- package/dist/{node-service-DQ-tiSie.js → node-service-C7f_uvx9.js} +2 -2
- package/dist/{node-service-u8g85nD3.js → node-service-De_WkxJe.js} +2 -2
- package/dist/{nodes-cli-BX6oWnLC.js → nodes-cli-BxrMVI9V.js} +25 -23
- package/dist/{nodes-cli-CVHzcQo2.js → nodes-cli-Clb0ocwB.js} +24 -22
- package/dist/{nodes-screen-DGlNPbk4.js → nodes-screen-CVL9363A.js} +48 -6
- package/dist/{nodes-screen-lykd2cny.js → nodes-screen-DsHJIN2I.js} +47 -5
- package/dist/{note-Ci08TSbV.js → note-Duiadw1g.js} +1 -1
- package/dist/{note-DVO1KLaW.js → note-uC6iDp4y.js} +2 -2
- package/dist/{onboard-channels-DTkFFbzS.js → onboard-channels-C5Iaafwb.js} +10 -10
- package/dist/{onboard-channels-CtDnwaF5.js → onboard-channels-C5uL3i8d.js} +11 -11
- package/dist/{onboard-skills-BnAcpzfX.js → onboard-skills-BFxdI1Y1.js} +1143 -112
- package/dist/{onboard-skills-DuoDzEmI.js → onboard-skills-DUG8Y0se.js} +1142 -111
- package/dist/{onboarding-DvhiiHh0.js → onboarding-ClzElK4D.js} +56 -48
- package/dist/{openclaw-root-93W6UrUK.js → openclaw-root-BKsZvO6K.js} +6 -2
- package/dist/{openclaw-root-9ILYSmJ9.js → openclaw-root-CEnmuBUN.js} +6 -2
- package/dist/{pairing-cli-BKJHBxwT.js → pairing-cli-BWWFZF7Q.js} +16 -16
- package/dist/{pairing-cli-DJHjPBwu.js → pairing-cli-BrFLxnug.js} +16 -16
- package/dist/{pairing-labels-xImhiJax.js → pairing-labels-C8KULWNH.js} +1 -1
- package/dist/{pairing-labels-CHxlh3tT.js → pairing-labels-Dt2vXyI7.js} +1 -1
- package/dist/{pairing-store-CO6umWFP.js → pairing-store-Dz-ArTQS.js} +3 -3
- package/dist/{pairing-store-BpPUNzmB.js → pairing-store-gQdv7Ruh.js} +2 -2
- package/dist/{path-env-Nq83EHH9.js → path-env-BRKerjt1.js} +2 -2
- package/dist/{path-env-CXWUFfFv.js → path-env-OJAyUeWW.js} +1 -1
- package/dist/paths-BZK4Ct0I.js +81 -0
- package/dist/paths-DWYi0R_2.js +78 -0
- package/dist/{paths-Bkhd_qY8.js → paths-DdKf4lHp.js} +35 -5
- package/dist/paths-SFzVNGbc.js +78 -0
- package/dist/pi-auth-json-D7hGObyW.js +12 -0
- package/dist/pi-auth-json-DgvHjfJy.js +8 -0
- package/dist/pi-auth-json-la6lnAzY.js +79 -0
- package/dist/pi-auth-json-p3vsMR7W.js +79 -0
- package/dist/{pi-embedded-C1qKCgDT.js → pi-embedded-De6SeAPs.js} +9518 -9968
- package/dist/{pi-embedded-helpers-DtPn5RC8.js → pi-embedded-helpers-BrUBxrE2.js} +70 -10
- package/dist/{pi-embedded-helpers-DhEkdWB1.js → pi-embedded-helpers-D0mqOwwq.js} +821 -128
- package/dist/{pi-embedded-helpers-7AjuNiiJ.js → pi-embedded-helpers-DpJb0kUk.js} +69 -9
- package/dist/{pi-embedded-helpers-BTkXgwJ7.js → pi-embedded-helpers-ZI1UCSRM.js} +927 -136
- package/dist/{pi-tools.policy-gG96mWwA.js → pi-tools.policy-z5Wd_2WN.js} +4 -4
- package/dist/{plugin-auto-enable-D5ye7QnB.js → plugin-auto-enable-B8mX3rX3.js} +14 -5
- package/dist/{plugin-auto-enable-BROgMZcf.js → plugin-auto-enable-OO0eDINB.js} +14 -5
- package/dist/plugin-sdk/agents/apply-patch-update.d.ts +3 -1
- package/dist/plugin-sdk/agents/apply-patch.d.ts +11 -3
- package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +5 -0
- package/dist/plugin-sdk/agents/auth-profiles.d.ts +1 -1
- package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
- package/dist/plugin-sdk/agents/bash-tools.exec.d.ts +26 -0
- package/dist/plugin-sdk/agents/current-time.d.ts +17 -0
- package/dist/plugin-sdk/agents/huggingface-models.d.ts +17 -0
- package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
- package/dist/plugin-sdk/agents/openclaw-tools.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-auth-json.d.ts +14 -0
- package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
- package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/images.d.ts +9 -4
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-tools.read.d.ts +8 -3
- package/dist/plugin-sdk/agents/sandbox/constants.d.ts +1 -1
- package/dist/plugin-sdk/agents/sandbox/docker.d.ts +14 -3
- package/dist/plugin-sdk/agents/sandbox/fs-bridge.d.ts +56 -0
- package/dist/plugin-sdk/agents/sandbox/types.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
- package/dist/plugin-sdk/agents/subagent-registry.d.ts +3 -1
- package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
- package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +2 -2
- package/dist/plugin-sdk/agents/tools/common.d.ts +4 -0
- package/dist/plugin-sdk/agents/tools/image-tool.d.ts +9 -1
- package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
- package/dist/plugin-sdk/agents/usage.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +2 -2
- package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
- package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
- package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
- package/dist/plugin-sdk/auto-reply/status.d.ts +2 -0
- package/dist/plugin-sdk/auto-reply/templating.d.ts +3 -0
- package/dist/plugin-sdk/auto-reply/thinking.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
- package/dist/plugin-sdk/browser/cdp.helpers.d.ts +2 -1
- package/dist/plugin-sdk/browser/client-actions-core.d.ts +1 -0
- package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
- package/dist/plugin-sdk/browser/pw-ai.d.ts +1 -1
- package/dist/plugin-sdk/browser/pw-session.d.ts +25 -0
- package/dist/plugin-sdk/browser/pw-tools-core.interactions.d.ts +2 -0
- package/dist/plugin-sdk/browser/routes/dispatcher.d.ts +1 -0
- package/dist/plugin-sdk/browser/routes/types.d.ts +5 -0
- package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
- package/dist/plugin-sdk/channels/registry.d.ts +2 -2
- package/dist/plugin-sdk/cli/nodes-camera.d.ts +8 -2
- package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
- package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
- package/dist/plugin-sdk/commands/onboard-helpers.d.ts +1 -0
- package/dist/plugin-sdk/commands/onboard-types.d.ts +9 -1
- package/dist/plugin-sdk/commands/signal-install.d.ts +20 -0
- package/dist/plugin-sdk/config/config.d.ts +1 -1
- package/dist/plugin-sdk/config/group-policy.d.ts +3 -0
- package/dist/plugin-sdk/config/merge-patch.d.ts +1 -0
- package/dist/plugin-sdk/config/sessions/paths.d.ts +14 -4
- package/dist/plugin-sdk/config/sessions/store.d.ts +8 -0
- package/dist/plugin-sdk/config/sessions/types.d.ts +8 -0
- package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
- package/dist/plugin-sdk/config/types.channels.d.ts +2 -0
- package/dist/plugin-sdk/config/types.d.ts +1 -0
- package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
- package/dist/plugin-sdk/config/types.gateway.d.ts +35 -0
- package/dist/plugin-sdk/config/types.hooks.d.ts +23 -1
- package/dist/plugin-sdk/config/types.irc.d.ts +96 -0
- package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
- package/dist/plugin-sdk/config/types.openclaw.d.ts +6 -0
- package/dist/plugin-sdk/config/types.queue.d.ts +1 -0
- package/dist/plugin-sdk/config/types.slack.d.ts +2 -0
- package/dist/plugin-sdk/config/types.telegram.d.ts +2 -0
- package/dist/plugin-sdk/config/validation.d.ts +20 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +193 -2
- package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +3 -2
- package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +378 -0
- package/dist/plugin-sdk/config/zod-schema.providers.d.ts +176 -0
- package/dist/plugin-sdk/config/zod-schema.sensitive.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.session.d.ts +1 -0
- package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
- package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
- package/dist/plugin-sdk/cron/types.d.ts +2 -0
- package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
- package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
- package/dist/plugin-sdk/gateway/auth-rate-limit.d.ts +59 -0
- package/dist/plugin-sdk/gateway/auth.d.ts +47 -0
- package/dist/plugin-sdk/gateway/net.d.ts +5 -0
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +7 -7
- package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
- package/dist/plugin-sdk/gateway/protocol/schema/channels.d.ts +21 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -1
- package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
- package/dist/plugin-sdk/gateway/session-utils.types.d.ts +1 -0
- package/dist/plugin-sdk/imessage/send.d.ts +12 -0
- package/dist/plugin-sdk/index.js +2147 -900
- package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
- package/dist/plugin-sdk/infra/brew.d.ts +8 -0
- package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
- package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
- package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +8 -1
- package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
- package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
- package/dist/plugin-sdk/infra/outbound/message.d.ts +2 -0
- package/dist/plugin-sdk/infra/outbound/outbound-send-service.d.ts +2 -0
- package/dist/plugin-sdk/infra/session-cost-usage.d.ts +3 -0
- package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
- package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
- package/dist/plugin-sdk/logging/console.d.ts +4 -0
- package/dist/plugin-sdk/logging/logger.d.ts +1 -1
- package/dist/plugin-sdk/logging/state.d.ts +1 -0
- package/dist/plugin-sdk/logging.d.ts +2 -2
- package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
- package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
- package/dist/plugin-sdk/media/input-files.d.ts +5 -0
- package/dist/plugin-sdk/media/store.d.ts +10 -0
- package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
- package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
- package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
- package/dist/plugin-sdk/memory/embedding-chunk-limits.d.ts +3 -0
- package/dist/plugin-sdk/memory/embedding-input-limits.d.ts +2 -0
- package/dist/plugin-sdk/memory/embedding-model-limits.d.ts +2 -0
- package/dist/plugin-sdk/memory/embeddings.d.ts +1 -0
- package/dist/plugin-sdk/memory/internal.d.ts +11 -0
- package/dist/plugin-sdk/memory/manager.d.ts +0 -6
- package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
- package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
- package/dist/plugin-sdk/memory/session-files.d.ts +2 -0
- package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
- package/dist/plugin-sdk/providers/github-copilot-token.d.ts +3 -0
- package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
- package/dist/plugin-sdk/security/external-content.d.ts +1 -1
- package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
- package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
- package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
- package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
- package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
- package/dist/plugin-sdk/slack/monitor/media.d.ts +21 -0
- package/dist/plugin-sdk/slack/types.d.ts +1 -0
- package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
- package/dist/plugin-sdk/telegram/fetch.d.ts +1 -0
- package/dist/plugin-sdk/telegram/monitor.d.ts +1 -0
- package/dist/plugin-sdk/telegram/send.d.ts +3 -0
- package/dist/plugin-sdk/tts/tts.d.ts +2 -2
- package/dist/plugin-sdk/utils/fetch-timeout.d.ts +2 -0
- package/dist/plugin-sdk/web/media.d.ts +12 -2
- package/dist/{plugins-CQw3z3Nw.js → plugins-CTjLu-z-.js} +4 -4
- package/dist/{plugins-B7F0Ly9G.js → plugins-CxrdL_IZ.js} +3 -3
- package/dist/{plugins-cli-CJ74eHvr.js → plugins-cli-CbX97Kvt.js} +259 -49
- package/dist/{plugins-cli-ubDwUAzK.js → plugins-cli-Dn9OeO53.js} +257 -47
- package/dist/{ports-kYsTYQdA.js → ports-C8YYHVlc.js} +2 -2
- package/dist/{program-1bQ15ivo.js → program-D-mNC0It.js} +86 -83
- package/dist/{progress-Da1ehW-x.js → progress-COHv-uNT.js} +1 -1
- package/dist/{progress-COzt9PNY.js → progress-DZb6yPcJ.js} +1 -1
- package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-Cf1r1L6k.js} +1 -1
- package/dist/{prompt-style-DjZDxcFg.js → prompt-style-lSlXMhsd.js} +1 -1
- package/dist/{pw-ai-CQ4-gUNR.js → pw-ai-6GzTgK5g.js} +205 -32
- package/dist/{pw-ai-1NN0FrJb.js → pw-ai-C8YhJRaI.js} +207 -32
- package/dist/{pw-ai-qEMUq5Mt.js → pw-ai-CKGenizV.js} +203 -29
- package/dist/{pw-ai-IOqEXO1O.js → pw-ai-D7devT89.js} +206 -32
- package/dist/{qmd-manager-CEwp3el1.js → qmd-manager-CQzWovq-.js} +71 -90
- package/dist/{qmd-manager-D6N3qvQ5.js → qmd-manager-Cs8RJVQp.js} +73 -90
- package/dist/{qmd-manager-C48QzrRe.js → qmd-manager-DdgrQ2kc.js} +71 -88
- package/dist/{qmd-manager-DaUqCKB_.js → qmd-manager-dyIoOvKl.js} +73 -90
- package/dist/{register.subclis-Cm-VJ5nP.js → register.subclis-ifHtmF3e.js} +29 -29
- package/dist/{reply-CBs4e9Rm.js → reply-VIHqsQ-k.js} +7906 -8743
- package/dist/{routes-9ygR0GOk.js → routes-CaCvio4Q.js} +36 -15
- package/dist/{routes-BrWrBk2R.js → routes-Cpfxk96k.js} +36 -14
- package/dist/{rpc-Cjuz2Gv1.js → rpc-BhB01Bhj.js} +3 -3
- package/dist/{rpc-DhkLVY5H.js → rpc-C5WsS_Ne.js} +3 -3
- package/dist/{run-main-BlZ5l-X9.js → run-main-DVy6KJTe.js} +88 -85
- package/dist/runner-B7CKBC80.js +1800 -0
- package/dist/runner-BEy5ZGFv.js +1901 -0
- package/dist/runner-Bv0BmJPF.js +1800 -0
- package/dist/runner-ChqVEgPx.js +1901 -0
- package/dist/{sandbox-qt49csTr.js → sandbox-BAChxjC5.js} +627 -157
- package/dist/{sandbox-CPZiaKcS.js → sandbox-DNHDwHw8.js} +628 -158
- package/dist/{sandbox-cli-C6_iNuqO.js → sandbox-cli-9oq67QEg.js} +22 -22
- package/dist/{sandbox-cli-C_wK-KAE.js → sandbox-cli-BiNq9yUe.js} +22 -22
- package/dist/{security-cli-CTTD1vms.js → security-cli-CRg03hvq.js} +28 -28
- package/dist/{security-cli-DRpGF2Yc.js → security-cli-LmBBHnmh.js} +28 -28
- package/dist/{server-context-lyNcqJYD.js → server-context-FwqBRH3K.js} +10 -10
- package/dist/{server-context-39mkstUs.js → server-context-RY7lRaxl.js} +9 -9
- package/dist/{server-node-events-V_G9BRRw.js → server-node-events-BbHOZX3O.js} +48 -43
- package/dist/{server-node-events-o9G18PaE.js → server-node-events-CngNLVL-.js} +50 -45
- package/dist/{service-DOlJdIqe.js → service-BnqdBTAK.js} +8 -4
- package/dist/{service-DDPRbf8a.js → service-DZN7KRok.js} +8 -4
- package/dist/{service-audit-VDRrWefh.js → service-audit-0Eil3ISN.js} +4 -4
- package/dist/{service-audit-CVy00Ze_.js → service-audit-B8KIOe8A.js} +4 -4
- package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-B-tyjp76.js} +14 -14
- package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-BYUb7fov.js} +14 -14
- package/dist/{shared-BnpC3wMU.js → shared-BCdNboU1.js} +3 -3
- package/dist/{shared-CagUDdmp.js → shared-CsAwU6-q.js} +3 -3
- package/dist/{shared-BDk_zC9p.js → shared-Csn6DLBA.js} +5 -5
- package/dist/{shared-C92wo-6f.js → shared-DEanAgja.js} +4 -4
- package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-BrGkh5K7.js} +1 -1
- package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-CucvxYhu.js} +1 -1
- package/dist/{skills-Ccsv3IQq.js → skills-CE7by2IF.js} +151 -8
- package/dist/{skills-_eKGrw9z.js → skills-Dz15dAM4.js} +152 -9
- package/dist/{skills-cli-DqvLjooh.js → skills-cli-B5b75pDK.js} +13 -13
- package/dist/{skills-cli-DUncybht.js → skills-cli-CbCDrYwp.js} +13 -13
- package/dist/{skills-status-Cp2ZFhIx.js → skills-status-B99Us6yS.js} +2 -2
- package/dist/{skills-status-Ck0CCFZG.js → skills-status-ChM7JE47.js} +3 -3
- package/dist/{sqlite-DODNHWJb.js → sqlite-2UsPaJz5.js} +97 -2
- package/dist/{sqlite-cSdsHVEw.js → sqlite-CASnHrgX.js} +97 -1
- package/dist/{sqlite-Bwo2rASR.js → sqlite-CVWiMkGu.js} +97 -1
- package/dist/{sqlite-CpqIbY4-.js → sqlite-CcIWkGaM.js} +97 -1
- package/dist/{status-Bmx9_1C7.js → status-CKuX1-zb.js} +3 -3
- package/dist/{status-CBGgwlTW.js → status-Cm4q6o-I.js} +57 -49
- package/dist/{status-DkJgtvSz.js → status-DD2iqGc9.js} +4 -4
- package/dist/{subsystem-DPnkvS73.js → subsystem-DHfJG4gk.js} +73 -20
- package/dist/{system-cli-9fQ1uLiz.js → system-cli-BVJDR474.js} +87 -15
- package/dist/{system-cli-Gq8OWHFg.js → system-cli-C3Y_9VpI.js} +88 -16
- package/dist/{systemd-Pa7LURHB.js → systemd-DxddcFsa.js} +3 -3
- package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-BVLopJ9O.js} +1 -1
- package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-BThjV1Sr.js} +2 -2
- package/dist/{systemd-linger-6_naJcJp.js → systemd-linger-D3Va1Cv7.js} +2 -2
- package/dist/{systemd-BEWwfwn0.js → systemd-s3S2HVog.js} +3 -3
- package/dist/{table-Bb9gAVIp.js → table-BIk8Aan_.js} +2 -2
- package/dist/{table-cCoGqLsk.js → table-Bvka_vkc.js} +1 -1
- package/dist/{tool-display-DUVhO36P.js → tool-display-DbdMQFZx.js} +2 -2
- package/dist/{tool-display-DNOVCI6J.js → tool-display-kpW5Hg2z.js} +2 -2
- package/dist/{tui-DDVqLwqT.js → tui-B40Z2jMa.js} +120 -14
- package/dist/{tui-cli-CurbazQf.js → tui-cli-Bwa6K7xR.js} +28 -28
- package/dist/{tui-cli-BeN2K38I.js → tui-cli-DD6g7uZb.js} +27 -27
- package/dist/{tui-B9zLJxf6.js → tui-lFMZUnx6.js} +121 -13
- package/dist/{update-Ct9sqJC_.js → update-Bos8PPCG.js} +3 -3
- package/dist/{update--i077azM.js → update-Cg8MtrEr.js} +3 -3
- package/dist/{update-cli-CT5W0kpw.js → update-cli-CC-wTeje.js} +92 -73
- package/dist/{update-cli-C87lNK1S.js → update-cli-CULnXFL_.js} +91 -72
- package/dist/{update-runner-BIttRDyV.js → update-runner-BaLsla0c.js} +11 -11
- package/dist/{update-runner-xbeVkAD9.js → update-runner-Dbsdl5AU.js} +10 -10
- package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
- package/dist/{utils-BTaR--Ln.js → utils-BtIMES3N.js} +1 -1
- package/dist/{webhooks-cli-Db3zyJaw.js → webhooks-cli-ClHLUu_j.js} +21 -13
- package/dist/{webhooks-cli-DUUa8gVY.js → webhooks-cli-DVXr2uyN.js} +21 -13
- package/dist/{widearea-dns-BgYasW6m.js → widearea-dns-C4RnIR9O.js} +3 -3
- package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-Ypwgjpsr.js} +3 -3
- package/dist/{ws-C0k_dhCP.js → ws-BcJt4pcg.js} +24 -2
- package/dist/{ws-DtDKpbLR.js → ws-MC-rTJLe.js} +24 -2
- package/dist/{ws-log-cMNgAyLy.js → ws-log-WrJ4QYu7.js} +1 -1
- package/dist/{ws-log-C6vm_XMA.js → ws-log-lip4ETlm.js} +2 -2
- package/dist/{wsl-rfIr_Sde.js → wsl-BvTIzy-8.js} +5 -3
- package/docs/assets/install-script.svg +1 -0
- package/docs/automation/hooks.md +1 -38
- package/docs/automation/webhook.md +52 -2
- package/docs/channels/discord.md +389 -381
- package/docs/channels/grammy.md +1 -1
- package/docs/channels/imessage.md +229 -218
- package/docs/channels/index.md +1 -0
- package/docs/channels/irc.md +234 -0
- package/docs/channels/msteams.md +2 -0
- package/docs/channels/pairing.md +1 -1
- package/docs/channels/slack.md +295 -415
- package/docs/channels/telegram.md +397 -460
- package/docs/channels/whatsapp.md +338 -310
- package/docs/ci.md +0 -12
- package/docs/cli/hooks.md +1 -14
- package/docs/cli/index.md +6 -1
- package/docs/cli/logs.md +4 -0
- package/docs/cli/onboard.md +33 -0
- package/docs/cli/plugins.md +20 -1
- package/docs/cli/security.md +2 -0
- package/docs/concepts/architecture.md +0 -16
- package/docs/concepts/memory.md +7 -4
- package/docs/concepts/model-providers.md +27 -0
- package/docs/concepts/session-tool.md +1 -0
- package/docs/concepts/system-prompt.md +13 -0
- package/docs/docs.json +18 -12
- package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +229 -0
- package/docs/gateway/configuration-examples.md +9 -2
- package/docs/gateway/configuration-reference.md +2345 -0
- package/docs/gateway/configuration.md +338 -3297
- package/docs/gateway/index.md +162 -238
- package/docs/gateway/openai-http-api.md +1 -0
- package/docs/gateway/openresponses-http-api.md +16 -0
- package/docs/gateway/remote-gateway-readme.md +0 -16
- package/docs/gateway/security/index.md +4 -16
- package/docs/gateway/tools-invoke-http-api.md +26 -1
- package/docs/help/faq.md +9 -0
- package/docs/help/testing.md +11 -0
- package/docs/install/docker.md +18 -0
- package/docs/install/hetzner.md +21 -0
- package/docs/install/installer.md +20 -0
- package/docs/nodes/audio.md +19 -0
- package/docs/platforms/mac/release.md +7 -7
- package/docs/providers/glm.md +3 -3
- package/docs/providers/huggingface.md +209 -0
- package/docs/providers/index.md +3 -0
- package/docs/providers/litellm.md +153 -0
- package/docs/providers/together.md +2 -2
- package/docs/providers/vllm.md +92 -0
- package/docs/providers/zai.md +2 -2
- package/docs/reference/credits.md +4 -28
- package/docs/reference/test.md +2 -1
- package/docs/reference/token-use.md +1 -1
- package/docs/reference/transcript-hygiene.md +18 -0
- package/docs/start/getting-started.md +5 -0
- package/docs/start/onboarding-overview.md +51 -0
- package/docs/start/onboarding.md +1 -0
- package/docs/start/openclaw.md +0 -16
- package/docs/start/wizard-cli-automation.md +17 -0
- package/docs/start/wizard-cli-reference.md +12 -0
- package/docs/start/wizard.md +3 -1
- package/docs/tools/browser.md +6 -0
- package/docs/zh-CN/automation/hooks.md +1 -38
- package/docs/zh-CN/cli/hooks.md +1 -14
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/monitor.test.ts +40 -28
- package/extensions/bluebubbles/src/monitor.ts +0 -4
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +10 -10
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +2 -5
- package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
- package/extensions/feishu/src/bot.test.ts +265 -0
- package/extensions/feishu/src/bot.ts +73 -18
- package/extensions/feishu/src/channel.test.ts +48 -0
- package/extensions/feishu/src/channel.ts +1 -3
- package/extensions/feishu/src/config-schema.ts +6 -0
- package/extensions/feishu/src/docx.ts +14 -4
- package/extensions/feishu/src/media.test.ts +151 -0
- package/extensions/feishu/src/media.ts +27 -13
- package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
- package/extensions/feishu/src/reply-dispatcher.ts +124 -67
- package/extensions/feishu/src/streaming-card.ts +223 -0
- package/extensions/feishu/src/targets.test.ts +16 -0
- package/extensions/feishu/src/targets.ts +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/oauth.test.ts +4 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/googlechat/src/channel.ts +3 -20
- package/extensions/googlechat/src/resolve-target.test.ts +138 -0
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/index.ts +17 -0
- package/extensions/irc/openclaw.plugin.json +9 -0
- package/extensions/irc/package.json +14 -0
- package/extensions/irc/src/accounts.ts +268 -0
- package/extensions/irc/src/channel.ts +367 -0
- package/extensions/irc/src/client.test.ts +43 -0
- package/extensions/irc/src/client.ts +439 -0
- package/extensions/irc/src/config-schema.test.ts +27 -0
- package/extensions/irc/src/config-schema.ts +97 -0
- package/extensions/irc/src/control-chars.ts +22 -0
- package/extensions/irc/src/inbound.ts +334 -0
- package/extensions/irc/src/monitor.test.ts +43 -0
- package/extensions/irc/src/monitor.ts +158 -0
- package/extensions/irc/src/normalize.test.ts +46 -0
- package/extensions/irc/src/normalize.ts +117 -0
- package/extensions/irc/src/onboarding.test.ts +118 -0
- package/extensions/irc/src/onboarding.ts +479 -0
- package/extensions/irc/src/policy.test.ts +132 -0
- package/extensions/irc/src/policy.ts +157 -0
- package/extensions/irc/src/probe.ts +64 -0
- package/extensions/irc/src/protocol.test.ts +44 -0
- package/extensions/irc/src/protocol.ts +169 -0
- package/extensions/irc/src/runtime.ts +14 -0
- package/extensions/irc/src/send.ts +99 -0
- package/extensions/irc/src/types.ts +94 -0
- 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 +6 -0
- package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +2 -2
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +2 -2
- package/extensions/matrix/package.json +2 -2
- package/extensions/matrix/src/matrix/monitor/media.ts +4 -2
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/index.ts +6 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +2 -2
- package/extensions/memory-lancedb/package.json +2 -2
- package/extensions/minimax-portal-auth/index.ts +7 -5
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/msteams/src/media-helpers.test.ts +9 -0
- package/extensions/msteams/src/media-helpers.ts +15 -1
- package/extensions/msteams/src/mentions.test.ts +235 -0
- package/extensions/msteams/src/mentions.ts +114 -0
- package/extensions/msteams/src/messenger.test.ts +81 -1
- package/extensions/msteams/src/messenger.ts +11 -2
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +2 -2
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/telegram/src/channel.ts +1 -0
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/twitch/src/onboarding.test.ts +5 -0
- package/extensions/twitch/src/outbound.test.ts +17 -6
- package/extensions/twitch/src/outbound.ts +12 -10
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/media-stream.ts +7 -1
- package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
- package/extensions/voice-call/src/providers/twilio.ts +12 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/whatsapp/src/channel.ts +6 -16
- package/extensions/whatsapp/src/resolve-target.test.ts +154 -0
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +26 -22
- package/dist/auth-BcNHFK-i.js +0 -184
- package/dist/auth-DkjJ3pm-.js +0 -184
- package/dist/boolean-M-esQJt6.js +0 -30
- package/dist/bundled/soul-evil/HOOK.md +0 -71
- package/dist/bundled/soul-evil/handler.js +0 -194
- package/dist/cli-B631__JU.js +0 -89
- package/dist/cli-DVhCVZZ6.js +0 -86
- package/dist/config-CI7EpvlP.js +0 -15
- package/dist/constants-DuoCkWRh.js +0 -65
- package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
- package/dist/control-ui/assets/index-DWhx-9JL.css +0 -1
- package/dist/date-time-c6HTX6IW.js +0 -187
- package/dist/frontmatter-xwTm0734.js +0 -105
- package/dist/parse-DqAvJRIf.js +0 -23
- package/dist/parse-duration-De_tAQSe.js +0 -24
- package/dist/parse-timeout-DV8NQQWk.js +0 -16
- package/dist/paths-IivnSNkP.js +0 -51
- package/dist/paths-MnZaxqPw.js +0 -48
- package/dist/paths-uoGO2aiO.js +0 -48
- package/dist/pi-model-discovery-DzFOAbQt.js +0 -20
- package/dist/plugin-sdk/tui/tui-formatters.d.ts +0 -31
- package/dist/session-key-nXYQSv-a.js +0 -167
- package/dist/tailscale-DU6DgqVy.js +0 -225
- package/dist/tailscale-DzJUWmKf.js +0 -252
- package/dist/utils-dp_OM900.js +0 -476
- package/docs/hooks/soul-evil.md +0 -69
- package/docs/zh-CN/hooks/soul-evil.md +0 -72
- package/skills/local-places/SERVER_README.md +0 -101
- package/skills/local-places/SKILL.md +0 -102
- package/skills/local-places/pyproject.toml +0 -21
- package/skills/local-places/src/local_places/__init__.py +0 -2
- package/skills/local-places/src/local_places/google_places.py +0 -314
- package/skills/local-places/src/local_places/main.py +0 -65
- package/skills/local-places/src/local_places/schemas.py +0 -107
- /package/dist/{archive-CXhvR9nU.js → archive-aSMUcOc6.js} +0 -0
- /package/dist/{archive-D0z3LZDK.js → archive-beaSfAzA.js} +0 -0
- /package/dist/{brew-BIrWdDps.js → brew-DlQQMJ3n.js} +0 -0
- /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
- /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
- /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-CodyYLHe.js} +0 -0
- /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
- /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
- /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
- /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
- /package/dist/{errors-x4NYs-1P.js → errors-Cojm0Kl7.js} +0 -0
- /package/dist/{format-CaxeRcue.js → format-CL8VOhxX.js} +0 -0
- /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
- /package/dist/{format-duration-CEmFWLyX.js → format-duration--hQihAvf.js} +0 -0
- /package/dist/{format-duration-DCXJx2ba.js → format-duration-84n6_DgO.js} +0 -0
- /package/dist/{format-relative-79_Y1n2Y.js → format-relative-Cywx6ldk.js} +0 -0
- /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
- /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
- /package/dist/{helpers-DdwqKAAS.js → helpers-ByYj2Aq5.js} +0 -0
- /package/dist/{helpers-CRzoyyXS.js → helpers-CUVSCDJV.js} +0 -0
- /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
- /package/dist/{is-main-qJ675wPV.js → is-main-B9A8S9YC.js} +0 -0
- /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
- /package/dist/{logging-BzvBIA3Y.js → logging-D-Jq2wIo.js} +0 -0
- /package/dist/{logging-CfEk_PnX.js → logging-fywhKCmE.js} +0 -0
- /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
- /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BuRiE-Ij.js} +0 -0
- /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-CfVgwy6x.js} +0 -0
- /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
- /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
- /package/dist/{pi-model-discovery-DzEIEgHL.js → pi-model-discovery-EwKVHlZB.js} +0 -0
- /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
- /package/dist/{prompts-CXLLIBwP.js → prompts-Dszjy1n_.js} +0 -0
- /package/dist/{redact-BRmQPYDR.js → redact-BIMJ3ntQ.js} +0 -0
- /package/dist/{redact-BHmk44DI.js → redact-BRsnXqwD.js} +0 -0
- /package/dist/{redact-DAKeu7PA.js → redact-UvkXqguc.js} +0 -0
- /package/dist/{status-Cv36yYdi.js → status-C_dMhoE0.js} +0 -0
- /package/dist/{status-Drziap9H.js → status-DCkF_L3U.js} +0 -0
- /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
- /package/dist/{tailnet-CL5GtL7t.js → tailnet-DATIFSsY.js} +0 -0
- /package/dist/{tailnet-DGRSvYuQ.js → tailnet-uoFvUSsw.js} +0 -0
- /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
- /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
- /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-Ch7wLX-j.js} +0 -0
- /package/dist/{usage-format-6Uar63S0.js → usage-format-Bhl_WCWP.js} +0 -0
- /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/claw +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/claw.CMD +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/claw.ps1 +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/moltbot +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/moltbot.CMD +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/moltbot.ps1 +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/pigbot +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/pigbot.CMD +0 -0
- /package/extensions/{feishu → irc}/node_modules/.bin/pigbot.ps1 +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, r as GATEWAY_SERVICE_MARKER } from "./constants-
|
|
2
|
-
import { c as getMinimalServicePathPartsFromEnv, l as isSystemNodePath, m as resolveSystemNodePath, u as isVersionManagedNodePath } from "./daemon-runtime-
|
|
3
|
-
import { o as resolveGatewayLogPaths, s as resolveLaunchAgentPlistPath } from "./service-
|
|
4
|
-
import { o as resolveSystemdUserUnitPath } from "./systemd-
|
|
1
|
+
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, r as GATEWAY_SERVICE_MARKER } from "./constants-BvQ6S8j5.js";
|
|
2
|
+
import { c as getMinimalServicePathPartsFromEnv, l as isSystemNodePath, m as resolveSystemNodePath, u as isVersionManagedNodePath } from "./daemon-runtime-ZWXvLDxx.js";
|
|
3
|
+
import { o as resolveGatewayLogPaths, s as resolveLaunchAgentPlistPath } from "./service-DZN7KRok.js";
|
|
4
|
+
import { o as resolveSystemdUserUnitPath } from "./systemd-s3S2HVog.js";
|
|
5
5
|
import { execFile } from "node:child_process";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { promisify } from "node:util";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as resolveModelCostConfig, t as estimateUsageCost } from "./usage-format-
|
|
2
|
+
import { n as resolveSessionFilePath, s as resolveSessionTranscriptsDirForAgent } from "./paths-BZK4Ct0I.js";
|
|
3
|
+
import { i as resolveModelCostConfig, t as estimateUsageCost } from "./usage-format-Bhl_WCWP.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fs from "node:fs";
|
|
6
6
|
import readline from "node:readline";
|
|
@@ -46,17 +46,17 @@ function derivePromptTokens(usage) {
|
|
|
46
46
|
return sum > 0 ? sum : void 0;
|
|
47
47
|
}
|
|
48
48
|
function deriveSessionTotalTokens(params) {
|
|
49
|
+
const promptOverride = params.promptTokens;
|
|
50
|
+
const hasPromptOverride = typeof promptOverride === "number" && Number.isFinite(promptOverride) && promptOverride > 0;
|
|
49
51
|
const usage = params.usage;
|
|
50
|
-
if (!usage) return;
|
|
51
|
-
const input = usage
|
|
52
|
-
let total = derivePromptTokens({
|
|
53
|
-
input: usage
|
|
54
|
-
cacheRead: usage
|
|
55
|
-
cacheWrite: usage
|
|
56
|
-
}) ?? usage
|
|
52
|
+
if (!usage && !hasPromptOverride) return;
|
|
53
|
+
const input = usage?.input ?? 0;
|
|
54
|
+
let total = (hasPromptOverride ? promptOverride : derivePromptTokens({
|
|
55
|
+
input: usage?.input,
|
|
56
|
+
cacheRead: usage?.cacheRead,
|
|
57
|
+
cacheWrite: usage?.cacheWrite
|
|
58
|
+
})) ?? usage?.total ?? input;
|
|
57
59
|
if (!(total > 0)) return;
|
|
58
|
-
const contextTokens = params.contextTokens;
|
|
59
|
-
if (typeof contextTokens === "number" && Number.isFinite(contextTokens) && contextTokens > 0) total = Math.min(total, contextTokens);
|
|
60
60
|
return total;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -380,7 +380,7 @@ async function discoverAllSessions(params) {
|
|
|
380
380
|
return discovered.toSorted((a, b) => b.mtime - a.mtime);
|
|
381
381
|
}
|
|
382
382
|
async function loadSessionCostSummary(params) {
|
|
383
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
383
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
384
384
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
385
385
|
const totals = emptyTotals();
|
|
386
386
|
let firstActivity;
|
|
@@ -564,7 +564,7 @@ async function loadSessionCostSummary(params) {
|
|
|
564
564
|
};
|
|
565
565
|
}
|
|
566
566
|
async function loadSessionUsageTimeSeries(params) {
|
|
567
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
567
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
568
568
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
569
569
|
const points = [];
|
|
570
570
|
let cumulativeTokens = 0;
|
|
@@ -614,7 +614,7 @@ async function loadSessionUsageTimeSeries(params) {
|
|
|
614
614
|
};
|
|
615
615
|
}
|
|
616
616
|
async function loadSessionLogs(params) {
|
|
617
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
617
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
618
618
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
619
619
|
const logs = [];
|
|
620
620
|
const limit = params.limit ?? 50;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as resolveModelCostConfig, t as estimateUsageCost } from "./usage-format-
|
|
2
|
+
import { n as resolveSessionFilePath, s as resolveSessionTranscriptsDirForAgent } from "./paths-DdKf4lHp.js";
|
|
3
|
+
import { i as resolveModelCostConfig, t as estimateUsageCost } from "./usage-format-CpORtVCG.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import readline from "node:readline";
|
|
@@ -46,17 +46,17 @@ function derivePromptTokens(usage) {
|
|
|
46
46
|
return sum > 0 ? sum : void 0;
|
|
47
47
|
}
|
|
48
48
|
function deriveSessionTotalTokens(params) {
|
|
49
|
+
const promptOverride = params.promptTokens;
|
|
50
|
+
const hasPromptOverride = typeof promptOverride === "number" && Number.isFinite(promptOverride) && promptOverride > 0;
|
|
49
51
|
const usage = params.usage;
|
|
50
|
-
if (!usage) return;
|
|
51
|
-
const input = usage
|
|
52
|
-
let total = derivePromptTokens({
|
|
53
|
-
input: usage
|
|
54
|
-
cacheRead: usage
|
|
55
|
-
cacheWrite: usage
|
|
56
|
-
}) ?? usage
|
|
52
|
+
if (!usage && !hasPromptOverride) return;
|
|
53
|
+
const input = usage?.input ?? 0;
|
|
54
|
+
let total = (hasPromptOverride ? promptOverride : derivePromptTokens({
|
|
55
|
+
input: usage?.input,
|
|
56
|
+
cacheRead: usage?.cacheRead,
|
|
57
|
+
cacheWrite: usage?.cacheWrite
|
|
58
|
+
})) ?? usage?.total ?? input;
|
|
57
59
|
if (!(total > 0)) return;
|
|
58
|
-
const contextTokens = params.contextTokens;
|
|
59
|
-
if (typeof contextTokens === "number" && Number.isFinite(contextTokens) && contextTokens > 0) total = Math.min(total, contextTokens);
|
|
60
60
|
return total;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -380,7 +380,7 @@ async function discoverAllSessions(params) {
|
|
|
380
380
|
return discovered.toSorted((a, b) => b.mtime - a.mtime);
|
|
381
381
|
}
|
|
382
382
|
async function loadSessionCostSummary(params) {
|
|
383
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
383
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
384
384
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
385
385
|
const totals = emptyTotals();
|
|
386
386
|
let firstActivity;
|
|
@@ -564,7 +564,7 @@ async function loadSessionCostSummary(params) {
|
|
|
564
564
|
};
|
|
565
565
|
}
|
|
566
566
|
async function loadSessionUsageTimeSeries(params) {
|
|
567
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
567
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
568
568
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
569
569
|
const points = [];
|
|
570
570
|
let cumulativeTokens = 0;
|
|
@@ -614,7 +614,7 @@ async function loadSessionUsageTimeSeries(params) {
|
|
|
614
614
|
};
|
|
615
615
|
}
|
|
616
616
|
async function loadSessionLogs(params) {
|
|
617
|
-
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry) : void 0);
|
|
617
|
+
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
618
618
|
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
619
619
|
const logs = [];
|
|
620
620
|
const limit = params.limit ?? 50;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as defaultRuntime } from "./subsystem-
|
|
1
|
+
import { c as defaultRuntime } from "./subsystem-DHfJG4gk.js";
|
|
2
2
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
3
|
-
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-
|
|
4
|
-
import { t as resolveGatewayService } from "./service-
|
|
3
|
+
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-BvQ6S8j5.js";
|
|
4
|
+
import { t as resolveGatewayService } from "./service-BnqdBTAK.js";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/gateway-cli/shared.ts
|
|
7
7
|
function parsePort(raw) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { p as defaultRuntime } from "./entry.js";
|
|
2
|
-
import { t as formatCliCommand } from "./command-format-
|
|
3
|
-
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-
|
|
4
|
-
import { t as resolveGatewayService } from "./service-
|
|
2
|
+
import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
3
|
+
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-BvQ6S8j5.js";
|
|
4
|
+
import { t as resolveGatewayService } from "./service-DZN7KRok.js";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/gateway-cli/shared.ts
|
|
7
7
|
function parsePort(raw) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as formatCliCommand } from "./command-format-
|
|
3
|
-
import {
|
|
4
|
-
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-
|
|
5
|
-
import { o as resolveGatewayLogPaths } from "./service-
|
|
1
|
+
import { N as getResolvedLoggerSettings, p as defaultRuntime } from "./entry.js";
|
|
2
|
+
import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
3
|
+
import { c as pickPrimaryLanIPv4 } from "./ws-MC-rTJLe.js";
|
|
4
|
+
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-BvQ6S8j5.js";
|
|
5
|
+
import { o as resolveGatewayLogPaths } from "./service-DZN7KRok.js";
|
|
6
6
|
import { Writable } from "node:stream";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/daemon-cli/response.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { V as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-
|
|
1
|
+
import { V as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-DHfJG4gk.js";
|
|
2
2
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
3
|
-
import {
|
|
4
|
-
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-
|
|
5
|
-
import { o as resolveGatewayLogPaths } from "./service-
|
|
3
|
+
import { c as pickPrimaryLanIPv4 } from "./ws-BcJt4pcg.js";
|
|
4
|
+
import { d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, l as resolveGatewayLaunchAgentLabel } from "./constants-BvQ6S8j5.js";
|
|
5
|
+
import { o as resolveGatewayLogPaths } from "./service-BnqdBTAK.js";
|
|
6
6
|
import { Writable } from "node:stream";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/daemon-cli/response.ts
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { a as parseBooleanValue, o as createSubsystemLogger } from "./entry.js";
|
|
2
|
-
import { t as CONFIG_DIR, y as resolveUserPath } from "./utils-
|
|
3
|
-
import { n as resolveOpenClawPackageRootSync } from "./openclaw-root-
|
|
4
|
-
import { a as MANIFEST_KEY,
|
|
2
|
+
import { t as CONFIG_DIR, y as resolveUserPath } from "./utils-BLJAc3ZV.js";
|
|
3
|
+
import { n as resolveOpenClawPackageRootSync } from "./openclaw-root-BKsZvO6K.js";
|
|
4
|
+
import { a as MANIFEST_KEY, d as resolveMemorySlotDecision, i as LEGACY_MANIFEST_KEYS, l as normalizePluginsConfig, t as loadPluginManifestRegistry, u as resolveEnableState } from "./manifest-registry-CVsqjgX0.js";
|
|
5
5
|
import path from "node:path";
|
|
6
|
+
import os from "node:os";
|
|
6
7
|
import fs from "node:fs";
|
|
7
8
|
import JSON5 from "json5";
|
|
9
|
+
import fs$1 from "node:fs/promises";
|
|
8
10
|
import { fileURLToPath } from "node:url";
|
|
9
11
|
import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
|
|
10
12
|
import YAML from "yaml";
|
|
@@ -258,8 +260,16 @@ function isBundledSkillAllowed(entry, allowlist) {
|
|
|
258
260
|
}
|
|
259
261
|
function hasBinary(bin) {
|
|
260
262
|
const parts = (process.env.PATH ?? "").split(path.delimiter).filter(Boolean);
|
|
261
|
-
|
|
262
|
-
|
|
263
|
+
const winPathExt = process.env.PATHEXT;
|
|
264
|
+
const winExtensions = winPathExt !== void 0 ? winPathExt.split(";").filter(Boolean) : [
|
|
265
|
+
".EXE",
|
|
266
|
+
".CMD",
|
|
267
|
+
".BAT",
|
|
268
|
+
".COM"
|
|
269
|
+
];
|
|
270
|
+
const extensions = process.platform === "win32" ? ["", ...winExtensions] : [""];
|
|
271
|
+
for (const part of parts) for (const ext of extensions) {
|
|
272
|
+
const candidate = path.join(part, bin + ext);
|
|
263
273
|
try {
|
|
264
274
|
fs.accessSync(candidate, fs.constants.X_OK);
|
|
265
275
|
return true;
|
|
@@ -360,6 +370,83 @@ function applySkillEnvOverridesFromSnapshot(params) {
|
|
|
360
370
|
};
|
|
361
371
|
}
|
|
362
372
|
|
|
373
|
+
//#endregion
|
|
374
|
+
//#region src/agents/sandbox-paths.ts
|
|
375
|
+
const UNICODE_SPACES = /[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g;
|
|
376
|
+
const HTTP_URL_RE = /^https?:\/\//i;
|
|
377
|
+
const DATA_URL_RE = /^data:/i;
|
|
378
|
+
function normalizeUnicodeSpaces(str) {
|
|
379
|
+
return str.replace(UNICODE_SPACES, " ");
|
|
380
|
+
}
|
|
381
|
+
function expandPath(filePath) {
|
|
382
|
+
const normalized = normalizeUnicodeSpaces(filePath);
|
|
383
|
+
if (normalized === "~") return os.homedir();
|
|
384
|
+
if (normalized.startsWith("~/")) return os.homedir() + normalized.slice(1);
|
|
385
|
+
return normalized;
|
|
386
|
+
}
|
|
387
|
+
function resolveToCwd(filePath, cwd) {
|
|
388
|
+
const expanded = expandPath(filePath);
|
|
389
|
+
if (path.isAbsolute(expanded)) return expanded;
|
|
390
|
+
return path.resolve(cwd, expanded);
|
|
391
|
+
}
|
|
392
|
+
function resolveSandboxPath(params) {
|
|
393
|
+
const resolved = resolveToCwd(params.filePath, params.cwd);
|
|
394
|
+
const rootResolved = path.resolve(params.root);
|
|
395
|
+
const relative = path.relative(rootResolved, resolved);
|
|
396
|
+
if (!relative || relative === "") return {
|
|
397
|
+
resolved,
|
|
398
|
+
relative: ""
|
|
399
|
+
};
|
|
400
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error(`Path escapes sandbox root (${shortPath(rootResolved)}): ${params.filePath}`);
|
|
401
|
+
return {
|
|
402
|
+
resolved,
|
|
403
|
+
relative
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
async function assertSandboxPath(params) {
|
|
407
|
+
const resolved = resolveSandboxPath(params);
|
|
408
|
+
await assertNoSymlink(resolved.relative, path.resolve(params.root));
|
|
409
|
+
return resolved;
|
|
410
|
+
}
|
|
411
|
+
function assertMediaNotDataUrl(media) {
|
|
412
|
+
const raw = media.trim();
|
|
413
|
+
if (DATA_URL_RE.test(raw)) throw new Error("data: URLs are not supported for media. Use buffer instead.");
|
|
414
|
+
}
|
|
415
|
+
async function resolveSandboxedMediaSource(params) {
|
|
416
|
+
const raw = params.media.trim();
|
|
417
|
+
if (!raw) return raw;
|
|
418
|
+
if (HTTP_URL_RE.test(raw)) return raw;
|
|
419
|
+
let candidate = raw;
|
|
420
|
+
if (/^file:\/\//i.test(candidate)) try {
|
|
421
|
+
candidate = fileURLToPath(candidate);
|
|
422
|
+
} catch {
|
|
423
|
+
throw new Error(`Invalid file:// URL for sandboxed media: ${raw}`);
|
|
424
|
+
}
|
|
425
|
+
return (await assertSandboxPath({
|
|
426
|
+
filePath: candidate,
|
|
427
|
+
cwd: params.sandboxRoot,
|
|
428
|
+
root: params.sandboxRoot
|
|
429
|
+
})).resolved;
|
|
430
|
+
}
|
|
431
|
+
async function assertNoSymlink(relative, root) {
|
|
432
|
+
if (!relative) return;
|
|
433
|
+
const parts = relative.split(path.sep).filter(Boolean);
|
|
434
|
+
let current = root;
|
|
435
|
+
for (const part of parts) {
|
|
436
|
+
current = path.join(current, part);
|
|
437
|
+
try {
|
|
438
|
+
if ((await fs$1.lstat(current)).isSymbolicLink()) throw new Error(`Symlink not allowed in sandbox path: ${current}`);
|
|
439
|
+
} catch (err) {
|
|
440
|
+
if (err.code === "ENOENT") return;
|
|
441
|
+
throw err;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
function shortPath(value) {
|
|
446
|
+
if (value.startsWith(os.homedir())) return `~${value.slice(os.homedir().length)}`;
|
|
447
|
+
return value;
|
|
448
|
+
}
|
|
449
|
+
|
|
363
450
|
//#endregion
|
|
364
451
|
//#region src/agents/skills/bundled-dir.ts
|
|
365
452
|
function looksLikeSkillsDir(dir) {
|
|
@@ -517,7 +604,7 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
517
604
|
return [];
|
|
518
605
|
};
|
|
519
606
|
const managedSkillsDir = opts?.managedSkillsDir ?? path.join(CONFIG_DIR, "skills");
|
|
520
|
-
const workspaceSkillsDir = path.
|
|
607
|
+
const workspaceSkillsDir = path.resolve(workspaceDir, "skills");
|
|
521
608
|
const bundledSkillsDir = opts?.bundledSkillsDir ?? resolveBundledSkillsDir();
|
|
522
609
|
const extraDirs = (opts?.config?.skills?.load?.extraDirs ?? []).map((d) => typeof d === "string" ? d.trim() : "").filter(Boolean);
|
|
523
610
|
const pluginSkillDirs = resolvePluginSkillDirs({
|
|
@@ -539,6 +626,14 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
539
626
|
dir: managedSkillsDir,
|
|
540
627
|
source: "openclaw-managed"
|
|
541
628
|
});
|
|
629
|
+
const personalAgentsSkills = loadSkills({
|
|
630
|
+
dir: path.resolve(os.homedir(), ".agents", "skills"),
|
|
631
|
+
source: "agents-skills-personal"
|
|
632
|
+
});
|
|
633
|
+
const projectAgentsSkills = loadSkills({
|
|
634
|
+
dir: path.resolve(workspaceDir, ".agents", "skills"),
|
|
635
|
+
source: "agents-skills-project"
|
|
636
|
+
});
|
|
542
637
|
const workspaceSkills = loadSkills({
|
|
543
638
|
dir: workspaceSkillsDir,
|
|
544
639
|
source: "openclaw-workspace"
|
|
@@ -547,6 +642,8 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
547
642
|
for (const skill of extraSkills) merged.set(skill.name, skill);
|
|
548
643
|
for (const skill of bundledSkills) merged.set(skill.name, skill);
|
|
549
644
|
for (const skill of managedSkills) merged.set(skill.name, skill);
|
|
645
|
+
for (const skill of personalAgentsSkills) merged.set(skill.name, skill);
|
|
646
|
+
for (const skill of projectAgentsSkills) merged.set(skill.name, skill);
|
|
550
647
|
for (const skill of workspaceSkills) merged.set(skill.name, skill);
|
|
551
648
|
return Array.from(merged.values()).map((skill) => {
|
|
552
649
|
let frontmatter = {};
|
|
@@ -593,6 +690,36 @@ function resolveSkillsPromptForRun(params) {
|
|
|
593
690
|
function loadWorkspaceSkillEntries(workspaceDir, opts) {
|
|
594
691
|
return loadSkillEntries(workspaceDir, opts);
|
|
595
692
|
}
|
|
693
|
+
function resolveUniqueSyncedSkillDirName(base, used) {
|
|
694
|
+
if (!used.has(base)) {
|
|
695
|
+
used.add(base);
|
|
696
|
+
return base;
|
|
697
|
+
}
|
|
698
|
+
for (let index = 2; index < 1e4; index += 1) {
|
|
699
|
+
const candidate = `${base}-${index}`;
|
|
700
|
+
if (!used.has(candidate)) {
|
|
701
|
+
used.add(candidate);
|
|
702
|
+
return candidate;
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
let fallbackIndex = 1e4;
|
|
706
|
+
let fallback = `${base}-${fallbackIndex}`;
|
|
707
|
+
while (used.has(fallback)) {
|
|
708
|
+
fallbackIndex += 1;
|
|
709
|
+
fallback = `${base}-${fallbackIndex}`;
|
|
710
|
+
}
|
|
711
|
+
used.add(fallback);
|
|
712
|
+
return fallback;
|
|
713
|
+
}
|
|
714
|
+
function resolveSyncedSkillDestinationPath(params) {
|
|
715
|
+
const sourceDirName = path.basename(params.entry.skill.baseDir).trim();
|
|
716
|
+
if (!sourceDirName || sourceDirName === "." || sourceDirName === "..") return null;
|
|
717
|
+
return resolveSandboxPath({
|
|
718
|
+
filePath: resolveUniqueSyncedSkillDirName(sourceDirName, params.usedDirNames),
|
|
719
|
+
cwd: params.targetSkillsDir,
|
|
720
|
+
root: params.targetSkillsDir
|
|
721
|
+
}).resolved;
|
|
722
|
+
}
|
|
596
723
|
async function syncSkillsToWorkspace(params) {
|
|
597
724
|
const sourceDir = resolveUserPath(params.sourceWorkspaceDir);
|
|
598
725
|
const targetDir = resolveUserPath(params.targetWorkspaceDir);
|
|
@@ -609,8 +736,24 @@ async function syncSkillsToWorkspace(params) {
|
|
|
609
736
|
force: true
|
|
610
737
|
});
|
|
611
738
|
await fsp.mkdir(targetSkillsDir, { recursive: true });
|
|
739
|
+
const usedDirNames = /* @__PURE__ */ new Set();
|
|
612
740
|
for (const entry of entries) {
|
|
613
|
-
|
|
741
|
+
let dest = null;
|
|
742
|
+
try {
|
|
743
|
+
dest = resolveSyncedSkillDestinationPath({
|
|
744
|
+
targetSkillsDir,
|
|
745
|
+
entry,
|
|
746
|
+
usedDirNames
|
|
747
|
+
});
|
|
748
|
+
} catch (error) {
|
|
749
|
+
const message = error instanceof Error ? error.message : JSON.stringify(error);
|
|
750
|
+
console.warn(`[skills] Failed to resolve safe destination for ${entry.skill.name}: ${message}`);
|
|
751
|
+
continue;
|
|
752
|
+
}
|
|
753
|
+
if (!dest) {
|
|
754
|
+
console.warn(`[skills] Failed to resolve safe destination for ${entry.skill.name}: invalid source directory name`);
|
|
755
|
+
continue;
|
|
756
|
+
}
|
|
614
757
|
try {
|
|
615
758
|
await fsp.cp(entry.skill.baseDir, dest, {
|
|
616
759
|
recursive: true,
|
|
@@ -690,4 +833,4 @@ function resolveSkillsInstallPreferences(config) {
|
|
|
690
833
|
}
|
|
691
834
|
|
|
692
835
|
//#endregion
|
|
693
|
-
export {
|
|
836
|
+
export { parseFrontmatterBlock as S, isConfigPathTruthy as _, resolveSkillsPromptForRun as a, resolveSkillConfig as b, resolveBundledSkillsDir as c, resolveSandboxPath as d, resolveSandboxedMediaSource as f, isBundledSkillAllowed as g, hasBinary as h, loadWorkspaceSkillEntries as i, assertMediaNotDataUrl as l, applySkillEnvOverridesFromSnapshot as m, buildWorkspaceSkillCommandSpecs as n, syncSkillsToWorkspace as o, applySkillEnvOverrides as p, buildWorkspaceSkillSnapshot as r, resolvePluginSkillDirs as s, resolveSkillsInstallPreferences as t, assertSandboxPath as u, resolveBundledAllowlist as v, resolveSkillKey as x, resolveConfigPath as y };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
2
|
-
import { b as resolveUserPath, t as CONFIG_DIR } from "./utils-
|
|
3
|
-
import { n as resolveOpenClawPackageRootSync } from "./openclaw-root-
|
|
1
|
+
import { t as createSubsystemLogger } from "./subsystem-DHfJG4gk.js";
|
|
2
|
+
import { b as resolveUserPath, t as CONFIG_DIR } from "./utils-BtIMES3N.js";
|
|
3
|
+
import { n as resolveOpenClawPackageRootSync } from "./openclaw-root-CEnmuBUN.js";
|
|
4
4
|
import { t as parseBooleanValue } from "./boolean-BgXe2hyu.js";
|
|
5
|
-
import { a as MANIFEST_KEY,
|
|
5
|
+
import { a as MANIFEST_KEY, d as resolveMemorySlotDecision, i as LEGACY_MANIFEST_KEYS, l as normalizePluginsConfig, t as loadPluginManifestRegistry, u as resolveEnableState } from "./manifest-registry-jeAPx6AW.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import fs from "node:fs";
|
|
8
|
+
import os from "node:os";
|
|
8
9
|
import path from "node:path";
|
|
9
10
|
import JSON5 from "json5";
|
|
11
|
+
import fs$1 from "node:fs/promises";
|
|
10
12
|
import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
|
|
11
13
|
import YAML from "yaml";
|
|
12
14
|
|
|
@@ -259,8 +261,16 @@ function isBundledSkillAllowed(entry, allowlist) {
|
|
|
259
261
|
}
|
|
260
262
|
function hasBinary(bin) {
|
|
261
263
|
const parts = (process.env.PATH ?? "").split(path.delimiter).filter(Boolean);
|
|
262
|
-
|
|
263
|
-
|
|
264
|
+
const winPathExt = process.env.PATHEXT;
|
|
265
|
+
const winExtensions = winPathExt !== void 0 ? winPathExt.split(";").filter(Boolean) : [
|
|
266
|
+
".EXE",
|
|
267
|
+
".CMD",
|
|
268
|
+
".BAT",
|
|
269
|
+
".COM"
|
|
270
|
+
];
|
|
271
|
+
const extensions = process.platform === "win32" ? ["", ...winExtensions] : [""];
|
|
272
|
+
for (const part of parts) for (const ext of extensions) {
|
|
273
|
+
const candidate = path.join(part, bin + ext);
|
|
264
274
|
try {
|
|
265
275
|
fs.accessSync(candidate, fs.constants.X_OK);
|
|
266
276
|
return true;
|
|
@@ -361,6 +371,83 @@ function applySkillEnvOverridesFromSnapshot(params) {
|
|
|
361
371
|
};
|
|
362
372
|
}
|
|
363
373
|
|
|
374
|
+
//#endregion
|
|
375
|
+
//#region src/agents/sandbox-paths.ts
|
|
376
|
+
const UNICODE_SPACES = /[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g;
|
|
377
|
+
const HTTP_URL_RE = /^https?:\/\//i;
|
|
378
|
+
const DATA_URL_RE = /^data:/i;
|
|
379
|
+
function normalizeUnicodeSpaces(str) {
|
|
380
|
+
return str.replace(UNICODE_SPACES, " ");
|
|
381
|
+
}
|
|
382
|
+
function expandPath(filePath) {
|
|
383
|
+
const normalized = normalizeUnicodeSpaces(filePath);
|
|
384
|
+
if (normalized === "~") return os.homedir();
|
|
385
|
+
if (normalized.startsWith("~/")) return os.homedir() + normalized.slice(1);
|
|
386
|
+
return normalized;
|
|
387
|
+
}
|
|
388
|
+
function resolveToCwd(filePath, cwd) {
|
|
389
|
+
const expanded = expandPath(filePath);
|
|
390
|
+
if (path.isAbsolute(expanded)) return expanded;
|
|
391
|
+
return path.resolve(cwd, expanded);
|
|
392
|
+
}
|
|
393
|
+
function resolveSandboxPath(params) {
|
|
394
|
+
const resolved = resolveToCwd(params.filePath, params.cwd);
|
|
395
|
+
const rootResolved = path.resolve(params.root);
|
|
396
|
+
const relative = path.relative(rootResolved, resolved);
|
|
397
|
+
if (!relative || relative === "") return {
|
|
398
|
+
resolved,
|
|
399
|
+
relative: ""
|
|
400
|
+
};
|
|
401
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) throw new Error(`Path escapes sandbox root (${shortPath(rootResolved)}): ${params.filePath}`);
|
|
402
|
+
return {
|
|
403
|
+
resolved,
|
|
404
|
+
relative
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
async function assertSandboxPath(params) {
|
|
408
|
+
const resolved = resolveSandboxPath(params);
|
|
409
|
+
await assertNoSymlink(resolved.relative, path.resolve(params.root));
|
|
410
|
+
return resolved;
|
|
411
|
+
}
|
|
412
|
+
function assertMediaNotDataUrl(media) {
|
|
413
|
+
const raw = media.trim();
|
|
414
|
+
if (DATA_URL_RE.test(raw)) throw new Error("data: URLs are not supported for media. Use buffer instead.");
|
|
415
|
+
}
|
|
416
|
+
async function resolveSandboxedMediaSource(params) {
|
|
417
|
+
const raw = params.media.trim();
|
|
418
|
+
if (!raw) return raw;
|
|
419
|
+
if (HTTP_URL_RE.test(raw)) return raw;
|
|
420
|
+
let candidate = raw;
|
|
421
|
+
if (/^file:\/\//i.test(candidate)) try {
|
|
422
|
+
candidate = fileURLToPath(candidate);
|
|
423
|
+
} catch {
|
|
424
|
+
throw new Error(`Invalid file:// URL for sandboxed media: ${raw}`);
|
|
425
|
+
}
|
|
426
|
+
return (await assertSandboxPath({
|
|
427
|
+
filePath: candidate,
|
|
428
|
+
cwd: params.sandboxRoot,
|
|
429
|
+
root: params.sandboxRoot
|
|
430
|
+
})).resolved;
|
|
431
|
+
}
|
|
432
|
+
async function assertNoSymlink(relative, root) {
|
|
433
|
+
if (!relative) return;
|
|
434
|
+
const parts = relative.split(path.sep).filter(Boolean);
|
|
435
|
+
let current = root;
|
|
436
|
+
for (const part of parts) {
|
|
437
|
+
current = path.join(current, part);
|
|
438
|
+
try {
|
|
439
|
+
if ((await fs$1.lstat(current)).isSymbolicLink()) throw new Error(`Symlink not allowed in sandbox path: ${current}`);
|
|
440
|
+
} catch (err) {
|
|
441
|
+
if (err.code === "ENOENT") return;
|
|
442
|
+
throw err;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
function shortPath(value) {
|
|
447
|
+
if (value.startsWith(os.homedir())) return `~${value.slice(os.homedir().length)}`;
|
|
448
|
+
return value;
|
|
449
|
+
}
|
|
450
|
+
|
|
364
451
|
//#endregion
|
|
365
452
|
//#region src/agents/skills/bundled-dir.ts
|
|
366
453
|
function looksLikeSkillsDir(dir) {
|
|
@@ -518,7 +605,7 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
518
605
|
return [];
|
|
519
606
|
};
|
|
520
607
|
const managedSkillsDir = opts?.managedSkillsDir ?? path.join(CONFIG_DIR, "skills");
|
|
521
|
-
const workspaceSkillsDir = path.
|
|
608
|
+
const workspaceSkillsDir = path.resolve(workspaceDir, "skills");
|
|
522
609
|
const bundledSkillsDir = opts?.bundledSkillsDir ?? resolveBundledSkillsDir();
|
|
523
610
|
const extraDirs = (opts?.config?.skills?.load?.extraDirs ?? []).map((d) => typeof d === "string" ? d.trim() : "").filter(Boolean);
|
|
524
611
|
const pluginSkillDirs = resolvePluginSkillDirs({
|
|
@@ -540,6 +627,14 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
540
627
|
dir: managedSkillsDir,
|
|
541
628
|
source: "openclaw-managed"
|
|
542
629
|
});
|
|
630
|
+
const personalAgentsSkills = loadSkills({
|
|
631
|
+
dir: path.resolve(os.homedir(), ".agents", "skills"),
|
|
632
|
+
source: "agents-skills-personal"
|
|
633
|
+
});
|
|
634
|
+
const projectAgentsSkills = loadSkills({
|
|
635
|
+
dir: path.resolve(workspaceDir, ".agents", "skills"),
|
|
636
|
+
source: "agents-skills-project"
|
|
637
|
+
});
|
|
543
638
|
const workspaceSkills = loadSkills({
|
|
544
639
|
dir: workspaceSkillsDir,
|
|
545
640
|
source: "openclaw-workspace"
|
|
@@ -548,6 +643,8 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
548
643
|
for (const skill of extraSkills) merged.set(skill.name, skill);
|
|
549
644
|
for (const skill of bundledSkills) merged.set(skill.name, skill);
|
|
550
645
|
for (const skill of managedSkills) merged.set(skill.name, skill);
|
|
646
|
+
for (const skill of personalAgentsSkills) merged.set(skill.name, skill);
|
|
647
|
+
for (const skill of projectAgentsSkills) merged.set(skill.name, skill);
|
|
551
648
|
for (const skill of workspaceSkills) merged.set(skill.name, skill);
|
|
552
649
|
return Array.from(merged.values()).map((skill) => {
|
|
553
650
|
let frontmatter = {};
|
|
@@ -594,6 +691,36 @@ function resolveSkillsPromptForRun(params) {
|
|
|
594
691
|
function loadWorkspaceSkillEntries(workspaceDir, opts) {
|
|
595
692
|
return loadSkillEntries(workspaceDir, opts);
|
|
596
693
|
}
|
|
694
|
+
function resolveUniqueSyncedSkillDirName(base, used) {
|
|
695
|
+
if (!used.has(base)) {
|
|
696
|
+
used.add(base);
|
|
697
|
+
return base;
|
|
698
|
+
}
|
|
699
|
+
for (let index = 2; index < 1e4; index += 1) {
|
|
700
|
+
const candidate = `${base}-${index}`;
|
|
701
|
+
if (!used.has(candidate)) {
|
|
702
|
+
used.add(candidate);
|
|
703
|
+
return candidate;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
let fallbackIndex = 1e4;
|
|
707
|
+
let fallback = `${base}-${fallbackIndex}`;
|
|
708
|
+
while (used.has(fallback)) {
|
|
709
|
+
fallbackIndex += 1;
|
|
710
|
+
fallback = `${base}-${fallbackIndex}`;
|
|
711
|
+
}
|
|
712
|
+
used.add(fallback);
|
|
713
|
+
return fallback;
|
|
714
|
+
}
|
|
715
|
+
function resolveSyncedSkillDestinationPath(params) {
|
|
716
|
+
const sourceDirName = path.basename(params.entry.skill.baseDir).trim();
|
|
717
|
+
if (!sourceDirName || sourceDirName === "." || sourceDirName === "..") return null;
|
|
718
|
+
return resolveSandboxPath({
|
|
719
|
+
filePath: resolveUniqueSyncedSkillDirName(sourceDirName, params.usedDirNames),
|
|
720
|
+
cwd: params.targetSkillsDir,
|
|
721
|
+
root: params.targetSkillsDir
|
|
722
|
+
}).resolved;
|
|
723
|
+
}
|
|
597
724
|
async function syncSkillsToWorkspace(params) {
|
|
598
725
|
const sourceDir = resolveUserPath(params.sourceWorkspaceDir);
|
|
599
726
|
const targetDir = resolveUserPath(params.targetWorkspaceDir);
|
|
@@ -610,8 +737,24 @@ async function syncSkillsToWorkspace(params) {
|
|
|
610
737
|
force: true
|
|
611
738
|
});
|
|
612
739
|
await fsp.mkdir(targetSkillsDir, { recursive: true });
|
|
740
|
+
const usedDirNames = /* @__PURE__ */ new Set();
|
|
613
741
|
for (const entry of entries) {
|
|
614
|
-
|
|
742
|
+
let dest = null;
|
|
743
|
+
try {
|
|
744
|
+
dest = resolveSyncedSkillDestinationPath({
|
|
745
|
+
targetSkillsDir,
|
|
746
|
+
entry,
|
|
747
|
+
usedDirNames
|
|
748
|
+
});
|
|
749
|
+
} catch (error) {
|
|
750
|
+
const message = error instanceof Error ? error.message : JSON.stringify(error);
|
|
751
|
+
console.warn(`[skills] Failed to resolve safe destination for ${entry.skill.name}: ${message}`);
|
|
752
|
+
continue;
|
|
753
|
+
}
|
|
754
|
+
if (!dest) {
|
|
755
|
+
console.warn(`[skills] Failed to resolve safe destination for ${entry.skill.name}: invalid source directory name`);
|
|
756
|
+
continue;
|
|
757
|
+
}
|
|
615
758
|
try {
|
|
616
759
|
await fsp.cp(entry.skill.baseDir, dest, {
|
|
617
760
|
recursive: true,
|
|
@@ -691,4 +834,4 @@ function resolveSkillsInstallPreferences(config) {
|
|
|
691
834
|
}
|
|
692
835
|
|
|
693
836
|
//#endregion
|
|
694
|
-
export {
|
|
837
|
+
export { parseFrontmatterBlock as S, isConfigPathTruthy as _, resolveSkillsPromptForRun as a, resolveSkillConfig as b, resolveBundledSkillsDir as c, resolveSandboxPath as d, resolveSandboxedMediaSource as f, isBundledSkillAllowed as g, hasBinary as h, loadWorkspaceSkillEntries as i, assertMediaNotDataUrl as l, applySkillEnvOverridesFromSnapshot as m, buildWorkspaceSkillCommandSpecs as n, syncSkillsToWorkspace as o, applySkillEnvOverrides as p, buildWorkspaceSkillSnapshot as r, resolvePluginSkillDirs as s, resolveSkillsInstallPreferences as t, assertSandboxPath as u, resolveBundledAllowlist as v, resolveSkillKey as x, resolveConfigPath as y };
|