wednesdayai 0.4.12-dev.720 → 0.4.12-dev.722
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-cli-pyfXjm-X.js → acp-cli-DXVeP5by.js} +11 -11
- package/dist/{agent-scope-Dw728gHk.js → agent-scope-Dt0TVWFY.js} +20 -20
- package/dist/{agent-turn-enqueue-BNvNiMpq.js → agent-turn-enqueue-CsHMHVsf.js} +5 -5
- package/dist/{agent-turn-enqueue-Ca6nDySG.js → agent-turn-enqueue-QcHb-Wlq.js} +4 -4
- package/dist/{agent-turn-execute-DLS3hVZN.js → agent-turn-execute-pkDSwyuf.js} +186 -186
- package/dist/{agent-turn-recovery-adapter-D2yM42JV.js → agent-turn-recovery-adapter-CL4IrGUo.js} +1 -1
- package/dist/{agent-turn-recovery-adapter-BhqXEKaC.js → agent-turn-recovery-adapter-Dw5-XbMI.js} +3 -3
- package/dist/{agent-turn-runner-CNzxqAVO.js → agent-turn-runner-CUoz_Fkl.js} +1 -1
- package/dist/{agent-turn-runner-BDS9k--2.js → agent-turn-runner-DoHGgNPh.js} +4 -4
- package/dist/{agent-turn-runner-lDarvfDi.js → agent-turn-runner-LlrD6k2x.js} +3 -3
- package/dist/{agents-CCi5d3rh.js → agents-TOaKn6gk.js} +17 -17
- package/dist/{agents.config-D1RGbjKF.js → agents.config-96ueVlOH.js} +2 -2
- package/dist/{agents.config-BiZOgm5C.js → agents.config-DWMgN4qH.js} +1 -1
- package/dist/{api-key-rotation-BDa6RvrU.js → api-key-rotation-DiMQTef3.js} +1 -1
- package/dist/{audio-preflight-DvDzBaci.js → audio-preflight-B_5sTSyb.js} +5 -5
- package/dist/{audio-preflight-DxY7sUFD.js → audio-preflight-CO3ozqOb.js} +35 -35
- package/dist/{audio-preflight-DK8V6rCg.js → audio-preflight-p84ph4C7.js} +6 -6
- package/dist/{audio-transcription-runner-D-iXNE6Y.js → audio-transcription-runner-CsQR8LpS.js} +1 -1
- package/dist/{audio-transcription-runner-N8I-G4DN.js → audio-transcription-runner-Gr8vN3AS.js} +26 -26
- package/dist/{audio-transcription-runner-DFQtapUX.js → audio-transcription-runner-XFfvRPXl.js} +1 -1
- package/dist/{audit-3p1cCyN-.js → audit-8O6sjQPv.js} +29 -29
- package/dist/{audit-Dz2E9h1H.js → audit-CzREkjwC.js} +3 -3
- package/dist/{auth-BdqTyBRn.js → auth-Cx-Q9zgv.js} +4 -4
- package/dist/{auth-choice-Bn539iDJ.js → auth-choice-C0dQwQuu.js} +15 -15
- package/dist/{auth-choice-BjBu2HIJ.js → auth-choice-DtRePxUx.js} +13 -13
- package/dist/{auth-choice-CtjeyUxN.js → auth-choice-s0pWvSbn.js} +1 -1
- package/dist/{auth-choice.apply-helpers-BjbwkC61.js → auth-choice.apply-helpers-Bplvajjf.js} +1 -1
- package/dist/{auth-token-BhGJiF3k.js → auth-token-xxEJDMxh.js} +2 -2
- package/dist/{banner-DeTwUKJw.js → banner-BwICuMvl.js} +4 -4
- package/dist/{bonjour-discovery-Df2P-Q7o.js → bonjour-discovery-B1GbNHC3.js} +3 -3
- package/dist/{browser-cli-CM2fkqWj.js → browser-cli-NV-pdj3F.js} +19 -19
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +12 -12
- package/dist/bundled/session-journal/handler.js +12 -12
- package/dist/bundled/session-memory/handler.js +12 -12
- package/dist/{call-UfwN5rR7.js → call-PE59cW0J.js} +12 -12
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-BeP04lVU.js → channel-account-context-DM1npKXX.js} +6 -6
- package/dist/{channel-activity-DF1lamZi.js → channel-activity-SqK9nKf7.js} +2 -2
- package/dist/{channel-options-HOe8Wb7T.js → channel-options-BmfLwNE6.js} +3 -3
- package/dist/{channel-options-CPd94dTo.js → channel-options-CurDeT7Z.js} +1 -1
- package/dist/{channel-selection-CNMEexgg.js → channel-selection-DfNPCJXK.js} +1 -1
- package/dist/{channels-cli-CvJYuVVM.js → channels-cli-CZqlXMjZ.js} +114 -114
- package/dist/{channels-cli-BJlbTkJA.js → channels-cli-D2PB80Ed.js} +23 -23
- package/dist/{channels-status-issues-CdhIpbIH.js → channels-status-issues-B4p6AXBG.js} +1 -1
- package/dist/{chrome-Ch-PRzot.js → chrome-BsgpiutB.js} +6 -6
- package/dist/{chrome-nLlFTBUI.js → chrome-FHxGdLnd.js} +8 -8
- package/dist/{chunk-dZYOJUMQ.js → chunk-DiXpyRAz.js} +2 -2
- package/dist/{clack-prompter-DGDmJDVW.js → clack-prompter-fldgCPEr.js} +5 -5
- package/dist/{clawbot-cli-krI9B7O9.js → clawbot-cli-C91sysrP.js} +15 -15
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-DJUeQG1g.js +164 -0
- package/dist/{cli-Clb9hAIp.js → cli-YKA_HQlq.js} +17 -17
- package/dist/{client-BGqFY5o-.js → client-DN-SMVBn.js} +3 -3
- package/dist/{client-profiles-CRejJ0SL.js → client-profiles-DEoACLX5.js} +2 -2
- package/dist/{clipboard-DnrCtTv6.js → clipboard-DczD_L5d.js} +1 -1
- package/dist/{command-queue-BoBsMaob.js → command-queue-B3_VRNOr.js} +1 -1
- package/dist/{command-queue-CK20dQVc.js → command-queue-Bn2PHabT.js} +1 -1
- package/dist/{command-queue-DmPFhCm2.js → command-queue-CkNuNlmY.js} +1 -1
- package/dist/{command-registry-C7V01SL9.js → command-registry-Dok3-b8T.js} +14 -14
- package/dist/{command-secret-targets-DtnfBTvl.js → command-secret-targets-CJ1czw_Q.js} +4 -4
- package/dist/{commands-Byb21m-W.js → commands-Csxgimkc.js} +1 -1
- package/dist/{commands-registry-fXBoHxbT.js → commands-registry-Dx5QvNqH.js} +3 -3
- package/dist/{completion-cli-C1TbI3Nq.js → completion-cli-Ctg9QIDB.js} +16 -16
- package/dist/{completion-cli-Nhp2rZs6.js → completion-cli-DzgbSYNf.js} +1 -1
- package/dist/{config-CRFk9Bjq.js → config-BPACL-n5.js} +51 -51
- package/dist/{config-cli-BbSkPwpp.js → config-cli-BUrIABmo.js} +1 -1
- package/dist/{config-cli-BZACiXqP.js → config-cli-Bp3NVXJ8.js} +10 -10
- package/dist/{config-guard-D407qaoD.js → config-guard-CdfLkwSv.js} +4 -4
- package/dist/{config-validation-KuIoSFk6.js → config-validation-BdrPl8og.js} +2 -2
- package/dist/{configure-DPlcHPb2.js → configure-CAdfZJx3.js} +3 -3
- package/dist/{configure-Cqjr_du7.js → configure-CFjjPHas.js} +25 -25
- package/dist/{control-ui-assets-CZc_jZ5P.js → control-ui-assets-BXkk_vKO.js} +3 -3
- package/dist/{controller-DhhnKGZm.js → controller-CyFBTP5K.js} +1 -1
- package/dist/{credentials-QcQyEdJH.js → credentials-DVI9X-9y.js} +1 -1
- package/dist/{cron-cli-CaA0d8t9.js → cron-cli-BuVrA_FU.js} +13 -13
- package/dist/{daemon-cli-BHHTg_VA.js → daemon-cli-D874Hxry.js} +19 -19
- package/dist/daemon-cli.js +7 -7
- package/dist/{daemon-install-E2_ktpUO.js → daemon-install-BuETscSF.js} +11 -11
- package/dist/{daemon-install-helpers-Di-kgTCh.js → daemon-install-helpers-CKbnFsNZ.js} +13 -13
- package/dist/{deliver-CaBp0YZL.js → deliver-BLp1Q7uO.js} +9 -9
- package/dist/{deliver-DFUO2CfJ.js → deliver-CXqNQ8yi.js} +1 -1
- package/dist/{deliver-DZG38ZGm.js → deliver-rLn-23ud.js} +1 -1
- package/dist/{devices-cli-CyO1xf6G.js → devices-cli-PIMtgiCQ.js} +12 -12
- package/dist/{diagnostic-DBbvGWxf.js → diagnostic-85mWzvQi.js} +1 -1
- package/dist/{diagnostic-DgDaUn7q.js → diagnostic-Bbg-zObh.js} +1 -1
- package/dist/{diagnostic-CyH49cpU.js → diagnostic-u64kcpDQ.js} +3 -3
- package/dist/{diagnostics-BMCo9z-e.js → diagnostics-C6ntZHc3.js} +5 -5
- package/dist/{directory-cli-Bp8CPJAj.js → directory-cli-ByC5Q1X3.js} +10 -10
- package/dist/{dm-policy-shared-DFPi7Zr2.js → dm-policy-shared-CV1uWhMc.js} +4 -4
- package/dist/{dns-cli-BIvl-4eO.js → dns-cli-BlEBJkZs.js} +10 -10
- package/dist/{docs-cli-C96pCTO9.js → docs-cli-DC1z-BLX.js} +9 -9
- package/dist/{doctor-completion-aQBy29mi.js → doctor-completion-Cfe2nTpN.js} +1 -1
- package/dist/{doctor-completion-BeQ5D1_M.js → doctor-completion-CpGKbe63.js} +3 -3
- package/dist/{doctor-config-flow-C2Gtj2Ld.js → doctor-config-flow-gOmD0dFV.js} +14 -14
- package/dist/{enable-DW_1rt5K.js → enable-p_l_FcJp.js} +2 -2
- package/dist/entry.js +4 -4
- package/dist/{exec-approvals-BL3RknaU.js → exec-approvals-C3o7bTbp.js} +1 -1
- package/dist/{exec-approvals-allowlist-UZiLlQZY.js → exec-approvals-allowlist-CNWI56tZ.js} +1 -1
- package/dist/{exec-approvals-cli-vu_X-YzH.js → exec-approvals-cli-BShAvkW4.js} +22 -22
- package/dist/{exec-safe-bin-runtime-policy-kCGsE7iL.js → exec-safe-bin-runtime-policy-C3eU8CKJ.js} +2 -2
- package/dist/{exec-DirIo9VQ.js → exec-vJi_ETQy.js} +2 -2
- package/dist/{extension-relay-auth-BE4YupGc.js → extension-relay-auth-DD-U9VUc.js} +10 -10
- package/dist/{fetch-cHZPcwpd.js → fetch-ByEEe-Yd.js} +5 -5
- package/dist/{fetch-guard-Dp0XbWAV.js → fetch-guard-BzXFjlMV.js} +3 -3
- package/dist/{fs-safe-D7SLKk8k.js → fs-safe-CByGgR59.js} +25 -25
- package/dist/{gateway-cli-k85i40XY.js → gateway-cli-3YUOWIal.js} +524 -283
- package/dist/{gateway-cli-DO1ZdC57.js → gateway-cli-CDCwUJ0Z.js} +356 -115
- package/dist/{gateway-rpc-DU3hSTzG.js → gateway-rpc-DOfMq6W1.js} +3 -3
- package/dist/{globals-BvFc3LRQ.js → globals-ZyVsnNcg.js} +7 -7
- package/dist/{gmail-setup-utils-DxQW0vvG.js → gmail-setup-utils-BzuIKryU.js} +2 -2
- package/dist/{health-joZ3P32_.js → health-B5jHSu9i.js} +8 -8
- package/dist/{health-yflM7Rsw.js → health-BEgp6PEF.js} +2 -2
- package/dist/{health-format-DxSGV0xs.js → health-format-DX1WwWnG.js} +1 -1
- package/dist/{heartbeat-tick-D26lWjWr.js → heartbeat-tick-By0WI8YD.js} +1 -1
- package/dist/{help-format-BuYYzCrK.js → help-format-DuL_Y84f.js} +1 -1
- package/dist/{hooks-cli-Bqx4BeE7.js → hooks-cli-D1_UuIh4.js} +19 -19
- package/dist/{hooks-cli-HMujIPDt.js → hooks-cli-Dy5LfGKt.js} +105 -105
- package/dist/{hooks-status-BIpoTNG2.js → hooks-status-C6mtKL68.js} +2 -2
- package/dist/{image-ops-BH5tZFXZ.js → image-ops-Cq6SZYWW.js} +11 -11
- package/dist/{incident-install-BVVufsbF.js → incident-install-B626HvYY.js} +11 -11
- package/dist/index.js +21 -21
- package/dist/{inspect-ALwqX-AP.js → inspect-LfUprDjx.js} +4 -4
- package/dist/{install-safe-path-B8ogENI2.js → install-safe-path-4YfMRsxN.js} +25 -25
- package/dist/{installs-BZc_r32M.js → installs-4lGALZOo.js} +10 -10
- package/dist/{installs-DhvxSfA2.js → installs-puN7yKHH.js} +1 -1
- package/dist/{ipv4-BQfY4Nz0.js → ipv4-BA1qFtVZ.js} +2 -2
- package/dist/{ir-Bphccx2x.js → ir-B3r0eIJW.js} +8 -8
- package/dist/{issue-format-eKDAjB9C.js → issue-format-BG8o87sf.js} +1 -1
- package/dist/{lifecycle-core-CIW7Nndu.js → lifecycle-core-CuMY0U_8.js} +9 -9
- package/dist/{links-oxBAdiT5.js → links-BZDTcdHU.js} +1 -1
- package/dist/{live-repair-CK2uu1bb.js → live-repair-BF2elTcB.js} +10 -10
- package/dist/llm-slug-generator.js +12 -12
- package/dist/{log-tail-Cu_iMzte.js → log-tail-Dg2oYTZ6.js} +7 -7
- package/dist/{logger-DygiqHXJ.js → logger-B1oXl7GT.js} +2 -2
- package/dist/{logging-DT83g6VT.js → logging-DgKdQHpc.js} +1 -1
- package/dist/{logs-cli-OJbjnEG9.js → logs-cli-CrUZySOS.js} +18 -18
- package/dist/{manager-DbUdXsY9.js → manager-PSj0t5kg.js} +16 -16
- package/dist/{markdown-tables-DBBxKcll.js → markdown-tables-BcUNsqVQ.js} +1 -1
- package/dist/{memory-cli-OhwCkNE-.js → memory-cli-DVqLwNhN.js} +18 -18
- package/dist/{model-D56FsZ1w.js → model-BbeosLtF.js} +2 -2
- package/dist/{model-catalog-CLFSsgfj.js → model-catalog-Bjfzg68Q.js} +4 -4
- package/dist/{model-picker-DBwSCw_9.js → model-picker-JQM5rw_w.js} +4 -4
- package/dist/{models-m1jUnKvs.js → models-Kq9m-LfF.js} +23 -23
- package/dist/{models-cli-BWXMokU_.js → models-cli-B4wVcMjJ.js} +105 -105
- package/dist/{models-cli-CC42HgJD.js → models-cli-dyUiDMqX.js} +17 -17
- package/dist/{models-config-BDhVodK4.js → models-config-BMgEFu57.js} +7 -7
- package/dist/{node-cli-Cd6_BySw.js → node-cli-DGi3DELS.js} +41 -41
- package/dist/{node-cli-CR7U5VZ3.js → node-cli-Dm9lnwVF.js} +3 -3
- package/dist/{node-command-policy-B4-mf1hM.js → node-command-policy-C1Fy9dcA.js} +1 -1
- package/dist/{node-service-DlskRE2h.js → node-service-Ys7JZFz-.js} +1 -1
- package/dist/{nodes-cli-B_iLcTCz.js → nodes-cli-Bp2RePXd.js} +24 -24
- package/dist/{nodes-screen-DGsjKglY.js → nodes-screen-DANf1hC-.js} +8 -8
- package/dist/{note-QFI8C-0H.js → note-CWaaN_Hi.js} +2 -2
- package/dist/{npm-pack-install-BNQ7dpDL.js → npm-pack-install-BgBpeTJk.js} +1 -1
- package/dist/{npm-pack-install-DrAALuzR.js → npm-pack-install-Dlm0MIZy.js} +24 -24
- package/dist/{npm-resolution-DWT08Jg9.js → npm-resolution-DWE5khjC.js} +2 -2
- package/dist/{npm-resolution-CznyJdS_.js → npm-resolution-Ey8dK3VI.js} +5 -5
- package/dist/{oauth-tls-preflight-iGljnxA8.js → oauth-tls-preflight-DJESrRid.js} +1 -1
- package/dist/{onboard-DprdwW6T.js → onboard-CneU0GqJ.js} +11 -11
- package/dist/{onboard-channels-eDRUfcgC.js → onboard-channels-B1oC1rop.js} +2 -2
- package/dist/{onboard-channels-BN5zmpQb.js → onboard-channels-Bm2XVN3C.js} +21 -21
- package/dist/{onboard-custom-rapGXTfP.js → onboard-custom-Bz-7TT12.js} +4 -4
- package/dist/{onboard-helpers-BlOvn-As.js → onboard-helpers-DNbkQX5v.js} +13 -13
- package/dist/{onboard-hooks-C2X1aAwg.js → onboard-hooks-CCtE4bqF.js} +7 -7
- package/dist/{onboard-remote-CmifKZ42.js → onboard-remote-DsBkNMeO.js} +5 -5
- package/dist/{onboard-skills-Cbv5AZ8C.js → onboard-skills-DX_x-MfC.js} +4 -4
- package/dist/{onboard-DRGIVMAs.js → onboard-trNO818c.js} +2 -2
- package/dist/{onboarding-1IkfvnYe.js → onboarding-BKoaWOxQ.js} +3 -3
- package/dist/{onboarding-DjLzxd2p.js → onboarding-R2m4j7Dp.js} +18 -18
- package/dist/{onboarding.finalize-CCnljJ0b.js → onboarding.finalize-B6K3hYJZ.js} +113 -113
- package/dist/{onboarding.finalize-xkxyNe63.js → onboarding.finalize-C0X_xaHh.js} +22 -22
- package/dist/{onboarding.gateway-config-DOTfpREQ.js → onboarding.gateway-config-DKLUe3Ul.js} +16 -16
- package/dist/{onboarding.secret-input-DH2Ce8GL.js → onboarding.secret-input-YvW1rg1V.js} +1 -1
- package/dist/{openai-model-default-DsBVhW_k.js → openai-model-default-CuWReftl.js} +2 -2
- package/dist/{openclaw-root-CvJ5CJns.js → openclaw-root-B6Tk0FH8.js} +2 -2
- package/dist/{operator-commands-JUXdOhQX.js → operator-commands-BmGo9Ngv.js} +5 -5
- package/dist/{operator-commands-DX-cb3Ye.js → operator-commands-EsKoI4yV.js} +2 -2
- package/dist/{outbound-attachment-DXvNKE87.js → outbound-attachment-DJ3uYvUI.js} +2 -2
- package/dist/{outbound-message-hooks-C0BAHo6-.js → outbound-message-hooks-BBtH97ZV.js} +4 -4
- package/dist/{pairing-cli-Cl5sMYgP.js → pairing-cli-CzdmBLwS.js} +10 -10
- package/dist/{pairing-labels-BMQWK5UC.js → pairing-labels-DYgJqxe0.js} +1 -1
- package/dist/{pairing-store-CVHmKK9w.js → pairing-store-BZFrD-fJ.js} +2 -2
- package/dist/{path-alias-guards-Dwpja4Ts.js → path-alias-guards-CHFrrzxZ.js} +3 -3
- package/dist/{path-safety-tNRAPoSe.js → path-safety-CCSB65fm.js} +1 -1
- package/dist/{pi-embedded-CZ0PhG7T.js → pi-embedded-COs_yO7U.js} +28 -28
- package/dist/{pi-embedded-helpers-CcG8tJG8.js → pi-embedded-helpers-BYLOFsUc.js} +3 -3
- package/dist/{pi-embedded-helpers-C6VayjB1.js → pi-embedded-helpers-C9XqX-Jq.js} +8 -8
- package/dist/{pi-embedded-helpers-D__rRuFh.js → pi-embedded-helpers-DIUrv2Ua.js} +1 -1
- package/dist/pi-embedded-recovery-adapter-8xq2SINa.js +60 -0
- package/dist/{pi-embedded-recovery-adapter-BJvKUFHn.js → pi-embedded-recovery-adapter-BHTdeEKa.js} +8 -8
- package/dist/{pi-embedded-recovery-adapter-BtqhGYD7.js → pi-embedded-recovery-adapter-DPjgp8q4.js} +3 -3
- package/dist/{pi-embedded-recovery-adapter-DS_uqVd7.js → pi-embedded-recovery-adapter-DytV4fjp.js} +2 -2
- package/dist/{pi-embedded-utils-CBwHE9Fa.js → pi-embedded-utils-BV_Dtzrw.js} +2 -2
- package/dist/{pi-embedded-utils-BOgoLC6a.js → pi-embedded-utils-BetZbS6i.js} +1 -1
- package/dist/{pi-embedded-utils-Wab6FAbw.js → pi-embedded-utils-DOtaZ7KV.js} +1 -1
- package/dist/{pi-model-discovery-dD_F5Zs_.js → pi-model-discovery-CZ9wxcE8.js} +1 -1
- package/dist/{pi-tools.policy-D-HUyDCX.js → pi-tools.policy-B7YiM0PW.js} +1 -1
- package/dist/{plugin-owned-work-recovery-adapter-DSTbgdf1.js → plugin-owned-work-recovery-adapter-CCMhA7pp.js} +7 -7
- package/dist/{plugin-registry-NO8bBmB-.js → plugin-registry-AEemJBCl.js} +1 -1
- package/dist/{plugin-registry-D1W5p4FN.js → plugin-registry-BjZ0q-dW.js} +4 -4
- package/dist/plugin-sdk/{agent-turn-execute-rfDl5JIk.js → agent-turn-execute-DoRgVKVO.js} +12 -12
- package/dist/plugin-sdk/{agent-turn-runner-CWFiK-TQ.js → agent-turn-runner-pU0RGvg6.js} +3 -3
- package/dist/plugin-sdk/{audio-preflight-Ch7wu2kR.js → audio-preflight-8hRbl8Io.js} +5 -5
- package/dist/plugin-sdk/{audio-transcription-runner-PQrzjXaP.js → audio-transcription-runner-CUsZFiEA.js} +1 -1
- package/dist/plugin-sdk/{chrome-nvzkZjx1.js → chrome-VZ0Zuu2w.js} +8 -8
- package/dist/plugin-sdk/{command-queue-Ctf3I4mj.js → command-queue-CbgNIrv6.js} +1 -1
- package/dist/plugin-sdk/{deliver-CvAny_u3.js → deliver-B7W4NNsR.js} +1 -1
- package/dist/plugin-sdk/{deliver-CLdBSfw5.js → deliver-CJP9TznW.js} +3 -3
- package/dist/plugin-sdk/{diagnostic-HwC2DvTv.js → diagnostic-BRUM6uNI.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-Cgger0dQ.js → pi-embedded-helpers-B-OOYT64.js} +3 -3
- package/dist/plugin-sdk/{pi-embedded-utils-BSR4yhc7.js → pi-embedded-utils-BoSGTbYO.js} +1 -1
- package/dist/plugin-sdk/{provider-dispatcher-UGV7dmN-.js → provider-dispatcher-CNLIHg-v.js} +12 -12
- package/dist/plugin-sdk/{provider-image-DWx_4D5v.js → provider-image-L_SRDPHU.js} +4 -4
- package/dist/plugin-sdk/{provider-image-CHcGL0EF.js → provider-image-zNa1Cccq.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-D0hna1cK.js → pw-ai-JJrE-B1e.js} +1 -1
- package/dist/plugin-sdk/{runs-BW0cihzp.js → runs-CPA1-H-2.js} +5 -5
- package/dist/plugin-sdk/{runs-CljUZhIq.js → runs-H2FY7UEk.js} +3 -3
- package/dist/plugin-sdk/{send-BBYSrSTF.js → send-CF3PEjRy.js} +1 -1
- package/dist/plugin-sdk/{send-DXmuCfmg.js → send-CzxwgKvR.js} +2 -2
- package/dist/plugin-sdk/src/gateway/storage-startup-gate.d.ts +28 -8
- package/dist/plugin-sdk/{subagent-registry-C-Vy-p1q.js → subagent-registry-CAdT47aY.js} +12 -12
- package/dist/plugin-sdk/testing.js +12 -12
- package/dist/plugin-sdk/{tools--CF9HsHp.js → tools-3raTfdu5.js} +32 -32
- package/dist/{plugins-cli-DJJuzULB.js → plugins-cli-CjgLVUxJ.js} +108 -108
- package/dist/{plugins-cli-6f208X2l.js → plugins-cli-Di9VhU7J.js} +22 -22
- package/dist/{polling-timeout-L7Tp4szs.js → polling-timeout-DoMlNx_D.js} +2 -2
- package/dist/{ports-CwKtoFkm.js → ports-BxjQwKMc.js} +2 -2
- package/dist/{ports-J_cZ4_9V.js → ports-QWAeZ9Is.js} +3 -3
- package/dist/{program-P3xjiqt2.js → program-Dus5j4vB.js} +104 -104
- package/dist/{program-context-BnUPq4h0.js → program-context-CQrxOpXH.js} +22 -22
- package/dist/{progress-DFaFyDmB.js → progress-Dc4ihErK.js} +2 -2
- package/dist/{prompt-select-styled-BqvHWNWF.js → prompt-select-styled-D1Kc5Amb.js} +47 -47
- package/dist/{prompt-select-styled-zQtF-vV8.js → prompt-select-styled-D3Li9uy2.js} +6 -6
- package/dist/{prompt-style-CO6JkEel.js → prompt-style-XoPngT10.js} +1 -1
- package/dist/{provider-auth-helpers-BYuzSj8t.js → provider-auth-helpers-B5HQVptJ.js} +6 -6
- package/dist/{provider-image-DysCwCWi.js → provider-image-BICZzOki.js} +1 -1
- package/dist/{provider-image-NyTXaEL4.js → provider-image-BllyLBJM.js} +1 -1
- package/dist/{provider-image-BVRCttNV.js → provider-image-Bsivqxw8.js} +6 -6
- package/dist/{proxy-m4Mv3Vy0.js → proxy-Ba9wFNmC.js} +1 -1
- package/dist/{proxy-env-BVlcuMzr.js → proxy-env-DzG6q8Hh.js} +1 -1
- package/dist/{proxy-fetch-D1upsMhs.js → proxy-fetch-BqVhGKFd.js} +1 -1
- package/dist/{push-apns-RSo8eOEB.js → push-apns-BcZzA03X.js} +8 -8
- package/dist/{push-apns-D356cj0x.js → push-apns-qUm5cL9P.js} +2 -2
- package/dist/{pw-ai-B8pA3baY.js → pw-ai-CXSJw34w.js} +1 -1
- package/dist/{pw-ai-DAv_QGa9.js → pw-ai-Ci1kADkJ.js} +18 -18
- package/dist/{pw-ai-BXBbuCbh.js → pw-ai-DT3fj2Kt.js} +1 -1
- package/dist/{qmd-manager-qYKR5h5G.js → qmd-manager-IztYub3L.js} +23 -23
- package/dist/{qr-cli-BauN15DE.js → qr-cli-DhJ37DZK.js} +8 -8
- package/dist/{query-expansion-Bf7wd2Iw.js → query-expansion-BydaUlRH.js} +13 -13
- package/dist/{reconcile-bundled-DyXp6UFb.js → reconcile-bundled-CAKTvY-C.js} +3 -3
- package/dist/{reconcile-bundled-CYRLOXKB.js → reconcile-bundled-DJKaKSgk.js} +1 -1
- package/dist/{recorder-CMNhAFwu.js → recorder-Ca_njjjH.js} +2 -2
- package/dist/{recovery-adapter-DcDYSG4s.js → recovery-adapter-BT12fVyO.js} +8 -8
- package/dist/{recovery-adapter-Dp82nx48.js → recovery-adapter-CPQ9-014.js} +2 -2
- package/dist/{recovery-adapter-Cd74qcsK.js → recovery-adapter-DF25-zSH.js} +1 -1
- package/dist/{recovery-adapter-eslk30An.js → recovery-adapter-Df87xZQp.js} +34 -34
- package/dist/{recovery-adapter-ClfDS4Ov.js → recovery-adapter-okaOo6tO.js} +4 -4
- package/dist/{recovery-prompt-TVvxel5J.js → recovery-prompt-CRcPgKcT.js} +1 -1
- package/dist/{redact-snapshot-D7BZusrG.js → redact-snapshot--nD7TrF-.js} +2 -2
- package/dist/{register.agent-DHl47XYk.js → register.agent-BCNYDn8G.js} +22 -22
- package/dist/{register.agent-9DDYWINr.js → register.agent-CqGVQ2N1.js} +117 -117
- package/dist/{register.configure-CndtmXxY.js → register.configure-CPTDt8eL.js} +23 -23
- package/dist/register.configure-DxdNTBIk.js +168 -0
- package/dist/{register.maintenance-BWVbf3vi.js → register.maintenance-BOCv2N1t.js} +23 -23
- package/dist/{register.maintenance-B0m4vFl_.js → register.maintenance-CFjB31Z5.js} +125 -125
- package/dist/{register.message-BTvJee4k.js → register.message-CiT53tgD.js} +98 -98
- package/dist/{register.message-D_XRcga3.js → register.message-dqrK9EsG.js} +18 -18
- package/dist/{register.onboard-C9pmJhys.js → register.onboard-BKoeYDAF.js} +21 -21
- package/dist/{register.onboard-BOHf4ODS.js → register.onboard-xtBBqce9.js} +2 -2
- package/dist/{register.setup-Dc4c4RwB.js → register.setup-qHCNX6LC.js} +2 -2
- package/dist/{register.setup-CmChnAXy.js → register.setup-xIVMlLYx.js} +24 -24
- package/dist/{register.status-health-sessions-DcfcD5-d.js → register.status-health-sessions-CaxJw1rr.js} +20 -20
- package/dist/{register.status-health-sessions-HmPpPcsK.js → register.status-health-sessions-D4hMq0I7.js} +115 -115
- package/dist/{register.subclis-BlaRgswl.js → register.subclis-srwCZnD0.js} +34 -34
- package/dist/{replay-C9MQSD5C.js → replay-B9P8F4Td.js} +1 -1
- package/dist/{replies-aExjMxzn.js → replies-BNP-F_lm.js} +4 -4
- package/dist/{reply-C9VXFn4R.js → reply-B_SiN91-.js} +24 -24
- package/dist/{reply-directives-B3iuHT4J.js → reply-directives-Bc2RQAcJ.js} +2 -2
- package/dist/{reply-prefix-V-IxyeUB.js → reply-prefix-B8M4IWrd.js} +1 -1
- package/dist/{resolve-route-D0rmcC0-.js → resolve-route-KBL5oj6U.js} +4 -4
- package/dist/{rpc-DpE8vp-c.js → rpc-htgXg_yf.js} +3 -3
- package/dist/{run-main-BZA73lMf.js → run-main-BzfK-GcH.js} +117 -117
- package/dist/{runs-RYsbIfCS.js → runs-BW5fW5nB.js} +3 -3
- package/dist/{runs-BAm5mg_D.js → runs-BjLs5ozo.js} +6 -6
- package/dist/{runs-CHfKOgl6.js → runs-DGWNXyKA.js} +3 -3
- package/dist/{runtime-CK9AbML9.js → runtime-ACR3KU8j.js} +4 -4
- package/dist/{runtime-config-collectors-Q9nEWUTc.js → runtime-config-collectors-BVWO6FhK.js} +1 -1
- package/dist/{runtime-guard-fIvyv07S.js → runtime-guard-DchtXvGj.js} +1 -1
- package/dist/{sandbox-BqX3VN9w.js → sandbox-7YCCMJoM.js} +1 -1
- package/dist/{sandbox-DzgYdBHo.js → sandbox-BpdiWabc.js} +18 -18
- package/dist/{sandbox-cli-DS0rOY-2.js → sandbox-cli-Dv0Viev8.js} +2 -2
- package/dist/{sandbox-cli-Bdiy-JBA.js → sandbox-cli-UfXu5kvh.js} +25 -25
- package/dist/{secrets-cli-BgSYbUnm.js → secrets-cli-DD5pd5lU.js} +15 -15
- package/dist/{security-cli-DmfWrKBb.js → security-cli-DCKCspHc.js} +42 -42
- package/dist/{security-cli-BmLzna2E.js → security-cli-DRALCMFL.js} +4 -4
- package/dist/{send-DVTzquty.js → send-BBFfvgK9.js} +14 -14
- package/dist/{send-o7L9XTU3.js → send-BVisLSq7.js} +6 -6
- package/dist/{send-DVEBYs7q.js → send-B_t3X0hK.js} +7 -7
- package/dist/{send-CDuS9tHa.js → send-CZsC4D3G.js} +12 -12
- package/dist/{send-DSEM68Bg.js → send-CwCEyog7.js} +6 -6
- package/dist/{send-BFS-Gw56.js → send-DEFcgo-1.js} +1 -1
- package/dist/{send-PUOLKFU6.js → send-s0RNLFLX.js} +1 -1
- package/dist/{server-Cxvaq-2t.js → server-DWJmtex3.js} +4 -4
- package/dist/{server-context-RkR0AfjN.js → server-context-BEjWhzMi.js} +12 -12
- package/dist/{server-context-Ckaq9jDj.js → server-context-CQQ6Q5Kp.js} +2 -2
- package/dist/{server-lifecycle-nFfq19cU.js → server-lifecycle-B9IQKSom.js} +1 -1
- package/dist/{server-lifecycle-B8yCvRvX.js → server-lifecycle-C3hCCbXm.js} +3 -3
- package/dist/{server-middleware-B6bN1rYO.js → server-middleware-CrJMxxfQ.js} +1 -1
- package/dist/{server-node-events-CgVi6hsa.js → server-node-events-8k0OLCvW.js} +97 -97
- package/dist/{server-node-events-BYL12z2h.js → server-node-events-BYTgaAay.js} +18 -18
- package/dist/{server-CtXro2Oa.js → server-y8WhCQvu.js} +24 -24
- package/dist/{service-BVB5AQS4.js → service-Dkcqg-rd.js} +15 -15
- package/dist/{session-consumer-agents-WuG2FJYp.js → session-consumer-agents-5ORspv9c.js} +1 -1
- package/dist/{session-consumer-claim-sweep-BcfThIOH.js → session-consumer-claim-sweep-eBEe4crh.js} +7 -7
- package/dist/{session-key-resolution-D__Pd_mB.js → session-key-resolution-CvnTXaSw.js} +4 -4
- package/dist/{session-meta-YzxyVCeI.js → session-meta-Bd0mS7MT.js} +1 -1
- package/dist/{session-storage-DFsXIZwp.js → session-storage-Pnf4SMXY.js} +6 -6
- package/dist/{session-utils-B2PSRqVy.js → session-utils-CrCJ-7yK.js} +5 -5
- package/dist/{sessions-CJHCMakP.js → sessions-BlXxa7bM.js} +4 -4
- package/dist/{sessions-Q3WrKAAg.js → sessions-DFDrcshi.js} +16 -16
- package/dist/{sessions-CfKrfL19.js → sessions-ck0v65PE.js} +4 -4
- package/dist/{sessions-claims-status-k3n7GnFf.js → sessions-claims-status-BWkOZDb1.js} +11 -11
- package/dist/{shared-D__JxAlY.js → shared-BZXtBEEK.js} +3 -3
- package/dist/{shared-DerjPYzv.js → shared-Cj18nzyW.js} +2 -2
- package/dist/{skill-commands-DbmH_7xm.js → skill-commands-uhWJKPrM.js} +7 -7
- package/dist/{skill-scanner-CZhas7UB.js → skill-scanner-BrEkff8K.js} +7 -7
- package/dist/{skills-ZklHNqsc.js → skills-D3kpiNaJ.js} +6 -6
- package/dist/{skills-cli-Dj4NTcCE.js → skills-cli-DAJDC2x2.js} +9 -9
- package/dist/{skills-install-B7k9HIIw.js → skills-install-B23U6yk5.js} +9 -9
- package/dist/{skills-status-BEsBhRkz.js → skills-status-DEdp3c6y.js} +3 -3
- package/dist/{status-CbJxUaE5.js → status-BacPIpt6.js} +35 -35
- package/dist/{status-BBq1TMwB.js → status-BsGjriqM.js} +4 -4
- package/dist/{status.update-Dhleef_a.js → status.update-C4YRQzqD.js} +2 -2
- package/dist/{store-AQt3mu5T.js → store-BFf8dvdk.js} +7 -7
- package/dist/{subsystem-CXwk-lx3.js → subsystem-DLKs6VzZ.js} +1 -1
- package/dist/{supervisor-recovery-adapter-DVA_i7Fv.js → supervisor-recovery-adapter-BIN1RCIY.js} +7 -7
- package/dist/{system-cli-Dja3Rqeg.js → system-cli-LSxX4WjX.js} +13 -13
- package/dist/{system-run-command-Cv1h27tf.js → system-run-command-Dl8UC6hO.js} +2 -2
- package/dist/{systemd-Cjr55Dzl.js → systemd-BJqlwupF.js} +11 -11
- package/dist/{systemd-hints-Dd6VtLsV.js → systemd-hints-Cp0IfOPD.js} +9 -9
- package/dist/{systemd-linger-CoejU-0l.js → systemd-linger-Dk1GWduD.js} +2 -2
- package/dist/{table-CuH5YX2S.js → table-H366JkfJ.js} +2 -2
- package/dist/{tables-BBiYzs81.js → tables-CCEXTXTG.js} +1 -1
- package/dist/{tailnet-cZK3OCUB.js → tailnet-BSKE3pk_.js} +1 -1
- package/dist/{tailscale-DVz4yfpc.js → tailscale-BrZL_MiW.js} +2 -2
- package/dist/{task-pipeline-boot-yTQaBch8.js → task-pipeline-boot-CM-3tH09.js} +97 -97
- package/dist/{task-pipeline-boot-CUdpZ3t3.js → task-pipeline-boot-Dihxq0Tg.js} +18 -18
- package/dist/{task-runlog-retention-BdL6aGzZ.js → task-runlog-retention-DCbMK2T8.js} +67 -12
- package/dist/{task-runlog-retention-DhORDPYJ.js → task-runlog-retention-GZu-QuBY.js} +64 -9
- package/dist/{tasks-DKKuqmaV.js → tasks-Dm1ljmuN.js} +11 -11
- package/dist/{tokens-x3WbTUiR.js → tokens-B6PaaeVv.js} +1 -1
- package/dist/{tool-display-CO_Gj1t5.js → tool-display-DiZGbhL2.js} +1 -1
- package/dist/{tool-loop-detection-CGxEpEyN.js → tool-loop-detection-DHQv318m.js} +2 -2
- package/dist/{trash-BDCU6Fb2.js → trash-DNkuLhfz.js} +3 -3
- package/dist/{tui-DgQvXSe6.js → tui-DQwfx20_.js} +1 -1
- package/dist/{tui-wtR2jl1B.js → tui-X8LP2ykY.js} +8 -8
- package/dist/{tui-cli-CNz7Mg8b.js → tui-cli-DFen3XYb.js} +4 -4
- package/dist/{tui-cli-D4GLKISY.js → tui-cli-Dhj11694.js} +31 -31
- package/dist/{update-BEgLahg5.js → update-CYcHPlAS.js} +3 -3
- package/dist/{update-CVYwBE80.js → update-VuewNwzn.js} +1 -1
- package/dist/{update-cli-DhfSepno.js → update-cli-DE0ttohR.js} +26 -26
- package/dist/{update-cli-D-GilQk7.js → update-cli-DECVfh7L.js} +135 -135
- package/dist/{update-runner-ha2YJZBG.js → update-runner-C8NxlRy7.js} +18 -18
- package/dist/{update-runner-BTMpYRTQ.js → update-runner-CBbs-iN_.js} +1 -1
- package/dist/{user-run-recording-BR_U9osf.js → user-run-recording-DXNyfjMq.js} +2 -2
- package/dist/{validation-cli-hVAwTijW.js → validation-cli-D8dTZ830.js} +18 -18
- package/dist/{validation-cli-BwvVf8tp.js → validation-cli-Di7B-mhn.js} +97 -97
- package/dist/{web-cli-BtQrD08h.js → web-cli-B0hbvEsp.js} +3 -3
- package/dist/{web-client-assets-COSve3Rq.js → web-client-assets-nkeo2cLh.js} +1 -1
- package/dist/{webhooks-cli-B7OIieVk.js → webhooks-cli-Rne_IilT.js} +10 -10
- package/dist/{widearea-dns-B9lNb6ro.js → widearea-dns-B1ALOpPn.js} +1 -1
- package/dist/{with-timeout-CuFl-tDg.js → with-timeout-BfG7k9-4.js} +2 -2
- package/dist/{with-timeout-DIENRALL.js → with-timeout-CpZZ4mMw.js} +6 -6
- package/dist/{workspace-Dt30ZPzK.js → workspace-DkkkJ4GX.js} +2 -2
- package/dist/{workspace-dirs-CCmfLlPy.js → workspace-dirs-mzsfTPed.js} +1 -1
- package/dist/{ws-CBDMKFAM.js → ws-DESjYW7M.js} +2 -2
- package/dist/{wsl-C9d12M7y.js → wsl-BisEqrSr.js} +2 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/anthropic/package.json +1 -1
- package/extensions/bifrost/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/deepgram/package.json +1 -1
- package/extensions/deepinfra/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diffs/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/dream-cycle/package.json +1 -1
- package/extensions/elevenlabs/package.json +1 -1
- package/extensions/elevenlabs/src/streaming-speech-provider-faults.test.ts +2 -2
- package/extensions/elevenlabs/src/streaming-speech-provider.test.ts +19 -5
- package/extensions/elevenlabs/src/streaming-speech-provider.ts +3 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/gemini-search/package.json +1 -1
- package/extensions/google/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/grok-search/package.json +1 -1
- package/extensions/groq/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/kimi-search/package.json +1 -1
- package/extensions/learning-core/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +1 -1
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/mistral/package.json +1 -1
- package/extensions/moonshot/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +1 -1
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +1 -1
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai/package.json +1 -1
- package/extensions/openai-realtime/package.json +1 -1
- package/extensions/openrouter/package.json +1 -1
- package/extensions/perplexity-search/package.json +1 -1
- package/extensions/searxng-search/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +1 -1
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +1 -1
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zai/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +1 -1
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +1 -1
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/cli-CAr3GVB1.js +0 -164
- package/dist/pi-embedded-recovery-adapter-CpGvtObS.js +0 -60
- package/dist/register.configure-C2X-xBB6.js +0 -168
|
@@ -2,7 +2,7 @@ import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as
|
|
|
2
2
|
import { $ as readLoggingConfig, A as setVerbose, At as resolvePreferredOpenClawTmpDir, C as truncateUtf16Safe, F as isRich, I as theme, K as resolveFileLogProfile, L as getChildLogger, P as colorize, R as getLogger, W as appendFileLog, _t as isNotFoundPathError, c as ensureDir, dt as openVerifiedFileSync, ft as sameFileIdentity, g as resolveUserPath, lt as openBoundaryFile, t as CONFIG_DIR, ut as openBoundaryFileSync, vt as isPathInside, y as shortenHomePath, z as getResolvedLoggerSettings } from "./utils-CMEUUHmM.js";
|
|
3
3
|
import { t as isPlainObject } from "./plain-object-DHRdTVMa.js";
|
|
4
4
|
import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-DDYFn78t.js";
|
|
5
|
-
import { $n as
|
|
5
|
+
import { $n as setTtsEnabled, A as resolveCronSession, An as ensureOutboundSessionEntry, Ar as resolveInputFileLimits, At as takePendingActivationMigration, Bt as resolveAgentOutboundIdentity, C as startHeartbeatRunner, Cn as buildHistoryContextFromEntries, Cr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Ct as persistBrowserProxyFiles, D as onHeartbeatEvent, Dn as createReplyDispatcher, Dr as extractFileContentFromSource, Dt as clearPluginRegistryCaches, E as getLastHeartbeatEvent, En as setDispatchInboundAdmissionRejectionFor, Er as DEFAULT_INPUT_TIMEOUT_MS, F as waitForPendingWrites, Fn as resolveOutboundChannelPlugin, Ft as loadProviderUsageSummary, Gn as getTtsProvider, H as readLatestAssistantReply, Hn as DEFAULT_MAX_PARALLEL, Ht as handleSlackHttpRequest, J as loadCombinedSessionStoreForGateway, Jn as resolveTtsApiKey, K as listAgentsForGateway, Kn as isTtsEnabled, L as resolveExecConfig, Ln as resetDirectoryCache, M as runEmbeddedPiAgent, Mn as resolveHeartbeatDeliveryTarget, Mt as requestNudge, N as prepareSessionManagerForRun, Nn as resolveOutboundTarget, O as redactSensitiveHeartbeatEvent, On as getTotalPendingReplies, Or as extractImageContentFromSource, Ot as getLoadedAnalysisConcurrency, P as snapshotRunPendingWrites, Pn as resolveSessionDeliveryTarget, Q as resolveSessionModelRef, Qn as resolveTtsProviderOrder, R as applyToolPolicyPipeline, Rn as isAbortRequestText, S as setHeartbeatsEnabled, Sr as resolveSendPolicy, St as applyBrowserProxyPaths, T as resolveHeartbeatVisibility, Tn as dispatchInboundMessage, Tr as DEFAULT_INPUT_MAX_REDIRECTS, Tt as resolvePluginTools, U as resolveAnnounceTargetFromKey, Un as resolveUserTimezone, Ut as readJsonBodyWithLimit, V as createOpenClawTools, Vn as setTaskPipelineStatus, W as canonicalizeSpawnedByForAgent, Wt as requestBodyErrorToText, X as pruneLegacyStoreKeys, Xn as resolveTtsConfig, Xt as resolveAgentOutboundTarget, Y as loadSessionEntry, Yn as resolveTtsAutoMode, Yt as resolveAgentDeliveryPlan, Z as resolveGatewaySessionStoreTarget, Zn as resolveTtsPrefsPath, Zt as createOutboundSendDeps, _ as runMainAgentTurn, _t as normalizeCronJobPatch, an as runCliAgent, ar as getExistingFollowupQueue, at as scheduleGatewaySigusr1Restart, b as runHeartbeatOnce, bn as getHookType, br as resolveAgentSessionDirs, bt as hasLegacyDeliveryHints, cr as stripHeartbeatToken, ct as triggerOpenClawRestart, d as countActiveDescendantRuns, dn as computeBackoff, dr as isSystemEventContextChanged, dt as formatRestartSentinelMessage, en as createDefaultDeps, er as setTtsProvider, et as consumeGatewaySigusr1RestartAuthorization, f as initSubagentRegistry, fn as sleepWithAbort, gt as normalizeCronJobCreate, h as runSubagentAnnounceFlow, hr as requestHeartbeatNow, ht as writeRestartSentinel, in as setCliSessionId, ir as clearSessionQueues, it as markGatewaySigusr1RestartHandled, j as resolveCronStyleNow, jn as resolveOutboundSessionRoute, jr as resolveAgentTimeoutMs, jt as createPluginRuntime, k as isCronSystemEvent, kr as normalizeMimeList, kt as loadOpenClawPlugins, ln as lookupContextTokens, lr as ToolInputError, lt as consumeRestartSentinel, mn as resolveAgentAvatar, nn as runWithModelFallback, nr as OPENAI_TTS_MODELS, nt as emitGatewayRestart, o as resolveChannelAccountEnabled, or as removeQueuedFollowupRun, ot as setGatewaySigusr1RestartPolicy, p as listDescendantRunsForRequester, pn as resolveSessionAuthProfileOverride, pt as summarizeRestartSentinel, qn as isTtsProviderConfigured, qt as agentCommandFromIngress, rn as getCliSessionId, rr as OPENAI_TTS_VOICES, rt as isGatewaySigusr1RestartExternallyAllowed, s as BARE_SESSION_RESET_PROMPT, sr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, st as setPreRestartDeferralCheck, tn as createOutboundSendDeps$1, tr as textToSpeech, tt as deferGatewayRestartUntilIdle, ur as enqueueSystemEvent, ut as formatDoctorNonInteractiveHint, v as resolveHeartbeatConfig, vn as buildSafeExternalPrompt, vr as ACP_SESSION_IDENTITY_RENDERER_VERSION, vt as migrateLegacyCronPayload, w as runWakeGate, wr as DEFAULT_INPUT_IMAGE_MIMES, wt as getPluginToolMeta, xn as isExternalHookSession, xt as stripLegacyDeliveryFields, y as resolveHeartbeatSummaryForAgent, yn as detectSuspiciousPatterns, yr as getAcpSessionManager, yt as buildDeliveryFromLegacyPayload, z as buildDefaultToolPolicyPipelineSteps } from "./reply-B_SiN91-.js";
|
|
6
6
|
import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, M as matchesSkillFilter, O as isWorkspaceOnboardingCompleted, S as DEFAULT_MEMORY_FILENAME, T as DEFAULT_USER_FILENAME, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, g as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, j as resolveWorkspaceTemplateDir, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME, w as DEFAULT_TOOLS_FILENAME, x as DEFAULT_MEMORY_ALT_FILENAME, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-CWTkr4pS.js";
|
|
7
7
|
import { m as defaultRuntime, n as runtimeForLogger, o as setConsoleSubsystemFilter, s as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-DDZBycwS.js";
|
|
8
8
|
import { A as isCronRunSessionKey, M as isSubagentSessionKey, N as parseAgentSessionKey, S as normalizeAccountId$1, a as classifySessionKeyShape, b as toAgentStoreSessionKey, d as normalizeAgentId, f as normalizeMainKey, g as resolveLinkedPeerIdForChannel, h as resolveConfiguredCanonicalIdentity, p as resolveAgentIdFromSessionKey, r as buildAgentMainSessionKey, t as DEFAULT_AGENT_ID, x as DEFAULT_ACCOUNT_ID, y as toAgentRequestSessionKey } from "./session-key-B1wN38jV.js";
|
|
@@ -24,12 +24,12 @@ import { c as isDiagnosticsEnabled, l as onDiagnosticEvent, s as emitDiagnosticE
|
|
|
24
24
|
import { n as USER_CLIENT_ID, o as buildUserClientRuntimeConfig, s as handleUserClientHttpRequest } from "./static-server-C-iTMRyz.js";
|
|
25
25
|
import { n as assertNoPathAliasEscape } from "./path-alias-guards-BSmwo1rT.js";
|
|
26
26
|
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DD7KXuvI.js";
|
|
27
|
-
import { D as normalizeMediaProviderId, E as listAutoDetectableProviders, T as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, g as registerUnhandledRejectionHandler, n as buildProviderRegistry, x as resolveModelEntries, y as resolveCapabilityConfig } from "./audio-transcription-runner-
|
|
27
|
+
import { D as normalizeMediaProviderId, E as listAutoDetectableProviders, T as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, g as registerUnhandledRejectionHandler, n as buildProviderRegistry, x as resolveModelEntries, y as resolveCapabilityConfig } from "./audio-transcription-runner-CsQR8LpS.js";
|
|
28
28
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-CjyGDRXN.js";
|
|
29
29
|
import { t as SsrFBlockedError } from "./ssrf-B85AIIOO.js";
|
|
30
30
|
import "./proxy-fetch-Czv8kxaL.js";
|
|
31
31
|
import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-BXebcnwh.js";
|
|
32
|
-
import "./pi-embedded-helpers-
|
|
32
|
+
import "./pi-embedded-helpers-DIUrv2Ua.js";
|
|
33
33
|
import "./local-roots-_qt4-Ma5.js";
|
|
34
34
|
import { c as detectMime } from "./image-ops-DcqCZEUY.js";
|
|
35
35
|
import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-CQtYLB4a.js";
|
|
@@ -37,10 +37,10 @@ import { i as formatErrorMessage, o as hasErrnoCode, s as isErrno } from "./erro
|
|
|
37
37
|
import "./models-config-Burwt3mB.js";
|
|
38
38
|
import { n as loadModelCatalog } from "./model-catalog-C7itJJDM.js";
|
|
39
39
|
import "./api-key-rotation-BEt1ZchD.js";
|
|
40
|
-
import "./provider-image-
|
|
40
|
+
import "./provider-image-BICZzOki.js";
|
|
41
41
|
import "./pi-model-discovery-CfUi22Es.js";
|
|
42
|
-
import { h as extractTextFromChatContent } from "./pi-embedded-utils-
|
|
43
|
-
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
42
|
+
import { h as extractTextFromChatContent } from "./pi-embedded-utils-BetZbS6i.js";
|
|
43
|
+
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-7YCCMJoM.js";
|
|
44
44
|
import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-B6wH7-iE.js";
|
|
45
45
|
import { i as resolveRelayAuthTokenForPort, n as resolveGatewayRelayToken } from "./extension-relay-auth-C-1c9CZk.js";
|
|
46
46
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DbsrfsUT.js";
|
|
@@ -48,7 +48,7 @@ import { t as safeEqualSecret } from "./secret-equal-DyYamV7h.js";
|
|
|
48
48
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-G5phL2pY.js";
|
|
49
49
|
import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-BuVK_u9S.js";
|
|
50
50
|
import { a as isDirectLoopbackProvenance, c as AUTH_RATE_LIMIT_SCOPE_BROWSER_EXTENSION, d as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, f as createAuthRateLimiter, i as captureTransportProvenance, l as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, n as authorizeHttpGatewayConnect, o as isLocalDirectRequest, p as normalizeRateLimitClientIp, r as authorizeWsControlUiGatewayConnect, s as resolveGatewayAuth, t as assertGatewayAuthConfigured, u as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH } from "./auth-DeLQvx-N.js";
|
|
51
|
-
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-
|
|
51
|
+
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-CQQ6Q5Kp.js";
|
|
52
52
|
import { d as hasBinary } from "./frontmatter-B8Zb_8go.js";
|
|
53
53
|
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-Buc1RWDY.js";
|
|
54
54
|
import "./store-DoqX9VsZ.js";
|
|
@@ -63,7 +63,7 @@ import { r as isRestartEnabled } from "./commands-tFdLuF5k.js";
|
|
|
63
63
|
import "./commands-registry-BMswme6t.js";
|
|
64
64
|
import { t as redactIdentifier } from "./redact-identifier-CSPL9LuH.js";
|
|
65
65
|
import "./registry-D9ygkK-J.js";
|
|
66
|
-
import { a as cancelDelayedAgentTurnWaiters, c as enqueueAgentTurn, i as agentTurnIdempotencyKey, l as isClaimableAgentTurnWorkId, r as AGENT_TURN_TOPIC, s as createRecoveryAgentTurnStager } from "./agent-turn-enqueue-
|
|
66
|
+
import { a as cancelDelayedAgentTurnWaiters, c as enqueueAgentTurn, i as agentTurnIdempotencyKey, l as isClaimableAgentTurnWorkId, r as AGENT_TURN_TOPIC, s as createRecoveryAgentTurnStager } from "./agent-turn-enqueue-QcHb-Wlq.js";
|
|
67
67
|
import { $ as validateNodeListParams, $t as validateTalkSessionCreateParams, A as validateCronRunParams, B as validateExecApprovalRequestParams, Bn as verifyDeviceToken, Bt as validateTalkConfigParams, C as validateConfigPatchParams, Cn as normalizeDeviceMetadataForAuth, D as validateCronAddParams, Dn as consumeDeviceBootstrapToken, E as validateConnectParams, En as approveDevicePairing, F as validateDevicePairListParams, Fn as revokeDeviceToken, Ft as validateSkillsBinsParams, G as validateExecApprovalsSetParams, Gt as validateTalkRealtimeSessionParams, H as validateExecApprovalsGetParams, Ht as validateTalkRealtimeAudioParams, I as validateDevicePairRejectParams, In as rotateDeviceToken, It as validateSkillsInstallParams, J as validateModelsListParams, Jt as validateTalkRealtimeToolResultParams, K as validateLogsTailParams, Kt as validateTalkRealtimeStatusParams, L as validateDevicePairRemoveParams, Ln as summarizeDeviceTokens, Lt as validateSkillsStatusParams, M as validateCronStatusParams, Mn as rejectDevicePairing, N as validateCronUpdateParams, Nn as removePairedDevice, Nt as validateSessionsTitlePrepareParams, O as validateCronListParams, On as ensureDeviceToken, P as validateDevicePairApproveParams, Pn as requestDevicePairing, Pt as validateSessionsUsageParams, Q as validateNodeInvokeResultParams, Qt as validateTalkSessionCloseParams, R as validateDeviceTokenRevokeParams, Rn as updatePairedDeviceMetadata, Rt as validateSkillsUpdateParams, S as validateConfigGetParams, Sn as buildDeviceAuthPayloadV3, T as validateConfigSetParams, Tn as approveBootstrapDevicePairing, U as validateExecApprovalsNodeGetParams, Un as operatorScopeSatisfied, Ut as validateTalkRealtimeBargeInParams, V as validateExecApprovalResolveParams, Vt as validateTalkModeParams, W as validateExecApprovalsNodeSetParams, Wn as roleScopesAllow, Wt as validateTalkRealtimeMarkParams, X as validateNodeEventParams, Xn as verifyDeviceSignature, Xt as validateTalkSessionBargeInParams, Y as validateNodeDescribeParams, Yn as normalizeDevicePublicKeyBase64Url, Yt as validateTalkSessionAppendAudioParams, Z as validateNodeInvokeParams, Zt as validateTalkSessionCancelTurnParams, _ as validateChatAbortParams, _n as ErrorCodes, a as validateAgentNudgeParams, an as validateToolsCatalogParams, at as validateNodeRenameParams, b as validateChatSendParams, c as validateAgentsCreateParams, cn as validateWebLoginStartParams, ct as validateRequestFrame, d as validateAgentsFilesListParams, dn as validateWizardNextParams, dt as validateSendParams, en as validateTalkSessionMarkParams, et as validateNodePairApproveParams, f as validateAgentsFilesSetParams, fn as validateWizardStartParams, ft as validateSessionsAbortParams, g as validateChannelsStatusParams, h as validateChannelsLogoutParams, hn as RUNS_INVALIDATED_EVENT, i as validateAgentIdentityParams, in as validateTasksRunsListParams, it as validateNodePairVerifyParams, j as validateCronRunsParams, jn as listDevicePairing, jt as validateSessionsSteerParams, k as validateCronRemoveParams, kn as getPairedDevice, l as validateAgentsDeleteParams, ln as validateWebLoginWaitParams, lt as validateSecretsResolveParams, m as validateAgentsUpdateParams, mn as PROTOCOL_VERSION, nn as validateTasksRunsEventsParams, nt as validateNodePairRejectParams, o as validateAgentParams, on as validateUpdateRunParams, ot as validatePollParams, p as validateAgentsListParams, pn as validateWizardStatusParams, q as validateModelsAuthStatusParams, qn as deriveDeviceIdFromPublicKey, qt as validateTalkRealtimeStopParams, r as formatValidationErrors, rn as validateTasksRunsGetParams, rt as validateNodePairRequestParams, s as validateAgentWaitParams, sn as validateWakeParams, st as validatePushTestParams, tn as validateTasksRunEventsParams, tt as validateNodePairListParams, u as validateAgentsFilesGetParams, un as validateWizardCancelParams, ut as validateSecretsResolveResult, v as validateChatHistoryParams, vn as errorShape, w as validateConfigSchemaParams, x as validateConfigApplyParams, xn as buildDeviceAuthPayload, y as validateChatInjectParams, z as validateDeviceTokenRotateParams, zn as verifyDeviceBootstrapToken, zt as validateTalkCatalogParams } from "./client-D7IpaFCL.js";
|
|
68
68
|
import { _ as hasNarrowSessionScope, d as APPROVALS_SCOPE, f as PAIRING_SCOPE, g as authorizeOperatorScopesForMethod, h as WRITE_SCOPE, m as SESSION_READ_SCOPE, n as callGateway, p as READ_SCOPE, u as ADMIN_SCOPE$1, v as isHealthProbeAllowedForScopes, x as loadGatewayTlsRuntime$1, y as isNodeRoleMethod } from "./call-DFhcVchO.js";
|
|
69
69
|
import "./pairing-token-A_0lRJCJ.js";
|
|
@@ -75,14 +75,14 @@ import "./exec-safe-bin-runtime-policy-KSPaR73B.js";
|
|
|
75
75
|
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-BRZLdw3g.js";
|
|
76
76
|
import { r as resolveSystemRunCommand, t as canonicalizeLegacySystemRunParams } from "./system-run-command-AF8TLlEl.js";
|
|
77
77
|
import { u as snapshotActiveRuns } from "./diagnostic-session-state-C6JXU3l4.js";
|
|
78
|
-
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-
|
|
78
|
+
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-85mWzvQi.js";
|
|
79
79
|
import { t as CommandLane } from "./lanes-DA0g5tPR.js";
|
|
80
|
-
import { D as onAgentEvent, E as getAgentRunContext, O as registerAgentRunContext, T as emitAgentEvent, a as getActiveEmbeddedRunCount, c as isEmbeddedPiRunInFlight, d as isInFlightVoiceAttempt, f as peekActiveEmbeddedRun, g as waitForEmbeddedPiRunEnd, l as isEmbeddedPiRunSteerable, o as getActiveEmbeddedRunOwner, r as clearActiveEmbeddedRun, s as isEmbeddedPiRunActive, t as abortEmbeddedPiRun, w as clearAgentRunContext } from "./runs-
|
|
81
|
-
import { a as getActiveTaskCount, c as getTotalQueueSize, d as resetAllLanes, f as setCommandLaneConcurrency, m as waitForActiveTasks, p as setGatewayDrainState, u as markGatewayDraining } from "./command-queue-
|
|
80
|
+
import { D as onAgentEvent, E as getAgentRunContext, O as registerAgentRunContext, T as emitAgentEvent, a as getActiveEmbeddedRunCount, c as isEmbeddedPiRunInFlight, d as isInFlightVoiceAttempt, f as peekActiveEmbeddedRun, g as waitForEmbeddedPiRunEnd, l as isEmbeddedPiRunSteerable, o as getActiveEmbeddedRunOwner, r as clearActiveEmbeddedRun, s as isEmbeddedPiRunActive, t as abortEmbeddedPiRun, w as clearAgentRunContext } from "./runs-BW5fW5nB.js";
|
|
81
|
+
import { a as getActiveTaskCount, c as getTotalQueueSize, d as resetAllLanes, f as setCommandLaneConcurrency, m as waitForActiveTasks, p as setGatewayDrainState, u as markGatewayDraining } from "./command-queue-Bn2PHabT.js";
|
|
82
82
|
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-D0xrt6Z-.js";
|
|
83
|
-
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
84
|
-
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-
|
|
85
|
-
import { T as collectTelegramDuplicatePollerDiagnostics, d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-
|
|
83
|
+
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-rLn-23ud.js";
|
|
84
|
+
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-BfG7k9-4.js";
|
|
85
|
+
import { T as collectTelegramDuplicatePollerDiagnostics, d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-s0RNLFLX.js";
|
|
86
86
|
import { n as resolveModel } from "./model-BI6n6kVo.js";
|
|
87
87
|
import "./session-consumer-agents-DWh7Mygv.js";
|
|
88
88
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-F-4FwfCE.js";
|
|
@@ -99,7 +99,7 @@ import "./outbound-attachment-Bg7WvYcG.js";
|
|
|
99
99
|
import "./delivery-queue-DhBE3s1K.js";
|
|
100
100
|
import "./send-26KAC8EW.js";
|
|
101
101
|
import "./resolve-route-DnhX9nWr.js";
|
|
102
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-
|
|
102
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-B7YiM0PW.js";
|
|
103
103
|
import "./tables-CzW-cMQN.js";
|
|
104
104
|
import "./proxy-Df2WAHRA.js";
|
|
105
105
|
import "./replies-DoejQAqN.js";
|
|
@@ -113,7 +113,7 @@ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as han
|
|
|
113
113
|
import "./prompt-style-D0wRuIYC.js";
|
|
114
114
|
import "./pairing-labels-CGUWaZ3f.js";
|
|
115
115
|
import "./session-meta-DzjDKcgW.js";
|
|
116
|
-
import { A as registerBeforeCreate, C as artifactTokenFor, D as markRemoved, E as markClientRemovedAcknowledged, M as buildVerificationEnvelope, N as redactVerificationProjection, O as markRetained, P as verificationEnvelopeFingerprint, S as accountSessionArtifactsAtTerminalSweep, T as listSessionArtifacts, _ as requireProcessBootIdentityPair, a as setAgentTurnRuntime, b as installGatewayRestartRecoveryRuntime, d as isSoakError, f as readTrustedBuildInfo, g as isBootIdentityError, h as deriveBootIdentityPair, i as getAgentTurnRuntime, j as VERIFICATION_CONFIG_SCENARIO, k as redactArtifactLogId, l as buildSoakDeploymentRecord, m as armBarrier, n as createAgentTurnRuntimeFromStorage, o as tryGetAgentTurnRuntime, p as acceptSuccessorExecution, r as getActiveAgentTurnCount, u as evaluateSoak, v as clearGatewayRestartRecoveryRuntimeIf, w as isArtifactRegistrationError, x as RETAINED_ARTIFACT_KIND, y as getGatewayRestartRecoveryRuntime } from "./agent-turn-runner-
|
|
116
|
+
import { A as registerBeforeCreate, C as artifactTokenFor, D as markRemoved, E as markClientRemovedAcknowledged, M as buildVerificationEnvelope, N as redactVerificationProjection, O as markRetained, P as verificationEnvelopeFingerprint, S as accountSessionArtifactsAtTerminalSweep, T as listSessionArtifacts, _ as requireProcessBootIdentityPair, a as setAgentTurnRuntime, b as installGatewayRestartRecoveryRuntime, d as isSoakError, f as readTrustedBuildInfo, g as isBootIdentityError, h as deriveBootIdentityPair, i as getAgentTurnRuntime, j as VERIFICATION_CONFIG_SCENARIO, k as redactArtifactLogId, l as buildSoakDeploymentRecord, m as armBarrier, n as createAgentTurnRuntimeFromStorage, o as tryGetAgentTurnRuntime, p as acceptSuccessorExecution, r as getActiveAgentTurnCount, u as evaluateSoak, v as clearGatewayRestartRecoveryRuntimeIf, w as isArtifactRegistrationError, x as RETAINED_ARTIFACT_KIND, y as getGatewayRestartRecoveryRuntime } from "./agent-turn-runner-CUoz_Fkl.js";
|
|
117
117
|
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-CqS6VXEu.js";
|
|
118
118
|
import { r as resolveMemorySearchConfig } from "./manager-DehDxi2A.js";
|
|
119
119
|
import "./query-expansion-BD3CL_NZ.js";
|
|
@@ -121,7 +121,7 @@ import { t as formatDocsLink } from "./links-BhLGjTwm.js";
|
|
|
121
121
|
import { n as runCommandWithRuntime } from "./cli-utils-DWSfnwCw.js";
|
|
122
122
|
import { t as formatHelpExamples } from "./help-format-DqpZruAs.js";
|
|
123
123
|
import { n as withProgress } from "./progress-DRMfDm7h.js";
|
|
124
|
-
import "./server-lifecycle-
|
|
124
|
+
import "./server-lifecycle-B9IQKSom.js";
|
|
125
125
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BIZMWR_z.js";
|
|
126
126
|
import { a as normalizeHttpWebhookUrl, l as normalizeOptionalText, o as inferLegacyName } from "./heartbeat-tick-CsyeD75h.js";
|
|
127
127
|
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-Cm6wsMRx.js";
|
|
@@ -136,12 +136,12 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-gv_rp-w_.
|
|
|
136
136
|
import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
|
|
137
137
|
import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
|
|
138
138
|
import { t as resolveChannelDefaultAccountId } from "./helpers-CU6_xh9V.js";
|
|
139
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
139
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DWMgN4qH.js";
|
|
140
140
|
import { t as isWithinDir } from "./path-safety-DAKUyD-v.js";
|
|
141
141
|
import "./install-safe-path-DjFYmzeb.js";
|
|
142
|
-
import "./npm-pack-install-
|
|
142
|
+
import "./npm-pack-install-BgBpeTJk.js";
|
|
143
143
|
import "./skill-scanner-BA3h34y0.js";
|
|
144
|
-
import "./installs-
|
|
144
|
+
import "./installs-puN7yKHH.js";
|
|
145
145
|
import { n as formatConfigIssueLines } from "./issue-format-D0G927lb.js";
|
|
146
146
|
import { t as buildChannelAccountSnapshot } from "./status-B8TZsG0t.js";
|
|
147
147
|
import "./channels-status-issues-C6LrjLpF.js";
|
|
@@ -157,32 +157,32 @@ import "./diagnostics-Ds3p_NPY.js";
|
|
|
157
157
|
import "./table-DoIju7rh.js";
|
|
158
158
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DgeeMUtJ.js";
|
|
159
159
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-6Uo_6p6X.js";
|
|
160
|
-
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-
|
|
160
|
+
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-CzREkjwC.js";
|
|
161
161
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-C517Q6gA.js";
|
|
162
|
-
import { a as noteStorageReplayResult, i as getStorageV1Snapshot, n as getStatusSummary, o as noteStorageRestartRequired, r as createStorageSupervisor, s as pickGatewaySelfPresence } from "./status-
|
|
163
|
-
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-
|
|
162
|
+
import { a as noteStorageReplayResult, i as getStorageV1Snapshot, n as getStatusSummary, o as noteStorageRestartRequired, r as createStorageSupervisor, s as pickGatewaySelfPresence } from "./status-BsGjriqM.js";
|
|
163
|
+
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-BEgp6PEF.js";
|
|
164
164
|
import { a as readPostQuiesceTranscriptDelta, i as readBulkTranscriptLines, o as replaySource, r as mergeBulkTranscriptSnapshotAndDelta, t as ReplayRowConflictError } from "./replay-BHfUVVHN.js";
|
|
165
165
|
import "./session-key-resolution-DDJD1XYy.js";
|
|
166
|
-
import { c as
|
|
166
|
+
import { a as respondTaskRegistryUnavailable, c as tasksHandlers, d as withTimeout, i as resolveTaskOperatorRegistry, l as retryDelayMs, r as getTaskOperatorRegistry, t as DEFAULT_RETENTION_DAYS, u as waitForStopDrain } from "./task-runlog-retention-GZu-QuBY.js";
|
|
167
167
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DonecnKL.js";
|
|
168
168
|
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-C9otZxLF.js";
|
|
169
|
-
import { t as reconcileBundledInstalls } from "./reconcile-bundled-
|
|
169
|
+
import { t as reconcileBundledInstalls } from "./reconcile-bundled-DJKaKSgk.js";
|
|
170
170
|
import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-Ch9itsH4.js";
|
|
171
171
|
import "./onboarding.secret-input-BCxy1JxD.js";
|
|
172
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
172
|
+
import { t as runOnboardingWizard } from "./onboarding-BKoaWOxQ.js";
|
|
173
173
|
import { a as computeJobNextRunAtMs, c as findJobOrThrow, d as recomputeNextRuns, f as recomputeNextRunsForMaintenance, h as produceCronAgentTurn, i as applyJobPatch, l as isJobDue, m as resolveJobPayloadTextForMain, o as createJob, p as recordScheduleComputeError, r as resolveStaleClaimAdoptionMs, s as cronShapeSupportsIdentity, t as CRON_HEARTBEAT_ADAPTER_ID, u as nextWakeAtMs } from "./recovery-adapter-BF5ESanQ.js";
|
|
174
|
-
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-
|
|
174
|
+
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-qUm5cL9P.js";
|
|
175
175
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CRvbl5q3.js";
|
|
176
|
-
import { a as readChatHistoryPage, c as unsubscribeSessionChanges, i as decodeHistoryCursor, l as assertValidParams, o as resolveDbLeafEntryId, r as InvalidHistoryCursorError, s as resolveDbMessageEntryById, t as sessionsHandlers } from "./sessions-
|
|
176
|
+
import { a as readChatHistoryPage, c as unsubscribeSessionChanges, i as decodeHistoryCursor, l as assertValidParams, o as resolveDbLeafEntryId, r as InvalidHistoryCursorError, s as resolveDbMessageEntryById, t as sessionsHandlers } from "./sessions-BlXxa7bM.js";
|
|
177
177
|
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-6yjbNtx-.js";
|
|
178
178
|
import "./node-service-BnyKZNqa.js";
|
|
179
179
|
import "./status.update-BOB92yBQ.js";
|
|
180
180
|
import { i as resolveActiveLogFile, n as readLogSlice } from "./log-tail-BAg8b5Wq.js";
|
|
181
181
|
import { t as installSkill } from "./skills-install-DqCRPwE1.js";
|
|
182
|
-
import { r as runGatewayUpdate } from "./update-runner-
|
|
182
|
+
import { r as runGatewayUpdate } from "./update-runner-CBbs-iN_.js";
|
|
183
183
|
import { n as resolveWebClientPackagedRootSync, t as WEB_CLIENT_BUNDLE_MISSING_MESSAGE } from "./web-client-assets-CJyKwFRS.js";
|
|
184
184
|
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CcKQx_l1.js";
|
|
185
|
-
import { c as heartbeatProbeRunArtifactId, d as runIsolatedHeartbeatProbe, i as HEARTBEAT_PROBE_REASON, l as isHeartbeatProbeError, o as assertHeartbeatProbeDeliveryIsSafe, p as readValidationActivation, r as HEARTBEAT_PROBE_ALLOWED_TARGET, s as assertHeartbeatProbeParamsAreClosed, t as VALIDATION_ABORT_COMMAND, u as probeSessionKey$1 } from "./operator-commands-
|
|
185
|
+
import { c as heartbeatProbeRunArtifactId, d as runIsolatedHeartbeatProbe, i as HEARTBEAT_PROBE_REASON, l as isHeartbeatProbeError, o as assertHeartbeatProbeDeliveryIsSafe, p as readValidationActivation, r as HEARTBEAT_PROBE_ALLOWED_TARGET, s as assertHeartbeatProbeParamsAreClosed, t as VALIDATION_ABORT_COMMAND, u as probeSessionKey$1 } from "./operator-commands-EsKoI4yV.js";
|
|
186
186
|
import { createRequire } from "node:module";
|
|
187
187
|
import { cpuUsage, memoryUsage, resourceUsage, uptime } from "node:process";
|
|
188
188
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -1082,7 +1082,7 @@ function resolveVerificationStore(params = {}) {
|
|
|
1082
1082
|
|
|
1083
1083
|
//#endregion
|
|
1084
1084
|
//#region src/infra/exec-approval-forwarder.ts
|
|
1085
|
-
const log$
|
|
1085
|
+
const log$30 = createSubsystemLogger("gateway/exec-approvals");
|
|
1086
1086
|
const DEFAULT_MODE = "session";
|
|
1087
1087
|
function normalizeMode(mode) {
|
|
1088
1088
|
return mode ?? DEFAULT_MODE;
|
|
@@ -1220,7 +1220,7 @@ async function deliverToTargets(params) {
|
|
|
1220
1220
|
payloads: [{ text: params.text }]
|
|
1221
1221
|
});
|
|
1222
1222
|
} catch (err) {
|
|
1223
|
-
log$
|
|
1223
|
+
log$30.error(`exec approvals: failed to deliver to ${channel}:${target.to}: ${String(err)}`);
|
|
1224
1224
|
}
|
|
1225
1225
|
});
|
|
1226
1226
|
await Promise.allSettled(deliveries);
|
|
@@ -1309,7 +1309,7 @@ function createExecApprovalForwarder(deps = {}) {
|
|
|
1309
1309
|
deliver,
|
|
1310
1310
|
shouldSend: () => pending.get(request.id) === pendingEntry
|
|
1311
1311
|
}).catch((err) => {
|
|
1312
|
-
log$
|
|
1312
|
+
log$30.error(`exec approvals: failed to deliver request ${request.id}: ${String(err)}`);
|
|
1313
1313
|
});
|
|
1314
1314
|
return true;
|
|
1315
1315
|
};
|
|
@@ -1681,7 +1681,7 @@ function scheduleGatewayUpdateCheck(params) {
|
|
|
1681
1681
|
|
|
1682
1682
|
//#endregion
|
|
1683
1683
|
//#region src/sessions/session-runs/restart-transitions.ts
|
|
1684
|
-
const log$
|
|
1684
|
+
const log$29 = createSubsystemLogger("sessions/restart-transitions");
|
|
1685
1685
|
async function transition(input, recoveryEnabled) {
|
|
1686
1686
|
const store = input.store ?? getConfiguredSessionStorageRuntime()?.runtime?.runs;
|
|
1687
1687
|
if (!store) return [];
|
|
@@ -1692,14 +1692,14 @@ async function transition(input, recoveryEnabled) {
|
|
|
1692
1692
|
recoveryReason: input.reason,
|
|
1693
1693
|
recoveryEnabled
|
|
1694
1694
|
});
|
|
1695
|
-
if (transitioned.length > 0) log$
|
|
1695
|
+
if (transitioned.length > 0) log$29.info("transitioned active runs for restart", {
|
|
1696
1696
|
count: transitioned.length,
|
|
1697
1697
|
recoveryEnabled,
|
|
1698
1698
|
reason: input.reason
|
|
1699
1699
|
});
|
|
1700
1700
|
return transitioned;
|
|
1701
1701
|
} catch (err) {
|
|
1702
|
-
log$
|
|
1702
|
+
log$29.warn("failed to transition active runs for restart", {
|
|
1703
1703
|
recoveryEnabled,
|
|
1704
1704
|
error: String(err)
|
|
1705
1705
|
});
|
|
@@ -1768,7 +1768,7 @@ function resolveChannelRestartReason(snapshot, evaluation) {
|
|
|
1768
1768
|
|
|
1769
1769
|
//#endregion
|
|
1770
1770
|
//#region src/gateway/channel-health-monitor.ts
|
|
1771
|
-
const log$
|
|
1771
|
+
const log$28 = createSubsystemLogger("gateway/health-monitor");
|
|
1772
1772
|
const DEFAULT_CHECK_INTERVAL_MS = 5 * 6e4;
|
|
1773
1773
|
const DEFAULT_MONITOR_STARTUP_GRACE_MS = 6e4;
|
|
1774
1774
|
const DEFAULT_COOLDOWN_CYCLES = 2;
|
|
@@ -1828,11 +1828,11 @@ function startChannelHealthMonitor(deps) {
|
|
|
1828
1828
|
if (now - record.lastRestartAt <= cooldownMs) continue;
|
|
1829
1829
|
pruneOldRestarts(record, now);
|
|
1830
1830
|
if (record.restartsThisHour.length >= maxRestartsPerHour) {
|
|
1831
|
-
log$
|
|
1831
|
+
log$28.warn?.(`[${channelId}:${accountId}] health-monitor: hit ${maxRestartsPerHour} restarts/hour limit, skipping`);
|
|
1832
1832
|
continue;
|
|
1833
1833
|
}
|
|
1834
1834
|
const reason = resolveChannelRestartReason(status, health);
|
|
1835
|
-
log$
|
|
1835
|
+
log$28.info?.(`[${channelId}:${accountId}] health-monitor: restarting (reason: ${reason})`);
|
|
1836
1836
|
try {
|
|
1837
1837
|
if (status.running) await channelManager.stopChannel(channelId, accountId);
|
|
1838
1838
|
channelManager.resetRestartAttempts(channelId, accountId);
|
|
@@ -1841,7 +1841,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1841
1841
|
record.restartsThisHour.push({ at: now });
|
|
1842
1842
|
restartRecords.set(key, record);
|
|
1843
1843
|
} catch (err) {
|
|
1844
|
-
log$
|
|
1844
|
+
log$28.error?.(`[${channelId}:${accountId}] health-monitor: restart failed: ${String(err)}`);
|
|
1845
1845
|
}
|
|
1846
1846
|
}
|
|
1847
1847
|
}
|
|
@@ -1861,7 +1861,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1861
1861
|
abortSignal?.addEventListener("abort", stop, { once: true });
|
|
1862
1862
|
timer = setInterval(() => void runCheck(), checkIntervalMs);
|
|
1863
1863
|
if (typeof timer === "object" && "unref" in timer) timer.unref();
|
|
1864
|
-
log$
|
|
1864
|
+
log$28.info?.(`started (interval: ${Math.round(checkIntervalMs / 1e3)}s, startup-grace: ${Math.round(timing.monitorStartupGraceMs / 1e3)}s, channel-connect-grace: ${Math.round(timing.channelConnectGraceMs / 1e3)}s)`);
|
|
1865
1865
|
}
|
|
1866
1866
|
return { stop };
|
|
1867
1867
|
}
|
|
@@ -3067,10 +3067,10 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3067
3067
|
const { getConfiguredSessionStorageRuntime } = await import("./model-selection-k68XU4oS.js").then((n) => n.hi);
|
|
3068
3068
|
const runtime = getConfiguredSessionStorageRuntime()?.runtime;
|
|
3069
3069
|
const gatewayInstanceId = getGatewayInstanceId();
|
|
3070
|
-
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-
|
|
3070
|
+
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-CUoz_Fkl.js").then((n) => n.t);
|
|
3071
3071
|
const backbone = tryGetAgentTurnRuntime()?.backbone;
|
|
3072
3072
|
const { createOutboundDeliveryRecoveryAdapter } = await import("./delivery-recovery-adapter-CXwijCdD.js");
|
|
3073
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
3073
|
+
const { deliverOutboundPayloads } = await import("./deliver-rLn-23ud.js").then((n) => n.n);
|
|
3074
3074
|
adapters.push(createOutboundDeliveryRecoveryAdapter({
|
|
3075
3075
|
cfg,
|
|
3076
3076
|
deliver: deliverOutboundPayloads,
|
|
@@ -3084,7 +3084,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3084
3084
|
sessionRuns = void 0;
|
|
3085
3085
|
}
|
|
3086
3086
|
if (sessionRuns && wiring?.agentTurnStager) {
|
|
3087
|
-
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-
|
|
3087
|
+
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-DF25-zSH.js");
|
|
3088
3088
|
adapters.push(createSessionRunRecoveryAdapter({
|
|
3089
3089
|
store: sessionRuns,
|
|
3090
3090
|
cfg,
|
|
@@ -3100,7 +3100,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3100
3100
|
lease: wiring?.lease ? () => wiring.lease?.() ?? { isArmed: () => false } : void 0
|
|
3101
3101
|
}));
|
|
3102
3102
|
if (backbone && wiring?.agentTurnStager) {
|
|
3103
|
-
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-
|
|
3103
|
+
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-CL4IrGUo.js");
|
|
3104
3104
|
adapters.push(createAgentTurnRecoveryAdapter({
|
|
3105
3105
|
backbone,
|
|
3106
3106
|
stager: wiring.agentTurnStager
|
|
@@ -3122,7 +3122,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3122
3122
|
}));
|
|
3123
3123
|
}
|
|
3124
3124
|
if (sessionRuns) {
|
|
3125
|
-
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-
|
|
3125
|
+
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-BHTdeEKa.js");
|
|
3126
3126
|
adapters.push(createEmbeddedPiRecoveryAdapter({
|
|
3127
3127
|
sessionRuns,
|
|
3128
3128
|
cfg,
|
|
@@ -3130,7 +3130,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3130
3130
|
stager: wiring?.agentTurnStager,
|
|
3131
3131
|
isRunActive: isEmbeddedPiRunActive
|
|
3132
3132
|
}));
|
|
3133
|
-
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-
|
|
3133
|
+
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-BT12fVyO.js");
|
|
3134
3134
|
adapters.push(createAcpRuntimeRecoveryAdapter({ sessionRuns }));
|
|
3135
3135
|
}
|
|
3136
3136
|
if (backbone) {
|
|
@@ -3771,7 +3771,7 @@ function createChannelManager(opts) {
|
|
|
3771
3771
|
|
|
3772
3772
|
//#endregion
|
|
3773
3773
|
//#region src/gateway/server-chat.ts
|
|
3774
|
-
const log$
|
|
3774
|
+
const log$27 = createSubsystemLogger("gateway/chat-final");
|
|
3775
3775
|
const CHAT_TERMINAL_DURABILITY_TIMEOUT_MS = 5e3;
|
|
3776
3776
|
function resolveHeartbeatAckMaxChars$1() {
|
|
3777
3777
|
try {
|
|
@@ -4013,14 +4013,14 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4013
4013
|
const pending = pendingTerminalBySession.get(sessionKey);
|
|
4014
4014
|
const durability = waitForPendingWrites(writes, CHAT_TERMINAL_DURABILITY_TIMEOUT_MS);
|
|
4015
4015
|
const gate = (pending ?? Promise.resolve()).then(() => durability).then((outcome) => {
|
|
4016
|
-
if (outcome === "timeout") log$
|
|
4016
|
+
if (outcome === "timeout") log$27.warn("chat terminal broadcast before transcript durability (timeout)", {
|
|
4017
4017
|
runId: sourceRunId,
|
|
4018
4018
|
sessionKey,
|
|
4019
4019
|
timeoutMs: CHAT_TERMINAL_DURABILITY_TIMEOUT_MS
|
|
4020
4020
|
});
|
|
4021
4021
|
sendChatTerminal(sessionKey, payload);
|
|
4022
4022
|
}).catch((err) => {
|
|
4023
|
-
log$
|
|
4023
|
+
log$27.warn("chat terminal broadcast failed while waiting for transcript durability", {
|
|
4024
4024
|
runId: sourceRunId,
|
|
4025
4025
|
sessionKey,
|
|
4026
4026
|
err
|
|
@@ -4127,7 +4127,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4127
4127
|
* Automatically starts `gog gmail watch serve` when the gateway starts,
|
|
4128
4128
|
* if hooks.gmail is configured with an account.
|
|
4129
4129
|
*/
|
|
4130
|
-
const log$
|
|
4130
|
+
const log$26 = createSubsystemLogger("gmail-watcher");
|
|
4131
4131
|
const ADDRESS_IN_USE_RE = /address already in use|EADDRINUSE/i;
|
|
4132
4132
|
function isAddressInUseError(line) {
|
|
4133
4133
|
return ADDRESS_IN_USE_RE.test(line);
|
|
@@ -4151,13 +4151,13 @@ async function startGmailWatch(cfg) {
|
|
|
4151
4151
|
const result = await runCommandWithTimeout(args, { timeoutMs: 12e4 });
|
|
4152
4152
|
if (result.code !== 0) {
|
|
4153
4153
|
const message = result.stderr || result.stdout || "gog watch start failed";
|
|
4154
|
-
log$
|
|
4154
|
+
log$26.error(`watch start failed: ${message}`);
|
|
4155
4155
|
return false;
|
|
4156
4156
|
}
|
|
4157
|
-
log$
|
|
4157
|
+
log$26.info(`watch started for ${cfg.account}`);
|
|
4158
4158
|
return true;
|
|
4159
4159
|
} catch (err) {
|
|
4160
|
-
log$
|
|
4160
|
+
log$26.error(`watch start error: ${String(err)}`);
|
|
4161
4161
|
return false;
|
|
4162
4162
|
}
|
|
4163
4163
|
}
|
|
@@ -4166,7 +4166,7 @@ async function startGmailWatch(cfg) {
|
|
|
4166
4166
|
*/
|
|
4167
4167
|
function spawnGogServe(cfg) {
|
|
4168
4168
|
const args = buildGogWatchServeArgs(cfg);
|
|
4169
|
-
log$
|
|
4169
|
+
log$26.info(`starting gog ${args.join(" ")}`);
|
|
4170
4170
|
let addressInUse = false;
|
|
4171
4171
|
const child = spawn("gog", args, {
|
|
4172
4172
|
stdio: [
|
|
@@ -4178,25 +4178,25 @@ function spawnGogServe(cfg) {
|
|
|
4178
4178
|
});
|
|
4179
4179
|
child.stdout?.on("data", (data) => {
|
|
4180
4180
|
const line = data.toString().trim();
|
|
4181
|
-
if (line) log$
|
|
4181
|
+
if (line) log$26.info(`[gog] ${line}`);
|
|
4182
4182
|
});
|
|
4183
4183
|
child.stderr?.on("data", (data) => {
|
|
4184
4184
|
const line = data.toString().trim();
|
|
4185
4185
|
if (!line) return;
|
|
4186
4186
|
if (isAddressInUseError(line)) addressInUse = true;
|
|
4187
|
-
log$
|
|
4187
|
+
log$26.warn(`[gog] ${line}`);
|
|
4188
4188
|
});
|
|
4189
4189
|
child.on("error", (err) => {
|
|
4190
|
-
log$
|
|
4190
|
+
log$26.error(`gog process error: ${String(err)}`);
|
|
4191
4191
|
});
|
|
4192
4192
|
child.on("exit", (code, signal) => {
|
|
4193
4193
|
if (shuttingDown) return;
|
|
4194
4194
|
if (addressInUse) {
|
|
4195
|
-
log$
|
|
4195
|
+
log$26.warn("gog serve failed to bind (address already in use); stopping restarts. Another watcher is likely running. Set OPENCLAW_SKIP_GMAIL_WATCHER=1 or stop the other process.");
|
|
4196
4196
|
watcherProcess = null;
|
|
4197
4197
|
return;
|
|
4198
4198
|
}
|
|
4199
|
-
log$
|
|
4199
|
+
log$26.warn(`gog exited (code=${code}, signal=${signal}); restarting in 5s`);
|
|
4200
4200
|
watcherProcess = null;
|
|
4201
4201
|
setTimeout(() => {
|
|
4202
4202
|
if (shuttingDown || !currentConfig) return;
|
|
@@ -4236,15 +4236,15 @@ async function startGmailWatcher(cfg) {
|
|
|
4236
4236
|
port: runtimeConfig.serve.port,
|
|
4237
4237
|
target: runtimeConfig.tailscale.target
|
|
4238
4238
|
});
|
|
4239
|
-
log$
|
|
4239
|
+
log$26.info(`tailscale ${runtimeConfig.tailscale.mode} configured for port ${runtimeConfig.serve.port}`);
|
|
4240
4240
|
} catch (err) {
|
|
4241
|
-
log$
|
|
4241
|
+
log$26.error(`tailscale setup failed: ${String(err)}`);
|
|
4242
4242
|
return {
|
|
4243
4243
|
started: false,
|
|
4244
4244
|
reason: `tailscale setup failed: ${String(err)}`
|
|
4245
4245
|
};
|
|
4246
4246
|
}
|
|
4247
|
-
if (!await startGmailWatch(runtimeConfig)) log$
|
|
4247
|
+
if (!await startGmailWatch(runtimeConfig)) log$26.warn("gmail watch start failed, but continuing with serve");
|
|
4248
4248
|
shuttingDown = false;
|
|
4249
4249
|
watcherProcess = spawnGogServe(runtimeConfig);
|
|
4250
4250
|
const renewMs = runtimeConfig.renewEveryMinutes * 6e4;
|
|
@@ -4252,7 +4252,7 @@ async function startGmailWatcher(cfg) {
|
|
|
4252
4252
|
if (shuttingDown) return;
|
|
4253
4253
|
startGmailWatch(runtimeConfig);
|
|
4254
4254
|
}, renewMs);
|
|
4255
|
-
log$
|
|
4255
|
+
log$26.info(`gmail watcher started for ${runtimeConfig.account} (renew every ${runtimeConfig.renewEveryMinutes}m)`);
|
|
4256
4256
|
return { started: true };
|
|
4257
4257
|
}
|
|
4258
4258
|
/**
|
|
@@ -4265,7 +4265,7 @@ async function stopGmailWatcher() {
|
|
|
4265
4265
|
renewInterval = null;
|
|
4266
4266
|
}
|
|
4267
4267
|
if (watcherProcess) {
|
|
4268
|
-
log$
|
|
4268
|
+
log$26.info("stopping gmail watcher");
|
|
4269
4269
|
watcherProcess.kill("SIGTERM");
|
|
4270
4270
|
await new Promise((resolve) => {
|
|
4271
4271
|
const timeout = setTimeout(() => {
|
|
@@ -4280,7 +4280,7 @@ async function stopGmailWatcher() {
|
|
|
4280
4280
|
watcherProcess = null;
|
|
4281
4281
|
}
|
|
4282
4282
|
currentConfig = null;
|
|
4283
|
-
log$
|
|
4283
|
+
log$26.info("gmail watcher stopped");
|
|
4284
4284
|
}
|
|
4285
4285
|
|
|
4286
4286
|
//#endregion
|
|
@@ -5656,7 +5656,7 @@ async function runCronIsolatedAgentTurn(params) {
|
|
|
5656
5656
|
|
|
5657
5657
|
//#endregion
|
|
5658
5658
|
//#region src/cron/run-log.ts
|
|
5659
|
-
const log$
|
|
5659
|
+
const log$25 = createSubsystemLogger("cron/run-log");
|
|
5660
5660
|
function assertSafeCronRunLogJobId(jobId) {
|
|
5661
5661
|
const trimmed = jobId.trim();
|
|
5662
5662
|
if (!trimmed) throw new Error("invalid cron run log job id");
|
|
@@ -5698,7 +5698,7 @@ async function pruneIfNeeded(filePath, opts) {
|
|
|
5698
5698
|
const stat = await fs$1.stat(filePath).catch(() => null);
|
|
5699
5699
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
5700
5700
|
const raw = await fs$1.readFile(filePath, "utf-8").catch((err) => {
|
|
5701
|
-
log$
|
|
5701
|
+
log$25.warn("cron run-log: prune skipped (read failed)", {
|
|
5702
5702
|
filePath,
|
|
5703
5703
|
err: String(err)
|
|
5704
5704
|
});
|
|
@@ -11741,9 +11741,6 @@ const VOICE_INTERRUPTED_MARKER = " [interrupted]";
|
|
|
11741
11741
|
const CHAT_HISTORY_TEXT_MAX_CHARS = 12e3;
|
|
11742
11742
|
const CHAT_HISTORY_MAX_SINGLE_MESSAGE_BYTES = 128 * 1024;
|
|
11743
11743
|
const CHAT_HISTORY_OVERSIZED_PLACEHOLDER = "[chat.history omitted: message too large]";
|
|
11744
|
-
/** Twice the default storage probe timeout: how long chat.history waits for a booting gateway's session storage before it answers UNAVAILABLE. */
|
|
11745
|
-
const CHAT_HISTORY_STORAGE_START_WAIT_MS = 1e4;
|
|
11746
|
-
const CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS = 1e3;
|
|
11747
11744
|
let chatHistoryPlaceholderEmitCount = 0;
|
|
11748
11745
|
function stripDisallowedChatControlChars(message) {
|
|
11749
11746
|
let output = "";
|
|
@@ -12545,13 +12542,6 @@ const chatHandlers = {
|
|
|
12545
12542
|
return;
|
|
12546
12543
|
}
|
|
12547
12544
|
const { sessionKey, limit, maxChars, before } = params;
|
|
12548
|
-
if (!(await context.storageStartup?.whenReleased(CHAT_HISTORY_STORAGE_START_WAIT_MS) ?? true)) {
|
|
12549
|
-
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage is still starting", {
|
|
12550
|
-
retryable: true,
|
|
12551
|
-
retryAfterMs: CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS
|
|
12552
|
-
}));
|
|
12553
|
-
return;
|
|
12554
|
-
}
|
|
12555
12545
|
const { cfg, storePath, entry } = loadSessionEntry(sessionKey);
|
|
12556
12546
|
const sessionId = entry?.sessionId;
|
|
12557
12547
|
const sessionAgentId = resolveSessionAgentId({
|
|
@@ -14742,7 +14732,7 @@ async function replayApproval(ctx) {
|
|
|
14742
14732
|
|
|
14743
14733
|
//#endregion
|
|
14744
14734
|
//#region src/infra/exec-audit.ts
|
|
14745
|
-
const log$
|
|
14735
|
+
const log$24 = createSubsystemLogger("infra/exec-audit");
|
|
14746
14736
|
function emitAuditRecord(request, decision) {
|
|
14747
14737
|
const inv = request.invocation;
|
|
14748
14738
|
const argvSummary = inv.mode === "argv" ? `${inv.executable} ${redactArgvForAudit(inv.args).join(" ")}` : inv.mode === "shell" ? redactCommandText(inv.command) : inv.mode === "approved-script" ? inv.scriptId : `${inv.serverId}/${inv.toolName}`;
|
|
@@ -14773,7 +14763,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14773
14763
|
timeoutMs: request.timeoutMs,
|
|
14774
14764
|
stdinPresent: request.stdin === "present-redacted"
|
|
14775
14765
|
};
|
|
14776
|
-
if (record.outcome === "deny") log$
|
|
14766
|
+
if (record.outcome === "deny") log$24.warn("exec-audit deny", {
|
|
14777
14767
|
effect: record.effect,
|
|
14778
14768
|
sourceRule: record.sourceRule,
|
|
14779
14769
|
reason: record.reason,
|
|
@@ -14782,7 +14772,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14782
14772
|
normalizedArgv: record.normalizedArgv,
|
|
14783
14773
|
policyId: record.policyId
|
|
14784
14774
|
});
|
|
14785
|
-
else log$
|
|
14775
|
+
else log$24.info("exec-audit", {
|
|
14786
14776
|
effect: record.effect,
|
|
14787
14777
|
sourceRule: record.sourceRule,
|
|
14788
14778
|
outcome: record.outcome,
|
|
@@ -15130,7 +15120,7 @@ function reEvaluatePoliciesForPath(reResolvedRequest, envSanitization, policies
|
|
|
15130
15120
|
|
|
15131
15121
|
//#endregion
|
|
15132
15122
|
//#region src/infra/load-policies-for-request.ts
|
|
15133
|
-
const log$
|
|
15123
|
+
const log$23 = createSubsystemLogger("infra/load-policies-for-request");
|
|
15134
15124
|
/**
|
|
15135
15125
|
* User-scoped policy source backed by the v2 exec-approvals store
|
|
15136
15126
|
* (`~/.openclaw/exec-approvals.json`). The store is migrated v1→v2 on load
|
|
@@ -15149,7 +15139,7 @@ function createUserPolicySource() {
|
|
|
15149
15139
|
try {
|
|
15150
15140
|
return (await loadExecApprovalsV2()).policies;
|
|
15151
15141
|
} catch (error) {
|
|
15152
|
-
log$
|
|
15142
|
+
log$23.warn("user policy store load failed; user policies will not apply", { error });
|
|
15153
15143
|
return [];
|
|
15154
15144
|
}
|
|
15155
15145
|
} };
|
|
@@ -16294,7 +16284,7 @@ const nodeHandlers = {
|
|
|
16294
16284
|
const p = params;
|
|
16295
16285
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
16296
16286
|
await respondUnavailableOnThrow(respond, async () => {
|
|
16297
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
16287
|
+
const { handleNodeEvent } = await import("./server-node-events-BYTgaAay.js");
|
|
16298
16288
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
16299
16289
|
await handleNodeEvent({
|
|
16300
16290
|
deps: context.deps,
|
|
@@ -17091,7 +17081,7 @@ function resolveSteerResult(params) {
|
|
|
17091
17081
|
|
|
17092
17082
|
//#endregion
|
|
17093
17083
|
//#region src/gateway/session-title-completion.ts
|
|
17094
|
-
const log$
|
|
17084
|
+
const log$22 = createSubsystemLogger("gateway/session-title-completion");
|
|
17095
17085
|
const SESSION_TITLE_COMPLETION_TIMEOUT_MS = 15e3;
|
|
17096
17086
|
const SESSION_TITLE_MAX_CHARS = 60;
|
|
17097
17087
|
/** Upstream openclaw's dashboard-session-title prompt wording (ADR 0084 s5, mission M4). */
|
|
@@ -17142,7 +17132,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17142
17132
|
try {
|
|
17143
17133
|
const resolved = deps.resolveModel(provider, model, agentDir, cfg);
|
|
17144
17134
|
if (!resolved.model) {
|
|
17145
|
-
log$
|
|
17135
|
+
log$22.warn("session title model unresolved", {
|
|
17146
17136
|
...logFields,
|
|
17147
17137
|
error: resolved.error
|
|
17148
17138
|
});
|
|
@@ -17156,7 +17146,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17156
17146
|
let apiKey;
|
|
17157
17147
|
if (!auth.apiKey) {
|
|
17158
17148
|
if (auth.mode !== "aws-sdk") {
|
|
17159
|
-
log$
|
|
17149
|
+
log$22.warn("session title no api key resolved", {
|
|
17160
17150
|
...logFields,
|
|
17161
17151
|
mode: auth.mode
|
|
17162
17152
|
});
|
|
@@ -17171,7 +17161,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17171
17161
|
})).token;
|
|
17172
17162
|
else apiKey = auth.apiKey;
|
|
17173
17163
|
if (controller.signal.aborted) {
|
|
17174
|
-
log$
|
|
17164
|
+
log$22.warn("session title generation timed out before dispatch", logFields);
|
|
17175
17165
|
return null;
|
|
17176
17166
|
}
|
|
17177
17167
|
const response = await deps.completeSimple(resolved.model, {
|
|
@@ -17188,11 +17178,11 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17188
17178
|
signal: controller.signal
|
|
17189
17179
|
});
|
|
17190
17180
|
if (response.stopReason === "aborted") {
|
|
17191
|
-
log$
|
|
17181
|
+
log$22.warn("session title generation timed out", logFields);
|
|
17192
17182
|
return null;
|
|
17193
17183
|
}
|
|
17194
17184
|
if (response.stopReason === "error") {
|
|
17195
|
-
log$
|
|
17185
|
+
log$22.warn("session title generation provider error", {
|
|
17196
17186
|
...logFields,
|
|
17197
17187
|
error: response.errorMessage
|
|
17198
17188
|
});
|
|
@@ -17202,7 +17192,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17202
17192
|
if (!text) return null;
|
|
17203
17193
|
return normalizeSessionTitle(text);
|
|
17204
17194
|
} catch (error) {
|
|
17205
|
-
log$
|
|
17195
|
+
log$22.warn("session title generation failed", {
|
|
17206
17196
|
...logFields,
|
|
17207
17197
|
error: error instanceof Error ? error.message : String(error)
|
|
17208
17198
|
});
|
|
@@ -17383,6 +17373,218 @@ const skillsHandlers = {
|
|
|
17383
17373
|
}
|
|
17384
17374
|
};
|
|
17385
17375
|
|
|
17376
|
+
//#endregion
|
|
17377
|
+
//#region src/gateway/storage-method-policy.ts
|
|
17378
|
+
const STORAGE_METHOD_POLICY_REQUIRED = [
|
|
17379
|
+
"chat.history",
|
|
17380
|
+
"sessions.claims.status",
|
|
17381
|
+
"sessions.runHistory",
|
|
17382
|
+
"sessions.runs.cancel",
|
|
17383
|
+
"sessions.runs.continue",
|
|
17384
|
+
"sessions.runs.events",
|
|
17385
|
+
"sessions.runs.get",
|
|
17386
|
+
"sessions.runs.list",
|
|
17387
|
+
"tasks.resetBudget",
|
|
17388
|
+
"tasks.rollback",
|
|
17389
|
+
"tasks.runDryRun",
|
|
17390
|
+
"tasks.runEvents",
|
|
17391
|
+
"tasks.runs.get",
|
|
17392
|
+
"tasks.runs.events",
|
|
17393
|
+
"tasks.runs.list",
|
|
17394
|
+
"tasks.status"
|
|
17395
|
+
];
|
|
17396
|
+
const STORAGE_METHOD_POLICY_BOOT_WRITE = [
|
|
17397
|
+
"chat.inject",
|
|
17398
|
+
"sessions.compact",
|
|
17399
|
+
"sessions.create",
|
|
17400
|
+
"sessions.delete",
|
|
17401
|
+
"sessions.patch",
|
|
17402
|
+
"sessions.reset"
|
|
17403
|
+
];
|
|
17404
|
+
const STORAGE_METHOD_POLICY_NONE = [
|
|
17405
|
+
"connect",
|
|
17406
|
+
"health",
|
|
17407
|
+
"status",
|
|
17408
|
+
"logs.tail",
|
|
17409
|
+
"voicewake.get",
|
|
17410
|
+
"voicewake.set",
|
|
17411
|
+
"channels.status",
|
|
17412
|
+
"channels.logout",
|
|
17413
|
+
"chat.abort",
|
|
17414
|
+
"chat.send",
|
|
17415
|
+
"sessions.abort",
|
|
17416
|
+
"wake",
|
|
17417
|
+
"cron.list",
|
|
17418
|
+
"cron.status",
|
|
17419
|
+
"cron.add",
|
|
17420
|
+
"cron.update",
|
|
17421
|
+
"cron.remove",
|
|
17422
|
+
"cron.run",
|
|
17423
|
+
"cron.runs",
|
|
17424
|
+
"device.pair.list",
|
|
17425
|
+
"device.pair.approve",
|
|
17426
|
+
"device.pair.reject",
|
|
17427
|
+
"device.pair.remove",
|
|
17428
|
+
"device.token.rotate",
|
|
17429
|
+
"device.token.revoke",
|
|
17430
|
+
"diagnostics.runtime.snapshot",
|
|
17431
|
+
"diagnostics.capture.cpu",
|
|
17432
|
+
"diagnostics.capture.heap",
|
|
17433
|
+
"diagnostics.capture.report",
|
|
17434
|
+
"diagnostics.profiling.start",
|
|
17435
|
+
"diagnostics.profiling.stop",
|
|
17436
|
+
"doctor.memory.status",
|
|
17437
|
+
"doctor.recovery.inspect",
|
|
17438
|
+
"doctor.recovery.plan",
|
|
17439
|
+
"doctor.recovery.apply",
|
|
17440
|
+
"exec.approvals.get",
|
|
17441
|
+
"exec.approvals.set",
|
|
17442
|
+
"exec.approvals.node.get",
|
|
17443
|
+
"exec.approvals.node.set",
|
|
17444
|
+
"web.login.start",
|
|
17445
|
+
"web.login.wait",
|
|
17446
|
+
"models.authStatus",
|
|
17447
|
+
"models.list",
|
|
17448
|
+
"config.get",
|
|
17449
|
+
"config.schema",
|
|
17450
|
+
"config.set",
|
|
17451
|
+
"config.patch",
|
|
17452
|
+
"config.apply",
|
|
17453
|
+
"wizard.start",
|
|
17454
|
+
"wizard.next",
|
|
17455
|
+
"wizard.cancel",
|
|
17456
|
+
"wizard.status",
|
|
17457
|
+
"talk.config",
|
|
17458
|
+
"talk.mode",
|
|
17459
|
+
"talk.catalog",
|
|
17460
|
+
"talk.session.create",
|
|
17461
|
+
"talk.session.appendAudio",
|
|
17462
|
+
"talk.session.close",
|
|
17463
|
+
"talk.session.cancelTurn",
|
|
17464
|
+
"talk.session.mark",
|
|
17465
|
+
"talk.session.bargeIn",
|
|
17466
|
+
"talk.realtime.session",
|
|
17467
|
+
"talk.realtime.audio",
|
|
17468
|
+
"talk.realtime.mark",
|
|
17469
|
+
"talk.realtime.toolResult",
|
|
17470
|
+
"talk.realtime.bargeIn",
|
|
17471
|
+
"talk.realtime.stop",
|
|
17472
|
+
"talk.realtime.status",
|
|
17473
|
+
"talk.metrics",
|
|
17474
|
+
"tools.catalog",
|
|
17475
|
+
"tts.status",
|
|
17476
|
+
"tts.enable",
|
|
17477
|
+
"tts.disable",
|
|
17478
|
+
"tts.convert",
|
|
17479
|
+
"tts.setProvider",
|
|
17480
|
+
"tts.providers",
|
|
17481
|
+
"skills.status",
|
|
17482
|
+
"skills.bins",
|
|
17483
|
+
"skills.install",
|
|
17484
|
+
"skills.update",
|
|
17485
|
+
"sessions.subscribe",
|
|
17486
|
+
"sessions.list",
|
|
17487
|
+
"sessions.describe",
|
|
17488
|
+
"sessions.compaction.list",
|
|
17489
|
+
"sessions.runs",
|
|
17490
|
+
"sessions.thresholds",
|
|
17491
|
+
"sessions.interrupt",
|
|
17492
|
+
"sessions.preview",
|
|
17493
|
+
"sessions.resolve",
|
|
17494
|
+
"sessions.title.prepare",
|
|
17495
|
+
"sessions.steer",
|
|
17496
|
+
"last-heartbeat",
|
|
17497
|
+
"set-heartbeats",
|
|
17498
|
+
"system-presence",
|
|
17499
|
+
"system-event",
|
|
17500
|
+
"update.run",
|
|
17501
|
+
"node.pair.request",
|
|
17502
|
+
"node.pair.list",
|
|
17503
|
+
"node.pair.approve",
|
|
17504
|
+
"node.pair.reject",
|
|
17505
|
+
"node.pair.verify",
|
|
17506
|
+
"node.rename",
|
|
17507
|
+
"node.list",
|
|
17508
|
+
"node.describe",
|
|
17509
|
+
"node.canvas.capability.refresh",
|
|
17510
|
+
"node.invoke",
|
|
17511
|
+
"node.invoke.result",
|
|
17512
|
+
"node.event",
|
|
17513
|
+
"plugins/health",
|
|
17514
|
+
"push.test",
|
|
17515
|
+
"send",
|
|
17516
|
+
"poll",
|
|
17517
|
+
"usage.status",
|
|
17518
|
+
"usage.cost",
|
|
17519
|
+
"sessions.usage",
|
|
17520
|
+
"sessions.usage.timeseries",
|
|
17521
|
+
"sessions.usage.logs",
|
|
17522
|
+
"agent",
|
|
17523
|
+
"agent.identity.get",
|
|
17524
|
+
"agent.wait",
|
|
17525
|
+
"agent.nudge",
|
|
17526
|
+
"agents.list",
|
|
17527
|
+
"agents.create",
|
|
17528
|
+
"agents.update",
|
|
17529
|
+
"agents.delete",
|
|
17530
|
+
"agents.files.list",
|
|
17531
|
+
"agents.files.get",
|
|
17532
|
+
"agents.files.set",
|
|
17533
|
+
"browser.request"
|
|
17534
|
+
];
|
|
17535
|
+
const STORAGE_METHOD_POLICY = Object.freeze({
|
|
17536
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_REQUIRED.map((method) => [method, "required"])),
|
|
17537
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_BOOT_WRITE.map((method) => [method, "boot-write"])),
|
|
17538
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_NONE.map((method) => [method, "none"]))
|
|
17539
|
+
});
|
|
17540
|
+
|
|
17541
|
+
//#endregion
|
|
17542
|
+
//#region src/gateway/server-methods/storage-fence.ts
|
|
17543
|
+
const STORAGE_START_WAIT_MS = 1e4;
|
|
17544
|
+
const log$21 = createSubsystemLogger("gateway/storage-fence");
|
|
17545
|
+
const warnedGates = /* @__PURE__ */ new WeakSet();
|
|
17546
|
+
/**
|
|
17547
|
+
* Returns true when this call has been answered by the fence (held out, or answered a typed
|
|
17548
|
+
* error), so dispatch must not run the handler. Runs after authorization and the method-set
|
|
17549
|
+
* rate limits, so an unauthorized caller never learns storage readiness. Absent context gate or
|
|
17550
|
+
* `none`/missing classification means no storage decision applies to the method.
|
|
17551
|
+
*/
|
|
17552
|
+
async function guardStorageRpc(method, context, respond) {
|
|
17553
|
+
const policy = Object.hasOwn(STORAGE_METHOD_POLICY, method) ? STORAGE_METHOD_POLICY[method] : void 0;
|
|
17554
|
+
const gate = context.storageStartup;
|
|
17555
|
+
if (policy === void 0 || policy === "none" || !gate) return false;
|
|
17556
|
+
let state = gate.state();
|
|
17557
|
+
if (state.phase === "ready") return false;
|
|
17558
|
+
state = await gate.whenSettled(STORAGE_START_WAIT_MS);
|
|
17559
|
+
if (state.phase === "ready") return false;
|
|
17560
|
+
if (state.phase === "failed") {
|
|
17561
|
+
if (policy === "boot-write") return false;
|
|
17562
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage failed to start", {
|
|
17563
|
+
retryable: false,
|
|
17564
|
+
details: {
|
|
17565
|
+
code: "storage_start_failed",
|
|
17566
|
+
reasonCodes: state.reasonCodes
|
|
17567
|
+
}
|
|
17568
|
+
}));
|
|
17569
|
+
return true;
|
|
17570
|
+
}
|
|
17571
|
+
if (state.phase === "starting" && !warnedGates.has(gate)) {
|
|
17572
|
+
warnedGates.add(gate);
|
|
17573
|
+
log$21.warn("session storage still starting after 10000ms; storage-backed methods answer RECOVERY_NOT_READY");
|
|
17574
|
+
}
|
|
17575
|
+
const stopping = state.phase === "stopping";
|
|
17576
|
+
respond(false, void 0, errorShape(ErrorCodes.RECOVERY_NOT_READY, stopping ? "gateway is stopping" : "session storage is still starting", {
|
|
17577
|
+
retryable: true,
|
|
17578
|
+
retryAfterMs: 500,
|
|
17579
|
+
details: {
|
|
17580
|
+
producer: "session-storage",
|
|
17581
|
+
phase: state.phase,
|
|
17582
|
+
reasonCodes: [stopping ? "storage_stopping" : "storage_starting"]
|
|
17583
|
+
}
|
|
17584
|
+
}));
|
|
17585
|
+
return true;
|
|
17586
|
+
}
|
|
17587
|
+
|
|
17386
17588
|
//#endregion
|
|
17387
17589
|
//#region src/gateway/server/presence-events.ts
|
|
17388
17590
|
function broadcastPresenceSnapshot(params) {
|
|
@@ -22236,9 +22438,9 @@ function toRedactedEvent(event) {
|
|
|
22236
22438
|
};
|
|
22237
22439
|
}
|
|
22238
22440
|
async function listQueuedView(params, runtime, respond) {
|
|
22239
|
-
const registry =
|
|
22441
|
+
const registry = await resolveTaskOperatorRegistry();
|
|
22240
22442
|
if (!registry) {
|
|
22241
|
-
respond
|
|
22443
|
+
respondTaskRegistryUnavailable(respond);
|
|
22242
22444
|
return;
|
|
22243
22445
|
}
|
|
22244
22446
|
const busWork = runtime.busWork;
|
|
@@ -23914,6 +24116,7 @@ async function handleGatewayRequest(opts) {
|
|
|
23914
24116
|
return;
|
|
23915
24117
|
}
|
|
23916
24118
|
}
|
|
24119
|
+
if (await guardStorageRpc(req.method, context, respond)) return;
|
|
23917
24120
|
await handler({
|
|
23918
24121
|
req,
|
|
23919
24122
|
params: req.params ?? {},
|
|
@@ -24858,7 +25061,7 @@ function normalizeAgentPayload(payload) {
|
|
|
24858
25061
|
async function startBrowserControlServerIfEnabled() {
|
|
24859
25062
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
24860
25063
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
24861
|
-
const mod = override ? await import(override) : await import("./server-
|
|
25064
|
+
const mod = override ? await import(override) : await import("./server-DWJmtex3.js");
|
|
24862
25065
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
24863
25066
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
24864
25067
|
if (!start) return null;
|
|
@@ -31216,29 +31419,56 @@ function createStorageRecoveryContainment(deps) {
|
|
|
31216
31419
|
//#endregion
|
|
31217
31420
|
//#region src/gateway/storage-startup-gate.ts
|
|
31218
31421
|
function createStorageStartupGate() {
|
|
31422
|
+
let phase = { phase: "ready" };
|
|
31219
31423
|
let held = false;
|
|
31220
31424
|
const waiters = /* @__PURE__ */ new Set();
|
|
31425
|
+
const wakeAll = () => {
|
|
31426
|
+
for (const wake of waiters) wake();
|
|
31427
|
+
};
|
|
31221
31428
|
return {
|
|
31222
31429
|
hold() {
|
|
31223
|
-
held
|
|
31430
|
+
if (!held && phase.phase === "ready") {
|
|
31431
|
+
held = true;
|
|
31432
|
+
phase = { phase: "starting" };
|
|
31433
|
+
}
|
|
31224
31434
|
},
|
|
31225
|
-
|
|
31226
|
-
|
|
31227
|
-
|
|
31435
|
+
markReady() {
|
|
31436
|
+
if (phase.phase === "starting") {
|
|
31437
|
+
phase = { phase: "ready" };
|
|
31438
|
+
wakeAll();
|
|
31439
|
+
}
|
|
31228
31440
|
},
|
|
31229
|
-
|
|
31230
|
-
if (
|
|
31231
|
-
|
|
31232
|
-
|
|
31233
|
-
|
|
31234
|
-
waiters.delete(wake);
|
|
31235
|
-
resolve(true);
|
|
31441
|
+
markFailed(reasonCodes) {
|
|
31442
|
+
if (phase.phase === "starting") {
|
|
31443
|
+
phase = {
|
|
31444
|
+
phase: "failed",
|
|
31445
|
+
reasonCodes: [...reasonCodes]
|
|
31236
31446
|
};
|
|
31447
|
+
wakeAll();
|
|
31448
|
+
}
|
|
31449
|
+
},
|
|
31450
|
+
markStopping() {
|
|
31451
|
+
if (phase.phase !== "stopping") {
|
|
31452
|
+
phase = { phase: "stopping" };
|
|
31453
|
+
wakeAll();
|
|
31454
|
+
}
|
|
31455
|
+
},
|
|
31456
|
+
state() {
|
|
31457
|
+
return phase;
|
|
31458
|
+
},
|
|
31459
|
+
whenSettled(timeoutMs) {
|
|
31460
|
+
if (phase.phase !== "starting" && phase.phase !== "stopping") return Promise.resolve(phase);
|
|
31461
|
+
return new Promise((resolve) => {
|
|
31237
31462
|
const timer = setTimeout(() => {
|
|
31238
31463
|
waiters.delete(wake);
|
|
31239
|
-
resolve(
|
|
31464
|
+
resolve(phase);
|
|
31240
31465
|
}, timeoutMs);
|
|
31241
31466
|
timer.unref?.();
|
|
31467
|
+
const wake = () => {
|
|
31468
|
+
clearTimeout(timer);
|
|
31469
|
+
waiters.delete(wake);
|
|
31470
|
+
resolve(phase);
|
|
31471
|
+
};
|
|
31242
31472
|
waiters.add(wake);
|
|
31243
31473
|
});
|
|
31244
31474
|
}
|
|
@@ -35183,7 +35413,12 @@ async function bootGatewayServer(port, opts) {
|
|
|
35183
35413
|
};
|
|
35184
35414
|
fencedStorageSupervisorStart = async () => {
|
|
35185
35415
|
await supervisor.start();
|
|
35186
|
-
|
|
35416
|
+
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35417
|
+
await storageSupervisorStop?.();
|
|
35418
|
+
storageSupervisorStop = null;
|
|
35419
|
+
throw new FatalConfiguredStorageStartError();
|
|
35420
|
+
}
|
|
35421
|
+
storageStartup.markReady();
|
|
35187
35422
|
try {
|
|
35188
35423
|
const { installIncidentAsset } = await import("./incident-install-cGBLZhud.js");
|
|
35189
35424
|
await installIncidentAsset({
|
|
@@ -35216,11 +35451,6 @@ async function bootGatewayServer(port, opts) {
|
|
|
35216
35451
|
noteStorageRestartRequired("session-run-startup-recovery");
|
|
35217
35452
|
noteStorageRestartRequired("shutdown-run-reconciliation");
|
|
35218
35453
|
}
|
|
35219
|
-
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35220
|
-
await storageSupervisorStop?.();
|
|
35221
|
-
storageSupervisorStop = null;
|
|
35222
|
-
throw new FatalConfiguredStorageStartError();
|
|
35223
|
-
}
|
|
35224
35454
|
};
|
|
35225
35455
|
if (params.bootImmediately) await fencedStorageSupervisorStart();
|
|
35226
35456
|
else storageStartup.hold();
|
|
@@ -35582,7 +35812,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35582
35812
|
const sweepLog = log.child("session-consumer-claim-sweep");
|
|
35583
35813
|
const { createDiagnosticRingBuffer } = await import("./session-consumer-diagnostics-UbdxGCz8.js");
|
|
35584
35814
|
const diagnostics = createDiagnosticRingBuffer();
|
|
35585
|
-
const { setDiagnostics } = await import("./sessions-
|
|
35815
|
+
const { setDiagnostics } = await import("./sessions-BlXxa7bM.js").then((n) => n.n);
|
|
35586
35816
|
if (sessionConsumerClaimSweepCancelled) return;
|
|
35587
35817
|
setDiagnostics(diagnostics);
|
|
35588
35818
|
const lastKnownEnabledState = /* @__PURE__ */ new Map();
|
|
@@ -35621,7 +35851,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35621
35851
|
lastKnownEnabledState,
|
|
35622
35852
|
cfg: loadConfig()
|
|
35623
35853
|
});
|
|
35624
|
-
const { setLastSweepTimestamp } = await import("./sessions-
|
|
35854
|
+
const { setLastSweepTimestamp } = await import("./sessions-BlXxa7bM.js").then((n) => n.n);
|
|
35625
35855
|
setLastSweepTimestamp(Date.now());
|
|
35626
35856
|
} catch (err) {
|
|
35627
35857
|
sweepLog.warn(`session consumer-claim sweep failed: ${String(err)}`);
|
|
@@ -35643,7 +35873,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35643
35873
|
prepare: () => {
|
|
35644
35874
|
taskPipelineBoot = (async () => {
|
|
35645
35875
|
const { getConfiguredSessionStorageRuntime } = await import("./model-selection-k68XU4oS.js").then((n) => n.hi);
|
|
35646
|
-
const { startTaskPipeline } = await import("./task-pipeline-boot-
|
|
35876
|
+
const { startTaskPipeline } = await import("./task-pipeline-boot-Dihxq0Tg.js");
|
|
35647
35877
|
const pipeline = startTaskPipeline({
|
|
35648
35878
|
getConfigured: getConfiguredSessionStorageRuntime,
|
|
35649
35879
|
cfg: cfgAtStart,
|
|
@@ -35812,7 +36042,17 @@ async function bootGatewayServer(port, opts) {
|
|
|
35812
36042
|
});
|
|
35813
36043
|
try {
|
|
35814
36044
|
recoveryRuntime = await Promise.race([ownInstalled, recoveryStarted]) ?? null;
|
|
36045
|
+
if (storageStartup.state().phase === "starting") {
|
|
36046
|
+
let codes = [];
|
|
36047
|
+
try {
|
|
36048
|
+
codes = recoveryRuntime?.snapshot().reasonCodes ?? [];
|
|
36049
|
+
} catch {
|
|
36050
|
+
codes = [];
|
|
36051
|
+
}
|
|
36052
|
+
storageStartup.markFailed(codes.length > 0 ? codes : ["recovery_start_failed"]);
|
|
36053
|
+
}
|
|
35815
36054
|
} catch (err) {
|
|
36055
|
+
if (storageStartup.state().phase === "starting") storageStartup.markFailed(["recovery_start_failed"]);
|
|
35816
36056
|
if (skillsRefreshTimer) {
|
|
35817
36057
|
clearTimeout(skillsRefreshTimer);
|
|
35818
36058
|
skillsRefreshTimer = null;
|
|
@@ -36023,6 +36263,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
36023
36263
|
startDiagnosticHeartbeat();
|
|
36024
36264
|
}
|
|
36025
36265
|
return { close: async (opts) => {
|
|
36266
|
+
storageStartup.markStopping();
|
|
36026
36267
|
recoveryAdmission.closeAdmission();
|
|
36027
36268
|
await runGlobalGatewayStopSafely({
|
|
36028
36269
|
event: { reason: opts?.reason ?? "gateway stopping" },
|