@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,13 +1,177 @@
|
|
|
1
1
|
import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-BZtyHNCi.js";
|
|
2
|
-
import {
|
|
3
|
-
import { g as resolveUserPath, p as pathExists } from "./utils-dp_OM900.js";
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-CiH_vkWn.js";
|
|
2
|
+
import { I as pathExists, t as runCommandWithTimeout, z as resolveUserPath } from "./exec-_PSUrMP8.js";
|
|
5
3
|
import fs from "node:fs/promises";
|
|
6
4
|
import os from "node:os";
|
|
7
5
|
import path from "node:path";
|
|
8
6
|
import fs$1 from "node:fs";
|
|
9
7
|
import { fileURLToPath } from "node:url";
|
|
10
8
|
|
|
9
|
+
//#region src/sessions/session-key-utils.ts
|
|
10
|
+
function parseAgentSessionKey(sessionKey) {
|
|
11
|
+
const raw = (sessionKey ?? "").trim();
|
|
12
|
+
if (!raw) return null;
|
|
13
|
+
const parts = raw.split(":").filter(Boolean);
|
|
14
|
+
if (parts.length < 3) return null;
|
|
15
|
+
if (parts[0] !== "agent") return null;
|
|
16
|
+
const agentId = parts[1]?.trim();
|
|
17
|
+
const rest = parts.slice(2).join(":");
|
|
18
|
+
if (!agentId || !rest) return null;
|
|
19
|
+
return {
|
|
20
|
+
agentId,
|
|
21
|
+
rest
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isSubagentSessionKey(sessionKey) {
|
|
25
|
+
const raw = (sessionKey ?? "").trim();
|
|
26
|
+
if (!raw) return false;
|
|
27
|
+
if (raw.toLowerCase().startsWith("subagent:")) return true;
|
|
28
|
+
const parsed = parseAgentSessionKey(raw);
|
|
29
|
+
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("subagent:"));
|
|
30
|
+
}
|
|
31
|
+
function isAcpSessionKey(sessionKey) {
|
|
32
|
+
const raw = (sessionKey ?? "").trim();
|
|
33
|
+
if (!raw) return false;
|
|
34
|
+
if (raw.toLowerCase().startsWith("acp:")) return true;
|
|
35
|
+
const parsed = parseAgentSessionKey(raw);
|
|
36
|
+
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("acp:"));
|
|
37
|
+
}
|
|
38
|
+
const THREAD_SESSION_MARKERS = [":thread:", ":topic:"];
|
|
39
|
+
function resolveThreadParentSessionKey(sessionKey) {
|
|
40
|
+
const raw = (sessionKey ?? "").trim();
|
|
41
|
+
if (!raw) return null;
|
|
42
|
+
const normalized = raw.toLowerCase();
|
|
43
|
+
let idx = -1;
|
|
44
|
+
for (const marker of THREAD_SESSION_MARKERS) {
|
|
45
|
+
const candidate = normalized.lastIndexOf(marker);
|
|
46
|
+
if (candidate > idx) idx = candidate;
|
|
47
|
+
}
|
|
48
|
+
if (idx <= 0) return null;
|
|
49
|
+
const parent = raw.slice(0, idx).trim();
|
|
50
|
+
return parent ? parent : null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/routing/session-key.ts
|
|
55
|
+
const DEFAULT_AGENT_ID = "main";
|
|
56
|
+
const DEFAULT_MAIN_KEY = "main";
|
|
57
|
+
const DEFAULT_ACCOUNT_ID = "default";
|
|
58
|
+
const VALID_ID_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/i;
|
|
59
|
+
const INVALID_CHARS_RE = /[^a-z0-9_-]+/g;
|
|
60
|
+
const LEADING_DASH_RE = /^-+/;
|
|
61
|
+
const TRAILING_DASH_RE = /-+$/;
|
|
62
|
+
function normalizeToken(value) {
|
|
63
|
+
return (value ?? "").trim().toLowerCase();
|
|
64
|
+
}
|
|
65
|
+
function normalizeMainKey(value) {
|
|
66
|
+
const trimmed = (value ?? "").trim();
|
|
67
|
+
return trimmed ? trimmed.toLowerCase() : DEFAULT_MAIN_KEY;
|
|
68
|
+
}
|
|
69
|
+
function resolveAgentIdFromSessionKey(sessionKey) {
|
|
70
|
+
return normalizeAgentId(parseAgentSessionKey(sessionKey)?.agentId ?? DEFAULT_AGENT_ID);
|
|
71
|
+
}
|
|
72
|
+
function classifySessionKeyShape(sessionKey) {
|
|
73
|
+
const raw = (sessionKey ?? "").trim();
|
|
74
|
+
if (!raw) return "missing";
|
|
75
|
+
if (parseAgentSessionKey(raw)) return "agent";
|
|
76
|
+
return raw.toLowerCase().startsWith("agent:") ? "malformed_agent" : "legacy_or_alias";
|
|
77
|
+
}
|
|
78
|
+
function normalizeAgentId(value) {
|
|
79
|
+
const trimmed = (value ?? "").trim();
|
|
80
|
+
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
81
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
82
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
83
|
+
}
|
|
84
|
+
function sanitizeAgentId(value) {
|
|
85
|
+
const trimmed = (value ?? "").trim();
|
|
86
|
+
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
87
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
88
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
89
|
+
}
|
|
90
|
+
function normalizeAccountId(value) {
|
|
91
|
+
const trimmed = (value ?? "").trim();
|
|
92
|
+
if (!trimmed) return DEFAULT_ACCOUNT_ID;
|
|
93
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
94
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_ACCOUNT_ID;
|
|
95
|
+
}
|
|
96
|
+
function buildAgentMainSessionKey(params) {
|
|
97
|
+
return `agent:${normalizeAgentId(params.agentId)}:${normalizeMainKey(params.mainKey)}`;
|
|
98
|
+
}
|
|
99
|
+
function buildAgentPeerSessionKey(params) {
|
|
100
|
+
const peerKind = params.peerKind ?? "direct";
|
|
101
|
+
if (peerKind === "direct") {
|
|
102
|
+
const dmScope = params.dmScope ?? "main";
|
|
103
|
+
let peerId = (params.peerId ?? "").trim();
|
|
104
|
+
const linkedPeerId = dmScope === "main" ? null : resolveLinkedPeerId({
|
|
105
|
+
identityLinks: params.identityLinks,
|
|
106
|
+
channel: params.channel,
|
|
107
|
+
peerId
|
|
108
|
+
});
|
|
109
|
+
if (linkedPeerId) peerId = linkedPeerId;
|
|
110
|
+
peerId = peerId.toLowerCase();
|
|
111
|
+
if (dmScope === "per-account-channel-peer" && peerId) {
|
|
112
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
113
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
114
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${accountId}:direct:${peerId}`;
|
|
115
|
+
}
|
|
116
|
+
if (dmScope === "per-channel-peer" && peerId) {
|
|
117
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
118
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:direct:${peerId}`;
|
|
119
|
+
}
|
|
120
|
+
if (dmScope === "per-peer" && peerId) return `agent:${normalizeAgentId(params.agentId)}:direct:${peerId}`;
|
|
121
|
+
return buildAgentMainSessionKey({
|
|
122
|
+
agentId: params.agentId,
|
|
123
|
+
mainKey: params.mainKey
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
127
|
+
const peerId = ((params.peerId ?? "").trim() || "unknown").toLowerCase();
|
|
128
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${peerKind}:${peerId}`;
|
|
129
|
+
}
|
|
130
|
+
function resolveLinkedPeerId(params) {
|
|
131
|
+
const identityLinks = params.identityLinks;
|
|
132
|
+
if (!identityLinks) return null;
|
|
133
|
+
const peerId = params.peerId.trim();
|
|
134
|
+
if (!peerId) return null;
|
|
135
|
+
const candidates = /* @__PURE__ */ new Set();
|
|
136
|
+
const rawCandidate = normalizeToken(peerId);
|
|
137
|
+
if (rawCandidate) candidates.add(rawCandidate);
|
|
138
|
+
const channel = normalizeToken(params.channel);
|
|
139
|
+
if (channel) {
|
|
140
|
+
const scopedCandidate = normalizeToken(`${channel}:${peerId}`);
|
|
141
|
+
if (scopedCandidate) candidates.add(scopedCandidate);
|
|
142
|
+
}
|
|
143
|
+
if (candidates.size === 0) return null;
|
|
144
|
+
for (const [canonical, ids] of Object.entries(identityLinks)) {
|
|
145
|
+
const canonicalName = canonical.trim();
|
|
146
|
+
if (!canonicalName) continue;
|
|
147
|
+
if (!Array.isArray(ids)) continue;
|
|
148
|
+
for (const id of ids) {
|
|
149
|
+
const normalized = normalizeToken(id);
|
|
150
|
+
if (normalized && candidates.has(normalized)) return canonicalName;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
function buildGroupHistoryKey(params) {
|
|
156
|
+
const channel = normalizeToken(params.channel) || "unknown";
|
|
157
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
158
|
+
const peerId = params.peerId.trim().toLowerCase() || "unknown";
|
|
159
|
+
return `${channel}:${accountId}:${params.peerKind}:${peerId}`;
|
|
160
|
+
}
|
|
161
|
+
function resolveThreadSessionKeys(params) {
|
|
162
|
+
const threadId = (params.threadId ?? "").trim();
|
|
163
|
+
if (!threadId) return {
|
|
164
|
+
sessionKey: params.baseSessionKey,
|
|
165
|
+
parentSessionKey: void 0
|
|
166
|
+
};
|
|
167
|
+
const normalizedThreadId = threadId.toLowerCase();
|
|
168
|
+
return {
|
|
169
|
+
sessionKey: params.useSuffix ?? true ? `${params.baseSessionKey}:thread:${normalizedThreadId}` : params.baseSessionKey,
|
|
170
|
+
parentSessionKey: params.parentSessionKey
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
11
175
|
//#region src/infra/openclaw-root.ts
|
|
12
176
|
const CORE_PACKAGE_NAMES = new Set(["openclaw"]);
|
|
13
177
|
async function readPackageName(dir) {
|
|
@@ -53,6 +217,10 @@ function findPackageRootSync(startDir, maxDepth = 12) {
|
|
|
53
217
|
function candidateDirsFromArgv1(argv1) {
|
|
54
218
|
const normalized = path.resolve(argv1);
|
|
55
219
|
const candidates = [path.dirname(normalized)];
|
|
220
|
+
try {
|
|
221
|
+
const resolved = fs$1.realpathSync(normalized);
|
|
222
|
+
if (resolved !== normalized) candidates.push(path.dirname(resolved));
|
|
223
|
+
} catch {}
|
|
56
224
|
const parts = normalized.split(path.sep);
|
|
57
225
|
const binIndex = parts.lastIndexOf(".bin");
|
|
58
226
|
if (binIndex > 0 && parts[binIndex - 1] === "node_modules") {
|
|
@@ -139,6 +307,8 @@ const DEFAULT_HEARTBEAT_FILENAME = "HEARTBEAT.md";
|
|
|
139
307
|
const DEFAULT_BOOTSTRAP_FILENAME = "BOOTSTRAP.md";
|
|
140
308
|
const DEFAULT_MEMORY_FILENAME = "MEMORY.md";
|
|
141
309
|
const DEFAULT_MEMORY_ALT_FILENAME = "memory.md";
|
|
310
|
+
const workspaceTemplateCache = /* @__PURE__ */ new Map();
|
|
311
|
+
let gitAvailabilityPromise = null;
|
|
142
312
|
function stripFrontMatter(content) {
|
|
143
313
|
if (!content.startsWith("---")) return content;
|
|
144
314
|
const endIndex = content.indexOf("\n---", 3);
|
|
@@ -149,12 +319,23 @@ function stripFrontMatter(content) {
|
|
|
149
319
|
return trimmed;
|
|
150
320
|
}
|
|
151
321
|
async function loadTemplate(name) {
|
|
152
|
-
const
|
|
153
|
-
|
|
322
|
+
const cached = workspaceTemplateCache.get(name);
|
|
323
|
+
if (cached) return cached;
|
|
324
|
+
const pending = (async () => {
|
|
325
|
+
const templateDir = await resolveWorkspaceTemplateDir();
|
|
326
|
+
const templatePath = path.join(templateDir, name);
|
|
327
|
+
try {
|
|
328
|
+
return stripFrontMatter(await fs.readFile(templatePath, "utf-8"));
|
|
329
|
+
} catch {
|
|
330
|
+
throw new Error(`Missing workspace template: ${name} (${templatePath}). Ensure docs/reference/templates are packaged.`);
|
|
331
|
+
}
|
|
332
|
+
})();
|
|
333
|
+
workspaceTemplateCache.set(name, pending);
|
|
154
334
|
try {
|
|
155
|
-
return
|
|
156
|
-
} catch {
|
|
157
|
-
|
|
335
|
+
return await pending;
|
|
336
|
+
} catch (error) {
|
|
337
|
+
workspaceTemplateCache.delete(name);
|
|
338
|
+
throw error;
|
|
158
339
|
}
|
|
159
340
|
}
|
|
160
341
|
async function writeFileIfMissing(filePath, content) {
|
|
@@ -176,11 +357,15 @@ async function hasGitRepo(dir) {
|
|
|
176
357
|
}
|
|
177
358
|
}
|
|
178
359
|
async function isGitAvailable() {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
360
|
+
if (gitAvailabilityPromise) return gitAvailabilityPromise;
|
|
361
|
+
gitAvailabilityPromise = (async () => {
|
|
362
|
+
try {
|
|
363
|
+
return (await runCommandWithTimeout(["git", "--version"], { timeoutMs: 2e3 })).code === 0;
|
|
364
|
+
} catch {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
})();
|
|
368
|
+
return gitAvailabilityPromise;
|
|
184
369
|
}
|
|
185
370
|
async function ensureGitRepo(dir, isBrandNewWorkspace) {
|
|
186
371
|
if (!isBrandNewWorkspace) return;
|
|
@@ -439,4 +624,4 @@ function resolveAgentDir(cfg, agentId) {
|
|
|
439
624
|
}
|
|
440
625
|
|
|
441
626
|
//#endregion
|
|
442
|
-
export { resolveOpenClawPackageRootSync as C, resolveOpenClawPackageRoot as S, DEFAULT_TOOLS_FILENAME as _, resolveAgentModelPrimary as a, filterBootstrapFilesForSession as b, resolveDefaultAgentId as c, DEFAULT_AGENTS_FILENAME as d, DEFAULT_AGENT_WORKSPACE_DIR as f, DEFAULT_SOUL_FILENAME as g, DEFAULT_IDENTITY_FILENAME as h, resolveAgentModelFallbacksOverride as i, resolveSessionAgentId as l, DEFAULT_HEARTBEAT_FILENAME as m, resolveAgentConfig as n, resolveAgentSkillsFilter as o, DEFAULT_BOOTSTRAP_FILENAME as p, resolveAgentDir as r, resolveAgentWorkspaceDir as s, listAgentIds as t, resolveSessionAgentIds as u, DEFAULT_USER_FILENAME as v, loadWorkspaceBootstrapFiles as x, ensureAgentWorkspace as y };
|
|
627
|
+
export { classifySessionKeyShape as A, resolveThreadParentSessionKey as B, resolveOpenClawPackageRootSync as C, buildAgentMainSessionKey as D, DEFAULT_MAIN_KEY as E, resolveThreadSessionKeys as F, sanitizeAgentId as I, isAcpSessionKey as L, normalizeAgentId as M, normalizeMainKey as N, buildAgentPeerSessionKey as O, resolveAgentIdFromSessionKey as P, isSubagentSessionKey as R, resolveOpenClawPackageRoot as S, DEFAULT_AGENT_ID as T, DEFAULT_TOOLS_FILENAME as _, resolveAgentModelPrimary as a, filterBootstrapFilesForSession as b, resolveDefaultAgentId as c, DEFAULT_AGENTS_FILENAME as d, DEFAULT_AGENT_WORKSPACE_DIR as f, DEFAULT_SOUL_FILENAME as g, DEFAULT_IDENTITY_FILENAME as h, resolveAgentModelFallbacksOverride as i, normalizeAccountId as j, buildGroupHistoryKey as k, resolveSessionAgentId as l, DEFAULT_HEARTBEAT_FILENAME as m, resolveAgentConfig as n, resolveAgentSkillsFilter as o, DEFAULT_BOOTSTRAP_FILENAME as p, resolveAgentDir as r, resolveAgentWorkspaceDir as s, listAgentIds as t, resolveSessionAgentIds as u, DEFAULT_USER_FILENAME as v, DEFAULT_ACCOUNT_ID as w, loadWorkspaceBootstrapFiles as x, ensureAgentWorkspace as y, parseAgentSessionKey as z };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { g as resolveStateDir, y as resolveRequiredHomeDir } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { b as resolveUserPath, g as pathExists } from "./utils-
|
|
2
|
+
import { b as resolveUserPath, g as pathExists } from "./utils-BtIMES3N.js";
|
|
3
3
|
import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
5
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-BPQSKwGa.js";
|
|
5
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-CEnmuBUN.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import os from "node:os";
|
|
8
8
|
import path from "node:path";
|
|
@@ -61,6 +61,8 @@ const DEFAULT_HEARTBEAT_FILENAME = "HEARTBEAT.md";
|
|
|
61
61
|
const DEFAULT_BOOTSTRAP_FILENAME = "BOOTSTRAP.md";
|
|
62
62
|
const DEFAULT_MEMORY_FILENAME = "MEMORY.md";
|
|
63
63
|
const DEFAULT_MEMORY_ALT_FILENAME = "memory.md";
|
|
64
|
+
const workspaceTemplateCache = /* @__PURE__ */ new Map();
|
|
65
|
+
let gitAvailabilityPromise = null;
|
|
64
66
|
function stripFrontMatter(content) {
|
|
65
67
|
if (!content.startsWith("---")) return content;
|
|
66
68
|
const endIndex = content.indexOf("\n---", 3);
|
|
@@ -71,12 +73,23 @@ function stripFrontMatter(content) {
|
|
|
71
73
|
return trimmed;
|
|
72
74
|
}
|
|
73
75
|
async function loadTemplate(name) {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
+
const cached = workspaceTemplateCache.get(name);
|
|
77
|
+
if (cached) return cached;
|
|
78
|
+
const pending = (async () => {
|
|
79
|
+
const templateDir = await resolveWorkspaceTemplateDir();
|
|
80
|
+
const templatePath = path.join(templateDir, name);
|
|
81
|
+
try {
|
|
82
|
+
return stripFrontMatter(await fs.readFile(templatePath, "utf-8"));
|
|
83
|
+
} catch {
|
|
84
|
+
throw new Error(`Missing workspace template: ${name} (${templatePath}). Ensure docs/reference/templates are packaged.`);
|
|
85
|
+
}
|
|
86
|
+
})();
|
|
87
|
+
workspaceTemplateCache.set(name, pending);
|
|
76
88
|
try {
|
|
77
|
-
return
|
|
78
|
-
} catch {
|
|
79
|
-
|
|
89
|
+
return await pending;
|
|
90
|
+
} catch (error) {
|
|
91
|
+
workspaceTemplateCache.delete(name);
|
|
92
|
+
throw error;
|
|
80
93
|
}
|
|
81
94
|
}
|
|
82
95
|
async function writeFileIfMissing(filePath, content) {
|
|
@@ -98,11 +111,15 @@ async function hasGitRepo(dir) {
|
|
|
98
111
|
}
|
|
99
112
|
}
|
|
100
113
|
async function isGitAvailable() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
114
|
+
if (gitAvailabilityPromise) return gitAvailabilityPromise;
|
|
115
|
+
gitAvailabilityPromise = (async () => {
|
|
116
|
+
try {
|
|
117
|
+
return (await runCommandWithTimeout(["git", "--version"], { timeoutMs: 2e3 })).code === 0;
|
|
118
|
+
} catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
})();
|
|
122
|
+
return gitAvailabilityPromise;
|
|
106
123
|
}
|
|
107
124
|
async function ensureGitRepo(dir, isBrandNewWorkspace) {
|
|
108
125
|
if (!isBrandNewWorkspace) return;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-rb94mUrR.js";
|
|
2
|
-
import { F as pathExists, R as resolveUserPath, t as runCommandWithTimeout } from "./exec-
|
|
2
|
+
import { F as pathExists, R as resolveUserPath, t as runCommandWithTimeout } from "./exec-EKUaAU91.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import os from "node:os";
|
|
@@ -217,6 +217,10 @@ function findPackageRootSync(startDir, maxDepth = 12) {
|
|
|
217
217
|
function candidateDirsFromArgv1(argv1) {
|
|
218
218
|
const normalized = path.resolve(argv1);
|
|
219
219
|
const candidates = [path.dirname(normalized)];
|
|
220
|
+
try {
|
|
221
|
+
const resolved = fs.realpathSync(normalized);
|
|
222
|
+
if (resolved !== normalized) candidates.push(path.dirname(resolved));
|
|
223
|
+
} catch {}
|
|
220
224
|
const parts = normalized.split(path.sep);
|
|
221
225
|
const binIndex = parts.lastIndexOf(".bin");
|
|
222
226
|
if (binIndex > 0 && parts[binIndex - 1] === "node_modules") {
|
|
@@ -303,6 +307,8 @@ const DEFAULT_HEARTBEAT_FILENAME = "HEARTBEAT.md";
|
|
|
303
307
|
const DEFAULT_BOOTSTRAP_FILENAME = "BOOTSTRAP.md";
|
|
304
308
|
const DEFAULT_MEMORY_FILENAME = "MEMORY.md";
|
|
305
309
|
const DEFAULT_MEMORY_ALT_FILENAME = "memory.md";
|
|
310
|
+
const workspaceTemplateCache = /* @__PURE__ */ new Map();
|
|
311
|
+
let gitAvailabilityPromise = null;
|
|
306
312
|
function stripFrontMatter(content) {
|
|
307
313
|
if (!content.startsWith("---")) return content;
|
|
308
314
|
const endIndex = content.indexOf("\n---", 3);
|
|
@@ -313,12 +319,23 @@ function stripFrontMatter(content) {
|
|
|
313
319
|
return trimmed;
|
|
314
320
|
}
|
|
315
321
|
async function loadTemplate(name) {
|
|
316
|
-
const
|
|
317
|
-
|
|
322
|
+
const cached = workspaceTemplateCache.get(name);
|
|
323
|
+
if (cached) return cached;
|
|
324
|
+
const pending = (async () => {
|
|
325
|
+
const templateDir = await resolveWorkspaceTemplateDir();
|
|
326
|
+
const templatePath = path.join(templateDir, name);
|
|
327
|
+
try {
|
|
328
|
+
return stripFrontMatter(await fs$1.readFile(templatePath, "utf-8"));
|
|
329
|
+
} catch {
|
|
330
|
+
throw new Error(`Missing workspace template: ${name} (${templatePath}). Ensure docs/reference/templates are packaged.`);
|
|
331
|
+
}
|
|
332
|
+
})();
|
|
333
|
+
workspaceTemplateCache.set(name, pending);
|
|
318
334
|
try {
|
|
319
|
-
return
|
|
320
|
-
} catch {
|
|
321
|
-
|
|
335
|
+
return await pending;
|
|
336
|
+
} catch (error) {
|
|
337
|
+
workspaceTemplateCache.delete(name);
|
|
338
|
+
throw error;
|
|
322
339
|
}
|
|
323
340
|
}
|
|
324
341
|
async function writeFileIfMissing(filePath, content) {
|
|
@@ -340,11 +357,15 @@ async function hasGitRepo(dir) {
|
|
|
340
357
|
}
|
|
341
358
|
}
|
|
342
359
|
async function isGitAvailable() {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
360
|
+
if (gitAvailabilityPromise) return gitAvailabilityPromise;
|
|
361
|
+
gitAvailabilityPromise = (async () => {
|
|
362
|
+
try {
|
|
363
|
+
return (await runCommandWithTimeout(["git", "--version"], { timeoutMs: 2e3 })).code === 0;
|
|
364
|
+
} catch {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
})();
|
|
368
|
+
return gitAvailabilityPromise;
|
|
348
369
|
}
|
|
349
370
|
async function ensureGitRepo(dir, isBrandNewWorkspace) {
|
|
350
371
|
if (!isBrandNewWorkspace) return;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "./paths-BZtyHNCi.js";
|
|
2
|
+
import "./agent-scope-DASgjz2_.js";
|
|
3
|
+
import { Y as logVerbose, Z as shouldLogVerbose } from "./exec-_PSUrMP8.js";
|
|
4
|
+
import "./pi-embedded-helpers-ZI1UCSRM.js";
|
|
5
|
+
import "./model-auth-BvODRbV0.js";
|
|
6
|
+
import "./config-D8pgDSNo.js";
|
|
7
|
+
import "./github-copilot-token-DatTe1w-.js";
|
|
8
|
+
import "./pi-model-discovery-DqgqUyAv.js";
|
|
9
|
+
import "./chrome-n_3rtK2c.js";
|
|
10
|
+
import "./paths-SFzVNGbc.js";
|
|
11
|
+
import "./image-bodq5cUH.js";
|
|
12
|
+
import "./redact-BrXLgslJ.js";
|
|
13
|
+
import "./fetch-Dm-nCwa_.js";
|
|
14
|
+
import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-B7CKBC80.js";
|
|
15
|
+
|
|
16
|
+
//#region src/media-understanding/audio-preflight.ts
|
|
17
|
+
/**
|
|
18
|
+
* Transcribes the first audio attachment BEFORE mention checking.
|
|
19
|
+
* This allows voice notes to be processed in group chats with requireMention: true.
|
|
20
|
+
* Returns the transcript or undefined if transcription fails or no audio is found.
|
|
21
|
+
*/
|
|
22
|
+
async function transcribeFirstAudio(params) {
|
|
23
|
+
const { ctx, cfg } = params;
|
|
24
|
+
const audioConfig = cfg.tools?.media?.audio;
|
|
25
|
+
if (!audioConfig || audioConfig.enabled === false) return;
|
|
26
|
+
const attachments = normalizeMediaAttachments(ctx);
|
|
27
|
+
if (!attachments || attachments.length === 0) return;
|
|
28
|
+
const firstAudio = attachments.find((att) => att && isAudioAttachment(att) && !att.alreadyTranscribed);
|
|
29
|
+
if (!firstAudio) return;
|
|
30
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribing attachment ${firstAudio.index} for mention check`);
|
|
31
|
+
const providerRegistry = buildProviderRegistry(params.providers);
|
|
32
|
+
const cache = createMediaAttachmentCache(attachments);
|
|
33
|
+
try {
|
|
34
|
+
const result = await runCapability({
|
|
35
|
+
capability: "audio",
|
|
36
|
+
cfg,
|
|
37
|
+
ctx,
|
|
38
|
+
attachments: cache,
|
|
39
|
+
media: attachments,
|
|
40
|
+
agentDir: params.agentDir,
|
|
41
|
+
providerRegistry,
|
|
42
|
+
config: audioConfig,
|
|
43
|
+
activeModel: params.activeModel
|
|
44
|
+
});
|
|
45
|
+
if (!result || result.outputs.length === 0) return;
|
|
46
|
+
const audioOutput = result.outputs.find((output) => output.kind === "audio.transcription");
|
|
47
|
+
if (!audioOutput || !audioOutput.text) return;
|
|
48
|
+
firstAudio.alreadyTranscribed = true;
|
|
49
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribed ${audioOutput.text.length} chars from attachment ${firstAudio.index}`);
|
|
50
|
+
return audioOutput.text;
|
|
51
|
+
} catch (err) {
|
|
52
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcription failed: ${String(err)}`);
|
|
53
|
+
return;
|
|
54
|
+
} finally {
|
|
55
|
+
await cache.cleanup();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
export { transcribeFirstAudio };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "./paths-rb94mUrR.js";
|
|
2
|
+
import "./agent-scope-okUOVjE5.js";
|
|
3
|
+
import { J as logVerbose, X as shouldLogVerbose } from "./exec-EKUaAU91.js";
|
|
4
|
+
import "./model-selection-vC82fEiP.js";
|
|
5
|
+
import "./github-copilot-token-c9Igt3ZH.js";
|
|
6
|
+
import "./pi-embedded-helpers-D0mqOwwq.js";
|
|
7
|
+
import "./config-7NCznPmF.js";
|
|
8
|
+
import "./pi-model-discovery-EhM2JAQo.js";
|
|
9
|
+
import "./chrome-Bx24uq7B.js";
|
|
10
|
+
import "./paths-DWYi0R_2.js";
|
|
11
|
+
import "./image-BaJKrmCs.js";
|
|
12
|
+
import "./redact-BIMJ3ntQ.js";
|
|
13
|
+
import "./fetch-Bz1WxfzV.js";
|
|
14
|
+
import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-Bv0BmJPF.js";
|
|
15
|
+
|
|
16
|
+
//#region src/media-understanding/audio-preflight.ts
|
|
17
|
+
/**
|
|
18
|
+
* Transcribes the first audio attachment BEFORE mention checking.
|
|
19
|
+
* This allows voice notes to be processed in group chats with requireMention: true.
|
|
20
|
+
* Returns the transcript or undefined if transcription fails or no audio is found.
|
|
21
|
+
*/
|
|
22
|
+
async function transcribeFirstAudio(params) {
|
|
23
|
+
const { ctx, cfg } = params;
|
|
24
|
+
const audioConfig = cfg.tools?.media?.audio;
|
|
25
|
+
if (!audioConfig || audioConfig.enabled === false) return;
|
|
26
|
+
const attachments = normalizeMediaAttachments(ctx);
|
|
27
|
+
if (!attachments || attachments.length === 0) return;
|
|
28
|
+
const firstAudio = attachments.find((att) => att && isAudioAttachment(att) && !att.alreadyTranscribed);
|
|
29
|
+
if (!firstAudio) return;
|
|
30
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribing attachment ${firstAudio.index} for mention check`);
|
|
31
|
+
const providerRegistry = buildProviderRegistry(params.providers);
|
|
32
|
+
const cache = createMediaAttachmentCache(attachments);
|
|
33
|
+
try {
|
|
34
|
+
const result = await runCapability({
|
|
35
|
+
capability: "audio",
|
|
36
|
+
cfg,
|
|
37
|
+
ctx,
|
|
38
|
+
attachments: cache,
|
|
39
|
+
media: attachments,
|
|
40
|
+
agentDir: params.agentDir,
|
|
41
|
+
providerRegistry,
|
|
42
|
+
config: audioConfig,
|
|
43
|
+
activeModel: params.activeModel
|
|
44
|
+
});
|
|
45
|
+
if (!result || result.outputs.length === 0) return;
|
|
46
|
+
const audioOutput = result.outputs.find((output) => output.kind === "audio.transcription");
|
|
47
|
+
if (!audioOutput || !audioOutput.text) return;
|
|
48
|
+
firstAudio.alreadyTranscribed = true;
|
|
49
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribed ${audioOutput.text.length} chars from attachment ${firstAudio.index}`);
|
|
50
|
+
return audioOutput.text;
|
|
51
|
+
} catch (err) {
|
|
52
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcription failed: ${String(err)}`);
|
|
53
|
+
return;
|
|
54
|
+
} finally {
|
|
55
|
+
await cache.cleanup();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
export { transcribeFirstAudio };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { S as logVerbose, T as shouldLogVerbose } from "./entry.js";
|
|
2
|
+
import "./auth-profiles-Cp9MtUdM.js";
|
|
3
|
+
import "./utils-BLJAc3ZV.js";
|
|
4
|
+
import "./exec-DqZFMawz.js";
|
|
5
|
+
import "./agent-scope-Bkr9fZtl.js";
|
|
6
|
+
import "./github-copilot-token-C9W4SY9o.js";
|
|
7
|
+
import "./pi-model-discovery-EhM2JAQo.js";
|
|
8
|
+
import "./config-B8v0zg48.js";
|
|
9
|
+
import "./manifest-registry-CVsqjgX0.js";
|
|
10
|
+
import "./server-context-FwqBRH3K.js";
|
|
11
|
+
import "./chrome--Fe8F5Kf.js";
|
|
12
|
+
import "./message-channel-DWcu72r7.js";
|
|
13
|
+
import "./plugins-CxrdL_IZ.js";
|
|
14
|
+
import "./logging-D-Jq2wIo.js";
|
|
15
|
+
import "./accounts-Bvh0DFxS.js";
|
|
16
|
+
import "./paths-BZK4Ct0I.js";
|
|
17
|
+
import "./redact-UvkXqguc.js";
|
|
18
|
+
import "./routes-CaCvio4Q.js";
|
|
19
|
+
import "./pi-embedded-helpers-DpJb0kUk.js";
|
|
20
|
+
import "./fetch-wuOZDzdT.js";
|
|
21
|
+
import "./sandbox-DNHDwHw8.js";
|
|
22
|
+
import "./skills-CE7by2IF.js";
|
|
23
|
+
import "./image-D-5pUELC.js";
|
|
24
|
+
import "./tool-display-DbdMQFZx.js";
|
|
25
|
+
import { a as runCapability, n as createMediaAttachmentCache, o as isAudioAttachment, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-BEy5ZGFv.js";
|
|
26
|
+
|
|
27
|
+
//#region src/media-understanding/audio-preflight.ts
|
|
28
|
+
/**
|
|
29
|
+
* Transcribes the first audio attachment BEFORE mention checking.
|
|
30
|
+
* This allows voice notes to be processed in group chats with requireMention: true.
|
|
31
|
+
* Returns the transcript or undefined if transcription fails or no audio is found.
|
|
32
|
+
*/
|
|
33
|
+
async function transcribeFirstAudio(params) {
|
|
34
|
+
const { ctx, cfg } = params;
|
|
35
|
+
const audioConfig = cfg.tools?.media?.audio;
|
|
36
|
+
if (!audioConfig || audioConfig.enabled === false) return;
|
|
37
|
+
const attachments = normalizeMediaAttachments(ctx);
|
|
38
|
+
if (!attachments || attachments.length === 0) return;
|
|
39
|
+
const firstAudio = attachments.find((att) => att && isAudioAttachment(att) && !att.alreadyTranscribed);
|
|
40
|
+
if (!firstAudio) return;
|
|
41
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribing attachment ${firstAudio.index} for mention check`);
|
|
42
|
+
const providerRegistry = buildProviderRegistry(params.providers);
|
|
43
|
+
const cache = createMediaAttachmentCache(attachments);
|
|
44
|
+
try {
|
|
45
|
+
const result = await runCapability({
|
|
46
|
+
capability: "audio",
|
|
47
|
+
cfg,
|
|
48
|
+
ctx,
|
|
49
|
+
attachments: cache,
|
|
50
|
+
media: attachments,
|
|
51
|
+
agentDir: params.agentDir,
|
|
52
|
+
providerRegistry,
|
|
53
|
+
config: audioConfig,
|
|
54
|
+
activeModel: params.activeModel
|
|
55
|
+
});
|
|
56
|
+
if (!result || result.outputs.length === 0) return;
|
|
57
|
+
const audioOutput = result.outputs.find((output) => output.kind === "audio.transcription");
|
|
58
|
+
if (!audioOutput || !audioOutput.text) return;
|
|
59
|
+
firstAudio.alreadyTranscribed = true;
|
|
60
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribed ${audioOutput.text.length} chars from attachment ${firstAudio.index}`);
|
|
61
|
+
return audioOutput.text;
|
|
62
|
+
} catch (err) {
|
|
63
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcription failed: ${String(err)}`);
|
|
64
|
+
return;
|
|
65
|
+
} finally {
|
|
66
|
+
await cache.cleanup();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { transcribeFirstAudio };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import "./paths-DVBShlw6.js";
|
|
2
|
+
import { A as logVerbose, N as shouldLogVerbose } from "./subsystem-DHfJG4gk.js";
|
|
3
|
+
import "./utils-BtIMES3N.js";
|
|
4
|
+
import "./pi-embedded-helpers-BrUBxrE2.js";
|
|
5
|
+
import "./exec-BPQSKwGa.js";
|
|
6
|
+
import "./agent-scope-GYIs5dyU.js";
|
|
7
|
+
import "./model-selection-B53OvWCf.js";
|
|
8
|
+
import "./github-copilot-token-CiF5Iyi2.js";
|
|
9
|
+
import "./boolean-BgXe2hyu.js";
|
|
10
|
+
import "./env-BUuSkE19.js";
|
|
11
|
+
import "./config-CeWMHOiQ.js";
|
|
12
|
+
import "./manifest-registry-jeAPx6AW.js";
|
|
13
|
+
import "./plugins-CTjLu-z-.js";
|
|
14
|
+
import "./sandbox-BAChxjC5.js";
|
|
15
|
+
import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-ChqVEgPx.js";
|
|
16
|
+
import "./image-TvL5YI_W.js";
|
|
17
|
+
import "./pi-model-discovery-EwKVHlZB.js";
|
|
18
|
+
import "./chrome-BWeMtFGf.js";
|
|
19
|
+
import "./skills-Dz15dAM4.js";
|
|
20
|
+
import "./routes-Cpfxk96k.js";
|
|
21
|
+
import "./server-context-RY7lRaxl.js";
|
|
22
|
+
import "./message-channel-CTtrEkmW.js";
|
|
23
|
+
import "./logging-fywhKCmE.js";
|
|
24
|
+
import "./accounts-54zZMYCo.js";
|
|
25
|
+
import "./paths-DdKf4lHp.js";
|
|
26
|
+
import "./redact-BRsnXqwD.js";
|
|
27
|
+
import "./tool-display-kpW5Hg2z.js";
|
|
28
|
+
import "./fetch-D2O8s8I1.js";
|
|
29
|
+
|
|
30
|
+
//#region src/media-understanding/audio-preflight.ts
|
|
31
|
+
/**
|
|
32
|
+
* Transcribes the first audio attachment BEFORE mention checking.
|
|
33
|
+
* This allows voice notes to be processed in group chats with requireMention: true.
|
|
34
|
+
* Returns the transcript or undefined if transcription fails or no audio is found.
|
|
35
|
+
*/
|
|
36
|
+
async function transcribeFirstAudio(params) {
|
|
37
|
+
const { ctx, cfg } = params;
|
|
38
|
+
const audioConfig = cfg.tools?.media?.audio;
|
|
39
|
+
if (!audioConfig || audioConfig.enabled === false) return;
|
|
40
|
+
const attachments = normalizeMediaAttachments(ctx);
|
|
41
|
+
if (!attachments || attachments.length === 0) return;
|
|
42
|
+
const firstAudio = attachments.find((att) => att && isAudioAttachment(att) && !att.alreadyTranscribed);
|
|
43
|
+
if (!firstAudio) return;
|
|
44
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribing attachment ${firstAudio.index} for mention check`);
|
|
45
|
+
const providerRegistry = buildProviderRegistry(params.providers);
|
|
46
|
+
const cache = createMediaAttachmentCache(attachments);
|
|
47
|
+
try {
|
|
48
|
+
const result = await runCapability({
|
|
49
|
+
capability: "audio",
|
|
50
|
+
cfg,
|
|
51
|
+
ctx,
|
|
52
|
+
attachments: cache,
|
|
53
|
+
media: attachments,
|
|
54
|
+
agentDir: params.agentDir,
|
|
55
|
+
providerRegistry,
|
|
56
|
+
config: audioConfig,
|
|
57
|
+
activeModel: params.activeModel
|
|
58
|
+
});
|
|
59
|
+
if (!result || result.outputs.length === 0) return;
|
|
60
|
+
const audioOutput = result.outputs.find((output) => output.kind === "audio.transcription");
|
|
61
|
+
if (!audioOutput || !audioOutput.text) return;
|
|
62
|
+
firstAudio.alreadyTranscribed = true;
|
|
63
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcribed ${audioOutput.text.length} chars from attachment ${firstAudio.index}`);
|
|
64
|
+
return audioOutput.text;
|
|
65
|
+
} catch (err) {
|
|
66
|
+
if (shouldLogVerbose()) logVerbose(`audio-preflight: transcription failed: ${String(err)}`);
|
|
67
|
+
return;
|
|
68
|
+
} finally {
|
|
69
|
+
await cache.cleanup();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { transcribeFirstAudio };
|