@bitseek/claw 1.1.0-beta.2 → 1.2.1
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/{accounts-B3zSNWIv.js → accounts-2NNZ6Hbp.js} +1 -1
- package/dist/{accounts-CX1yOBOk.js → accounts-BTexwKe8.js} +1 -1
- package/dist/{accounts-DZqwa5NK.js → accounts-CFz9Jc5d.js} +1 -1
- package/dist/{accounts-BQHz8_1_.js → accounts-Cv5CUnT4.js} +7 -7
- package/dist/{accounts-DTfEeXyO.js → accounts-NHpMJ0aq.js} +1 -1
- package/dist/{accounts-CaiECgq3.js → accounts-ubG6irXZ.js} +16 -16
- package/dist/{acp-cli-DYu2k7v9.js → acp-cli-B0u6no4K.js} +8 -8
- package/dist/{active-listener-neKWQsOO.js → active-listener-Hd9sOu9T.js} +1 -1
- package/dist/{agent-scope-CTbRzU1C.js → agent-scope-C6hps0r3.js} +4 -4
- package/dist/{agent-scope-CJelRKYY.js → agent-scope-CY2-lUIY.js} +1 -1
- package/dist/{agents-B1UgGs6R.js → agents-Cweyfj22.js} +15 -15
- package/dist/{agents.config-CmUkQxtt.js → agents.config-DA3Y8w1t.js} +2 -2
- package/dist/{api-key-rotation-xfk-b2Sv.js → api-key-rotation-Cf7QM5M_.js} +1 -1
- package/dist/{api-key-rotation-BTSy5kZN.js → api-key-rotation-WzOC5dTW.js} +2 -2
- package/dist/{audio-preflight-DZWb0ozj.js → audio-preflight-BWOdDA2n.js} +39 -39
- package/dist/{audio-preflight-CHD1xVrt.js → audio-preflight-DdrORTn9.js} +4 -4
- package/dist/{audio-preflight-59K4nxSA.js → audio-preflight-SRgix4XS.js} +36 -36
- package/dist/{audio-transcription-runner-DwWOJBSn.js → audio-transcription-runner-CGsd7139.js} +1 -1
- package/dist/{audio-transcription-runner-2dp0SxL3.js → audio-transcription-runner-DaoqvWoi.js} +11 -11
- package/dist/{audio-transcription-runner-DGyS5H3K.js → audio-transcription-runner-DkibzFT2.js} +22 -22
- package/dist/{audit-DJfP7KjJ.js → audit-TSVXvoTa.js} +29 -29
- package/dist/{auth-B3HDYw4G.js → auth-anvTU0Sb.js} +1 -1
- package/dist/{auth-choice-Ko0_UPIV.js → auth-choice-Bhzlukg0.js} +12 -12
- package/dist/{auth-choice-f6C6bI9v.js → auth-choice-CR6bBvDU.js} +14 -14
- package/dist/{auth-choice.apply-helpers-DR-eUj_5.js → auth-choice.apply-helpers-Du585kvU.js} +1 -1
- package/dist/{auth-profiles-D_x1_5v_.js → auth-profiles-CyG9VwU_.js} +16 -16
- package/dist/{auth-token-BqjY9MGq.js → auth-token-BIEjzQiE.js} +1 -1
- package/dist/{banner-DB1rGYKC.js → banner-D-ha13Xs.js} +2 -2
- package/dist/{bindings-Daa-Etag.js → bindings-CsIiIjqN.js} +2 -2
- package/dist/{bindings-Hx6KNJeg.js → bindings-DGvp9FdD.js} +1 -1
- package/dist/{bonjour-discovery-t-SAPCsb.js → bonjour-discovery-B68dCYTY.js} +1 -1
- package/dist/{browser-cli-CTlLlDFe.js → browser-cli-DREC4EVl.js} +12 -12
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +65 -65
- package/dist/bundled/bootstrap-extra-files/handler.js +7 -7
- package/dist/bundled/command-logger/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +65 -65
- package/dist/{call-CzoM7hPS.js → call-CmAGfSJE.js} +10 -10
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-CiCkIxCu.js → channel-account-context-DNFdIaSr.js} +7 -6
- package/dist/{channel-account-context-D0zX-Gup.js → channel-account-context-etfgJrr_.js} +2 -1
- package/dist/{channel-activity-Btz1t5_1.js → channel-activity-D81g48kD.js} +3 -3
- package/dist/{channel-options-DLPoMi6B.js → channel-options-6JzQN9nt.js} +3 -3
- package/dist/{channel-selection-D8KYuWir.js → channel-selection-DGtYwfd7.js} +1 -1
- package/dist/{channel-web-BMZ_oZSK.js → channel-web-oQImOucb.js} +18 -18
- package/dist/{channels-cli-sNDA9BU2.js → channels-cli-CzLX8jUv.js} +95 -95
- package/dist/{channels-status-issues-5n9kobSz.js → channels-status-issues-BMNB2aMG.js} +1 -1
- package/dist/{chrome-DX1blHAJ.js → chrome-CjTE-vWv.js} +18 -18
- package/dist/{chrome-DuDCGdf-.js → chrome-DeZyLFsG.js} +4 -4
- package/dist/{chrome-CuMCXCQN.js → chrome-xatreDUO.js} +8 -8
- package/dist/{chunk-DEkdXze6.js → chunk-DtYb6TYl.js} +1 -1
- package/dist/{clawbot-cli-SIY_fH-I.js → clawbot-cli-H1Uj0ifV.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Cjv-J_yg.js → cli-C2xvYknT.js} +76 -76
- package/dist/{client-BvL3EdiZ.js → client-vUKV2o6h.js} +2 -2
- package/dist/{command-registry-KfIoXPZE.js → command-registry-QcrBU_9X.js} +13 -13
- package/dist/{commands-C67IbXs7.js → commands-d8L0zY8O.js} +1 -1
- package/dist/{commands-registry-D0_D5hFV.js → commands-registry-C78O6aNi.js} +3 -3
- package/dist/{commands-registry-BQkQRhEo.js → commands-registry-NIsv9Z4R.js} +5 -5
- package/dist/{completion-cli-iCWrVHvc.js → completion-cli-BkWPjJyP.js} +13 -13
- package/dist/{completion-cli-SYxZGwWD.js → completion-cli-VWIJWtLM.js} +1 -1
- package/dist/{config-cli-5lP-lwj0.js → config-cli-B4WnAVfw.js} +7 -7
- package/dist/{config-guard-t_xLf16g.js → config-guard-RZw5NkPK.js} +3 -3
- package/dist/{config-validation-DkA3FBg8.js → config-validation-tb90Bzho.js} +3 -3
- package/dist/{configure-hI0hAw1W.js → configure-DuwIk56q.js} +17 -17
- package/dist/control-ui/assets/{index-DPyUb7lL.css → index-B5WC_0Be.css} +1 -1
- package/dist/control-ui/assets/{index-BlqD_sH7.js → index-DmJK8e2M.js} +2 -2
- package/dist/control-ui/assets/index-DmJK8e2M.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/{control-ui-assets-M84PR-kz.js → control-ui-assets-Czpjuiah.js} +1 -1
- package/dist/{cron-cli-Bg88aQ8Y.js → cron-cli-D5MnhB5f.js} +12 -12
- package/dist/{daemon-cli-CFnqQB6M.js → daemon-cli-oCVkh3bg.js} +15 -15
- package/dist/{daemon-install-helpers-C1iBqd73.js → daemon-install-helpers-D5tste0V.js} +11 -11
- package/dist/{daemon-install-CdoMSH6S.js → daemon-install-vQ6KespE.js} +4 -4
- package/dist/{dashboard-CYa-ISxZ.js → dashboard-BstU6qkZ.js} +2 -2
- package/dist/{deliver-DTgCZWjU.js → deliver-H0xCFj4j.js} +7 -7
- package/dist/{deliver-Dyh8ZsLI.js → deliver-Z7543EnP.js} +1 -1
- package/dist/{deliver-C82Egs0W.js → deliver-xY3h9X6N.js} +22 -22
- package/dist/{devices-cli-9aOy3d7K.js → devices-cli-D6b6S-Iy.js} +8 -8
- package/dist/{diagnostic-DpOlXoSr.js → diagnostic-BO1GQJJf.js} +2 -2
- package/dist/{diagnostic-Bvatw1Xn.js → diagnostic-DjxUqpmL.js} +1 -1
- package/dist/{diagnostics-DooDWHeF.js → diagnostics-vLzdmcgg.js} +5 -5
- package/dist/{directory-cli-Rk2cBm0A.js → directory-cli-D3o7BGMd.js} +8 -8
- package/dist/{dns-cli-BXhJBWtC.js → dns-cli-B5kqVfFd.js} +5 -5
- package/dist/{dock-DT8sACcR.js → dock-CoclJnwp.js} +4 -4
- package/dist/{dock-DWqb4ufG.js → dock-Cr9V9V1V.js} +6 -6
- package/dist/{docs-cli-D606Eb-M.js → docs-cli-CyjlhZAj.js} +4 -4
- package/dist/{doctor-completion-C7FCLVKC.js → doctor-completion-DGNL86eP.js} +1 -1
- package/dist/{doctor-completion-DNAwhmlY.js → doctor-completion-SBDS3edN.js} +2 -2
- package/dist/{doctor-config-flow-ePZ7ejQj.js → doctor-config-flow-DclZbGUP.js} +15 -15
- package/dist/{enable-CnvIWic7.js → enable-CKAw_GCd.js} +1 -1
- package/dist/entry.js +2 -2
- package/dist/{env-Bn6pmvjK.js → env-DNMZEG57.js} +2 -2
- package/dist/{errors-azBrKJmF.js → errors-DEkWxItM.js} +1 -1
- package/dist/{exec-approvals-allowlist-B4DS6FIn.js → exec-approvals-allowlist-CFjPSbxI.js} +1 -1
- package/dist/{exec-approvals-cli-Czp8csm7.js → exec-approvals-cli-U46MdeMi.js} +16 -16
- package/dist/{exec-safe-bin-runtime-policy-BP6ImlkB.js → exec-safe-bin-runtime-policy-CpMj95vJ.js} +2 -2
- package/dist/extensionAPI.js +6 -6
- package/dist/{fetch-B82CeaHJ.js → fetch--iXu7oa7.js} +5 -5
- package/dist/{fetch-DC-NMnAU.js → fetch-DOjg912W.js} +3 -3
- package/dist/{fetch-guard-CCLWHwu7.js → fetch-guard-CNvY0vzQ.js} +2 -2
- package/dist/{fetch-guard-B62rgaSw.js → fetch-guard-Csbz9pui.js} +1 -1
- package/dist/{frontmatter-5U1LYLH9.js → frontmatter-DIRc-IR1.js} +2 -2
- package/dist/{fs-safe-CJDtl_QU.js → fs-safe-BqJ9egpm.js} +24 -24
- package/dist/{fs-safe-BDR6eQAw.js → fs-safe-D8x_nIIA.js} +4 -4
- package/dist/{gateway-cli-BKhQZ6rL.js → gateway-cli-ADJ8WFzB.js} +267 -93
- package/dist/{gateway-cli-Cb1IDsaH.js → gateway-cli-D5wMqxbT.js} +423 -249
- package/dist/{gateway-rpc-BgV_ZJ92.js → gateway-rpc-DFqEAyI_.js} +1 -1
- package/dist/{github-copilot-token-CPjAmbfr.js → github-copilot-token-DLGN-8YS.js} +7 -7
- package/dist/{health-DugDjq1f.js → health-Dzwp2cfK.js} +14 -14
- package/dist/{hooks-cli-VjmNvsLG.js → hooks-cli-DKAhHxZp.js} +84 -84
- package/dist/{hooks-status-DE20AAEu.js → hooks-status-6tcOdcYp.js} +1 -1
- package/dist/{image-BfqphdQM.js → image-BjuH1GKB.js} +5 -5
- package/dist/{image-BQ1JgwZu.js → image-DCyaYY2d.js} +6 -6
- package/dist/{image-DihIv8Eo.js → image-DQV2jl6F.js} +1 -1
- package/dist/{image-ops-jvmQoiyw.js → image-ops-B2L37gT8.js} +12 -12
- package/dist/{image-ops-BGTBZMuE.js → image-ops-DCpyia_K.js} +3 -3
- package/dist/index.js +1 -1
- package/dist/{inspect-DeP74OJO.js → inspect-DJUXn0vX.js} +4 -4
- package/dist/{install-safe-path-CWo3RPkH.js → install-safe-path-DVQh7rEs.js} +25 -25
- package/dist/{installs-BYqcA-ke.js → installs-jXfyPi74.js} +9 -9
- package/dist/{internal-hooks-oLQ2m8YT.js → internal-hooks-yQe6H47q.js} +1 -1
- package/dist/{ipv4-BB1Ro6so.js → ipv4-DQS0lTwQ.js} +1 -1
- package/dist/{ir-BODD8g-I.js → ir-BZUjdf-6.js} +6 -6
- package/dist/{ir-DziC-P4Z.js → ir-CEwBpxhC.js} +6 -6
- package/dist/{issue-format-CqVkT3gT.js → issue-format-NBMJ5xAP.js} +1 -1
- package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
- package/dist/{lifecycle-core-DAWYYqJl.js → lifecycle-core-oTVOKNSW.js} +5 -5
- package/dist/llm-slug-generator.js +65 -65
- package/dist/{logger-DelEB7MK.js → logger-BlH5MJiV.js} +1 -1
- package/dist/{login-Cm2zDfEU.js → login-CgEHUE7h.js} +6 -6
- package/dist/{login-CYfV0FRr.js → login-I5RlwiJn.js} +3 -3
- package/dist/{login-qr-DUSyrCPW.js → login-qr-CRjZn3ix.js} +6 -6
- package/dist/{login-qr-iS1jPDpP.js → login-qr-DUJfhbUe.js} +13 -13
- package/dist/{logs-cli--IqfO6Fs.js → logs-cli-D2-73CiV.js} +9 -9
- package/dist/{manager-DdzkWOvc.js → manager-BNuB9clC.js} +15 -15
- package/dist/{manager-7hZXEYTj.js → manager-DWpiNvlg.js} +14 -14
- package/dist/{manifest-registry-Kbw8YPsZ.js → manifest-registry-CBF8Vfz8.js} +1 -1
- package/dist/{markdown-tables-pfs_NCNh.js → markdown-tables-BHONoo6S.js} +1 -1
- package/dist/{markdown-tables-BYHgyUjA.js → markdown-tables-DQlQMRGZ.js} +1 -1
- package/dist/{memory-cli-CuT-iG2F.js → memory-cli-BUrf60e_.js} +12 -12
- package/dist/{message-channel-POuk6EOq.js → message-channel-Dl8dSs0T.js} +1 -1
- package/dist/{model-DmBmzJI6.js → model-DMZUvZJo.js} +2 -2
- package/dist/{model-catalog-D1X8r3WJ.js → model-catalog-DFi9HgWu.js} +3 -3
- package/dist/{model-picker-CrYHvOZH.js → model-picker-DFyoaAce.js} +4 -4
- package/dist/{model-selection-DfZMxaX3.js → model-selection-D_Si2Ict.js} +44 -44
- package/dist/{models-BwUaRaeh.js → models-B-VHfTz-.js} +18 -18
- package/dist/{models-cli-DPvtAoJ-.js → models-cli-DQBbzn_p.js} +81 -81
- package/dist/{models-config-CmrBGsQs.js → models-config-AePb9RAo.js} +6 -6
- package/dist/{net-BXeYv7Iu.js → net-C75G4fup.js} +2 -2
- package/dist/{node-cli-Co4McDQy.js → node-cli-UnJ5obvj.js} +33 -33
- package/dist/{node-command-policy-D7hSN9B8.js → node-command-policy-DMwxqhrG.js} +1 -1
- package/dist/{node-service-CzRylWgI.js → node-service-83OYUi14.js} +1 -1
- package/dist/{nodes-cli-wABD1dZs.js → nodes-cli-U66EhW5E.js} +16 -16
- package/dist/{nodes-screen-DcxCMjOs.js → nodes-screen-BHwVUMr8.js} +7 -7
- package/dist/{npm-pack-install-BGN-e1vW.js → npm-pack-install-1gsZywqI.js} +18 -18
- package/dist/{npm-resolution-Dp9ywE7U.js → npm-resolution-ZwcMp-e1.js} +5 -5
- package/dist/{onboard-tlfs9gUN.js → onboard-1RaJpuJ4.js} +1 -1
- package/dist/{onboard-DfDL2v89.js → onboard-Ce_QcPvd.js} +6 -6
- package/dist/{onboard-channels-CjyJiI4i.js → onboard-channels-BLL6tVVk.js} +20 -20
- package/dist/{onboard-custom-WfZ3J4O7.js → onboard-custom-CltkNK3c.js} +3 -3
- package/dist/{onboard-custom.shared-D52ggtQF.js → onboard-custom.shared-CXzE62ZH.js} +2 -2
- package/dist/{onboard-helpers-CczYNQDJ.js → onboard-helpers-D8lLbK3A.js} +11 -11
- package/dist/{onboard-hooks-o0B0p8tR.js → onboard-hooks-DBif0Jq8.js} +4 -4
- package/dist/{onboard-remote-DTz_Z9Xl.js → onboard-remote-DpEjARZa.js} +3 -3
- package/dist/{onboard-skills-D70PenD-.js → onboard-skills-CL0tHf_N.js} +4 -4
- package/dist/{onboarding-H5cLNUFG.js → onboarding-Rub9MXWB.js} +1 -1
- package/dist/{onboarding-DNV-TKzA.js → onboarding-WDRpEgra.js} +13 -13
- package/dist/{onboarding.finalize-C6UdLnH3.js → onboarding.finalize-CWYrjSVx.js} +89 -89
- package/dist/{onboarding.finalize-DfZFzt37.js → onboarding.finalize-MTyP_Dr4.js} +3 -3
- package/dist/{onboarding.gateway-config-CnQR4xLI.js → onboarding.gateway-config-Ce8ndMkF.js} +18 -18
- package/dist/{openai-model-default-DqKKq57j.js → openai-model-default-XM-ZB1MD.js} +2 -2
- package/dist/{outbound-Dv-MM4iv.js → outbound-CHyBoNxD.js} +4 -4
- package/dist/{outbound-4q4mbU-Z.js → outbound-DOVV_R6m.js} +7 -7
- package/dist/{outbound-attachment-CBCp1oVQ.js → outbound-attachment-C7sJLSnv.js} +2 -2
- package/dist/{outbound-attachment-CXINK8df.js → outbound-attachment-DM-h2uQ1.js} +2 -2
- package/dist/{pairing-cli-BUHAN0R5.js → pairing-cli-DUMMuvWC.js} +9 -9
- package/dist/{pairing-labels-CFSUHOmk.js → pairing-labels-x4akYNb7.js} +1 -1
- package/dist/{pairing-store-BfzlN-z9.js → pairing-store-rFuiIoGM.js} +3 -3
- package/dist/{path-alias-guards-DfQIjfhB.js → path-alias-guards-CKjKIhQ3.js} +1 -1
- package/dist/{path-alias-guards-Cg9ZP1NN.js → path-alias-guards-laKq24fx.js} +3 -3
- package/dist/{path-safety-tZSbJG67.js → path-safety-BxYB92SS.js} +1 -1
- package/dist/{paths-BjoSX1aC.js → paths-B_L2Zoe-.js} +9 -9
- package/dist/{paths-BZO1jkK2.js → paths-Cpu0XgUj.js} +3 -3
- package/dist/{paths-DKuX7-1L.js → paths-aGRLvQx9.js} +5 -5
- package/dist/{pi-embedded-xCcmCTnf.js → pi-embedded-CZAvX74y.js} +22 -22
- package/dist/{pi-embedded-DiUmkZyz.js → pi-embedded-DE3hb87F.js} +178 -178
- package/dist/{pi-embedded-helpers-C3sJPGXn.js → pi-embedded-helpers-BB2whkUz.js} +6 -6
- package/dist/{pi-embedded-helpers-CuwhW4u9.js → pi-embedded-helpers-CMTVhLjq.js} +29 -29
- package/dist/{pi-embedded-helpers-Bmj18lhA.js → pi-embedded-helpers-DK1ft2pf.js} +3 -3
- package/dist/{pi-model-discovery-COjkql-U.js → pi-model-discovery-DCIw1y1c.js} +7 -7
- package/dist/{pi-model-discovery-BZ2RCD_u.js → pi-model-discovery-RrejIg26.js} +1 -1
- package/dist/{pi-tools.policy-BH0D2kX0.js → pi-tools.policy-DRW8ya1z.js} +5 -5
- package/dist/{plugin-auto-enable-DER6qA6X.js → plugin-auto-enable-S_lBQAKI.js} +3 -3
- package/dist/{plugin-registry-CmucB2C0.js → plugin-registry-C2g1aLrK.js} +3 -3
- package/dist/{plugins-vsjS_m58.js → plugins-C4cYqW07.js} +2 -2
- package/dist/{plugins-D63QYxW6.js → plugins-CJoaoIHc.js} +11 -11
- package/dist/{plugins-cli-DJFtia9f.js → plugins-cli-Cdug93Mi.js} +86 -86
- package/dist/{ports-sCOQUaAP.js → ports-DRaxdQmm.js} +2 -2
- package/dist/{ports-zWusnrvP.js → ports-tfS1haOJ.js} +1 -1
- package/dist/{program-BkK1YIQS.js → program-L4hhvW67.js} +84 -84
- package/dist/{program-context-CFNQpYpG.js → program-context-BEPxCThZ.js} +7 -7
- package/dist/{prompt-select-styled-DlC5a1xd.js → prompt-select-styled-CYmsrkR3.js} +39 -39
- package/dist/{prompt-select-styled-DGdjezC8.js → prompt-select-styled-DTqU-r5T.js} +3 -3
- package/dist/{provider-auth-helpers-CJ2_W1oy.js → provider-auth-helpers-CNkIHUuF.js} +5 -5
- package/dist/{proxy-jINniQBi.js → proxy-DfJJLvch.js} +1 -1
- package/dist/{proxy-env-vYAjKL5q.js → proxy-env-BnDt8j9F.js} +1 -1
- package/dist/{proxy-env-BQIJPH4j.js → proxy-env-BoopXu2J.js} +1 -1
- package/dist/{proxy-fetch-AvkSvetA.js → proxy-fetch-xlbVQYN_.js} +1 -1
- package/dist/{push-apns-BKjyYFyk.js → push-apns-DRX0c6-y.js} +5 -5
- package/dist/{pw-ai-pqeoAqm_.js → pw-ai-CMUrm_kS.js} +1 -1
- package/dist/{pw-ai-BLNiRUPI.js → pw-ai-DGwA7iCM.js} +17 -17
- package/dist/{pw-ai-ITbRRqVN.js → pw-ai-DyGZ1pXu.js} +15 -15
- package/dist/{qmd-manager-BNohLpRA.js → qmd-manager-Bo22w5wm.js} +20 -20
- package/dist/{qmd-manager-BBKfRzj-.js → qmd-manager-CeN3N992.js} +11 -11
- package/dist/{qr-cli-D-LqDNlm.js → qr-cli-EHSe4TmR.js} +1 -1
- package/dist/{query-expansion-BrM3X6-L.js → query-expansion-Ba9OpCm9.js} +12 -12
- package/dist/{query-expansion-2BrixCA2.js → query-expansion-CGnW4Mk_.js} +5 -5
- package/dist/{redact-uUggP88O.js → redact-ScShueoF.js} +1 -1
- package/dist/{redact-snapshot-D3QFNQl8.js → redact-snapshot-kY3aFpcF.js} +1 -1
- package/dist/{register.agent-C3K3DXul.js → register.agent-CaCz2lnX.js} +97 -97
- package/dist/register.configure-BHL2CNOY.js +174 -0
- package/dist/{register.init-ClMzXUKm.js → register.init-D4hlhvsq.js} +15 -15
- package/dist/{register.maintenance-Bb8amfJh.js → register.maintenance-DsxNo00b.js} +6 -6
- package/dist/{register.maintenance-zsZrRIaB.js → register.maintenance-MJR5bDWC.js} +99 -99
- package/dist/{register.message-CfRd6EM2.js → register.message-ChJGE4xV.js} +77 -77
- package/dist/{register.onboard-qFRFDsPK.js → register.onboard-4aB9FmjK.js} +2 -2
- package/dist/{register.onboard-BFM29BaY.js → register.onboard-CRCrMN8O.js} +18 -18
- package/dist/{register.setup-D0E9z_QW.js → register.setup-CCPeU8WO.js} +2 -2
- package/dist/{register.setup-Caqvvqmm.js → register.setup-DqRNRiXi.js} +21 -21
- package/dist/{register.start-CrwDVujg.js → register.start-D3IRihbV.js} +17 -17
- package/dist/{register.status-health-sessions-CWb4-Kgs.js → register.status-health-sessions-EhCB2a7v.js} +3 -3
- package/dist/{register.status-health-sessions-BBEF4th9.js → register.status-health-sessions-zD3z2YuT.js} +91 -91
- package/dist/{register.subclis-rB1Roe3w.js → register.subclis-D12iC4nF.js} +31 -31
- package/dist/{registry-C2GEGa2t.js → registry-CJCkqTms.js} +3 -3
- package/dist/{replies-Ckd7Lwt0.js → replies-BDnb0prE.js} +1 -1
- package/dist/{replies-yAf6dFeT.js → replies-BFYGUEKu.js} +3 -3
- package/dist/{reply-prefix-9mzt89Cf.js → reply-prefix-DK1i6bCJ.js} +1 -1
- package/dist/{reply-prefix-DpXMFuAa.js → reply-prefix-H_GSyyzN.js} +1 -1
- package/dist/{resolve-route-Cnto8LMw.js → resolve-route-ByAwAiq5.js} +2 -2
- package/dist/{resolve-route-BNElrVxR.js → resolve-route-C5hVstLo.js} +4 -4
- package/dist/{retry-Ayb7e4XG.js → retry-DTeP7C3h.js} +1 -1
- package/dist/{rpc-9G93KhBv.js → rpc-Bzb0JMJ_.js} +1 -1
- package/dist/{run-main-C02l3ZhV.js → run-main-C_fGUv-Y.js} +95 -95
- package/dist/{runtime-BI0xjrHi.js → runtime-Cx-7xFzl.js} +2 -2
- package/dist/{sandbox-CLIUxOtc.js → sandbox-BLqUWbp2.js} +18 -18
- package/dist/{sandbox-cli-MjHZjW2w.js → sandbox-cli-CEriRvUh.js} +26 -26
- package/dist/{secrets-cli-BFU9jh2A.js → secrets-cli-DG-NG8PH.js} +10 -10
- package/dist/{security-cli-DIfmEZrw.js → security-cli-C_Bc1U-7.js} +43 -43
- package/dist/{send-Bclgg0Ur.js → send-B4pSMBHk.js} +8 -8
- package/dist/{send-e1X1pfda.js → send-BCLu4NEE.js} +6 -6
- package/dist/{send-BpXRh0BM.js → send-BTswySBz.js} +11 -11
- package/dist/{send-Bjaa69Cy.js → send-BqKSZyIb.js} +27 -27
- package/dist/{send-DYY51FOR.js → send-CN0f1Yst.js} +6 -6
- package/dist/{send-CQJKPGw4.js → send-CZ2O-5pP.js} +6 -6
- package/dist/{send-sj8Hu26l.js → send-D0X-8aPh.js} +8 -8
- package/dist/{send-Cp0yQi_p.js → send-V3fEVmLq.js} +10 -10
- package/dist/{send-DQ7hIAIK.js → send-XAO1mk64.js} +7 -7
- package/dist/{send-Cpaj_bKB.js → send-ZyB64ntO.js} +5 -5
- package/dist/{server-DbB5aXZq.js → server-CzDsmd9g.js} +19 -19
- package/dist/{server-context-DnPsW_Mg.js → server-context-DRq_OT33.js} +12 -12
- package/dist/{server-lifecycle-B2y6Fg7R.js → server-lifecycle-CcYnyYPQ.js} +2 -2
- package/dist/{server-middleware-CKSnhiM2.js → server-middleware-DHxnFjIL.js} +1 -1
- package/dist/{server-node-events-BwnXBzS2.js → server-node-events-B5xSV7Kq.js} +77 -77
- package/dist/{service-Wk285d-R.js → service-CZORJG4z.js} +15 -15
- package/dist/{session-meta-DF1WT4cr.js → session-meta-Cew1QAYN.js} +1 -1
- package/dist/{session-meta-CyQWVUk4.js → session-meta-Cqv55kSk.js} +2 -2
- package/dist/{session-DNbfXbBi.js → session-nilNSQEL.js} +1 -1
- package/dist/{session-utils-BncMg1bn.js → session-utils-DxaIoRMp.js} +6 -6
- package/dist/{session-TVb8hgJP.js → session-xKPVUYQP.js} +9 -9
- package/dist/{sessions-B2mnwD21.js → sessions-BXz4gdq6.js} +15 -15
- package/dist/{sessions-3jroJwu7.js → sessions-CA_BydGA.js} +31 -31
- package/dist/{sessions-C2Xfck_9.js → sessions-DhD3eJDE.js} +4 -4
- package/dist/{shared-CJN2BLdi.js → shared-BZscafy-.js} +1 -1
- package/dist/{shared-BAdi_Ot7.js → shared-DvHQekWm.js} +3 -3
- package/dist/{skill-commands-CSr9_48V.js → skill-commands-CZFmIM-s.js} +9 -9
- package/dist/{skill-commands-CYucDd3C.js → skill-commands-Cpr3Poo2.js} +5 -5
- package/dist/{skill-scanner-BXOiOvI1.js → skill-scanner-0-AybMIe.js} +6 -6
- package/dist/{skills-BCgFAMj3.js → skills-D4S-gyVf.js} +3 -3
- package/dist/{skills-B82IjVxn.js → skills-DMmr25nW.js} +22 -22
- package/dist/{skills-cli-CwbRKLum.js → skills-cli-B0jFsoo4.js} +5 -5
- package/dist/{skills-install-BQyeS7wB.js → skills-install-C6-Zzqoi.js} +6 -6
- package/dist/{skills-status-DG-bH5mO.js → skills-status-DQzBD0Y7.js} +1 -1
- package/dist/{status-B4v5QI5X.js → status-BfWqYNJf.js} +2 -2
- package/dist/{status-XGYDzhkW.js → status-Dw7ag8qn.js} +26 -26
- package/dist/{status.update-n2QPQr8w.js → status.update-B6whKviL.js} +2 -2
- package/dist/{status.update-DIamQqHr.js → status.update-C8qgou8r.js} +1 -1
- package/dist/{store-DhC72KqW.js → store-C8KgeMt2.js} +2 -2
- package/dist/{store-U8cs0QvT.js → store-TdzSHRPN.js} +5 -5
- package/dist/{subagent-registry-WD5F6cBf.js → subagent-registry-D6OfBLNb.js} +156 -156
- package/dist/{subsystem-CAatx5oo.js → subsystem-BRjuJbbM.js} +14 -14
- package/dist/{system-cli-C_5YHHhF.js → system-cli-BoamUpxz.js} +9 -9
- package/dist/{system-run-command-GKGzGztn.js → system-run-command-XHAlbx5q.js} +1 -1
- package/dist/{systemd-Dbwmb4TX.js → systemd-C4JtDaKk.js} +9 -9
- package/dist/{systemd-hints-VM2JkQxw.js → systemd-hints-ZHrBbXDd.js} +6 -6
- package/dist/{systemd-linger-DoeP9Z3f.js → systemd-linger-CD4viBmg.js} +1 -1
- package/dist/{tables-Bfh_TnCf.js → tables-BKnPZssn.js} +1 -1
- package/dist/{tables-DVXe5x1J.js → tables-BOsRa7CS.js} +1 -1
- package/dist/{tailnet-C1XBcWue.js → tailnet-CfP3A6g2.js} +1 -1
- package/dist/{target-errors-CGYXYvSZ.js → target-errors-B9Jzop3d.js} +2 -2
- package/dist/{target-errors-C5LA-JI-.js → target-errors-DPJ9HFp9.js} +4 -4
- package/dist/{tokens-BvzZdrVJ.js → tokens-B9EDT4jv.js} +1 -1
- package/dist/{tool-images-CnpAosfi.js → tool-images-CmgHk8xk.js} +1 -1
- package/dist/{tool-images-CqsWnc1k.js → tool-images-ffdfBx0b.js} +2 -2
- package/dist/{tool-loop-detection-C4V990MS.js → tool-loop-detection-CLoYKYIq.js} +3 -3
- package/dist/{tui-kOoc7WBf.js → tui-GWJMI53u.js} +6 -6
- package/dist/{tui-cli-DeTfdnEG.js → tui-cli-CMrxH2Q_.js} +33 -33
- package/dist/{update-DFr19tQ1.js → update-CDWJ50iD.js} +3 -3
- package/dist/{update-cli-CUSnVFt4.js → update-cli-Dw_JHcRy.js} +22 -14
- package/dist/{update-cli-BlswPThb.js → update-cli-r3eyhSgp.js} +122 -114
- package/dist/{update-runner-CX6jOI_r.js → update-runner-CHxTFtW8.js} +34 -22
- package/dist/{update-runner-BA9B0S60.js → update-runner-CJua_LZ3.js} +19 -7
- package/dist/{utils-Bo1RFF0l.js → utils-BFZnl-5N.js} +6 -6
- package/dist/{web-DsAoa63g.js → web-B2_c07KN.js} +69 -69
- package/dist/web-B4yuhy9a.js +125 -0
- package/dist/{web-CvYmNThc.js → web-De45Xhd1.js} +6 -6
- package/dist/{webhooks-cli-DLgCJq4n.js → webhooks-cli-B09BdLSk.js} +6 -6
- package/dist/{whatsapp-actions-DXjy9m41.js → whatsapp-actions-CHt12z-f.js} +28 -28
- package/dist/{whatsapp-actions-B81EJMQI.js → whatsapp-actions-DUoWY7mE.js} +19 -19
- package/dist/{with-timeout-l0X_rwcb.js → with-timeout-B9qgOUui.js} +3 -3
- package/dist/{workspace-DWBFoy1G.js → workspace-A5CNJccm.js} +1 -1
- package/dist/{workspace-CswOYN9T.js → workspace-D6mrCnXi.js} +21 -21
- package/dist/{workspace-BHfqkuYN.js → workspace-DzeL98px.js} +23 -23
- package/dist/{workspace-dirs-BOgNOBjy.js → workspace-dirs-Bevk6X_8.js} +1 -1
- package/dist/{wsl-BDRu1-pk.js → wsl-DksyFTBT.js} +2 -2
- package/docs/install/index.md +12 -12
- package/docs/install/updating.md +32 -33
- package/docs/plans/2026-03-11-bitseek-update-package-design.md +25 -0
- package/package.json +1 -1
- package/dist/control-ui/assets/index-BlqD_sH7.js.map +0 -1
- package/dist/register.configure-aJItV_ZP.js +0 -174
- package/dist/web-DNL22pwf.js +0 -125
|
@@ -3,12 +3,12 @@ import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as
|
|
|
3
3
|
import { a as setConsoleSubsystemFilter, d as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-DjdBljTA.js";
|
|
4
4
|
import "./boolean-DtWR5bt3.js";
|
|
5
5
|
import { i as logAcceptedEnvOption, r as isTruthyEnvValue } from "./entry.js";
|
|
6
|
-
import { Ai as DEFAULT_MODEL, B as OpenClawSchema, Er as resolveThinkingDefault, F as readConfigFileSnapshotForWrite, Fn as resolveSubagentMaxConcurrent, I as resolveConfigSnapshotHash, Jn as loadAuthProfileStoreForRuntime, M as loadConfig, Mn as buildTalkConfigResponse, N as parseConfigJson5, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, R as writeConfigFile, Si as normalizeSecretInput, St as AVATAR_MAX_BYTES, Tt as isAvatarImageDataUrl, Un as upsertAuthProfile, _r as resolveAllowedModelRef, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, bn as applyLegacyMigrations, br as resolveDefaultModelForAgent, dr as isCliProvider, ir as isPidAlive, j as createConfigIO, ji as DEFAULT_PROVIDER, k as migrateLegacyConfig, ki as DEFAULT_CONTEXT_TOKENS, kt as looksLikeAvatarPath, l as resolveApiKeyForProfile, lr as getModelRefStatus, mr as normalizeModelSelection, ot as parseByteSize, wr as resolveSubagentConfiguredModelSelection, wt as isAvatarHttpUrl, xi as normalizeOptionalSecretInput, xn as ensureControlUiAllowedOriginsForNonLoopbackBind, xr as resolveHooksGmailModel, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins } from "./auth-profiles-
|
|
6
|
+
import { Ai as DEFAULT_MODEL, B as OpenClawSchema, Er as resolveThinkingDefault, F as readConfigFileSnapshotForWrite, Fn as resolveSubagentMaxConcurrent, I as resolveConfigSnapshotHash, Jn as loadAuthProfileStoreForRuntime, M as loadConfig, Mn as buildTalkConfigResponse, N as parseConfigJson5, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, R as writeConfigFile, Si as normalizeSecretInput, St as AVATAR_MAX_BYTES, Tt as isAvatarImageDataUrl, Un as upsertAuthProfile, _r as resolveAllowedModelRef, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, bn as applyLegacyMigrations, br as resolveDefaultModelForAgent, dr as isCliProvider, ir as isPidAlive, j as createConfigIO, ji as DEFAULT_PROVIDER, k as migrateLegacyConfig, ki as DEFAULT_CONTEXT_TOKENS, kt as looksLikeAvatarPath, l as resolveApiKeyForProfile, lr as getModelRefStatus, mr as normalizeModelSelection, ot as parseByteSize, wr as resolveSubagentConfiguredModelSelection, wt as isAvatarHttpUrl, xi as normalizeOptionalSecretInput, xn as ensureControlUiAllowedOriginsForNonLoopbackBind, xr as resolveHooksGmailModel, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins } from "./auth-profiles-CyG9VwU_.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-CVXyxgq3.js";
|
|
8
|
-
import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
8
|
+
import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-CY2-lUIY.js";
|
|
9
9
|
import { S as isCronRunSessionKey, T as parseAgentSessionKey, c as normalizeAgentId, g as normalizeAccountId$1, h as DEFAULT_ACCOUNT_ID, l as normalizeMainKey, m as toAgentStoreSessionKey, o as classifySessionKeyShape, p as toAgentRequestSessionKey, r as buildAgentMainSessionKey, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, w as isSubagentSessionKey } from "./session-key-BLprDJYq.js";
|
|
10
10
|
import { E as isPlainObject, T as truncateUtf16Safe, n as clamp, s as ensureDir, v as resolveUserPath, x as shortenHomePath } from "./utils-DIzy5B5o.js";
|
|
11
|
-
import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-
|
|
11
|
+
import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-DzeL98px.js";
|
|
12
12
|
import { i as logWarn, t as logDebug } from "./logger-BJMfryJd.js";
|
|
13
13
|
import { n as runExec, t as runCommandWithTimeout } from "./exec-CEAvKSx9.js";
|
|
14
14
|
import "./github-copilot-token-CulJ9J5l.js";
|
|
@@ -16,112 +16,112 @@ import "./host-env-security-CJMD0__Z.js";
|
|
|
16
16
|
import { n as resolveRuntimeServiceVersion, t as VERSION } from "./version-CGDNfh5C.js";
|
|
17
17
|
import "./env-vars-Dw0EwyGP.js";
|
|
18
18
|
import { C as clearInternalHooks, E as triggerInternalHook, T as registerInternalHook, h as createEmptyPluginRegistry, t as CHANNEL_IDS, u as getActivePluginRegistry, w as createInternalHookEvent } from "./registry-7fg1BnMw.js";
|
|
19
|
-
import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-
|
|
20
|
-
import "./dock-
|
|
21
|
-
import "./model-
|
|
22
|
-
import "./pi-model-discovery-
|
|
19
|
+
import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-CBF8Vfz8.js";
|
|
20
|
+
import "./dock-CoclJnwp.js";
|
|
21
|
+
import "./model-DMZUvZJo.js";
|
|
22
|
+
import "./pi-model-discovery-RrejIg26.js";
|
|
23
23
|
import { d as hasBinary } from "./frontmatter-C0E8mspC.js";
|
|
24
|
-
import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
25
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
26
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
24
|
+
import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-D4S-gyVf.js";
|
|
25
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-laKq24fx.js";
|
|
26
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-DQzBD0Y7.js";
|
|
27
27
|
import { _ as normalizeGatewayClientMode, f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-0J6eKf3g.js";
|
|
28
|
-
import { $ as resolveAgentMainSessionKey, A as readSessionPreviewItemsFromTranscript, B as cleanStaleLockFiles, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, G as resolveSessionResetPolicy, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as canonicalizeMainSessionAlias, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as evaluateSessionFreshness, Y as mergeSessionEntry, Z as setSessionRuntimeModel, d as updateSessionStore, et as resolveExplicitAgentSessionKey, it as snapshotSessionOrigin, k as readSessionMessages, n as parseSessionThreadInfo, nt as resolveMainSessionKeyFromConfig, o as loadSessionStore, t as extractDeliveryInfo, tt as resolveMainSessionKey, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-
|
|
29
|
-
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-
|
|
30
|
-
import { i as resolveWhatsAppAccount } from "./accounts-
|
|
31
|
-
import "./accounts-
|
|
28
|
+
import { $ as resolveAgentMainSessionKey, A as readSessionPreviewItemsFromTranscript, B as cleanStaleLockFiles, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, G as resolveSessionResetPolicy, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as canonicalizeMainSessionAlias, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as evaluateSessionFreshness, Y as mergeSessionEntry, Z as setSessionRuntimeModel, d as updateSessionStore, et as resolveExplicitAgentSessionKey, it as snapshotSessionOrigin, k as readSessionMessages, n as parseSessionThreadInfo, nt as resolveMainSessionKeyFromConfig, o as loadSessionStore, t as extractDeliveryInfo, tt as resolveMainSessionKey, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-BXz4gdq6.js";
|
|
29
|
+
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-C4cYqW07.js";
|
|
30
|
+
import { i as resolveWhatsAppAccount } from "./accounts-Cv5CUnT4.js";
|
|
31
|
+
import "./accounts-2NNZ6Hbp.js";
|
|
32
32
|
import "./logging-5MtSkLpb.js";
|
|
33
|
-
import "./accounts-
|
|
34
|
-
import { t as buildChannelAccountBindings } from "./bindings-
|
|
35
|
-
import "./send-
|
|
36
|
-
import "./send-
|
|
37
|
-
import { $n as normalizeSendPolicy, $t as isExternalHookSession, A as agentCommandFromIngress, Ar as waitForActiveTasks, At as formatRestartSentinelMessage, Br as onAgentEvent, Bt as normalizeOptionalSessionKey, C as readJsonBodyWithLimit, Cr as OPENAI_TTS_VOICES, D as sleepWithAbort, Dn as formatZonedTimestamp, Dr as markGatewayDraining, E as computeBackoff, Er as getTotalQueueSize, Et as runWithModelFallback, F as createDefaultDeps, Fn as isSystemEventContextChanged, Ft as normalizeHttpWebhookUrl, Gn as DEFAULT_INPUT_IMAGE_MIMES, Gt as buildDeliveryFromLegacyPayload, Ht as normalizePayloadToSystemText, I as createOutboundSendDeps$1, Ir as stripHeartbeatToken, It as normalizeCronJobCreate, Jn as extractFileContentFromSource, Kn as DEFAULT_INPUT_MAX_REDIRECTS, Kt as hasLegacyDeliveryHints, L as resolveAgentAvatar, Lr as clearAgentRunContext, Lt as normalizeCronJobPatch, M as resolveAgentDeliveryPlan, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Mt as summarizeRestartSentinel, N as resolveAgentOutboundTarget, Or as resetAllLanes, Ot as consumeRestartSentinel, P as createOutboundSendDeps, Pn as enqueueSystemEvent, Pt as writeRestartSentinel, Qn as resolveAgentTimeoutMs, Qt as getHookType, Rn as requestHeartbeatNow, Rr as emitAgentEvent, Rt as inferLegacyName, S as handleSlackHttpRequest, Sn as loadProviderUsageSummary, Sr as OPENAI_TTS_MODELS, St as resolveOutboundChannelPlugin, Un as ACP_SESSION_IDENTITY_RENDERER_VERSION, Ut as normalizeRequiredName, Vr as registerAgentRunContext, Vt as normalizeOptionalText, W as buildHistoryContextFromEntries, Wn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Wt as migrateLegacyCronPayload, Xn as normalizeMimeList, Xt as buildSafeExternalPrompt, Yn as extractImageContentFromSource, Zn as resolveInputFileLimits, Zt as detectSuspiciousPatterns, _ as loadOpenClawPlugins, _n as setPreRestartDeferralCheck, _r as resolveTtsPrefsPath, _t as resolveOutboundSessionRoute, a as runSubagentAnnounceFlow, b as resolveAgentOutboundIdentity, bn as normalizeGroupActivation, br as setTtsProvider, bt as resolveOutboundTarget, c as abortEmbeddedPiRun, cn as parseVerboseOverride, cr as resolveAgentSessionDirs, ct as resolveCronStyleNow, d as applyToolPolicyPipeline, dn as deferGatewayRestartUntilIdle, dr as getTtsProvider, dt as runCliAgent, en as applyBrowserProxyPaths, er as resolveSendPolicy, f as buildDefaultToolPolicyPipelineSteps, fn as emitGatewayRestart, fr as isTtsEnabled, ft as createOpenClawTools, gn as setGatewaySigusr1RestartPolicy, gr as resolveTtsConfig, gt as ensureOutboundSessionEntry, h as resolvePluginTools, hn as scheduleGatewaySigusr1Restart, hr as resolveTtsAutoMode, ir as stopSubagentsForRequester, jr as CommandLane, kr as setCommandLaneConcurrency, kt as formatDoctorNonInteractiveHint, l as getActiveEmbeddedRunCount, ln as buildOutboundSessionContext, lr as resolveUserTimezone, lt as getCliSessionId, m as getPluginToolMeta, mn as markGatewaySigusr1RestartHandled, mr as resolveTtsApiKey, mt as resolveAnnounceTargetFromKey, n as initSubagentRegistry, nn as resolveSessionAuthProfileOverride, nt as createReplyDispatcher, o as clearSessionQueues, on as applyModelOverrideToSessionEntry, ot as BARE_SESSION_RESET_PROMPT, pn as isGatewaySigusr1RestartExternallyAllowed, pr as isTtsProviderConfigured, pt as readLatestAssistantReply, qn as DEFAULT_INPUT_TIMEOUT_MS, qt as stripLegacyDeliveryFields, r as listDescendantRunsForRequester, rr as isAbortRequestText, rt as getTotalPendingReplies, s as runEmbeddedPiAgent, sn as applyVerboseOverride, sr as getAcpSessionManager, t as countActiveDescendantRuns, tn as persistBrowserProxyFiles, tt as dispatchInboundMessage, u as waitForEmbeddedPiRunEnd, un as consumeGatewaySigusr1RestartAuthorization, ur as clearBootstrapSnapshot, ut as setCliSessionId, v as createPluginRuntime, vn as triggerOpenClawRestart, vr as resolveTtsProviderOrder, w as requestBodyErrorToText, wr as getActiveTaskCount, wt as resetDirectoryCache, xr as textToSpeech, xt as resolveSessionDeliveryTarget, yn as unbindThreadBindingsBySessionKey, yr as setTtsEnabled, zr as getAgentRunContext, zt as normalizeOptionalAgentId } from "./subagent-registry-
|
|
33
|
+
import "./accounts-NHpMJ0aq.js";
|
|
34
|
+
import { t as buildChannelAccountBindings } from "./bindings-DGvp9FdD.js";
|
|
35
|
+
import "./send-ZyB64ntO.js";
|
|
36
|
+
import "./send-BTswySBz.js";
|
|
37
|
+
import { $n as normalizeSendPolicy, $t as isExternalHookSession, A as agentCommandFromIngress, Ar as waitForActiveTasks, At as formatRestartSentinelMessage, Br as onAgentEvent, Bt as normalizeOptionalSessionKey, C as readJsonBodyWithLimit, Cr as OPENAI_TTS_VOICES, D as sleepWithAbort, Dn as formatZonedTimestamp, Dr as markGatewayDraining, E as computeBackoff, Er as getTotalQueueSize, Et as runWithModelFallback, F as createDefaultDeps, Fn as isSystemEventContextChanged, Ft as normalizeHttpWebhookUrl, Gn as DEFAULT_INPUT_IMAGE_MIMES, Gt as buildDeliveryFromLegacyPayload, Ht as normalizePayloadToSystemText, I as createOutboundSendDeps$1, Ir as stripHeartbeatToken, It as normalizeCronJobCreate, Jn as extractFileContentFromSource, Kn as DEFAULT_INPUT_MAX_REDIRECTS, Kt as hasLegacyDeliveryHints, L as resolveAgentAvatar, Lr as clearAgentRunContext, Lt as normalizeCronJobPatch, M as resolveAgentDeliveryPlan, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Mt as summarizeRestartSentinel, N as resolveAgentOutboundTarget, Or as resetAllLanes, Ot as consumeRestartSentinel, P as createOutboundSendDeps, Pn as enqueueSystemEvent, Pt as writeRestartSentinel, Qn as resolveAgentTimeoutMs, Qt as getHookType, Rn as requestHeartbeatNow, Rr as emitAgentEvent, Rt as inferLegacyName, S as handleSlackHttpRequest, Sn as loadProviderUsageSummary, Sr as OPENAI_TTS_MODELS, St as resolveOutboundChannelPlugin, Un as ACP_SESSION_IDENTITY_RENDERER_VERSION, Ut as normalizeRequiredName, Vr as registerAgentRunContext, Vt as normalizeOptionalText, W as buildHistoryContextFromEntries, Wn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Wt as migrateLegacyCronPayload, Xn as normalizeMimeList, Xt as buildSafeExternalPrompt, Yn as extractImageContentFromSource, Zn as resolveInputFileLimits, Zt as detectSuspiciousPatterns, _ as loadOpenClawPlugins, _n as setPreRestartDeferralCheck, _r as resolveTtsPrefsPath, _t as resolveOutboundSessionRoute, a as runSubagentAnnounceFlow, b as resolveAgentOutboundIdentity, bn as normalizeGroupActivation, br as setTtsProvider, bt as resolveOutboundTarget, c as abortEmbeddedPiRun, cn as parseVerboseOverride, cr as resolveAgentSessionDirs, ct as resolveCronStyleNow, d as applyToolPolicyPipeline, dn as deferGatewayRestartUntilIdle, dr as getTtsProvider, dt as runCliAgent, en as applyBrowserProxyPaths, er as resolveSendPolicy, f as buildDefaultToolPolicyPipelineSteps, fn as emitGatewayRestart, fr as isTtsEnabled, ft as createOpenClawTools, gn as setGatewaySigusr1RestartPolicy, gr as resolveTtsConfig, gt as ensureOutboundSessionEntry, h as resolvePluginTools, hn as scheduleGatewaySigusr1Restart, hr as resolveTtsAutoMode, ir as stopSubagentsForRequester, jr as CommandLane, kr as setCommandLaneConcurrency, kt as formatDoctorNonInteractiveHint, l as getActiveEmbeddedRunCount, ln as buildOutboundSessionContext, lr as resolveUserTimezone, lt as getCliSessionId, m as getPluginToolMeta, mn as markGatewaySigusr1RestartHandled, mr as resolveTtsApiKey, mt as resolveAnnounceTargetFromKey, n as initSubagentRegistry, nn as resolveSessionAuthProfileOverride, nt as createReplyDispatcher, o as clearSessionQueues, on as applyModelOverrideToSessionEntry, ot as BARE_SESSION_RESET_PROMPT, pn as isGatewaySigusr1RestartExternallyAllowed, pr as isTtsProviderConfigured, pt as readLatestAssistantReply, qn as DEFAULT_INPUT_TIMEOUT_MS, qt as stripLegacyDeliveryFields, r as listDescendantRunsForRequester, rr as isAbortRequestText, rt as getTotalPendingReplies, s as runEmbeddedPiAgent, sn as applyVerboseOverride, sr as getAcpSessionManager, t as countActiveDescendantRuns, tn as persistBrowserProxyFiles, tt as dispatchInboundMessage, u as waitForEmbeddedPiRunEnd, un as consumeGatewaySigusr1RestartAuthorization, ur as clearBootstrapSnapshot, ut as setCliSessionId, v as createPluginRuntime, vn as triggerOpenClawRestart, vr as resolveTtsProviderOrder, w as requestBodyErrorToText, wr as getActiveTaskCount, wt as resetDirectoryCache, xr as textToSpeech, xt as resolveSessionDeliveryTarget, yn as unbindThreadBindingsBySessionKey, yr as setTtsEnabled, zr as getAgentRunContext, zt as normalizeOptionalAgentId } from "./subagent-registry-D6OfBLNb.js";
|
|
38
38
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CTtLmER4.js";
|
|
39
39
|
import { i as normalizeInputProvenance } from "./input-provenance-C8z9KgIz.js";
|
|
40
40
|
import "./chat-envelope-D3RSz140.js";
|
|
41
|
-
import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-
|
|
42
|
-
import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-
|
|
43
|
-
import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-
|
|
41
|
+
import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-rR19q30D.js";
|
|
42
|
+
import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-vUKV2o6h.js";
|
|
43
|
+
import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-CmAGfSJE.js";
|
|
44
44
|
import "./pairing-token-DoBZxQnC.js";
|
|
45
45
|
import { t as safeEqualSecret } from "./secret-equal-Gla36CGi.js";
|
|
46
|
-
import { a as isTrustedProxyAddress, c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as rawDataToString, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as isLocalishHost, u as resolveGatewayBindHost } from "./net-
|
|
47
|
-
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-
|
|
46
|
+
import { a as isTrustedProxyAddress, c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as rawDataToString, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as isLocalishHost, u as resolveGatewayBindHost } from "./net-C75G4fup.js";
|
|
47
|
+
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-CfP3A6g2.js";
|
|
48
48
|
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DyLBF_df.js";
|
|
49
|
-
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-
|
|
50
|
-
import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
51
|
-
import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-
|
|
49
|
+
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-B9qgOUui.js";
|
|
50
|
+
import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-H0xCFj4j.js";
|
|
51
|
+
import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-DjxUqpmL.js";
|
|
52
52
|
import "./diagnostic-session-state-Dx-rJXBO.js";
|
|
53
|
-
import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-
|
|
54
|
-
import { c as detectMime } from "./image-ops-
|
|
55
|
-
import "./pi-embedded-helpers-
|
|
56
|
-
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
53
|
+
import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-D0X-8aPh.js";
|
|
54
|
+
import { c as detectMime } from "./image-ops-B2L37gT8.js";
|
|
55
|
+
import "./pi-embedded-helpers-BB2whkUz.js";
|
|
56
|
+
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-BLqUWbp2.js";
|
|
57
57
|
import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-uQj_-Ahx.js";
|
|
58
|
-
import "./chrome-
|
|
58
|
+
import "./chrome-DeZyLFsG.js";
|
|
59
59
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-D3xGoMdQ.js";
|
|
60
|
-
import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-
|
|
61
|
-
import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-
|
|
62
|
-
import "./paths-
|
|
60
|
+
import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-anvTU0Sb.js";
|
|
61
|
+
import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-DRq_OT33.js";
|
|
62
|
+
import "./paths-B_L2Zoe-.js";
|
|
63
63
|
import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-Ck5U_y4i.js";
|
|
64
64
|
import { o as isErrno, r as formatErrorMessage } from "./errors-BJz45-qI.js";
|
|
65
|
-
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
66
|
-
import { n as SsrFBlockedError } from "./proxy-env-
|
|
67
|
-
import "./store-
|
|
68
|
-
import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-
|
|
65
|
+
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BqJ9egpm.js";
|
|
66
|
+
import { n as SsrFBlockedError } from "./proxy-env-BoopXu2J.js";
|
|
67
|
+
import "./store-TdzSHRPN.js";
|
|
68
|
+
import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-DRaxdQmm.js";
|
|
69
69
|
import { t as movePathToTrash } from "./trash-ClChDUTf.js";
|
|
70
|
-
import "./server-middleware-
|
|
71
|
-
import "./tool-images-
|
|
70
|
+
import "./server-middleware-DHxnFjIL.js";
|
|
71
|
+
import "./tool-images-CmgHk8xk.js";
|
|
72
72
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-pYqswKJZ.js";
|
|
73
|
-
import "./models-config-
|
|
74
|
-
import "./exec-approvals-allowlist-
|
|
75
|
-
import "./exec-safe-bin-runtime-policy-
|
|
76
|
-
import { n as loadModelCatalog } from "./model-catalog-
|
|
77
|
-
import "./fetch-
|
|
78
|
-
import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-
|
|
79
|
-
import { t as fetchWithSsrFGuard } from "./fetch-guard-
|
|
80
|
-
import { x as extractTextFromChatContent } from "./image-
|
|
73
|
+
import "./models-config-AePb9RAo.js";
|
|
74
|
+
import "./exec-approvals-allowlist-CFjPSbxI.js";
|
|
75
|
+
import "./exec-safe-bin-runtime-policy-CpMj95vJ.js";
|
|
76
|
+
import { n as loadModelCatalog } from "./model-catalog-DFi9HgWu.js";
|
|
77
|
+
import "./fetch-DOjg912W.js";
|
|
78
|
+
import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-DkibzFT2.js";
|
|
79
|
+
import { t as fetchWithSsrFGuard } from "./fetch-guard-Csbz9pui.js";
|
|
80
|
+
import { x as extractTextFromChatContent } from "./image-BjuH1GKB.js";
|
|
81
81
|
import "./tool-display-0M664wep.js";
|
|
82
|
-
import "./api-key-rotation-
|
|
82
|
+
import "./api-key-rotation-Cf7QM5M_.js";
|
|
83
83
|
import "./proxy-fetch-DEHZt1Tx.js";
|
|
84
|
-
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
84
|
+
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-H_GSyyzN.js";
|
|
85
85
|
import "./chunk-kLPohhLl.js";
|
|
86
|
-
import "./markdown-tables-
|
|
87
|
-
import "./ir-
|
|
86
|
+
import "./markdown-tables-DQlQMRGZ.js";
|
|
87
|
+
import "./ir-CEwBpxhC.js";
|
|
88
88
|
import "./render-CXDO_kgw.js";
|
|
89
|
-
import { a as ToolInputError } from "./target-errors-
|
|
90
|
-
import { r as isRestartEnabled } from "./commands-
|
|
91
|
-
import "./commands-registry-
|
|
89
|
+
import { a as ToolInputError } from "./target-errors-DPJ9HFp9.js";
|
|
90
|
+
import { r as isRestartEnabled } from "./commands-d8L0zY8O.js";
|
|
91
|
+
import "./commands-registry-C78O6aNi.js";
|
|
92
92
|
import "./fetch-BM2hI5N6.js";
|
|
93
93
|
import "./retry-DwXRBpwv.js";
|
|
94
|
-
import { a as readChannelAllowFromStoreSync } from "./pairing-store-
|
|
94
|
+
import { a as readChannelAllowFromStoreSync } from "./pairing-store-rFuiIoGM.js";
|
|
95
95
|
import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-HRn5F9dF.js";
|
|
96
|
-
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-
|
|
97
|
-
import { n as resolveSystemRunCommand } from "./system-run-command-
|
|
98
|
-
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-
|
|
96
|
+
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-BHwVUMr8.js";
|
|
97
|
+
import { n as resolveSystemRunCommand } from "./system-run-command-XHAlbx5q.js";
|
|
98
|
+
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-DxaIoRMp.js";
|
|
99
99
|
import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-BCEcVVJ6.js";
|
|
100
100
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-JlIz56oG.js";
|
|
101
|
-
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-
|
|
102
|
-
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
101
|
+
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-Cpr3Poo2.js";
|
|
102
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-Bevk6X_8.js";
|
|
103
103
|
import { t as getChannelActivity } from "./channel-activity-C-cvytUe.js";
|
|
104
104
|
import { n as normalizePollInput } from "./polls-CWOwBT3z.js";
|
|
105
|
-
import "./tables-
|
|
106
|
-
import "./server-lifecycle-
|
|
105
|
+
import "./tables-BOsRa7CS.js";
|
|
106
|
+
import "./server-lifecycle-CcYnyYPQ.js";
|
|
107
107
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-Cek4Eizw.js";
|
|
108
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
109
|
-
import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
110
|
-
import "./send-
|
|
111
|
-
import "./outbound-attachment-
|
|
108
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-DGtYwfd7.js";
|
|
109
|
+
import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-S_lBQAKI.js";
|
|
110
|
+
import "./send-CZ2O-5pP.js";
|
|
111
|
+
import "./outbound-attachment-DM-h2uQ1.js";
|
|
112
112
|
import "./delivery-queue-DhqwvOP8.js";
|
|
113
|
-
import "./send-
|
|
114
|
-
import "./resolve-route-
|
|
115
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-
|
|
113
|
+
import "./send-BCLu4NEE.js";
|
|
114
|
+
import "./resolve-route-ByAwAiq5.js";
|
|
115
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DRW8ya1z.js";
|
|
116
116
|
import "./proxy-Dz7xT2Z_.js";
|
|
117
|
-
import "./replies-
|
|
118
|
-
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-
|
|
117
|
+
import "./replies-BDnb0prE.js";
|
|
118
|
+
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-D8lLbK3A.js";
|
|
119
119
|
import "./prompt-style-CzS6Prvl.js";
|
|
120
|
-
import "./pairing-labels-
|
|
121
|
-
import "./session-meta-
|
|
122
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
123
|
-
import { r as resolveMemorySearchConfig } from "./manager-
|
|
124
|
-
import "./query-expansion-
|
|
120
|
+
import "./pairing-labels-x4akYNb7.js";
|
|
121
|
+
import "./session-meta-Cew1QAYN.js";
|
|
122
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-BUrf60e_.js";
|
|
123
|
+
import { r as resolveMemorySearchConfig } from "./manager-DWpiNvlg.js";
|
|
124
|
+
import "./query-expansion-Ba9OpCm9.js";
|
|
125
125
|
import { t as formatDocsLink } from "./links-BDNlbZvM.js";
|
|
126
126
|
import { n as runCommandWithRuntime } from "./cli-utils-k9A6CA1o.js";
|
|
127
127
|
import { t as formatHelpExamples } from "./help-format-B3bKmDqF.js";
|
|
@@ -132,46 +132,46 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-B9LIt3MU.
|
|
|
132
132
|
import { n as inheritOptionFromParent } from "./command-options-ZvhOayEd.js";
|
|
133
133
|
import { t as WizardCancelledError } from "./prompts-DomsZukd.js";
|
|
134
134
|
import { t as resolveChannelDefaultAccountId } from "./helpers-B7sHmVvT.js";
|
|
135
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
136
|
-
import { t as isWithinDir } from "./path-safety-
|
|
137
|
-
import { t as assertCanonicalPathWithinBase } from "./install-safe-path-
|
|
138
|
-
import "./skill-scanner-
|
|
139
|
-
import { n as formatConfigIssueLines } from "./issue-format-
|
|
135
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DA3Y8w1t.js";
|
|
136
|
+
import { t as isWithinDir } from "./path-safety-BxYB92SS.js";
|
|
137
|
+
import { t as assertCanonicalPathWithinBase } from "./install-safe-path-DVQh7rEs.js";
|
|
138
|
+
import "./skill-scanner-0-AybMIe.js";
|
|
139
|
+
import { n as formatConfigIssueLines } from "./issue-format-NBMJ5xAP.js";
|
|
140
140
|
import { t as buildChannelAccountSnapshot } from "./status-BrwHRn2B.js";
|
|
141
|
-
import "./channels-status-issues-
|
|
142
|
-
import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-
|
|
143
|
-
import "./daemon-install-helpers-
|
|
141
|
+
import "./channels-status-issues-BMNB2aMG.js";
|
|
142
|
+
import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-kY3aFpcF.js";
|
|
143
|
+
import "./daemon-install-helpers-D5tste0V.js";
|
|
144
144
|
import "./runtime-guard-Ch9ZniVU.js";
|
|
145
|
-
import "./systemd-
|
|
146
|
-
import "./service-
|
|
147
|
-
import "./lifecycle-core-
|
|
148
|
-
import "./systemd-hints-
|
|
145
|
+
import "./systemd-C4JtDaKk.js";
|
|
146
|
+
import "./service-CZORJG4z.js";
|
|
147
|
+
import "./lifecycle-core-oTVOKNSW.js";
|
|
148
|
+
import "./systemd-hints-ZHrBbXDd.js";
|
|
149
149
|
import { t as parsePort$1 } from "./parse-port-DPUPC687.js";
|
|
150
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
151
|
-
import "./diagnostics-
|
|
150
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-oCVkh3bg.js";
|
|
151
|
+
import "./diagnostics-vLzdmcgg.js";
|
|
152
152
|
import "./table-BHL_2Py1.js";
|
|
153
153
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-Dnn3h3FI.js";
|
|
154
|
-
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-
|
|
155
|
-
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-
|
|
156
|
-
import { t as discoverGatewayBeacons } from "./bonjour-discovery-
|
|
157
|
-
import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-
|
|
158
|
-
import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-
|
|
159
|
-
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
160
|
-
import { o as isBitseekBuild } from "./status.update-
|
|
161
|
-
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-
|
|
162
|
-
import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-
|
|
163
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
164
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-
|
|
154
|
+
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BZscafy-.js";
|
|
155
|
+
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-TSVXvoTa.js";
|
|
156
|
+
import { t as discoverGatewayBeacons } from "./bonjour-discovery-B68dCYTY.js";
|
|
157
|
+
import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-Dw7ag8qn.js";
|
|
158
|
+
import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-Dzwp2cfK.js";
|
|
159
|
+
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Czpjuiah.js";
|
|
160
|
+
import { o as isBitseekBuild } from "./status.update-B6whKviL.js";
|
|
161
|
+
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-DNFdIaSr.js";
|
|
162
|
+
import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-Cx-7xFzl.js";
|
|
163
|
+
import { t as runOnboardingWizard } from "./onboarding-WDRpEgra.js";
|
|
164
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-DRX0c6-y.js";
|
|
165
165
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CIlkd6Jc.js";
|
|
166
|
-
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-
|
|
167
|
-
import "./node-service-
|
|
166
|
+
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-DMwxqhrG.js";
|
|
167
|
+
import "./node-service-83OYUi14.js";
|
|
168
168
|
import "./constants-Dpz-jwYQ.js";
|
|
169
|
-
import "./shared-
|
|
170
|
-
import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-
|
|
171
|
-
import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-
|
|
172
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
173
|
-
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-
|
|
174
|
-
import { n as forceFreePortAndWait } from "./ports-
|
|
169
|
+
import "./shared-DvHQekWm.js";
|
|
170
|
+
import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-CXzE62ZH.js";
|
|
171
|
+
import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-C6-Zzqoi.js";
|
|
172
|
+
import { t as runGatewayUpdate } from "./update-runner-CHxTFtW8.js";
|
|
173
|
+
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-A5CNJccm.js";
|
|
174
|
+
import { n as forceFreePortAndWait } from "./ports-tfS1haOJ.js";
|
|
175
175
|
import { spawn, spawnSync } from "node:child_process";
|
|
176
176
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
177
177
|
import path from "node:path";
|
|
@@ -180,7 +180,7 @@ import * as fsSync from "node:fs";
|
|
|
180
180
|
import fs from "node:fs";
|
|
181
181
|
import chalk from "chalk";
|
|
182
182
|
import { isDeepStrictEqual } from "node:util";
|
|
183
|
-
import
|
|
183
|
+
import fsPromises from "node:fs/promises";
|
|
184
184
|
import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
185
185
|
import { z } from "zod";
|
|
186
186
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
@@ -1250,7 +1250,7 @@ function resolveCheckIntervalMs(cfg) {
|
|
|
1250
1250
|
}
|
|
1251
1251
|
async function readState(statePath) {
|
|
1252
1252
|
try {
|
|
1253
|
-
const raw = await
|
|
1253
|
+
const raw = await fsPromises.readFile(statePath, "utf-8");
|
|
1254
1254
|
const parsed = JSON.parse(raw);
|
|
1255
1255
|
return parsed && typeof parsed === "object" ? parsed : {};
|
|
1256
1256
|
} catch {
|
|
@@ -1331,7 +1331,7 @@ async function runAutoUpdateCommand(params) {
|
|
|
1331
1331
|
path.join(params.root, "dist", "index.mjs")
|
|
1332
1332
|
];
|
|
1333
1333
|
for (const candidate of candidates) try {
|
|
1334
|
-
await
|
|
1334
|
+
await fsPromises.access(candidate);
|
|
1335
1335
|
argv.push(execPath, candidate, ...baseArgs);
|
|
1336
1336
|
break;
|
|
1337
1337
|
} catch {}
|
|
@@ -4406,20 +4406,20 @@ async function drainPendingWrite(filePath) {
|
|
|
4406
4406
|
if (pending) await pending.catch(() => void 0);
|
|
4407
4407
|
}
|
|
4408
4408
|
async function pruneIfNeeded(filePath, opts) {
|
|
4409
|
-
const stat = await
|
|
4409
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
4410
4410
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
4411
|
-
const lines = (await
|
|
4411
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
4412
4412
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
4413
4413
|
const { randomBytes } = await import("node:crypto");
|
|
4414
4414
|
const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
4415
|
-
await
|
|
4416
|
-
await
|
|
4415
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
4416
|
+
await fsPromises.rename(tmp, filePath);
|
|
4417
4417
|
}
|
|
4418
4418
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
4419
4419
|
const resolved = path.resolve(filePath);
|
|
4420
4420
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
4421
|
-
await
|
|
4422
|
-
await
|
|
4421
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
4422
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
4423
4423
|
await pruneIfNeeded(resolved, {
|
|
4424
4424
|
maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
|
|
4425
4425
|
keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
|
|
@@ -4513,7 +4513,7 @@ function filterRunLogEntries(entries, opts) {
|
|
|
4513
4513
|
async function readCronRunLogEntriesPage(filePath, opts) {
|
|
4514
4514
|
await drainPendingWrite(filePath);
|
|
4515
4515
|
const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
|
|
4516
|
-
const raw = await
|
|
4516
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
4517
4517
|
const statuses = normalizeRunStatuses(opts);
|
|
4518
4518
|
const deliveryStatuses = normalizeDeliveryStatuses(opts);
|
|
4519
4519
|
const query = opts?.query?.trim().toLowerCase() ?? "";
|
|
@@ -4549,7 +4549,7 @@ async function readCronRunLogEntriesPageAll(opts) {
|
|
|
4549
4549
|
const query = opts.query?.trim().toLowerCase() ?? "";
|
|
4550
4550
|
const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
|
|
4551
4551
|
const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
|
|
4552
|
-
const jsonlFiles = (await
|
|
4552
|
+
const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
|
|
4553
4553
|
if (jsonlFiles.length === 0) return {
|
|
4554
4554
|
entries: [],
|
|
4555
4555
|
total: 0,
|
|
@@ -4560,7 +4560,7 @@ async function readCronRunLogEntriesPageAll(opts) {
|
|
|
4560
4560
|
};
|
|
4561
4561
|
await Promise.all(jsonlFiles.map((f) => drainPendingWrite(f)));
|
|
4562
4562
|
const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
|
|
4563
|
-
return parseAllRunLogEntries(await
|
|
4563
|
+
return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
|
|
4564
4564
|
}))).flat(), {
|
|
4565
4565
|
statuses,
|
|
4566
4566
|
deliveryStatuses,
|
|
@@ -9768,7 +9768,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
|
|
|
9768
9768
|
}
|
|
9769
9769
|
async function resolveWorkspaceRealPath(workspaceDir) {
|
|
9770
9770
|
try {
|
|
9771
|
-
return await
|
|
9771
|
+
return await fsPromises.realpath(workspaceDir);
|
|
9772
9772
|
} catch {
|
|
9773
9773
|
return path.resolve(workspaceDir);
|
|
9774
9774
|
}
|
|
@@ -9792,7 +9792,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9792
9792
|
}
|
|
9793
9793
|
let candidateLstat;
|
|
9794
9794
|
try {
|
|
9795
|
-
candidateLstat = await
|
|
9795
|
+
candidateLstat = await fsPromises.lstat(candidatePath);
|
|
9796
9796
|
} catch (err) {
|
|
9797
9797
|
if (isNotFoundPathError(err)) {
|
|
9798
9798
|
if (params.allowMissing) return {
|
|
@@ -9812,7 +9812,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9812
9812
|
if (candidateLstat.isSymbolicLink()) {
|
|
9813
9813
|
let targetReal;
|
|
9814
9814
|
try {
|
|
9815
|
-
targetReal = await
|
|
9815
|
+
targetReal = await fsPromises.realpath(candidatePath);
|
|
9816
9816
|
} catch (err) {
|
|
9817
9817
|
if (isNotFoundPathError(err)) {
|
|
9818
9818
|
if (params.allowMissing) return {
|
|
@@ -9831,7 +9831,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9831
9831
|
}
|
|
9832
9832
|
let targetStat;
|
|
9833
9833
|
try {
|
|
9834
|
-
targetStat = await
|
|
9834
|
+
targetStat = await fsPromises.stat(targetReal);
|
|
9835
9835
|
} catch (err) {
|
|
9836
9836
|
if (isNotFoundPathError(err)) {
|
|
9837
9837
|
if (params.allowMissing) return {
|
|
@@ -9878,13 +9878,13 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9878
9878
|
return {
|
|
9879
9879
|
kind: "ready",
|
|
9880
9880
|
requestPath,
|
|
9881
|
-
ioPath: await
|
|
9881
|
+
ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
|
|
9882
9882
|
workspaceReal
|
|
9883
9883
|
};
|
|
9884
9884
|
}
|
|
9885
9885
|
async function statFileSafely(filePath) {
|
|
9886
9886
|
try {
|
|
9887
|
-
const [stat, lstat] = await Promise.all([
|
|
9887
|
+
const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
|
|
9888
9888
|
if (lstat.isSymbolicLink() || !stat.isFile()) return null;
|
|
9889
9889
|
if (stat.nlink > 1) return null;
|
|
9890
9890
|
if (!sameFileIdentity(stat, lstat)) return null;
|
|
@@ -9969,7 +9969,7 @@ function resolveOptionalStringParam(value) {
|
|
|
9969
9969
|
async function moveToTrashBestEffort(pathname) {
|
|
9970
9970
|
if (!pathname) return;
|
|
9971
9971
|
try {
|
|
9972
|
-
await
|
|
9972
|
+
await fsPromises.access(pathname);
|
|
9973
9973
|
} catch {
|
|
9974
9974
|
return;
|
|
9975
9975
|
}
|
|
@@ -10045,7 +10045,7 @@ const agentsHandlers = {
|
|
|
10045
10045
|
dir: workspaceDir,
|
|
10046
10046
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
10047
10047
|
});
|
|
10048
|
-
await
|
|
10048
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
10049
10049
|
await writeConfigFile(nextConfig);
|
|
10050
10050
|
const safeName = sanitizeIdentityLine(rawName);
|
|
10051
10051
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -10058,7 +10058,7 @@ const agentsHandlers = {
|
|
|
10058
10058
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
10059
10059
|
""
|
|
10060
10060
|
];
|
|
10061
|
-
await
|
|
10061
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
10062
10062
|
respond(true, {
|
|
10063
10063
|
ok: true,
|
|
10064
10064
|
agentId,
|
|
@@ -10093,9 +10093,9 @@ const agentsHandlers = {
|
|
|
10093
10093
|
});
|
|
10094
10094
|
if (avatar) {
|
|
10095
10095
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
10096
|
-
await
|
|
10096
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
10097
10097
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
10098
|
-
await
|
|
10098
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
10099
10099
|
}
|
|
10100
10100
|
respond(true, {
|
|
10101
10101
|
ok: true,
|
|
@@ -10219,7 +10219,7 @@ const agentsHandlers = {
|
|
|
10219
10219
|
const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
|
|
10220
10220
|
if (!resolved) return;
|
|
10221
10221
|
const { agentId, workspaceDir, name } = resolved;
|
|
10222
|
-
await
|
|
10222
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
10223
10223
|
const filePath = path.join(workspaceDir, name);
|
|
10224
10224
|
const resolvedPath = await resolveWorkspaceFilePathOrRespond({
|
|
10225
10225
|
respond,
|
|
@@ -12512,14 +12512,14 @@ function isRollingLogFile(file) {
|
|
|
12512
12512
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
12513
12513
|
}
|
|
12514
12514
|
async function resolveLogFile(file) {
|
|
12515
|
-
if (await
|
|
12515
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
12516
12516
|
if (!isRollingLogFile(file)) return file;
|
|
12517
12517
|
const dir = path.dirname(file);
|
|
12518
|
-
const entries = await
|
|
12518
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
12519
12519
|
if (!entries) return file;
|
|
12520
12520
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
12521
12521
|
const fullPath = path.join(dir, entry.name);
|
|
12522
|
-
const fileStat = await
|
|
12522
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
12523
12523
|
return fileStat ? {
|
|
12524
12524
|
path: fullPath,
|
|
12525
12525
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -12527,7 +12527,7 @@ async function resolveLogFile(file) {
|
|
|
12527
12527
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
12528
12528
|
}
|
|
12529
12529
|
async function readLogSlice(params) {
|
|
12530
|
-
const stat = await
|
|
12530
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
12531
12531
|
if (!stat) return {
|
|
12532
12532
|
cursor: 0,
|
|
12533
12533
|
size: 0,
|
|
@@ -12565,7 +12565,7 @@ async function readLogSlice(params) {
|
|
|
12565
12565
|
truncated,
|
|
12566
12566
|
reset
|
|
12567
12567
|
};
|
|
12568
|
-
const handle = await
|
|
12568
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
12569
12569
|
try {
|
|
12570
12570
|
let prefix = "";
|
|
12571
12571
|
if (start > 0) {
|
|
@@ -13612,7 +13612,7 @@ const nodeHandlers = {
|
|
|
13612
13612
|
const p = params;
|
|
13613
13613
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
13614
13614
|
await respondUnavailableOnThrow(respond, async () => {
|
|
13615
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
13615
|
+
const { handleNodeEvent } = await import("./server-node-events-B5xSV7Kq.js");
|
|
13616
13616
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
13617
13617
|
await handleNodeEvent({
|
|
13618
13618
|
deps: context.deps,
|
|
@@ -14007,120 +14007,283 @@ const sendHandlers = {
|
|
|
14007
14007
|
//#region src/agents/skills-market-catalog.ts
|
|
14008
14008
|
const OFFICIAL_MARKET_CATALOG = [
|
|
14009
14009
|
{
|
|
14010
|
-
id: "
|
|
14011
|
-
skillKey: "
|
|
14012
|
-
name: "
|
|
14013
|
-
summary: "
|
|
14014
|
-
provider: "
|
|
14015
|
-
category: "
|
|
14010
|
+
id: "xiaohongshu-mcp",
|
|
14011
|
+
skillKey: "xiaohongshu-mcp",
|
|
14012
|
+
name: "Xiaohongshu Automation",
|
|
14013
|
+
summary: "Automate Xiaohongshu workflows for content operations and publishing tasks through a ClawHub skill.",
|
|
14014
|
+
provider: "Borye",
|
|
14015
|
+
category: "automation",
|
|
14016
14016
|
tags: [
|
|
14017
|
-
"
|
|
14018
|
-
"
|
|
14019
|
-
"
|
|
14020
|
-
"
|
|
14021
|
-
"mcp"
|
|
14022
|
-
"greenfield",
|
|
14023
|
-
"erc-8004"
|
|
14017
|
+
"xiaohongshu",
|
|
14018
|
+
"automation",
|
|
14019
|
+
"social",
|
|
14020
|
+
"publishing",
|
|
14021
|
+
"mcp"
|
|
14024
14022
|
],
|
|
14025
|
-
|
|
14026
|
-
|
|
14023
|
+
stars: 60,
|
|
14024
|
+
downloads: 15840,
|
|
14025
|
+
sourceType: "clawhub",
|
|
14026
|
+
slug: "xiaohongshu-mcp",
|
|
14027
14027
|
official: true
|
|
14028
14028
|
},
|
|
14029
14029
|
{
|
|
14030
|
-
id: "
|
|
14031
|
-
skillKey: "
|
|
14032
|
-
name: "
|
|
14033
|
-
summary: "
|
|
14034
|
-
provider: "
|
|
14035
|
-
category: "
|
|
14030
|
+
id: "github",
|
|
14031
|
+
skillKey: "github",
|
|
14032
|
+
name: "Github",
|
|
14033
|
+
summary: "Work with GitHub repositories, issues, pull requests, and other developer workflows from ClawHub.",
|
|
14034
|
+
provider: "steipete",
|
|
14035
|
+
category: "developer-tools",
|
|
14036
14036
|
tags: [
|
|
14037
|
-
"
|
|
14038
|
-
"
|
|
14039
|
-
"
|
|
14040
|
-
"
|
|
14041
|
-
"
|
|
14042
|
-
"market",
|
|
14043
|
-
"index"
|
|
14037
|
+
"github",
|
|
14038
|
+
"git",
|
|
14039
|
+
"developer",
|
|
14040
|
+
"issues",
|
|
14041
|
+
"pull-requests"
|
|
14044
14042
|
],
|
|
14045
|
-
|
|
14046
|
-
|
|
14043
|
+
stars: 323,
|
|
14044
|
+
downloads: 99937,
|
|
14045
|
+
sourceType: "clawhub",
|
|
14046
|
+
slug: "github",
|
|
14047
14047
|
official: true
|
|
14048
14048
|
},
|
|
14049
14049
|
{
|
|
14050
|
-
id: "
|
|
14051
|
-
skillKey: "
|
|
14052
|
-
name: "
|
|
14053
|
-
summary: "
|
|
14054
|
-
provider: "
|
|
14055
|
-
category: "
|
|
14050
|
+
id: "openai-whisper",
|
|
14051
|
+
skillKey: "openai-whisper",
|
|
14052
|
+
name: "Openai Whisper",
|
|
14053
|
+
summary: "Transcribe and process audio with Whisper via a ClawHub skill for speech-to-text workflows.",
|
|
14054
|
+
provider: "steipete",
|
|
14055
|
+
category: "audio-media",
|
|
14056
|
+
tags: [
|
|
14057
|
+
"audio",
|
|
14058
|
+
"transcription",
|
|
14059
|
+
"whisper",
|
|
14060
|
+
"speech-to-text",
|
|
14061
|
+
"media"
|
|
14062
|
+
],
|
|
14063
|
+
stars: 197,
|
|
14064
|
+
downloads: 42056,
|
|
14065
|
+
sourceType: "clawhub",
|
|
14066
|
+
slug: "openai-whisper",
|
|
14067
|
+
official: true
|
|
14068
|
+
},
|
|
14069
|
+
{
|
|
14070
|
+
id: "skill-vetter",
|
|
14071
|
+
skillKey: "skill-vetter",
|
|
14072
|
+
name: "Skill Vetter",
|
|
14073
|
+
summary: "Review and vet skills before adoption to help evaluate quality, fit, and readiness.",
|
|
14074
|
+
provider: "spclaudehome",
|
|
14075
|
+
category: "meta-security",
|
|
14076
|
+
tags: [
|
|
14077
|
+
"skills",
|
|
14078
|
+
"review",
|
|
14079
|
+
"vetting",
|
|
14080
|
+
"quality",
|
|
14081
|
+
"evaluation"
|
|
14082
|
+
],
|
|
14083
|
+
stars: 290,
|
|
14084
|
+
downloads: 73729,
|
|
14085
|
+
sourceType: "clawhub",
|
|
14086
|
+
slug: "skill-vetter",
|
|
14087
|
+
official: true
|
|
14088
|
+
},
|
|
14089
|
+
{
|
|
14090
|
+
id: "gog",
|
|
14091
|
+
skillKey: "gog",
|
|
14092
|
+
name: "Gog",
|
|
14093
|
+
summary: "Use Gog from ClawHub for developer and command-line workflows that benefit from fast utility tooling.",
|
|
14094
|
+
provider: "steipete",
|
|
14095
|
+
category: "developer-tools",
|
|
14096
|
+
tags: [
|
|
14097
|
+
"developer",
|
|
14098
|
+
"cli",
|
|
14099
|
+
"tooling",
|
|
14100
|
+
"workflow",
|
|
14101
|
+
"utility"
|
|
14102
|
+
],
|
|
14103
|
+
stars: 705,
|
|
14104
|
+
downloads: 106425,
|
|
14105
|
+
sourceType: "clawhub",
|
|
14106
|
+
slug: "gog",
|
|
14107
|
+
official: true
|
|
14108
|
+
},
|
|
14109
|
+
{
|
|
14110
|
+
id: "openclaw-tavily-search",
|
|
14111
|
+
skillKey: "openclaw-tavily-search",
|
|
14112
|
+
name: "Tavily Web Search",
|
|
14113
|
+
summary: "Search the web with Tavily through ClawHub for current information gathering and lightweight research.",
|
|
14114
|
+
provider: "Jacky1n7",
|
|
14115
|
+
category: "search-research",
|
|
14056
14116
|
tags: [
|
|
14057
|
-
"web3",
|
|
14058
|
-
"okx",
|
|
14059
|
-
"token",
|
|
14060
14117
|
"search",
|
|
14061
|
-
"
|
|
14062
|
-
"
|
|
14063
|
-
"
|
|
14118
|
+
"web",
|
|
14119
|
+
"research",
|
|
14120
|
+
"tavily",
|
|
14121
|
+
"current-events"
|
|
14122
|
+
],
|
|
14123
|
+
stars: 26,
|
|
14124
|
+
downloads: 17437,
|
|
14125
|
+
sourceType: "clawhub",
|
|
14126
|
+
slug: "openclaw-tavily-search",
|
|
14127
|
+
official: true
|
|
14128
|
+
},
|
|
14129
|
+
{
|
|
14130
|
+
id: "summarize",
|
|
14131
|
+
skillKey: "summarize",
|
|
14132
|
+
name: "Summarize",
|
|
14133
|
+
summary: "Summarize documents, pages, and other text content through a focused ClawHub skill.",
|
|
14134
|
+
provider: "steipete",
|
|
14135
|
+
category: "search-research",
|
|
14136
|
+
tags: [
|
|
14137
|
+
"summarization",
|
|
14138
|
+
"text",
|
|
14139
|
+
"research",
|
|
14140
|
+
"documents",
|
|
14141
|
+
"analysis"
|
|
14064
14142
|
],
|
|
14065
|
-
|
|
14066
|
-
|
|
14143
|
+
stars: 542,
|
|
14144
|
+
downloads: 139326,
|
|
14145
|
+
sourceType: "clawhub",
|
|
14146
|
+
slug: "summarize",
|
|
14067
14147
|
official: true
|
|
14068
14148
|
},
|
|
14069
14149
|
{
|
|
14070
|
-
id: "
|
|
14071
|
-
skillKey: "
|
|
14072
|
-
name: "
|
|
14073
|
-
summary: "
|
|
14074
|
-
provider: "
|
|
14075
|
-
category: "
|
|
14150
|
+
id: "skill-security-auditor",
|
|
14151
|
+
skillKey: "skill-security-auditor",
|
|
14152
|
+
name: "Skill Security Auditor",
|
|
14153
|
+
summary: "Audit skills for security concerns and suspicious patterns before enabling them in production workflows.",
|
|
14154
|
+
provider: "akhmittra",
|
|
14155
|
+
category: "meta-security",
|
|
14076
14156
|
tags: [
|
|
14077
|
-
"
|
|
14078
|
-
"
|
|
14079
|
-
"
|
|
14080
|
-
"
|
|
14081
|
-
"
|
|
14082
|
-
"holdings"
|
|
14157
|
+
"security",
|
|
14158
|
+
"audit",
|
|
14159
|
+
"skills",
|
|
14160
|
+
"review",
|
|
14161
|
+
"risk"
|
|
14083
14162
|
],
|
|
14084
|
-
|
|
14085
|
-
|
|
14163
|
+
stars: 2,
|
|
14164
|
+
downloads: 2547,
|
|
14165
|
+
sourceType: "clawhub",
|
|
14166
|
+
slug: "skill-security-auditor",
|
|
14086
14167
|
official: true
|
|
14087
14168
|
},
|
|
14088
14169
|
{
|
|
14089
|
-
id: "
|
|
14090
|
-
skillKey: "
|
|
14091
|
-
name: "
|
|
14092
|
-
summary: "
|
|
14093
|
-
provider: "
|
|
14094
|
-
category: "
|
|
14170
|
+
id: "self-improving-agent",
|
|
14171
|
+
skillKey: "self-improving-agent",
|
|
14172
|
+
name: "Self Improving Agent",
|
|
14173
|
+
summary: "Use a ClawHub agent focused on iterating on its own behavior and improving workflows over time.",
|
|
14174
|
+
provider: "pskoett",
|
|
14175
|
+
category: "meta-security",
|
|
14095
14176
|
tags: [
|
|
14096
|
-
"
|
|
14097
|
-
"
|
|
14098
|
-
"
|
|
14099
|
-
"
|
|
14100
|
-
"
|
|
14101
|
-
"liquidity"
|
|
14177
|
+
"agent",
|
|
14178
|
+
"self-improvement",
|
|
14179
|
+
"iteration",
|
|
14180
|
+
"optimization",
|
|
14181
|
+
"meta"
|
|
14102
14182
|
],
|
|
14103
|
-
|
|
14104
|
-
|
|
14183
|
+
stars: 1863,
|
|
14184
|
+
downloads: 185770,
|
|
14185
|
+
sourceType: "clawhub",
|
|
14186
|
+
slug: "self-improving-agent",
|
|
14105
14187
|
official: true
|
|
14106
14188
|
},
|
|
14107
14189
|
{
|
|
14108
|
-
id: "
|
|
14109
|
-
skillKey: "
|
|
14110
|
-
name: "
|
|
14111
|
-
summary: "
|
|
14112
|
-
provider: "
|
|
14113
|
-
category: "
|
|
14190
|
+
id: "find-skills",
|
|
14191
|
+
skillKey: "find-skills",
|
|
14192
|
+
name: "Find Skills",
|
|
14193
|
+
summary: "Discover relevant ClawHub skills for a task so agents can expand capabilities on demand.",
|
|
14194
|
+
provider: "JimLiuxinghai",
|
|
14195
|
+
category: "meta-security",
|
|
14114
14196
|
tags: [
|
|
14115
|
-
"
|
|
14116
|
-
"
|
|
14117
|
-
"
|
|
14118
|
-
"
|
|
14119
|
-
"
|
|
14120
|
-
"broadcast"
|
|
14197
|
+
"skills",
|
|
14198
|
+
"discovery",
|
|
14199
|
+
"registry",
|
|
14200
|
+
"clawhub",
|
|
14201
|
+
"meta"
|
|
14121
14202
|
],
|
|
14122
|
-
|
|
14123
|
-
|
|
14203
|
+
stars: 766,
|
|
14204
|
+
downloads: 181109,
|
|
14205
|
+
sourceType: "clawhub",
|
|
14206
|
+
slug: "find-skills",
|
|
14207
|
+
official: true
|
|
14208
|
+
},
|
|
14209
|
+
{
|
|
14210
|
+
id: "obsidian",
|
|
14211
|
+
skillKey: "obsidian",
|
|
14212
|
+
name: "Obsidian",
|
|
14213
|
+
summary: "Work with Obsidian notes and knowledge-base content through a ClawHub integration skill.",
|
|
14214
|
+
provider: "steipete",
|
|
14215
|
+
category: "developer-tools",
|
|
14216
|
+
tags: [
|
|
14217
|
+
"obsidian",
|
|
14218
|
+
"notes",
|
|
14219
|
+
"knowledge-base",
|
|
14220
|
+
"markdown",
|
|
14221
|
+
"productivity"
|
|
14222
|
+
],
|
|
14223
|
+
stars: 187,
|
|
14224
|
+
downloads: 47182,
|
|
14225
|
+
sourceType: "clawhub",
|
|
14226
|
+
slug: "obsidian",
|
|
14227
|
+
official: true
|
|
14228
|
+
},
|
|
14229
|
+
{
|
|
14230
|
+
id: "skill-creator-2",
|
|
14231
|
+
skillKey: "skill-creator-2",
|
|
14232
|
+
name: "Skill creator",
|
|
14233
|
+
summary: "Create new skills with a ClawHub-assisted builder aimed at packaging and publishing reusable capabilities.",
|
|
14234
|
+
provider: "yixinli867",
|
|
14235
|
+
category: "meta-security",
|
|
14236
|
+
tags: [
|
|
14237
|
+
"skills",
|
|
14238
|
+
"creator",
|
|
14239
|
+
"builder",
|
|
14240
|
+
"packaging",
|
|
14241
|
+
"clawhub"
|
|
14242
|
+
],
|
|
14243
|
+
stars: 26,
|
|
14244
|
+
downloads: 5116,
|
|
14245
|
+
sourceType: "clawhub",
|
|
14246
|
+
slug: "skill-creator-2",
|
|
14247
|
+
official: true
|
|
14248
|
+
},
|
|
14249
|
+
{
|
|
14250
|
+
id: "upload-post",
|
|
14251
|
+
skillKey: "upload-post",
|
|
14252
|
+
name: "Upload Post",
|
|
14253
|
+
summary: "Upload and publish posts through a ClawHub automation skill for social and content workflows.",
|
|
14254
|
+
provider: "victorcavero14",
|
|
14255
|
+
category: "automation",
|
|
14256
|
+
tags: [
|
|
14257
|
+
"upload",
|
|
14258
|
+
"post",
|
|
14259
|
+
"publishing",
|
|
14260
|
+
"social",
|
|
14261
|
+
"automation"
|
|
14262
|
+
],
|
|
14263
|
+
stars: 35,
|
|
14264
|
+
downloads: 6588,
|
|
14265
|
+
sourceType: "clawhub",
|
|
14266
|
+
slug: "upload-post",
|
|
14267
|
+
official: true
|
|
14268
|
+
},
|
|
14269
|
+
{
|
|
14270
|
+
id: "security-auditor",
|
|
14271
|
+
skillKey: "security-auditor",
|
|
14272
|
+
name: "Security Auditor",
|
|
14273
|
+
summary: "Run security-oriented reviews and checks with a general-purpose ClawHub security auditing skill.",
|
|
14274
|
+
provider: "jgarrison929",
|
|
14275
|
+
category: "meta-security",
|
|
14276
|
+
tags: [
|
|
14277
|
+
"security",
|
|
14278
|
+
"auditor",
|
|
14279
|
+
"review",
|
|
14280
|
+
"analysis",
|
|
14281
|
+
"checks"
|
|
14282
|
+
],
|
|
14283
|
+
stars: 14,
|
|
14284
|
+
downloads: 10926,
|
|
14285
|
+
sourceType: "clawhub",
|
|
14286
|
+
slug: "security-auditor",
|
|
14124
14287
|
official: true
|
|
14125
14288
|
}
|
|
14126
14289
|
];
|
|
@@ -14138,6 +14301,17 @@ function isCommandNotFoundResult(result) {
|
|
|
14138
14301
|
const output = `${result.stderr}\n${result.stdout}`.toLowerCase();
|
|
14139
14302
|
return output.includes("enoent") || output.includes("command not found") || output.includes("not recognized as an internal or external command");
|
|
14140
14303
|
}
|
|
14304
|
+
async function runMarketInstallCommand(runCommand, argv, options) {
|
|
14305
|
+
try {
|
|
14306
|
+
return await runCommand(argv, options);
|
|
14307
|
+
} catch (err) {
|
|
14308
|
+
return {
|
|
14309
|
+
code: null,
|
|
14310
|
+
stdout: "",
|
|
14311
|
+
stderr: err instanceof Error ? err.message : String(err)
|
|
14312
|
+
};
|
|
14313
|
+
}
|
|
14314
|
+
}
|
|
14141
14315
|
async function installLocalMarketSkill(params) {
|
|
14142
14316
|
const templateDir = params.templateDir.trim();
|
|
14143
14317
|
if (hasPathTraversal(templateDir)) return {
|
|
@@ -14158,11 +14332,11 @@ async function installLocalMarketSkill(params) {
|
|
|
14158
14332
|
candidatePath: sourceDir,
|
|
14159
14333
|
boundaryLabel: "market templates directory"
|
|
14160
14334
|
});
|
|
14161
|
-
if (!(await
|
|
14335
|
+
if (!(await fsPromises.stat(sourceDir)).isDirectory()) return {
|
|
14162
14336
|
ok: false,
|
|
14163
14337
|
message: `Local template "${templateDir}" is not a directory.`
|
|
14164
14338
|
};
|
|
14165
|
-
if (!(await
|
|
14339
|
+
if (!(await fsPromises.stat(sourceSkillPath)).isFile()) return {
|
|
14166
14340
|
ok: false,
|
|
14167
14341
|
message: `Local template "${templateDir}" is missing SKILL.md.`
|
|
14168
14342
|
};
|
|
@@ -14176,13 +14350,13 @@ async function installLocalMarketSkill(params) {
|
|
|
14176
14350
|
const workspaceSkillsDir = path.join(workspaceDir, "skills");
|
|
14177
14351
|
const targetDir = path.join(workspaceSkillsDir, templateDir);
|
|
14178
14352
|
try {
|
|
14179
|
-
await
|
|
14353
|
+
await fsPromises.mkdir(workspaceSkillsDir, { recursive: true });
|
|
14180
14354
|
await assertCanonicalPathWithinBase({
|
|
14181
14355
|
baseDir: workspaceSkillsDir,
|
|
14182
14356
|
candidatePath: targetDir,
|
|
14183
14357
|
boundaryLabel: "workspace skills directory"
|
|
14184
14358
|
});
|
|
14185
|
-
await
|
|
14359
|
+
await fsPromises.cp(sourceDir, targetDir, {
|
|
14186
14360
|
recursive: true,
|
|
14187
14361
|
force: true
|
|
14188
14362
|
});
|
|
@@ -14206,7 +14380,7 @@ async function installClawhubMarketSkill(params, deps) {
|
|
|
14206
14380
|
const workspaceDir = resolveUserPath(params.workspaceDir);
|
|
14207
14381
|
const timeoutMs = Math.min(Math.max(params.timeoutMs ?? 3e5, 1e3), 9e5);
|
|
14208
14382
|
const runCommand = deps?.runCommand ?? runCommandWithTimeout;
|
|
14209
|
-
const first = await runCommand
|
|
14383
|
+
const first = await runMarketInstallCommand(runCommand, [
|
|
14210
14384
|
"clawhub",
|
|
14211
14385
|
"install",
|
|
14212
14386
|
slug
|
|
@@ -14222,7 +14396,7 @@ async function installClawhubMarketSkill(params, deps) {
|
|
|
14222
14396
|
ok: false,
|
|
14223
14397
|
message: `ClawHub install failed: ${formatInstallFailureMessage(first)}`
|
|
14224
14398
|
};
|
|
14225
|
-
const fallback = await runCommand
|
|
14399
|
+
const fallback = await runMarketInstallCommand(runCommand, [
|
|
14226
14400
|
"npx",
|
|
14227
14401
|
"-y",
|
|
14228
14402
|
"clawhub",
|
|
@@ -16968,7 +17142,7 @@ function normalizeAgentPayload(payload) {
|
|
|
16968
17142
|
async function startBrowserControlServerIfEnabled() {
|
|
16969
17143
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
16970
17144
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
16971
|
-
const mod = override ? await import(override) : await import("./server-
|
|
17145
|
+
const mod = override ? await import(override) : await import("./server-CzDsmd9g.js");
|
|
16972
17146
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
16973
17147
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
16974
17148
|
if (!start) return null;
|
|
@@ -17196,7 +17370,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
|
|
|
17196
17370
|
if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
17197
17371
|
const candidate = path.join(rootReal, rel);
|
|
17198
17372
|
try {
|
|
17199
|
-
const st = await
|
|
17373
|
+
const st = await fsPromises.lstat(candidate);
|
|
17200
17374
|
if (st.isSymbolicLink()) return null;
|
|
17201
17375
|
if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
17202
17376
|
} catch {}
|
|
@@ -17233,8 +17407,8 @@ async function resolveA2uiRoot() {
|
|
|
17233
17407
|
for (const dir of candidates) try {
|
|
17234
17408
|
const indexPath = path.join(dir, "index.html");
|
|
17235
17409
|
const bundlePath = path.join(dir, "a2ui.bundle.js");
|
|
17236
|
-
await
|
|
17237
|
-
await
|
|
17410
|
+
await fsPromises.stat(indexPath);
|
|
17411
|
+
await fsPromises.stat(bundlePath);
|
|
17238
17412
|
return dir;
|
|
17239
17413
|
} catch {}
|
|
17240
17414
|
return null;
|
|
@@ -17243,7 +17417,7 @@ async function resolveA2uiRootReal() {
|
|
|
17243
17417
|
if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
|
|
17244
17418
|
if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
|
|
17245
17419
|
const root = await resolveA2uiRoot();
|
|
17246
|
-
cachedA2uiRootReal = root ? await
|
|
17420
|
+
cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
|
|
17247
17421
|
cachedA2uiResolvedAtMs = Date.now();
|
|
17248
17422
|
resolvingA2uiRoot = null;
|
|
17249
17423
|
return cachedA2uiRootReal;
|
|
@@ -17464,13 +17638,13 @@ function normalizeBasePath(rawPath) {
|
|
|
17464
17638
|
}
|
|
17465
17639
|
async function prepareCanvasRoot(rootDir) {
|
|
17466
17640
|
await ensureDir(rootDir);
|
|
17467
|
-
const rootReal = await
|
|
17641
|
+
const rootReal = await fsPromises.realpath(rootDir);
|
|
17468
17642
|
try {
|
|
17469
17643
|
const indexPath = path.join(rootReal, "index.html");
|
|
17470
|
-
await
|
|
17644
|
+
await fsPromises.stat(indexPath);
|
|
17471
17645
|
} catch {
|
|
17472
17646
|
try {
|
|
17473
|
-
await
|
|
17647
|
+
await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
|
|
17474
17648
|
} catch {}
|
|
17475
17649
|
}
|
|
17476
17650
|
return rootReal;
|
|
@@ -20477,7 +20651,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
|
|
|
20477
20651
|
}
|
|
20478
20652
|
async function readLockPayload(lockPath) {
|
|
20479
20653
|
try {
|
|
20480
|
-
const raw = await
|
|
20654
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
20481
20655
|
const parsed = JSON.parse(raw);
|
|
20482
20656
|
if (typeof parsed.pid !== "number") return null;
|
|
20483
20657
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -20512,11 +20686,11 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
20512
20686
|
const platform = opts.platform ?? process.platform;
|
|
20513
20687
|
const port = opts.port;
|
|
20514
20688
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
20515
|
-
await
|
|
20689
|
+
await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
|
|
20516
20690
|
const startedAt = Date.now();
|
|
20517
20691
|
let lastPayload = null;
|
|
20518
20692
|
while (Date.now() - startedAt < timeoutMs) try {
|
|
20519
|
-
const handle = await
|
|
20693
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
20520
20694
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
20521
20695
|
const payload = {
|
|
20522
20696
|
pid: process.pid,
|
|
@@ -20530,7 +20704,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
20530
20704
|
configPath,
|
|
20531
20705
|
release: async () => {
|
|
20532
20706
|
await handle.close().catch(() => void 0);
|
|
20533
|
-
await
|
|
20707
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
20534
20708
|
}
|
|
20535
20709
|
};
|
|
20536
20710
|
} catch (err) {
|
|
@@ -20539,7 +20713,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
20539
20713
|
const ownerPid = lastPayload?.pid;
|
|
20540
20714
|
const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
|
|
20541
20715
|
if (ownerStatus === "dead" && ownerPid) {
|
|
20542
|
-
await
|
|
20716
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
20543
20717
|
continue;
|
|
20544
20718
|
}
|
|
20545
20719
|
if (ownerStatus !== "alive") {
|
|
@@ -20549,13 +20723,13 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
20549
20723
|
stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
|
|
20550
20724
|
}
|
|
20551
20725
|
if (!stale) try {
|
|
20552
|
-
const st = await
|
|
20726
|
+
const st = await fsPromises.stat(lockPath);
|
|
20553
20727
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
20554
20728
|
} catch {
|
|
20555
20729
|
stale = false;
|
|
20556
20730
|
}
|
|
20557
20731
|
if (stale) {
|
|
20558
|
-
await
|
|
20732
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
20559
20733
|
continue;
|
|
20560
20734
|
}
|
|
20561
20735
|
}
|
|
@@ -22865,7 +23039,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
22865
23039
|
if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
|
|
22866
23040
|
if (!minimalTestGateway) (async () => {
|
|
22867
23041
|
const { recoverPendingDeliveries } = await import("./delivery-queue-DhqwvOP8.js").then((n) => n.n);
|
|
22868
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
23042
|
+
const { deliverOutboundPayloads } = await import("./deliver-H0xCFj4j.js").then((n) => n.n);
|
|
22869
23043
|
await recoverPendingDeliveries({
|
|
22870
23044
|
deliver: deliverOutboundPayloads,
|
|
22871
23045
|
log: log.child("delivery-recovery"),
|