@qqbrowser/openclaw-qbot 0.0.127 → 0.0.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-lookup-CW-_CL7y.js +1 -1
- package/dist/acp-cli-01SGjPGi.js +1 -1
- package/dist/acp-cli-uxN405XG.js +1 -1
- package/dist/active-listener-BZ6loNaF.js +1 -1
- package/dist/active-listener-D8VOdVx3.js +1 -1
- package/dist/active-listener-DB5mhDuO.js +1 -1
- package/dist/active-listener-DeKRt_UV.js +1 -1
- package/dist/agent-scope-DAWJwFfl.js +1 -1
- package/dist/agent-scope-DXZc3eNT.js +1 -1
- package/dist/agents-BMh3ZeoB.js +1 -1
- package/dist/agents.config-B-0lZSmb.js +1 -1
- package/dist/agents.config-BDEN2Eph.js +1 -1
- package/dist/allow-from-B6dI7oz8.js +1 -1
- package/dist/allow-from-DEeVIPKS.js +1 -1
- package/dist/api-BeG0ObSq.js +1 -1
- package/dist/api-Dx8x1KTs.js +1 -1
- package/dist/api-key-rotation-C_MG2y1D.js +1 -1
- package/dist/api-key-rotation-D8WsZ43x.js +1 -1
- package/dist/api-key-rotation-DYYvcqSG.js +1 -1
- package/dist/api-key-rotation-dNu0GxPN.js +1 -1
- package/dist/arg-split-BOqSMBuf.js +1 -1
- package/dist/arg-split-DE5RqDHq.js +1 -1
- package/dist/audio-preflight--K4-eUVY.js +1 -1
- package/dist/audio-preflight-BKIm58PG.js +1 -1
- package/dist/audio-preflight-CAfi10dl.js +1 -1
- package/dist/audio-preflight-Xm0NL5JA.js +1 -1
- package/dist/audio-transcription-runner-BJNP7vB8.js +1 -1
- package/dist/audio-transcription-runner-BUsb6cqv.js +1 -1
- package/dist/audio-transcription-runner-C_31Yoq0.js +1 -1
- package/dist/audio-transcription-runner-CjKLRVPo.js +1 -1
- package/dist/audit-7DFnKINd.js +1 -1
- package/dist/audit-B6LsW3Ai.js +1 -1
- package/dist/audit-membership-runtime-BpRsMj5-.js +1 -1
- package/dist/audit-membership-runtime-BsfLZNBj.js +1 -1
- package/dist/audit-membership-runtime-DRHirRmx.js +1 -1
- package/dist/audit-membership-runtime-g0dEWJTp.js +1 -1
- package/dist/audit-membership-runtime-kdyToskD.js +1 -1
- package/dist/auth-choice-BNd2SNjJ.js +1 -1
- package/dist/auth-choice-C3aUWXx9.js +1 -1
- package/dist/auth-choice-DViEjgMg.js +1 -1
- package/dist/auth-choice-edozMf7r.js +1 -1
- package/dist/auth-choice-options-B3WQyS7I.js +1 -1
- package/dist/auth-choice-options-Dw14noox.js +1 -1
- package/dist/auth-choice-prompt-uegl56cf.js +1 -1
- package/dist/auth-choice-prompt-xYj13czb.js +1 -1
- package/dist/auth-choice.apply-helpers-CNLYnRxx.js +1 -1
- package/dist/auth-choice.apply-helpers-DCe5nTyP.js +1 -1
- package/dist/auth-profiles-BhXA8Jy2.js +1 -1
- package/dist/auth-token-C75IOb_K.js +1 -1
- package/dist/auth-token-CzgZf-ta.js +1 -1
- package/dist/banner-mIDEloRy.js +1 -1
- package/dist/bonjour-discovery-CpvzLjyB.js +1 -1
- package/dist/bonjour-discovery-wsh3Si1Q.js +1 -1
- package/dist/boolean-Ch3DfXPy.js +1 -1
- package/dist/boolean-D15s2V33.js +1 -1
- package/dist/boolean-DypnRoRK.js +1 -1
- package/dist/brew-COcDl8CB.js +1 -1
- package/dist/brew-DDPm_HfE.js +1 -1
- package/dist/browser-cli-BjzNbvF9.js +1 -1
- package/dist/browser-cli-CgHkgtgV.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-BA3O_Qpl.js +1 -1
- package/dist/call-BQT0zCgv.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/channel-account-context-BMPAMZEv.js +1 -1
- package/dist/channel-account-context-DAcarnqW.js +1 -1
- package/dist/channel-activity-B04WbrrK.js +1 -1
- package/dist/channel-activity-BPRCQpI6.js +1 -1
- package/dist/channel-activity-D2VTmenR.js +1 -1
- package/dist/channel-activity-DHY5wAyl.js +1 -1
- package/dist/channel-activity-DYpm-0Cz.js +1 -1
- package/dist/channel-options-BYmHreMn.js +1 -1
- package/dist/channel-options-Cbv7VETu.js +1 -1
- package/dist/channel-selection-Ddyykqxv.js +1 -1
- package/dist/channel-selection-oRONo9z3.js +1 -1
- package/dist/channel-web-CK4RqVCH.js +1 -1
- package/dist/channel-web-Xw89Exy3.js +1 -1
- package/dist/channels/plugins/actions/discord.js +1 -1
- package/dist/channels/plugins/actions/signal.js +1 -1
- package/dist/channels/plugins/actions/telegram.js +1 -1
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
- package/dist/channels-cli-D2y5Xk5i.js +1 -1
- package/dist/channels-cli-cwFjBXcP.js +1 -1
- package/dist/channels-status-issues-8eFrGKyf.js +1 -1
- package/dist/channels-status-issues-PRgOT90w.js +1 -1
- package/dist/chat-envelope-Bznn2SoS.js +1 -1
- package/dist/chat-envelope-HVpKusFc.js +1 -1
- package/dist/clack-prompter-DBPdGdqp.js +1 -1
- package/dist/clack-prompter-Dq0aY6iM.js +1 -1
- package/dist/clawbot-cli-BwG1-8A9.js +1 -1
- package/dist/clawbot-cli-CaNu5A0G.js +1 -1
- package/dist/cleanup-utils-BWm70DoD.js +1 -1
- package/dist/cleanup-utils-D-RhEX6F.js +1 -1
- package/dist/cli-CQKA38bc.js +1 -1
- package/dist/cli-i7P4bYBg.js +1 -1
- package/dist/cli-utils-BY7dLMFy.js +1 -1
- package/dist/cli-utils-BleB1eys.js +1 -1
- package/dist/clipboard-Bk8cviBt.js +1 -1
- package/dist/clipboard-CKT_VIkG.js +1 -1
- package/dist/cmd-argv-BBT5l8AV.js +1 -1
- package/dist/cmd-argv-Bh-KpaZ0.js +1 -1
- package/dist/command-format-BbDT1tlm.js +1 -1
- package/dist/command-format-CLxIPuLR.js +1 -1
- package/dist/command-options-BpOUDl2S.js +1 -1
- package/dist/command-options-Bq5nQxz6.js +1 -1
- package/dist/command-poll-backoff-BZLHYB2k.js +1 -1
- package/dist/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/command-poll-backoff-Df6cOQrX.js +1 -1
- package/dist/command-poll-backoff-endAPdwn.js +1 -1
- package/dist/command-registry-BYk36N_R.js +1 -1
- package/dist/command-secret-targets-BBTiqQKa.js +1 -1
- package/dist/command-secret-targets-KM3OecbM.js +1 -1
- package/dist/commands-CGpM84iR.js +1 -1
- package/dist/commands-Dy7duWlt.js +1 -1
- package/dist/commands-registry-B3FI6TSl.js +1 -1
- package/dist/commands-registry-CxDVU5s9.js +1 -1
- package/dist/commands-registry-Dn2uuNuy.js +1 -1
- package/dist/commands-registry-Du79fdAL.js +1 -1
- package/dist/compact-CuBCVnVS.js +1 -1
- package/dist/completion-cli-CRNTbZlR.js +1 -1
- package/dist/completion-cli-DbGDCoiM.js +1 -1
- package/dist/config-BqW5S1xL.js +1 -1
- package/dist/config-DAQjvwZw.js +1 -1
- package/dist/config-cli-D_coAWd9.js +1 -1
- package/dist/config-cli-EKXoNzLf.js +1 -1
- package/dist/config-guard-U0wlYLUN.js +1 -1
- package/dist/config-guard-XayIkveC.js +1 -1
- package/dist/config-validation-B0nN9egx.js +1 -1
- package/dist/config-validation-CAHnpjrk.js +1 -1
- package/dist/configure-DNnQRKy8.js +1 -1
- package/dist/configure-NCNskZPe.js +1 -1
- package/dist/connection-auth-BcPbGyxw.js +1 -1
- package/dist/connection-auth-DZ-3Svr_.js +1 -1
- package/dist/context-window-guard-7crlatf9.js +1 -1
- package/dist/context-window-guard-CPChk363.js +1 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/de-DuUYLvt1.js +1 -0
- package/dist/control-ui/assets/es-DHtyqUQZ.js +1 -0
- package/dist/control-ui/assets/index-CYbiPp9k.js +8383 -0
- package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
- package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +1 -0
- package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +1 -0
- package/dist/control-ui/assets/zh-TW-cW5xB87I.js +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +17 -0
- package/dist/control-ui-assets-BIa0GGDg.js +1 -1
- package/dist/control-ui-assets-CTHGGgaX.js +1 -1
- package/dist/cron-cli-Cro66JtU.js +1 -1
- package/dist/cron-cli-DIeBukvk.js +1 -1
- package/dist/daemon-cli-Cw_fxNgE.js +1 -1
- package/dist/daemon-cli-DQsKS3pT.js +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/daemon-install-C_DmJEkV.js +1 -1
- package/dist/daemon-install-D1DacLbM.js +1 -1
- package/dist/daemon-install-plan.shared-BSDdwWjB.js +1 -1
- package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -1
- package/dist/daemon-runtime-DHiDbRuC.js +1 -1
- package/dist/daemon-runtime-VcpeBRJV.js +1 -1
- package/dist/dangerous-name-matching-BOmvAibz.js +1 -1
- package/dist/dangerous-name-matching-DtllRqBD.js +1 -1
- package/dist/dangerous-tools-CFRYQJ6V.js +1 -1
- package/dist/dangerous-tools-oYCu5wfC.js +1 -1
- package/dist/deliver-2c-EsQ_W.js +1 -1
- package/dist/deliver-BudDnEIb.js +1 -1
- package/dist/deliver-COKdxPmA.js +1 -1
- package/dist/deliver-DHP2vHKB.js +1 -1
- package/dist/delivery-queue-CKbauSFq.js +1 -1
- package/dist/delivery-queue-nkPJu0fY.js +1 -1
- package/dist/device-pairing-4eDo43Kk.js +1 -1
- package/dist/device-pairing-B7ZXiXp3.js +1 -1
- package/dist/devices-cli-BXUIb_UN.js +1 -1
- package/dist/devices-cli-D7PkbnHO.js +1 -1
- package/dist/diagnostic-Bzd5vlKH.js +1 -1
- package/dist/diagnostic-CFmHdXHP.js +1 -1
- package/dist/diagnostic-CW_Jv5UM.js +1 -1
- package/dist/diagnostic-Dza7-pMC.js +1 -1
- package/dist/diagnostics-BgbeL9KE.js +1 -1
- package/dist/diagnostics-Cdctg9K_.js +1 -1
- package/dist/directory-cli-CxeuNJcC.js +1 -1
- package/dist/directory-cli-DFlYCB5L.js +1 -1
- package/dist/dns-cli-BDbHznhi.js +1 -1
- package/dist/dns-cli-OuwliJ60.js +1 -1
- package/dist/docs-cli-Cdw9Iz9a.js +1 -1
- package/dist/docs-cli-ClD2UyX1.js +1 -1
- package/dist/doctor-completion-BSOX-LSq.js +1 -1
- package/dist/doctor-completion-DXqdpdlo.js +1 -1
- package/dist/doctor-config-flow-DHB8N7tT.js +1 -1
- package/dist/doctor-config-flow-MjfHBDlw.js +1 -1
- package/dist/enable-DVuqWT2a.js +1 -1
- package/dist/enable-DWaSH1HY.js +1 -1
- package/dist/entry-status-CCwwKO43.js +1 -1
- package/dist/entry-status-CoXkbJcX.js +1 -1
- package/dist/entry.js +1 -1
- package/dist/env-D7wNuBx1.js +1 -1
- package/dist/env-overrides-DHtB4kK3.js +1 -1
- package/dist/env-overrides-DXJbFrwI.js +1 -1
- package/dist/errors-6SQWM9dj.js +1 -1
- package/dist/errors-Bunti32V.js +1 -1
- package/dist/exec-B3eleY5O.js +1 -1
- package/dist/exec-DHqLtFYt.js +1 -1
- package/dist/exec-approvals-BXO9Cezj.js +1 -1
- package/dist/exec-approvals-BpBNEy6i.js +1 -1
- package/dist/exec-approvals-allowlist-BKFaHvA5.js +1 -1
- package/dist/exec-approvals-allowlist-DBh9Pm77.js +1 -1
- package/dist/exec-approvals-cli-0neCwpk-.js +1 -1
- package/dist/exec-approvals-cli-BuHSw09B.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-Ck3GO5AB.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-D2WexijZ.js +1 -1
- package/dist/fetch-BI3CnKE3.js +1 -1
- package/dist/fetch-BJT3BrkJ.js +1 -1
- package/dist/fetch-Bn0mWg6a.js +1 -1
- package/dist/fetch-CY5G3PDq.js +1 -1
- package/dist/fetch-Ce-scEU-.js +1 -1
- package/dist/fetch-D0rZDHKO.js +1 -1
- package/dist/fetch-DHo17YmK.js +1 -1
- package/dist/fetch-Dh-apy46.js +1 -1
- package/dist/fetch-Dikjvc5M.js +1 -1
- package/dist/fetch-DsjPfQlp.js +1 -1
- package/dist/fetch-_g8lZ8K8.js +1 -1
- package/dist/fetch-guard-BaRbr_V6.js +1 -1
- package/dist/fetch-guard-BmNIhXP-.js +1 -1
- package/dist/fetch-guard-ChVqc0HF.js +1 -1
- package/dist/fetch-guard-Cji70DJW.js +1 -1
- package/dist/fetch-hy0JKSsm.js +1 -1
- package/dist/fetch-timeout-CdYxWG9w.js +1 -1
- package/dist/fetch-timeout-Cj8_oAls.js +1 -1
- package/dist/fetch-timeout-DoOI_izT.js +1 -1
- package/dist/fetch-timeout-u8g99Ax0.js +1 -1
- package/dist/fetch-xT2jRpqs.js +1 -1
- package/dist/format-Bn1bwJKX.js +1 -1
- package/dist/format-Ce7I7s-k.js +1 -1
- package/dist/format-duration-C8AzNqKh.js +1 -1
- package/dist/format-duration-D5AMtmHa.js +1 -1
- package/dist/format-relative-B9pSIdGe.js +1 -1
- package/dist/format-relative-DkMjYy7z.js +1 -1
- package/dist/frontmatter-BkZkwkVO.js +1 -1
- package/dist/frontmatter-C7mzDNxd.js +1 -1
- package/dist/frontmatter-CzpfPBFl.js +1 -1
- package/dist/gateway-cli-Bj-BYgGN.js +1 -1
- package/dist/gateway-cli-DP65otLl.js +1 -1
- package/dist/gateway-install-token-BIqlEgy0.js +1 -1
- package/dist/gateway-install-token-CtUJl3A3.js +1 -1
- package/dist/gateway-rpc-DJHjmEZz.js +1 -1
- package/dist/gateway-rpc-XRAMeV67.js +1 -1
- package/dist/github-copilot-token-C79yeDKS.js +1 -1
- package/dist/github-copilot-token-DGYAlOmV.js +1 -1
- package/dist/github-copilot-token-DePP-lIf.js +1 -1
- package/dist/github-copilot-token-wm6mbypz.js +1 -1
- package/dist/gmail-setup-utils-CYOH3zzx.js +1 -1
- package/dist/gmail-setup-utils-S-MyEGuj.js +1 -1
- package/dist/group-access-BHKVOhrj.js +1 -1
- package/dist/group-access-D2DOYMfr.js +1 -1
- package/dist/health-Bedsiigi.js +1 -1
- package/dist/health-Cy_CvKbX.js +1 -1
- package/dist/health-format-B1nj3Wfn.js +1 -1
- package/dist/health-format-VBr6LEpt.js +1 -1
- package/dist/heartbeat-visibility-BQ_esv2m.js +1 -1
- package/dist/heartbeat-visibility-q74UdY8O.js +1 -1
- package/dist/help-format-B4aEI7V9.js +1 -1
- package/dist/help-format-BRbF_INg.js +1 -1
- package/dist/helpers-COz1ghcB.js +1 -1
- package/dist/helpers-Cp8gcO6u.js +1 -1
- package/dist/hooks-cli-DrnH2iDk.js +1 -1
- package/dist/hooks-cli-DvfZKyZl.js +1 -1
- package/dist/hooks-status-BHt-Xvh4.js +1 -1
- package/dist/hooks-status-CRJ4J0ZW.js +1 -1
- package/dist/image-BJC11A7e.js +1 -1
- package/dist/image-BKPxWO_2.js +1 -1
- package/dist/image-Ba-mOMMV.js +1 -1
- package/dist/image-D-R3N1it.js +1 -1
- package/dist/index.js +1 -1
- package/dist/inspect-BKV-I1UE.js +1 -1
- package/dist/inspect-z59cgmYc.js +1 -1
- package/dist/install-safe-path-C6kc_8NW.js +1 -1
- package/dist/install-safe-path-iesxijn2.js +1 -1
- package/dist/installs-BNeI_oML.js +1 -1
- package/dist/installs-C1xQLuby.js +1 -1
- package/dist/ipv4-BXZDlz5C.js +1 -1
- package/dist/ipv4-BnPLbv6y.js +1 -1
- package/dist/ir-BYCrFFZ9.js +1 -1
- package/dist/ir-CH7YvSi9.js +1 -1
- package/dist/ir-CSysIkNU.js +1 -1
- package/dist/ir-CZdZsdnI.js +1 -1
- package/dist/is-main-DG5ueqhF.js +1 -1
- package/dist/issue-format-CpTuk_rQ.js +1 -1
- package/dist/issue-format-kj7FXHhi.js +1 -1
- package/dist/kill-tree-DBJW8_Q-.js +1 -1
- package/dist/lifecycle-core-B72WHNHV.js +1 -1
- package/dist/lifecycle-core-dhkH_Nux.js +1 -1
- package/dist/line/accounts.js +1 -1
- package/dist/line/send.js +1 -1
- package/dist/line/template-messages.js +1 -1
- package/dist/links-CBnmRP9D.js +1 -1
- package/dist/links-CySwdMcF.js +1 -1
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-options-BsOW74dp.js +1 -1
- package/dist/load-options-C7dLuybp.js +1 -1
- package/dist/load-options-DV4j6Aqb.js +1 -1
- package/dist/load-options-Dwt0CeEg.js +1 -1
- package/dist/local-roots-Dxioh0C2.js +1 -1
- package/dist/logger-5W0OocJW.js +1 -1
- package/dist/logger-Bl8URnrW.js +1 -1
- package/dist/logger-DwWqfo66.js +1 -1
- package/dist/logger-kQAOe3qp.js +1 -1
- package/dist/logging-Dz4Qg6th.js +1 -1
- package/dist/logging-KiJmOmw4.js +1 -1
- package/dist/login-BMZxDYaU.js +1 -1
- package/dist/login-BdzP8F8J.js +1 -1
- package/dist/login-BzU0cMck.js +1 -1
- package/dist/login-Cb1A6qwM.js +1 -1
- package/dist/login-qr-BgsmAwKm.js +1 -1
- package/dist/login-qr-Bux8gWTO.js +1 -1
- package/dist/login-qr-COr_25Hx.js +1 -1
- package/dist/login-qr-CxBPOOAK.js +1 -1
- package/dist/login-qr-DnQm7bM4.js +1 -1
- package/dist/logs-cli-BM2XCmrH.js +1 -1
- package/dist/logs-cli-HKhyxaUs.js +1 -1
- package/dist/manager-B6zZuJEB.js +1 -1
- package/dist/manager-BwrZfep3.js +1 -1
- package/dist/manager-C5SBozw4.js +1 -1
- package/dist/manager-CjihRbGa.js +1 -1
- package/dist/memory-cli-CnruTL1h.js +1 -1
- package/dist/memory-cli-DHvscp7X.js +1 -1
- package/dist/model-catalog-BLdaFmIo.js +1 -1
- package/dist/model-catalog-vNCcsy4h.js +1 -1
- package/dist/model-param-b-B0r2cPDw.js +1 -1
- package/dist/model-param-b-BqIr5rY5.js +1 -1
- package/dist/model-picker-BaeW3tiV.js +1 -1
- package/dist/model-picker-DN0czUYS.js +1 -1
- package/dist/model-selection-C2QwHmXT.js +1 -1
- package/dist/model-selection-I1ctjFOB.js +1 -1
- package/dist/model-selection-qkByRv5A.js +1 -1
- package/dist/models-UTdl0vXO.js +1 -1
- package/dist/models-cli-QRONP7EL.js +1 -1
- package/dist/models-cli-vRoB_gfX.js +1 -1
- package/dist/models-config-CWIlroKT.js +1 -1
- package/dist/models-config-DN2Q51fC.js +1 -1
- package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -1
- package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -1
- package/dist/node-cli-2-E4-83G.js +1 -1
- package/dist/node-cli-DUI7Zctj.js +1 -1
- package/dist/node-command-policy-Bbmnc16l.js +1 -1
- package/dist/node-command-policy-DgkwfoCs.js +1 -1
- package/dist/node-commands-8GBOiktk.js +1 -1
- package/dist/node-commands-DdkziOTx.js +1 -1
- package/dist/node-resolve-B3BJbmQX.js +1 -1
- package/dist/node-resolve-DLZf3-1V.js +1 -1
- package/dist/node-service-BRfrNp8l.js +1 -1
- package/dist/node-service-C0bl7jcZ.js +1 -1
- package/dist/node-shell-dXp4vk-i.js +1 -1
- package/dist/nodes-cli-DU13-dCL.js +1 -1
- package/dist/nodes-cli-rPeIRj_f.js +1 -1
- package/dist/nodes-screen-C7-5RrbN.js +1 -1
- package/dist/note-D4GAwgha.js +1 -1
- package/dist/note-Dp-d_utk.js +1 -1
- package/dist/npm-pack-install-B23L-AtF.js +1 -1
- package/dist/npm-pack-install-C0te3Oap.js +1 -1
- package/dist/npm-resolution-BCXCw93f.js +1 -1
- package/dist/npm-resolution-Cmm82lui.js +1 -1
- package/dist/oauth-env-DAamJ1oz.js +1 -1
- package/dist/oauth-env-DSLBTWb1.js +1 -1
- package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -1
- package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -1
- package/dist/ollama-setup-CKt3tF-S.js +1 -1
- package/dist/ollama-setup-I8lghdX1.js +1 -1
- package/dist/onboard-B3WSjKCu.js +1 -1
- package/dist/onboard-C65vdb94.js +1 -1
- package/dist/onboard-channels-9CmG3Jgn.js +1 -1
- package/dist/onboard-channels-CV1AK9jY.js +1 -1
- package/dist/onboard-config-B7U20YRw.js +1 -1
- package/dist/onboard-config-DS9dUv8M.js +1 -1
- package/dist/onboard-custom-CwHYUB0T.js +1 -1
- package/dist/onboard-custom-uwufXtQf.js +1 -1
- package/dist/onboard-helpers-CGJLUoxR.js +1 -1
- package/dist/onboard-helpers-DbpWQoiB.js +1 -1
- package/dist/onboard-hooks-CERzXObm.js +1 -1
- package/dist/onboard-hooks-gQ3sxBNi.js +1 -1
- package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -1
- package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -1
- package/dist/onboard-remote-BeDZ_gbH.js +1 -1
- package/dist/onboard-remote-KTUx-3G1.js +1 -1
- package/dist/onboard-search-f2tJD4hg.js +1 -1
- package/dist/onboard-search-fslKKhyg.js +1 -1
- package/dist/onboard-skills-BoS_oVdm.js +1 -1
- package/dist/onboard-skills-C4omGWoD.js +1 -1
- package/dist/onboarding-B8icigkk.js +1 -1
- package/dist/onboarding-BJRqNsZ8.js +1 -1
- package/dist/onboarding.finalize-D0qISqn-.js +1 -1
- package/dist/onboarding.finalize-Ds9NwPBL.js +1 -1
- package/dist/onboarding.gateway-config-F8n_QFUR.js +1 -1
- package/dist/onboarding.gateway-config-eno73eHw.js +1 -1
- package/dist/onboarding.secret-input-B6fzeucQ.js +1 -1
- package/dist/onboarding.secret-input-CBuD3c32.js +1 -1
- package/dist/openai-codex-model-default-Df2T3foI.js +1 -1
- package/dist/openai-codex-model-default-DtIeKJm0.js +1 -1
- package/dist/openai-model-default-DIE55yBt.js +1 -1
- package/dist/openai-model-default-sqvWk4kB.js +1 -1
- package/dist/openclaw-exec-env-BWbOu_YC.js +1 -1
- package/dist/openclaw-root-CnsBf6ZU.js +1 -1
- package/dist/openclaw-root-D_0Q6--h.js +1 -1
- package/dist/outbound-B88MLJN3.js +1 -1
- package/dist/outbound-C-4qToKv.js +1 -1
- package/dist/outbound-CSk4oF0g.js +1 -1
- package/dist/outbound-DKMI_4xm.js +1 -1
- package/dist/outbound-attachment-BOax42-M.js +1 -1
- package/dist/outbound-attachment-DBNxdLYh.js +1 -1
- package/dist/outbound-attachment-DVjJQ3V6.js +1 -1
- package/dist/outbound-attachment-aZWcoZ-N.js +1 -1
- package/dist/pairing-cli-Cby6Ww8F.js +1 -1
- package/dist/pairing-cli-DiJb_a0V.js +1 -1
- package/dist/pairing-labels-BP1h0iHy.js +1 -1
- package/dist/pairing-labels-ryOnuOFA.js +1 -1
- package/dist/pairing-store-Bv4KSELv.js +1 -1
- package/dist/pairing-store-CjTPxq0X.js +1 -1
- package/dist/pairing-token-CKX1ds78.js +1 -1
- package/dist/pairing-token-CX0SUJsB.js +1 -1
- package/dist/parse-duration-XTjMKl8s.js +1 -1
- package/dist/parse-finite-number-DqzUM-_s.js +1 -1
- package/dist/parse-finite-number-dBmDLLKL.js +1 -1
- package/dist/parse-log-line-CsYLg7Qu.js +1 -1
- package/dist/parse-log-line-NV-cipB_.js +1 -1
- package/dist/parse-port-Bv1Y9Wk5.js +1 -1
- package/dist/parse-port-JVwkxcZ8.js +1 -1
- package/dist/parse-timeout-DWSGfCkQ.js +1 -1
- package/dist/parse-timeout-Dx4QnVzo.js +1 -1
- package/dist/path-alias-guards-kY_ZbWs-.js +1 -1
- package/dist/path-alias-guards-mvyLCPlN.js +1 -1
- package/dist/path-env-BPd1Yd-i.js +1 -1
- package/dist/path-env-emdAQejM.js +1 -1
- package/dist/path-safety-BukYK8Kd.js +1 -1
- package/dist/path-safety-DaaMJFdt.js +1 -1
- package/dist/paths-B4IRk3wi.js +1 -1
- package/dist/paths-BfjJY2VL.js +1 -1
- package/dist/paths-BjD3T_xq.js +1 -1
- package/dist/paths-BpQOWYiT.js +1 -1
- package/dist/paths-CChBdtE8.js +1 -1
- package/dist/paths-CrCoPIVK.js +1 -1
- package/dist/paths-piJASC5k.js +1 -1
- package/dist/paths-yLEk_25I.js +1 -1
- package/dist/pi-embedded-ZEWNj7P5.js +1 -1
- package/dist/pi-embedded-bqE4EmdD.js +1 -1
- package/dist/pi-model-discovery-6myCPEJE.js +1 -1
- package/dist/pi-model-discovery-AiV9h8k6.js +1 -1
- package/dist/pi-model-discovery-BzqdozHB.js +1 -1
- package/dist/pi-model-discovery-C8YBu6D4.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CPAJMO7J.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CYmLHod0.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CfVqI0Ng.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-D9FlPJ_v.js +1 -1
- package/dist/pi-tools.policy-CeSKHaKa.js +1 -1
- package/dist/plugin-auto-enable-Cp7L8ko8.js +1 -1
- package/dist/plugin-auto-enable-DCOxqfDQ.js +1 -1
- package/dist/plugin-install-plan-BobX0y9S.js +1 -1
- package/dist/plugin-install-plan-NvDGp0d8.js +1 -1
- package/dist/plugin-registry-Fg000e4I.js +1 -1
- package/dist/plugin-registry-fm5tDUbE.js +1 -1
- package/dist/plugin-sdk/account-id.cjs +1 -1
- package/dist/plugin-sdk/account-id.js +1 -1
- package/dist/plugin-sdk/acpx.cjs +1 -1
- package/dist/plugin-sdk/acpx.js +1 -1
- package/dist/plugin-sdk/active-listener-BFeaYGID.js +1 -1
- package/dist/plugin-sdk/active-listener-BszCM2Au.cjs +1 -1
- package/dist/plugin-sdk/active-listener-CIcleJgU.cjs +1 -1
- package/dist/plugin-sdk/active-listener-Cqgd7xVh.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D578zEtk.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D6gGPLq-.js +1 -1
- package/dist/plugin-sdk/active-listener-DKSZRn4x.cjs +1 -1
- package/dist/plugin-sdk/active-listener-DNO10F1L.js +1 -1
- package/dist/plugin-sdk/active-listener-DQq07Aar.js +1 -1
- package/dist/plugin-sdk/active-listener-Dle_kYqb.js +1 -1
- package/dist/plugin-sdk/active-listener-DmJcHkMC.js +1 -1
- package/dist/plugin-sdk/active-listener-UmFpcYFY.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-39TRXDEA.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-7qlqJ_ou.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-BY7fLi9z.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CF9_CKS-.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-CWylhFOt.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-ClZmonv2.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CmesQWXP.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-Cs6II2__.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CxaiMcI1.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-D5cfmg7E.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-DkP7KnSm.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-mDqgBFMG.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B-HrF5Oc.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B2MGeSoT.js +1 -1
- package/dist/plugin-sdk/audio-preflight-BVjiz_Qk.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-Behqe7F3.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C0ncOCbK.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C1o1n-KK.js +1 -1
- package/dist/plugin-sdk/audio-preflight-CzLYTZ5P.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-DDiBwIB9.js +1 -1
- package/dist/plugin-sdk/audio-preflight-DQyh-XSn.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-WH9WDR81.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-ZPLO3G1S.js +1 -1
- package/dist/plugin-sdk/audio-preflight-s3BAID12.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-2-ZQ5Md-.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-BO7T_SzP.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CRYJlAeP.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmW24oVR.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmYuWS0_.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CslXJs5c.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DE1tKTQV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DZR84B28.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DoR-NOcV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-IE4olXkd.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-YiDQM_Rb.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-kAVM4YFR.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bed876M5.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bu8tAmGa.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-C01Im_o1.js +1 -1
- package/dist/plugin-sdk/channel-activity-CIycjzUC.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cdkn3O_i.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cia2G3v5.js +1 -1
- package/dist/plugin-sdk/channel-activity-D6d2wU8H.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-DNv7JLBx.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Df3DfYyZ.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Rut-HCfT.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-mffNSQrX.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-qjwFifkE.js +1 -1
- package/dist/plugin-sdk/channel-web-Ces_xx2T.js +1 -1
- package/dist/plugin-sdk/channel-web-CsmEnYD8.cjs +1 -1
- package/dist/plugin-sdk/channel-web-DtzNv49H.cjs +1 -1
- package/dist/plugin-sdk/channel-web-VEZVrMYU.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-33H8WYTk.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BGdm1KdC.js +1 -1
- package/dist/plugin-sdk/commands-registry-BgV9i-bj.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BifdCfty.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CJLBIIIp.js +1 -1
- package/dist/plugin-sdk/commands-registry-CWK9ARbc.js +1 -1
- package/dist/plugin-sdk/commands-registry-CfVD1h8L.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CpG4pxrA.js +1 -1
- package/dist/plugin-sdk/commands-registry-D-AnIQWz.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DBI4cPqT.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DOBe9cWq.js +1 -1
- package/dist/plugin-sdk/commands-registry-DqemUyiv.js +1 -1
- package/dist/plugin-sdk/common-CEe87dmX.js +1 -1
- package/dist/plugin-sdk/common-CjMKHm2Z.cjs +1 -1
- package/dist/plugin-sdk/compat.cjs +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/config-DT_csBcZ.cjs +1 -1
- package/dist/plugin-sdk/config-LR8GH3Ws.js +1 -1
- package/dist/plugin-sdk/copilot-proxy.cjs +1 -1
- package/dist/plugin-sdk/copilot-proxy.js +1 -1
- package/dist/plugin-sdk/core.cjs +1 -1
- package/dist/plugin-sdk/core.js +1 -1
- package/dist/plugin-sdk/deliver-AORlkcbD.cjs +1 -1
- package/dist/plugin-sdk/deliver-BiBFW5fm.cjs +1 -1
- package/dist/plugin-sdk/deliver-BpqEPwLO.cjs +1 -1
- package/dist/plugin-sdk/deliver-BvC6aUKM.js +1 -1
- package/dist/plugin-sdk/deliver-CT0AIuK1.cjs +1 -1
- package/dist/plugin-sdk/deliver-CmddcjtG.cjs +1 -1
- package/dist/plugin-sdk/deliver-DFz5N1Eh.js +1 -1
- package/dist/plugin-sdk/deliver-DcJWpoqf.cjs +1 -1
- package/dist/plugin-sdk/deliver-ILim6ANU.js +1 -1
- package/dist/plugin-sdk/deliver-QgxW9IxV.js +1 -1
- package/dist/plugin-sdk/deliver-cT-Q8v0h.js +1 -1
- package/dist/plugin-sdk/deliver-cu_NQTmb.js +1 -1
- package/dist/plugin-sdk/device-pair.cjs +1 -1
- package/dist/plugin-sdk/device-pair.js +1 -1
- package/dist/plugin-sdk/diagnostic-BCyE1aYH.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-BFea3l_a.js +1 -1
- package/dist/plugin-sdk/diagnostic-BvR96WdC.js +1 -1
- package/dist/plugin-sdk/diagnostic-C0xDsk89.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CEPhLgsW.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbLwUqTE.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbfxoqI_.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DDwUPG1m.js +1 -1
- package/dist/plugin-sdk/diagnostic-DS_mKKOu.js +1 -1
- package/dist/plugin-sdk/diagnostic-DYpehqHU.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DkncnZ3G.js +1 -1
- package/dist/plugin-sdk/diagnostic-Dz8HPEDe.js +1 -1
- package/dist/plugin-sdk/diagnostics-otel.cjs +1 -1
- package/dist/plugin-sdk/diagnostics-otel.js +1 -1
- package/dist/plugin-sdk/diffs.cjs +1 -1
- package/dist/plugin-sdk/diffs.js +1 -1
- package/dist/plugin-sdk/discord.cjs +1 -1
- package/dist/plugin-sdk/discord.js +1 -1
- package/dist/plugin-sdk/dispatch-6m3206FH.js +1 -1
- package/dist/plugin-sdk/dispatch-BYZNaz0n.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BahZCe-D.js +1 -1
- package/dist/plugin-sdk/dispatch-Bi3yeWxb.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BjB_TqWy.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CNR186B3.js +1 -1
- package/dist/plugin-sdk/dispatch-CStT30wi.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CdZAW9dg.cjs +1 -1
- package/dist/plugin-sdk/dispatch-Ewg2Jgw9.js +1 -1
- package/dist/plugin-sdk/dispatch-HRTsdeCV.js +1 -1
- package/dist/plugin-sdk/feishu.cjs +1 -1
- package/dist/plugin-sdk/feishu.js +1 -1
- package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -1
- package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -1
- package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -1
- package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -1
- package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -1
- package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -1
- package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -1
- package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -1
- package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -1
- package/dist/plugin-sdk/fetch-BtZY623f.js +1 -1
- package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -1
- package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -1
- package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -1
- package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -1
- package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -1
- package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -1
- package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -1
- package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -1
- package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -1
- package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -1
- package/dist/plugin-sdk/fetch-guard-D8TdhTHU.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DC_pFJEy.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DDkd30BG.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DELiFG5g.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DIYjBRpq.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DPVfELS7.js +1 -1
- package/dist/plugin-sdk/fetch-guard-Dpz6CnJY.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqNKwgHP.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqTxZ3G8.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-EoAitPe9.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-qfU6iTvp.js +1 -1
- package/dist/plugin-sdk/fetch-guard-u2Dt6P9i.cjs +1 -1
- package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -1
- package/dist/plugin-sdk/googlechat.cjs +1 -1
- package/dist/plugin-sdk/googlechat.js +1 -1
- package/dist/plugin-sdk/image-0OHO98b9.cjs +1 -1
- package/dist/plugin-sdk/image-B9SLKAOs.cjs +1 -1
- package/dist/plugin-sdk/image-BVnZq5Y4.js +1 -1
- package/dist/plugin-sdk/image-CKLAyhco.js +1 -1
- package/dist/plugin-sdk/image-DUHEJeBF.js +1 -1
- package/dist/plugin-sdk/image-DngxW2Nh.cjs +1 -1
- package/dist/plugin-sdk/image-DrPh2689.cjs +1 -1
- package/dist/plugin-sdk/image-ISWO0Dwt.js +1 -1
- package/dist/plugin-sdk/image-KfZYW6Lh.cjs +1 -1
- package/dist/plugin-sdk/image-YVlw68CK.js +1 -1
- package/dist/plugin-sdk/image-gehqJnV6.js +1 -1
- package/dist/plugin-sdk/image-jUYo-0eT.cjs +1 -1
- package/dist/plugin-sdk/imessage.cjs +1 -1
- package/dist/plugin-sdk/imessage.js +1 -1
- package/dist/plugin-sdk/index.cjs +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/ir-78toXVqC.cjs +1 -1
- package/dist/plugin-sdk/ir-A_TqKaXP.cjs +1 -1
- package/dist/plugin-sdk/ir-B0_rUT7m.js +1 -1
- package/dist/plugin-sdk/ir-B7agH4cQ.cjs +1 -1
- package/dist/plugin-sdk/ir-B9ap_YNW.cjs +1 -1
- package/dist/plugin-sdk/ir-BxKSHYao.cjs +1 -1
- package/dist/plugin-sdk/ir-BzZArF6l.js +1 -1
- package/dist/plugin-sdk/ir-CpkEWZD6.js +1 -1
- package/dist/plugin-sdk/ir-D4Dz-giw.cjs +1 -1
- package/dist/plugin-sdk/ir-DJ08DSkk.js +1 -1
- package/dist/plugin-sdk/ir-L2vhtuGx.js +1 -1
- package/dist/plugin-sdk/ir-ntSck5Kp.js +1 -1
- package/dist/plugin-sdk/irc.cjs +1 -1
- package/dist/plugin-sdk/irc.js +1 -1
- package/dist/plugin-sdk/keyed-async-queue.cjs +1 -1
- package/dist/plugin-sdk/keyed-async-queue.js +1 -1
- package/dist/plugin-sdk/line.cjs +1 -1
- package/dist/plugin-sdk/line.js +1 -1
- package/dist/plugin-sdk/llm-task.cjs +1 -1
- package/dist/plugin-sdk/llm-task.js +1 -1
- package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -1
- package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -1
- package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -1
- package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -1
- package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -1
- package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -1
- package/dist/plugin-sdk/lobster.cjs +1 -1
- package/dist/plugin-sdk/lobster.js +1 -1
- package/dist/plugin-sdk/local-roots-B0zm186S.js +1 -1
- package/dist/plugin-sdk/local-roots-B4Uy4kG3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CM1R1Ncr.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CW78ZeZV.js +1 -1
- package/dist/plugin-sdk/local-roots-CnsaE7a_.js +1 -1
- package/dist/plugin-sdk/local-roots-D1k-fAlE.cjs +1 -1
- package/dist/plugin-sdk/local-roots-DQ_vfJPK.js +1 -1
- package/dist/plugin-sdk/local-roots-DYlB1au6.cjs +1 -1
- package/dist/plugin-sdk/local-roots-H4-t0qG_.js +1 -1
- package/dist/plugin-sdk/local-roots-SCyeUfM3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-l4PqCmiU.js +1 -1
- package/dist/plugin-sdk/local-roots-xHoEq1Fq.cjs +1 -1
- package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -1
- package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -1
- package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -1
- package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -1
- package/dist/plugin-sdk/logger-C210xuWx.js +1 -1
- package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -1
- package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -1
- package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -1
- package/dist/plugin-sdk/logger-DwWqfo66.js +1 -1
- package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -1
- package/dist/plugin-sdk/login-BN1TsFp4.cjs +1 -1
- package/dist/plugin-sdk/login-BXUtcSnB.cjs +1 -1
- package/dist/plugin-sdk/login-BoMH2iJT.js +1 -1
- package/dist/plugin-sdk/login-BtT7yRJO.js +1 -1
- package/dist/plugin-sdk/login-COzybMRK.js +1 -1
- package/dist/plugin-sdk/login-Cw1jFbel.cjs +1 -1
- package/dist/plugin-sdk/login-DEmpr5YK.js +1 -1
- package/dist/plugin-sdk/login-Dln00cFs.cjs +1 -1
- package/dist/plugin-sdk/login-S2Fe5n5K.cjs +1 -1
- package/dist/plugin-sdk/login-TieaF0ts.cjs +1 -1
- package/dist/plugin-sdk/login-ZQK4uJLw.js +1 -1
- package/dist/plugin-sdk/login-fKxJv0_F.js +1 -1
- package/dist/plugin-sdk/login-qr-1ilmySGx.js +1 -1
- package/dist/plugin-sdk/login-qr-B0ZSZaNI.js +1 -1
- package/dist/plugin-sdk/login-qr-B2P2Ky4j.js +1 -1
- package/dist/plugin-sdk/login-qr-B2U87iU8.js +1 -1
- package/dist/plugin-sdk/login-qr-B4x_eWI_.js +1 -1
- package/dist/plugin-sdk/login-qr-BIaJB24t.cjs +1 -1
- package/dist/plugin-sdk/login-qr-BMl5Beq2.cjs +1 -1
- package/dist/plugin-sdk/login-qr-Bkm3QorK.cjs +1 -1
- package/dist/plugin-sdk/login-qr-ClL8FMAJ.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DFVK1lg-.js +1 -1
- package/dist/plugin-sdk/login-qr-DhieI9fL.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DyQT1QnE.cjs +1 -1
- package/dist/plugin-sdk/manager-0tvX3Z_N.cjs +1 -1
- package/dist/plugin-sdk/manager-8uylP7PH.cjs +1 -1
- package/dist/plugin-sdk/manager-B6hWglXe.js +1 -1
- package/dist/plugin-sdk/manager-BGoKN9ur.js +1 -1
- package/dist/plugin-sdk/manager-BRP1lzb6.js +1 -1
- package/dist/plugin-sdk/manager-BeLNhsXC.cjs +1 -1
- package/dist/plugin-sdk/manager-BnytMgmq.js +1 -1
- package/dist/plugin-sdk/manager-BoMQeM1I.cjs +1 -1
- package/dist/plugin-sdk/manager-CYZY9vcM.js +1 -1
- package/dist/plugin-sdk/manager-DCDy2V1U.cjs +1 -1
- package/dist/plugin-sdk/manager-DE7sDip8.cjs +1 -1
- package/dist/plugin-sdk/manager-PwgQZNK1.js +1 -1
- package/dist/plugin-sdk/matrix.cjs +1 -1
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/mattermost.cjs +1 -1
- package/dist/plugin-sdk/mattermost.js +1 -1
- package/dist/plugin-sdk/memory-core.cjs +1 -1
- package/dist/plugin-sdk/memory-core.js +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.js +1 -1
- package/dist/plugin-sdk/model-auth-BgS7ynQw.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CKlA2xRB.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CLnFIqcf.cjs +1 -1
- package/dist/plugin-sdk/model-auth-D7YupJDS.js +1 -1
- package/dist/plugin-sdk/model-auth-eNVBeC-B.js +1 -1
- package/dist/plugin-sdk/model-auth-fJrNIbke.cjs +1 -1
- package/dist/plugin-sdk/model-auth-g6eGgTwR.js +1 -1
- package/dist/plugin-sdk/model-auth-wcxJptQX.js +1 -1
- package/dist/plugin-sdk/model-selection-4ExiFkaW.js +1 -1
- package/dist/plugin-sdk/model-selection-CZY_x2-a.cjs +1 -1
- package/dist/plugin-sdk/msteams.cjs +1 -1
- package/dist/plugin-sdk/msteams.js +1 -1
- package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
- package/dist/plugin-sdk/nextcloud-talk.js +1 -1
- package/dist/plugin-sdk/nostr.cjs +1 -1
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/outbound-2VVSR_d4.js +1 -1
- package/dist/plugin-sdk/outbound-B03BQa7T.cjs +1 -1
- package/dist/plugin-sdk/outbound-BE8CJ9c_.js +1 -1
- package/dist/plugin-sdk/outbound-BWtGs0dn.cjs +1 -1
- package/dist/plugin-sdk/outbound-BrD0UsX0.js +1 -1
- package/dist/plugin-sdk/outbound-Bvu4LbQx.js +1 -1
- package/dist/plugin-sdk/outbound-C5rNt-8z.cjs +1 -1
- package/dist/plugin-sdk/outbound-C6BJCoYf.cjs +1 -1
- package/dist/plugin-sdk/outbound-Cgc0JJtB.js +1 -1
- package/dist/plugin-sdk/outbound-DAHIkpiA.cjs +1 -1
- package/dist/plugin-sdk/outbound-DnO_udAm.cjs +1 -1
- package/dist/plugin-sdk/outbound-UAHsCNyW.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-0QahtSQB.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-8qvAj1MK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-B6SJy_CG.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-BVdSGifg.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-C-QqSQ79.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CYGrnygD.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CtA5eBgj.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-D8Ng5uVX.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-DS0S0NLK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-Ds2XsjQl.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-acB4qID1.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-x4Q2SVIA.cjs +1 -1
- package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -1
- package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -1
- package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -1
- package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -1
- package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -1
- package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -1
- package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -1
- package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -1
- package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -1
- package/dist/plugin-sdk/paths-CtrEseGU.js +1 -1
- package/dist/plugin-sdk/paths-D55o_j8-.js +1 -1
- package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -1
- package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -1
- package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -1
- package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -1
- package/dist/plugin-sdk/paths-Do0djuaj.js +1 -1
- package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -1
- package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -1
- package/dist/plugin-sdk/paths-piJASC5k.js +1 -1
- package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery--UcCzdQg.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Bi4dKtW0.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CCK2Ppj9.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CRSZ0OFi.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Cx_r4FGY.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-D3JQMjAa.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DN1RHetG.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DVFSU0-f.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DWMAAhA-.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DYOHzCjs.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DdSVvbQ5.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DejkxBol.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-SmVAFMj_.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-ma8st1Ek.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-B2WodYBY.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BC114tUb.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BF6jP1nM.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Beg-U7Z-.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BkEYsSLL.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C21sWtkh.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CKkgBGIj.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CNun__L-.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Clulhv2X.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DvwL5in9.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-FnzjmZqP.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Rq5y0QJ2.cjs +1 -1
- package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -1
- package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -1
- package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -1
- package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -1
- package/dist/plugin-sdk/polls-PGxiE05J.js +1 -1
- package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -1
- package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -1
- package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -1
- package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -1
- package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -1
- package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-3piACPqP.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-8dajXBkZ.js +1 -1
- package/dist/plugin-sdk/pw-ai-B7mrBDW5.js +1 -1
- package/dist/plugin-sdk/pw-ai-BLD7x-3a.js +1 -1
- package/dist/plugin-sdk/pw-ai-BYmANcaC.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-C1rVW06B.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CCDvaBUm.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CVYUOcKM.js +1 -1
- package/dist/plugin-sdk/pw-ai-DBg5CCXp.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-DY11CCd3.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-Kf2RyA25.js +1 -1
- package/dist/plugin-sdk/pw-ai-f5yF3n3t.js +1 -1
- package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -1
- package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -1
- package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -1
- package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -1
- package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -1
- package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -1
- package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -1
- package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -1
- package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -1
- package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.js +1 -1
- package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -1
- package/dist/plugin-sdk/render-CBsnn-2A.js +1 -1
- package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -1
- package/dist/plugin-sdk/render-DGmfCIRG.js +1 -1
- package/dist/plugin-sdk/render-DhTJXP1U.js +1 -1
- package/dist/plugin-sdk/render-Djx15dPh.js +1 -1
- package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -1
- package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -1
- package/dist/plugin-sdk/reply-BrHB7v5V.cjs +1 -1
- package/dist/plugin-sdk/reply-Clex4c2R.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-BHLQMMp-.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-Cvz2WXAk.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DDqGniMw.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DEpmpEep.js +1 -1
- package/dist/plugin-sdk/send--HeMLLzj.js +1 -1
- package/dist/plugin-sdk/send-2IhtEEzb.js +1 -1
- package/dist/plugin-sdk/send-9tPLnqkc.js +1 -1
- package/dist/plugin-sdk/send-B-exJfkg.js +1 -1
- package/dist/plugin-sdk/send-B4kzPtcN.js +1 -1
- package/dist/plugin-sdk/send-BCSkdYN6.cjs +1 -1
- package/dist/plugin-sdk/send-BEmZxBcF.js +1 -1
- package/dist/plugin-sdk/send-BHvZIrbJ.cjs +1 -1
- package/dist/plugin-sdk/send-BLbCBxeF.js +1 -1
- package/dist/plugin-sdk/send-BOkABdQu.cjs +1 -1
- package/dist/plugin-sdk/send-BPNd63Qs.js +1 -1
- package/dist/plugin-sdk/send-BVAm6Zbr.cjs +1 -1
- package/dist/plugin-sdk/send-B_619b3s.js +1 -1
- package/dist/plugin-sdk/send-BcuylzbX.js +1 -1
- package/dist/plugin-sdk/send-BdFvK9Wc2.js +1 -1
- package/dist/plugin-sdk/send-Bh-J7XWZ.cjs +1 -1
- package/dist/plugin-sdk/send-BkREPc90.cjs +1 -1
- package/dist/plugin-sdk/send-Bp4f-KJu.cjs +1 -1
- package/dist/plugin-sdk/send-BtF36kYb.js +1 -1
- package/dist/plugin-sdk/send-C6S8tkTA.cjs +1 -1
- package/dist/plugin-sdk/send-CDQF_izk.js +1 -1
- package/dist/plugin-sdk/send-CF3qas-K.js +1 -1
- package/dist/plugin-sdk/send-CFKQX2Wo.js +1 -1
- package/dist/plugin-sdk/send-CIP1u5a-.js +1 -1
- package/dist/plugin-sdk/send-CIxh7PV0.cjs +1 -1
- package/dist/plugin-sdk/send-CJJdcDHX.js +1 -1
- package/dist/plugin-sdk/send-COtvydDt.cjs +1 -1
- package/dist/plugin-sdk/send-CPwh7tRu.js +1 -1
- package/dist/plugin-sdk/send-CRnIqXN9.cjs +1 -1
- package/dist/plugin-sdk/send-CSqipUeV.cjs +1 -1
- package/dist/plugin-sdk/send-Chfe8tPY.js +1 -1
- package/dist/plugin-sdk/send-ClMvdjfg.js +1 -1
- package/dist/plugin-sdk/send-CmoJSYhT.js +1 -1
- package/dist/plugin-sdk/send-Cs5jSTw0.cjs +1 -1
- package/dist/plugin-sdk/send-D-6Et_9H.js +1 -1
- package/dist/plugin-sdk/send-D13uFnzH.cjs +1 -1
- package/dist/plugin-sdk/send-D3eT0F4N.cjs +1 -1
- package/dist/plugin-sdk/send-DAtg_VHa.js +1 -1
- package/dist/plugin-sdk/send-DCF59ijQ.cjs +1 -1
- package/dist/plugin-sdk/send-DN2xic3w.cjs +1 -1
- package/dist/plugin-sdk/send-DOjSTB6D.cjs +1 -1
- package/dist/plugin-sdk/send-DavwL7cF.js +1 -1
- package/dist/plugin-sdk/send-Dbmn1rgD.cjs +1 -1
- package/dist/plugin-sdk/send-DhfDqcwc.cjs +1 -1
- package/dist/plugin-sdk/send-DsDCrJWq.js +1 -1
- package/dist/plugin-sdk/send-DyR5Lpl-.js +1 -1
- package/dist/plugin-sdk/send-DyzuwDjE.js +1 -1
- package/dist/plugin-sdk/send-GtphEa1b.cjs +1 -1
- package/dist/plugin-sdk/send-HZNY_u3L.cjs +1 -1
- package/dist/plugin-sdk/send-IM-76QZu.js +1 -1
- package/dist/plugin-sdk/send-IqcgAO8b.cjs +1 -1
- package/dist/plugin-sdk/send-OQcuL9tP.js +1 -1
- package/dist/plugin-sdk/send-_92aOzWU.cjs +1 -1
- package/dist/plugin-sdk/send-h_kE-cAK.js +1 -1
- package/dist/plugin-sdk/send-jOMdGt0L.cjs +1 -1
- package/dist/plugin-sdk/send-mZ_d-t_3.cjs +1 -1
- package/dist/plugin-sdk/send-puyUta4_.cjs +1 -1
- package/dist/plugin-sdk/send-t5U34FhY.cjs +1 -1
- package/dist/plugin-sdk/send-tvw8j-Se.cjs +1 -1
- package/dist/plugin-sdk/send-z1vaCgF3.cjs +1 -1
- package/dist/plugin-sdk/session--K1m5v7m.js +1 -1
- package/dist/plugin-sdk/session-B1DJ45om.js +1 -1
- package/dist/plugin-sdk/session-B80NWO1m.js +1 -1
- package/dist/plugin-sdk/session-BKPBr445.js +1 -1
- package/dist/plugin-sdk/session-BQLjsBwL.cjs +1 -1
- package/dist/plugin-sdk/session-BZHltxdM.js +1 -1
- package/dist/plugin-sdk/session-Bt5yI-VW.cjs +1 -1
- package/dist/plugin-sdk/session-CC1GqwiM.cjs +1 -1
- package/dist/plugin-sdk/session-C_yqyp3P.cjs +1 -1
- package/dist/plugin-sdk/session-ClISxvtJ.js +1 -1
- package/dist/plugin-sdk/session-D4nn-nXX.cjs +1 -1
- package/dist/plugin-sdk/session-DOA4CJgj.cjs +1 -1
- package/dist/plugin-sdk/sessions-BwTjGneU.js +1 -1
- package/dist/plugin-sdk/sessions-CJbvfO6m.cjs +1 -1
- package/dist/plugin-sdk/signal.cjs +1 -1
- package/dist/plugin-sdk/signal.js +1 -1
- package/dist/plugin-sdk/skill-commands-5WGHyr3h.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-BZlF3g3o.js +1 -1
- package/dist/plugin-sdk/skill-commands-BmBQSmNH.js +1 -1
- package/dist/plugin-sdk/skill-commands-CD4GQXTR.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CGOPOT-r.js +1 -1
- package/dist/plugin-sdk/skill-commands-CM9ziCQY.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CVsU5rEy.js +1 -1
- package/dist/plugin-sdk/skill-commands-DNPxE-kc.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-DcgKCVDt.js +1 -1
- package/dist/plugin-sdk/skill-commands-IAwkVeOe.js +1 -1
- package/dist/plugin-sdk/skill-commands-ZyLkXbR_.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-xJWQthd5.cjs +1 -1
- package/dist/plugin-sdk/slack.cjs +1 -1
- package/dist/plugin-sdk/slack.js +1 -1
- package/dist/plugin-sdk/synology-chat.cjs +1 -1
- package/dist/plugin-sdk/synology-chat.js +1 -1
- package/dist/plugin-sdk/tables-BZUVdTR-.cjs +1 -1
- package/dist/plugin-sdk/tables-Bbodvj_s.cjs +1 -1
- package/dist/plugin-sdk/tables-C5b2CtNw.cjs +1 -1
- package/dist/plugin-sdk/tables-C6TX2QvW.js +1 -1
- package/dist/plugin-sdk/tables-Cz5osenc.js +1 -1
- package/dist/plugin-sdk/tables-DBSeZ07-.cjs +1 -1
- package/dist/plugin-sdk/tables-DLSXY2-Q.js +1 -1
- package/dist/plugin-sdk/tables-DQad-z2Z.cjs +1 -1
- package/dist/plugin-sdk/tables-DYuLwL1d.js +1 -1
- package/dist/plugin-sdk/tables-D_J655yN.js +1 -1
- package/dist/plugin-sdk/tables-_vqK8P0T.js +1 -1
- package/dist/plugin-sdk/tables-bSgb8OzP.cjs +1 -1
- package/dist/plugin-sdk/target-errors-B-mJ4s4b.cjs +1 -1
- package/dist/plugin-sdk/target-errors-BAHAHc8f.js +1 -1
- package/dist/plugin-sdk/target-errors-BKruhz8r.js +1 -1
- package/dist/plugin-sdk/target-errors-BbQBR5da.js +1 -1
- package/dist/plugin-sdk/target-errors-BjgLCOTm.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CQbFkOae.js +1 -1
- package/dist/plugin-sdk/target-errors-C_HYvghh.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CaaKhU6m.js +1 -1
- package/dist/plugin-sdk/target-errors-QWTCk98R.cjs +1 -1
- package/dist/plugin-sdk/target-errors-oh0u5K2w.cjs +1 -1
- package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -1
- package/dist/plugin-sdk/targets-BSkiizml.js +1 -1
- package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -1
- package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -1
- package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -1
- package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -1
- package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -1
- package/dist/plugin-sdk/targets-CrkJkzil.js +1 -1
- package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -1
- package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -1
- package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -1
- package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -1
- package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -1
- package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -1
- package/dist/plugin-sdk/telegram.cjs +1 -1
- package/dist/plugin-sdk/telegram.js +1 -1
- package/dist/plugin-sdk/test-utils.cjs +1 -1
- package/dist/plugin-sdk/test-utils.js +1 -1
- package/dist/plugin-sdk/tlon.cjs +1 -1
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -1
- package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -1
- package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -1
- package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -1
- package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -1
- package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -1
- package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -1
- package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -1
- package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -1
- package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -1
- package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -1
- package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -1
- package/dist/plugin-sdk/twitch.cjs +1 -1
- package/dist/plugin-sdk/twitch.js +1 -1
- package/dist/plugin-sdk/utils-BJtJR72k.js +1 -1
- package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -1
- package/dist/plugin-sdk/voice-call.cjs +1 -1
- package/dist/plugin-sdk/voice-call.js +1 -1
- package/dist/plugin-sdk/web-B4A8zBP9.cjs +1 -1
- package/dist/plugin-sdk/web-BKKx3jqf.cjs +1 -1
- package/dist/plugin-sdk/web-BTBgpaEi.js +1 -1
- package/dist/plugin-sdk/web-BfjArU7g.js +1 -1
- package/dist/plugin-sdk/web-C7KhecaH.cjs +1 -1
- package/dist/plugin-sdk/web-CFMrBQv7.js +1 -1
- package/dist/plugin-sdk/web-CS0AvKLx.js +1 -1
- package/dist/plugin-sdk/web-EfgEjg15.cjs +1 -1
- package/dist/plugin-sdk/weixin.cjs +1 -1
- package/dist/plugin-sdk/weixin.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-6N2LIWVD.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BGEghean.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BP_fSzB9.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BSx6-Onq.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BZAMGDn8.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BvZMduqd.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-CDUbwNdp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DNVIKnqz.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DTVbVkOo.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DjMYqpSS.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-P1DVqKhD.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-shElOKKX.js +1 -1
- package/dist/plugin-sdk/whatsapp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp.js +1 -1
- package/dist/plugin-sdk/zalo.cjs +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.cjs +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugins-CYLrFT4h.js +1 -1
- package/dist/plugins-DNlgeTTc.js +1 -1
- package/dist/plugins-cli-BiV4FaGs.js +1 -1
- package/dist/plugins-cli-C0PLRxT0.js +1 -1
- package/dist/polls-BIVz6a4F.js +1 -1
- package/dist/polls-Bh5wc9-6.js +1 -1
- package/dist/polls-C_XSFz3d.js +1 -1
- package/dist/polls-DKJOFSzJ.js +1 -1
- package/dist/ports-Bjc9q__g.js +1 -1
- package/dist/ports-Di2_MOUb.js +1 -1
- package/dist/probe-auth-9RrZOStc.js +1 -1
- package/dist/probe-auth-Cg6SAov9.js +1 -1
- package/dist/profile-utils-CWmra1aY.js +1 -1
- package/dist/program-CI--7377.js +1 -1
- package/dist/program-context-CH9p6anW.js +1 -1
- package/dist/program-context-Cu8fVR-O.js +1 -1
- package/dist/progress-LNttnI-y.js +1 -1
- package/dist/progress-d1m2sqR1.js +1 -1
- package/dist/prompt-select-styled-CbTtKeIC.js +1 -1
- package/dist/prompt-select-styled-sYEl0gMg.js +1 -1
- package/dist/prompt-style-BThRSQJR.js +1 -1
- package/dist/prompt-style-CXKekIBY.js +1 -1
- package/dist/prompts-CMzglboN.js +1 -1
- package/dist/prompts-wv-lfVrJ.js +1 -1
- package/dist/provider-auth-helpers-C3OaF218.js +1 -1
- package/dist/provider-auth-helpers-CZyb7LUg.js +1 -1
- package/dist/provider-env-vars-D8p6Ohpj.js +1 -1
- package/dist/provider-env-vars-Dt0Q29Su.js +1 -1
- package/dist/proxy-env-BNhTHkd_.js +1 -1
- package/dist/proxy-env-DcmW_urA.js +1 -1
- package/dist/proxy-env-DrC3TIGh.js +1 -1
- package/dist/proxy-env-FJr5nlvs.js +1 -1
- package/dist/proxy-fetch-BADsUK4d.js +1 -1
- package/dist/proxy-fetch-BZ9O8Dvj.js +1 -1
- package/dist/proxy-fetch-DnjU1fEB.js +1 -1
- package/dist/proxy-fetch-gWETR3cl.js +1 -1
- package/dist/push-apns-kySzOiJr.js +1 -1
- package/dist/push-apns-tM6G9LLm.js +1 -1
- package/dist/pw-ai-B7YMA_4Q.js +1 -1
- package/dist/pw-ai-C7peCONw.js +1 -1
- package/dist/pw-ai-CojtT9WR.js +1 -1
- package/dist/pw-ai-DWJWFzTA.js +1 -1
- package/dist/qmd-manager-C_e04BNg.js +1 -1
- package/dist/qmd-manager-DSQ_mDCl.js +1 -1
- package/dist/qmd-manager-DcBYbt_V.js +1 -1
- package/dist/qmd-manager-NLI0R6kp.js +1 -1
- package/dist/qr-cli-DUR7oW0_.js +1 -1
- package/dist/qr-cli-kb3ygh9I.js +1 -1
- package/dist/query-expansion-0OxEb1Io.js +1 -1
- package/dist/query-expansion-BUUx_oWg.js +1 -1
- package/dist/query-expansion-r_iXkNzt.js +1 -1
- package/dist/reaction-level-DVPHL14p.js +1 -1
- package/dist/reaction-message-id-BEEe7X3D.js +1 -1
- package/dist/read-only-account-inspect-DEnPVHTo.js +1 -1
- package/dist/redact-3_CiXMY6.js +1 -1
- package/dist/redact-CnRxK70G.js +1 -1
- package/dist/register.agent-BwmE1VD-.js +1 -1
- package/dist/register.agent-D1hQi_68.js +1 -1
- package/dist/register.backup-8s5jgnHQ.js +1 -1
- package/dist/register.backup-CAiwLaIW.js +1 -1
- package/dist/register.configure-BsTw4XfK.js +1 -1
- package/dist/register.configure-DxR84Ot6.js +1 -1
- package/dist/register.maintenance-3nzWAo_a.js +1 -1
- package/dist/register.maintenance-DxKGQ9Jo.js +1 -1
- package/dist/register.message-Bk1pHVSK.js +1 -1
- package/dist/register.message-PcFtBR0-.js +1 -1
- package/dist/register.onboard-AWxbhU7j.js +1 -1
- package/dist/register.onboard-BTOZN8ro.js +1 -1
- package/dist/register.setup-B-e1qIbc.js +1 -1
- package/dist/register.setup-CweJJdt8.js +1 -1
- package/dist/register.status-health-sessions-B1R_nl6P.js +1 -1
- package/dist/register.status-health-sessions-CWNLXpAn.js +1 -1
- package/dist/register.subclis-C0VQ_HfZ.js +1 -1
- package/dist/registry-BptzrW8D.js +1 -1
- package/dist/registry-hFAtCSWG.js +1 -1
- package/dist/render-BXEUPIHe.js +1 -1
- package/dist/render-CBsnn-2A.js +1 -1
- package/dist/render-D8OWO2hT.js +1 -1
- package/dist/render-DrrPmnMI.js +1 -1
- package/dist/reply-r9KtzgpM.js +1 -1
- package/dist/restart-CTfuVGfA.js +1 -1
- package/dist/rpc-BQXfCyCw.js +1 -1
- package/dist/rpc-CcrILVsV.js +1 -1
- package/dist/run-main-CuQQyoU3.js +1 -1
- package/dist/runtime-BlsMYeaw.js +1 -1
- package/dist/runtime-DLxfCs7F.js +1 -1
- package/dist/runtime-guard-DFYBaYZS.js +1 -1
- package/dist/runtime-guard-DX2Ie4ri.js +1 -1
- package/dist/runtime-status-CqFBmdRd.js +1 -1
- package/dist/runtime-status-DszMjvJK.js +1 -1
- package/dist/runtime-web-tools-BWv0X5qp.js +1 -1
- package/dist/runtime-web-tools-CCIXUISf.js +1 -1
- package/dist/sandbox-cli-CxluKLFV.js +1 -1
- package/dist/sandbox-cli-xCX6FV4Z.js +1 -1
- package/dist/scan-paths-C13EseXp.js +1 -1
- package/dist/scan-paths-CWtvWW40.js +1 -1
- package/dist/search-manager-KMRzwyPH.js +1 -1
- package/dist/secret-file-C7JffiM_.js +1 -1
- package/dist/secret-file-D60EFEOe.js +1 -1
- package/dist/secret-file-DuWm26jS.js +1 -1
- package/dist/secrets-cli-Be6OBr6Q.js +1 -1
- package/dist/secrets-cli-DmDZiX17.js +1 -1
- package/dist/secure-random-D7JQgiK-.js +1 -1
- package/dist/security-cli-CllLwpQ-.js +1 -1
- package/dist/security-cli-DcA9keUK.js +1 -1
- package/dist/send-8rJCpsDu.js +1 -1
- package/dist/send-BJjoLBo3.js +1 -1
- package/dist/send-BOxuQt9L.js +1 -1
- package/dist/send-BPfl_1It.js +1 -1
- package/dist/send-BdS6jUBa.js +1 -1
- package/dist/send-BeZJ1zbp.js +1 -1
- package/dist/send-BkZ8dWQV2.js +1 -1
- package/dist/send-CDAeI9xB2.js +1 -1
- package/dist/send-CgeRzkWS.js +1 -1
- package/dist/send-CiTZ4p2t.js +1 -1
- package/dist/send-D0y-r_hg2.js +1 -1
- package/dist/send-DIw8ExHc.js +1 -1
- package/dist/send-DRm6AFp-.js +1 -1
- package/dist/send-DS5Quwb7.js +1 -1
- package/dist/send-DVmPgxm7.js +1 -1
- package/dist/send-Ds5sy22D.js +1 -1
- package/dist/send-DvGzdoKK.js +1 -1
- package/dist/send-OVet2uKx.js +1 -1
- package/dist/send-YPQFx-fV.js +1 -1
- package/dist/send-e2ppdA_R.js +1 -1
- package/dist/server-Dzqb5Tau.js +1 -1
- package/dist/server-node-events-B2irOUJ_.js +1 -1
- package/dist/server-node-events-DSr6P0VG.js +1 -1
- package/dist/server-w7sUBJEA.js +1 -1
- package/dist/service-BtB9epJk.js +1 -1
- package/dist/service-DZ9EbS15.js +1 -1
- package/dist/session-BYYOduc1.js +1 -1
- package/dist/session-B_qrXLsR.js +1 -1
- package/dist/session-Be0RV2V1.js +1 -1
- package/dist/session-bk3gFwO4.js +1 -1
- package/dist/session-cost-usage-BgqKixv0.js +1 -1
- package/dist/session-cost-usage-CHtVgnE8.js +1 -1
- package/dist/session-key-C7F_iqYg.js +1 -1
- package/dist/session-key-D3P0tf5P.js +1 -1
- package/dist/session-utils-CrR0wD3W.js +1 -1
- package/dist/sessions-BvTGb3rW.js +1 -1
- package/dist/shared-9x5sqYRb.js +1 -1
- package/dist/shared-BKWhOp64.js +1 -1
- package/dist/shared-BV-hfJ3h.js +1 -1
- package/dist/skill-commands-C59b8Yso.js +1 -1
- package/dist/skill-commands-CqIEajsA.js +1 -1
- package/dist/skill-commands-F5NFH0NR.js +1 -1
- package/dist/skill-commands-O39uSj-k.js +1 -1
- package/dist/skill-scanner-CUUF3Fvo.js +1 -1
- package/dist/skill-scanner-CkxXNioD.js +1 -1
- package/dist/skills-CKTicUKS.js +1 -1
- package/dist/skills-DHbOKEGc.js +1 -1
- package/dist/skills-cli-CZD1Ng18.js +1 -1
- package/dist/skills-cli-nj0w4fe0.js +1 -1
- package/dist/skills-install-D0I6c17J.js +1 -1
- package/dist/skills-install-XHpqMBWl.js +1 -1
- package/dist/skills-status-BWIugRCz.js +1 -1
- package/dist/skills-status-DswSl5aD.js +1 -1
- package/dist/sqlite-CILF3z9U.js +1 -1
- package/dist/stagger-DmFYysrJ.js +1 -1
- package/dist/stagger-DxzgG2jd.js +1 -1
- package/dist/status-DKB9gdSp.js +1 -1
- package/dist/status-DgRrUxyg.js +1 -1
- package/dist/status-YZD9V9xi.js +1 -1
- package/dist/status-isxcm8Xz.js +1 -1
- package/dist/status.update-B_8Gumuc.js +1 -1
- package/dist/status.update-Cf2e-l9d.js +1 -1
- package/dist/string-normalization-BrUPaXaM.js +1 -1
- package/dist/string-normalization-DJT5zuUF.js +1 -1
- package/dist/subsystem-BLbY429l.js +1 -1
- package/dist/subsystem-Bc2XrjUz.js +1 -1
- package/dist/subsystem-C5XF2Fy5.js +1 -1
- package/dist/system-cli-CRs3TOTw.js +1 -1
- package/dist/system-cli-GyoLZQpj.js +1 -1
- package/dist/system-run-command-DCzdgYyb.js +1 -1
- package/dist/system-run-command-FCk9hSMO.js +1 -1
- package/dist/systemd-D7odsu4K.js +1 -1
- package/dist/systemd-DbevZh65.js +1 -1
- package/dist/systemd-hints-lXpMy-kY.js +1 -1
- package/dist/systemd-hints-x1lJAOxS.js +1 -1
- package/dist/systemd-linger-C2MJD6KG.js +1 -1
- package/dist/systemd-linger-cWKbFNpu.js +1 -1
- package/dist/table-CR7TFMew.js +1 -1
- package/dist/table-CY440fI1.js +1 -1
- package/dist/tables-3Rjt6nwZ.js +1 -1
- package/dist/tables-B9wFKQvT.js +1 -1
- package/dist/tables-D1pcaye7.js +1 -1
- package/dist/tables-h7y1Jhf4.js +1 -1
- package/dist/target-errors-CUQcIty1.js +1 -1
- package/dist/target-errors-D55sWZ4E.js +1 -1
- package/dist/target-errors-DH0aw-m5.js +1 -1
- package/dist/target-errors-LuLROpta.js +1 -1
- package/dist/targets-4EaxWBal.js +1 -1
- package/dist/targets-BJTo7bqu.js +1 -1
- package/dist/targets-BYVMrXDf.js +1 -1
- package/dist/targets-Bq6rS6-Z.js +1 -1
- package/dist/targets-CL5fYQi7.js +1 -1
- package/dist/targets-fozeWOOg.js +1 -1
- package/dist/targets-m_41k_Mv.js +1 -1
- package/dist/telegram/audit.js +1 -1
- package/dist/text-format-CvrvBBre.js +1 -1
- package/dist/text-format-DEWK6oCT.js +1 -1
- package/dist/token-DnTmiyJu.js +1 -1
- package/dist/tokens-B2fq-rL6.js +1 -1
- package/dist/tokens-CL2fSjGl.js +1 -1
- package/dist/tokens-DRM8vzJx.js +1 -1
- package/dist/tokens-XGbQGn67.js +1 -1
- package/dist/tool-display-DJDtttQg.js +1 -1
- package/dist/tool-display-DjuSUUbH.js +1 -1
- package/dist/tui-CqEb9hrT.js +1 -1
- package/dist/tui-DdZ8SpNW.js +1 -1
- package/dist/tui-cli-Bj0okLCf.js +1 -1
- package/dist/tui-cli-CYvBshyB.js +1 -1
- package/dist/types.secrets-C-5U96pc.js +1 -1
- package/dist/types.secrets-D4tbc3Wq.js +1 -1
- package/dist/update-BGrxUIyz.js +1 -1
- package/dist/update-CwTy5DPl.js +1 -1
- package/dist/update-cli-lciKU8_L.js +1 -1
- package/dist/update-cli-xb0jHjE8.js +1 -1
- package/dist/update-runner-8Hto6X-M.js +1 -1
- package/dist/update-runner-LVJcy569.js +1 -1
- package/dist/usage-format-BWD8FJFL.js +1 -1
- package/dist/usage-format-yPwal8Iz.js +1 -1
- package/dist/utils-CGdo13HV.js +1 -1
- package/dist/utils-D3t-vPka.js +1 -1
- package/dist/utils-R-mFyVJi.js +1 -1
- package/dist/utils-UGOV_184.js +1 -1
- package/dist/version-q3SkUw2K.js +1 -1
- package/dist/warning-filter.js +1 -1
- package/dist/web-Bfz_qlYe.js +1 -1
- package/dist/web-ClbIohhf.js +1 -1
- package/dist/webhooks-cli-DKfKihmJ.js +1 -1
- package/dist/webhooks-cli-LU2ADRQp.js +1 -1
- package/dist/whatsapp-actions-1TJ8dlv0.js +1 -1
- package/dist/whatsapp-actions-CuDiuPGa.js +1 -1
- package/dist/whatsapp-actions-DkLDOIk1.js +1 -1
- package/dist/whatsapp-actions-EnduXWui.js +1 -1
- package/dist/widearea-dns-BDx7vkV2.js +1 -1
- package/dist/widearea-dns-BFjqKXu_.js +1 -1
- package/dist/windows-spawn-7oINn5ao.js +1 -1
- package/dist/windows-spawn-AB7ItGAE.js +1 -1
- package/dist/with-timeout-WveKxvFV.js +1 -1
- package/dist/with-timeout-c1CzdShT.js +1 -1
- package/dist/workspace-B0ZQeHXg.js +1 -1
- package/dist/workspace-C45T1Cxg.js +1 -1
- package/dist/workspace-dirs-A8Vib9_B.js +1 -1
- package/dist/workspace-dirs-BhF1Dzxt.js +1 -1
- package/dist/workspace-xNEpaJvu.js +1 -1
- package/dist/wsl-DHxB2Ew_.js +1 -1
- package/dist/wsl-Ok7GaSJ6.js +1 -1
- package/extensions/memory-core/index.js +1 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/openclaw-telemetry-galileo-embedded/index.js +4 -0
- package/extensions/openclaw-telemetry-galileo-embedded/package.json +2 -2
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.js +13 -0
- package/extensions/openclaw-weixin/index.js +1 -0
- package/extensions/openclaw-weixin/package.json +3 -3
- package/extensions/openclaw-weixin/src/api/api.js +1 -0
- package/extensions/openclaw-weixin/src/api/config-cache.js +1 -0
- package/extensions/openclaw-weixin/src/api/session-guard.js +1 -0
- package/extensions/openclaw-weixin/src/api/types.js +1 -0
- package/extensions/openclaw-weixin/src/auth/accounts.js +1 -0
- package/extensions/openclaw-weixin/src/auth/login-qr.js +11 -0
- package/extensions/openclaw-weixin/src/auth/pairing.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-url.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/upload.js +1 -0
- package/extensions/openclaw-weixin/src/channel.js +6 -0
- package/extensions/openclaw-weixin/src/config/config-schema.js +1 -0
- package/extensions/openclaw-weixin/src/log-upload.js +4 -0
- package/extensions/openclaw-weixin/src/media/media-download.js +1 -0
- package/extensions/openclaw-weixin/src/media/mime.js +1 -0
- package/extensions/openclaw-weixin/src/media/silk-transcode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/debug-mode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/error-notice.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/inbound.js +2 -0
- package/extensions/openclaw-weixin/src/messaging/process-message.js +3 -0
- package/extensions/openclaw-weixin/src/messaging/send-media.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/send.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/slash-commands.js +2 -0
- package/extensions/openclaw-weixin/src/monitor/monitor.js +1 -0
- package/extensions/openclaw-weixin/src/runtime.js +1 -0
- package/extensions/openclaw-weixin/src/storage/state-dir.js +1 -0
- package/extensions/openclaw-weixin/src/storage/sync-buf.js +1 -0
- package/extensions/openclaw-weixin/src/util/logger.js +2 -0
- package/extensions/openclaw-weixin/src/util/random.js +1 -0
- package/extensions/openclaw-weixin/src/util/redact.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/package.json +1 -1
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.js +1 -0
- package/package.json +1 -1
- package/extensions/memory-core/index.ts +0 -38
- package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
- package/extensions/openclaw-weixin/index.ts +0 -26
- package/extensions/openclaw-weixin/src/api/api.ts +0 -238
- package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
- package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
- package/extensions/openclaw-weixin/src/api/types.ts +0 -222
- package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
- package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
- package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
- package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
- package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
- package/extensions/openclaw-weixin/src/channel.ts +0 -483
- package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
- package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
- package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
- package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
- package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
- package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
- package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
- package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
- package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
- package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
- package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
- package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
- package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
- package/extensions/openclaw-weixin/src/runtime.ts +0 -67
- package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
- package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
- package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
- package/extensions/openclaw-weixin/src/util/random.ts +0 -17
- package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
- package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
package/dist/skills-CKTicUKS.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{H as e,t}from"./subsystem-BLbY429l.js";import{h as n,t as r,u as i,v as a}from"./utils-CGdo13HV.js";import{_ as o,a as s,n as c,p as l}from"./openclaw-root-CnsBf6ZU.js";import{d as u,f as d,l as f,u as ee}from"./env-overrides-DHtB4kK3.js";import{r as p}from"./scan-paths-CWtvWW40.js";import{P as m,l as h}from"./registry-BptzrW8D.js";import{m as g}from"./frontmatter-C7mzDNxd.js";import{n as _}from"./path-alias-guards-kY_ZbWs-.js";import{URL as v,fileURLToPath as y}from"node:url";import b from"node:os";import x from"node:path";import S from"node:fs";import{formatSkillsForPrompt as C,loadSkillsFromDir as te}from"@mariozechner/pi-coding-agent";const ne=new Set([`openclaw-telemetry-galileo-embedded`,`x5use-browser-control`]),w=e=>Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim():``).filter(Boolean):[],re=e=>{if(typeof e!=`string`)return;let t=e.trim();if(t)return t.toLowerCase()===`none`?null:t},ie=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if(!n.trim())continue;if(!r||typeof r!=`object`||Array.isArray(r)){t[n]={};continue}let e=r,i=e.hooks,a=i&&typeof i==`object`&&!Array.isArray(i)?{allowPromptInjection:i.allowPromptInjection}:void 0,o=a&&typeof a.allowPromptInjection==`boolean`?{allowPromptInjection:a.allowPromptInjection}:void 0;t[n]={enabled:typeof e.enabled==`boolean`?e.enabled:void 0,hooks:o,config:`config`in e?e.config:void 0}}return t},T=e=>{let t=re(e?.slots?.memory);return{enabled:e?.enabled!==!1,allow:w(e?.allow),deny:w(e?.deny),loadPaths:w(e?.load?.paths),slots:{memory:t===void 0?m(`memory`):t},entries:ie(e?.entries)}},E=e=>!!(e?.slots&&Object.prototype.hasOwnProperty.call(e.slots,`memory`)),ae=e=>!!(e?.entries&&Object.prototype.hasOwnProperty.call(e.entries,`memory-core`)),oe=e=>e?!!(typeof e.enabled==`boolean`||Array.isArray(e.allow)&&e.allow.length>0||Array.isArray(e.deny)&&e.deny.length>0||e.load?.paths&&Array.isArray(e.load.paths)&&e.load.paths.length>0||e.slots&&Object.keys(e.slots).length>0||e.entries&&Object.keys(e.entries).length>0):!1;function se(e,t=process.env){if(!t.VITEST)return e;let n=e.plugins;return oe(n)?E(n)||ae(n)?e:{...e,plugins:{...n,slots:{...n?.slots,memory:`none`}}}:{...e,plugins:{...n,enabled:!1,slots:{...n?.slots,memory:`none`}}}}function ce(e,t=process.env){if(!t.VITEST)return!1;let n=e.plugins;return!(E(n)||ae(n))}function le(e,t,n){if(t===`bundled`&&ne.has(e))return{enabled:!0};if(!n.enabled)return{enabled:!1,reason:`plugins disabled`};if(n.deny.includes(e))return{enabled:!1,reason:`blocked by denylist`};let r=n.entries[e];return r?.enabled===!1?{enabled:!1,reason:`disabled in config`}:n.slots.memory===e?{enabled:!0}:n.allow.length>0&&!n.allow.includes(e)?{enabled:!1,reason:`not in allowlist`}:r?.enabled===!0?{enabled:!0}:t===`bundled`?{enabled:!1,reason:`bundled (disabled by default)`}:{enabled:!0}}function ue(e,t){if(!e)return!1;let n=h(t);if(!n)return!1;let r=e.channels?.[n];return!r||typeof r!=`object`||Array.isArray(r)?!1:r.enabled===!0}function de(e){let t=le(e.id,e.origin,e.config);return!t.enabled&&t.reason===`bundled (disabled by default)`&&ue(e.rootConfig,e.id)?{enabled:!0}:t}function fe(e){return e.kind===`memory`?e.slot===null?{enabled:!1,reason:`memory slot disabled`}:typeof e.slot==`string`?e.slot===e.id?{enabled:!0,selected:!0}:{enabled:!1,reason:`memory slot set to "${e.slot}"`}:e.selectedId&&e.selectedId!==e.id?{enabled:!1,reason:`memory slot already filled by "${e.selectedId}"`}:{enabled:!0,selected:!0}:{enabled:!0}}function D(e=process.env){let t=e.OPENCLAW_BUNDLED_PLUGINS_DIR?.trim();if(t)return t;try{let e=x.dirname(process.execPath),t=x.join(e,`extensions`);if(S.existsSync(t))return t}catch{}try{let e=x.dirname(y(import.meta.url));for(let t=0;t<6;t+=1){let t=x.join(e,`extensions`);if(S.existsSync(t))return t;let n=x.dirname(e);if(n===e)break;e=n}}catch{}}const pe=`openclaw.plugin.json`,me=[pe];function O(e){return Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim():``).filter(Boolean):[]}function he(e){for(let t of me){let n=x.join(e,t);if(S.existsSync(n))return n}return x.join(e,pe)}function ge(e,t=!0){let n=he(e),r=s({absolutePath:n,rootPath:e,boundaryLabel:`plugin root`,rejectHardlinks:t});if(!r.ok)return r.reason===`path`?{ok:!1,error:`plugin manifest not found: ${n}`,manifestPath:n}:{ok:!1,error:`unsafe plugin manifest path: ${n} (${r.reason})`,manifestPath:n};let a;try{a=JSON.parse(S.readFileSync(r.fd,`utf-8`))}catch(e){return{ok:!1,error:`failed to parse plugin manifest: ${String(e)}`,manifestPath:n}}finally{S.closeSync(r.fd)}if(!i(a))return{ok:!1,error:`plugin manifest must be an object`,manifestPath:n};let o=typeof a.id==`string`?a.id.trim():``;if(!o)return{ok:!1,error:`plugin manifest requires id`,manifestPath:n};let c=i(a.configSchema)?a.configSchema:null;if(!c)return{ok:!1,error:`plugin manifest requires configSchema`,manifestPath:n};let l=typeof a.kind==`string`?a.kind:void 0,u=typeof a.name==`string`?a.name.trim():void 0,d=typeof a.description==`string`?a.description.trim():void 0,f=typeof a.version==`string`?a.version.trim():void 0,ee=O(a.channels),p=O(a.providers),m=O(a.skills),h;return i(a.uiHints)&&(h=a.uiHints),{ok:!0,manifest:{id:o,configSchema:c,kind:l,channels:ee,providers:p,skills:m,name:u,description:d,version:f,uiHints:h},manifestPath:n}}const _e=[`index.ts`,`index.js`,`index.mjs`,`index.cjs`];function k(e){if(e)return e[g]}function A(e){let t=k(e)?.extensions;if(!Array.isArray(t))return{status:`missing`,entries:[]};let n=t.map(e=>typeof e==`string`?e.trim():``).filter(Boolean);return n.length===0?{status:`empty`,entries:[]}:{status:`ok`,entries:n}}function j(e,t){return l(e,t)}function M(e,t){let n=t?.get(e);if(n)return n;try{let n=S.realpathSync(e);return t?.set(e,n),n}catch{return null}}function N(e){try{return S.statSync(e)}catch{return null}}function ve(e){return(e&511).toString(8).padStart(3,`0`)}const ye=new Set([`.ts`,`.js`,`.mts`,`.cts`,`.mjs`,`.cjs`]),P=new Map,F=1e3;function be(){P.clear()}function I(e){let t=e.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS?.trim();if(t===``||t===`0`)return 0;if(!t)return F;let n=Number.parseInt(t,10);return Number.isFinite(n)?Math.max(0,n):F}function xe(e){return e.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE?.trim()?!1:I(e)>0}function Se(e){let t=e.workspaceDir?a(e.workspaceDir):``,r=x.join(n(e.env),`extensions`),i=D(e.env)??``,o=(e.extraPaths??[]).filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean).map(e=>a(e)).toSorted();return`${t}::${e.ownershipUid??L()??`none`}::${r}::${i}::${JSON.stringify(o)}`}function L(e){return e===void 0?process.platform===`win32`||typeof process.getuid!=`function`?null:process.getuid():e}function Ce(e){let t=M(e.source),n=M(e.rootDir);return!t||!n||j(n,t)?null:{reason:`source_escapes_root`,sourcePath:e.source,rootPath:e.rootDir,targetPath:e.source,sourceRealPath:t,rootRealPath:n}}function we(e){if(process.platform===`win32`)return null;let t=[e.rootDir,e.source],n=new Set;for(let r of t){let t=x.resolve(r);if(n.has(t))continue;n.add(t);let i=N(r);if(!i)return{reason:`path_stat_failed`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r};let a=i.mode&511;if(a&2&&e.origin===`bundled`)try{S.chmodSync(r,a&-19);let t=N(r);if(!t)return{reason:`path_stat_failed`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r};i=t,a=t.mode&511}catch{}if(a&2)return{reason:`path_world_writable`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r,modeBits:a};if(e.origin!==`bundled`&&e.uid!==null&&typeof i.uid==`number`&&i.uid!==e.uid&&i.uid!==0)return{reason:`path_suspicious_ownership`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r,foundUid:i.uid,expectedUid:e.uid}}return null}function Te(e){return Ce({source:e.source,rootDir:e.rootDir})||we({source:e.source,rootDir:e.rootDir,origin:e.origin,uid:L(e.ownershipUid)})}function Ee(e){return e.reason===`source_escapes_root`?`blocked plugin candidate: source escapes plugin root (${e.sourcePath} -> ${e.sourceRealPath}; root=${e.rootRealPath})`:e.reason===`path_stat_failed`?`blocked plugin candidate: cannot stat path (${e.targetPath})`:e.reason===`path_world_writable`?`blocked plugin candidate: world-writable path (${e.targetPath}, mode=${ve(e.modeBits??0)})`:`blocked plugin candidate: suspicious ownership (${e.targetPath}, uid=${e.foundUid}, expected uid=${e.expectedUid} or root)`}function De(e){let t=Te({source:e.source,rootDir:e.rootDir,origin:e.origin,ownershipUid:e.ownershipUid});return t?(e.diagnostics.push({level:`warn`,source:t.targetPath,message:Ee(t)}),!0):!1}function R(e){let t=x.extname(e);return ye.has(t)?!e.endsWith(`.d.ts`):!1}function Oe(e){let t=e.trim().toLowerCase();return!!(!t||t.endsWith(`.bak`)||t.includes(`.backup-`)||t.includes(`.disabled`))}function z(e,t=!0){let n=s({absolutePath:x.join(e,`package.json`),rootPath:e,boundaryLabel:`plugin package directory`,rejectHardlinks:t});if(!n.ok)return null;try{let e=S.readFileSync(n.fd,`utf-8`);return JSON.parse(e)}catch{return null}finally{S.closeSync(n.fd)}}function B(e){let t=x.basename(e.filePath,x.extname(e.filePath)),n=e.packageName?.trim();if(!n)return t;let r=n.includes(`/`)?n.split(`/`).pop()??n:n;return e.hasMultipleExtensions?`${r}/${t}`:r}function V(e){let t=x.resolve(e.source);if(e.seen.has(t))return;let n=M(e.rootDir)??x.resolve(e.rootDir);if(De({source:t,rootDir:n,origin:e.origin,diagnostics:e.diagnostics,ownershipUid:e.ownershipUid}))return;e.seen.add(t);let r=e.manifest??null;e.candidates.push({idHint:e.idHint,source:t,rootDir:n,origin:e.origin,workspaceDir:e.workspaceDir,packageName:r?.name?.trim()||void 0,packageVersion:r?.version?.trim()||void 0,packageDescription:r?.description?.trim()||void 0,packageDir:e.packageDir,packageManifest:k(r??void 0)})}function ke(e){let t=s({absolutePath:x.resolve(e.packageDir,e.entryPath),rootPath:e.packageDir,boundaryLabel:`plugin package directory`,rejectHardlinks:e.rejectHardlinks??!0});if(!t.ok)return e.diagnostics.push({level:`error`,message:`extension entry escapes package directory: ${e.entryPath}`,source:e.sourceLabel}),null;let n=t.path;return S.closeSync(t.fd),n}function H(e){if(!S.existsSync(e.dir))return;let t=[];try{t=S.readdirSync(e.dir,{withFileTypes:!0})}catch(t){e.diagnostics.push({level:`warn`,message:`failed to read extensions dir: ${e.dir} (${String(t)})`,source:e.dir});return}for(let n of t){let t=x.join(e.dir,n.name);if(n.isFile()){if(!R(t))continue;V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:x.basename(n.name,x.extname(n.name)),source:t,rootDir:x.dirname(t),origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir})}if(!n.isDirectory()||Oe(n.name))continue;let r=e.origin!==`bundled`,i=z(t,r),a=A(i??void 0),o=a.status===`ok`?a.entries:[];if(o.length>0){for(let n of o){let a=ke({packageDir:t,entryPath:n,sourceLabel:t,diagnostics:e.diagnostics,rejectHardlinks:r});a&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:B({filePath:a,packageName:i?.name,hasMultipleExtensions:o.length>1}),source:a,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:i,packageDir:t})}continue}let s=[..._e].map(e=>x.join(t,e)).find(e=>S.existsSync(e));s&&R(s)&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:n.name,source:s,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:i,packageDir:t})}}function Ae(e){let t=a(e.rawPath);if(!S.existsSync(t)){e.diagnostics.push({level:`error`,message:`plugin path not found: ${t}`,source:t});return}let n=S.statSync(t);if(n.isFile()){if(!R(t)){e.diagnostics.push({level:`error`,message:`plugin path is not a supported file: ${t}`,source:t});return}V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:x.basename(t,x.extname(t)),source:t,rootDir:x.dirname(t),origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir});return}if(n.isDirectory()){let n=e.origin!==`bundled`,r=z(t,n),i=A(r??void 0),a=i.status===`ok`?i.entries:[];if(a.length>0){for(let i of a){let o=ke({packageDir:t,entryPath:i,sourceLabel:t,diagnostics:e.diagnostics,rejectHardlinks:n});o&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:B({filePath:o,packageName:r?.name,hasMultipleExtensions:a.length>1}),source:o,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:r,packageDir:t})}return}let o=[..._e].map(e=>x.join(t,e)).find(e=>S.existsSync(e));if(o&&R(o)){V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:x.basename(t),source:o,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:r,packageDir:t});return}H({dir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen});return}}function je(e){let t=e.env??process.env,r=e.cache!==!1&&xe(t),i=Se({workspaceDir:e.workspaceDir,extraPaths:e.extraPaths,ownershipUid:e.ownershipUid,env:t});if(r){let e=P.get(i);if(e&&e.expiresAt>Date.now())return e.result}let o=[],s=[],c=new Set,l=e.workspaceDir?.trim(),u=e.extraPaths??[];for(let t of u){if(typeof t!=`string`)continue;let n=t.trim();n&&Ae({rawPath:n,origin:`config`,ownershipUid:e.ownershipUid,workspaceDir:l?.trim()||void 0,candidates:o,diagnostics:s,seen:c})}if(l){let t=a(l),n=[x.join(t,`.openclaw`,`extensions`)];for(let r of n)H({dir:r,origin:`workspace`,ownershipUid:e.ownershipUid,workspaceDir:t,candidates:o,diagnostics:s,seen:c})}let d=D(t);d&&H({dir:d,origin:`bundled`,ownershipUid:e.ownershipUid,candidates:o,diagnostics:s,seen:c}),H({dir:x.join(n(t),`extensions`),origin:`global`,ownershipUid:e.ownershipUid,candidates:o,diagnostics:s,seen:c});let f={candidates:o,diagnostics:s};if(r){let e=I(t);e>0&&P.set(i,{expiresAt:Date.now()+e,result:f})}return f}const Me={config:0,workspace:1,global:2,bundled:3},U=new Map,Ne=1e3;function Pe(){U.clear()}function Fe(e){let t=e.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS?.trim();if(t===``||t===`0`)return 0;if(!t)return Ne;let n=Number.parseInt(t,10);return Number.isFinite(n)?Math.max(0,n):Ne}function Ie(e){return e.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE?.trim()?!1:Fe(e)>0}function Le(e){let t=e.workspaceDir?a(e.workspaceDir):``,r=x.join(n(e.env),`extensions`),i=D(e.env)??``,o=e.plugins.loadPaths.map(e=>a(e)).map(e=>e.trim()).filter(Boolean).toSorted();return`${t}::${r}::${i}::${JSON.stringify(o)}`}function Re(e){try{return S.statSync(e).mtimeMs}catch{return null}}function W(e){return e?.trim()||void 0}function ze(e){return{id:e.manifest.id,name:W(e.manifest.name)??e.candidate.packageName,description:W(e.manifest.description)??e.candidate.packageDescription,version:W(e.manifest.version)??e.candidate.packageVersion,kind:e.manifest.kind,channels:e.manifest.channels??[],providers:e.manifest.providers??[],skills:e.manifest.skills??[],origin:e.candidate.origin,workspaceDir:e.candidate.workspaceDir,rootDir:e.candidate.rootDir,source:e.candidate.source,manifestPath:e.manifestPath,schemaCacheKey:e.schemaCacheKey,configSchema:e.configSchema,configUiHints:e.manifest.uiHints}}function Be(e){let t=T((e.config??{}).plugins),n=e.env??process.env,r=Le({workspaceDir:e.workspaceDir,plugins:t,env:n}),i=e.cache!==!1&&Ie(n);if(i){let e=U.get(r);if(e&&e.expiresAt>Date.now())return e.registry}let a=e.candidates?{candidates:e.candidates,diagnostics:e.diagnostics??[]}:je({workspaceDir:e.workspaceDir,extraPaths:t.loadPaths,env:n}),o=[...a.diagnostics],s=a.candidates,c=[],l=new Map,u=new Map;for(let e of s){let t=e.origin!==`bundled`,n=ge(e.rootDir,t);if(!n.ok){o.push({level:`error`,message:n.error,source:n.manifestPath});continue}let r=n.manifest;e.idHint&&e.idHint!==r.id&&o.push({level:`warn`,pluginId:r.id,source:e.source,message:`plugin id mismatch (manifest uses "${r.id}", entry hints "${e.idHint}")`});let i=r.configSchema,a=(()=>{if(!i)return;let e=Re(n.manifestPath);return e?`${n.manifestPath}:${e}`:n.manifestPath})(),s=l.get(r.id);if(s){let t=s.candidate.rootDir===e.rootDir;if((()=>{if(t)return!0;let n=M(s.candidate.rootDir,u),r=M(e.rootDir,u);return!!(n&&r&&n===r)})()){Me[e.origin]<Me[s.candidate.origin]&&(c[s.recordIndex]=ze({manifest:r,candidate:e,manifestPath:n.manifestPath,schemaCacheKey:a,configSchema:i}),l.set(r.id,{candidate:e,recordIndex:s.recordIndex}));continue}o.push({level:`warn`,pluginId:r.id,source:e.source,message:`duplicate plugin id detected; later plugin may be overridden (${e.source})`})}else l.set(r.id,{candidate:e,recordIndex:c.length});c.push(ze({manifest:r,candidate:e,manifestPath:n.manifestPath,schemaCacheKey:a,configSchema:i}))}let d={plugins:c,diagnostics:o};if(i){let e=Fe(n);e>0&&U.set(r,{expiresAt:Date.now()+e,registry:d})}return d}const Ve=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,He=/^https?:\/\//i,Ue=/^data:/i,G=`/workspace`;function We(e){return e.replace(Ve,` `)}function Ge(e){return e.startsWith(`@`)?e.slice(1):e}function Ke(e){let t=We(Ge(e));return t===`~`?b.homedir():t.startsWith(`~/`)?b.homedir()+t.slice(1):t}function qe(e,t){let n=Ke(e);return x.isAbsolute(n)?n:x.resolve(t,n)}function K(e,t){return qe(e,t)}function q(e){let t=K(e.filePath,e.cwd),n=x.resolve(e.root),r=x.relative(n,t);if(!r||r===``)return{resolved:t,relative:``};if(r.startsWith(`..`)||x.isAbsolute(r))throw Error(`Path escapes sandbox root (${tt(n)}): ${e.filePath}`);return{resolved:t,relative:r}}async function Je(e){let t=q(e),n={allowFinalSymlinkForUnlink:e.allowFinalSymlinkForUnlink,allowFinalHardlinkForUnlink:e.allowFinalHardlinkForUnlink};return await _({absolutePath:t.resolved,rootPath:e.root,boundaryLabel:`sandbox root`,policy:n}),t}function Ye(e){let t=e.trim();if(Ue.test(t))throw Error(`data: URLs are not supported for media. Use buffer instead.`)}async function Xe(e){let t=e.media.trim();if(!t||He.test(t))return t;let n=t;if(/^file:\/\//i.test(n)){let r=Ze({fileUrl:n,sandboxRoot:e.sandboxRoot});if(r)n=r;else try{n=y(n)}catch{throw Error(`Invalid file:// URL for sandboxed media: ${t}`)}}let r=Qe({candidate:n,sandboxRoot:e.sandboxRoot});return r&&(n=r),await $e({candidate:n,sandboxRoot:e.sandboxRoot})||(await Je({filePath:n,cwd:e.sandboxRoot,root:e.sandboxRoot})).resolved}function Ze(e){let t;try{t=new v(e.fileUrl)}catch{return}if(t.protocol!==`file:`)return;let n=decodeURIComponent(t.pathname).replace(/\\/g,`/`);if(!(n!==G&&!n.startsWith(`${G}/`)))return Qe({candidate:n,sandboxRoot:e.sandboxRoot})}function Qe(e){let t=e.candidate.replace(/\\/g,`/`);if(t===G)return x.resolve(e.sandboxRoot);let n=`${G}/`;if(!t.startsWith(n))return;let r=t.slice(n.length);return r?x.resolve(e.sandboxRoot,...r.split(`/`).filter(Boolean)):x.resolve(e.sandboxRoot)}async function $e(t){if(!x.isAbsolute(Ke(t.candidate)))return;let n=x.resolve(K(t.candidate,t.sandboxRoot)),r=x.resolve(e());if(l(r,n))return await et({filePath:n,tmpRoot:r}),n}async function et(e){await _({absolutePath:e.filePath,rootPath:e.tmpRoot,boundaryLabel:`tmp root`})}function tt(e){return e.startsWith(b.homedir())?`~${e.slice(b.homedir().length)}`:e}function nt(e){try{let t=S.readdirSync(e,{withFileTypes:!0});for(let n of t){if(n.name.startsWith(`.`))continue;let t=x.join(e,n.name);if(n.isFile()&&n.name.endsWith(`.md`)||n.isDirectory()&&S.existsSync(x.join(t,`SKILL.md`)))return!0}}catch{return!1}return!1}function rt(e={}){let t=process.env.OPENCLAW_BUNDLED_SKILLS_DIR?.trim();if(t)return t;try{let t=e.execPath??process.execPath,n=x.dirname(t),r=x.join(n,`skills`);if(S.existsSync(r))return r}catch{}try{let t=e.moduleUrl??import.meta.url,n=x.dirname(y(t)),r=c({argv1:e.argv1??process.argv[1],moduleUrl:t,cwd:e.cwd??process.cwd()});if(r){let e=x.join(r,`skills`);if(nt(e))return e}let i=n;for(let e=0;e<6;e+=1){let e=x.join(i,`skills`);if(nt(e))return e;let t=x.dirname(i);if(t===i)break;i=t}}catch{}}const it=t(`skills`);function at(e){let t=(e.workspaceDir??``).trim();if(!t)return[];let n=Be({workspaceDir:t,config:e.config});if(n.plugins.length===0)return[];let r=T(e.config?.plugins),i=e.config?.acp?.enabled!==!1,a=r.slots.memory,o=null,s=new Set,c=[];for(let t of n.plugins){if(!t.skills||t.skills.length===0||!de({id:t.id,origin:t.origin,config:r,rootConfig:e.config}).enabled||!i&&t.id===`acpx`)continue;let n=fe({id:t.id,kind:t.kind,slot:a,selectedId:o});if(n.enabled){n.selected&&t.kind===`memory`&&(o=t.id);for(let e of t.skills){let n=e.trim();if(!n)continue;let r=x.resolve(t.rootDir,n);if(!S.existsSync(r)){it.warn(`plugin skill path not found (${t.id}): ${r}`);continue}if(!p(t.rootDir,r,{requireRealpath:!0})){it.warn(`plugin skill path escapes plugin root (${t.id}): ${r}`);continue}s.has(r)||(s.add(r),c.push(r))}}}return c}const J=new Map;async function ot(e,t){let n=(J.get(e)??Promise.resolve()).then(t,t);J.set(e,n);try{return await n}finally{J.get(e)===n&&J.delete(e)}}const Y=S.promises,X=t(`skills`),st=new Set;function ct(e){let t=b.homedir();if(!t)return e;let n=t.endsWith(x.sep)?t:t+x.sep;return e.map(e=>({...e,filePath:e.filePath.startsWith(n)?`~/`+e.filePath.slice(n.length):e.filePath}))}function Z(e,t,n){st.has(e)||(st.add(e),X.debug(t,n))}function lt(e,t,n,r){let i=e.filter(e=>f({entry:e,config:t,eligibility:r}));if(n!==void 0){let e=o(n)??[],t=e.length>0?e.join(`, `):`(none)`;X.debug(`Applying skill filter: ${t}`),i=e.length>0?i.filter(t=>e.includes(t.skill.name)):[],X.debug(`After skill filter: ${i.map(e=>e.skill.name).join(`, `)||`(none)`}`)}return i}function ut(e){return e.toLowerCase().replace(/[^a-z0-9_]+/g,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``).slice(0,32)||`skill`}function dt(e,t){let n=e.toLowerCase();if(!t.has(n))return e;for(let n=2;n<1e3;n+=1){let r=`_${n}`,i=Math.max(1,32-r.length),a=`${e.slice(0,i)}${r}`,o=a.toLowerCase();if(!t.has(o))return a}return`${e.slice(0,30)}_x`}function ft(e){let t=e?.skills?.limits;return{maxCandidatesPerRoot:t?.maxCandidatesPerRoot??300,maxSkillsLoadedPerSource:t?.maxSkillsLoadedPerSource??200,maxSkillsInPrompt:t?.maxSkillsInPrompt??150,maxSkillsPromptChars:t?.maxSkillsPromptChars??3e4,maxSkillFileBytes:t?.maxSkillFileBytes??256e3}}function pt(e){try{let t=S.readdirSync(e,{withFileTypes:!0}),n=[];for(let r of t){if(r.name.startsWith(`.`)||r.name===`node_modules`)continue;let t=x.join(e,r.name);if(r.isDirectory()){n.push(r.name);continue}if(r.isSymbolicLink())try{S.statSync(t).isDirectory()&&n.push(r.name)}catch{}}return n}catch{return[]}}function mt(e){try{return S.realpathSync(e)}catch{return null}}function ht(e){X.warn(`Skipping skill path that resolves outside its configured root.`,{source:e.source,rootDir:e.rootDir,path:e.candidatePath,realPath:e.candidateRealPath})}function Q(e){let t=mt(e.candidatePath);return t?l(e.rootRealPath,t)?t:(ht({source:e.source,rootDir:e.rootDir,candidatePath:x.resolve(e.candidatePath),candidateRealPath:t}),null):null}function gt(e){return e.skills.filter(t=>Q({source:e.source,rootDir:e.rootDir,rootRealPath:e.rootRealPath,candidatePath:t.baseDir})?!!Q({source:e.source,rootDir:e.rootDir,rootRealPath:e.rootRealPath,candidatePath:t.filePath}):!1)}function _t(e,t){let n=x.join(e,`skills`);try{if(!S.existsSync(n)||!S.statSync(n).isDirectory())return{baseDir:e}}catch{return{baseDir:e}}let r=pt(n),i=Math.max(0,t?.maxEntriesToScan??100),a=i===0?[]:r.slice(0,Math.min(r.length,i));for(let e of a){let t=x.join(n,e,`SKILL.md`);if(S.existsSync(t))return{baseDir:n,note:`Detected nested skills root at ${n}`}}return{baseDir:e}}function vt(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`&&`skills`in e){let t=e.skills;if(Array.isArray(t))return t}return[]}function $(e,t){let n=ft(t?.config),i=e=>{let t=x.resolve(e.dir),r=mt(t)??t,i=_t(e.dir,{maxEntriesToScan:n.maxCandidatesPerRoot}).baseDir,a=Q({source:e.source,rootDir:t,rootRealPath:r,candidatePath:i});if(!a)return[];let o=x.join(i,`SKILL.md`);if(S.existsSync(o)){let r=Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:o});if(!r)return[];try{let e=S.statSync(r).size;if(e>n.maxSkillFileBytes)return X.warn(`Skipping skills root due to oversized SKILL.md.`,{dir:i,filePath:o,size:e,maxSkillFileBytes:n.maxSkillFileBytes}),[]}catch{return[]}return gt({skills:vt(te({dir:i,source:e.source})),source:e.source,rootDir:t,rootRealPath:a})}let s=pt(i),c=s.length>n.maxCandidatesPerRoot,l=Math.max(0,n.maxSkillsLoadedPerSource),u=s.slice().sort().slice(0,l);c?X.warn(`Skills root looks suspiciously large, truncating discovery.`,{dir:e.dir,baseDir:i,childDirCount:s.length,maxCandidatesPerRoot:n.maxCandidatesPerRoot,maxSkillsLoadedPerSource:n.maxSkillsLoadedPerSource}):s.length>l&&X.warn(`Skills root has many entries, truncating discovery.`,{dir:e.dir,baseDir:i,childDirCount:s.length,maxSkillsLoadedPerSource:n.maxSkillsLoadedPerSource});let d=[];for(let r of u){let o=x.join(i,r);if(!Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:o}))continue;let s=x.join(o,`SKILL.md`);if(!S.existsSync(s))continue;let c=Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:s});if(!c)continue;try{let e=S.statSync(c).size;if(e>n.maxSkillFileBytes){X.warn(`Skipping skill due to oversized SKILL.md.`,{skill:r,filePath:s,size:e,maxSkillFileBytes:n.maxSkillFileBytes});continue}}catch{continue}let l=te({dir:o,source:e.source});if(d.push(...gt({skills:vt(l),source:e.source,rootDir:t,rootRealPath:a})),d.length>=n.maxSkillsLoadedPerSource)break}return d.length>n.maxSkillsLoadedPerSource?d.slice().sort((e,t)=>e.name.localeCompare(t.name)).slice(0,n.maxSkillsLoadedPerSource):d},o=t?.managedSkillsDir??x.join(r,`skills`),s=x.resolve(e,`skills`),c=t?.bundledSkillsDir??rt(),l=(t?.config?.skills?.load?.extraDirs??[]).map(e=>typeof e==`string`?e.trim():``).filter(Boolean),f=at({workspaceDir:e,config:t?.config}),p=[...l,...f],m=c?i({dir:c,source:`openclaw-bundled`}):[],h=p.flatMap(e=>i({dir:a(e),source:`openclaw-extra`})),g=i({dir:o,source:`openclaw-managed`}),_=i({dir:x.resolve(e,`.agents`,`skills`),source:`agents-skills-project`}),v=i({dir:s,source:`openclaw-workspace`}),y=i({dir:x.resolve(b.homedir(),`.qbotclaw`,`openclaw-qbot`,`skills`),source:`openclaw-qbotclaw`}),C=new Map;for(let e of h)C.set(e.name,e);for(let e of m)C.set(e.name,e);for(let e of g)C.set(e.name,e);for(let e of _)C.set(e.name,e);for(let e of v)C.set(e.name,e);for(let e of y)C.set(e.name,e);return Array.from(C.values()).map(e=>{let t={};try{t=ee(S.readFileSync(e.filePath,`utf-8`))}catch{}return{skill:e,frontmatter:t,metadata:u(t),invocation:d(t)}})}function yt(e){let t=ft(e.config),n=e.skills.length,r=e.skills.slice(0,Math.max(0,t.maxSkillsInPrompt)),i=r,a=n>r.length,o=a?`count`:null,s=e=>C(e).length<=t.maxSkillsPromptChars;if(!s(i)){let e=0,t=i.length;for(;e<t;){let n=Math.ceil((e+t)/2);s(i.slice(0,n))?e=n:t=n-1}i=i.slice(0,e),a=!0,o=`chars`}return{skillsForPrompt:i,truncated:a,truncatedReason:o}}function bt(e,t){let{eligible:n,prompt:r,resolvedSkills:i}=St(e,t),a=o(t?.skillFilter);return{prompt:r,skills:n.map(e=>({name:e.skill.name,primaryEnv:e.metadata?.primaryEnv,requiredEnv:e.metadata?.requires?.env?.slice()})),...a===void 0?{}:{skillFilter:a},resolvedSkills:i,version:t?.snapshotVersion}}function xt(e,t){return St(e,t).prompt}function St(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility),r=n.filter(e=>e.invocation?.disableModelInvocation!==!0),i=t?.eligibility?.remote?.note?.trim(),a=r.map(e=>e.skill),{skillsForPrompt:o,truncated:s}=yt({skills:a,config:t?.config});return{eligible:n,prompt:[i,s?`⚠️ Skills truncated: included ${o.length} of ${a.length}. Run \`openclaw skills check\` to audit.`:``,C(ct(o))].filter(Boolean).join(`
|
|
2
|
-
`),resolvedSkills:a}}function Ct(e){let t=e.skillsSnapshot?.prompt?.trim();if(t)return t;if(e.entries&&e.entries.length>0){let t=xt(e.workspaceDir,{entries:e.entries,config:e.config});return t.trim()?t:``}return``}function wt(e,t){return $(e,t)}function Tt(e,t){if(!t.has(e))return t.add(e),e;for(let n=2;n<1e4;n+=1){let r=`${e}-${n}`;if(!t.has(r))return t.add(r),r}let n=1e4,r=`${e}-${n}`;for(;t.has(r);)n+=1,r=`${e}-${n}`;return t.add(r),r}function Et(e){let t=x.basename(e.entry.skill.baseDir).trim();return!t||t===`.`||t===`..`?null:q({filePath:Tt(t,e.usedDirNames),cwd:e.targetSkillsDir,root:e.targetSkillsDir}).resolved}async function Dt(e){let t=a(e.sourceWorkspaceDir),n=a(e.targetWorkspaceDir);t!==n&&await ot(`syncSkills:${n}`,async()=>{let r=x.join(n,`skills`),i=$(t,{config:e.config,managedSkillsDir:e.managedSkillsDir,bundledSkillsDir:e.bundledSkillsDir});await Y.rm(r,{recursive:!0,force:!0}),await Y.mkdir(r,{recursive:!0});let a=new Set;for(let e of i){let t=null;try{t=Et({targetSkillsDir:r,entry:e,usedDirNames:a})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to resolve safe destination for ${e.skill.name}: ${n}`);continue}if(!t){X.warn(`Failed to resolve safe destination for ${e.skill.name}: invalid source directory name`);continue}try{await Y.cp(e.skill.baseDir,t,{recursive:!0,force:!0})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to copy ${e.skill.name} to sandbox: ${n}`)}}})}function Ot(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility).filter(e=>e.invocation?.userInvocable!==!1),r=new Set;for(let e of t?.reservedNames??[])r.add(e.toLowerCase());let i=[];for(let e of n){let t=e.skill.name,n=ut(t);n!==t&&Z(`sanitize:${t}:${n}`,`Sanitized skill command name "${t}" to "/${n}".`,{rawName:t,sanitized:`/${n}`});let a=dt(n,r);a!==n&&Z(`dedupe:${t}:${a}`,`De-duplicated skill command name for "${t}" to "/${a}".`,{rawName:t,deduped:`/${a}`}),r.add(a.toLowerCase());let o=e.skill.description?.trim()||t,s=o.length>100?o.slice(0,99)+`…`:o,c=(()=>{let n=(e.frontmatter?.[`command-dispatch`]??e.frontmatter?.command_dispatch??``).trim().toLowerCase();if(!n||n!==`tool`)return;let r=(e.frontmatter?.[`command-tool`]??e.frontmatter?.command_tool??``).trim();if(!r){Z(`dispatch:missingTool:${t}`,`Skill command "/${a}" requested tool dispatch but did not provide command-tool. Ignoring dispatch.`,{skillName:t,command:a});return}let i=(e.frontmatter?.[`command-arg-mode`]??e.frontmatter?.command_arg_mode??``).trim().toLowerCase();return!i||i===`raw`||Z(`dispatch:badArgMode:${t}:${i}`,`Skill command "/${a}" requested tool dispatch but has unknown command-arg-mode. Falling back to raw.`,{skillName:t,command:a,argMode:i}),{kind:`tool`,toolName:r,argMode:`raw`}})();i.push({name:a,skillName:t,description:s,...c?{dispatch:c}:{}})}return i}function kt(e){let t=e?.skills?.install,n=t?.preferBrew??!0,r=(typeof t?.nodeManager==`string`?t.nodeManager.trim():``).toLowerCase();return{preferBrew:n,nodeManager:r===`pnpm`||r===`yarn`||r===`bun`||r===`npm`?r:`npm`}}export{se as C,fe as D,de as E,D as S,T,je as _,Ct as a,ge as b,rt as c,K as d,q as f,be as g,Be as h,wt as i,Ye as l,Pe as m,Ot as n,Dt as o,Xe as p,bt as r,at as s,kt as t,Je as u,j as v,ce as w,A as x,N as y};
|
|
2
|
+
`),resolvedSkills:a}}function Ct(e){let t=e.skillsSnapshot?.prompt?.trim();if(t)return t;if(e.entries&&e.entries.length>0){let t=xt(e.workspaceDir,{entries:e.entries,config:e.config});return t.trim()?t:``}return``}function wt(e,t){return $(e,t)}function Tt(e,t){if(!t.has(e))return t.add(e),e;for(let n=2;n<1e4;n+=1){let r=`${e}-${n}`;if(!t.has(r))return t.add(r),r}let n=1e4,r=`${e}-${n}`;for(;t.has(r);)n+=1,r=`${e}-${n}`;return t.add(r),r}function Et(e){let t=x.basename(e.entry.skill.baseDir).trim();return!t||t===`.`||t===`..`?null:q({filePath:Tt(t,e.usedDirNames),cwd:e.targetSkillsDir,root:e.targetSkillsDir}).resolved}async function Dt(e){let t=a(e.sourceWorkspaceDir),n=a(e.targetWorkspaceDir);t!==n&&await ot(`syncSkills:${n}`,async()=>{let r=x.join(n,`skills`),i=$(t,{config:e.config,managedSkillsDir:e.managedSkillsDir,bundledSkillsDir:e.bundledSkillsDir});await Y.rm(r,{recursive:!0,force:!0}),await Y.mkdir(r,{recursive:!0});let a=new Set;for(let e of i){let t=null;try{t=Et({targetSkillsDir:r,entry:e,usedDirNames:a})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to resolve safe destination for ${e.skill.name}: ${n}`);continue}if(!t){X.warn(`Failed to resolve safe destination for ${e.skill.name}: invalid source directory name`);continue}try{await Y.cp(e.skill.baseDir,t,{recursive:!0,force:!0})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to copy ${e.skill.name} to sandbox: ${n}`)}}})}function Ot(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility).filter(e=>e.invocation?.userInvocable!==!1),r=new Set;for(let e of t?.reservedNames??[])r.add(e.toLowerCase());let i=[];for(let e of n){let t=e.skill.name,n=ut(t);n!==t&&Z(`sanitize:${t}:${n}`,`Sanitized skill command name "${t}" to "/${n}".`,{rawName:t,sanitized:`/${n}`});let a=dt(n,r);a!==n&&Z(`dedupe:${t}:${a}`,`De-duplicated skill command name for "${t}" to "/${a}".`,{rawName:t,deduped:`/${a}`}),r.add(a.toLowerCase());let o=e.skill.description?.trim()||t,s=o.length>100?o.slice(0,99)+`…`:o,c=(()=>{let n=(e.frontmatter?.[`command-dispatch`]??e.frontmatter?.command_dispatch??``).trim().toLowerCase();if(!n||n!==`tool`)return;let r=(e.frontmatter?.[`command-tool`]??e.frontmatter?.command_tool??``).trim();if(!r){Z(`dispatch:missingTool:${t}`,`Skill command "/${a}" requested tool dispatch but did not provide command-tool. Ignoring dispatch.`,{skillName:t,command:a});return}let i=(e.frontmatter?.[`command-arg-mode`]??e.frontmatter?.command_arg_mode??``).trim().toLowerCase();return!i||i===`raw`||Z(`dispatch:badArgMode:${t}:${i}`,`Skill command "/${a}" requested tool dispatch but has unknown command-arg-mode. Falling back to raw.`,{skillName:t,command:a,argMode:i}),{kind:`tool`,toolName:r,argMode:`raw`}})();i.push({name:a,skillName:t,description:s,...c?{dispatch:c}:{}})}return i}function kt(e){let t=e?.skills?.install,n=t?.preferBrew??!0,r=(typeof t?.nodeManager==`string`?t.nodeManager.trim():``).toLowerCase();return{preferBrew:n,nodeManager:r===`pnpm`||r===`yarn`||r===`bun`||r===`npm`?r:`npm`}}export{se as C,fe as D,de as E,D as S,T,je as _,Ct as a,ge as b,rt as c,K as d,q as f,be as g,Be as h,wt as i,Ye as l,Pe as m,Ot as n,Dt as o,Xe as p,bt as r,at as s,kt as t,Je as u,j as v,ce as w,A as x,N as y};
|
package/dist/skills-DHbOKEGc.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{H as e,t}from"./subsystem-C5XF2Fy5.js";import{d as n,g as r,t as i,y as a}from"./utils-UGOV_184.js";import{_ as o,a as s,n as c,p as l}from"./openclaw-root-D_0Q6--h.js";import{d as u,f as d,l as f,u as ee}from"./env-overrides-DXJbFrwI.js";import{r as p}from"./scan-paths-C13EseXp.js";import{P as m,l as h}from"./registry-hFAtCSWG.js";import{m as g}from"./frontmatter-BkZkwkVO.js";import{n as _}from"./path-alias-guards-mvyLCPlN.js";import{URL as v,fileURLToPath as y}from"node:url";import b from"node:fs";import x from"node:os";import S from"node:path";import{formatSkillsForPrompt as C,loadSkillsFromDir as te}from"@mariozechner/pi-coding-agent";const ne=new Set([`openclaw-telemetry-galileo-embedded`,`x5use-browser-control`]),w=e=>Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim():``).filter(Boolean):[],re=e=>{if(typeof e!=`string`)return;let t=e.trim();if(t)return t.toLowerCase()===`none`?null:t},ie=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if(!n.trim())continue;if(!r||typeof r!=`object`||Array.isArray(r)){t[n]={};continue}let e=r,i=e.hooks,a=i&&typeof i==`object`&&!Array.isArray(i)?{allowPromptInjection:i.allowPromptInjection}:void 0,o=a&&typeof a.allowPromptInjection==`boolean`?{allowPromptInjection:a.allowPromptInjection}:void 0;t[n]={enabled:typeof e.enabled==`boolean`?e.enabled:void 0,hooks:o,config:`config`in e?e.config:void 0}}return t},T=e=>{let t=re(e?.slots?.memory);return{enabled:e?.enabled!==!1,allow:w(e?.allow),deny:w(e?.deny),loadPaths:w(e?.load?.paths),slots:{memory:t===void 0?m(`memory`):t},entries:ie(e?.entries)}},E=e=>!!(e?.slots&&Object.prototype.hasOwnProperty.call(e.slots,`memory`)),ae=e=>!!(e?.entries&&Object.prototype.hasOwnProperty.call(e.entries,`memory-core`)),oe=e=>e?!!(typeof e.enabled==`boolean`||Array.isArray(e.allow)&&e.allow.length>0||Array.isArray(e.deny)&&e.deny.length>0||e.load?.paths&&Array.isArray(e.load.paths)&&e.load.paths.length>0||e.slots&&Object.keys(e.slots).length>0||e.entries&&Object.keys(e.entries).length>0):!1;function se(e,t=process.env){if(!t.VITEST)return e;let n=e.plugins;return oe(n)?E(n)||ae(n)?e:{...e,plugins:{...n,slots:{...n?.slots,memory:`none`}}}:{...e,plugins:{...n,enabled:!1,slots:{...n?.slots,memory:`none`}}}}function ce(e,t=process.env){if(!t.VITEST)return!1;let n=e.plugins;return!(E(n)||ae(n))}function le(e,t,n){if(t===`bundled`&&ne.has(e))return{enabled:!0};if(!n.enabled)return{enabled:!1,reason:`plugins disabled`};if(n.deny.includes(e))return{enabled:!1,reason:`blocked by denylist`};let r=n.entries[e];return r?.enabled===!1?{enabled:!1,reason:`disabled in config`}:n.slots.memory===e?{enabled:!0}:n.allow.length>0&&!n.allow.includes(e)?{enabled:!1,reason:`not in allowlist`}:r?.enabled===!0?{enabled:!0}:t===`bundled`?{enabled:!1,reason:`bundled (disabled by default)`}:{enabled:!0}}function ue(e,t){if(!e)return!1;let n=h(t);if(!n)return!1;let r=e.channels?.[n];return!r||typeof r!=`object`||Array.isArray(r)?!1:r.enabled===!0}function de(e){let t=le(e.id,e.origin,e.config);return!t.enabled&&t.reason===`bundled (disabled by default)`&&ue(e.rootConfig,e.id)?{enabled:!0}:t}function fe(e){return e.kind===`memory`?e.slot===null?{enabled:!1,reason:`memory slot disabled`}:typeof e.slot==`string`?e.slot===e.id?{enabled:!0,selected:!0}:{enabled:!1,reason:`memory slot set to "${e.slot}"`}:e.selectedId&&e.selectedId!==e.id?{enabled:!1,reason:`memory slot already filled by "${e.selectedId}"`}:{enabled:!0,selected:!0}:{enabled:!0}}function D(e=process.env){let t=e.OPENCLAW_BUNDLED_PLUGINS_DIR?.trim();if(t)return t;try{let e=S.dirname(process.execPath),t=S.join(e,`extensions`);if(b.existsSync(t))return t}catch{}try{let e=S.dirname(y(import.meta.url));for(let t=0;t<6;t+=1){let t=S.join(e,`extensions`);if(b.existsSync(t))return t;let n=S.dirname(e);if(n===e)break;e=n}}catch{}}const pe=`openclaw.plugin.json`,me=[pe];function O(e){return Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim():``).filter(Boolean):[]}function he(e){for(let t of me){let n=S.join(e,t);if(b.existsSync(n))return n}return S.join(e,pe)}function ge(e,t=!0){let r=he(e),i=s({absolutePath:r,rootPath:e,boundaryLabel:`plugin root`,rejectHardlinks:t});if(!i.ok)return i.reason===`path`?{ok:!1,error:`plugin manifest not found: ${r}`,manifestPath:r}:{ok:!1,error:`unsafe plugin manifest path: ${r} (${i.reason})`,manifestPath:r};let a;try{a=JSON.parse(b.readFileSync(i.fd,`utf-8`))}catch(e){return{ok:!1,error:`failed to parse plugin manifest: ${String(e)}`,manifestPath:r}}finally{b.closeSync(i.fd)}if(!n(a))return{ok:!1,error:`plugin manifest must be an object`,manifestPath:r};let o=typeof a.id==`string`?a.id.trim():``;if(!o)return{ok:!1,error:`plugin manifest requires id`,manifestPath:r};let c=n(a.configSchema)?a.configSchema:null;if(!c)return{ok:!1,error:`plugin manifest requires configSchema`,manifestPath:r};let l=typeof a.kind==`string`?a.kind:void 0,u=typeof a.name==`string`?a.name.trim():void 0,d=typeof a.description==`string`?a.description.trim():void 0,f=typeof a.version==`string`?a.version.trim():void 0,ee=O(a.channels),p=O(a.providers),m=O(a.skills),h;return n(a.uiHints)&&(h=a.uiHints),{ok:!0,manifest:{id:o,configSchema:c,kind:l,channels:ee,providers:p,skills:m,name:u,description:d,version:f,uiHints:h},manifestPath:r}}const _e=[`index.ts`,`index.js`,`index.mjs`,`index.cjs`];function k(e){if(e)return e[g]}function A(e){let t=k(e)?.extensions;if(!Array.isArray(t))return{status:`missing`,entries:[]};let n=t.map(e=>typeof e==`string`?e.trim():``).filter(Boolean);return n.length===0?{status:`empty`,entries:[]}:{status:`ok`,entries:n}}function j(e,t){return l(e,t)}function M(e,t){let n=t?.get(e);if(n)return n;try{let n=b.realpathSync(e);return t?.set(e,n),n}catch{return null}}function N(e){try{return b.statSync(e)}catch{return null}}function ve(e){return(e&511).toString(8).padStart(3,`0`)}const ye=new Set([`.ts`,`.js`,`.mts`,`.cts`,`.mjs`,`.cjs`]),P=new Map,F=1e3;function be(){P.clear()}function I(e){let t=e.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS?.trim();if(t===``||t===`0`)return 0;if(!t)return F;let n=Number.parseInt(t,10);return Number.isFinite(n)?Math.max(0,n):F}function xe(e){return e.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE?.trim()?!1:I(e)>0}function Se(e){let t=e.workspaceDir?a(e.workspaceDir):``,n=S.join(r(e.env),`extensions`),i=D(e.env)??``,o=(e.extraPaths??[]).filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean).map(e=>a(e)).toSorted();return`${t}::${e.ownershipUid??L()??`none`}::${n}::${i}::${JSON.stringify(o)}`}function L(e){return e===void 0?process.platform===`win32`||typeof process.getuid!=`function`?null:process.getuid():e}function Ce(e){let t=M(e.source),n=M(e.rootDir);return!t||!n||j(n,t)?null:{reason:`source_escapes_root`,sourcePath:e.source,rootPath:e.rootDir,targetPath:e.source,sourceRealPath:t,rootRealPath:n}}function we(e){if(process.platform===`win32`)return null;let t=[e.rootDir,e.source],n=new Set;for(let r of t){let t=S.resolve(r);if(n.has(t))continue;n.add(t);let i=N(r);if(!i)return{reason:`path_stat_failed`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r};let a=i.mode&511;if(a&2&&e.origin===`bundled`)try{b.chmodSync(r,a&-19);let t=N(r);if(!t)return{reason:`path_stat_failed`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r};i=t,a=t.mode&511}catch{}if(a&2)return{reason:`path_world_writable`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r,modeBits:a};if(e.origin!==`bundled`&&e.uid!==null&&typeof i.uid==`number`&&i.uid!==e.uid&&i.uid!==0)return{reason:`path_suspicious_ownership`,sourcePath:e.source,rootPath:e.rootDir,targetPath:r,foundUid:i.uid,expectedUid:e.uid}}return null}function Te(e){return Ce({source:e.source,rootDir:e.rootDir})||we({source:e.source,rootDir:e.rootDir,origin:e.origin,uid:L(e.ownershipUid)})}function Ee(e){return e.reason===`source_escapes_root`?`blocked plugin candidate: source escapes plugin root (${e.sourcePath} -> ${e.sourceRealPath}; root=${e.rootRealPath})`:e.reason===`path_stat_failed`?`blocked plugin candidate: cannot stat path (${e.targetPath})`:e.reason===`path_world_writable`?`blocked plugin candidate: world-writable path (${e.targetPath}, mode=${ve(e.modeBits??0)})`:`blocked plugin candidate: suspicious ownership (${e.targetPath}, uid=${e.foundUid}, expected uid=${e.expectedUid} or root)`}function De(e){let t=Te({source:e.source,rootDir:e.rootDir,origin:e.origin,ownershipUid:e.ownershipUid});return t?(e.diagnostics.push({level:`warn`,source:t.targetPath,message:Ee(t)}),!0):!1}function R(e){let t=S.extname(e);return ye.has(t)?!e.endsWith(`.d.ts`):!1}function Oe(e){let t=e.trim().toLowerCase();return!!(!t||t.endsWith(`.bak`)||t.includes(`.backup-`)||t.includes(`.disabled`))}function z(e,t=!0){let n=s({absolutePath:S.join(e,`package.json`),rootPath:e,boundaryLabel:`plugin package directory`,rejectHardlinks:t});if(!n.ok)return null;try{let e=b.readFileSync(n.fd,`utf-8`);return JSON.parse(e)}catch{return null}finally{b.closeSync(n.fd)}}function B(e){let t=S.basename(e.filePath,S.extname(e.filePath)),n=e.packageName?.trim();if(!n)return t;let r=n.includes(`/`)?n.split(`/`).pop()??n:n;return e.hasMultipleExtensions?`${r}/${t}`:r}function V(e){let t=S.resolve(e.source);if(e.seen.has(t))return;let n=M(e.rootDir)??S.resolve(e.rootDir);if(De({source:t,rootDir:n,origin:e.origin,diagnostics:e.diagnostics,ownershipUid:e.ownershipUid}))return;e.seen.add(t);let r=e.manifest??null;e.candidates.push({idHint:e.idHint,source:t,rootDir:n,origin:e.origin,workspaceDir:e.workspaceDir,packageName:r?.name?.trim()||void 0,packageVersion:r?.version?.trim()||void 0,packageDescription:r?.description?.trim()||void 0,packageDir:e.packageDir,packageManifest:k(r??void 0)})}function ke(e){let t=s({absolutePath:S.resolve(e.packageDir,e.entryPath),rootPath:e.packageDir,boundaryLabel:`plugin package directory`,rejectHardlinks:e.rejectHardlinks??!0});if(!t.ok)return e.diagnostics.push({level:`error`,message:`extension entry escapes package directory: ${e.entryPath}`,source:e.sourceLabel}),null;let n=t.path;return b.closeSync(t.fd),n}function H(e){if(!b.existsSync(e.dir))return;let t=[];try{t=b.readdirSync(e.dir,{withFileTypes:!0})}catch(t){e.diagnostics.push({level:`warn`,message:`failed to read extensions dir: ${e.dir} (${String(t)})`,source:e.dir});return}for(let n of t){let t=S.join(e.dir,n.name);if(n.isFile()){if(!R(t))continue;V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:S.basename(n.name,S.extname(n.name)),source:t,rootDir:S.dirname(t),origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir})}if(!n.isDirectory()||Oe(n.name))continue;let r=e.origin!==`bundled`,i=z(t,r),a=A(i??void 0),o=a.status===`ok`?a.entries:[];if(o.length>0){for(let n of o){let a=ke({packageDir:t,entryPath:n,sourceLabel:t,diagnostics:e.diagnostics,rejectHardlinks:r});a&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:B({filePath:a,packageName:i?.name,hasMultipleExtensions:o.length>1}),source:a,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:i,packageDir:t})}continue}let s=[..._e].map(e=>S.join(t,e)).find(e=>b.existsSync(e));s&&R(s)&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:n.name,source:s,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:i,packageDir:t})}}function Ae(e){let t=a(e.rawPath);if(!b.existsSync(t)){e.diagnostics.push({level:`error`,message:`plugin path not found: ${t}`,source:t});return}let n=b.statSync(t);if(n.isFile()){if(!R(t)){e.diagnostics.push({level:`error`,message:`plugin path is not a supported file: ${t}`,source:t});return}V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:S.basename(t,S.extname(t)),source:t,rootDir:S.dirname(t),origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir});return}if(n.isDirectory()){let n=e.origin!==`bundled`,r=z(t,n),i=A(r??void 0),a=i.status===`ok`?i.entries:[];if(a.length>0){for(let i of a){let o=ke({packageDir:t,entryPath:i,sourceLabel:t,diagnostics:e.diagnostics,rejectHardlinks:n});o&&V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:B({filePath:o,packageName:r?.name,hasMultipleExtensions:a.length>1}),source:o,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:r,packageDir:t})}return}let o=[..._e].map(e=>S.join(t,e)).find(e=>b.existsSync(e));if(o&&R(o)){V({candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen,idHint:S.basename(t),source:o,rootDir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,manifest:r,packageDir:t});return}H({dir:t,origin:e.origin,ownershipUid:e.ownershipUid,workspaceDir:e.workspaceDir,candidates:e.candidates,diagnostics:e.diagnostics,seen:e.seen});return}}function je(e){let t=e.env??process.env,n=e.cache!==!1&&xe(t),i=Se({workspaceDir:e.workspaceDir,extraPaths:e.extraPaths,ownershipUid:e.ownershipUid,env:t});if(n){let e=P.get(i);if(e&&e.expiresAt>Date.now())return e.result}let o=[],s=[],c=new Set,l=e.workspaceDir?.trim(),u=e.extraPaths??[];for(let t of u){if(typeof t!=`string`)continue;let n=t.trim();n&&Ae({rawPath:n,origin:`config`,ownershipUid:e.ownershipUid,workspaceDir:l?.trim()||void 0,candidates:o,diagnostics:s,seen:c})}if(l){let t=a(l),n=[S.join(t,`.openclaw`,`extensions`)];for(let r of n)H({dir:r,origin:`workspace`,ownershipUid:e.ownershipUid,workspaceDir:t,candidates:o,diagnostics:s,seen:c})}let d=D(t);d&&H({dir:d,origin:`bundled`,ownershipUid:e.ownershipUid,candidates:o,diagnostics:s,seen:c}),H({dir:S.join(r(t),`extensions`),origin:`global`,ownershipUid:e.ownershipUid,candidates:o,diagnostics:s,seen:c});let f={candidates:o,diagnostics:s};if(n){let e=I(t);e>0&&P.set(i,{expiresAt:Date.now()+e,result:f})}return f}const Me={config:0,workspace:1,global:2,bundled:3},U=new Map,Ne=1e3;function Pe(){U.clear()}function Fe(e){let t=e.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS?.trim();if(t===``||t===`0`)return 0;if(!t)return Ne;let n=Number.parseInt(t,10);return Number.isFinite(n)?Math.max(0,n):Ne}function Ie(e){return e.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE?.trim()?!1:Fe(e)>0}function Le(e){let t=e.workspaceDir?a(e.workspaceDir):``,n=S.join(r(e.env),`extensions`),i=D(e.env)??``,o=e.plugins.loadPaths.map(e=>a(e)).map(e=>e.trim()).filter(Boolean).toSorted();return`${t}::${n}::${i}::${JSON.stringify(o)}`}function Re(e){try{return b.statSync(e).mtimeMs}catch{return null}}function W(e){return e?.trim()||void 0}function ze(e){return{id:e.manifest.id,name:W(e.manifest.name)??e.candidate.packageName,description:W(e.manifest.description)??e.candidate.packageDescription,version:W(e.manifest.version)??e.candidate.packageVersion,kind:e.manifest.kind,channels:e.manifest.channels??[],providers:e.manifest.providers??[],skills:e.manifest.skills??[],origin:e.candidate.origin,workspaceDir:e.candidate.workspaceDir,rootDir:e.candidate.rootDir,source:e.candidate.source,manifestPath:e.manifestPath,schemaCacheKey:e.schemaCacheKey,configSchema:e.configSchema,configUiHints:e.manifest.uiHints}}function Be(e){let t=T((e.config??{}).plugins),n=e.env??process.env,r=Le({workspaceDir:e.workspaceDir,plugins:t,env:n}),i=e.cache!==!1&&Ie(n);if(i){let e=U.get(r);if(e&&e.expiresAt>Date.now())return e.registry}let a=e.candidates?{candidates:e.candidates,diagnostics:e.diagnostics??[]}:je({workspaceDir:e.workspaceDir,extraPaths:t.loadPaths,env:n}),o=[...a.diagnostics],s=a.candidates,c=[],l=new Map,u=new Map;for(let e of s){let t=e.origin!==`bundled`,n=ge(e.rootDir,t);if(!n.ok){o.push({level:`error`,message:n.error,source:n.manifestPath});continue}let r=n.manifest;e.idHint&&e.idHint!==r.id&&o.push({level:`warn`,pluginId:r.id,source:e.source,message:`plugin id mismatch (manifest uses "${r.id}", entry hints "${e.idHint}")`});let i=r.configSchema,a=(()=>{if(!i)return;let e=Re(n.manifestPath);return e?`${n.manifestPath}:${e}`:n.manifestPath})(),s=l.get(r.id);if(s){let t=s.candidate.rootDir===e.rootDir;if((()=>{if(t)return!0;let n=M(s.candidate.rootDir,u),r=M(e.rootDir,u);return!!(n&&r&&n===r)})()){Me[e.origin]<Me[s.candidate.origin]&&(c[s.recordIndex]=ze({manifest:r,candidate:e,manifestPath:n.manifestPath,schemaCacheKey:a,configSchema:i}),l.set(r.id,{candidate:e,recordIndex:s.recordIndex}));continue}o.push({level:`warn`,pluginId:r.id,source:e.source,message:`duplicate plugin id detected; later plugin may be overridden (${e.source})`})}else l.set(r.id,{candidate:e,recordIndex:c.length});c.push(ze({manifest:r,candidate:e,manifestPath:n.manifestPath,schemaCacheKey:a,configSchema:i}))}let d={plugins:c,diagnostics:o};if(i){let e=Fe(n);e>0&&U.set(r,{expiresAt:Date.now()+e,registry:d})}return d}const Ve=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,He=/^https?:\/\//i,Ue=/^data:/i,G=`/workspace`;function We(e){return e.replace(Ve,` `)}function Ge(e){return e.startsWith(`@`)?e.slice(1):e}function Ke(e){let t=We(Ge(e));return t===`~`?x.homedir():t.startsWith(`~/`)?x.homedir()+t.slice(1):t}function qe(e,t){let n=Ke(e);return S.isAbsolute(n)?n:S.resolve(t,n)}function K(e,t){return qe(e,t)}function q(e){let t=K(e.filePath,e.cwd),n=S.resolve(e.root),r=S.relative(n,t);if(!r||r===``)return{resolved:t,relative:``};if(r.startsWith(`..`)||S.isAbsolute(r))throw Error(`Path escapes sandbox root (${tt(n)}): ${e.filePath}`);return{resolved:t,relative:r}}async function Je(e){let t=q(e),n={allowFinalSymlinkForUnlink:e.allowFinalSymlinkForUnlink,allowFinalHardlinkForUnlink:e.allowFinalHardlinkForUnlink};return await _({absolutePath:t.resolved,rootPath:e.root,boundaryLabel:`sandbox root`,policy:n}),t}function Ye(e){let t=e.trim();if(Ue.test(t))throw Error(`data: URLs are not supported for media. Use buffer instead.`)}async function Xe(e){let t=e.media.trim();if(!t||He.test(t))return t;let n=t;if(/^file:\/\//i.test(n)){let r=Ze({fileUrl:n,sandboxRoot:e.sandboxRoot});if(r)n=r;else try{n=y(n)}catch{throw Error(`Invalid file:// URL for sandboxed media: ${t}`)}}let r=Qe({candidate:n,sandboxRoot:e.sandboxRoot});return r&&(n=r),await $e({candidate:n,sandboxRoot:e.sandboxRoot})||(await Je({filePath:n,cwd:e.sandboxRoot,root:e.sandboxRoot})).resolved}function Ze(e){let t;try{t=new v(e.fileUrl)}catch{return}if(t.protocol!==`file:`)return;let n=decodeURIComponent(t.pathname).replace(/\\/g,`/`);if(!(n!==G&&!n.startsWith(`${G}/`)))return Qe({candidate:n,sandboxRoot:e.sandboxRoot})}function Qe(e){let t=e.candidate.replace(/\\/g,`/`);if(t===G)return S.resolve(e.sandboxRoot);let n=`${G}/`;if(!t.startsWith(n))return;let r=t.slice(n.length);return r?S.resolve(e.sandboxRoot,...r.split(`/`).filter(Boolean)):S.resolve(e.sandboxRoot)}async function $e(t){if(!S.isAbsolute(Ke(t.candidate)))return;let n=S.resolve(K(t.candidate,t.sandboxRoot)),r=S.resolve(e());if(l(r,n))return await et({filePath:n,tmpRoot:r}),n}async function et(e){await _({absolutePath:e.filePath,rootPath:e.tmpRoot,boundaryLabel:`tmp root`})}function tt(e){return e.startsWith(x.homedir())?`~${e.slice(x.homedir().length)}`:e}function nt(e){try{let t=b.readdirSync(e,{withFileTypes:!0});for(let n of t){if(n.name.startsWith(`.`))continue;let t=S.join(e,n.name);if(n.isFile()&&n.name.endsWith(`.md`)||n.isDirectory()&&b.existsSync(S.join(t,`SKILL.md`)))return!0}}catch{return!1}return!1}function rt(e={}){let t=process.env.OPENCLAW_BUNDLED_SKILLS_DIR?.trim();if(t)return t;try{let t=e.execPath??process.execPath,n=S.dirname(t),r=S.join(n,`skills`);if(b.existsSync(r))return r}catch{}try{let t=e.moduleUrl??import.meta.url,n=S.dirname(y(t)),r=c({argv1:e.argv1??process.argv[1],moduleUrl:t,cwd:e.cwd??process.cwd()});if(r){let e=S.join(r,`skills`);if(nt(e))return e}let i=n;for(let e=0;e<6;e+=1){let e=S.join(i,`skills`);if(nt(e))return e;let t=S.dirname(i);if(t===i)break;i=t}}catch{}}const it=t(`skills`);function at(e){let t=(e.workspaceDir??``).trim();if(!t)return[];let n=Be({workspaceDir:t,config:e.config});if(n.plugins.length===0)return[];let r=T(e.config?.plugins),i=e.config?.acp?.enabled!==!1,a=r.slots.memory,o=null,s=new Set,c=[];for(let t of n.plugins){if(!t.skills||t.skills.length===0||!de({id:t.id,origin:t.origin,config:r,rootConfig:e.config}).enabled||!i&&t.id===`acpx`)continue;let n=fe({id:t.id,kind:t.kind,slot:a,selectedId:o});if(n.enabled){n.selected&&t.kind===`memory`&&(o=t.id);for(let e of t.skills){let n=e.trim();if(!n)continue;let r=S.resolve(t.rootDir,n);if(!b.existsSync(r)){it.warn(`plugin skill path not found (${t.id}): ${r}`);continue}if(!p(t.rootDir,r,{requireRealpath:!0})){it.warn(`plugin skill path escapes plugin root (${t.id}): ${r}`);continue}s.has(r)||(s.add(r),c.push(r))}}}return c}const J=new Map;async function ot(e,t){let n=(J.get(e)??Promise.resolve()).then(t,t);J.set(e,n);try{return await n}finally{J.get(e)===n&&J.delete(e)}}const Y=b.promises,X=t(`skills`),st=new Set;function ct(e){let t=x.homedir();if(!t)return e;let n=t.endsWith(S.sep)?t:t+S.sep;return e.map(e=>({...e,filePath:e.filePath.startsWith(n)?`~/`+e.filePath.slice(n.length):e.filePath}))}function Z(e,t,n){st.has(e)||(st.add(e),X.debug(t,n))}function lt(e,t,n,r){let i=e.filter(e=>f({entry:e,config:t,eligibility:r}));if(n!==void 0){let e=o(n)??[],t=e.length>0?e.join(`, `):`(none)`;X.debug(`Applying skill filter: ${t}`),i=e.length>0?i.filter(t=>e.includes(t.skill.name)):[],X.debug(`After skill filter: ${i.map(e=>e.skill.name).join(`, `)||`(none)`}`)}return i}function ut(e){return e.toLowerCase().replace(/[^a-z0-9_]+/g,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``).slice(0,32)||`skill`}function dt(e,t){let n=e.toLowerCase();if(!t.has(n))return e;for(let n=2;n<1e3;n+=1){let r=`_${n}`,i=Math.max(1,32-r.length),a=`${e.slice(0,i)}${r}`,o=a.toLowerCase();if(!t.has(o))return a}return`${e.slice(0,30)}_x`}function ft(e){let t=e?.skills?.limits;return{maxCandidatesPerRoot:t?.maxCandidatesPerRoot??300,maxSkillsLoadedPerSource:t?.maxSkillsLoadedPerSource??200,maxSkillsInPrompt:t?.maxSkillsInPrompt??150,maxSkillsPromptChars:t?.maxSkillsPromptChars??3e4,maxSkillFileBytes:t?.maxSkillFileBytes??256e3}}function pt(e){try{let t=b.readdirSync(e,{withFileTypes:!0}),n=[];for(let r of t){if(r.name.startsWith(`.`)||r.name===`node_modules`)continue;let t=S.join(e,r.name);if(r.isDirectory()){n.push(r.name);continue}if(r.isSymbolicLink())try{b.statSync(t).isDirectory()&&n.push(r.name)}catch{}}return n}catch{return[]}}function mt(e){try{return b.realpathSync(e)}catch{return null}}function ht(e){X.warn(`Skipping skill path that resolves outside its configured root.`,{source:e.source,rootDir:e.rootDir,path:e.candidatePath,realPath:e.candidateRealPath})}function Q(e){let t=mt(e.candidatePath);return t?l(e.rootRealPath,t)?t:(ht({source:e.source,rootDir:e.rootDir,candidatePath:S.resolve(e.candidatePath),candidateRealPath:t}),null):null}function gt(e){return e.skills.filter(t=>Q({source:e.source,rootDir:e.rootDir,rootRealPath:e.rootRealPath,candidatePath:t.baseDir})?!!Q({source:e.source,rootDir:e.rootDir,rootRealPath:e.rootRealPath,candidatePath:t.filePath}):!1)}function _t(e,t){let n=S.join(e,`skills`);try{if(!b.existsSync(n)||!b.statSync(n).isDirectory())return{baseDir:e}}catch{return{baseDir:e}}let r=pt(n),i=Math.max(0,t?.maxEntriesToScan??100),a=i===0?[]:r.slice(0,Math.min(r.length,i));for(let e of a){let t=S.join(n,e,`SKILL.md`);if(b.existsSync(t))return{baseDir:n,note:`Detected nested skills root at ${n}`}}return{baseDir:e}}function vt(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`&&`skills`in e){let t=e.skills;if(Array.isArray(t))return t}return[]}function $(e,t){let n=ft(t?.config),r=e=>{let t=S.resolve(e.dir),r=mt(t)??t,i=_t(e.dir,{maxEntriesToScan:n.maxCandidatesPerRoot}).baseDir,a=Q({source:e.source,rootDir:t,rootRealPath:r,candidatePath:i});if(!a)return[];let o=S.join(i,`SKILL.md`);if(b.existsSync(o)){let r=Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:o});if(!r)return[];try{let e=b.statSync(r).size;if(e>n.maxSkillFileBytes)return X.warn(`Skipping skills root due to oversized SKILL.md.`,{dir:i,filePath:o,size:e,maxSkillFileBytes:n.maxSkillFileBytes}),[]}catch{return[]}return gt({skills:vt(te({dir:i,source:e.source})),source:e.source,rootDir:t,rootRealPath:a})}let s=pt(i),c=s.length>n.maxCandidatesPerRoot,l=Math.max(0,n.maxSkillsLoadedPerSource),u=s.slice().sort().slice(0,l);c?X.warn(`Skills root looks suspiciously large, truncating discovery.`,{dir:e.dir,baseDir:i,childDirCount:s.length,maxCandidatesPerRoot:n.maxCandidatesPerRoot,maxSkillsLoadedPerSource:n.maxSkillsLoadedPerSource}):s.length>l&&X.warn(`Skills root has many entries, truncating discovery.`,{dir:e.dir,baseDir:i,childDirCount:s.length,maxSkillsLoadedPerSource:n.maxSkillsLoadedPerSource});let d=[];for(let r of u){let o=S.join(i,r);if(!Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:o}))continue;let s=S.join(o,`SKILL.md`);if(!b.existsSync(s))continue;let c=Q({source:e.source,rootDir:t,rootRealPath:a,candidatePath:s});if(!c)continue;try{let e=b.statSync(c).size;if(e>n.maxSkillFileBytes){X.warn(`Skipping skill due to oversized SKILL.md.`,{skill:r,filePath:s,size:e,maxSkillFileBytes:n.maxSkillFileBytes});continue}}catch{continue}let l=te({dir:o,source:e.source});if(d.push(...gt({skills:vt(l),source:e.source,rootDir:t,rootRealPath:a})),d.length>=n.maxSkillsLoadedPerSource)break}return d.length>n.maxSkillsLoadedPerSource?d.slice().sort((e,t)=>e.name.localeCompare(t.name)).slice(0,n.maxSkillsLoadedPerSource):d},o=t?.managedSkillsDir??S.join(i,`skills`),s=S.resolve(e,`skills`),c=t?.bundledSkillsDir??rt(),l=(t?.config?.skills?.load?.extraDirs??[]).map(e=>typeof e==`string`?e.trim():``).filter(Boolean),f=at({workspaceDir:e,config:t?.config}),p=[...l,...f],m=c?r({dir:c,source:`openclaw-bundled`}):[],h=p.flatMap(e=>r({dir:a(e),source:`openclaw-extra`})),g=r({dir:o,source:`openclaw-managed`}),_=r({dir:S.resolve(e,`.agents`,`skills`),source:`agents-skills-project`}),v=r({dir:s,source:`openclaw-workspace`}),y=r({dir:S.resolve(x.homedir(),`.qbotclaw`,`openclaw-qbot`,`skills`),source:`openclaw-qbotclaw`}),C=new Map;for(let e of h)C.set(e.name,e);for(let e of m)C.set(e.name,e);for(let e of g)C.set(e.name,e);for(let e of _)C.set(e.name,e);for(let e of v)C.set(e.name,e);for(let e of y)C.set(e.name,e);return Array.from(C.values()).map(e=>{let t={};try{t=ee(b.readFileSync(e.filePath,`utf-8`))}catch{}return{skill:e,frontmatter:t,metadata:u(t),invocation:d(t)}})}function yt(e){let t=ft(e.config),n=e.skills.length,r=e.skills.slice(0,Math.max(0,t.maxSkillsInPrompt)),i=r,a=n>r.length,o=a?`count`:null,s=e=>C(e).length<=t.maxSkillsPromptChars;if(!s(i)){let e=0,t=i.length;for(;e<t;){let n=Math.ceil((e+t)/2);s(i.slice(0,n))?e=n:t=n-1}i=i.slice(0,e),a=!0,o=`chars`}return{skillsForPrompt:i,truncated:a,truncatedReason:o}}function bt(e,t){let{eligible:n,prompt:r,resolvedSkills:i}=St(e,t),a=o(t?.skillFilter);return{prompt:r,skills:n.map(e=>({name:e.skill.name,primaryEnv:e.metadata?.primaryEnv,requiredEnv:e.metadata?.requires?.env?.slice()})),...a===void 0?{}:{skillFilter:a},resolvedSkills:i,version:t?.snapshotVersion}}function xt(e,t){return St(e,t).prompt}function St(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility),r=n.filter(e=>e.invocation?.disableModelInvocation!==!0),i=t?.eligibility?.remote?.note?.trim(),a=r.map(e=>e.skill),{skillsForPrompt:o,truncated:s}=yt({skills:a,config:t?.config});return{eligible:n,prompt:[i,s?`⚠️ Skills truncated: included ${o.length} of ${a.length}. Run \`openclaw skills check\` to audit.`:``,C(ct(o))].filter(Boolean).join(`
|
|
2
|
-
`),resolvedSkills:a}}function Ct(e){let t=e.skillsSnapshot?.prompt?.trim();if(t)return t;if(e.entries&&e.entries.length>0){let t=xt(e.workspaceDir,{entries:e.entries,config:e.config});return t.trim()?t:``}return``}function wt(e,t){return $(e,t)}function Tt(e,t){if(!t.has(e))return t.add(e),e;for(let n=2;n<1e4;n+=1){let r=`${e}-${n}`;if(!t.has(r))return t.add(r),r}let n=1e4,r=`${e}-${n}`;for(;t.has(r);)n+=1,r=`${e}-${n}`;return t.add(r),r}function Et(e){let t=S.basename(e.entry.skill.baseDir).trim();return!t||t===`.`||t===`..`?null:q({filePath:Tt(t,e.usedDirNames),cwd:e.targetSkillsDir,root:e.targetSkillsDir}).resolved}async function Dt(e){let t=a(e.sourceWorkspaceDir),n=a(e.targetWorkspaceDir);t!==n&&await ot(`syncSkills:${n}`,async()=>{let r=S.join(n,`skills`),i=$(t,{config:e.config,managedSkillsDir:e.managedSkillsDir,bundledSkillsDir:e.bundledSkillsDir});await Y.rm(r,{recursive:!0,force:!0}),await Y.mkdir(r,{recursive:!0});let a=new Set;for(let e of i){let t=null;try{t=Et({targetSkillsDir:r,entry:e,usedDirNames:a})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to resolve safe destination for ${e.skill.name}: ${n}`);continue}if(!t){X.warn(`Failed to resolve safe destination for ${e.skill.name}: invalid source directory name`);continue}try{await Y.cp(e.skill.baseDir,t,{recursive:!0,force:!0})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to copy ${e.skill.name} to sandbox: ${n}`)}}})}function Ot(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility).filter(e=>e.invocation?.userInvocable!==!1),r=new Set;for(let e of t?.reservedNames??[])r.add(e.toLowerCase());let i=[];for(let e of n){let t=e.skill.name,n=ut(t);n!==t&&Z(`sanitize:${t}:${n}`,`Sanitized skill command name "${t}" to "/${n}".`,{rawName:t,sanitized:`/${n}`});let a=dt(n,r);a!==n&&Z(`dedupe:${t}:${a}`,`De-duplicated skill command name for "${t}" to "/${a}".`,{rawName:t,deduped:`/${a}`}),r.add(a.toLowerCase());let o=e.skill.description?.trim()||t,s=o.length>100?o.slice(0,99)+`…`:o,c=(()=>{let n=(e.frontmatter?.[`command-dispatch`]??e.frontmatter?.command_dispatch??``).trim().toLowerCase();if(!n||n!==`tool`)return;let r=(e.frontmatter?.[`command-tool`]??e.frontmatter?.command_tool??``).trim();if(!r){Z(`dispatch:missingTool:${t}`,`Skill command "/${a}" requested tool dispatch but did not provide command-tool. Ignoring dispatch.`,{skillName:t,command:a});return}let i=(e.frontmatter?.[`command-arg-mode`]??e.frontmatter?.command_arg_mode??``).trim().toLowerCase();return!i||i===`raw`||Z(`dispatch:badArgMode:${t}:${i}`,`Skill command "/${a}" requested tool dispatch but has unknown command-arg-mode. Falling back to raw.`,{skillName:t,command:a,argMode:i}),{kind:`tool`,toolName:r,argMode:`raw`}})();i.push({name:a,skillName:t,description:s,...c?{dispatch:c}:{}})}return i}function kt(e){let t=e?.skills?.install,n=t?.preferBrew??!0,r=(typeof t?.nodeManager==`string`?t.nodeManager.trim():``).toLowerCase();return{preferBrew:n,nodeManager:r===`pnpm`||r===`yarn`||r===`bun`||r===`npm`?r:`npm`}}export{se as C,fe as D,de as E,D as S,T,je as _,Ct as a,ge as b,rt as c,K as d,q as f,be as g,Be as h,wt as i,Ye as l,Pe as m,Ot as n,Dt as o,Xe as p,bt as r,at as s,kt as t,Je as u,j as v,ce as w,A as x,N as y};
|
|
2
|
+
`),resolvedSkills:a}}function Ct(e){let t=e.skillsSnapshot?.prompt?.trim();if(t)return t;if(e.entries&&e.entries.length>0){let t=xt(e.workspaceDir,{entries:e.entries,config:e.config});return t.trim()?t:``}return``}function wt(e,t){return $(e,t)}function Tt(e,t){if(!t.has(e))return t.add(e),e;for(let n=2;n<1e4;n+=1){let r=`${e}-${n}`;if(!t.has(r))return t.add(r),r}let n=1e4,r=`${e}-${n}`;for(;t.has(r);)n+=1,r=`${e}-${n}`;return t.add(r),r}function Et(e){let t=S.basename(e.entry.skill.baseDir).trim();return!t||t===`.`||t===`..`?null:q({filePath:Tt(t,e.usedDirNames),cwd:e.targetSkillsDir,root:e.targetSkillsDir}).resolved}async function Dt(e){let t=a(e.sourceWorkspaceDir),n=a(e.targetWorkspaceDir);t!==n&&await ot(`syncSkills:${n}`,async()=>{let r=S.join(n,`skills`),i=$(t,{config:e.config,managedSkillsDir:e.managedSkillsDir,bundledSkillsDir:e.bundledSkillsDir});await Y.rm(r,{recursive:!0,force:!0}),await Y.mkdir(r,{recursive:!0});let a=new Set;for(let e of i){let t=null;try{t=Et({targetSkillsDir:r,entry:e,usedDirNames:a})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to resolve safe destination for ${e.skill.name}: ${n}`);continue}if(!t){X.warn(`Failed to resolve safe destination for ${e.skill.name}: invalid source directory name`);continue}try{await Y.cp(e.skill.baseDir,t,{recursive:!0,force:!0})}catch(t){let n=t instanceof Error?t.message:JSON.stringify(t);X.warn(`Failed to copy ${e.skill.name} to sandbox: ${n}`)}}})}function Ot(e,t){let n=lt(t?.entries??$(e,t),t?.config,t?.skillFilter,t?.eligibility).filter(e=>e.invocation?.userInvocable!==!1),r=new Set;for(let e of t?.reservedNames??[])r.add(e.toLowerCase());let i=[];for(let e of n){let t=e.skill.name,n=ut(t);n!==t&&Z(`sanitize:${t}:${n}`,`Sanitized skill command name "${t}" to "/${n}".`,{rawName:t,sanitized:`/${n}`});let a=dt(n,r);a!==n&&Z(`dedupe:${t}:${a}`,`De-duplicated skill command name for "${t}" to "/${a}".`,{rawName:t,deduped:`/${a}`}),r.add(a.toLowerCase());let o=e.skill.description?.trim()||t,s=o.length>100?o.slice(0,99)+`…`:o,c=(()=>{let n=(e.frontmatter?.[`command-dispatch`]??e.frontmatter?.command_dispatch??``).trim().toLowerCase();if(!n||n!==`tool`)return;let r=(e.frontmatter?.[`command-tool`]??e.frontmatter?.command_tool??``).trim();if(!r){Z(`dispatch:missingTool:${t}`,`Skill command "/${a}" requested tool dispatch but did not provide command-tool. Ignoring dispatch.`,{skillName:t,command:a});return}let i=(e.frontmatter?.[`command-arg-mode`]??e.frontmatter?.command_arg_mode??``).trim().toLowerCase();return!i||i===`raw`||Z(`dispatch:badArgMode:${t}:${i}`,`Skill command "/${a}" requested tool dispatch but has unknown command-arg-mode. Falling back to raw.`,{skillName:t,command:a,argMode:i}),{kind:`tool`,toolName:r,argMode:`raw`}})();i.push({name:a,skillName:t,description:s,...c?{dispatch:c}:{}})}return i}function kt(e){let t=e?.skills?.install,n=t?.preferBrew??!0,r=(typeof t?.nodeManager==`string`?t.nodeManager.trim():``).toLowerCase();return{preferBrew:n,nodeManager:r===`pnpm`||r===`yarn`||r===`bun`||r===`npm`?r:`npm`}}export{se as C,fe as D,de as E,D as S,T,je as _,Ct as a,ge as b,rt as c,K as d,q as f,be as g,Be as h,wt as i,Ye as l,Pe as m,Ot as n,Dt as o,Xe as p,bt as r,at as s,kt as t,Je as u,j as v,ce as w,A as x,N as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import"./paths-B4IRk3wi.js";import{A as e,p as t,u as n}from"./subsystem-C5XF2Fy5.js";import{S as r}from"./utils-UGOV_184.js";import{qs as i}from"./model-selection-I1ctjFOB.js";import{d as a,f as o}from"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as s}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import{t as c}from"./links-CySwdMcF.js";import{n as l,t as u}from"./table-CY440fI1.js";function d(e,t){return t?e:`${e}\n\nTip: use \`npx clawhub\` to search, install, and sync skills.`}function f(t){return t.eligible?e.success(`✓ ready`):t.disabled?e.warn(`⏸ disabled`):t.blockedByAllowlist?e.warn(`🚫 blocked`):e.error(`✗ missing`)}function p(e){return(e??`📦`).replaceAll(`︎`,`️`)}const m=new RegExp(String.raw`\u001b(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])`,`g`),h=new RegExp(String.raw`[\u0000-\u001f\u007f-\u009f]`,`g`);function g(e){return n(e).replace(m,``).replace(h,``)}function _(e){return typeof e==`string`?g(e):Array.isArray(e)?e.map(e=>_(e)):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,_(t)])):e}function v(t){return`${p(t.emoji)} ${e.command(t.name)}`}function y(e){let t=[];return e.missing.bins.length>0&&t.push(`bins: ${e.missing.bins.join(`, `)}`),e.missing.anyBins.length>0&&t.push(`anyBins: ${e.missing.anyBins.join(`, `)}`),e.missing.env.length>0&&t.push(`env: ${e.missing.env.join(`, `)}`),e.missing.config.length>0&&t.push(`config: ${e.missing.config.join(`, `)}`),e.missing.os.length>0&&t.push(`os: ${e.missing.os.join(`, `)}`),t.join(`; `)}function b(t,n){let r=n.eligible?t.skills.filter(e=>e.eligible):t.skills;if(n.json){let e=_({workspaceDir:t.workspaceDir,managedSkillsDir:t.managedSkillsDir,skills:r.map(e=>({name:e.name,description:e.description,emoji:e.emoji,eligible:e.eligible,disabled:e.disabled,blockedByAllowlist:e.blockedByAllowlist,source:e.source,bundled:e.bundled,primaryEnv:e.primaryEnv,homepage:e.homepage,missing:e.missing}))});return JSON.stringify(e,null,2)}if(r.length===0)return d(n.eligible?`No eligible skills found. Run \`${s(`openclaw skills list`)}\` to see all skills.`:`No skills found.`,n.json);let i=r.filter(e=>e.eligible),a=u(),o=r.map(t=>{let n=y(t);return{Status:f(t),Skill:v(t),Description:e.muted(t.description),Source:t.source??``,Missing:n?e.warn(n):``}}),c=[{key:`Status`,header:`Status`,minWidth:10},{key:`Skill`,header:`Skill`,minWidth:22},{key:`Description`,header:`Description`,minWidth:24,flex:!0},{key:`Source`,header:`Source`,minWidth:10}];n.verbose&&c.push({key:`Missing`,header:`Missing`,minWidth:18,flex:!0});let p=[];return p.push(`${e.heading(`Skills`)} ${e.muted(`(${i.length}/${r.length} ready)`)}`),p.push(l({width:a,columns:c,rows:o}).trimEnd()),d(p.join(`
|
|
2
2
|
`),n.json)}function x(t,n,i){let a=t.skills.find(e=>e.name===n||e.skillKey===n);if(!a)return i.json?JSON.stringify({error:`not found`,skill:n},null,2):d(`Skill "${n}" not found. Run \`${s(`openclaw skills list`)}\` to see available skills.`,i.json);if(i.json)return JSON.stringify(_(a),null,2);let o=[],c=p(a.emoji),l=a.eligible?e.success(`✓ Ready`):a.disabled?e.warn(`⏸ Disabled`):a.blockedByAllowlist?e.warn(`🚫 Blocked by allowlist`):e.error(`✗ Missing requirements`);if(o.push(`${c} ${e.heading(a.name)} ${l}`),o.push(``),o.push(a.description),o.push(``),o.push(e.heading(`Details:`)),o.push(`${e.muted(` Source:`)} ${a.source}`),o.push(`${e.muted(` Path:`)} ${r(a.filePath)}`),a.homepage&&o.push(`${e.muted(` Homepage:`)} ${a.homepage}`),a.primaryEnv&&o.push(`${e.muted(` Primary env:`)} ${a.primaryEnv}`),a.requirements.bins.length>0||a.requirements.anyBins.length>0||a.requirements.env.length>0||a.requirements.config.length>0||a.requirements.os.length>0){if(o.push(``),o.push(e.heading(`Requirements:`)),a.requirements.bins.length>0){let t=a.requirements.bins.map(t=>a.missing.bins.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Binaries:`)} ${t.join(`, `)}`)}if(a.requirements.anyBins.length>0){let t=a.missing.anyBins.length>0,n=a.requirements.anyBins.map(n=>t?e.error(`✗ ${n}`):e.success(`✓ ${n}`));o.push(`${e.muted(` Any binaries:`)} ${n.join(`, `)}`)}if(a.requirements.env.length>0){let t=a.requirements.env.map(t=>a.missing.env.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Environment:`)} ${t.join(`, `)}`)}if(a.requirements.config.length>0){let t=a.requirements.config.map(t=>a.missing.config.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Config:`)} ${t.join(`, `)}`)}if(a.requirements.os.length>0){let t=a.requirements.os.map(t=>a.missing.os.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` OS:`)} ${t.join(`, `)}`)}}if(a.install.length>0&&!a.eligible){o.push(``),o.push(e.heading(`Install options:`));for(let t of a.install)o.push(` ${e.warn(`→`)} ${t.label}`)}return d(o.join(`
|
|
3
3
|
`),i.json)}function S(t,n){let r=t.skills.filter(e=>e.eligible),i=t.skills.filter(e=>e.disabled),a=t.skills.filter(e=>e.blockedByAllowlist&&!e.disabled),o=t.skills.filter(e=>!e.eligible&&!e.disabled&&!e.blockedByAllowlist);if(n.json)return JSON.stringify(_({summary:{total:t.skills.length,eligible:r.length,disabled:i.length,blocked:a.length,missingRequirements:o.length},eligible:r.map(e=>e.name),disabled:i.map(e=>e.name),blocked:a.map(e=>e.name),missingRequirements:o.map(e=>({name:e.name,missing:e.missing,install:e.install}))}),null,2);let s=[];if(s.push(e.heading(`Skills Status Check`)),s.push(``),s.push(`${e.muted(`Total:`)} ${t.skills.length}`),s.push(`${e.success(`✓`)} ${e.muted(`Eligible:`)} ${r.length}`),s.push(`${e.warn(`⏸`)} ${e.muted(`Disabled:`)} ${i.length}`),s.push(`${e.warn(`🚫`)} ${e.muted(`Blocked by allowlist:`)} ${a.length}`),s.push(`${e.error(`✗`)} ${e.muted(`Missing requirements:`)} ${o.length}`),r.length>0){s.push(``),s.push(e.heading(`Ready to use:`));for(let e of r){let t=p(e.emoji);s.push(` ${t} ${e.name}`)}}if(o.length>0){s.push(``),s.push(e.heading(`Missing requirements:`));for(let t of o){let n=p(t.emoji),r=y(t);s.push(` ${n} ${t.name} ${e.muted(`(${r})`)}`)}}return d(s.join(`
|
|
4
|
-
`),n.json)}async function C(){let e=i(),t=a(e,o(e)),{buildWorkspaceSkillStatus:n}=await import(`./skills-status-BWIugRCz.js`).then(e=>e.n);return n(t,{config:e})}async function w(e){try{let n=await C();t.log(e(n))}catch(e){t.error(String(e)),t.exit(1)}}function T(t){let n=t.command(`skills`).description(`List and inspect available skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/skills`,`docs.openclaw.ai/cli/skills`)}\n`);n.command(`list`).description(`List all available skills`).option(`--json`,`Output as JSON`,!1).option(`--eligible`,`Show only eligible (ready to use) skills`,!1).option(`-v, --verbose`,`Show more details including missing requirements`,!1).action(async e=>{await w(t=>b(t,e))}),n.command(`info`).description(`Show detailed information about a skill`).argument(`<name>`,`Skill name`).option(`--json`,`Output as JSON`,!1).action(async(e,t)=>{await w(n=>x(n,e,t))}),n.command(`check`).description(`Check which skills are ready vs missing requirements`).option(`--json`,`Output as JSON`,!1).action(async e=>{await w(t=>S(t,e))}),n.action(async()=>{await w(e=>b(e,{}))})}export{T as registerSkillsCli};
|
|
4
|
+
`),n.json)}async function C(){let e=i(),t=a(e,o(e)),{buildWorkspaceSkillStatus:n}=await import(`./skills-status-BWIugRCz.js`).then(e=>e.n);return n(t,{config:e})}async function w(e){try{let n=await C();t.log(e(n))}catch(e){t.error(String(e)),t.exit(1)}}function T(t){let n=t.command(`skills`).description(`List and inspect available skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/skills`,`docs.openclaw.ai/cli/skills`)}\n`);n.command(`list`).description(`List all available skills`).option(`--json`,`Output as JSON`,!1).option(`--eligible`,`Show only eligible (ready to use) skills`,!1).option(`-v, --verbose`,`Show more details including missing requirements`,!1).action(async e=>{await w(t=>b(t,e))}),n.command(`info`).description(`Show detailed information about a skill`).argument(`<name>`,`Skill name`).option(`--json`,`Output as JSON`,!1).action(async(e,t)=>{await w(n=>x(n,e,t))}),n.command(`check`).description(`Check which skills are ready vs missing requirements`).option(`--json`,`Output as JSON`,!1).action(async e=>{await w(t=>S(t,e))}),n.action(async()=>{await w(e=>b(e,{}))})}export{T as registerSkillsCli};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import{A as e,p as t,u as n}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{jo as r}from"./auth-profiles-BhXA8Jy2.js";import{t as i}from"./command-format-CLxIPuLR.js";import{d as a,f as o}from"./agent-scope-DAWJwFfl.js";import{x as s}from"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import{t as c}from"./links-CBnmRP9D.js";import{n as l,t as u}from"./table-CR7TFMew.js";function d(e,t){return t?e:`${e}\n\nTip: use \`npx clawhub\` to search, install, and sync skills.`}function f(t){return t.eligible?e.success(`✓ ready`):t.disabled?e.warn(`⏸ disabled`):t.blockedByAllowlist?e.warn(`🚫 blocked`):e.error(`✗ missing`)}function p(e){return(e??`📦`).replaceAll(`︎`,`️`)}const m=new RegExp(String.raw`\u001b(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])`,`g`),h=new RegExp(String.raw`[\u0000-\u001f\u007f-\u009f]`,`g`);function g(e){return n(e).replace(m,``).replace(h,``)}function _(e){return typeof e==`string`?g(e):Array.isArray(e)?e.map(e=>_(e)):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,_(t)])):e}function v(t){return`${p(t.emoji)} ${e.command(t.name)}`}function y(e){let t=[];return e.missing.bins.length>0&&t.push(`bins: ${e.missing.bins.join(`, `)}`),e.missing.anyBins.length>0&&t.push(`anyBins: ${e.missing.anyBins.join(`, `)}`),e.missing.env.length>0&&t.push(`env: ${e.missing.env.join(`, `)}`),e.missing.config.length>0&&t.push(`config: ${e.missing.config.join(`, `)}`),e.missing.os.length>0&&t.push(`os: ${e.missing.os.join(`, `)}`),t.join(`; `)}function b(t,n){let r=n.eligible?t.skills.filter(e=>e.eligible):t.skills;if(n.json){let e=_({workspaceDir:t.workspaceDir,managedSkillsDir:t.managedSkillsDir,skills:r.map(e=>({name:e.name,description:e.description,emoji:e.emoji,eligible:e.eligible,disabled:e.disabled,blockedByAllowlist:e.blockedByAllowlist,source:e.source,bundled:e.bundled,primaryEnv:e.primaryEnv,homepage:e.homepage,missing:e.missing}))});return JSON.stringify(e,null,2)}if(r.length===0)return d(n.eligible?`No eligible skills found. Run \`${i(`openclaw skills list`)}\` to see all skills.`:`No skills found.`,n.json);let a=r.filter(e=>e.eligible),o=u(),s=r.map(t=>{let n=y(t);return{Status:f(t),Skill:v(t),Description:e.muted(t.description),Source:t.source??``,Missing:n?e.warn(n):``}}),c=[{key:`Status`,header:`Status`,minWidth:10},{key:`Skill`,header:`Skill`,minWidth:22},{key:`Description`,header:`Description`,minWidth:24,flex:!0},{key:`Source`,header:`Source`,minWidth:10}];n.verbose&&c.push({key:`Missing`,header:`Missing`,minWidth:18,flex:!0});let p=[];return p.push(`${e.heading(`Skills`)} ${e.muted(`(${a.length}/${r.length} ready)`)}`),p.push(l({width:o,columns:c,rows:s}).trimEnd()),d(p.join(`
|
|
2
2
|
`),n.json)}function x(t,n,r){let a=t.skills.find(e=>e.name===n||e.skillKey===n);if(!a)return r.json?JSON.stringify({error:`not found`,skill:n},null,2):d(`Skill "${n}" not found. Run \`${i(`openclaw skills list`)}\` to see available skills.`,r.json);if(r.json)return JSON.stringify(_(a),null,2);let o=[],c=p(a.emoji),l=a.eligible?e.success(`✓ Ready`):a.disabled?e.warn(`⏸ Disabled`):a.blockedByAllowlist?e.warn(`🚫 Blocked by allowlist`):e.error(`✗ Missing requirements`);if(o.push(`${c} ${e.heading(a.name)} ${l}`),o.push(``),o.push(a.description),o.push(``),o.push(e.heading(`Details:`)),o.push(`${e.muted(` Source:`)} ${a.source}`),o.push(`${e.muted(` Path:`)} ${s(a.filePath)}`),a.homepage&&o.push(`${e.muted(` Homepage:`)} ${a.homepage}`),a.primaryEnv&&o.push(`${e.muted(` Primary env:`)} ${a.primaryEnv}`),a.requirements.bins.length>0||a.requirements.anyBins.length>0||a.requirements.env.length>0||a.requirements.config.length>0||a.requirements.os.length>0){if(o.push(``),o.push(e.heading(`Requirements:`)),a.requirements.bins.length>0){let t=a.requirements.bins.map(t=>a.missing.bins.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Binaries:`)} ${t.join(`, `)}`)}if(a.requirements.anyBins.length>0){let t=a.missing.anyBins.length>0,n=a.requirements.anyBins.map(n=>t?e.error(`✗ ${n}`):e.success(`✓ ${n}`));o.push(`${e.muted(` Any binaries:`)} ${n.join(`, `)}`)}if(a.requirements.env.length>0){let t=a.requirements.env.map(t=>a.missing.env.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Environment:`)} ${t.join(`, `)}`)}if(a.requirements.config.length>0){let t=a.requirements.config.map(t=>a.missing.config.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` Config:`)} ${t.join(`, `)}`)}if(a.requirements.os.length>0){let t=a.requirements.os.map(t=>a.missing.os.includes(t)?e.error(`✗ ${t}`):e.success(`✓ ${t}`));o.push(`${e.muted(` OS:`)} ${t.join(`, `)}`)}}if(a.install.length>0&&!a.eligible){o.push(``),o.push(e.heading(`Install options:`));for(let t of a.install)o.push(` ${e.warn(`→`)} ${t.label}`)}return d(o.join(`
|
|
3
3
|
`),r.json)}function S(t,n){let r=t.skills.filter(e=>e.eligible),i=t.skills.filter(e=>e.disabled),a=t.skills.filter(e=>e.blockedByAllowlist&&!e.disabled),o=t.skills.filter(e=>!e.eligible&&!e.disabled&&!e.blockedByAllowlist);if(n.json)return JSON.stringify(_({summary:{total:t.skills.length,eligible:r.length,disabled:i.length,blocked:a.length,missingRequirements:o.length},eligible:r.map(e=>e.name),disabled:i.map(e=>e.name),blocked:a.map(e=>e.name),missingRequirements:o.map(e=>({name:e.name,missing:e.missing,install:e.install}))}),null,2);let s=[];if(s.push(e.heading(`Skills Status Check`)),s.push(``),s.push(`${e.muted(`Total:`)} ${t.skills.length}`),s.push(`${e.success(`✓`)} ${e.muted(`Eligible:`)} ${r.length}`),s.push(`${e.warn(`⏸`)} ${e.muted(`Disabled:`)} ${i.length}`),s.push(`${e.warn(`🚫`)} ${e.muted(`Blocked by allowlist:`)} ${a.length}`),s.push(`${e.error(`✗`)} ${e.muted(`Missing requirements:`)} ${o.length}`),r.length>0){s.push(``),s.push(e.heading(`Ready to use:`));for(let e of r){let t=p(e.emoji);s.push(` ${t} ${e.name}`)}}if(o.length>0){s.push(``),s.push(e.heading(`Missing requirements:`));for(let t of o){let n=p(t.emoji),r=y(t);s.push(` ${n} ${t.name} ${e.muted(`(${r})`)}`)}}return d(s.join(`
|
|
4
|
-
`),n.json)}async function C(){let e=r(),t=a(e,o(e)),{buildWorkspaceSkillStatus:n}=await import(`./skills-status-DswSl5aD.js`).then(e=>e.n);return n(t,{config:e})}async function w(e){try{let n=await C();t.log(e(n))}catch(e){t.error(String(e)),t.exit(1)}}function T(t){let n=t.command(`skills`).description(`List and inspect available skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/skills`,`docs.openclaw.ai/cli/skills`)}\n`);n.command(`list`).description(`List all available skills`).option(`--json`,`Output as JSON`,!1).option(`--eligible`,`Show only eligible (ready to use) skills`,!1).option(`-v, --verbose`,`Show more details including missing requirements`,!1).action(async e=>{await w(t=>b(t,e))}),n.command(`info`).description(`Show detailed information about a skill`).argument(`<name>`,`Skill name`).option(`--json`,`Output as JSON`,!1).action(async(e,t)=>{await w(n=>x(n,e,t))}),n.command(`check`).description(`Check which skills are ready vs missing requirements`).option(`--json`,`Output as JSON`,!1).action(async e=>{await w(t=>S(t,e))}),n.action(async()=>{await w(e=>b(e,{}))})}export{T as registerSkillsCli};
|
|
4
|
+
`),n.json)}async function C(){let e=r(),t=a(e,o(e)),{buildWorkspaceSkillStatus:n}=await import(`./skills-status-DswSl5aD.js`).then(e=>e.n);return n(t,{config:e})}async function w(e){try{let n=await C();t.log(e(n))}catch(e){t.error(String(e)),t.exit(1)}}function T(t){let n=t.command(`skills`).description(`List and inspect available skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/skills`,`docs.openclaw.ai/cli/skills`)}\n`);n.command(`list`).description(`List all available skills`).option(`--json`,`Output as JSON`,!1).option(`--eligible`,`Show only eligible (ready to use) skills`,!1).option(`-v, --verbose`,`Show more details including missing requirements`,!1).action(async e=>{await w(t=>b(t,e))}),n.command(`info`).description(`Show detailed information about a skill`).argument(`<name>`,`Skill name`).option(`--json`,`Output as JSON`,!1).action(async(e,t)=>{await w(n=>x(n,e,t))}),n.command(`check`).description(`Check which skills are ready vs missing requirements`).option(`--json`,`Output as JSON`,!1).action(async e=>{await w(t=>S(t,e))}),n.action(async()=>{await w(e=>b(e,{}))})}export{T as registerSkillsCli};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import{h as e,s as t,v as n}from"./utils-CGdo13HV.js";import{p as r}from"./env-overrides-DHtB4kK3.js";import{i,t as a}from"./skills-CKTicUKS.js";import{f as o}from"./frontmatter-C7mzDNxd.js";import{t as s}from"./exec-B3eleY5O.js";import{S as c}from"./windows-spawn-7oINn5ao.js";import{t as l}from"./fetch-guard-BaRbr_V6.js";import{t as u}from"./brew-DDPm_HfE.js";import{t as d}from"./path-safety-BukYK8Kd.js";import{f,h as p,i as m,m as h,o as g,p as _,s as v,t as y}from"./install-safe-path-C6kc_8NW.js";import{t as b}from"./skill-scanner-CkxXNioD.js";import x from"node:path";import S from"node:fs";import{createHash as C,randomUUID as w}from"node:crypto";import{pipeline as T}from"node:stream/promises";import{Readable as ee}from"node:stream";const te=new Set([`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]),ne=/^\d{4}-\d{2}-\d{2}$/;function re(e){switch(e){case`l`:return`SymbolicLink`;case`h`:return`Link`;case`b`:return`BlockDevice`;case`c`:return`CharacterDevice`;case`p`:return`FIFO`;case`s`:return`Socket`;case`d`:return`Directory`;default:return`File`}}function E(e){let t=e.trim().split(/\s+/).filter(Boolean);if(t.length<6)throw Error(`unable to parse tar verbose metadata: ${e}`);let n=t.findIndex(e=>te.has(e));if(n>0){let r=Number.parseInt(t[n-1]??``,10);if(!Number.isFinite(r)||r<0)throw Error(`unable to parse tar entry size: ${e}`);return r}if(n=t.findIndex(e=>ne.test(e)),n>0){let r=Number.parseInt(t[n-1]??``,10);if(!Number.isFinite(r)||r<0)throw Error(`unable to parse tar entry size: ${e}`);return r}throw Error(`unable to parse tar verbose metadata: ${e}`)}function D(e){return e.split(`
|
|
2
2
|
`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e[0]??``;if(!t)throw Error(`unable to parse tar entry type`);return{type:re(t),size:E(e)}})}async function O(e){let t=C(`sha256`),n=S.createReadStream(e);return await new Promise((e,r)=>{n.on(`data`,e=>{t.update(e)}),n.on(`error`,r),n.on(`end`,()=>{e(t.digest(`hex`))})})}function k(e,t){return{stdout:e.stdout,stderr:e.stderr||t,code:e.code}}function A(e){let t=[`tar`,`xf`,e.archivePath,`-C`,e.targetDir];return e.stripComponents>0&&t.push(`--strip-components`,String(e.stripComponents)),t}async function j(e){let t=await s([`tar`,`tf`,e.archivePath],{timeoutMs:e.timeoutMs});if(t.code!==0)return k(t,`tar list failed`);let n=t.stdout.split(`
|
|
3
3
|
`).map(e=>e.trim()).filter(Boolean),r=await s([`tar`,`tvf`,e.archivePath],{timeoutMs:e.timeoutMs});if(r.code!==0)return k(r,`tar verbose list failed`);let i=D(r.stdout);return i.length===n.length?{entries:n,metadata:i}:{stdout:r.stdout,stderr:`tar verbose/list entry count mismatch (${i.length} vs ${n.length})`,code:1}}function M(e){return`code`in e}async function N(e){return await O(e.archivePath)===e.expectedHash?null:{stdout:``,stderr:`tar archive changed during safety preflight; refusing to extract`,code:1}}async function P(e){return await h({destinationRealDir:e.destinationRealDir,run:async t=>{let n=await s(A({archivePath:e.archivePath,targetDir:t,stripComponents:e.stripComponents}),{timeoutMs:e.timeoutMs});return n.code===0&&await f({sourceDir:t,destinationDir:e.destinationRealDir,destinationRealDir:e.destinationRealDir}),n}})}async function F(e){let{archivePath:t,archiveType:n,targetDir:r,stripComponents:i,timeoutMs:a}=e,s=typeof i==`number`&&Number.isFinite(i)?Math.max(0,Math.floor(i)):0;try{if(n===`zip`)return await v({archivePath:t,destDir:r,timeoutMs:a,kind:`zip`,stripComponents:s}),{stdout:``,stderr:``,code:0};if(n===`tar.gz`)return await v({archivePath:t,destDir:r,timeoutMs:a,kind:`tar`,stripComponents:s,tarGzip:!0}),{stdout:``,stderr:``,code:0};if(n===`tar.bz2`){if(!o(`tar`))return{stdout:``,stderr:`tar not found on PATH`,code:null};let e=await _(r),n=await O(t),i=await j({archivePath:t,timeoutMs:a});if(M(i))return i;let c=g({rootDir:e,stripComponents:s,escapeLabel:`targetDir`});for(let e=0;e<i.entries.length;e+=1){let t=i.entries[e],n=i.metadata[e];if(!t||!n)return{stdout:``,stderr:`tar metadata parse failure`,code:1};c({path:t,type:n.type,size:n.size})}return await N({archivePath:t,expectedHash:n})||await P({archivePath:t,destinationRealDir:e,stripComponents:s,timeoutMs:a})}return{stdout:``,stderr:`unsupported archive type: ${n}`,code:null}}catch(e){return{stdout:``,stderr:e instanceof Error?e.message:String(e),code:1}}}function I(e){let t=e.trim();if(!t)return;let n=t.split(`
|
|
4
|
-
`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return;let r=n.find(e=>/^error\b/i.test(e))??n.find(e=>/\b(err!|error:|failed)\b/i.test(e))??n.at(-1);if(!r)return;let i=r.replace(/\s+/g,` `).trim();return i.length>200?`${i.slice(0,199)}…`:i}function L(e){let t=typeof e.code==`number`?`exit ${e.code}`:`unknown exit`,n=I(e.stderr)??I(e.stdout);return n?`Install failed (${t}): ${n}`:`Install failed (${t})`}function R(t){let n=m(r(t.skill,t));return x.join(e(),`tools`,n)}function z(e){return!!(e&&typeof e.pipe==`function`)}function B(e,t){let r=R(e),i=t.targetDir?.trim();if(!i)return r;let a=i.startsWith(`~`)||x.isAbsolute(i)||p(i)?n(i):x.resolve(r,i);if(!d(r,a))throw Error(`Refusing to install outside the skill tools directory. targetDir="${i}" resolves to "${a}". Allowed root: "${r}".`);return a}function V(e,t){let n=e.archive?.trim().toLowerCase();if(n)return n;let r=t.toLowerCase();if(r.endsWith(`.tar.gz`)||r.endsWith(`.tgz`))return`tar.gz`;if(r.endsWith(`.tar.bz2`)||r.endsWith(`.tbz2`))return`tar.bz2`;if(r.endsWith(`.zip`))return`zip`}async function ie(e){let n=x.resolve(e.rootDir,e.relativePath),r=x.join(e.rootDir,`.openclaw-download-staging`);await t(r),await y({baseDir:e.rootDir,candidatePath:r,boundaryLabel:`skill tools directory`});let i=x.join(r,`${w()}.tmp`),{response:a,release:o}=await l({url:e.url,timeoutMs:Math.max(1e3,e.timeoutMs)});try{if(!a.ok||!a.body)throw Error(`Download failed (${a.status} ${a.statusText})`);let t=S.createWriteStream(i),r=a.body;return await T(z(r)?r:ee.fromWeb(r),t),await c({rootDir:e.rootDir,relativePath:e.relativePath,sourcePath:i}),{bytes:(await S.promises.stat(n)).size}}finally{await S.promises.rm(i,{force:!0}).catch(()=>void 0),await o()}}async function H(e){let{entry:n,spec:r,timeoutMs:i}=e,a=R(n),o=r.url?.trim();if(!o)return{ok:!1,message:`missing download url`,stdout:``,stderr:``,code:null};let s=``;try{let e=new URL(o);s=x.basename(e.pathname)}catch{s=x.basename(o)}s||=`download`;let c=``,l=``;try{await t(a),await y({baseDir:a,candidatePath:a,boundaryLabel:`skill tools directory`}),c=await S.promises.realpath(a);let e=B(n,r);await t(e),await y({baseDir:a,candidatePath:e,boundaryLabel:`skill tools directory`});let i=x.relative(a,e);l=x.join(c,i)}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let u=x.join(l,s),d=x.relative(c,u);if(!d||d===`..`||d.startsWith(`..${x.sep}`)||x.isAbsolute(d))return{ok:!1,message:`invalid download archive path`,stdout:``,stderr:`invalid download archive path`,code:null};let f=0;try{f=(await ie({url:o,rootDir:c,relativePath:d,timeoutMs:i})).bytes}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let p=V(r,s);if(!(r.extract??!!p))return{ok:!0,message:`Downloaded to ${u}`,stdout:`downloaded=${f}`,stderr:``,code:0};if(!p)return{ok:!1,message:`extract requested but archive type could not be detected`,stdout:``,stderr:``,code:null};try{await y({baseDir:c,candidatePath:l,boundaryLabel:`skill tools directory`})}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let m=await F({archivePath:u,archiveType:p,targetDir:l,stripComponents:r.stripComponents,timeoutMs:i}),h=m.code===0;return{ok:h,message:h?`Downloaded and extracted to ${l}`:L(m),stdout:m.stdout.trim(),stderr:m.stderr.trim(),code:m.code}}function U(e,t){return t.length===0?e:{...e,warnings:t.slice()}}function W(e,t){let n=x.relative(e,t.file),r=n&&n!==`.`&&!n.startsWith(`..`)?n:x.basename(t.file);return`${t.message} (${r}:${t.line})`}async function G(e){let t=[],n=e.skill.name,r=x.resolve(e.skill.baseDir);try{let e=await b(r);if(e.critical>0){let i=e.findings.filter(e=>e.severity===`critical`).map(e=>W(r,e)).join(`; `);t.push(`WARNING: Skill "${n}" contains dangerous code patterns: ${i}`)}else e.warn>0&&t.push(`Skill "${n}" has ${e.warn} suspicious code pattern(s). Run "openclaw security audit --deep" for details.`)}catch(e){t.push(`Skill "${n}" code safety scan failed (${String(e)}). Installation continues; run "openclaw security audit --deep" after install.`)}return t}function K(e,t){return(e.id??`${e.kind}-${t}`).trim()}function q(e,t){let n=e.metadata?.install??[];for(let[e,r]of n.entries())if(K(r,e)===t)return r}function J(e,t){switch(t.nodeManager){case`pnpm`:return[`pnpm`,`add`,`-g`,`--ignore-scripts`,e];case`yarn`:return[`yarn`,`global`,`add`,`--ignore-scripts`,e];case`bun`:return[`bun`,`add`,`-g`,`--ignore-scripts`,e];default:return[`npm`,`install`,`-g`,`--ignore-scripts`,e]}}function Y(e,t){switch(e.kind){case`brew`:return e.formula?{argv:[`brew`,`install`,e.formula]}:{argv:null,error:`missing brew formula`};case`node`:return e.package?{argv:J(e.package,t)}:{argv:null,error:`missing node package`};case`go`:return e.module?{argv:[`go`,`install`,e.module]}:{argv:null,error:`missing go module`};case`uv`:return e.package?{argv:[`uv`,`tool`,`install`,e.package]}:{argv:null,error:`missing uv package`};case`download`:return{argv:null,error:`download install handled separately`};default:return{argv:null,error:`unsupported installer`}}}async function ae(e,t){let n=t??(o(`brew`)?`brew`:u());if(!n)return;let r=await s([n,`--prefix`],{timeoutMs:Math.min(e,3e4)});if(r.code===0){let e=r.stdout.trim();if(e)return x.join(e,`bin`)}let i=process.env.HOMEBREW_PREFIX?.trim();if(i)return x.join(i,`bin`);for(let e of[`/opt/homebrew/bin`,`/usr/local/bin`])try{if(S.existsSync(e))return e}catch{}}function X(e){return{ok:!1,message:e.message,stdout:e.stdout?.trim()??``,stderr:e.stderr?.trim()??``,code:e.code??null}}function oe(e){return{ok:!0,message:`Installed`,stdout:e.stdout.trim(),stderr:e.stderr.trim(),code:e.code}}async function Z(e,t){try{let n=await s(e,t);return{code:n.code,stdout:n.stdout,stderr:n.stderr}}catch(e){return{code:null,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Q(e,t){await Z(e,t)}function se(e){let t=e.formula??`this package`;return X({message:`brew not installed — ${process.platform===`linux`?`Homebrew is not installed. Install it from https://brew.sh or install "${t}" manually using your system package manager (e.g. apt, dnf, pacman).`:`Homebrew is not installed. Install it from https://brew.sh`}`})}async function ce(e){if(e.spec.kind!==`uv`||o(`uv`))return;if(!e.brewExe)return X({message:`uv not installed — install manually: https://docs.astral.sh/uv/getting-started/installation/`});let t=await Z([e.brewExe,`install`,`uv`],{timeoutMs:e.timeoutMs});if(t.code!==0)return X({message:`Failed to install uv (brew)`,...t})}async function le(e){let t=[`apt-get`,`install`,`-y`,`golang-go`],n=[`apt-get`,`update`,`-qq`],r=`go not installed — automatic install via apt failed. Install manually: https://go.dev/doc/install`;if(typeof process.getuid==`function`&&process.getuid()===0){await Q(n,{timeoutMs:e});let i=await Z(t,{timeoutMs:e});return i.code===0?void 0:X({message:r,...i})}if(!o(`sudo`))return X({message:`go not installed — apt-get is available but sudo is not installed. Install manually: https://go.dev/doc/install`});let i=await Z([`sudo`,`-n`,`true`],{timeoutMs:5e3});if(i.code!==0)return X({message:`go not installed — apt-get is available but sudo is not usable (missing or requires a password). Install manually: https://go.dev/doc/install`,...i});await Q([`sudo`,...n],{timeoutMs:e});let a=await Z([`sudo`,...t],{timeoutMs:e});if(a.code!==0)return X({message:r,...a})}async function $(e){if(!(e.spec.kind!==`go`||o(`go`))){if(e.brewExe){let t=await Z([e.brewExe,`install`,`go`],{timeoutMs:e.timeoutMs});return t.code===0?void 0:X({message:`Failed to install go (brew)`,...t})}return o(`apt-get`)?le(e.timeoutMs):X({message:`go not installed — install manually: https://go.dev/doc/install`})}}async function ue(e){if(!e.argv||e.argv.length===0)return X({message:`invalid install command`});let t=await Z(e.argv,{timeoutMs:e.timeoutMs,env:e.env});return t.code===0?oe(t):X({message:L(t),...t})}async function de(e){let t=Math.min(Math.max(e.timeoutMs??3e5,1e3),9e5),r=i(n(e.workspaceDir)).find(t=>t.skill.name===e.skillName);if(!r)return{ok:!1,message:`Skill not found: ${e.skillName}`,stdout:``,stderr:``,code:null};let s=q(r,e.installId),c=await G(r);if(!s)return U({ok:!1,message:`Installer not found: ${e.installId}`,stdout:``,stderr:``,code:null},c);if(s.kind===`download`)return U(await H({entry:r,spec:s,timeoutMs:t}),c);let l=Y(s,a(e.config));if(l.error)return U({ok:!1,message:l.error,stdout:``,stderr:``,code:null},c);let d=o(`brew`)?`brew`:u();if(s.kind===`brew`&&!d)return U(se(s),c);let f=await ce({spec:s,brewExe:d,timeoutMs:t});if(f)return U(f,c);let p=await $({spec:s,brewExe:d,timeoutMs:t});if(p)return U(p,c);let m=l.argv?[...l.argv]:null;s.kind===`brew`&&d&&m?.[0]===`brew`&&(m[0]=d);let h;if(s.kind===`go`&&d){let e=await ae(t,d);e&&(h={GOBIN:e})}return U(await ue({argv:m,timeoutMs:t,env:h}),c)}export{de as t};
|
|
4
|
+
`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return;let r=n.find(e=>/^error\b/i.test(e))??n.find(e=>/\b(err!|error:|failed)\b/i.test(e))??n.at(-1);if(!r)return;let i=r.replace(/\s+/g,` `).trim();return i.length>200?`${i.slice(0,199)}…`:i}function L(e){let t=typeof e.code==`number`?`exit ${e.code}`:`unknown exit`,n=I(e.stderr)??I(e.stdout);return n?`Install failed (${t}): ${n}`:`Install failed (${t})`}function R(t){let n=m(r(t.skill,t));return x.join(e(),`tools`,n)}function z(e){return!!(e&&typeof e.pipe==`function`)}function B(e,t){let r=R(e),i=t.targetDir?.trim();if(!i)return r;let a=i.startsWith(`~`)||x.isAbsolute(i)||p(i)?n(i):x.resolve(r,i);if(!d(r,a))throw Error(`Refusing to install outside the skill tools directory. targetDir="${i}" resolves to "${a}". Allowed root: "${r}".`);return a}function V(e,t){let n=e.archive?.trim().toLowerCase();if(n)return n;let r=t.toLowerCase();if(r.endsWith(`.tar.gz`)||r.endsWith(`.tgz`))return`tar.gz`;if(r.endsWith(`.tar.bz2`)||r.endsWith(`.tbz2`))return`tar.bz2`;if(r.endsWith(`.zip`))return`zip`}async function ie(e){let n=x.resolve(e.rootDir,e.relativePath),r=x.join(e.rootDir,`.openclaw-download-staging`);await t(r),await y({baseDir:e.rootDir,candidatePath:r,boundaryLabel:`skill tools directory`});let i=x.join(r,`${w()}.tmp`),{response:a,release:o}=await l({url:e.url,timeoutMs:Math.max(1e3,e.timeoutMs)});try{if(!a.ok||!a.body)throw Error(`Download failed (${a.status} ${a.statusText})`);let t=S.createWriteStream(i),r=a.body;return await T(z(r)?r:ee.fromWeb(r),t),await c({rootDir:e.rootDir,relativePath:e.relativePath,sourcePath:i}),{bytes:(await S.promises.stat(n)).size}}finally{await S.promises.rm(i,{force:!0}).catch(()=>void 0),await o()}}async function H(e){let{entry:n,spec:r,timeoutMs:i}=e,a=R(n),o=r.url?.trim();if(!o)return{ok:!1,message:`missing download url`,stdout:``,stderr:``,code:null};let s=``;try{let e=new URL(o);s=x.basename(e.pathname)}catch{s=x.basename(o)}s||=`download`;let c=``,l=``;try{await t(a),await y({baseDir:a,candidatePath:a,boundaryLabel:`skill tools directory`}),c=await S.promises.realpath(a);let e=B(n,r);await t(e),await y({baseDir:a,candidatePath:e,boundaryLabel:`skill tools directory`});let i=x.relative(a,e);l=x.join(c,i)}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let u=x.join(l,s),d=x.relative(c,u);if(!d||d===`..`||d.startsWith(`..${x.sep}`)||x.isAbsolute(d))return{ok:!1,message:`invalid download archive path`,stdout:``,stderr:`invalid download archive path`,code:null};let f=0;try{f=(await ie({url:o,rootDir:c,relativePath:d,timeoutMs:i})).bytes}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let p=V(r,s);if(!(r.extract??!!p))return{ok:!0,message:`Downloaded to ${u}`,stdout:`downloaded=${f}`,stderr:``,code:0};if(!p)return{ok:!1,message:`extract requested but archive type could not be detected`,stdout:``,stderr:``,code:null};try{await y({baseDir:c,candidatePath:l,boundaryLabel:`skill tools directory`})}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let m=await F({archivePath:u,archiveType:p,targetDir:l,stripComponents:r.stripComponents,timeoutMs:i}),h=m.code===0;return{ok:h,message:h?`Downloaded and extracted to ${l}`:L(m),stdout:m.stdout.trim(),stderr:m.stderr.trim(),code:m.code}}function U(e,t){return t.length===0?e:{...e,warnings:t.slice()}}function W(e,t){let n=x.relative(e,t.file),r=n&&n!==`.`&&!n.startsWith(`..`)?n:x.basename(t.file);return`${t.message} (${r}:${t.line})`}async function G(e){let t=[],n=e.skill.name,r=x.resolve(e.skill.baseDir);try{let e=await b(r);if(e.critical>0){let i=e.findings.filter(e=>e.severity===`critical`).map(e=>W(r,e)).join(`; `);t.push(`WARNING: Skill "${n}" contains dangerous code patterns: ${i}`)}else e.warn>0&&t.push(`Skill "${n}" has ${e.warn} suspicious code pattern(s). Run "openclaw security audit --deep" for details.`)}catch(e){t.push(`Skill "${n}" code safety scan failed (${String(e)}). Installation continues; run "openclaw security audit --deep" after install.`)}return t}function K(e,t){return(e.id??`${e.kind}-${t}`).trim()}function q(e,t){let n=e.metadata?.install??[];for(let[e,r]of n.entries())if(K(r,e)===t)return r}function J(e,t){switch(t.nodeManager){case`pnpm`:return[`pnpm`,`add`,`-g`,`--ignore-scripts`,e];case`yarn`:return[`yarn`,`global`,`add`,`--ignore-scripts`,e];case`bun`:return[`bun`,`add`,`-g`,`--ignore-scripts`,e];default:return[`npm`,`install`,`-g`,`--ignore-scripts`,e]}}function Y(e,t){switch(e.kind){case`brew`:return e.formula?{argv:[`brew`,`install`,e.formula]}:{argv:null,error:`missing brew formula`};case`node`:return e.package?{argv:J(e.package,t)}:{argv:null,error:`missing node package`};case`go`:return e.module?{argv:[`go`,`install`,e.module]}:{argv:null,error:`missing go module`};case`uv`:return e.package?{argv:[`uv`,`tool`,`install`,e.package]}:{argv:null,error:`missing uv package`};case`download`:return{argv:null,error:`download install handled separately`};default:return{argv:null,error:`unsupported installer`}}}async function ae(e,t){let n=t??(o(`brew`)?`brew`:u());if(!n)return;let r=await s([n,`--prefix`],{timeoutMs:Math.min(e,3e4)});if(r.code===0){let e=r.stdout.trim();if(e)return x.join(e,`bin`)}let i=process.env.HOMEBREW_PREFIX?.trim();if(i)return x.join(i,`bin`);for(let e of[`/opt/homebrew/bin`,`/usr/local/bin`])try{if(S.existsSync(e))return e}catch{}}function X(e){return{ok:!1,message:e.message,stdout:e.stdout?.trim()??``,stderr:e.stderr?.trim()??``,code:e.code??null}}function oe(e){return{ok:!0,message:`Installed`,stdout:e.stdout.trim(),stderr:e.stderr.trim(),code:e.code}}async function Z(e,t){try{let n=await s(e,t);return{code:n.code,stdout:n.stdout,stderr:n.stderr}}catch(e){return{code:null,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Q(e,t){await Z(e,t)}function se(e){let t=e.formula??`this package`;return X({message:`brew not installed — ${process.platform===`linux`?`Homebrew is not installed. Install it from https://brew.sh or install "${t}" manually using your system package manager (e.g. apt, dnf, pacman).`:`Homebrew is not installed. Install it from https://brew.sh`}`})}async function ce(e){if(e.spec.kind!==`uv`||o(`uv`))return;if(!e.brewExe)return X({message:`uv not installed — install manually: https://docs.astral.sh/uv/getting-started/installation/`});let t=await Z([e.brewExe,`install`,`uv`],{timeoutMs:e.timeoutMs});if(t.code!==0)return X({message:`Failed to install uv (brew)`,...t})}async function le(e){let t=[`apt-get`,`install`,`-y`,`golang-go`],n=[`apt-get`,`update`,`-qq`],r=`go not installed — automatic install via apt failed. Install manually: https://go.dev/doc/install`;if(typeof process.getuid==`function`&&process.getuid()===0){await Q(n,{timeoutMs:e});let i=await Z(t,{timeoutMs:e});return i.code===0?void 0:X({message:r,...i})}if(!o(`sudo`))return X({message:`go not installed — apt-get is available but sudo is not installed. Install manually: https://go.dev/doc/install`});let i=await Z([`sudo`,`-n`,`true`],{timeoutMs:5e3});if(i.code!==0)return X({message:`go not installed — apt-get is available but sudo is not usable (missing or requires a password). Install manually: https://go.dev/doc/install`,...i});await Q([`sudo`,...n],{timeoutMs:e});let a=await Z([`sudo`,...t],{timeoutMs:e});if(a.code!==0)return X({message:r,...a})}async function $(e){if(!(e.spec.kind!==`go`||o(`go`))){if(e.brewExe){let t=await Z([e.brewExe,`install`,`go`],{timeoutMs:e.timeoutMs});return t.code===0?void 0:X({message:`Failed to install go (brew)`,...t})}return o(`apt-get`)?le(e.timeoutMs):X({message:`go not installed — install manually: https://go.dev/doc/install`})}}async function ue(e){if(!e.argv||e.argv.length===0)return X({message:`invalid install command`});let t=await Z(e.argv,{timeoutMs:e.timeoutMs,env:e.env});return t.code===0?oe(t):X({message:L(t),...t})}async function de(e){let t=Math.min(Math.max(e.timeoutMs??3e5,1e3),9e5),r=i(n(e.workspaceDir)).find(t=>t.skill.name===e.skillName);if(!r)return{ok:!1,message:`Skill not found: ${e.skillName}`,stdout:``,stderr:``,code:null};let s=q(r,e.installId),c=await G(r);if(!s)return U({ok:!1,message:`Installer not found: ${e.installId}`,stdout:``,stderr:``,code:null},c);if(s.kind===`download`)return U(await H({entry:r,spec:s,timeoutMs:t}),c);let l=Y(s,a(e.config));if(l.error)return U({ok:!1,message:l.error,stdout:``,stderr:``,code:null},c);let d=o(`brew`)?`brew`:u();if(s.kind===`brew`&&!d)return U(se(s),c);let f=await ce({spec:s,brewExe:d,timeoutMs:t});if(f)return U(f,c);let p=await $({spec:s,brewExe:d,timeoutMs:t});if(p)return U(p,c);let m=l.argv?[...l.argv]:null;s.kind===`brew`&&d&&m?.[0]===`brew`&&(m[0]=d);let h;if(s.kind===`go`&&d){let e=await ae(t,d);e&&(h={GOBIN:e})}return U(await ue({argv:m,timeoutMs:t,env:h}),c)}export{de as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import{c as e,g as t,y as n}from"./utils-UGOV_184.js";import{p as r}from"./env-overrides-DXJbFrwI.js";import{i,t as a}from"./skills-DHbOKEGc.js";import{f as o}from"./frontmatter-BkZkwkVO.js";import{t as s}from"./exec-DHqLtFYt.js";import{S as c}from"./windows-spawn-AB7ItGAE.js";import{t as l}from"./fetch-guard-Cji70DJW.js";import{t as u}from"./brew-COcDl8CB.js";import{t as d}from"./path-safety-DaaMJFdt.js";import{f,h as p,i as m,m as h,o as g,p as _,s as v,t as y}from"./install-safe-path-iesxijn2.js";import{t as b}from"./skill-scanner-CUUF3Fvo.js";import x from"node:fs";import S from"node:path";import{createHash as C,randomUUID as w}from"node:crypto";import{pipeline as T}from"node:stream/promises";import{Readable as ee}from"node:stream";const te=new Set([`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]),ne=/^\d{4}-\d{2}-\d{2}$/;function re(e){switch(e){case`l`:return`SymbolicLink`;case`h`:return`Link`;case`b`:return`BlockDevice`;case`c`:return`CharacterDevice`;case`p`:return`FIFO`;case`s`:return`Socket`;case`d`:return`Directory`;default:return`File`}}function E(e){let t=e.trim().split(/\s+/).filter(Boolean);if(t.length<6)throw Error(`unable to parse tar verbose metadata: ${e}`);let n=t.findIndex(e=>te.has(e));if(n>0){let r=Number.parseInt(t[n-1]??``,10);if(!Number.isFinite(r)||r<0)throw Error(`unable to parse tar entry size: ${e}`);return r}if(n=t.findIndex(e=>ne.test(e)),n>0){let r=Number.parseInt(t[n-1]??``,10);if(!Number.isFinite(r)||r<0)throw Error(`unable to parse tar entry size: ${e}`);return r}throw Error(`unable to parse tar verbose metadata: ${e}`)}function D(e){return e.split(`
|
|
2
2
|
`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e[0]??``;if(!t)throw Error(`unable to parse tar entry type`);return{type:re(t),size:E(e)}})}async function O(e){let t=C(`sha256`),n=x.createReadStream(e);return await new Promise((e,r)=>{n.on(`data`,e=>{t.update(e)}),n.on(`error`,r),n.on(`end`,()=>{e(t.digest(`hex`))})})}function k(e,t){return{stdout:e.stdout,stderr:e.stderr||t,code:e.code}}function A(e){let t=[`tar`,`xf`,e.archivePath,`-C`,e.targetDir];return e.stripComponents>0&&t.push(`--strip-components`,String(e.stripComponents)),t}async function j(e){let t=await s([`tar`,`tf`,e.archivePath],{timeoutMs:e.timeoutMs});if(t.code!==0)return k(t,`tar list failed`);let n=t.stdout.split(`
|
|
3
3
|
`).map(e=>e.trim()).filter(Boolean),r=await s([`tar`,`tvf`,e.archivePath],{timeoutMs:e.timeoutMs});if(r.code!==0)return k(r,`tar verbose list failed`);let i=D(r.stdout);return i.length===n.length?{entries:n,metadata:i}:{stdout:r.stdout,stderr:`tar verbose/list entry count mismatch (${i.length} vs ${n.length})`,code:1}}function M(e){return`code`in e}async function N(e){return await O(e.archivePath)===e.expectedHash?null:{stdout:``,stderr:`tar archive changed during safety preflight; refusing to extract`,code:1}}async function P(e){return await h({destinationRealDir:e.destinationRealDir,run:async t=>{let n=await s(A({archivePath:e.archivePath,targetDir:t,stripComponents:e.stripComponents}),{timeoutMs:e.timeoutMs});return n.code===0&&await f({sourceDir:t,destinationDir:e.destinationRealDir,destinationRealDir:e.destinationRealDir}),n}})}async function F(e){let{archivePath:t,archiveType:n,targetDir:r,stripComponents:i,timeoutMs:a}=e,s=typeof i==`number`&&Number.isFinite(i)?Math.max(0,Math.floor(i)):0;try{if(n===`zip`)return await v({archivePath:t,destDir:r,timeoutMs:a,kind:`zip`,stripComponents:s}),{stdout:``,stderr:``,code:0};if(n===`tar.gz`)return await v({archivePath:t,destDir:r,timeoutMs:a,kind:`tar`,stripComponents:s,tarGzip:!0}),{stdout:``,stderr:``,code:0};if(n===`tar.bz2`){if(!o(`tar`))return{stdout:``,stderr:`tar not found on PATH`,code:null};let e=await _(r),n=await O(t),i=await j({archivePath:t,timeoutMs:a});if(M(i))return i;let c=g({rootDir:e,stripComponents:s,escapeLabel:`targetDir`});for(let e=0;e<i.entries.length;e+=1){let t=i.entries[e],n=i.metadata[e];if(!t||!n)return{stdout:``,stderr:`tar metadata parse failure`,code:1};c({path:t,type:n.type,size:n.size})}return await N({archivePath:t,expectedHash:n})||await P({archivePath:t,destinationRealDir:e,stripComponents:s,timeoutMs:a})}return{stdout:``,stderr:`unsupported archive type: ${n}`,code:null}}catch(e){return{stdout:``,stderr:e instanceof Error?e.message:String(e),code:1}}}function I(e){let t=e.trim();if(!t)return;let n=t.split(`
|
|
4
|
-
`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return;let r=n.find(e=>/^error\b/i.test(e))??n.find(e=>/\b(err!|error:|failed)\b/i.test(e))??n.at(-1);if(!r)return;let i=r.replace(/\s+/g,` `).trim();return i.length>200?`${i.slice(0,199)}…`:i}function L(e){let t=typeof e.code==`number`?`exit ${e.code}`:`unknown exit`,n=I(e.stderr)??I(e.stdout);return n?`Install failed (${t}): ${n}`:`Install failed (${t})`}function R(e){let n=m(r(e.skill,e));return S.join(t(),`tools`,n)}function z(e){return!!(e&&typeof e.pipe==`function`)}function B(e,t){let r=R(e),i=t.targetDir?.trim();if(!i)return r;let a=i.startsWith(`~`)||S.isAbsolute(i)||p(i)?n(i):S.resolve(r,i);if(!d(r,a))throw Error(`Refusing to install outside the skill tools directory. targetDir="${i}" resolves to "${a}". Allowed root: "${r}".`);return a}function V(e,t){let n=e.archive?.trim().toLowerCase();if(n)return n;let r=t.toLowerCase();if(r.endsWith(`.tar.gz`)||r.endsWith(`.tgz`))return`tar.gz`;if(r.endsWith(`.tar.bz2`)||r.endsWith(`.tbz2`))return`tar.bz2`;if(r.endsWith(`.zip`))return`zip`}async function ie(t){let n=S.resolve(t.rootDir,t.relativePath),r=S.join(t.rootDir,`.openclaw-download-staging`);await e(r),await y({baseDir:t.rootDir,candidatePath:r,boundaryLabel:`skill tools directory`});let i=S.join(r,`${w()}.tmp`),{response:a,release:o}=await l({url:t.url,timeoutMs:Math.max(1e3,t.timeoutMs)});try{if(!a.ok||!a.body)throw Error(`Download failed (${a.status} ${a.statusText})`);let e=x.createWriteStream(i),r=a.body;return await T(z(r)?r:ee.fromWeb(r),e),await c({rootDir:t.rootDir,relativePath:t.relativePath,sourcePath:i}),{bytes:(await x.promises.stat(n)).size}}finally{await x.promises.rm(i,{force:!0}).catch(()=>void 0),await o()}}async function H(t){let{entry:n,spec:r,timeoutMs:i}=t,a=R(n),o=r.url?.trim();if(!o)return{ok:!1,message:`missing download url`,stdout:``,stderr:``,code:null};let s=``;try{let e=new URL(o);s=S.basename(e.pathname)}catch{s=S.basename(o)}s||=`download`;let c=``,l=``;try{await e(a),await y({baseDir:a,candidatePath:a,boundaryLabel:`skill tools directory`}),c=await x.promises.realpath(a);let t=B(n,r);await e(t),await y({baseDir:a,candidatePath:t,boundaryLabel:`skill tools directory`});let i=S.relative(a,t);l=S.join(c,i)}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let u=S.join(l,s),d=S.relative(c,u);if(!d||d===`..`||d.startsWith(`..${S.sep}`)||S.isAbsolute(d))return{ok:!1,message:`invalid download archive path`,stdout:``,stderr:`invalid download archive path`,code:null};let f=0;try{f=(await ie({url:o,rootDir:c,relativePath:d,timeoutMs:i})).bytes}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let p=V(r,s);if(!(r.extract??!!p))return{ok:!0,message:`Downloaded to ${u}`,stdout:`downloaded=${f}`,stderr:``,code:0};if(!p)return{ok:!1,message:`extract requested but archive type could not be detected`,stdout:``,stderr:``,code:null};try{await y({baseDir:c,candidatePath:l,boundaryLabel:`skill tools directory`})}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let m=await F({archivePath:u,archiveType:p,targetDir:l,stripComponents:r.stripComponents,timeoutMs:i}),h=m.code===0;return{ok:h,message:h?`Downloaded and extracted to ${l}`:L(m),stdout:m.stdout.trim(),stderr:m.stderr.trim(),code:m.code}}function U(e,t){return t.length===0?e:{...e,warnings:t.slice()}}function W(e,t){let n=S.relative(e,t.file),r=n&&n!==`.`&&!n.startsWith(`..`)?n:S.basename(t.file);return`${t.message} (${r}:${t.line})`}async function G(e){let t=[],n=e.skill.name,r=S.resolve(e.skill.baseDir);try{let e=await b(r);if(e.critical>0){let i=e.findings.filter(e=>e.severity===`critical`).map(e=>W(r,e)).join(`; `);t.push(`WARNING: Skill "${n}" contains dangerous code patterns: ${i}`)}else e.warn>0&&t.push(`Skill "${n}" has ${e.warn} suspicious code pattern(s). Run "openclaw security audit --deep" for details.`)}catch(e){t.push(`Skill "${n}" code safety scan failed (${String(e)}). Installation continues; run "openclaw security audit --deep" after install.`)}return t}function K(e,t){return(e.id??`${e.kind}-${t}`).trim()}function q(e,t){let n=e.metadata?.install??[];for(let[e,r]of n.entries())if(K(r,e)===t)return r}function J(e,t){switch(t.nodeManager){case`pnpm`:return[`pnpm`,`add`,`-g`,`--ignore-scripts`,e];case`yarn`:return[`yarn`,`global`,`add`,`--ignore-scripts`,e];case`bun`:return[`bun`,`add`,`-g`,`--ignore-scripts`,e];default:return[`npm`,`install`,`-g`,`--ignore-scripts`,e]}}function Y(e,t){switch(e.kind){case`brew`:return e.formula?{argv:[`brew`,`install`,e.formula]}:{argv:null,error:`missing brew formula`};case`node`:return e.package?{argv:J(e.package,t)}:{argv:null,error:`missing node package`};case`go`:return e.module?{argv:[`go`,`install`,e.module]}:{argv:null,error:`missing go module`};case`uv`:return e.package?{argv:[`uv`,`tool`,`install`,e.package]}:{argv:null,error:`missing uv package`};case`download`:return{argv:null,error:`download install handled separately`};default:return{argv:null,error:`unsupported installer`}}}async function ae(e,t){let n=t??(o(`brew`)?`brew`:u());if(!n)return;let r=await s([n,`--prefix`],{timeoutMs:Math.min(e,3e4)});if(r.code===0){let e=r.stdout.trim();if(e)return S.join(e,`bin`)}let i=process.env.HOMEBREW_PREFIX?.trim();if(i)return S.join(i,`bin`);for(let e of[`/opt/homebrew/bin`,`/usr/local/bin`])try{if(x.existsSync(e))return e}catch{}}function X(e){return{ok:!1,message:e.message,stdout:e.stdout?.trim()??``,stderr:e.stderr?.trim()??``,code:e.code??null}}function oe(e){return{ok:!0,message:`Installed`,stdout:e.stdout.trim(),stderr:e.stderr.trim(),code:e.code}}async function Z(e,t){try{let n=await s(e,t);return{code:n.code,stdout:n.stdout,stderr:n.stderr}}catch(e){return{code:null,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Q(e,t){await Z(e,t)}function se(e){let t=e.formula??`this package`;return X({message:`brew not installed — ${process.platform===`linux`?`Homebrew is not installed. Install it from https://brew.sh or install "${t}" manually using your system package manager (e.g. apt, dnf, pacman).`:`Homebrew is not installed. Install it from https://brew.sh`}`})}async function ce(e){if(e.spec.kind!==`uv`||o(`uv`))return;if(!e.brewExe)return X({message:`uv not installed — install manually: https://docs.astral.sh/uv/getting-started/installation/`});let t=await Z([e.brewExe,`install`,`uv`],{timeoutMs:e.timeoutMs});if(t.code!==0)return X({message:`Failed to install uv (brew)`,...t})}async function le(e){let t=[`apt-get`,`install`,`-y`,`golang-go`],n=[`apt-get`,`update`,`-qq`],r=`go not installed — automatic install via apt failed. Install manually: https://go.dev/doc/install`;if(typeof process.getuid==`function`&&process.getuid()===0){await Q(n,{timeoutMs:e});let i=await Z(t,{timeoutMs:e});return i.code===0?void 0:X({message:r,...i})}if(!o(`sudo`))return X({message:`go not installed — apt-get is available but sudo is not installed. Install manually: https://go.dev/doc/install`});let i=await Z([`sudo`,`-n`,`true`],{timeoutMs:5e3});if(i.code!==0)return X({message:`go not installed — apt-get is available but sudo is not usable (missing or requires a password). Install manually: https://go.dev/doc/install`,...i});await Q([`sudo`,...n],{timeoutMs:e});let a=await Z([`sudo`,...t],{timeoutMs:e});if(a.code!==0)return X({message:r,...a})}async function $(e){if(!(e.spec.kind!==`go`||o(`go`))){if(e.brewExe){let t=await Z([e.brewExe,`install`,`go`],{timeoutMs:e.timeoutMs});return t.code===0?void 0:X({message:`Failed to install go (brew)`,...t})}return o(`apt-get`)?le(e.timeoutMs):X({message:`go not installed — install manually: https://go.dev/doc/install`})}}async function ue(e){if(!e.argv||e.argv.length===0)return X({message:`invalid install command`});let t=await Z(e.argv,{timeoutMs:e.timeoutMs,env:e.env});return t.code===0?oe(t):X({message:L(t),...t})}async function de(e){let t=Math.min(Math.max(e.timeoutMs??3e5,1e3),9e5),r=i(n(e.workspaceDir)).find(t=>t.skill.name===e.skillName);if(!r)return{ok:!1,message:`Skill not found: ${e.skillName}`,stdout:``,stderr:``,code:null};let s=q(r,e.installId),c=await G(r);if(!s)return U({ok:!1,message:`Installer not found: ${e.installId}`,stdout:``,stderr:``,code:null},c);if(s.kind===`download`)return U(await H({entry:r,spec:s,timeoutMs:t}),c);let l=Y(s,a(e.config));if(l.error)return U({ok:!1,message:l.error,stdout:``,stderr:``,code:null},c);let d=o(`brew`)?`brew`:u();if(s.kind===`brew`&&!d)return U(se(s),c);let f=await ce({spec:s,brewExe:d,timeoutMs:t});if(f)return U(f,c);let p=await $({spec:s,brewExe:d,timeoutMs:t});if(p)return U(p,c);let m=l.argv?[...l.argv]:null;s.kind===`brew`&&d&&m?.[0]===`brew`&&(m[0]=d);let h;if(s.kind===`go`&&d){let e=await ae(t,d);e&&(h={GOBIN:e})}return U(await ue({argv:m,timeoutMs:t,env:h}),c)}export{de as t};
|
|
4
|
+
`).map(e=>e.trim()).filter(Boolean);if(n.length===0)return;let r=n.find(e=>/^error\b/i.test(e))??n.find(e=>/\b(err!|error:|failed)\b/i.test(e))??n.at(-1);if(!r)return;let i=r.replace(/\s+/g,` `).trim();return i.length>200?`${i.slice(0,199)}…`:i}function L(e){let t=typeof e.code==`number`?`exit ${e.code}`:`unknown exit`,n=I(e.stderr)??I(e.stdout);return n?`Install failed (${t}): ${n}`:`Install failed (${t})`}function R(e){let n=m(r(e.skill,e));return S.join(t(),`tools`,n)}function z(e){return!!(e&&typeof e.pipe==`function`)}function B(e,t){let r=R(e),i=t.targetDir?.trim();if(!i)return r;let a=i.startsWith(`~`)||S.isAbsolute(i)||p(i)?n(i):S.resolve(r,i);if(!d(r,a))throw Error(`Refusing to install outside the skill tools directory. targetDir="${i}" resolves to "${a}". Allowed root: "${r}".`);return a}function V(e,t){let n=e.archive?.trim().toLowerCase();if(n)return n;let r=t.toLowerCase();if(r.endsWith(`.tar.gz`)||r.endsWith(`.tgz`))return`tar.gz`;if(r.endsWith(`.tar.bz2`)||r.endsWith(`.tbz2`))return`tar.bz2`;if(r.endsWith(`.zip`))return`zip`}async function ie(t){let n=S.resolve(t.rootDir,t.relativePath),r=S.join(t.rootDir,`.openclaw-download-staging`);await e(r),await y({baseDir:t.rootDir,candidatePath:r,boundaryLabel:`skill tools directory`});let i=S.join(r,`${w()}.tmp`),{response:a,release:o}=await l({url:t.url,timeoutMs:Math.max(1e3,t.timeoutMs)});try{if(!a.ok||!a.body)throw Error(`Download failed (${a.status} ${a.statusText})`);let e=x.createWriteStream(i),r=a.body;return await T(z(r)?r:ee.fromWeb(r),e),await c({rootDir:t.rootDir,relativePath:t.relativePath,sourcePath:i}),{bytes:(await x.promises.stat(n)).size}}finally{await x.promises.rm(i,{force:!0}).catch(()=>void 0),await o()}}async function H(t){let{entry:n,spec:r,timeoutMs:i}=t,a=R(n),o=r.url?.trim();if(!o)return{ok:!1,message:`missing download url`,stdout:``,stderr:``,code:null};let s=``;try{let e=new URL(o);s=S.basename(e.pathname)}catch{s=S.basename(o)}s||=`download`;let c=``,l=``;try{await e(a),await y({baseDir:a,candidatePath:a,boundaryLabel:`skill tools directory`}),c=await x.promises.realpath(a);let t=B(n,r);await e(t),await y({baseDir:a,candidatePath:t,boundaryLabel:`skill tools directory`});let i=S.relative(a,t);l=S.join(c,i)}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let u=S.join(l,s),d=S.relative(c,u);if(!d||d===`..`||d.startsWith(`..${S.sep}`)||S.isAbsolute(d))return{ok:!1,message:`invalid download archive path`,stdout:``,stderr:`invalid download archive path`,code:null};let f=0;try{f=(await ie({url:o,rootDir:c,relativePath:d,timeoutMs:i})).bytes}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let p=V(r,s);if(!(r.extract??!!p))return{ok:!0,message:`Downloaded to ${u}`,stdout:`downloaded=${f}`,stderr:``,code:0};if(!p)return{ok:!1,message:`extract requested but archive type could not be detected`,stdout:``,stderr:``,code:null};try{await y({baseDir:c,candidatePath:l,boundaryLabel:`skill tools directory`})}catch(e){let t=e instanceof Error?e.message:String(e);return{ok:!1,message:t,stdout:``,stderr:t,code:null}}let m=await F({archivePath:u,archiveType:p,targetDir:l,stripComponents:r.stripComponents,timeoutMs:i}),h=m.code===0;return{ok:h,message:h?`Downloaded and extracted to ${l}`:L(m),stdout:m.stdout.trim(),stderr:m.stderr.trim(),code:m.code}}function U(e,t){return t.length===0?e:{...e,warnings:t.slice()}}function W(e,t){let n=S.relative(e,t.file),r=n&&n!==`.`&&!n.startsWith(`..`)?n:S.basename(t.file);return`${t.message} (${r}:${t.line})`}async function G(e){let t=[],n=e.skill.name,r=S.resolve(e.skill.baseDir);try{let e=await b(r);if(e.critical>0){let i=e.findings.filter(e=>e.severity===`critical`).map(e=>W(r,e)).join(`; `);t.push(`WARNING: Skill "${n}" contains dangerous code patterns: ${i}`)}else e.warn>0&&t.push(`Skill "${n}" has ${e.warn} suspicious code pattern(s). Run "openclaw security audit --deep" for details.`)}catch(e){t.push(`Skill "${n}" code safety scan failed (${String(e)}). Installation continues; run "openclaw security audit --deep" after install.`)}return t}function K(e,t){return(e.id??`${e.kind}-${t}`).trim()}function q(e,t){let n=e.metadata?.install??[];for(let[e,r]of n.entries())if(K(r,e)===t)return r}function J(e,t){switch(t.nodeManager){case`pnpm`:return[`pnpm`,`add`,`-g`,`--ignore-scripts`,e];case`yarn`:return[`yarn`,`global`,`add`,`--ignore-scripts`,e];case`bun`:return[`bun`,`add`,`-g`,`--ignore-scripts`,e];default:return[`npm`,`install`,`-g`,`--ignore-scripts`,e]}}function Y(e,t){switch(e.kind){case`brew`:return e.formula?{argv:[`brew`,`install`,e.formula]}:{argv:null,error:`missing brew formula`};case`node`:return e.package?{argv:J(e.package,t)}:{argv:null,error:`missing node package`};case`go`:return e.module?{argv:[`go`,`install`,e.module]}:{argv:null,error:`missing go module`};case`uv`:return e.package?{argv:[`uv`,`tool`,`install`,e.package]}:{argv:null,error:`missing uv package`};case`download`:return{argv:null,error:`download install handled separately`};default:return{argv:null,error:`unsupported installer`}}}async function ae(e,t){let n=t??(o(`brew`)?`brew`:u());if(!n)return;let r=await s([n,`--prefix`],{timeoutMs:Math.min(e,3e4)});if(r.code===0){let e=r.stdout.trim();if(e)return S.join(e,`bin`)}let i=process.env.HOMEBREW_PREFIX?.trim();if(i)return S.join(i,`bin`);for(let e of[`/opt/homebrew/bin`,`/usr/local/bin`])try{if(x.existsSync(e))return e}catch{}}function X(e){return{ok:!1,message:e.message,stdout:e.stdout?.trim()??``,stderr:e.stderr?.trim()??``,code:e.code??null}}function oe(e){return{ok:!0,message:`Installed`,stdout:e.stdout.trim(),stderr:e.stderr.trim(),code:e.code}}async function Z(e,t){try{let n=await s(e,t);return{code:n.code,stdout:n.stdout,stderr:n.stderr}}catch(e){return{code:null,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Q(e,t){await Z(e,t)}function se(e){let t=e.formula??`this package`;return X({message:`brew not installed — ${process.platform===`linux`?`Homebrew is not installed. Install it from https://brew.sh or install "${t}" manually using your system package manager (e.g. apt, dnf, pacman).`:`Homebrew is not installed. Install it from https://brew.sh`}`})}async function ce(e){if(e.spec.kind!==`uv`||o(`uv`))return;if(!e.brewExe)return X({message:`uv not installed — install manually: https://docs.astral.sh/uv/getting-started/installation/`});let t=await Z([e.brewExe,`install`,`uv`],{timeoutMs:e.timeoutMs});if(t.code!==0)return X({message:`Failed to install uv (brew)`,...t})}async function le(e){let t=[`apt-get`,`install`,`-y`,`golang-go`],n=[`apt-get`,`update`,`-qq`],r=`go not installed — automatic install via apt failed. Install manually: https://go.dev/doc/install`;if(typeof process.getuid==`function`&&process.getuid()===0){await Q(n,{timeoutMs:e});let i=await Z(t,{timeoutMs:e});return i.code===0?void 0:X({message:r,...i})}if(!o(`sudo`))return X({message:`go not installed — apt-get is available but sudo is not installed. Install manually: https://go.dev/doc/install`});let i=await Z([`sudo`,`-n`,`true`],{timeoutMs:5e3});if(i.code!==0)return X({message:`go not installed — apt-get is available but sudo is not usable (missing or requires a password). Install manually: https://go.dev/doc/install`,...i});await Q([`sudo`,...n],{timeoutMs:e});let a=await Z([`sudo`,...t],{timeoutMs:e});if(a.code!==0)return X({message:r,...a})}async function $(e){if(!(e.spec.kind!==`go`||o(`go`))){if(e.brewExe){let t=await Z([e.brewExe,`install`,`go`],{timeoutMs:e.timeoutMs});return t.code===0?void 0:X({message:`Failed to install go (brew)`,...t})}return o(`apt-get`)?le(e.timeoutMs):X({message:`go not installed — install manually: https://go.dev/doc/install`})}}async function ue(e){if(!e.argv||e.argv.length===0)return X({message:`invalid install command`});let t=await Z(e.argv,{timeoutMs:e.timeoutMs,env:e.env});return t.code===0?oe(t):X({message:L(t),...t})}async function de(e){let t=Math.min(Math.max(e.timeoutMs??3e5,1e3),9e5),r=i(n(e.workspaceDir)).find(t=>t.skill.name===e.skillName);if(!r)return{ok:!1,message:`Skill not found: ${e.skillName}`,stdout:``,stderr:``,code:null};let s=q(r,e.installId),c=await G(r);if(!s)return U({ok:!1,message:`Installer not found: ${e.installId}`,stdout:``,stderr:``,code:null},c);if(s.kind===`download`)return U(await H({entry:r,spec:s,timeoutMs:t}),c);let l=Y(s,a(e.config));if(l.error)return U({ok:!1,message:l.error,stdout:``,stderr:``,code:null},c);let d=o(`brew`)?`brew`:u();if(s.kind===`brew`&&!d)return U(se(s),c);let f=await ce({spec:s,brewExe:d,timeoutMs:t});if(f)return U(f,c);let p=await $({spec:s,brewExe:d,timeoutMs:t});if(p)return U(p,c);let m=l.argv?[...l.argv]:null;s.kind===`brew`&&d&&m?.[0]===`brew`&&(m[0]=d);let h;if(s.kind===`go`&&d){let e=await ae(t,d);e&&(h={GOBIN:e})}return U(await ue({argv:m,timeoutMs:t,env:h}),c)}export{de as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-C5XF2Fy5.js";import{t as n}from"./utils-UGOV_184.js";import{a as r,c as i,o as a,s as o}from"./env-overrides-DXJbFrwI.js";import{c as s,i as c,t as l}from"./skills-DHbOKEGc.js";import{f as u}from"./frontmatter-BkZkwkVO.js";import{t as d}from"./entry-status-CCwwKO43.js";import f from"node:path";import{loadSkillsFromDir as p}from"@mariozechner/pi-coding-agent";const m=t(`skills`);let h=!1,g=null;function _(e={}){let t=s(e),n=new Set;if(!t)return h||(h=!0,m.warn(`Bundled skills directory could not be resolved; built-in skills may be missing.`)),{dir:t,names:n};if(g?.dir===t)return{dir:t,names:new Set(g.names)};let r=p({dir:t,source:`openclaw-bundled`});for(let e of r.skills)e.name.trim()&&n.add(e.name);return g={dir:t,names:new Set(n)},{dir:t,names:n}}var v=e({buildWorkspaceSkillStatus:()=>C});function y(e){return e.metadata?.skillKey??e.skill.name}function b(e,t){if(e.length===0)return;let n=e.map((e,t)=>({spec:e,index:t})),r=e=>n.find(t=>t.spec.kind===e),i=r(`brew`),a=r(`node`),o=r(`go`),s=r(`uv`),c=r(`download`),l=u(`brew`),d=[()=>t.preferBrew&&l?i:void 0,()=>s,()=>a,()=>l?i:void 0,()=>o,()=>c,()=>i,()=>n[0]];for(let e of d){let t=e();if(t)return t}}function x(e,t){let n=e.metadata?.os??[];if(n.length>0&&!n.includes(process.platform))return[];let r=e.metadata?.install??[];if(r.length===0)return[];let i=process.platform,a=r.filter(e=>{let t=e.os??[];return t.length===0||t.includes(i)});if(a.length===0)return[];let o=(e,n)=>{let r=(e.id??`${e.kind}-${n}`).trim(),i=e.bins??[],a=(e.label??``).trim();if(e.kind===`node`&&e.package&&(a=`Install ${e.package} (${t.nodeManager})`),!a)if(e.kind===`brew`&&e.formula)a=`Install ${e.formula} (brew)`;else if(e.kind===`node`&&e.package)a=`Install ${e.package} (${t.nodeManager})`;else if(e.kind===`go`&&e.module)a=`Install ${e.module} (go)`;else if(e.kind===`uv`&&e.package)a=`Install ${e.package} (uv)`;else if(e.kind===`download`&&e.url){let t=e.url.trim(),n=t.split(`/`).pop();a=`Download ${n&&n.length>0?n:t}`}else a=`Run installer`;return{id:r,kind:e.kind,label:a,bins:i}};if(a.every(e=>e.kind===`download`))return a.map((e,t)=>o(e,t));let s=b(a,t);return s?[o(s.spec,s.index)]:[]}function S(e,t,n,s,c){let f=y(e),p=i(t,f),m=p?.enabled===!1,h=!r(e,o(t)),g=e.metadata?.always===!0,_=t=>!!(process.env[t]||p?.env?.[t]||p?.apiKey&&e.metadata?.primaryEnv===t),v=e=>a(t,e),b=c&&c.size>0?c.has(e.skill.name):e.skill.source===`openclaw-bundled`,{emoji:S,homepage:C,required:w,missing:T,requirementsSatisfied:E,configChecks:D}=d({always:g,entry:e,hasLocalBin:u,remote:s?.remote,isEnvSatisfied:_,isConfigSatisfied:v}),O=!m&&!h&&E;return{name:e.skill.name,description:e.skill.description,source:e.skill.source,bundled:b,filePath:e.skill.filePath,baseDir:e.skill.baseDir,skillKey:f,primaryEnv:e.metadata?.primaryEnv,emoji:S,homepage:C,always:g,disabled:m,blockedByAllowlist:h,eligible:O,requirements:w,missing:T,configChecks:D,install:x(e,n??l(t))}}function C(e,t){let r=t?.managedSkillsDir??f.join(n,`skills`),i=_(),a=t?.entries??c(e,{config:t?.config,managedSkillsDir:r,bundledSkillsDir:i.dir}),o=l(t?.config);return{workspaceDir:e,managedSkillsDir:r,skills:a.map(e=>S(e,t?.config,o,t?.eligibility,i.names))}}export{v as n,C as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-C5XF2Fy5.js";import{t as n}from"./utils-UGOV_184.js";import{a as r,c as i,o as a,s as o}from"./env-overrides-DXJbFrwI.js";import{c as s,i as c,t as l}from"./skills-DHbOKEGc.js";import{f as u}from"./frontmatter-BkZkwkVO.js";import{t as d}from"./entry-status-CCwwKO43.js";import f from"node:path";import{loadSkillsFromDir as p}from"@mariozechner/pi-coding-agent";const m=t(`skills`);let h=!1,g=null;function _(e={}){let t=s(e),n=new Set;if(!t)return h||(h=!0,m.warn(`Bundled skills directory could not be resolved; built-in skills may be missing.`)),{dir:t,names:n};if(g?.dir===t)return{dir:t,names:new Set(g.names)};let r=p({dir:t,source:`openclaw-bundled`});for(let e of r.skills)e.name.trim()&&n.add(e.name);return g={dir:t,names:new Set(n)},{dir:t,names:n}}var v=e({buildWorkspaceSkillStatus:()=>C});function y(e){return e.metadata?.skillKey??e.skill.name}function b(e,t){if(e.length===0)return;let n=e.map((e,t)=>({spec:e,index:t})),r=e=>n.find(t=>t.spec.kind===e),i=r(`brew`),a=r(`node`),o=r(`go`),s=r(`uv`),c=r(`download`),l=u(`brew`),d=[()=>t.preferBrew&&l?i:void 0,()=>s,()=>a,()=>l?i:void 0,()=>o,()=>c,()=>i,()=>n[0]];for(let e of d){let t=e();if(t)return t}}function x(e,t){let n=e.metadata?.os??[];if(n.length>0&&!n.includes(process.platform))return[];let r=e.metadata?.install??[];if(r.length===0)return[];let i=process.platform,a=r.filter(e=>{let t=e.os??[];return t.length===0||t.includes(i)});if(a.length===0)return[];let o=(e,n)=>{let r=(e.id??`${e.kind}-${n}`).trim(),i=e.bins??[],a=(e.label??``).trim();if(e.kind===`node`&&e.package&&(a=`Install ${e.package} (${t.nodeManager})`),!a)if(e.kind===`brew`&&e.formula)a=`Install ${e.formula} (brew)`;else if(e.kind===`node`&&e.package)a=`Install ${e.package} (${t.nodeManager})`;else if(e.kind===`go`&&e.module)a=`Install ${e.module} (go)`;else if(e.kind===`uv`&&e.package)a=`Install ${e.package} (uv)`;else if(e.kind===`download`&&e.url){let t=e.url.trim(),n=t.split(`/`).pop();a=`Download ${n&&n.length>0?n:t}`}else a=`Run installer`;return{id:r,kind:e.kind,label:a,bins:i}};if(a.every(e=>e.kind===`download`))return a.map((e,t)=>o(e,t));let s=b(a,t);return s?[o(s.spec,s.index)]:[]}function S(e,t,n,s,c){let f=y(e),p=i(t,f),m=p?.enabled===!1,h=!r(e,o(t)),g=e.metadata?.always===!0,_=t=>!!(process.env[t]||p?.env?.[t]||p?.apiKey&&e.metadata?.primaryEnv===t),v=e=>a(t,e),b=c&&c.size>0?c.has(e.skill.name):e.skill.source===`openclaw-bundled`,{emoji:S,homepage:C,required:w,missing:T,requirementsSatisfied:E,configChecks:D}=d({always:g,entry:e,hasLocalBin:u,remote:s?.remote,isEnvSatisfied:_,isConfigSatisfied:v}),O=!m&&!h&&E;return{name:e.skill.name,description:e.skill.description,source:e.skill.source,bundled:b,filePath:e.skill.filePath,baseDir:e.skill.baseDir,skillKey:f,primaryEnv:e.metadata?.primaryEnv,emoji:S,homepage:C,always:g,disabled:m,blockedByAllowlist:h,eligible:O,requirements:w,missing:T,configChecks:D,install:x(e,n??l(t))}}function C(e,t){let r=t?.managedSkillsDir??f.join(n,`skills`),i=_(),a=t?.entries??c(e,{config:t?.config,managedSkillsDir:r,bundledSkillsDir:i.dir}),o=l(t?.config);return{workspaceDir:e,managedSkillsDir:r,skills:a.map(e=>S(e,t?.config,o,t?.eligibility,i.names))}}export{v as n,C as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-BLbY429l.js";import{t as n}from"./utils-CGdo13HV.js";import{a as r,c as i,o as a,s as o}from"./env-overrides-DHtB4kK3.js";import{c as s,i as c,t as l}from"./skills-CKTicUKS.js";import{f as u}from"./frontmatter-C7mzDNxd.js";import{t as d}from"./entry-status-CoXkbJcX.js";import f from"node:path";import{loadSkillsFromDir as p}from"@mariozechner/pi-coding-agent";const m=t(`skills`);let h=!1,g=null;function _(e={}){let t=s(e),n=new Set;if(!t)return h||(h=!0,m.warn(`Bundled skills directory could not be resolved; built-in skills may be missing.`)),{dir:t,names:n};if(g?.dir===t)return{dir:t,names:new Set(g.names)};let r=p({dir:t,source:`openclaw-bundled`});for(let e of r.skills)e.name.trim()&&n.add(e.name);return g={dir:t,names:new Set(n)},{dir:t,names:n}}var v=e({buildWorkspaceSkillStatus:()=>C});function y(e){return e.metadata?.skillKey??e.skill.name}function b(e,t){if(e.length===0)return;let n=e.map((e,t)=>({spec:e,index:t})),r=e=>n.find(t=>t.spec.kind===e),i=r(`brew`),a=r(`node`),o=r(`go`),s=r(`uv`),c=r(`download`),l=u(`brew`),d=[()=>t.preferBrew&&l?i:void 0,()=>s,()=>a,()=>l?i:void 0,()=>o,()=>c,()=>i,()=>n[0]];for(let e of d){let t=e();if(t)return t}}function x(e,t){let n=e.metadata?.os??[];if(n.length>0&&!n.includes(process.platform))return[];let r=e.metadata?.install??[];if(r.length===0)return[];let i=process.platform,a=r.filter(e=>{let t=e.os??[];return t.length===0||t.includes(i)});if(a.length===0)return[];let o=(e,n)=>{let r=(e.id??`${e.kind}-${n}`).trim(),i=e.bins??[],a=(e.label??``).trim();if(e.kind===`node`&&e.package&&(a=`Install ${e.package} (${t.nodeManager})`),!a)if(e.kind===`brew`&&e.formula)a=`Install ${e.formula} (brew)`;else if(e.kind===`node`&&e.package)a=`Install ${e.package} (${t.nodeManager})`;else if(e.kind===`go`&&e.module)a=`Install ${e.module} (go)`;else if(e.kind===`uv`&&e.package)a=`Install ${e.package} (uv)`;else if(e.kind===`download`&&e.url){let t=e.url.trim(),n=t.split(`/`).pop();a=`Download ${n&&n.length>0?n:t}`}else a=`Run installer`;return{id:r,kind:e.kind,label:a,bins:i}};if(a.every(e=>e.kind===`download`))return a.map((e,t)=>o(e,t));let s=b(a,t);return s?[o(s.spec,s.index)]:[]}function S(e,t,n,s,c){let f=y(e),p=i(t,f),m=p?.enabled===!1,h=!r(e,o(t)),g=e.metadata?.always===!0,_=t=>!!(process.env[t]||p?.env?.[t]||p?.apiKey&&e.metadata?.primaryEnv===t),v=e=>a(t,e),b=c&&c.size>0?c.has(e.skill.name):e.skill.source===`openclaw-bundled`,{emoji:S,homepage:C,required:w,missing:T,requirementsSatisfied:E,configChecks:D}=d({always:g,entry:e,hasLocalBin:u,remote:s?.remote,isEnvSatisfied:_,isConfigSatisfied:v}),O=!m&&!h&&E;return{name:e.skill.name,description:e.skill.description,source:e.skill.source,bundled:b,filePath:e.skill.filePath,baseDir:e.skill.baseDir,skillKey:f,primaryEnv:e.metadata?.primaryEnv,emoji:S,homepage:C,always:g,disabled:m,blockedByAllowlist:h,eligible:O,requirements:w,missing:T,configChecks:D,install:x(e,n??l(t))}}function C(e,t){let r=t?.managedSkillsDir??f.join(n,`skills`),i=_(),a=t?.entries??c(e,{config:t?.config,managedSkillsDir:r,bundledSkillsDir:i.dir}),o=l(t?.config);return{workspaceDir:e,managedSkillsDir:r,skills:a.map(e=>S(e,t?.config,o,t?.eligibility,i.names))}}export{v as n,C as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-BLbY429l.js";import{t as n}from"./utils-CGdo13HV.js";import{a as r,c as i,o as a,s as o}from"./env-overrides-DHtB4kK3.js";import{c as s,i as c,t as l}from"./skills-CKTicUKS.js";import{f as u}from"./frontmatter-C7mzDNxd.js";import{t as d}from"./entry-status-CoXkbJcX.js";import f from"node:path";import{loadSkillsFromDir as p}from"@mariozechner/pi-coding-agent";const m=t(`skills`);let h=!1,g=null;function _(e={}){let t=s(e),n=new Set;if(!t)return h||(h=!0,m.warn(`Bundled skills directory could not be resolved; built-in skills may be missing.`)),{dir:t,names:n};if(g?.dir===t)return{dir:t,names:new Set(g.names)};let r=p({dir:t,source:`openclaw-bundled`});for(let e of r.skills)e.name.trim()&&n.add(e.name);return g={dir:t,names:new Set(n)},{dir:t,names:n}}var v=e({buildWorkspaceSkillStatus:()=>C});function y(e){return e.metadata?.skillKey??e.skill.name}function b(e,t){if(e.length===0)return;let n=e.map((e,t)=>({spec:e,index:t})),r=e=>n.find(t=>t.spec.kind===e),i=r(`brew`),a=r(`node`),o=r(`go`),s=r(`uv`),c=r(`download`),l=u(`brew`),d=[()=>t.preferBrew&&l?i:void 0,()=>s,()=>a,()=>l?i:void 0,()=>o,()=>c,()=>i,()=>n[0]];for(let e of d){let t=e();if(t)return t}}function x(e,t){let n=e.metadata?.os??[];if(n.length>0&&!n.includes(process.platform))return[];let r=e.metadata?.install??[];if(r.length===0)return[];let i=process.platform,a=r.filter(e=>{let t=e.os??[];return t.length===0||t.includes(i)});if(a.length===0)return[];let o=(e,n)=>{let r=(e.id??`${e.kind}-${n}`).trim(),i=e.bins??[],a=(e.label??``).trim();if(e.kind===`node`&&e.package&&(a=`Install ${e.package} (${t.nodeManager})`),!a)if(e.kind===`brew`&&e.formula)a=`Install ${e.formula} (brew)`;else if(e.kind===`node`&&e.package)a=`Install ${e.package} (${t.nodeManager})`;else if(e.kind===`go`&&e.module)a=`Install ${e.module} (go)`;else if(e.kind===`uv`&&e.package)a=`Install ${e.package} (uv)`;else if(e.kind===`download`&&e.url){let t=e.url.trim(),n=t.split(`/`).pop();a=`Download ${n&&n.length>0?n:t}`}else a=`Run installer`;return{id:r,kind:e.kind,label:a,bins:i}};if(a.every(e=>e.kind===`download`))return a.map((e,t)=>o(e,t));let s=b(a,t);return s?[o(s.spec,s.index)]:[]}function S(e,t,n,s,c){let f=y(e),p=i(t,f),m=p?.enabled===!1,h=!r(e,o(t)),g=e.metadata?.always===!0,_=t=>!!(process.env[t]||p?.env?.[t]||p?.apiKey&&e.metadata?.primaryEnv===t),v=e=>a(t,e),b=c&&c.size>0?c.has(e.skill.name):e.skill.source===`openclaw-bundled`,{emoji:S,homepage:C,required:w,missing:T,requirementsSatisfied:E,configChecks:D}=d({always:g,entry:e,hasLocalBin:u,remote:s?.remote,isEnvSatisfied:_,isConfigSatisfied:v}),O=!m&&!h&&E;return{name:e.skill.name,description:e.skill.description,source:e.skill.source,bundled:b,filePath:e.skill.filePath,baseDir:e.skill.baseDir,skillKey:f,primaryEnv:e.metadata?.primaryEnv,emoji:S,homepage:C,always:g,disabled:m,blockedByAllowlist:h,eligible:O,requirements:w,missing:T,configChecks:D,install:x(e,n??l(t))}}function C(e,t){let r=t?.managedSkillsDir??f.join(n,`skills`),i=_(),a=t?.entries??c(e,{config:t?.config,managedSkillsDir:r,bundledSkillsDir:i.dir}),o=l(t?.config);return{workspaceDir:e,managedSkillsDir:r,skills:a.map(e=>S(e,t?.config,o,t?.eligibility,i.names))}}export{v as n,C as t};
|
package/dist/sqlite-CILF3z9U.js
CHANGED
|
@@ -3,4 +3,4 @@ import{t as e}from"./subsystem-BLbY429l.js";import{t}from"./entry.js";import{r a
|
|
|
3
3
|
`),r=e.lineNo,i=t.lineNo;a.push({startLine:r,endLine:i,text:n,hash:Y(n),embeddingInput:z(n)})},l=()=>{if(i<=0||o.length===0){o=[],s=0;return}let e=0,t=[];for(let n=o.length-1;n>=0;--n){let r=o[n];if(r&&(e+=r.line.length+1,t.unshift(r),e>=i))break}o=t,s=t.reduce((e,t)=>e+t.line.length+1,0)};for(let e=0;e<n.length;e+=1){let t=n[e]??``,i=e+1,a=[];if(t.length===0)a.push(``);else for(let e=0;e<t.length;e+=r)a.push(t.slice(e,e+r));for(let e of a){let t=e.length+1;s+t>r&&o.length>0&&(c(),l()),o.push({line:e,lineNo:i}),s+=t}}return c(),a}function ae(e,t){if(!(!t||t.length===0))for(let n of e)n.startLine=t[n.startLine-1]??n.startLine,n.endLine=t[n.endLine-1]??n.endLine}function oe(e){try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function se(e,t){if(e.length===0||t.length===0)return 0;let n=Math.min(e.length,t.length),r=0,i=0,a=0;for(let o=0;o<n;o+=1){let n=e[o]??0,s=t[o]??0;r+=n*s,i+=n*n,a+=s*s}return i===0||a===0?0:r/(Math.sqrt(i)*Math.sqrt(a))}async function ce(e,t){let{results:n,firstError:i,hasError:a}=await r({tasks:e,limit:t,errorMode:`stop`});if(a)throw i;return n}const le=e(`memory`);async function ue(e){let t=a(e);try{return(await l.readdir(t,{withFileTypes:!0})).filter(e=>e.isFile()).map(e=>e.name).filter(e=>e.endsWith(`.jsonl`)).map(e=>s.join(t,e))}catch{return[]}}function Q(e){return s.join(`sessions`,s.basename(e)).replace(/\\/g,`/`)}function $(e){return e.replace(/\s*\n+\s*/g,` `).replace(/\s+/g,` `).trim()}function de(e){if(typeof e==`string`)return $(e)||null;if(!Array.isArray(e))return null;let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(e.type!==`text`||typeof e.text!=`string`)continue;let r=$(e.text);r&&t.push(r)}return t.length===0?null:t.join(` `)}async function fe(e){try{let t=await l.stat(e),n=(await l.readFile(e,`utf-8`)).split(`
|
|
4
4
|
`),r=[],a=[];for(let e=0;e<n.length;e++){let t=n[e];if(!t.trim())continue;let o;try{o=JSON.parse(t)}catch{continue}if(!o||typeof o!=`object`||o.type!==`message`)continue;let s=o.message;if(!s||typeof s.role!=`string`||s.role!==`user`&&s.role!==`assistant`)continue;let c=de(s.content);if(!c)continue;let l=i(c,{mode:`tools`}),u=s.role===`user`?`User`:`Assistant`;r.push(`${u}: ${l}`),a.push(e+1)}let o=r.join(`
|
|
5
5
|
`);return{path:Q(e),absPath:e,mtimeMs:t.mtimeMs,size:t.size,hash:Y(o+`
|
|
6
|
-
`+a.join(`,`)),content:o,lineMap:a}}catch(t){return le.debug(`Failed reading session file ${e}: ${String(t)}`),null}}const pe=o(import.meta.url);function me(){t();try{return pe(`node:sqlite`)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`SQLite support is unavailable in this Node runtime (missing node:sqlite). ${t}`,{cause:e})}}export{x as A,A as C,te as D,D as E,N as O,F as S,O as T,V as _,X as a,R as b,se as c,G as d,J as f,ce as g,ae as h,Q as i,C as k,U as l,oe as m,fe as n,re as o,W as p,ue as r,ie as s,me as t,Y as u,L as v,j as w,P as x,I as y};
|
|
6
|
+
`+a.join(`,`)),content:o,lineMap:a}}catch(t){return le.debug(`Failed reading session file ${e}: ${String(t)}`),null}}const pe=o(import.meta.url);function me(){t();try{return pe(`node:sqlite`)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`SQLite support is unavailable in this Node runtime (missing node:sqlite). ${t}`,{cause:e})}}export{x as A,A as C,te as D,D as E,N as O,F as S,O as T,V as _,X as a,R as b,se as c,G as d,J as f,ce as g,ae as h,Q as i,C as k,U as l,oe as m,fe as n,re as o,W as p,ue as r,ie as s,me as t,Y as u,L as v,j as w,P as x,I as y};
|
package/dist/stagger-DmFYysrJ.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=/(Z|[+-]\d{2}:?\d{2})$/i,t=/^\d{4}-\d{2}-\d{2}$/,n=/^\d{4}-\d{2}-\d{2}T/;function r(r){return e.test(r)?r:t.test(r)?`${r}T00:00:00Z`:n.test(r)?`${r}Z`:r}function i(e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>0)return Math.floor(e)}let n=Date.parse(r(t));return Number.isFinite(n)?n:null}function a(e){return e.trim().split(/\s+/).filter(Boolean)}function o(e){let t=a(e);if(t.length===5){let[e,n]=t;return e===`0`&&n.includes(`*`)}if(t.length===6){let[e,n,r]=t;return e===`0`&&n===`0`&&r.includes(`*`)}return!1}function s(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()?Number(e):NaN;if(Number.isFinite(t))return Math.max(0,Math.floor(t))}function c(e){return o(e)?3e5:void 0}function l(e){let t=s(e.staggerMs);if(t!==void 0)return t;let n=e.expr;return c(typeof n==`string`?n:``)??0}export{i,l as n,c as r,s as t};
|
|
1
|
+
const e=/(Z|[+-]\d{2}:?\d{2})$/i,t=/^\d{4}-\d{2}-\d{2}$/,n=/^\d{4}-\d{2}-\d{2}T/;function r(r){return e.test(r)?r:t.test(r)?`${r}T00:00:00Z`:n.test(r)?`${r}Z`:r}function i(e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>0)return Math.floor(e)}let n=Date.parse(r(t));return Number.isFinite(n)?n:null}function a(e){return e.trim().split(/\s+/).filter(Boolean)}function o(e){let t=a(e);if(t.length===5){let[e,n]=t;return e===`0`&&n.includes(`*`)}if(t.length===6){let[e,n,r]=t;return e===`0`&&n===`0`&&r.includes(`*`)}return!1}function s(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()?Number(e):NaN;if(Number.isFinite(t))return Math.max(0,Math.floor(t))}function c(e){return o(e)?3e5:void 0}function l(e){let t=s(e.staggerMs);if(t!==void 0)return t;let n=e.expr;return c(typeof n==`string`?n:``)??0}export{i,l as n,c as r,s as t};
|
package/dist/stagger-DxzgG2jd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=/(Z|[+-]\d{2}:?\d{2})$/i,t=/^\d{4}-\d{2}-\d{2}$/,n=/^\d{4}-\d{2}-\d{2}T/;function r(r){return e.test(r)?r:t.test(r)?`${r}T00:00:00Z`:n.test(r)?`${r}Z`:r}function i(e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>0)return Math.floor(e)}let n=Date.parse(r(t));return Number.isFinite(n)?n:null}function a(e){return e.trim().split(/\s+/).filter(Boolean)}function o(e){let t=a(e);if(t.length===5){let[e,n]=t;return e===`0`&&n.includes(`*`)}if(t.length===6){let[e,n,r]=t;return e===`0`&&n===`0`&&r.includes(`*`)}return!1}function s(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()?Number(e):NaN;if(Number.isFinite(t))return Math.max(0,Math.floor(t))}function c(e){return o(e)?3e5:void 0}function l(e){let t=s(e.staggerMs);if(t!==void 0)return t;let n=e.expr;return c(typeof n==`string`?n:``)??0}export{i,l as n,c as r,s as t};
|
|
1
|
+
const e=/(Z|[+-]\d{2}:?\d{2})$/i,t=/^\d{4}-\d{2}-\d{2}$/,n=/^\d{4}-\d{2}-\d{2}T/;function r(r){return e.test(r)?r:t.test(r)?`${r}T00:00:00Z`:n.test(r)?`${r}Z`:r}function i(e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>0)return Math.floor(e)}let n=Date.parse(r(t));return Number.isFinite(n)?n:null}function a(e){return e.trim().split(/\s+/).filter(Boolean)}function o(e){let t=a(e);if(t.length===5){let[e,n]=t;return e===`0`&&n.includes(`*`)}if(t.length===6){let[e,n,r]=t;return e===`0`&&n===`0`&&r.includes(`*`)}return!1}function s(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()?Number(e):NaN;if(Number.isFinite(t))return Math.max(0,Math.floor(t))}function c(e){return o(e)?3e5:void 0}function l(e){let t=s(e.staggerMs);if(t!==void 0)return t;let n=e.expr;return c(typeof n==`string`?n:``)??0}export{i,l as n,c as r,s as t};
|
package/dist/status-DKB9gdSp.js
CHANGED
|
@@ -5,4 +5,4 @@ import{u as e}from"./paths-B4IRk3wi.js";import{A as t,k as n,y as r}from"./subsy
|
|
|
5
5
|
`)})(),z=S?{url:v.url,token:w.auth.token,password:w.auth.password}:{};r.setLabel(`Querying gateway…`);let V=k?await B({config:o,method:`health`,timeoutMs:Math.min(8e3,n?.timeoutMs??1e4),...z}).catch(e=>({error:String(e)})):{error:O?.error??`gateway unreachable`},H=k?await B({config:o,method:`channels.status`,params:{probe:!1,timeoutMs:n?.timeoutMs??1e4},timeoutMs:Math.min(8e3,n?.timeoutMs??1e4),...z}).catch(()=>null):null,U=H?de(H):[];r.tick(),r.setLabel(`Checking local state…`);let W=await N().catch(()=>null),ce=await ge(process.env).catch(()=>null),K=e(o),ue=await y(K).catch(()=>null);r.tick();let fe=F.agents.find(e=>e.id===F.defaultId)?.workspaceDir??F.agents[0]?.workspaceDir??null,me=fe==null?null:(()=>{try{return le(fe,{config:o,eligibility:{remote:ie()}})}catch{return null}})(),J=o.gateway?.controlUi?.enabled??!0?se({port:K,bind:o.gateway?.bind,customBindHost:o.gateway?.customBindHost,basePath:o.gateway?.controlUi?.basePath}).httpUrl:null,_e=ke(h).replace(/^Update:\s*/i,``),ve=S?`fallback ${v.url}`:v.url,ye=k?`reachable ${re(O?.connectLatencyMs??0)}`:O?.error?`unreachable (${O.error})`:`unreachable`,we=k?` · auth ${De(D)}`:``,Te=A?.host||A?.ip||A?.version||A?.platform?[A.host?A.host:null,A.ip?`(${A.ip})`:null,A.version?`app ${A.version}`:null,A.platform?A.platform:null].filter(Boolean).join(` `):null,Y=F.agents.filter(e=>e.lastActiveAgeMs!=null&&e.lastActiveAgeMs<=6e5).length,Oe=await ut({progress:r,overviewRows:[{Item:`Version`,Value:c},{Item:`OS`,Value:s.label},{Item:`Node`,Value:process.versions.node},{Item:`Config`,Value:l?.path?.trim()?l.path.trim():`(unknown config path)`},J?{Item:`Dashboard`,Value:J}:{Item:`Dashboard`,Value:`disabled`},{Item:`Tailscale`,Value:u===`off`?`off${p.backendState?` · ${p.backendState}`:``}${p.dnsName?` · ${p.dnsName}`:``}`:p.dnsName&&m?`${u} · ${p.backendState??`unknown`} · ${p.dnsName} · ${m}`:`${u} · ${p.backendState??`unknown`} · magicdns unknown`},{Item:`Channel`,Value:g},..._?[{Item:`Git`,Value:_}]:[],{Item:`Update`,Value:_e},{Item:`Gateway`,Value:`${C}${S?` (remote.url missing)`:``} · ${ve} (${v.urlSource}) · ${ye}${we}`},...E.warning?[{Item:`Gateway auth warning`,Value:E.warning}]:[],{Item:`Security`,Value:`Run: ${L(`openclaw security audit --deep`)}`},Te?{Item:`Gateway self`,Value:Te}:{Item:`Gateway self`,Value:`unknown`},M?{Item:`Gateway service`,Value:M.installed?`${M.label} ${M.managedByOpenClaw?`installed · `:``}${M.loadedText}${M.runtime?.status?` · ${M.runtime.status}`:``}${M.runtime?.pid?` (pid ${M.runtime.pid})`:``}`:`${M.label} not installed`}:{Item:`Gateway service`,Value:`unknown`},P?{Item:`Node service`,Value:P.installed?`${P.label} ${P.managedByOpenClaw?`installed · `:``}${P.loadedText}${P.runtime?.status?` · ${P.runtime.status}`:``}${P.runtime?.pid?` (pid ${P.runtime.pid})`:``}`:`${P.label} not installed`}:{Item:`Node service`,Value:`unknown`},{Item:`Agents`,Value:`${F.agents.length} total · ${F.bootstrapPendingCount} bootstrapping · ${Y} active · ${F.totalSessions} sessions`}],channels:R,channelIssues:U.map(e=>({channel:e.channel,message:e.message})),agentStatus:F,connectionDetailsForReport:ee,diagnosis:{snap:l,remoteUrlMissing:S,sentinel:W,lastErr:ce,port:K,portUsage:ue,tailscaleMode:u,tailscale:p,tailscaleHttpsUrl:m,skillStatus:me,channelsStatus:H,channelIssues:U,gatewayReachable:k,health:V}});r.setLabel(`Rendering…`),t.log(Oe.join(`
|
|
6
6
|
`)),r.tick()})}const $=e=>`${(e/1e3).toFixed(e>=1e4?0:1)}k`,pt=e=>e==null||!Number.isFinite(e)?`unknown`:re(e,{decimals:1}),mt=e=>{let t=e.totalTokens,n=e.contextTokens,r=e.cacheRead,i=e.cacheWrite,a=``;if(t==null)a=n?`unknown/${$(n)} (?%)`:`unknown used`;else if(!n)a=`${$(t)} used`;else{let r=e.percentUsed==null?`?%`:`${e.percentUsed}%`;a=`${$(t)}/${$(n)} (${r})`}if(typeof r==`number`&&r>0){let e=typeof t==`number`?t:r+(typeof i==`number`?i:0),n=Math.round(r/e*100);a+=` · 🗄️ ${n}% cached`}return a},ht=e=>{if(!e)return null;let t=[],n=e.detail?.replace(/\s+/g,` `).trim()||``,r=e.missingUnit===!0&&n.toLowerCase().includes(`could not find service`);return n&&!r&&t.push(n),me({status:e.status,pid:e.pid,state:e.state,details:t})};async function gt(e){let t=await dt(e===`gateway`?pe():Ee(),e===`gateway`?`Daemon`:`Node`);return{label:t.label,installed:t.installed,managedByOpenClaw:t.managedByOpenClaw,externallyManaged:t.externallyManaged,loadedText:t.loadedText,runtimeShort:ht(t.runtime)}}async function _t(){return await gt(`gateway`)}async function vt(){return await gt(`node`)}async function yt(e){try{return await Ie.access(e),!0}catch{return!1}}async function bt(e=v()){let t=S(e),n=Date.now(),r=[];for(let i of t.agents){let t=i.id,a=(()=>{try{return P(e,t)}catch{return null}})(),o=a==null?null:Fe.join(a,`BOOTSTRAP.md`),c=o==null?null:await yt(o),l=z(e.session?.store,{agentId:t}),u=(()=>{try{return s(l)}catch{return{}}})(),d=Object.entries(u).filter(([e])=>e!==`global`&&e!==`unknown`).map(([,e])=>e),f=d.length,p=d.reduce((e,t)=>Math.max(e,t?.updatedAt??0),0),m=p>0?p:null,h=m?n-m:null;r.push({id:t,name:i.name,workspaceDir:a,bootstrapPending:c,sessionsPath:l,sessionsCount:f,lastUpdatedAt:m,lastActiveAgeMs:h})}let i=r.reduce((e,t)=>e+t.sessionsCount,0),a=r.reduce((e,t)=>e+(t.bootstrapPending?1:0),0);return{defaultId:t.defaultId,agents:r,totalSessions:i,bootstrapPendingCount:a}}function xt(e){return q({cfg:e,mode:e.gateway?.mode===`remote`?`remote`:`local`,env:process.env})}async function St(e){for(let t of ee()){let{defaultAccountId:n,account:r,enabled:i,configured:a}=await we(t,e),o=t.config.describeAccount?t.config.describeAccount(r,e):{accountId:n,enabled:i,configured:a},s=t.status?.buildChannelSummary?await t.status.buildChannelSummary({account:r,cfg:e,defaultAccountId:n,snapshot:o}):void 0,c=s&&typeof s.linked==`boolean`?s.linked:null;if(c!==null)return{linked:c,authAgeMs:s&&typeof s.authAgeMs==`number`?s.authAgeMs:null,account:r,accountId:n,plugin:t}}return null}const Ct=e=>{if(!e)return[];let t=[],n=e?.thinkingLevel;typeof n==`string`&&n.length>0&&t.push(`think:${n}`);let r=e?.verboseLevel;typeof r==`string`&&r.length>0&&t.push(`verbose:${r}`);let i=e?.reasoningLevel;typeof i==`string`&&i.length>0&&t.push(`reasoning:${i}`);let a=e?.elevatedLevel;typeof a==`string`&&a.length>0&&t.push(`elevated:${a}`),e?.systemSent&&t.push(`system`),e?.abortedLastRun&&t.push(`aborted`);let o=e?.sessionId;return typeof o==`string`&&o.length>0&&t.push(`id:${o}`),t};function wt(e){return{...e,sessions:{...e.sessions,paths:[],defaults:{model:null,contextTokens:null},recent:[],byAgent:e.sessions.byAgent.map(e=>({...e,path:`[redacted]`,recent:[]}))}}}async function Tt(e={}){let{includeSensitive:t=!0}=e,n=e.config??v(),r=await St(n),a=S(n),c=a.agents.map(e=>{let t=ve(n,e.id);return{agentId:e.id,enabled:t.enabled,every:t.every,everyMs:t.everyMs}}),u=await j(n,{colorize:!0,includeAllowFrom:!0,sourceConfig:e.sourceConfig}),d=w(i(n)),f=h({cfg:n,defaultProvider:_,defaultModel:m}),p=f.model??`claude-opus-4-6`,g=k({cfg:n,provider:f.provider??`anthropic`,model:p,contextTokensOverride:n.agents?.defaults?.contextTokens,fallbackContextTokens:2e5})??2e5,y=Date.now(),b=new Map,T=e=>{let t=b.get(e);if(t)return t;let n=s(e);return b.set(e,n),n},E=(e,t={})=>Object.entries(e).filter(([e])=>e!==`global`&&e!==`unknown`).map(([e,r])=>{let i=r?.updatedAt??null,a=i?y-i:null,s=C(n,r,t.agentIdOverride),c=s.model??p??null,l=k({cfg:n,provider:s.provider,model:c,contextTokensOverride:r?.contextTokens,fallbackContextTokens:g??void 0})??null,u=o(r),d=typeof r?.totalTokens==`number`?r?.totalTokensFresh!==!1:!1,f=l!=null&&u!==void 0?Math.max(0,l-u):null,m=l&&l>0&&u!==void 0?Math.min(999,Math.round(u/l*100)):null,h=F(e)?.agentId;return{agentId:t.agentIdOverride??h,key:e,kind:x(e,r),sessionId:r?.sessionId,updatedAt:i,age:a,thinkingLevel:r?.thinkingLevel,verboseLevel:r?.verboseLevel,reasoningLevel:r?.reasoningLevel,elevatedLevel:r?.elevatedLevel,systemSent:r?.systemSent,abortedLastRun:r?.abortedLastRun,inputTokens:r?.inputTokens,outputTokens:r?.outputTokens,cacheRead:r?.cacheRead,cacheWrite:r?.cacheWrite,totalTokens:u??null,totalTokensFresh:d,remainingTokens:f,percentUsed:m,model:c,contextTokens:l,flags:Ct(r)}}).sort((e,t)=>(t.updatedAt??0)-(e.updatedAt??0)),D=new Set,O=a.agents.map(e=>{let t=z(n.session?.store,{agentId:e.id});D.add(t);let r=E(T(t),{agentIdOverride:e.id});return{agentId:e.id,path:t,count:r.length,recent:r.slice(0,10)}}),A=Array.from(D).flatMap(e=>E(T(e))).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0)),M=A.slice(0,10),N=A.length,P={runtimeVersion:l(process.env),linkChannel:r?{id:r.plugin.id,label:r.plugin.meta.label??`Channel`,linked:r.linked,authAgeMs:r.authAgeMs}:void 0,heartbeat:{defaultAgentId:a.defaultId,agents:c},channelSummary:u,queuedSystemEvents:d,sessions:{paths:Array.from(D),count:N,defaults:{model:p??null,contextTokens:g??null},recent:M,byAgent:O}};return t?P:wt(P)}function Et(e){return e.then(e=>({ok:!0,value:e}),e=>({ok:!1,error:e}))}function Dt(e){if(!e.ok)throw e.error;return e.value}function Ot(e){if(e.plugins?.enabled===!1)return{enabled:!1,slot:null,reason:`plugins disabled`};let t=typeof e.plugins?.slots?.memory==`string`?e.plugins.slots.memory.trim():``;return t&&t.toLowerCase()===`none`?{enabled:!1,slot:null,reason:`plugins.slots.memory="none"`}:{enabled:!0,slot:t||`memory-core`}}async function kt(e){let t=ne({config:e.cfg}),n=e.cfg.gateway?.mode===`remote`,r=typeof e.cfg.gateway?.remote?.url==`string`?e.cfg.gateway.remote.url:``,i=n&&!r.trim(),a=n?`remote`:`local`,o=xt(e.cfg),s=o.warning,c=i?null:await he({url:t.url,auth:o.auth,timeoutMs:Math.min(e.opts.all?5e3:2500,e.opts.timeoutMs??1e4)}).catch(()=>null);return s&&c?.ok===!1&&(c.error=c.error?`${c.error}; ${s}`:s,s=void 0),{gatewayConnection:t,remoteUrlMissing:i,gatewayMode:a,gatewayProbeAuth:o.auth,gatewayProbeAuthWarning:s,gatewayProbe:c}}async function At(e){return e.gatewayReachable?await B({config:e.cfg,method:`channels.status`,params:{probe:!1,timeoutMs:Math.min(8e3,e.opts.timeoutMs??1e4)},timeoutMs:Math.min(e.opts.all?5e3:2500,e.opts.timeoutMs??1e4)}).catch(()=>null):null}async function jt(e){let{cfg:t,agentStatus:n,memoryPlugin:r}=e;if(!r.enabled||r.slot!==`memory-core`)return null;let i=n.defaultId??`main`,{manager:a}=await ce({cfg:t,agentId:i,purpose:`status`});if(!a)return null;try{await a.probeVectorAvailability()}catch{}let o=a.status();return await a.close?.().catch(()=>{}),{agentId:i,...o}}async function Mt(e){let t=await d(),{resolvedConfig:n,diagnostics:r}=await ae({config:t,commandName:`status --json`,targetIds:G(),mode:`summary`}),i=We(),a=n.gateway?.tailscale?.mode??`off`,o=Ae({timeoutMs:e.all?6500:2500,fetchGit:!0,includeRegistry:!0}),s=bt(n),c=Tt({config:n,sourceConfig:t}),l=a===`off`?Promise.resolve(null):u((e,t)=>te(e,t,{timeoutMs:1200,maxBuffer:2e5})).catch(()=>null),f=kt({cfg:n,opts:e}),[p,m,h,g,_]=await Promise.all([l,o,s,f,c]),v=a!==`off`&&p?`https://${p}${oe(n.gateway?.controlUi?.basePath)}`:null,{gatewayConnection:y,remoteUrlMissing:b,gatewayMode:x,gatewayProbeAuth:S,gatewayProbeAuthWarning:C,gatewayProbe:w}=g,T=w?.ok===!0,E=w?.presence?Re(w.presence):null,D=At({cfg:n,gatewayReachable:T,opts:e}),O=Ot(n),k=jt({cfg:n,agentStatus:h,memoryPlugin:O}),[A,j]=await Promise.all([D,k]);return{cfg:n,sourceConfig:t,secretDiagnostics:r,osSummary:i,tailscaleMode:a,tailscaleDns:p,tailscaleHttpsUrl:v,update:m,gatewayConnection:y,remoteUrlMissing:b,gatewayMode:x,gatewayProbeAuth:S,gatewayProbeAuthWarning:C,gatewayProbe:w,gatewayReachable:T,gatewaySelf:E,channelIssues:A?de(A):[],agentStatus:h,channels:{rows:[],details:[]},summary:_,memory:j,memoryPlugin:O}}async function Nt(e,t){return e.json?await Mt({timeoutMs:e.timeoutMs,all:e.all}):await K({label:`Scanning status…`,total:10,enabled:!0},async t=>{t.setLabel(`Loading config…`);let n=await d(),{resolvedConfig:r,diagnostics:i}=await ae({config:n,commandName:`status`,targetIds:G(),mode:`summary`}),a=We(),o=r.gateway?.tailscale?.mode??`off`,s=o===`off`?Promise.resolve(null):u((e,t)=>te(e,t,{timeoutMs:1200,maxBuffer:2e5})).catch(()=>null),c=Et(Ae({timeoutMs:e.all?6500:2500,fetchGit:!0,includeRegistry:!0})),l=Et(bt(r)),f=Et(Tt({config:r,sourceConfig:n}));t.tick(),t.setLabel(`Checking Tailscale…`);let p=await s,m=o!==`off`&&p?`https://${p}${oe(r.gateway?.controlUi?.basePath)}`:null;t.tick(),t.setLabel(`Checking for updates…`);let h=Dt(await c);t.tick(),t.setLabel(`Resolving agents…`);let g=Dt(await l);t.tick(),t.setLabel(`Probing gateway…`);let{gatewayConnection:_,remoteUrlMissing:v,gatewayMode:y,gatewayProbeAuth:b,gatewayProbeAuthWarning:x,gatewayProbe:S}=await kt({cfg:r,opts:e}),C=S?.ok===!0,w=S?.presence?Re(S.presence):null;t.tick(),t.setLabel(`Querying channel status…`);let T=await At({cfg:r,gatewayReachable:C,opts:e}),E=T?de(T):[];t.tick(),t.setLabel(`Summarizing channels…`);let D=await tt(r,{showSecrets:process.env.CLAWDBOT_SHOW_SECRETS?.trim()!==`0`,sourceConfig:n});t.tick(),t.setLabel(`Checking memory…`);let O=Ot(r),k=await jt({cfg:r,agentStatus:g,memoryPlugin:O});t.tick(),t.setLabel(`Reading sessions…`);let A=Dt(await f);return t.tick(),t.setLabel(`Rendering…`),t.tick(),{cfg:r,sourceConfig:n,secretDiagnostics:i,osSummary:a,tailscaleMode:o,tailscaleDns:p,tailscaleHttpsUrl:m,update:h,gatewayConnection:_,remoteUrlMissing:v,gatewayMode:y,gatewayProbeAuth:b,gatewayProbeAuthWarning:x,gatewayProbe:S,gatewayReachable:C,gatewaySelf:w,channelIssues:E,agentStatus:g,channels:D,summary:A,memory:k,memoryPlugin:O}})}function Pt(e){let t=e=>{let t=e.trim();return!t||!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(t)?null:t},n=[e.error,e.closeReason].filter(e=>typeof e==`string`&&e.trim().length>0).join(` `);if(!n||!/pairing required/i.test(n))return null;let r=n.match(/requestId:\s*([^\s)]+)/i);return{requestId:(r&&r[1]?t(r[1]):null)||null}}async function Ft(n,i){if(n.all&&!n.json){await ft(i,{timeoutMs:n.timeoutMs});return}let a=await Nt({json:n.json,timeoutMs:n.timeoutMs,all:n.all},i),o=n.json?await Te({config:a.cfg,sourceConfig:a.sourceConfig,deep:!1,includeFilesystem:!0,includeChannelSecurity:!0}):await K({label:`Running security audit…`,indeterminate:!0,enabled:!0},async()=>await Te({config:a.cfg,sourceConfig:a.sourceConfig,deep:!1,includeFilesystem:!0,includeChannelSecurity:!0})),{cfg:s,osSummary:c,tailscaleMode:l,tailscaleDns:u,tailscaleHttpsUrl:d,update:f,gatewayConnection:p,remoteUrlMissing:m,gatewayMode:h,gatewayProbeAuth:g,gatewayProbeAuthWarning:_,gatewayProbe:v,gatewayReachable:y,gatewaySelf:b,channelIssues:x,agentStatus:S,channels:C,summary:w,secretDiagnostics:T,memory:E,memoryPlugin:O}=a,k=n.usage?await K({label:`Fetching usage snapshot…`,indeterminate:!0,enabled:n.json!==!0},async()=>await D({timeoutMs:n.timeoutMs})):void 0,j=n.deep?await K({label:`Checking gateway health…`,indeterminate:!0,enabled:n.json!==!0},async()=>await B({method:`health`,params:{probe:!0},timeoutMs:n.timeoutMs,config:a.cfg})):void 0,M=n.deep&&y?await B({method:`last-heartbeat`,params:{},timeoutMs:n.timeoutMs,config:a.cfg}).catch(()=>null):null,N=xe({configChannel:Se(s.update?.channel),installKind:f.installKind,gitTag:f.git?.tag??null,gitBranch:f.git?.branch??null});if(n.json){let[e,t]=await Promise.all([_t(),vt()]);i.log(JSON.stringify({...w,os:c,update:f,updateChannel:N.channel,updateChannelSource:N.source,memory:E,memoryPlugin:O,gateway:{mode:h,url:p.url,urlSource:p.urlSource,misconfigured:m,reachable:y,connectLatencyMs:v?.connectLatencyMs??null,self:b,error:v?.error??null,authWarning:_??null},gatewayService:e,nodeService:t,agents:S,securityAudit:o,secretDiagnostics:T,...j||k||M?{health:j,usage:k,lastHeartbeat:M}:{}},null,2));return}let P=e=>t.muted(e),F=e=>t.success(e),I=e=>t.warn(e);if(n.verbose){let e=ne({config:a.cfg});i.log(r(`Gateway connection:`));for(let t of e.message.split(`
|
|
7
7
|
`))i.log(` ${t}`);i.log(``)}let R=_e();if(T.length>0){i.log(t.warn(`Secret diagnostics:`));for(let e of T)i.log(`- ${e}`);i.log(``)}let ee=s.gateway?.controlUi?.enabled??!0?se({port:e(s),bind:s.gateway?.bind,customBindHost:s.gateway?.customBindHost,basePath:s.gateway?.controlUi?.basePath}).httpUrl:`disabled`,te=(()=>{let e=m?`fallback ${p.url}`:`${p.url}${p.urlSource?` (${p.urlSource})`:``}`,t=m?I(`misconfigured (remote.url missing)`):y?F(`reachable ${pt(v?.connectLatencyMs)}`):I(v?.error?`unreachable (${v.error})`:`unreachable`),n=y&&!m?` · auth ${De(g)}`:``,r=b?.host||b?.version||b?.platform?[b?.host?b.host:null,b?.ip?`(${b.ip})`:null,b?.version?`app ${b.version}`:null,b?.platform?b.platform:null].filter(Boolean).join(` `):null;return`${h} · ${e} · ${t}${n}${r?` · ${r}`:``}`})(),z=Pt({error:v?.error??null,closeReason:v?.close?.reason??null}),V=(()=>{let e=S.bootstrapPendingCount>0?`${S.bootstrapPendingCount} bootstrap file${S.bootstrapPendingCount===1?``:`s`} present`:`no bootstrap files`,t=S.agents.find(e=>e.id===S.defaultId),n=t?.lastActiveAgeMs==null?`unknown`:W(t.lastActiveAgeMs),r=t?` · default ${t.id} active ${n}`:``;return`${S.agents.length} · ${e} · sessions ${S.totalSessions}${r}`})(),[H,U]=await Promise.all([_t(),vt()]),re=(()=>{if(H.installed===!1)return`${H.label} not installed`;let e=H.managedByOpenClaw?`installed · `:``;return`${H.label} ${e}${H.loadedText}${H.runtimeShort?` · ${H.runtimeShort}`:``}`})(),ie=(()=>{if(U.installed===!1)return`${U.label} not installed`;let e=U.managedByOpenClaw?`installed · `:``;return`${U.label} ${e}${U.loadedText}${U.runtimeShort?` · ${U.runtimeShort}`:``}`})(),G=w.sessions.defaults,ae=G.contextTokens?` (${$(G.contextTokens)} ctx)`:``,oe=w.queuedSystemEvents.length>0?`${w.queuedSystemEvents.length} queued`:`none`,ce=j?F(`enabled`):P(`skipped (use --deep)`),le=(()=>{let e=w.heartbeat.agents.map(e=>!e.enabled||!e.everyMs?`disabled (${e.agentId})`:`${e.every} (${e.agentId})`).filter(Boolean);return e.length>0?e.join(`, `):`disabled`})(),ue=(()=>{if(!n.deep)return null;if(!y)return I(`unavailable`);if(!M)return P(`none`);let e=W(Date.now()-M.ts),t=M.channel??`unknown`,r=M.accountId?`account ${M.accountId}`:null;return[M.status,`${e} ago`,t,r].filter(Boolean).join(` · `)})(),de=w.sessions.paths.length>1?`${w.sessions.paths.length} stores`:w.sessions.paths[0]??`unknown`,fe=(()=>{if(!O.enabled)return P(`disabled${O.reason?` (${O.reason})`:``}`);if(!E){let e=O.slot?`plugin ${O.slot}`:`plugin`;return O.slot&&O.slot!==`memory-core`?`enabled (${e})`:P(`enabled (${e}) · unavailable`)}let e=[],t=E.dirty?` · ${I(`dirty`)}`:``;e.push(`${E.files} files · ${E.chunks} chunks${t}`),E.sources?.length&&e.push(`sources ${E.sources.join(`, `)}`),O.slot&&e.push(`plugin ${O.slot}`);let n=(e,t)=>e===`ok`?F(t):e===`warn`?I(t):P(t),r=E.vector;if(r){let t=ze(r),i=t.state===`disabled`?`vector off`:`vector ${t.state}`;e.push(n(t.tone,i))}let i=E.fts;if(i){let t=Be(i),r=t.state===`disabled`?`fts off`:`fts ${t.state}`;e.push(n(t.tone,r))}let a=E.cache;if(a){let t=Ve(a);e.push(n(t.tone,t.text))}return e.join(` · `)})(),pe=Oe(f),me=ke(f).replace(/^Update:\s*/i,``),he=N.label,q=be(f),ge=[{Item:`Dashboard`,Value:ee},{Item:`OS`,Value:`${c.label} · node ${process.versions.node}`},{Item:`Tailscale`,Value:l===`off`?P(`off`):u&&d?`${l} · ${u} · ${d}`:I(`${l} · magicdns unknown`)},{Item:`Channel`,Value:he},...q?[{Item:`Git`,Value:q}]:[],{Item:`Update`,Value:pe.available?I(`available · ${me}`):me},{Item:`Gateway`,Value:te},..._?[{Item:`Gateway auth warning`,Value:I(_)}]:[],{Item:`Gateway service`,Value:re},{Item:`Node service`,Value:ie},{Item:`Agents`,Value:V},{Item:`Memory`,Value:fe},{Item:`Probes`,Value:ce},{Item:`Events`,Value:oe},{Item:`Heartbeat`,Value:le},...ue?[{Item:`Last heartbeat`,Value:ue}]:[],{Item:`Sessions`,Value:`${w.sessions.count} active · default ${G.model??`unknown`}${ae} · ${de}`}];i.log(t.heading(`OpenClaw status`)),i.log(``),i.log(t.heading(`Overview`)),i.log(J({width:R,columns:[{key:`Item`,header:`Item`,minWidth:12},{key:`Value`,header:`Value`,flex:!0,minWidth:32}],rows:ge}).trimEnd()),z&&(i.log(``),i.log(t.warn(`Gateway pairing approval required.`)),z.requestId&&i.log(t.muted(`Recovery: ${L(`openclaw devices approve ${z.requestId}`)}`)),i.log(t.muted(`Fallback: ${L(`openclaw devices approve --latest`)}`)),i.log(t.muted(`Inspect: ${L(`openclaw devices list`)}`))),i.log(``),i.log(t.heading(`Security audit`)),i.log(t.muted(`Summary: ${(e=>[t.error(`${e.critical} critical`),t.warn(`${e.warn} warn`),t.muted(`${e.info} info`)].join(` · `))(o.summary)}`));let ve=o.findings.filter(e=>e.severity===`critical`||e.severity===`warn`);if(ve.length===0)i.log(t.muted(`No critical or warn findings detected.`));else{let e=e=>e===`critical`?t.error(`CRITICAL`):e===`warn`?t.warn(`WARN`):t.muted(`INFO`),n=e=>e===`critical`?0:e===`warn`?1:2,r=[...ve].toSorted((e,t)=>n(e.severity)-n(t.severity)),a=r.slice(0,6);for(let n of a)i.log(` ${e(n.severity)} ${n.title}`),i.log(` ${Me(n.detail.replaceAll(`
|
|
8
|
-
`,` `),160)}`),n.remediation?.trim()&&i.log(` ${t.muted(`Fix: ${n.remediation.trim()}`)}`);r.length>a.length&&i.log(t.muted(`… +${r.length-a.length} more`))}i.log(t.muted(`Full report: ${L(`openclaw security audit`)}`)),i.log(t.muted(`Deep probe: ${L(`openclaw security audit --deep`)}`)),i.log(``),i.log(t.heading(`Channels`));let Ce=ct(x);if(i.log(J({width:R,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Enabled`,header:`Enabled`,minWidth:7},{key:`State`,header:`State`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:24}],rows:C.rows.map(e=>{let n=Ce.get(e.id)??[],r=e.state===`off`?`off`:n.length>0?`warn`:e.state,i=n.length>0?` · ${I(`gateway: ${Me(n[0]?.message??`issue`,84)}`)}`:``;return{Channel:e.label,Enabled:e.enabled?F(`ON`):P(`OFF`),State:r===`ok`?F(`OK`):r===`warn`?I(`WARN`):r===`off`?P(`OFF`):t.accentDim(`SETUP`),Detail:`${e.detail}${i}`}})}).trimEnd()),i.log(``),i.log(t.heading(`Sessions`)),i.log(J({width:R,columns:[{key:`Key`,header:`Key`,minWidth:20,flex:!0},{key:`Kind`,header:`Kind`,minWidth:6},{key:`Age`,header:`Age`,minWidth:9},{key:`Model`,header:`Model`,minWidth:14},{key:`Tokens`,header:`Tokens`,minWidth:16}],rows:w.sessions.recent.length>0?w.sessions.recent.map(e=>({Key:Me(e.key,32),Kind:e.kind,Age:e.updatedAt?W(e.age):`no activity`,Model:e.model??`unknown`,Tokens:mt(e)})):[{Key:P(`no sessions yet`),Kind:``,Age:``,Model:``,Tokens:``}]}).trimEnd()),w.queuedSystemEvents.length>0&&(i.log(``),i.log(t.heading(`System events`)),i.log(J({width:R,columns:[{key:`Event`,header:`Event`,flex:!0,minWidth:24}],rows:w.queuedSystemEvents.slice(0,5).map(e=>({Event:e}))}).trimEnd()),w.queuedSystemEvents.length>5&&i.log(P(`… +${w.queuedSystemEvents.length-5} more`))),j){i.log(``),i.log(t.heading(`Health`));let e=[];e.push({Item:`Gateway`,Status:F(`reachable`),Detail:`${j.durationMs}ms`});for(let t of ye(j,{accountMode:`all`})){let n=t.indexOf(`:`);if(n===-1)continue;let r=t.slice(0,n).trim(),i=t.slice(n+1).trim(),a=i.toLowerCase(),o=a.startsWith(`ok`)?F(`OK`):a.startsWith(`failed`)?I(`WARN`):a.startsWith(`not configured`)?P(`OFF`):a.startsWith(`configured`)?F(`OK`):a.startsWith(`linked`)?F(`LINKED`):a.startsWith(`not linked`)?I(`UNLINKED`):I(`WARN`);e.push({Item:r,Status:o,Detail:i})}i.log(J({width:R,columns:[{key:`Item`,header:`Item`,minWidth:10},{key:`Status`,header:`Status`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:28}],rows:e}).trimEnd())}if(k){i.log(``),i.log(t.heading(`Usage`));for(let e of A(k))i.log(e)}i.log(``),i.log(`FAQ: https://docs.openclaw.ai/faq`),i.log(`Troubleshooting: https://docs.openclaw.ai/troubleshooting`),i.log(``);let we=je(f);we&&(i.log(t.warn(we)),i.log(``)),i.log(`Next steps:`),i.log(` Need to share? ${L(`openclaw status --all`)}`),i.log(` Need to debug live? ${L(`openclaw logs --follow`)}`),y?i.log(` Need to test channels? ${L(`openclaw status --deep`)}`):i.log(` Fix reachability first: ${L(`openclaw gateway probe`)}`)}export{Tt as n,Re as r,Ft as t};
|
|
8
|
+
`,` `),160)}`),n.remediation?.trim()&&i.log(` ${t.muted(`Fix: ${n.remediation.trim()}`)}`);r.length>a.length&&i.log(t.muted(`… +${r.length-a.length} more`))}i.log(t.muted(`Full report: ${L(`openclaw security audit`)}`)),i.log(t.muted(`Deep probe: ${L(`openclaw security audit --deep`)}`)),i.log(``),i.log(t.heading(`Channels`));let Ce=ct(x);if(i.log(J({width:R,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Enabled`,header:`Enabled`,minWidth:7},{key:`State`,header:`State`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:24}],rows:C.rows.map(e=>{let n=Ce.get(e.id)??[],r=e.state===`off`?`off`:n.length>0?`warn`:e.state,i=n.length>0?` · ${I(`gateway: ${Me(n[0]?.message??`issue`,84)}`)}`:``;return{Channel:e.label,Enabled:e.enabled?F(`ON`):P(`OFF`),State:r===`ok`?F(`OK`):r===`warn`?I(`WARN`):r===`off`?P(`OFF`):t.accentDim(`SETUP`),Detail:`${e.detail}${i}`}})}).trimEnd()),i.log(``),i.log(t.heading(`Sessions`)),i.log(J({width:R,columns:[{key:`Key`,header:`Key`,minWidth:20,flex:!0},{key:`Kind`,header:`Kind`,minWidth:6},{key:`Age`,header:`Age`,minWidth:9},{key:`Model`,header:`Model`,minWidth:14},{key:`Tokens`,header:`Tokens`,minWidth:16}],rows:w.sessions.recent.length>0?w.sessions.recent.map(e=>({Key:Me(e.key,32),Kind:e.kind,Age:e.updatedAt?W(e.age):`no activity`,Model:e.model??`unknown`,Tokens:mt(e)})):[{Key:P(`no sessions yet`),Kind:``,Age:``,Model:``,Tokens:``}]}).trimEnd()),w.queuedSystemEvents.length>0&&(i.log(``),i.log(t.heading(`System events`)),i.log(J({width:R,columns:[{key:`Event`,header:`Event`,flex:!0,minWidth:24}],rows:w.queuedSystemEvents.slice(0,5).map(e=>({Event:e}))}).trimEnd()),w.queuedSystemEvents.length>5&&i.log(P(`… +${w.queuedSystemEvents.length-5} more`))),j){i.log(``),i.log(t.heading(`Health`));let e=[];e.push({Item:`Gateway`,Status:F(`reachable`),Detail:`${j.durationMs}ms`});for(let t of ye(j,{accountMode:`all`})){let n=t.indexOf(`:`);if(n===-1)continue;let r=t.slice(0,n).trim(),i=t.slice(n+1).trim(),a=i.toLowerCase(),o=a.startsWith(`ok`)?F(`OK`):a.startsWith(`failed`)?I(`WARN`):a.startsWith(`not configured`)?P(`OFF`):a.startsWith(`configured`)?F(`OK`):a.startsWith(`linked`)?F(`LINKED`):a.startsWith(`not linked`)?I(`UNLINKED`):I(`WARN`);e.push({Item:r,Status:o,Detail:i})}i.log(J({width:R,columns:[{key:`Item`,header:`Item`,minWidth:10},{key:`Status`,header:`Status`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:28}],rows:e}).trimEnd())}if(k){i.log(``),i.log(t.heading(`Usage`));for(let e of A(k))i.log(e)}i.log(``),i.log(`FAQ: https://docs.openclaw.ai/faq`),i.log(`Troubleshooting: https://docs.openclaw.ai/troubleshooting`),i.log(``);let we=je(f);we&&(i.log(t.warn(we)),i.log(``)),i.log(`Next steps:`),i.log(` Need to share? ${L(`openclaw status --all`)}`),i.log(` Need to debug live? ${L(`openclaw logs --follow`)}`),y?i.log(` Need to test channels? ${L(`openclaw status --deep`)}`):i.log(` Fix reachability first: ${L(`openclaw gateway probe`)}`)}export{Tt as n,Re as r,Ft as t};
|
package/dist/status-DgRrUxyg.js
CHANGED
|
@@ -5,4 +5,4 @@ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{A as t,k as n,y as r}f
|
|
|
5
5
|
`)})(),R=C?{url:v.url,token:E.auth.token,password:E.auth.password}:{};n.setLabel(`Querying gateway…`);let z=M?await B({config:a,method:`health`,timeoutMs:Math.min(8e3,t?.timeoutMs??1e4),...R}).catch(e=>({error:String(e)})):{error:j?.error??`gateway unreachable`},V=M?await B({config:a,method:`channels.status`,params:{probe:!1,timeoutMs:t?.timeoutMs??1e4},timeoutMs:Math.min(8e3,t?.timeoutMs??1e4),...R}).catch(()=>null):null,H=V?de(V):[];n.tick(),n.setLabel(`Checking local state…`);let U=await ee().catch(()=>null),W=await _e(process.env).catch(()=>null),K=i(a),q=await s(K).catch(()=>null);n.tick();let ue=L.agents.find(e=>e.id===L.defaultId)?.workspaceDir??L.agents[0]?.workspaceDir??null,fe=ue==null?null:(()=>{try{return le(ue,{config:a,eligibility:{remote:ie()}})}catch{return null}})(),me=a.gateway?.controlUi?.enabled??!0?ce({port:K,bind:a.gateway?.bind,customBindHost:a.gateway?.customBindHost,basePath:a.gateway?.controlUi?.basePath}).httpUrl:null,J=Ae(h).replace(/^Update:\s*/i,``),ve=C?`fallback ${v.url}`:v.url,ye=M?`reachable ${G(j?.connectLatencyMs??0)}`:j?.error?`unreachable (${j.error})`:`unreachable`,be=M?` · auth ${Oe(A)}`:``,Te=N?.host||N?.ip||N?.version||N?.platform?[N.host?N.host:null,N.ip?`(${N.ip})`:null,N.version?`app ${N.version}`:null,N.platform?N.platform:null].filter(Boolean).join(` `):null,Ee=L.agents.filter(e=>e.lastActiveAgeMs!=null&&e.lastActiveAgeMs<=6e5).length,Y=await dt({progress:n,overviewRows:[{Item:`Version`,Value:w},{Item:`OS`,Value:c.label},{Item:`Node`,Value:process.versions.node},{Item:`Config`,Value:u?.path?.trim()?u.path.trim():`(unknown config path)`},me?{Item:`Dashboard`,Value:me}:{Item:`Dashboard`,Value:`disabled`},{Item:`Tailscale`,Value:d===`off`?`off${f.backendState?` · ${f.backendState}`:``}${f.dnsName?` · ${f.dnsName}`:``}`:f.dnsName&&m?`${d} · ${f.backendState??`unknown`} · ${f.dnsName} · ${m}`:`${d} · ${f.backendState??`unknown`} · magicdns unknown`},{Item:`Channel`,Value:g},..._?[{Item:`Git`,Value:_}]:[],{Item:`Update`,Value:J},{Item:`Gateway`,Value:`${T}${C?` (remote.url missing)`:``} · ${ve} (${v.urlSource}) · ${ye}${be}`},...k.warning?[{Item:`Gateway auth warning`,Value:k.warning}]:[],{Item:`Security`,Value:`Run: ${y(`openclaw security audit --deep`)}`},Te?{Item:`Gateway self`,Value:Te}:{Item:`Gateway self`,Value:`unknown`},F?{Item:`Gateway service`,Value:F.installed?`${F.label} ${F.managedByOpenClaw?`installed · `:``}${F.loadedText}${F.runtime?.status?` · ${F.runtime.status}`:``}${F.runtime?.pid?` (pid ${F.runtime.pid})`:``}`:`${F.label} not installed`}:{Item:`Gateway service`,Value:`unknown`},I?{Item:`Node service`,Value:I.installed?`${I.label} ${I.managedByOpenClaw?`installed · `:``}${I.loadedText}${I.runtime?.status?` · ${I.runtime.status}`:``}${I.runtime?.pid?` (pid ${I.runtime.pid})`:``}`:`${I.label} not installed`}:{Item:`Node service`,Value:`unknown`},{Item:`Agents`,Value:`${L.agents.length} total · ${L.bootstrapPendingCount} bootstrapping · ${Ee} active · ${L.totalSessions} sessions`}],channels:te,channelIssues:H.map(e=>({channel:e.channel,message:e.message})),agentStatus:L,connectionDetailsForReport:ne,diagnosis:{snap:u,remoteUrlMissing:C,sentinel:U,lastErr:W,port:K,portUsage:q,tailscaleMode:d,tailscale:f,tailscaleHttpsUrl:m,skillStatus:fe,channelsStatus:V,channelIssues:H,gatewayReachable:M,health:z}});n.setLabel(`Rendering…`),e.log(Y.join(`
|
|
6
6
|
`)),n.tick()})}const $=e=>`${(e/1e3).toFixed(e>=1e4?0:1)}k`,mt=e=>e==null||!Number.isFinite(e)?`unknown`:G(e,{decimals:1}),ht=e=>{let t=e.totalTokens,n=e.contextTokens,r=e.cacheRead,i=e.cacheWrite,a=``;if(t==null)a=n?`unknown/${$(n)} (?%)`:`unknown used`;else if(!n)a=`${$(t)} used`;else{let r=e.percentUsed==null?`?%`:`${e.percentUsed}%`;a=`${$(t)}/${$(n)} (${r})`}if(typeof r==`number`&&r>0){let e=typeof t==`number`?t:r+(typeof i==`number`?i:0),n=Math.round(r/e*100);a+=` · 🗄️ ${n}% cached`}return a},gt=e=>{if(!e)return null;let t=[],n=e.detail?.replace(/\s+/g,` `).trim()||``,r=e.missingUnit===!0&&n.toLowerCase().includes(`could not find service`);return n&&!r&&t.push(n),me({status:e.status,pid:e.pid,state:e.state,details:t})};async function _t(e){let t=await ft(e===`gateway`?pe():De(),e===`gateway`?`Daemon`:`Node`);return{label:t.label,installed:t.installed,managedByOpenClaw:t.managedByOpenClaw,externallyManaged:t.externallyManaged,loadedText:t.loadedText,runtimeShort:gt(t.runtime)}}async function vt(){return await _t(`gateway`)}async function yt(){return await _t(`node`)}async function bt(e){try{return await Re.access(e),!0}catch{return!1}}async function xt(e=g()){let t=z(e),n=Date.now(),r=[];for(let i of t.agents){let t=i.id,a=(()=>{try{return b(e,t)}catch{return null}})(),o=a==null?null:Ie.join(a,`BOOTSTRAP.md`),s=o==null?null:await bt(o),c=L(e.session?.store,{agentId:t}),l=(()=>{try{return _(c)}catch{return{}}})(),u=Object.entries(l).filter(([e])=>e!==`global`&&e!==`unknown`).map(([,e])=>e),d=u.length,f=u.reduce((e,t)=>Math.max(e,t?.updatedAt??0),0),p=f>0?f:null,m=p?n-p:null;r.push({id:t,name:i.name,workspaceDir:a,bootstrapPending:s,sessionsPath:c,sessionsCount:d,lastUpdatedAt:p,lastActiveAgeMs:m})}let i=r.reduce((e,t)=>e+t.sessionsCount,0),a=r.reduce((e,t)=>e+(t.bootstrapPending?1:0),0);return{defaultId:t.defaultId,agents:r,totalSessions:i,bootstrapPendingCount:a}}function St(e){return ge({cfg:e,mode:e.gateway?.mode===`remote`?`remote`:`local`,env:process.env})}async function Ct(e){for(let t of E()){let{defaultAccountId:n,account:r,enabled:i,configured:a}=await Te(t,e),o=t.config.describeAccount?t.config.describeAccount(r,e):{accountId:n,enabled:i,configured:a},s=t.status?.buildChannelSummary?await t.status.buildChannelSummary({account:r,cfg:e,defaultAccountId:n,snapshot:o}):void 0,c=s&&typeof s.linked==`boolean`?s.linked:null;if(c!==null)return{linked:c,authAgeMs:s&&typeof s.authAgeMs==`number`?s.authAgeMs:null,account:r,accountId:n,plugin:t}}return null}const wt=e=>{if(!e)return[];let t=[],n=e?.thinkingLevel;typeof n==`string`&&n.length>0&&t.push(`think:${n}`);let r=e?.verboseLevel;typeof r==`string`&&r.length>0&&t.push(`verbose:${r}`);let i=e?.reasoningLevel;typeof i==`string`&&i.length>0&&t.push(`reasoning:${i}`);let a=e?.elevatedLevel;typeof a==`string`&&a.length>0&&t.push(`elevated:${a}`),e?.systemSent&&t.push(`system`),e?.abortedLastRun&&t.push(`aborted`);let o=e?.sessionId;return typeof o==`string`&&o.length>0&&t.push(`id:${o}`),t};function Tt(e){return{...e,sessions:{...e.sessions,paths:[],defaults:{model:null,contextTokens:null},recent:[],byAgent:e.sessions.byAgent.map(e=>({...e,path:`[redacted]`,recent:[]}))}}}async function Et(e={}){let{includeSensitive:t=!0}=e,n=e.config??g(),r=await Ct(n),i=z(n),o=i.agents.map(e=>{let t=ye(n,e.id);return{agentId:e.id,enabled:t.enabled,every:t.every,everyMs:t.everyMs}}),s=await A(n,{colorize:!0,includeAllowFrom:!0,sourceConfig:e.sourceConfig}),l=O(c(n)),u=f({cfg:n,defaultProvider:h,defaultModel:m}),d=u.model??`claude-opus-4-6`,p=te({cfg:n,provider:u.provider??`anthropic`,model:d,contextTokensOverride:n.agents?.defaults?.contextTokens,fallbackContextTokens:2e5})??2e5,v=Date.now(),y=new Map,b=e=>{let t=y.get(e);if(t)return t;let n=_(e);return y.set(e,n),n},S=(e,t={})=>Object.entries(e).filter(([e])=>e!==`global`&&e!==`unknown`).map(([e,r])=>{let i=r?.updatedAt??null,o=i?v-i:null,s=ne(n,r,t.agentIdOverride),c=s.model??d??null,l=te({cfg:n,provider:s.provider,model:c,contextTokensOverride:r?.contextTokens,fallbackContextTokens:p??void 0})??null,u=a(r),f=typeof r?.totalTokens==`number`?r?.totalTokensFresh!==!1:!1,m=l!=null&&u!==void 0?Math.max(0,l-u):null,h=l&&l>0&&u!==void 0?Math.min(999,Math.round(u/l*100)):null,g=x(e)?.agentId;return{agentId:t.agentIdOverride??g,key:e,kind:R(e,r),sessionId:r?.sessionId,updatedAt:i,age:o,thinkingLevel:r?.thinkingLevel,verboseLevel:r?.verboseLevel,reasoningLevel:r?.reasoningLevel,elevatedLevel:r?.elevatedLevel,systemSent:r?.systemSent,abortedLastRun:r?.abortedLastRun,inputTokens:r?.inputTokens,outputTokens:r?.outputTokens,cacheRead:r?.cacheRead,cacheWrite:r?.cacheWrite,totalTokens:u??null,totalTokensFresh:f,remainingTokens:m,percentUsed:h,model:c,contextTokens:l,flags:wt(r)}}).sort((e,t)=>(t.updatedAt??0)-(e.updatedAt??0)),w=new Set,T=i.agents.map(e=>{let t=L(n.session?.store,{agentId:e.id});w.add(t);let r=S(b(t),{agentIdOverride:e.id});return{agentId:e.id,path:t,count:r.length,recent:r.slice(0,10)}}),E=Array.from(w).flatMap(e=>S(b(e))).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0)),D=E.slice(0,10),k=E.length,j={runtimeVersion:C(process.env),linkChannel:r?{id:r.plugin.id,label:r.plugin.meta.label??`Channel`,linked:r.linked,authAgeMs:r.authAgeMs}:void 0,heartbeat:{defaultAgentId:i.defaultId,agents:o},channelSummary:s,queuedSystemEvents:l,sessions:{paths:Array.from(w),count:k,defaults:{model:d??null,contextTokens:p??null},recent:D,byAgent:T}};return t?j:Tt(j)}function Dt(e){return e.then(e=>({ok:!0,value:e}),e=>({ok:!1,error:e}))}function Ot(e){if(!e.ok)throw e.error;return e.value}function kt(e){if(e.plugins?.enabled===!1)return{enabled:!1,slot:null,reason:`plugins disabled`};let t=typeof e.plugins?.slots?.memory==`string`?e.plugins.slots.memory.trim():``;return t&&t.toLowerCase()===`none`?{enabled:!1,slot:null,reason:`plugins.slots.memory="none"`}:{enabled:!0,slot:t||`memory-core`}}async function At(e){let t=re({config:e.cfg}),n=e.cfg.gateway?.mode===`remote`,r=typeof e.cfg.gateway?.remote?.url==`string`?e.cfg.gateway.remote.url:``,i=n&&!r.trim(),a=n?`remote`:`local`,o=St(e.cfg),s=o.warning,c=i?null:await he({url:t.url,auth:o.auth,timeoutMs:Math.min(e.opts.all?5e3:2500,e.opts.timeoutMs??1e4)}).catch(()=>null);return s&&c?.ok===!1&&(c.error=c.error?`${c.error}; ${s}`:s,s=void 0),{gatewayConnection:t,remoteUrlMissing:i,gatewayMode:a,gatewayProbeAuth:o.auth,gatewayProbeAuthWarning:s,gatewayProbe:c}}async function jt(e){return e.gatewayReachable?await B({config:e.cfg,method:`channels.status`,params:{probe:!1,timeoutMs:Math.min(8e3,e.opts.timeoutMs??1e4)},timeoutMs:Math.min(e.opts.all?5e3:2500,e.opts.timeoutMs??1e4)}).catch(()=>null):null}async function Mt(e){let{cfg:t,agentStatus:n,memoryPlugin:r}=e;if(!r.enabled||r.slot!==`memory-core`)return null;let i=n.defaultId??`main`,{manager:a}=await K({cfg:t,agentId:i,purpose:`status`});if(!a)return null;try{await a.probeVectorAvailability()}catch{}let o=a.status();return await a.close?.().catch(()=>{}),{agentId:i,...o}}async function Nt(e){let t=await l(),{resolvedConfig:n,diagnostics:r}=await oe({config:t,commandName:`status --json`,targetIds:ae(),mode:`summary`}),i=Ge(),a=n.gateway?.tailscale?.mode??`off`,o=je({timeoutMs:e.all?6500:2500,fetchGit:!0,includeRegistry:!0}),s=xt(n),c=Et({config:n,sourceConfig:t}),u=a===`off`?Promise.resolve(null):v((e,t)=>D(e,t,{timeoutMs:1200,maxBuffer:2e5})).catch(()=>null),d=At({cfg:n,opts:e}),[f,p,m,h,g]=await Promise.all([u,o,s,d,c]),_=a!==`off`&&f?`https://${f}${se(n.gateway?.controlUi?.basePath)}`:null,{gatewayConnection:y,remoteUrlMissing:b,gatewayMode:x,gatewayProbeAuth:S,gatewayProbeAuthWarning:C,gatewayProbe:w}=h,T=w?.ok===!0,E=w?.presence?ze(w.presence):null,O=jt({cfg:n,gatewayReachable:T,opts:e}),k=kt(n),A=Mt({cfg:n,agentStatus:m,memoryPlugin:k}),[j,M]=await Promise.all([O,A]);return{cfg:n,sourceConfig:t,secretDiagnostics:r,osSummary:i,tailscaleMode:a,tailscaleDns:f,tailscaleHttpsUrl:_,update:p,gatewayConnection:y,remoteUrlMissing:b,gatewayMode:x,gatewayProbeAuth:S,gatewayProbeAuthWarning:C,gatewayProbe:w,gatewayReachable:T,gatewaySelf:E,channelIssues:j?de(j):[],agentStatus:m,channels:{rows:[],details:[]},summary:g,memory:M,memoryPlugin:k}}async function Pt(e,t){return e.json?await Nt({timeoutMs:e.timeoutMs,all:e.all}):await q({label:`Scanning status…`,total:10,enabled:!0},async t=>{t.setLabel(`Loading config…`);let n=await l(),{resolvedConfig:r,diagnostics:i}=await oe({config:n,commandName:`status`,targetIds:ae(),mode:`summary`}),a=Ge(),o=r.gateway?.tailscale?.mode??`off`,s=o===`off`?Promise.resolve(null):v((e,t)=>D(e,t,{timeoutMs:1200,maxBuffer:2e5})).catch(()=>null),c=Dt(je({timeoutMs:e.all?6500:2500,fetchGit:!0,includeRegistry:!0})),u=Dt(xt(r)),d=Dt(Et({config:r,sourceConfig:n}));t.tick(),t.setLabel(`Checking Tailscale…`);let f=await s,p=o!==`off`&&f?`https://${f}${se(r.gateway?.controlUi?.basePath)}`:null;t.tick(),t.setLabel(`Checking for updates…`);let m=Ot(await c);t.tick(),t.setLabel(`Resolving agents…`);let h=Ot(await u);t.tick(),t.setLabel(`Probing gateway…`);let{gatewayConnection:g,remoteUrlMissing:_,gatewayMode:y,gatewayProbeAuth:b,gatewayProbeAuthWarning:x,gatewayProbe:S}=await At({cfg:r,opts:e}),C=S?.ok===!0,w=S?.presence?ze(S.presence):null;t.tick(),t.setLabel(`Querying channel status…`);let T=await jt({cfg:r,gatewayReachable:C,opts:e}),E=T?de(T):[];t.tick(),t.setLabel(`Summarizing channels…`);let O=await nt(r,{showSecrets:process.env.CLAWDBOT_SHOW_SECRETS?.trim()!==`0`,sourceConfig:n});t.tick(),t.setLabel(`Checking memory…`);let k=kt(r),A=await Mt({cfg:r,agentStatus:h,memoryPlugin:k});t.tick(),t.setLabel(`Reading sessions…`);let j=Ot(await d);return t.tick(),t.setLabel(`Rendering…`),t.tick(),{cfg:r,sourceConfig:n,secretDiagnostics:i,osSummary:a,tailscaleMode:o,tailscaleDns:f,tailscaleHttpsUrl:p,update:m,gatewayConnection:g,remoteUrlMissing:_,gatewayMode:y,gatewayProbeAuth:b,gatewayProbeAuthWarning:x,gatewayProbe:S,gatewayReachable:C,gatewaySelf:w,channelIssues:E,agentStatus:h,channels:O,summary:j,memory:A,memoryPlugin:k}})}function Ft(e){let t=e=>{let t=e.trim();return!t||!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(t)?null:t},n=[e.error,e.closeReason].filter(e=>typeof e==`string`&&e.trim().length>0).join(` `);if(!n||!/pairing required/i.test(n))return null;let r=n.match(/requestId:\s*([^\s)]+)/i);return{requestId:(r&&r[1]?t(r[1]):null)||null}}async function It(e,n){if(e.all&&!e.json){await pt(n,{timeoutMs:e.timeoutMs});return}let a=await Pt({json:e.json,timeoutMs:e.timeoutMs,all:e.all},n),o=e.json?await Ee({config:a.cfg,sourceConfig:a.sourceConfig,deep:!1,includeFilesystem:!0,includeChannelSecurity:!0}):await q({label:`Running security audit…`,indeterminate:!0,enabled:!0},async()=>await Ee({config:a.cfg,sourceConfig:a.sourceConfig,deep:!1,includeFilesystem:!0,includeChannelSecurity:!0})),{cfg:s,osSummary:c,tailscaleMode:l,tailscaleDns:u,tailscaleHttpsUrl:d,update:f,gatewayConnection:p,remoteUrlMissing:m,gatewayMode:h,gatewayProbeAuth:g,gatewayProbeAuthWarning:_,gatewayProbe:v,gatewayReachable:b,gatewaySelf:x,channelIssues:S,agentStatus:C,channels:w,summary:T,secretDiagnostics:E,memory:D,memoryPlugin:O}=a,k=e.usage?await q({label:`Fetching usage snapshot…`,indeterminate:!0,enabled:e.json!==!0},async()=>await M({timeoutMs:e.timeoutMs})):void 0,A=e.deep?await q({label:`Checking gateway health…`,indeterminate:!0,enabled:e.json!==!0},async()=>await B({method:`health`,params:{probe:!0},timeoutMs:e.timeoutMs,config:a.cfg})):void 0,j=e.deep&&b?await B({method:`last-heartbeat`,params:{},timeoutMs:e.timeoutMs,config:a.cfg}).catch(()=>null):null,ee=Se({configChannel:Ce(s.update?.channel),installKind:f.installKind,gitTag:f.git?.tag??null,gitBranch:f.git?.branch??null});if(e.json){let[e,t]=await Promise.all([vt(),yt()]);n.log(JSON.stringify({...T,os:c,update:f,updateChannel:ee.channel,updateChannelSource:ee.source,memory:D,memoryPlugin:O,gateway:{mode:h,url:p.url,urlSource:p.urlSource,misconfigured:m,reachable:b,connectLatencyMs:v?.connectLatencyMs??null,self:x,error:v?.error??null,authWarning:_??null},gatewayService:e,nodeService:t,agents:C,securityAudit:o,secretDiagnostics:E,...A||k||j?{health:A,usage:k,lastHeartbeat:j}:{}},null,2));return}let P=e=>t.muted(e),F=e=>t.success(e),I=e=>t.warn(e);if(e.verbose){let e=re({config:a.cfg});n.log(r(`Gateway connection:`));for(let t of e.message.split(`
|
|
7
7
|
`))n.log(` ${t}`);n.log(``)}let L=ve();if(E.length>0){n.log(t.warn(`Secret diagnostics:`));for(let e of E)n.log(`- ${e}`);n.log(``)}let te=s.gateway?.controlUi?.enabled??!0?ce({port:i(s),bind:s.gateway?.bind,customBindHost:s.gateway?.customBindHost,basePath:s.gateway?.controlUi?.basePath}).httpUrl:`disabled`,ne=(()=>{let e=m?`fallback ${p.url}`:`${p.url}${p.urlSource?` (${p.urlSource})`:``}`,t=m?I(`misconfigured (remote.url missing)`):b?F(`reachable ${mt(v?.connectLatencyMs)}`):I(v?.error?`unreachable (${v.error})`:`unreachable`),n=b&&!m?` · auth ${Oe(g)}`:``,r=x?.host||x?.version||x?.platform?[x?.host?x.host:null,x?.ip?`(${x.ip})`:null,x?.version?`app ${x.version}`:null,x?.platform?x.platform:null].filter(Boolean).join(` `):null;return`${h} · ${e} · ${t}${n}${r?` · ${r}`:``}`})(),R=Ft({error:v?.error??null,closeReason:v?.close?.reason??null}),z=(()=>{let e=C.bootstrapPendingCount>0?`${C.bootstrapPendingCount} bootstrap file${C.bootstrapPendingCount===1?``:`s`} present`:`no bootstrap files`,t=C.agents.find(e=>e.id===C.defaultId),n=t?.lastActiveAgeMs==null?`unknown`:W(t.lastActiveAgeMs),r=t?` · default ${t.id} active ${n}`:``;return`${C.agents.length} · ${e} · sessions ${C.totalSessions}${r}`})(),[V,H]=await Promise.all([vt(),yt()]),U=(()=>{if(V.installed===!1)return`${V.label} not installed`;let e=V.managedByOpenClaw?`installed · `:``;return`${V.label} ${e}${V.loadedText}${V.runtimeShort?` · ${V.runtimeShort}`:``}`})(),ie=(()=>{if(H.installed===!1)return`${H.label} not installed`;let e=H.managedByOpenClaw?`installed · `:``;return`${H.label} ${e}${H.loadedText}${H.runtimeShort?` · ${H.runtimeShort}`:``}`})(),G=T.sessions.defaults,ae=G.contextTokens?` (${$(G.contextTokens)} ctx)`:``,oe=T.queuedSystemEvents.length>0?`${T.queuedSystemEvents.length} queued`:`none`,se=A?F(`enabled`):P(`skipped (use --deep)`),K=(()=>{let e=T.heartbeat.agents.map(e=>!e.enabled||!e.everyMs?`disabled (${e.agentId})`:`${e.every} (${e.agentId})`).filter(Boolean);return e.length>0?e.join(`, `):`disabled`})(),le=(()=>{if(!e.deep)return null;if(!b)return I(`unavailable`);if(!j)return P(`none`);let t=W(Date.now()-j.ts),n=j.channel??`unknown`,r=j.accountId?`account ${j.accountId}`:null;return[j.status,`${t} ago`,n,r].filter(Boolean).join(` · `)})(),ue=T.sessions.paths.length>1?`${T.sessions.paths.length} stores`:T.sessions.paths[0]??`unknown`,de=(()=>{if(!O.enabled)return P(`disabled${O.reason?` (${O.reason})`:``}`);if(!D){let e=O.slot?`plugin ${O.slot}`:`plugin`;return O.slot&&O.slot!==`memory-core`?`enabled (${e})`:P(`enabled (${e}) · unavailable`)}let e=[],t=D.dirty?` · ${I(`dirty`)}`:``;e.push(`${D.files} files · ${D.chunks} chunks${t}`),D.sources?.length&&e.push(`sources ${D.sources.join(`, `)}`),O.slot&&e.push(`plugin ${O.slot}`);let n=(e,t)=>e===`ok`?F(t):e===`warn`?I(t):P(t),r=D.vector;if(r){let t=Be(r),i=t.state===`disabled`?`vector off`:`vector ${t.state}`;e.push(n(t.tone,i))}let i=D.fts;if(i){let t=Ve(i),r=t.state===`disabled`?`fts off`:`fts ${t.state}`;e.push(n(t.tone,r))}let a=D.cache;if(a){let t=He(a);e.push(n(t.tone,t.text))}return e.join(` · `)})(),fe=ke(f),pe=Ae(f).replace(/^Update:\s*/i,``),me=ee.label,he=xe(f),ge=[{Item:`Dashboard`,Value:te},{Item:`OS`,Value:`${c.label} · node ${process.versions.node}`},{Item:`Tailscale`,Value:l===`off`?P(`off`):u&&d?`${l} · ${u} · ${d}`:I(`${l} · magicdns unknown`)},{Item:`Channel`,Value:me},...he?[{Item:`Git`,Value:he}]:[],{Item:`Update`,Value:fe.available?I(`available · ${pe}`):pe},{Item:`Gateway`,Value:ne},..._?[{Item:`Gateway auth warning`,Value:I(_)}]:[],{Item:`Gateway service`,Value:U},{Item:`Node service`,Value:ie},{Item:`Agents`,Value:z},{Item:`Memory`,Value:de},{Item:`Probes`,Value:se},{Item:`Events`,Value:oe},{Item:`Heartbeat`,Value:K},...le?[{Item:`Last heartbeat`,Value:le}]:[],{Item:`Sessions`,Value:`${T.sessions.count} active · default ${G.model??`unknown`}${ae} · ${ue}`}];n.log(t.heading(`OpenClaw status`)),n.log(``),n.log(t.heading(`Overview`)),n.log(J({width:L,columns:[{key:`Item`,header:`Item`,minWidth:12},{key:`Value`,header:`Value`,flex:!0,minWidth:32}],rows:ge}).trimEnd()),R&&(n.log(``),n.log(t.warn(`Gateway pairing approval required.`)),R.requestId&&n.log(t.muted(`Recovery: ${y(`openclaw devices approve ${R.requestId}`)}`)),n.log(t.muted(`Fallback: ${y(`openclaw devices approve --latest`)}`)),n.log(t.muted(`Inspect: ${y(`openclaw devices list`)}`))),n.log(``),n.log(t.heading(`Security audit`)),n.log(t.muted(`Summary: ${(e=>[t.error(`${e.critical} critical`),t.warn(`${e.warn} warn`),t.muted(`${e.info} info`)].join(` · `))(o.summary)}`));let _e=o.findings.filter(e=>e.severity===`critical`||e.severity===`warn`);if(_e.length===0)n.log(t.muted(`No critical or warn findings detected.`));else{let e=e=>e===`critical`?t.error(`CRITICAL`):e===`warn`?t.warn(`WARN`):t.muted(`INFO`),r=e=>e===`critical`?0:e===`warn`?1:2,i=[..._e].toSorted((e,t)=>r(e.severity)-r(t.severity)),a=i.slice(0,6);for(let r of a)n.log(` ${e(r.severity)} ${r.title}`),n.log(` ${Ne(r.detail.replaceAll(`
|
|
8
|
-
`,` `),160)}`),r.remediation?.trim()&&n.log(` ${t.muted(`Fix: ${r.remediation.trim()}`)}`);i.length>a.length&&n.log(t.muted(`… +${i.length-a.length} more`))}n.log(t.muted(`Full report: ${y(`openclaw security audit`)}`)),n.log(t.muted(`Deep probe: ${y(`openclaw security audit --deep`)}`)),n.log(``),n.log(t.heading(`Channels`));let ye=lt(S);if(n.log(J({width:L,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Enabled`,header:`Enabled`,minWidth:7},{key:`State`,header:`State`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:24}],rows:w.rows.map(e=>{let n=ye.get(e.id)??[],r=e.state===`off`?`off`:n.length>0?`warn`:e.state,i=n.length>0?` · ${I(`gateway: ${Ne(n[0]?.message??`issue`,84)}`)}`:``;return{Channel:e.label,Enabled:e.enabled?F(`ON`):P(`OFF`),State:r===`ok`?F(`OK`):r===`warn`?I(`WARN`):r===`off`?P(`OFF`):t.accentDim(`SETUP`),Detail:`${e.detail}${i}`}})}).trimEnd()),n.log(``),n.log(t.heading(`Sessions`)),n.log(J({width:L,columns:[{key:`Key`,header:`Key`,minWidth:20,flex:!0},{key:`Kind`,header:`Kind`,minWidth:6},{key:`Age`,header:`Age`,minWidth:9},{key:`Model`,header:`Model`,minWidth:14},{key:`Tokens`,header:`Tokens`,minWidth:16}],rows:T.sessions.recent.length>0?T.sessions.recent.map(e=>({Key:Ne(e.key,32),Kind:e.kind,Age:e.updatedAt?W(e.age):`no activity`,Model:e.model??`unknown`,Tokens:ht(e)})):[{Key:P(`no sessions yet`),Kind:``,Age:``,Model:``,Tokens:``}]}).trimEnd()),T.queuedSystemEvents.length>0&&(n.log(``),n.log(t.heading(`System events`)),n.log(J({width:L,columns:[{key:`Event`,header:`Event`,flex:!0,minWidth:24}],rows:T.queuedSystemEvents.slice(0,5).map(e=>({Event:e}))}).trimEnd()),T.queuedSystemEvents.length>5&&n.log(P(`… +${T.queuedSystemEvents.length-5} more`))),A){n.log(``),n.log(t.heading(`Health`));let e=[];e.push({Item:`Gateway`,Status:F(`reachable`),Detail:`${A.durationMs}ms`});for(let t of be(A,{accountMode:`all`})){let n=t.indexOf(`:`);if(n===-1)continue;let r=t.slice(0,n).trim(),i=t.slice(n+1).trim(),a=i.toLowerCase(),o=a.startsWith(`ok`)?F(`OK`):a.startsWith(`failed`)?I(`WARN`):a.startsWith(`not configured`)?P(`OFF`):a.startsWith(`configured`)?F(`OK`):a.startsWith(`linked`)?F(`LINKED`):a.startsWith(`not linked`)?I(`UNLINKED`):I(`WARN`);e.push({Item:r,Status:o,Detail:i})}n.log(J({width:L,columns:[{key:`Item`,header:`Item`,minWidth:10},{key:`Status`,header:`Status`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:28}],rows:e}).trimEnd())}if(k){n.log(``),n.log(t.heading(`Usage`));for(let e of N(k))n.log(e)}n.log(``),n.log(`FAQ: https://docs.openclaw.ai/faq`),n.log(`Troubleshooting: https://docs.openclaw.ai/troubleshooting`),n.log(``);let we=Me(f);we&&(n.log(t.warn(we)),n.log(``)),n.log(`Next steps:`),n.log(` Need to share? ${y(`openclaw status --all`)}`),n.log(` Need to debug live? ${y(`openclaw logs --follow`)}`),b?n.log(` Need to test channels? ${y(`openclaw status --deep`)}`):n.log(` Fix reachability first: ${y(`openclaw gateway probe`)}`)}var Lt=e({statusCommand:()=>It});export{ze as i,It as n,Et as r,Lt as t};
|
|
8
|
+
`,` `),160)}`),r.remediation?.trim()&&n.log(` ${t.muted(`Fix: ${r.remediation.trim()}`)}`);i.length>a.length&&n.log(t.muted(`… +${i.length-a.length} more`))}n.log(t.muted(`Full report: ${y(`openclaw security audit`)}`)),n.log(t.muted(`Deep probe: ${y(`openclaw security audit --deep`)}`)),n.log(``),n.log(t.heading(`Channels`));let ye=lt(S);if(n.log(J({width:L,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Enabled`,header:`Enabled`,minWidth:7},{key:`State`,header:`State`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:24}],rows:w.rows.map(e=>{let n=ye.get(e.id)??[],r=e.state===`off`?`off`:n.length>0?`warn`:e.state,i=n.length>0?` · ${I(`gateway: ${Ne(n[0]?.message??`issue`,84)}`)}`:``;return{Channel:e.label,Enabled:e.enabled?F(`ON`):P(`OFF`),State:r===`ok`?F(`OK`):r===`warn`?I(`WARN`):r===`off`?P(`OFF`):t.accentDim(`SETUP`),Detail:`${e.detail}${i}`}})}).trimEnd()),n.log(``),n.log(t.heading(`Sessions`)),n.log(J({width:L,columns:[{key:`Key`,header:`Key`,minWidth:20,flex:!0},{key:`Kind`,header:`Kind`,minWidth:6},{key:`Age`,header:`Age`,minWidth:9},{key:`Model`,header:`Model`,minWidth:14},{key:`Tokens`,header:`Tokens`,minWidth:16}],rows:T.sessions.recent.length>0?T.sessions.recent.map(e=>({Key:Ne(e.key,32),Kind:e.kind,Age:e.updatedAt?W(e.age):`no activity`,Model:e.model??`unknown`,Tokens:ht(e)})):[{Key:P(`no sessions yet`),Kind:``,Age:``,Model:``,Tokens:``}]}).trimEnd()),T.queuedSystemEvents.length>0&&(n.log(``),n.log(t.heading(`System events`)),n.log(J({width:L,columns:[{key:`Event`,header:`Event`,flex:!0,minWidth:24}],rows:T.queuedSystemEvents.slice(0,5).map(e=>({Event:e}))}).trimEnd()),T.queuedSystemEvents.length>5&&n.log(P(`… +${T.queuedSystemEvents.length-5} more`))),A){n.log(``),n.log(t.heading(`Health`));let e=[];e.push({Item:`Gateway`,Status:F(`reachable`),Detail:`${A.durationMs}ms`});for(let t of be(A,{accountMode:`all`})){let n=t.indexOf(`:`);if(n===-1)continue;let r=t.slice(0,n).trim(),i=t.slice(n+1).trim(),a=i.toLowerCase(),o=a.startsWith(`ok`)?F(`OK`):a.startsWith(`failed`)?I(`WARN`):a.startsWith(`not configured`)?P(`OFF`):a.startsWith(`configured`)?F(`OK`):a.startsWith(`linked`)?F(`LINKED`):a.startsWith(`not linked`)?I(`UNLINKED`):I(`WARN`);e.push({Item:r,Status:o,Detail:i})}n.log(J({width:L,columns:[{key:`Item`,header:`Item`,minWidth:10},{key:`Status`,header:`Status`,minWidth:8},{key:`Detail`,header:`Detail`,flex:!0,minWidth:28}],rows:e}).trimEnd())}if(k){n.log(``),n.log(t.heading(`Usage`));for(let e of N(k))n.log(e)}n.log(``),n.log(`FAQ: https://docs.openclaw.ai/faq`),n.log(`Troubleshooting: https://docs.openclaw.ai/troubleshooting`),n.log(``);let we=Me(f);we&&(n.log(t.warn(we)),n.log(``)),n.log(`Next steps:`),n.log(` Need to share? ${y(`openclaw status --all`)}`),n.log(` Need to debug live? ${y(`openclaw logs --follow`)}`),b?n.log(` Need to test channels? ${y(`openclaw status --deep`)}`):n.log(` Fix reachability first: ${y(`openclaw gateway probe`)}`)}var Lt=e({statusCommand:()=>It});export{ze as i,It as n,Et as r,Lt as t};
|
package/dist/status-YZD9V9xi.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,t}from"./read-only-account-inspect-DEnPVHTo.js";async function n(t){if(t.plugin.status?.buildAccountSnapshot)return await t.plugin.status.buildAccountSnapshot({account:t.account,cfg:t.cfg,runtime:t.runtime,probe:t.probe,audit:t.audit});let n=t.plugin.config.isEnabled?t.plugin.config.isEnabled(t.account,t.cfg):t.account&&typeof t.account==`object`?t.account.enabled:void 0,r=t.account&&typeof t.account==`object`&&`configured`in t.account?t.account.configured:t.plugin.config.isConfigured?await t.plugin.config.isConfigured(t.account,t.cfg):void 0;return{accountId:t.accountId,enabled:n,configured:r,...e(t.account)}}async function r(e){let r=e.plugin.config.inspectAccount?.(e.cfg,e.accountId)??t({channelId:e.plugin.id,cfg:e.cfg,accountId:e.accountId});return r?await n({...e,account:r}):null}async function i(e){let r=e.plugin.config.inspectAccount?.(e.cfg,e.accountId)??t({channelId:e.plugin.id,cfg:e.cfg,accountId:e.accountId})??e.plugin.config.resolveAccount(e.cfg,e.accountId);return await n({...e,account:r})}export{r as n,i as t};
|
|
1
|
+
import{i as e,t}from"./read-only-account-inspect-DEnPVHTo.js";async function n(t){if(t.plugin.status?.buildAccountSnapshot)return await t.plugin.status.buildAccountSnapshot({account:t.account,cfg:t.cfg,runtime:t.runtime,probe:t.probe,audit:t.audit});let n=t.plugin.config.isEnabled?t.plugin.config.isEnabled(t.account,t.cfg):t.account&&typeof t.account==`object`?t.account.enabled:void 0,r=t.account&&typeof t.account==`object`&&`configured`in t.account?t.account.configured:t.plugin.config.isConfigured?await t.plugin.config.isConfigured(t.account,t.cfg):void 0;return{accountId:t.accountId,enabled:n,configured:r,...e(t.account)}}async function r(e){let r=e.plugin.config.inspectAccount?.(e.cfg,e.accountId)??t({channelId:e.plugin.id,cfg:e.cfg,accountId:e.accountId});return r?await n({...e,account:r}):null}async function i(e){let r=e.plugin.config.inspectAccount?.(e.cfg,e.accountId)??t({channelId:e.plugin.id,cfg:e.cfg,accountId:e.accountId})??e.plugin.config.resolveAccount(e.cfg,e.accountId);return await n({...e,account:r})}export{r as n,i as t};
|
package/dist/status-isxcm8Xz.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as e,x as t}from"./pi-tools.policy-CeSKHaKa.js";async function n(e){if(e.plugin.status?.buildAccountSnapshot)return await e.plugin.status.buildAccountSnapshot({account:e.account,cfg:e.cfg,runtime:e.runtime,probe:e.probe,audit:e.audit});let n=e.plugin.config.isEnabled?e.plugin.config.isEnabled(e.account,e.cfg):e.account&&typeof e.account==`object`?e.account.enabled:void 0,r=e.account&&typeof e.account==`object`&&`configured`in e.account?e.account.configured:e.plugin.config.isConfigured?await e.plugin.config.isConfigured(e.account,e.cfg):void 0;return{accountId:e.accountId,enabled:n,configured:r,...t(e.account)}}async function r(t){let r=t.plugin.config.inspectAccount?.(t.cfg,t.accountId)??e({channelId:t.plugin.id,cfg:t.cfg,accountId:t.accountId});return r?await n({...t,account:r}):null}async function i(t){let r=t.plugin.config.inspectAccount?.(t.cfg,t.accountId)??e({channelId:t.plugin.id,cfg:t.cfg,accountId:t.accountId})??t.plugin.config.resolveAccount(t.cfg,t.accountId);return await n({...t,account:r})}export{r as n,i as t};
|
|
1
|
+
import{v as e,x as t}from"./pi-tools.policy-CeSKHaKa.js";async function n(e){if(e.plugin.status?.buildAccountSnapshot)return await e.plugin.status.buildAccountSnapshot({account:e.account,cfg:e.cfg,runtime:e.runtime,probe:e.probe,audit:e.audit});let n=e.plugin.config.isEnabled?e.plugin.config.isEnabled(e.account,e.cfg):e.account&&typeof e.account==`object`?e.account.enabled:void 0,r=e.account&&typeof e.account==`object`&&`configured`in e.account?e.account.configured:e.plugin.config.isConfigured?await e.plugin.config.isConfigured(e.account,e.cfg):void 0;return{accountId:e.accountId,enabled:n,configured:r,...t(e.account)}}async function r(t){let r=t.plugin.config.inspectAccount?.(t.cfg,t.accountId)??e({channelId:t.plugin.id,cfg:t.cfg,accountId:t.accountId});return r?await n({...t,account:r}):null}async function i(t){let r=t.plugin.config.inspectAccount?.(t.cfg,t.accountId)??e({channelId:t.plugin.id,cfg:t.cfg,accountId:t.accountId})??t.plugin.config.resolveAccount(t.cfg,t.accountId);return await n({...t,account:r})}export{r as n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./command-format-CLxIPuLR.js";import{t}from"./openclaw-root-CnsBf6ZU.js";import{t as n}from"./version-q3SkUw2K.js";import{n as r,r as i}from"./channel-account-context-DAcarnqW.js";async function a(e){return await r({root:await t({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()}),timeoutMs:e.timeoutMs,fetchGit:e.fetchGit,includeRegistry:e.includeRegistry})}function o(e){let t=e.registry?.latestVersion??null,r=t?i(n,t):null,a=r!=null&&r<0,o=e.installKind===`git`&&typeof e.git?.behind==`number`?e.git.behind:null,s=o!=null&&o>0;return{available:s||a,hasGitUpdate:s,hasRegistryUpdate:a,latestVersion:a?t:null,gitBehind:o}}function s(t){let n=o(t);if(!n.available)return null;let r=[];return n.hasGitUpdate&&n.gitBehind!=null&&r.push(`git behind ${n.gitBehind}`),n.hasRegistryUpdate&&n.latestVersion&&r.push(`npm ${n.latestVersion}`),`Update available${r.length>0?` (${r.join(` · `)})`:``}. Run: ${e(`openclaw update`)}`}function c(e){let t=[],r=()=>{if(e.registry?.latestVersion){let r=i(n,e.registry.latestVersion);r===0?t.push(`npm latest ${e.registry.latestVersion}`):r!=null&&r<0?t.push(`npm update ${e.registry.latestVersion}`):t.push(`npm latest ${e.registry.latestVersion} (local newer)`);return}e.registry?.error&&t.push(`npm latest unknown`)};if(e.installKind===`git`&&e.git){let n=e.git.branch?`git ${e.git.branch}`:`git`;t.push(n),e.git.upstream&&t.push(`↔ ${e.git.upstream}`),e.git.dirty===!0&&t.push(`dirty`),e.git.behind!=null&&e.git.ahead!=null&&(e.git.behind===0&&e.git.ahead===0?t.push(`up to date`):e.git.behind>0&&e.git.ahead===0?t.push(`behind ${e.git.behind}`):e.git.behind===0&&e.git.ahead>0?t.push(`ahead ${e.git.ahead}`):e.git.behind>0&&e.git.ahead>0&&t.push(`diverged (ahead ${e.git.ahead}, behind ${e.git.behind})`)),e.git.fetchOk===!1&&t.push(`fetch failed`),r()}else t.push(e.packageManager===`unknown`?`pkg`:e.packageManager),r();return e.deps&&(e.deps.status===`ok`&&t.push(`deps ok`),e.deps.status===`missing`&&t.push(`deps missing`),e.deps.status===`stale`&&t.push(`deps stale`)),`Update: ${t.join(` · `)}`}export{o as i,c as n,a as r,s as t};
|
|
1
|
+
import{t as e}from"./command-format-CLxIPuLR.js";import{t}from"./openclaw-root-CnsBf6ZU.js";import{t as n}from"./version-q3SkUw2K.js";import{n as r,r as i}from"./channel-account-context-DAcarnqW.js";async function a(e){return await r({root:await t({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()}),timeoutMs:e.timeoutMs,fetchGit:e.fetchGit,includeRegistry:e.includeRegistry})}function o(e){let t=e.registry?.latestVersion??null,r=t?i(n,t):null,a=r!=null&&r<0,o=e.installKind===`git`&&typeof e.git?.behind==`number`?e.git.behind:null,s=o!=null&&o>0;return{available:s||a,hasGitUpdate:s,hasRegistryUpdate:a,latestVersion:a?t:null,gitBehind:o}}function s(t){let n=o(t);if(!n.available)return null;let r=[];return n.hasGitUpdate&&n.gitBehind!=null&&r.push(`git behind ${n.gitBehind}`),n.hasRegistryUpdate&&n.latestVersion&&r.push(`npm ${n.latestVersion}`),`Update available${r.length>0?` (${r.join(` · `)})`:``}. Run: ${e(`openclaw update`)}`}function c(e){let t=[],r=()=>{if(e.registry?.latestVersion){let r=i(n,e.registry.latestVersion);r===0?t.push(`npm latest ${e.registry.latestVersion}`):r!=null&&r<0?t.push(`npm update ${e.registry.latestVersion}`):t.push(`npm latest ${e.registry.latestVersion} (local newer)`);return}e.registry?.error&&t.push(`npm latest unknown`)};if(e.installKind===`git`&&e.git){let n=e.git.branch?`git ${e.git.branch}`:`git`;t.push(n),e.git.upstream&&t.push(`↔ ${e.git.upstream}`),e.git.dirty===!0&&t.push(`dirty`),e.git.behind!=null&&e.git.ahead!=null&&(e.git.behind===0&&e.git.ahead===0?t.push(`up to date`):e.git.behind>0&&e.git.ahead===0?t.push(`behind ${e.git.behind}`):e.git.behind===0&&e.git.ahead>0?t.push(`ahead ${e.git.ahead}`):e.git.behind>0&&e.git.ahead>0&&t.push(`diverged (ahead ${e.git.ahead}, behind ${e.git.behind})`)),e.git.fetchOk===!1&&t.push(`fetch failed`),r()}else t.push(e.packageManager===`unknown`?`pkg`:e.packageManager),r();return e.deps&&(e.deps.status===`ok`&&t.push(`deps ok`),e.deps.status===`missing`&&t.push(`deps missing`),e.deps.status===`stale`&&t.push(`deps stale`)),`Update: ${t.join(` · `)}`}export{o as i,c as n,a as r,s as t};
|