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
|
@@ -1,189 +1,189 @@
|
|
|
1
|
-
import { A as readLoggingConfig, B as openBoundaryFile, C as resolveFileLogProfile, Dt as truncateUtf16Safe, H as openVerifiedFileSync, J as isNotFoundPathError, Ot as resolvePreferredOpenClawTmpDir, U as sameFileIdentity, V as openBoundaryFileSync, Y as isPathInside, d as colorize, f as isRich, g as getResolvedLoggerSettings, h as getLogger, m as getChildLogger, p as theme, pt as ensureDir, s as setVerbose, st as CONFIG_DIR, wt as shortenHomePath, x as appendFileLog, xt as resolveUserPath } from "./globals-
|
|
1
|
+
import { A as readLoggingConfig, B as openBoundaryFile, C as resolveFileLogProfile, Dt as truncateUtf16Safe, H as openVerifiedFileSync, J as isNotFoundPathError, Ot as resolvePreferredOpenClawTmpDir, U as sameFileIdentity, V as openBoundaryFileSync, Y as isPathInside, d as colorize, f as isRich, g as getResolvedLoggerSettings, h as getLogger, m as getChildLogger, p as theme, pt as ensureDir, s as setVerbose, st as CONFIG_DIR, wt as shortenHomePath, x as appendFileLog, xt as resolveUserPath } from "./globals-ZyVsnNcg.js";
|
|
2
2
|
import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-BMo6kTge.js";
|
|
3
3
|
import { t as isPlainObject } from "./plain-object-CLm2c5Nu.js";
|
|
4
|
-
import { m as defaultRuntime, n as runtimeForLogger, o as setConsoleSubsystemFilter, s as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-
|
|
4
|
+
import { m as defaultRuntime, n as runtimeForLogger, o as setConsoleSubsystemFilter, s as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-DLKs6VzZ.js";
|
|
5
5
|
import "./boolean-Bb19hm9Y.js";
|
|
6
6
|
import { i as logAcceptedEnvOption, r as isTruthyEnvValue } from "./entry.js";
|
|
7
|
-
import { $ as isAvatarHttpUrl, $a as normalizeWhatsAppTarget, $n as normalizeSessionDeliveryFields, Ai as PASS_ITEMS_MAX_KEYS, An as getActivePreservationLease, Ao as GATEWAY_CLIENT_IDS, Ar as jsonUtf8Bytes, Au as isPidAlive, Ca as resolveMainSessionKeyFromConfig, Cn as StorageReadAccessError, Da as listChannelPlugins, Dc as normalizeProviderIdForAuth, Di as isVerificationStoreError, Dn as closeReplacedConfiguredSessionStorageRuntime, Ea as getChannelPlugin, Ei as clientResumeRecordArtifactId, En as closeConfiguredSessionStorageRuntime, Eo as normalizeMessageChannel, Fi as onRunInvalidation, Fn as mirrorPreparedConfiguredSessionStorageRuntimeRecord, Fo as normalizeGatewayClientMode, Gi as serializeSessionIndexRecordKey, Gn as updateSessionStore, Hi as reconcileSessionIndex, Ht as getActivePluginRegistry, Il as resolveProfileUnusableUntilForDisplay, In as prepareConfiguredSessionStorageRuntimeActivation, Iu as normalizeSecretInput, Js as applyMergePatch, Ju as DEFAULT_MODEL, Li as applyReconcileSessionIndex, Mc as resolveDefaultModelForAgent, Mi as PASS_METRICS_MAX_BYTES, Mn as isPreservationArmed, Mo as GATEWAY_CLIENT_NAMES, Nc as resolveHooksGmailModel, Nn as loadSessionStore, No as hasGatewayClientCap, O as coerceIdentityValue, Oa as normalizeChannelId, On as commitPreparedConfiguredSessionStorageRuntimeActivation, P as resolveGatewayWebClientBasePath, Pi as isPassIdentifier, Pn as loadSessionStoreFromDisk, Qt as createEmptyPluginRegistry, Rc as resolveThinkingDefault, Ri as diffManifestOwnedReconcileIndexRecords, Sa as resolveMainSessionKey, Sc as isCliProvider, Si as resolveSessionStorageConfig, Sn as triggerInternalHook, Sr as stripEnvelopeFromMessages, St as defaultSlotIdForKey, Tc as normalizeModelSelection, Ti as CLIENT_RESUME_RECORD_KIND, Tn as activateConfiguredSessionStorageRuntime, Tr as stripInlineDirectiveTagsFromMessageForDisplay, Un as syncConfiguredSessionTranscriptToRuntime, Vi as projectManifestOwnedReconcileIndexRecords, Vn as setActivePreservationLease, Vo as cleanStaleLockFiles, Xs as ensureControlUiAllowedOriginsForNonLoopbackBind, Yn as deliveryContextFromSession, Ys as applyLegacyMigrations, Yt as setGatewayPluginRegistry, Yu as DEFAULT_PROVIDER, Z as AVATAR_MAX_BYTES, Zn as mergeDeliveryContext, _n as getRegisteredStreamingSpeechProviders, _r as REPLY_CONTEXT_CUSTOM_TYPE, a as createConfigIO, ac as DEFAULT_TALK_CONVERSATION_MODEL_ID, ai as extractDeliveryInfo, ar as findNewestMessageEntryIdInTranscript, as as composeRestartDeferralWithAdmission, ba as resolveAgentMainSessionKey, bc as getModelRefStatus, bn as createInternalHookEvent, bo as isGatewayCliClient, bu as loadAuthProfileStoreForRuntime, c as readConfigFileSnapshot, cc as resolveActiveTalkProviderConfig, dc as resolveTalkProviderConfigApiKey, di as createPreservationLeaseService, ei as createAsyncLock, en as getRegisteredPluginApis, et as isAvatarImageDataUrl, f as writeConfigFile, fi as withPreservationWriterPermit, ga as mergeSessionEntry, gc as buildAllowedModelSet, gn as getRegisteredRealtimeVoiceProviders, gt as isTestDefaultMemorySlotDisabled, hc as resolveSubagentMaxConcurrent, hl as getApiKeyForModel, hn as getRegisteredRealtimeTranscriptionProviders, ii as parseByteSize, in as setSessionWorkAvailableNotifier, ir as cleanupArchivedSessionTranscripts, is as RecoveryAdmissionError, it as looksLikeAvatarPath, jc as resolveConfiguredModelRef, ji as PASS_MEASUREMENT_SCHEMA_VERSION, jn as getConfiguredSessionStorageRuntime, jo as GATEWAY_CLIENT_MODES, js as resolveExecutablePath, jt as CHANNEL_IDS, ju as resolveAuthProfileDisplayLabel, k as EXEC_POLICY_PRESET_IDS, kc as resolveAllowedModelRef, kn as createJsonlSessionStorageFallbackRuntime, ko as GATEWAY_CLIENT_CAPS, kr as normalizeInputProvenance, l as readConfigFileSnapshotForWrite, lc as resolveTalkCatalogApiKeyStatus, m as OpenClawSchema, mc as resolveNestedAgentMaxConcurrent, mi as hydrateAndAppendToBackend, mn as getRealtimeVoiceProvider, n as migrateLegacyConfig, na as formatZonedTimestamp, ni as writeJsonAtomic, nr as archiveSessionTranscripts, ns as setPluginTaskAdmissionRejectionFor, o as loadConfig, oa as decodeKeysetCursor, oc as buildTalkConfigResponse, oi as parseSessionThreadInfo, or as findTranscriptMessageEntryById, os as createRootWorkAdmission, p as validateConfigObjectWithPlugins, pc as resolveAgentMaxConcurrent, pi as isJsonlSessionBackend, qu as DEFAULT_CONTEXT_TOKENS, r as advanceRuntimeConfigSnapshot, ri as parseDurationMs, rr as capArrayByJsonBytes, s as parseConfigJson5, sa as encodeKeysetCursor, sc as normalizeTalkSection, sn as emitStartupPluginHealthReport, ti as readJsonFile, tn as listRestartRecoveryAdapters, to as resolveWhatsAppAccount, u as resolveConfigSnapshotHash, uc as resolveTalkConversationConfig, va as setSessionRuntimeModel, vl as resolveApiKeyForProvider, vn as listRealtimeVoiceProviders, vo as INTERNAL_MESSAGE_CHANNEL, wi as validateCtxStorage, wo as isWebchatClient, wr as stripInlineDirectiveTagsForDisplay, xa as resolveExplicitAgentSessionKey, xi as createSessionStorageRuntimeFromConfig, xn as registerInternalHook, xo as isGatewayMessageChannel, xr as stripEnvelopeFromMessage, ya as canonicalizeMainSessionAlias, yn as clearInternalHooks, yo as isDeliverableMessageChannel, yr as buildReplyContextPayload, za as buildChannelAccountBindings, zi as fingerprintReconcileIndexRecords, zn as refreshPreparedConfiguredSessionStorageRuntimeActivation } from "./config-
|
|
7
|
+
import { $ as isAvatarHttpUrl, $a as normalizeWhatsAppTarget, $n as normalizeSessionDeliveryFields, Ai as PASS_ITEMS_MAX_KEYS, An as getActivePreservationLease, Ao as GATEWAY_CLIENT_IDS, Ar as jsonUtf8Bytes, Au as isPidAlive, Ca as resolveMainSessionKeyFromConfig, Cn as StorageReadAccessError, Da as listChannelPlugins, Dc as normalizeProviderIdForAuth, Di as isVerificationStoreError, Dn as closeReplacedConfiguredSessionStorageRuntime, Ea as getChannelPlugin, Ei as clientResumeRecordArtifactId, En as closeConfiguredSessionStorageRuntime, Eo as normalizeMessageChannel, Fi as onRunInvalidation, Fn as mirrorPreparedConfiguredSessionStorageRuntimeRecord, Fo as normalizeGatewayClientMode, Gi as serializeSessionIndexRecordKey, Gn as updateSessionStore, Hi as reconcileSessionIndex, Ht as getActivePluginRegistry, Il as resolveProfileUnusableUntilForDisplay, In as prepareConfiguredSessionStorageRuntimeActivation, Iu as normalizeSecretInput, Js as applyMergePatch, Ju as DEFAULT_MODEL, Li as applyReconcileSessionIndex, Mc as resolveDefaultModelForAgent, Mi as PASS_METRICS_MAX_BYTES, Mn as isPreservationArmed, Mo as GATEWAY_CLIENT_NAMES, Nc as resolveHooksGmailModel, Nn as loadSessionStore, No as hasGatewayClientCap, O as coerceIdentityValue, Oa as normalizeChannelId, On as commitPreparedConfiguredSessionStorageRuntimeActivation, P as resolveGatewayWebClientBasePath, Pi as isPassIdentifier, Pn as loadSessionStoreFromDisk, Qt as createEmptyPluginRegistry, Rc as resolveThinkingDefault, Ri as diffManifestOwnedReconcileIndexRecords, Sa as resolveMainSessionKey, Sc as isCliProvider, Si as resolveSessionStorageConfig, Sn as triggerInternalHook, Sr as stripEnvelopeFromMessages, St as defaultSlotIdForKey, Tc as normalizeModelSelection, Ti as CLIENT_RESUME_RECORD_KIND, Tn as activateConfiguredSessionStorageRuntime, Tr as stripInlineDirectiveTagsFromMessageForDisplay, Un as syncConfiguredSessionTranscriptToRuntime, Vi as projectManifestOwnedReconcileIndexRecords, Vn as setActivePreservationLease, Vo as cleanStaleLockFiles, Xs as ensureControlUiAllowedOriginsForNonLoopbackBind, Yn as deliveryContextFromSession, Ys as applyLegacyMigrations, Yt as setGatewayPluginRegistry, Yu as DEFAULT_PROVIDER, Z as AVATAR_MAX_BYTES, Zn as mergeDeliveryContext, _n as getRegisteredStreamingSpeechProviders, _r as REPLY_CONTEXT_CUSTOM_TYPE, a as createConfigIO, ac as DEFAULT_TALK_CONVERSATION_MODEL_ID, ai as extractDeliveryInfo, ar as findNewestMessageEntryIdInTranscript, as as composeRestartDeferralWithAdmission, ba as resolveAgentMainSessionKey, bc as getModelRefStatus, bn as createInternalHookEvent, bo as isGatewayCliClient, bu as loadAuthProfileStoreForRuntime, c as readConfigFileSnapshot, cc as resolveActiveTalkProviderConfig, dc as resolveTalkProviderConfigApiKey, di as createPreservationLeaseService, ei as createAsyncLock, en as getRegisteredPluginApis, et as isAvatarImageDataUrl, f as writeConfigFile, fi as withPreservationWriterPermit, ga as mergeSessionEntry, gc as buildAllowedModelSet, gn as getRegisteredRealtimeVoiceProviders, gt as isTestDefaultMemorySlotDisabled, hc as resolveSubagentMaxConcurrent, hl as getApiKeyForModel, hn as getRegisteredRealtimeTranscriptionProviders, ii as parseByteSize, in as setSessionWorkAvailableNotifier, ir as cleanupArchivedSessionTranscripts, is as RecoveryAdmissionError, it as looksLikeAvatarPath, jc as resolveConfiguredModelRef, ji as PASS_MEASUREMENT_SCHEMA_VERSION, jn as getConfiguredSessionStorageRuntime, jo as GATEWAY_CLIENT_MODES, js as resolveExecutablePath, jt as CHANNEL_IDS, ju as resolveAuthProfileDisplayLabel, k as EXEC_POLICY_PRESET_IDS, kc as resolveAllowedModelRef, kn as createJsonlSessionStorageFallbackRuntime, ko as GATEWAY_CLIENT_CAPS, kr as normalizeInputProvenance, l as readConfigFileSnapshotForWrite, lc as resolveTalkCatalogApiKeyStatus, m as OpenClawSchema, mc as resolveNestedAgentMaxConcurrent, mi as hydrateAndAppendToBackend, mn as getRealtimeVoiceProvider, n as migrateLegacyConfig, na as formatZonedTimestamp, ni as writeJsonAtomic, nr as archiveSessionTranscripts, ns as setPluginTaskAdmissionRejectionFor, o as loadConfig, oa as decodeKeysetCursor, oc as buildTalkConfigResponse, oi as parseSessionThreadInfo, or as findTranscriptMessageEntryById, os as createRootWorkAdmission, p as validateConfigObjectWithPlugins, pc as resolveAgentMaxConcurrent, pi as isJsonlSessionBackend, qu as DEFAULT_CONTEXT_TOKENS, r as advanceRuntimeConfigSnapshot, ri as parseDurationMs, rr as capArrayByJsonBytes, s as parseConfigJson5, sa as encodeKeysetCursor, sc as normalizeTalkSection, sn as emitStartupPluginHealthReport, ti as readJsonFile, tn as listRestartRecoveryAdapters, to as resolveWhatsAppAccount, u as resolveConfigSnapshotHash, uc as resolveTalkConversationConfig, va as setSessionRuntimeModel, vl as resolveApiKeyForProvider, vn as listRealtimeVoiceProviders, vo as INTERNAL_MESSAGE_CHANNEL, wi as validateCtxStorage, wo as isWebchatClient, wr as stripInlineDirectiveTagsForDisplay, xa as resolveExplicitAgentSessionKey, xi as createSessionStorageRuntimeFromConfig, xn as registerInternalHook, xo as isGatewayMessageChannel, xr as stripEnvelopeFromMessage, ya as canonicalizeMainSessionAlias, yn as clearInternalHooks, yo as isDeliverableMessageChannel, yr as buildReplyContextPayload, za as buildChannelAccountBindings, zi as fingerprintReconcileIndexRecords, zn as refreshPreparedConfiguredSessionStorageRuntimeActivation } from "./config-BPACL-n5.js";
|
|
8
8
|
import { r as resolveRuntimeServiceVersion, t as VERSION } from "./version-D_9__Xw6.js";
|
|
9
9
|
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-D4YLCjDF.js";
|
|
10
|
-
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-
|
|
11
|
-
import { i as logWarn, t as logDebug } from "./logger-
|
|
12
|
-
import { n as runExec, t as runCommandWithTimeout } from "./exec-
|
|
13
|
-
import { n as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
10
|
+
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-Dt0TVWFY.js";
|
|
11
|
+
import { i as logWarn, t as logDebug } from "./logger-B1oXl7GT.js";
|
|
12
|
+
import { n as runExec, t as runCommandWithTimeout } from "./exec-vJi_ETQy.js";
|
|
13
|
+
import { n as resolveOpenClawPackageRoot } from "./openclaw-root-B6Tk0FH8.js";
|
|
14
14
|
import { r as resolveCopilotApiToken } from "./github-copilot-token-CvN6iidT.js";
|
|
15
15
|
import { t as formatCliCommand } from "./command-format-N4aQiv3X.js";
|
|
16
16
|
import { c as optionalStringEnum, l as stringEnum } from "./retry-policy-BdHwnvOa.js";
|
|
17
17
|
import { c as resolveSessionFilePath, l as resolveSessionFilePathOptions, m as resolveStorePath, p as resolveSessionTranscriptsDirForAgent, u as resolveSessionTranscriptPath } from "./artifacts-C9Cr_S5Y.js";
|
|
18
|
-
import "./send-
|
|
19
|
-
import "./send-
|
|
20
|
-
import { $ as buildHistoryContextFromEntries, $n as
|
|
18
|
+
import "./send-B_t3X0hK.js";
|
|
19
|
+
import "./send-BBFfvgK9.js";
|
|
20
|
+
import { $ as buildHistoryContextFromEntries, $n as DEFAULT_MAX_PARALLEL, $t as consumeGatewaySigusr1RestartAuthorization, A as loadOpenClawPlugins, An as extractImageContentFromSource, Bt as buildSafeExternalPrompt, C as buildDefaultToolPolicyPipelineSteps, Ct as resetDirectoryCache, Dn as DEFAULT_INPUT_MAX_REDIRECTS, Dt as consumeRestartSentinel, E as resolvePluginTools, En as DEFAULT_INPUT_IMAGE_MIMES, F as resolveAgentOutboundIdentity, Fn as isAbortRequestText, Ft as normalizeCronJobPatch, G as resolveAgentOutboundTarget, Gn as clearSessionQueues, Gt as persistBrowserProxyFiles, H as agentCommandFromIngress, Hn as resolveAnnounceTargetFromKey, Ht as getHookType, It as migrateLegacyCronPayload, J as createOutboundSendDeps$1, Jn as getAcpSessionManager, K as createOutboundSendDeps, Kn as getExistingFollowupQueue, Kt as resolveSessionAuthProfileOverride, L as handleSlackHttpRequest, Ln as countActiveDescendantRuns, Lt as buildDeliveryFromLegacyPayload, M as createPluginRuntime, Mn as resolveInputFileLimits, N as requestNudge, Nt as writeRestartSentinel, O as clearPluginRegistryCaches, On as DEFAULT_INPUT_TIMEOUT_MS, Ot as formatDoctorNonInteractiveHint, Pn as resolveSendPolicy, Pt as normalizeCronJobCreate, Qn as setTaskPipelineStatus, R as readJsonBodyWithLimit, Rn as initSubagentRegistry, Rt as hasLegacyDeliveryHints, S as applyToolPolicyPipeline, T as getPluginToolMeta, Tn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as runWithModelFallback, Un as readLatestAssistantReply, Ut as isExternalHookSession, Vn as runSubagentAnnounceFlow, Vt as detectSuspiciousPatterns, W as resolveAgentDeliveryPlan, Wn as resolveAgentTimeoutMs, Wt as applyBrowserProxyPaths, Xn as ToolInputError, Y as resolveAgentAvatar, Yn as resolveAgentSessionDirs, _ as prepareSessionManagerForRun, _n as isSystemEventContextChanged, _t as resolveOutboundSessionRoute, a as runHeartbeatOnce, an as setGatewaySigusr1RestartPolicy, ar as resolveTtsConfig, bt as resolveSessionDeliveryTarget, c as startHeartbeatRunner, cr as setTtsEnabled, d as getLastHeartbeatEvent, dr as OPENAI_TTS_MODELS, dt as getCliSessionId, en as deferGatewayRestartUntilIdle, er as getTtsProvider, f as onHeartbeatEvent, fr as OPENAI_TTS_VOICES, ft as setCliSessionId, g as runEmbeddedPiAgent, gn as enqueueSystemEvent, gr as resolveUserTimezone, gt as ensureOutboundSessionEntry, h as resolveCronSession, hr as resolveCronStyleNow, i as resolveHeartbeatSummaryForAgent, in as scheduleGatewaySigusr1Restart, ir as resolveTtsAutoMode, it as getTotalPendingReplies, j as takePendingActivationMigration, jn as normalizeMimeList, jt as summarizeRestartSentinel, k as getLoadedAnalysisConcurrency, kn as extractFileContentFromSource, kt as formatRestartSentinelMessage, l as runWakeGate, lr as setTtsProvider, lt as resolveChannelAccountEnabled, m as isCronSystemEvent, mr as stripHeartbeatToken, mt as createOpenClawTools, n as runMainAgentTurn, nn as isGatewaySigusr1RestartExternallyAllowed, nr as isTtsProviderConfigured, nt as setDispatchInboundAdmissionRejectionFor, on as setPreRestartDeferralCheck, or as resolveTtsPrefsPath, p as redactSensitiveHeartbeatEvent, pr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, pt as runCliAgent, q as createDefaultDeps, qn as removeQueuedFollowupRun, r as resolveHeartbeatConfig, rn as markGatewaySigusr1RestartHandled, rr as resolveTtsApiKey, rt as createReplyDispatcher, s as setHeartbeatsEnabled, sn as triggerOpenClawRestart, sr as resolveTtsProviderOrder, tn as emitGatewayRestart, tr as isTtsEnabled, tt as dispatchInboundMessage, u as resolveHeartbeatVisibility, un as loadProviderUsageSummary, ur as textToSpeech, ut as BARE_SESSION_RESET_PROMPT, v as snapshotRunPendingWrites, vt as resolveHeartbeatDeliveryTarget, wn as ACP_SESSION_IDENTITY_RENDERER_VERSION, x as resolveExecConfig, xn as requestHeartbeatNow, xt as resolveOutboundChannelPlugin, y as waitForPendingWrites, yt as resolveOutboundTarget, z as requestBodyErrorToText, zn as listDescendantRunsForRequester, zt as stripLegacyDeliveryFields } from "./agent-turn-execute-pkDSwyuf.js";
|
|
21
21
|
import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./chat-envelope-DfuAGxmg.js";
|
|
22
22
|
import { c as isDiagnosticsEnabled, l as onDiagnosticEvent, s as emitDiagnosticEvent } from "./task-run-types-B6n0W8Rb.js";
|
|
23
23
|
import { n as USER_CLIENT_ID, o as buildUserClientRuntimeConfig, s as handleUserClientHttpRequest } from "./static-server-CRGPIP-a.js";
|
|
24
24
|
import { t as redactIdentifier } from "./redact-identifier-BcqQpFrh.js";
|
|
25
|
-
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-
|
|
25
|
+
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-CsHMHVsf.js";
|
|
26
26
|
import { t as CommandLane } from "./lanes-BN1DVTrA.js";
|
|
27
|
-
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-
|
|
28
|
-
import { a as getGatewayInstanceId, o as resolveSessionRunStore, t as createSessionRunRecorder } from "./recorder-
|
|
29
|
-
import "./pi-embedded-helpers-
|
|
30
|
-
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
27
|
+
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-DoHGgNPh.js";
|
|
28
|
+
import { a as getGatewayInstanceId, o as resolveSessionRunStore, t as createSessionRunRecorder } from "./recorder-Ca_njjjH.js";
|
|
29
|
+
import "./pi-embedded-helpers-C9XqX-Jq.js";
|
|
30
|
+
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-BpdiWabc.js";
|
|
31
31
|
import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-BWgva5h1.js";
|
|
32
|
-
import { i as resolveRelayAuthTokenForPort, n as resolveGatewayRelayToken } from "./extension-relay-auth-
|
|
33
|
-
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-
|
|
32
|
+
import { i as resolveRelayAuthTokenForPort, n as resolveGatewayRelayToken } from "./extension-relay-auth-DD-U9VUc.js";
|
|
33
|
+
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-BrZL_MiW.js";
|
|
34
34
|
import { t as safeEqualSecret } from "./secret-equal-CQn9WoXt.js";
|
|
35
|
-
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-
|
|
36
|
-
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-
|
|
37
|
-
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-
|
|
38
|
-
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-
|
|
35
|
+
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-BSKE3pk_.js";
|
|
36
|
+
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-DESjYW7M.js";
|
|
37
|
+
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-Cx-Q9zgv.js";
|
|
38
|
+
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-BEjWhzMi.js";
|
|
39
39
|
import { d as hasBinary } from "./frontmatter-Dn2qUSOb.js";
|
|
40
|
-
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
41
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
40
|
+
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-D3kpiNaJ.js";
|
|
41
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-CHFrrzxZ.js";
|
|
42
42
|
import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-BWPFahWo.js";
|
|
43
43
|
import { i as formatErrorMessage, o as hasErrnoCode, s as isErrno } from "./errors-Bf0TUXNT.js";
|
|
44
|
-
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
45
|
-
import { n as SsrFBlockedError } from "./proxy-env-
|
|
46
|
-
import { c as detectMime } from "./image-ops-
|
|
47
|
-
import "./store-
|
|
48
|
-
import { S as ensureChromeExtensionRelayServer } from "./chrome-
|
|
49
|
-
import { i as resolveProfile, r as resolveBrowserConfig, t as movePathToTrash } from "./trash-
|
|
50
|
-
import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-
|
|
44
|
+
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-CByGgR59.js";
|
|
45
|
+
import { n as SsrFBlockedError } from "./proxy-env-DzG6q8Hh.js";
|
|
46
|
+
import { c as detectMime } from "./image-ops-Cq6SZYWW.js";
|
|
47
|
+
import "./store-BFf8dvdk.js";
|
|
48
|
+
import { S as ensureChromeExtensionRelayServer } from "./chrome-BsgpiutB.js";
|
|
49
|
+
import { i as resolveProfile, r as resolveBrowserConfig, t as movePathToTrash } from "./trash-DNkuLhfz.js";
|
|
50
|
+
import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-QWAeZ9Is.js";
|
|
51
51
|
import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-C60x4trY.js";
|
|
52
|
-
import "./server-middleware-
|
|
52
|
+
import "./server-middleware-CrJMxxfQ.js";
|
|
53
53
|
import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-NawgaQgc.js";
|
|
54
|
-
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
55
|
-
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-
|
|
56
|
-
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-
|
|
57
|
-
import { f as getGlobalHookRunner, h as runGlobalGatewayStopSafely, m as resetGlobalHookRunner, u as buildOutboundSessionContext } from "./outbound-message-hooks-
|
|
58
|
-
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-
|
|
54
|
+
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-B8M4IWrd.js";
|
|
55
|
+
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-B6PaaeVv.js";
|
|
56
|
+
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-CpZZ4mMw.js";
|
|
57
|
+
import { f as getGlobalHookRunner, h as runGlobalGatewayStopSafely, m as resetGlobalHookRunner, u as buildOutboundSessionContext } from "./outbound-message-hooks-BBtH97ZV.js";
|
|
58
|
+
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-u64kcpDQ.js";
|
|
59
59
|
import { u as snapshotActiveRuns } from "./diagnostic-session-state-DCr9T3zW.js";
|
|
60
|
-
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-
|
|
61
|
-
import { F as resolveCronStorePath, I as saveCronStore, P as loadCronStore, S as collectTelegramDuplicatePollerDiagnostics } from "./send-
|
|
62
|
-
import { n as resolveModel } from "./model-
|
|
63
|
-
import "./pi-model-discovery-
|
|
64
|
-
import "./models-config-
|
|
65
|
-
import { i as resolveSafeBins } from "./exec-approvals-allowlist-
|
|
66
|
-
import "./exec-safe-bin-runtime-policy-
|
|
67
|
-
import "./session-consumer-agents-
|
|
68
|
-
import { n as loadModelCatalog } from "./model-catalog-
|
|
69
|
-
import "./fetch-
|
|
70
|
-
import { D as registerUnhandledRejectionHandler, _ as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, f as resolveModelEntries, n as buildProviderRegistry, u as resolveCapabilityConfig, v as listAutoDetectableProviders, y as normalizeMediaProviderId } from "./audio-transcription-runner-
|
|
71
|
-
import { t as fetchWithSsrFGuard } from "./fetch-guard-
|
|
72
|
-
import "./proxy-fetch-
|
|
73
|
-
import "./api-key-rotation-
|
|
74
|
-
import "./provider-image-
|
|
75
|
-
import { h as extractTextFromChatContent } from "./pi-embedded-utils-
|
|
76
|
-
import "./tool-display-
|
|
60
|
+
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-B3_VRNOr.js";
|
|
61
|
+
import { F as resolveCronStorePath, I as saveCronStore, P as loadCronStore, S as collectTelegramDuplicatePollerDiagnostics } from "./send-CZsC4D3G.js";
|
|
62
|
+
import { n as resolveModel } from "./model-BbeosLtF.js";
|
|
63
|
+
import "./pi-model-discovery-CZ9wxcE8.js";
|
|
64
|
+
import "./models-config-BMgEFu57.js";
|
|
65
|
+
import { i as resolveSafeBins } from "./exec-approvals-allowlist-CNWI56tZ.js";
|
|
66
|
+
import "./exec-safe-bin-runtime-policy-C3eU8CKJ.js";
|
|
67
|
+
import "./session-consumer-agents-5ORspv9c.js";
|
|
68
|
+
import { n as loadModelCatalog } from "./model-catalog-Bjfzg68Q.js";
|
|
69
|
+
import "./fetch-ByEEe-Yd.js";
|
|
70
|
+
import { D as registerUnhandledRejectionHandler, _ as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, f as resolveModelEntries, n as buildProviderRegistry, u as resolveCapabilityConfig, v as listAutoDetectableProviders, y as normalizeMediaProviderId } from "./audio-transcription-runner-Gr8vN3AS.js";
|
|
71
|
+
import { t as fetchWithSsrFGuard } from "./fetch-guard-BzXFjlMV.js";
|
|
72
|
+
import "./proxy-fetch-BqVhGKFd.js";
|
|
73
|
+
import "./api-key-rotation-DiMQTef3.js";
|
|
74
|
+
import "./provider-image-Bsivqxw8.js";
|
|
75
|
+
import { h as extractTextFromChatContent } from "./pi-embedded-utils-BV_Dtzrw.js";
|
|
76
|
+
import "./tool-display-DiZGbhL2.js";
|
|
77
77
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-DFNB1c7t.js";
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./markdown-tables-
|
|
80
|
-
import "./ir-
|
|
78
|
+
import "./chunk-DiXpyRAz.js";
|
|
79
|
+
import "./markdown-tables-BcUNsqVQ.js";
|
|
80
|
+
import "./ir-B3r0eIJW.js";
|
|
81
81
|
import "./render-BBWKrfmg.js";
|
|
82
|
-
import { r as isRestartEnabled } from "./commands-
|
|
83
|
-
import "./commands-registry-
|
|
82
|
+
import { r as isRestartEnabled } from "./commands-Csxgimkc.js";
|
|
83
|
+
import "./commands-registry-Dx5QvNqH.js";
|
|
84
84
|
import "./registry-DXmhuMNN.js";
|
|
85
|
-
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-
|
|
86
|
-
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-
|
|
85
|
+
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-DN-SMVBn.js";
|
|
86
|
+
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-PE59cW0J.js";
|
|
87
87
|
import "./pairing-token-BfRB0jVM.js";
|
|
88
|
-
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-
|
|
89
|
-
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
90
|
-
import "./user-run-recording-
|
|
88
|
+
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-BjLs5ozo.js";
|
|
89
|
+
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-BLp1Q7uO.js";
|
|
90
|
+
import "./user-run-recording-DXNyfjMq.js";
|
|
91
91
|
import "./fetch--Fn4tlfW.js";
|
|
92
|
-
import { a as readChannelAllowFromStoreSync } from "./pairing-store-
|
|
93
|
-
import { a as maxAsk, c as normalizeExecApprovals, g as saveExecApprovalsV2, h as saveExecApprovals, i as loadExecApprovalsV2, l as readExecApprovalsSnapshot, m as resolveExecApprovalsReadOnly, o as mergeExecApprovalsSocketDefaults, r as ensureExecApprovals, s as minSecurity, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-
|
|
94
|
-
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-
|
|
95
|
-
import { r as resolveSystemRunCommand, t as canonicalizeLegacySystemRunParams } from "./system-run-command-
|
|
96
|
-
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, f as computeBackoff, l as resolveSessionModelRef, o as loadSessionEntry, p as sleepWithAbort, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-
|
|
97
|
-
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-
|
|
98
|
-
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
99
|
-
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
|
|
100
|
-
import { i as normalizePollInput, t as getChannelActivity } from "./channel-activity-
|
|
101
|
-
import "./tables-
|
|
92
|
+
import { a as readChannelAllowFromStoreSync } from "./pairing-store-BZFrD-fJ.js";
|
|
93
|
+
import { a as maxAsk, c as normalizeExecApprovals, g as saveExecApprovalsV2, h as saveExecApprovals, i as loadExecApprovalsV2, l as readExecApprovalsSnapshot, m as resolveExecApprovalsReadOnly, o as mergeExecApprovalsSocketDefaults, r as ensureExecApprovals, s as minSecurity, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-C3o7bTbp.js";
|
|
94
|
+
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-DANf1hC-.js";
|
|
95
|
+
import { r as resolveSystemRunCommand, t as canonicalizeLegacySystemRunParams } from "./system-run-command-Dl8UC6hO.js";
|
|
96
|
+
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, f as computeBackoff, l as resolveSessionModelRef, o as loadSessionEntry, p as sleepWithAbort, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-CrCJ-7yK.js";
|
|
97
|
+
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-uhWJKPrM.js";
|
|
98
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-mzsfTPed.js";
|
|
99
|
+
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--nD7TrF-.js";
|
|
100
|
+
import { i as normalizePollInput, t as getChannelActivity } from "./channel-activity-SqK9nKf7.js";
|
|
101
|
+
import "./tables-CCEXTXTG.js";
|
|
102
102
|
import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-BTDAzt-T.js";
|
|
103
|
-
import "./server-lifecycle-
|
|
103
|
+
import "./server-lifecycle-C3hCCbXm.js";
|
|
104
104
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CT5G1TCV.js";
|
|
105
|
-
import { a as normalizeHttpWebhookUrl, l as normalizeOptionalText, o as inferLegacyName } from "./heartbeat-tick-
|
|
106
|
-
import { d as resolveGroupToolPolicy, f as resolveSubagentToolPolicy, u as resolveEffectiveToolPolicy } from "./dm-policy-shared-
|
|
107
|
-
import "./reply-directives-
|
|
108
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
109
|
-
import { i as applyPluginAutoEnable, n as collectUnsafeTelegramPollingTimeouts, s as buildChannelUiCatalog } from "./polling-timeout-
|
|
110
|
-
import "./send-
|
|
111
|
-
import "./outbound-attachment-
|
|
105
|
+
import { a as normalizeHttpWebhookUrl, l as normalizeOptionalText, o as inferLegacyName } from "./heartbeat-tick-By0WI8YD.js";
|
|
106
|
+
import { d as resolveGroupToolPolicy, f as resolveSubagentToolPolicy, u as resolveEffectiveToolPolicy } from "./dm-policy-shared-CV1uWhMc.js";
|
|
107
|
+
import "./reply-directives-Bc2RQAcJ.js";
|
|
108
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-DfNPCJXK.js";
|
|
109
|
+
import { i as applyPluginAutoEnable, n as collectUnsafeTelegramPollingTimeouts, s as buildChannelUiCatalog } from "./polling-timeout-DoMlNx_D.js";
|
|
110
|
+
import "./send-CwCEyog7.js";
|
|
111
|
+
import "./outbound-attachment-DJ3uYvUI.js";
|
|
112
112
|
import "./delivery-queue-C38eMpQd.js";
|
|
113
|
-
import "./send-
|
|
114
|
-
import "./resolve-route-
|
|
115
|
-
import "./proxy-
|
|
116
|
-
import "./replies-
|
|
117
|
-
import { n as GATEWAY_AUTH_SURFACE_PATHS, p as isKnownSecretTargetId, r as evaluateGatewayAuthSurfaceStates } from "./runtime-config-collectors-
|
|
118
|
-
import "./command-secret-targets-
|
|
119
|
-
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-
|
|
120
|
-
import "./prompt-style-
|
|
121
|
-
import "./pairing-labels-
|
|
122
|
-
import "./session-meta-
|
|
123
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
124
|
-
import { r as resolveMemorySearchConfig } from "./manager-
|
|
125
|
-
import "./query-expansion-
|
|
126
|
-
import { t as formatDocsLink } from "./links-
|
|
113
|
+
import "./send-BVisLSq7.js";
|
|
114
|
+
import "./resolve-route-KBL5oj6U.js";
|
|
115
|
+
import "./proxy-Ba9wFNmC.js";
|
|
116
|
+
import "./replies-BNP-F_lm.js";
|
|
117
|
+
import { n as GATEWAY_AUTH_SURFACE_PATHS, p as isKnownSecretTargetId, r as evaluateGatewayAuthSurfaceStates } from "./runtime-config-collectors-BVWO6FhK.js";
|
|
118
|
+
import "./command-secret-targets-CJ1czw_Q.js";
|
|
119
|
+
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DNbkQX5v.js";
|
|
120
|
+
import "./prompt-style-XoPngT10.js";
|
|
121
|
+
import "./pairing-labels-DYgJqxe0.js";
|
|
122
|
+
import "./session-meta-Bd0mS7MT.js";
|
|
123
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-DVqLwNhN.js";
|
|
124
|
+
import { r as resolveMemorySearchConfig } from "./manager-PSj0t5kg.js";
|
|
125
|
+
import "./query-expansion-BydaUlRH.js";
|
|
126
|
+
import { t as formatDocsLink } from "./links-BZDTcdHU.js";
|
|
127
127
|
import { n as runCommandWithRuntime } from "./cli-utils-aSBNHQae.js";
|
|
128
|
-
import { t as formatHelpExamples } from "./help-format-
|
|
129
|
-
import { n as withProgress } from "./progress-
|
|
130
|
-
import "./recovery-prompt-
|
|
131
|
-
import { c as OwnerLockHeldError, d as createOwnerIdentity, f as RecoveryJournalError, i as REASON_PRIOR_OWNER_UNPROVEN, l as PriorOwnerLiveError, n as REASON_JOURNAL_UNWRITABLE, o as createRestartRecoveryController, p as openRecoveryJournal, r as REASON_OWNER_LOCK_HELD, s as OwnerFenceLostError, t as REASON_JOURNAL_CORRUPT, u as acquireOwnerFence } from "./controller-
|
|
132
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
128
|
+
import { t as formatHelpExamples } from "./help-format-DuL_Y84f.js";
|
|
129
|
+
import { n as withProgress } from "./progress-Dc4ihErK.js";
|
|
130
|
+
import "./recovery-prompt-CRcPgKcT.js";
|
|
131
|
+
import { c as OwnerLockHeldError, d as createOwnerIdentity, f as RecoveryJournalError, i as REASON_PRIOR_OWNER_UNPROVEN, l as PriorOwnerLiveError, n as REASON_JOURNAL_UNWRITABLE, o as createRestartRecoveryController, p as openRecoveryJournal, r as REASON_OWNER_LOCK_HELD, s as OwnerFenceLostError, t as REASON_JOURNAL_CORRUPT, u as acquireOwnerFence } from "./controller-CyFBTP5K.js";
|
|
132
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-DEdp3c6y.js";
|
|
133
133
|
import { t as ensureOpenClawCliOnPath } from "./path-env-BaV2MrlM.js";
|
|
134
134
|
import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-C2gmG0PE.js";
|
|
135
135
|
import { n as inheritOptionFromParent } from "./command-options-vZSwrzpA.js";
|
|
136
136
|
import { t as WizardCancelledError } from "./prompts-BBkof-cQ.js";
|
|
137
137
|
import { t as resolveChannelDefaultAccountId } from "./helpers-GPI9o9AS.js";
|
|
138
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
139
|
-
import { t as isWithinDir } from "./path-safety-
|
|
140
|
-
import "./install-safe-path-
|
|
141
|
-
import "./npm-pack-install-
|
|
142
|
-
import "./skill-scanner-
|
|
143
|
-
import "./installs-
|
|
144
|
-
import { n as formatConfigIssueLines } from "./issue-format-
|
|
138
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-96ueVlOH.js";
|
|
139
|
+
import { t as isWithinDir } from "./path-safety-CCSB65fm.js";
|
|
140
|
+
import "./install-safe-path-4YfMRsxN.js";
|
|
141
|
+
import "./npm-pack-install-Dlm0MIZy.js";
|
|
142
|
+
import "./skill-scanner-BrEkff8K.js";
|
|
143
|
+
import "./installs-4lGALZOo.js";
|
|
144
|
+
import { n as formatConfigIssueLines } from "./issue-format-BG8o87sf.js";
|
|
145
145
|
import { t as buildChannelAccountSnapshot } from "./status-yrDGXYZM.js";
|
|
146
|
-
import "./channels-status-issues-
|
|
147
|
-
import { i as resolveGatewayClientProfile, t as WEB_CLIENT_ALLOWED_ORIGINS_CONFIG_KEY } from "./client-profiles-
|
|
148
|
-
import "./daemon-install-helpers-
|
|
149
|
-
import "./runtime-guard-
|
|
150
|
-
import "./service-
|
|
151
|
-
import "./systemd-
|
|
152
|
-
import "./lifecycle-core-
|
|
153
|
-
import "./systemd-hints-
|
|
146
|
+
import "./channels-status-issues-B4p6AXBG.js";
|
|
147
|
+
import { i as resolveGatewayClientProfile, t as WEB_CLIENT_ALLOWED_ORIGINS_CONFIG_KEY } from "./client-profiles-DEoACLX5.js";
|
|
148
|
+
import "./daemon-install-helpers-CKbnFsNZ.js";
|
|
149
|
+
import "./runtime-guard-DchtXvGj.js";
|
|
150
|
+
import "./service-Dkcqg-rd.js";
|
|
151
|
+
import "./systemd-BJqlwupF.js";
|
|
152
|
+
import "./lifecycle-core-CuMY0U_8.js";
|
|
153
|
+
import "./systemd-hints-Cp0IfOPD.js";
|
|
154
154
|
import { t as parsePort$1 } from "./parse-port-CshWaSQ9.js";
|
|
155
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
156
|
-
import "./diagnostics-
|
|
157
|
-
import "./table-
|
|
158
|
-
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-
|
|
159
|
-
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-
|
|
160
|
-
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-
|
|
161
|
-
import { t as discoverGatewayBeacons } from "./bonjour-discovery-
|
|
162
|
-
import { a as getStorageV1Snapshot, c as pickGatewaySelfPresence, i as createStorageSupervisor, o as noteStorageReplayResult, r as getStatusSummary, s as noteStorageRestartRequired } from "./status-
|
|
163
|
-
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-
|
|
164
|
-
import { a as readPostQuiesceTranscriptDelta, i as readBulkTranscriptLines, o as replaySource, r as mergeBulkTranscriptSnapshotAndDelta, t as ReplayRowConflictError } from "./replay-
|
|
165
|
-
import "./session-key-resolution-
|
|
166
|
-
import { c as
|
|
167
|
-
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
168
|
-
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-
|
|
169
|
-
import { t as reconcileBundledInstalls } from "./reconcile-bundled-
|
|
170
|
-
import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-
|
|
171
|
-
import "./onboarding.secret-input-
|
|
172
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
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-
|
|
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-
|
|
175
|
-
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-
|
|
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-
|
|
177
|
-
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-
|
|
178
|
-
import "./node-service-
|
|
179
|
-
import "./status.update-
|
|
180
|
-
import { i as resolveActiveLogFile, n as readLogSlice } from "./log-tail-
|
|
181
|
-
import { t as installSkill } from "./skills-install-
|
|
182
|
-
import { r as runGatewayUpdate } from "./update-runner-
|
|
183
|
-
import { n as resolveWebClientPackagedRootSync, t as WEB_CLIENT_BUNDLE_MISSING_MESSAGE } from "./web-client-assets-
|
|
184
|
-
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-
|
|
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-
|
|
186
|
-
import { n as forceFreePortAndWait } from "./ports-
|
|
155
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-D874Hxry.js";
|
|
156
|
+
import "./diagnostics-C6ntZHc3.js";
|
|
157
|
+
import "./table-H366JkfJ.js";
|
|
158
|
+
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-B1ALOpPn.js";
|
|
159
|
+
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Cj18nzyW.js";
|
|
160
|
+
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-8O6sjQPv.js";
|
|
161
|
+
import { t as discoverGatewayBeacons } from "./bonjour-discovery-B1GbNHC3.js";
|
|
162
|
+
import { a as getStorageV1Snapshot, c as pickGatewaySelfPresence, i as createStorageSupervisor, o as noteStorageReplayResult, r as getStatusSummary, s as noteStorageRestartRequired } from "./status-BacPIpt6.js";
|
|
163
|
+
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-B5jHSu9i.js";
|
|
164
|
+
import { a as readPostQuiesceTranscriptDelta, i as readBulkTranscriptLines, o as replaySource, r as mergeBulkTranscriptSnapshotAndDelta, t as ReplayRowConflictError } from "./replay-B9P8F4Td.js";
|
|
165
|
+
import "./session-key-resolution-CvnTXaSw.js";
|
|
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-DCbMK2T8.js";
|
|
167
|
+
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BXkk_vKO.js";
|
|
168
|
+
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-DM1npKXX.js";
|
|
169
|
+
import { t as reconcileBundledInstalls } from "./reconcile-bundled-CAKTvY-C.js";
|
|
170
|
+
import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-ACR3KU8j.js";
|
|
171
|
+
import "./onboarding.secret-input-YvW1rg1V.js";
|
|
172
|
+
import { t as runOnboardingWizard } from "./onboarding-R2m4j7Dp.js";
|
|
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-CPQ9-014.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-BcZzA03X.js";
|
|
175
|
+
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BzuIKryU.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-DFDrcshi.js";
|
|
177
|
+
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-C1Fy9dcA.js";
|
|
178
|
+
import "./node-service-Ys7JZFz-.js";
|
|
179
|
+
import "./status.update-C4YRQzqD.js";
|
|
180
|
+
import { i as resolveActiveLogFile, n as readLogSlice } from "./log-tail-Dg2oYTZ6.js";
|
|
181
|
+
import { t as installSkill } from "./skills-install-B23U6yk5.js";
|
|
182
|
+
import { r as runGatewayUpdate } from "./update-runner-C8NxlRy7.js";
|
|
183
|
+
import { n as resolveWebClientPackagedRootSync, t as WEB_CLIENT_BUNDLE_MISSING_MESSAGE } from "./web-client-assets-nkeo2cLh.js";
|
|
184
|
+
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-DkkkJ4GX.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-BmGo9Ngv.js";
|
|
186
|
+
import { n as forceFreePortAndWait } from "./ports-BxjQwKMc.js";
|
|
187
187
|
import { createRequire } from "node:module";
|
|
188
188
|
import { spawn, spawnSync } from "node:child_process";
|
|
189
189
|
import { cpuUsage, memoryUsage, resourceUsage, uptime } from "node:process";
|
|
@@ -193,7 +193,7 @@ import path from "node:path";
|
|
|
193
193
|
import * as fsSync from "node:fs";
|
|
194
194
|
import fs, { mkdirSync } from "node:fs";
|
|
195
195
|
import chalk from "chalk";
|
|
196
|
-
import
|
|
196
|
+
import fs$1 from "node:fs/promises";
|
|
197
197
|
import { isDeepStrictEqual, promisify } from "node:util";
|
|
198
198
|
import zlib from "node:zlib";
|
|
199
199
|
import crypto, { createHash, createHmac, hkdfSync, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
|
|
@@ -1083,7 +1083,7 @@ function resolveVerificationStore(params = {}) {
|
|
|
1083
1083
|
|
|
1084
1084
|
//#endregion
|
|
1085
1085
|
//#region src/infra/exec-approval-forwarder.ts
|
|
1086
|
-
const log$
|
|
1086
|
+
const log$30 = createSubsystemLogger("gateway/exec-approvals");
|
|
1087
1087
|
const DEFAULT_MODE = "session";
|
|
1088
1088
|
function normalizeMode(mode) {
|
|
1089
1089
|
return mode ?? DEFAULT_MODE;
|
|
@@ -1221,7 +1221,7 @@ async function deliverToTargets(params) {
|
|
|
1221
1221
|
payloads: [{ text: params.text }]
|
|
1222
1222
|
});
|
|
1223
1223
|
} catch (err) {
|
|
1224
|
-
log$
|
|
1224
|
+
log$30.error(`exec approvals: failed to deliver to ${channel}:${target.to}: ${String(err)}`);
|
|
1225
1225
|
}
|
|
1226
1226
|
});
|
|
1227
1227
|
await Promise.allSettled(deliveries);
|
|
@@ -1310,7 +1310,7 @@ function createExecApprovalForwarder(deps = {}) {
|
|
|
1310
1310
|
deliver,
|
|
1311
1311
|
shouldSend: () => pending.get(request.id) === pendingEntry
|
|
1312
1312
|
}).catch((err) => {
|
|
1313
|
-
log$
|
|
1313
|
+
log$30.error(`exec approvals: failed to deliver request ${request.id}: ${String(err)}`);
|
|
1314
1314
|
});
|
|
1315
1315
|
return true;
|
|
1316
1316
|
};
|
|
@@ -1400,7 +1400,7 @@ function resolveCheckIntervalMs(cfg) {
|
|
|
1400
1400
|
}
|
|
1401
1401
|
async function readState(statePath) {
|
|
1402
1402
|
try {
|
|
1403
|
-
const raw = await
|
|
1403
|
+
const raw = await fs$1.readFile(statePath, "utf-8");
|
|
1404
1404
|
const parsed = JSON.parse(raw);
|
|
1405
1405
|
return parsed && typeof parsed === "object" ? parsed : {};
|
|
1406
1406
|
} catch {
|
|
@@ -1481,7 +1481,7 @@ async function runAutoUpdateCommand(params) {
|
|
|
1481
1481
|
path.join(params.root, "dist", "index.mjs")
|
|
1482
1482
|
];
|
|
1483
1483
|
for (const candidate of candidates) try {
|
|
1484
|
-
await
|
|
1484
|
+
await fs$1.access(candidate);
|
|
1485
1485
|
argv.push(execPath, candidate, ...baseArgs);
|
|
1486
1486
|
break;
|
|
1487
1487
|
} catch {}
|
|
@@ -1682,7 +1682,7 @@ function scheduleGatewayUpdateCheck(params) {
|
|
|
1682
1682
|
|
|
1683
1683
|
//#endregion
|
|
1684
1684
|
//#region src/sessions/session-runs/restart-transitions.ts
|
|
1685
|
-
const log$
|
|
1685
|
+
const log$29 = createSubsystemLogger("sessions/restart-transitions");
|
|
1686
1686
|
async function transition(input, recoveryEnabled) {
|
|
1687
1687
|
const store = input.store ?? getConfiguredSessionStorageRuntime()?.runtime?.runs;
|
|
1688
1688
|
if (!store) return [];
|
|
@@ -1693,14 +1693,14 @@ async function transition(input, recoveryEnabled) {
|
|
|
1693
1693
|
recoveryReason: input.reason,
|
|
1694
1694
|
recoveryEnabled
|
|
1695
1695
|
});
|
|
1696
|
-
if (transitioned.length > 0) log$
|
|
1696
|
+
if (transitioned.length > 0) log$29.info("transitioned active runs for restart", {
|
|
1697
1697
|
count: transitioned.length,
|
|
1698
1698
|
recoveryEnabled,
|
|
1699
1699
|
reason: input.reason
|
|
1700
1700
|
});
|
|
1701
1701
|
return transitioned;
|
|
1702
1702
|
} catch (err) {
|
|
1703
|
-
log$
|
|
1703
|
+
log$29.warn("failed to transition active runs for restart", {
|
|
1704
1704
|
recoveryEnabled,
|
|
1705
1705
|
error: String(err)
|
|
1706
1706
|
});
|
|
@@ -1769,7 +1769,7 @@ function resolveChannelRestartReason(snapshot, evaluation) {
|
|
|
1769
1769
|
|
|
1770
1770
|
//#endregion
|
|
1771
1771
|
//#region src/gateway/channel-health-monitor.ts
|
|
1772
|
-
const log$
|
|
1772
|
+
const log$28 = createSubsystemLogger("gateway/health-monitor");
|
|
1773
1773
|
const DEFAULT_CHECK_INTERVAL_MS = 5 * 6e4;
|
|
1774
1774
|
const DEFAULT_MONITOR_STARTUP_GRACE_MS = 6e4;
|
|
1775
1775
|
const DEFAULT_COOLDOWN_CYCLES = 2;
|
|
@@ -1829,11 +1829,11 @@ function startChannelHealthMonitor(deps) {
|
|
|
1829
1829
|
if (now - record.lastRestartAt <= cooldownMs) continue;
|
|
1830
1830
|
pruneOldRestarts(record, now);
|
|
1831
1831
|
if (record.restartsThisHour.length >= maxRestartsPerHour) {
|
|
1832
|
-
log$
|
|
1832
|
+
log$28.warn?.(`[${channelId}:${accountId}] health-monitor: hit ${maxRestartsPerHour} restarts/hour limit, skipping`);
|
|
1833
1833
|
continue;
|
|
1834
1834
|
}
|
|
1835
1835
|
const reason = resolveChannelRestartReason(status, health);
|
|
1836
|
-
log$
|
|
1836
|
+
log$28.info?.(`[${channelId}:${accountId}] health-monitor: restarting (reason: ${reason})`);
|
|
1837
1837
|
try {
|
|
1838
1838
|
if (status.running) await channelManager.stopChannel(channelId, accountId);
|
|
1839
1839
|
channelManager.resetRestartAttempts(channelId, accountId);
|
|
@@ -1842,7 +1842,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1842
1842
|
record.restartsThisHour.push({ at: now });
|
|
1843
1843
|
restartRecords.set(key, record);
|
|
1844
1844
|
} catch (err) {
|
|
1845
|
-
log$
|
|
1845
|
+
log$28.error?.(`[${channelId}:${accountId}] health-monitor: restart failed: ${String(err)}`);
|
|
1846
1846
|
}
|
|
1847
1847
|
}
|
|
1848
1848
|
}
|
|
@@ -1862,7 +1862,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1862
1862
|
abortSignal?.addEventListener("abort", stop, { once: true });
|
|
1863
1863
|
timer = setInterval(() => void runCheck(), checkIntervalMs);
|
|
1864
1864
|
if (typeof timer === "object" && "unref" in timer) timer.unref();
|
|
1865
|
-
log$
|
|
1865
|
+
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)`);
|
|
1866
1866
|
}
|
|
1867
1867
|
return { stop };
|
|
1868
1868
|
}
|
|
@@ -3065,13 +3065,13 @@ async function resolveGatewayRecoveryAdapters(cfg, opts) {
|
|
|
3065
3065
|
async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
3066
3066
|
const adapters = [];
|
|
3067
3067
|
const stateDir = resolveStateDir();
|
|
3068
|
-
const { getConfiguredSessionStorageRuntime } = await import("./config-
|
|
3068
|
+
const { getConfiguredSessionStorageRuntime } = await import("./config-BPACL-n5.js").then((n) => n.Hn);
|
|
3069
3069
|
const runtime = getConfiguredSessionStorageRuntime()?.runtime;
|
|
3070
3070
|
const gatewayInstanceId = getGatewayInstanceId();
|
|
3071
|
-
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-
|
|
3071
|
+
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-DoHGgNPh.js").then((n) => n.t);
|
|
3072
3072
|
const backbone = tryGetAgentTurnRuntime()?.backbone;
|
|
3073
3073
|
const { createOutboundDeliveryRecoveryAdapter } = await import("./delivery-recovery-adapter-Bj3mCcg9.js");
|
|
3074
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
3074
|
+
const { deliverOutboundPayloads } = await import("./deliver-BLp1Q7uO.js").then((n) => n.n);
|
|
3075
3075
|
adapters.push(createOutboundDeliveryRecoveryAdapter({
|
|
3076
3076
|
cfg,
|
|
3077
3077
|
deliver: deliverOutboundPayloads,
|
|
@@ -3085,7 +3085,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3085
3085
|
sessionRuns = void 0;
|
|
3086
3086
|
}
|
|
3087
3087
|
if (sessionRuns && wiring?.agentTurnStager) {
|
|
3088
|
-
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-
|
|
3088
|
+
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-okaOo6tO.js");
|
|
3089
3089
|
adapters.push(createSessionRunRecoveryAdapter({
|
|
3090
3090
|
store: sessionRuns,
|
|
3091
3091
|
cfg,
|
|
@@ -3094,14 +3094,14 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3094
3094
|
stager: wiring.agentTurnStager
|
|
3095
3095
|
}));
|
|
3096
3096
|
}
|
|
3097
|
-
const { createStorageSupervisorRecoveryAdapter } = await import("./supervisor-recovery-adapter-
|
|
3097
|
+
const { createStorageSupervisorRecoveryAdapter } = await import("./supervisor-recovery-adapter-BIN1RCIY.js");
|
|
3098
3098
|
adapters.push(createStorageSupervisorRecoveryAdapter({
|
|
3099
3099
|
stateDir,
|
|
3100
3100
|
supervisor: wiring?.supervisor,
|
|
3101
3101
|
lease: wiring?.lease ? () => wiring.lease?.() ?? { isArmed: () => false } : void 0
|
|
3102
3102
|
}));
|
|
3103
3103
|
if (backbone && wiring?.agentTurnStager) {
|
|
3104
|
-
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-
|
|
3104
|
+
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-Dw5-XbMI.js");
|
|
3105
3105
|
adapters.push(createAgentTurnRecoveryAdapter({
|
|
3106
3106
|
backbone,
|
|
3107
3107
|
stager: wiring.agentTurnStager
|
|
@@ -3115,7 +3115,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3115
3115
|
}));
|
|
3116
3116
|
}
|
|
3117
3117
|
if (runtime?.cronJobs && runtime.taskRuns && sessionRuns) {
|
|
3118
|
-
const { createCronHeartbeatRecoveryAdapter } = await import("./recovery-adapter-
|
|
3118
|
+
const { createCronHeartbeatRecoveryAdapter } = await import("./recovery-adapter-CPQ9-014.js").then((n) => n.n);
|
|
3119
3119
|
adapters.push(createCronHeartbeatRecoveryAdapter({
|
|
3120
3120
|
cronJobs: runtime.cronJobs,
|
|
3121
3121
|
taskRuns: runtime.taskRuns,
|
|
@@ -3123,7 +3123,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3123
3123
|
}));
|
|
3124
3124
|
}
|
|
3125
3125
|
if (sessionRuns) {
|
|
3126
|
-
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-
|
|
3126
|
+
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-8xq2SINa.js");
|
|
3127
3127
|
adapters.push(createEmbeddedPiRecoveryAdapter({
|
|
3128
3128
|
sessionRuns,
|
|
3129
3129
|
cfg,
|
|
@@ -3131,11 +3131,11 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3131
3131
|
stager: wiring?.agentTurnStager,
|
|
3132
3132
|
isRunActive: isEmbeddedPiRunActive
|
|
3133
3133
|
}));
|
|
3134
|
-
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-
|
|
3134
|
+
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-Df87xZQp.js");
|
|
3135
3135
|
adapters.push(createAcpRuntimeRecoveryAdapter({ sessionRuns }));
|
|
3136
3136
|
}
|
|
3137
3137
|
if (backbone) {
|
|
3138
|
-
const { createPluginOwnedWorkRecoveryAdapter } = await import("./plugin-owned-work-recovery-adapter-
|
|
3138
|
+
const { createPluginOwnedWorkRecoveryAdapter } = await import("./plugin-owned-work-recovery-adapter-CCMhA7pp.js");
|
|
3139
3139
|
adapters.push(createPluginOwnedWorkRecoveryAdapter({ backbone }));
|
|
3140
3140
|
}
|
|
3141
3141
|
return adapters;
|
|
@@ -3772,7 +3772,7 @@ function createChannelManager(opts) {
|
|
|
3772
3772
|
|
|
3773
3773
|
//#endregion
|
|
3774
3774
|
//#region src/gateway/server-chat.ts
|
|
3775
|
-
const log$
|
|
3775
|
+
const log$27 = createSubsystemLogger("gateway/chat-final");
|
|
3776
3776
|
const CHAT_TERMINAL_DURABILITY_TIMEOUT_MS = 5e3;
|
|
3777
3777
|
function resolveHeartbeatAckMaxChars$1() {
|
|
3778
3778
|
try {
|
|
@@ -4014,14 +4014,14 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4014
4014
|
const pending = pendingTerminalBySession.get(sessionKey);
|
|
4015
4015
|
const durability = waitForPendingWrites(writes, CHAT_TERMINAL_DURABILITY_TIMEOUT_MS);
|
|
4016
4016
|
const gate = (pending ?? Promise.resolve()).then(() => durability).then((outcome) => {
|
|
4017
|
-
if (outcome === "timeout") log$
|
|
4017
|
+
if (outcome === "timeout") log$27.warn("chat terminal broadcast before transcript durability (timeout)", {
|
|
4018
4018
|
runId: sourceRunId,
|
|
4019
4019
|
sessionKey,
|
|
4020
4020
|
timeoutMs: CHAT_TERMINAL_DURABILITY_TIMEOUT_MS
|
|
4021
4021
|
});
|
|
4022
4022
|
sendChatTerminal(sessionKey, payload);
|
|
4023
4023
|
}).catch((err) => {
|
|
4024
|
-
log$
|
|
4024
|
+
log$27.warn("chat terminal broadcast failed while waiting for transcript durability", {
|
|
4025
4025
|
runId: sourceRunId,
|
|
4026
4026
|
sessionKey,
|
|
4027
4027
|
err
|
|
@@ -4128,7 +4128,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4128
4128
|
* Automatically starts `gog gmail watch serve` when the gateway starts,
|
|
4129
4129
|
* if hooks.gmail is configured with an account.
|
|
4130
4130
|
*/
|
|
4131
|
-
const log$
|
|
4131
|
+
const log$26 = createSubsystemLogger("gmail-watcher");
|
|
4132
4132
|
const ADDRESS_IN_USE_RE = /address already in use|EADDRINUSE/i;
|
|
4133
4133
|
function isAddressInUseError(line) {
|
|
4134
4134
|
return ADDRESS_IN_USE_RE.test(line);
|
|
@@ -4152,13 +4152,13 @@ async function startGmailWatch(cfg) {
|
|
|
4152
4152
|
const result = await runCommandWithTimeout(args, { timeoutMs: 12e4 });
|
|
4153
4153
|
if (result.code !== 0) {
|
|
4154
4154
|
const message = result.stderr || result.stdout || "gog watch start failed";
|
|
4155
|
-
log$
|
|
4155
|
+
log$26.error(`watch start failed: ${message}`);
|
|
4156
4156
|
return false;
|
|
4157
4157
|
}
|
|
4158
|
-
log$
|
|
4158
|
+
log$26.info(`watch started for ${cfg.account}`);
|
|
4159
4159
|
return true;
|
|
4160
4160
|
} catch (err) {
|
|
4161
|
-
log$
|
|
4161
|
+
log$26.error(`watch start error: ${String(err)}`);
|
|
4162
4162
|
return false;
|
|
4163
4163
|
}
|
|
4164
4164
|
}
|
|
@@ -4167,7 +4167,7 @@ async function startGmailWatch(cfg) {
|
|
|
4167
4167
|
*/
|
|
4168
4168
|
function spawnGogServe(cfg) {
|
|
4169
4169
|
const args = buildGogWatchServeArgs(cfg);
|
|
4170
|
-
log$
|
|
4170
|
+
log$26.info(`starting gog ${args.join(" ")}`);
|
|
4171
4171
|
let addressInUse = false;
|
|
4172
4172
|
const child = spawn("gog", args, {
|
|
4173
4173
|
stdio: [
|
|
@@ -4179,25 +4179,25 @@ function spawnGogServe(cfg) {
|
|
|
4179
4179
|
});
|
|
4180
4180
|
child.stdout?.on("data", (data) => {
|
|
4181
4181
|
const line = data.toString().trim();
|
|
4182
|
-
if (line) log$
|
|
4182
|
+
if (line) log$26.info(`[gog] ${line}`);
|
|
4183
4183
|
});
|
|
4184
4184
|
child.stderr?.on("data", (data) => {
|
|
4185
4185
|
const line = data.toString().trim();
|
|
4186
4186
|
if (!line) return;
|
|
4187
4187
|
if (isAddressInUseError(line)) addressInUse = true;
|
|
4188
|
-
log$
|
|
4188
|
+
log$26.warn(`[gog] ${line}`);
|
|
4189
4189
|
});
|
|
4190
4190
|
child.on("error", (err) => {
|
|
4191
|
-
log$
|
|
4191
|
+
log$26.error(`gog process error: ${String(err)}`);
|
|
4192
4192
|
});
|
|
4193
4193
|
child.on("exit", (code, signal) => {
|
|
4194
4194
|
if (shuttingDown) return;
|
|
4195
4195
|
if (addressInUse) {
|
|
4196
|
-
log$
|
|
4196
|
+
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.");
|
|
4197
4197
|
watcherProcess = null;
|
|
4198
4198
|
return;
|
|
4199
4199
|
}
|
|
4200
|
-
log$
|
|
4200
|
+
log$26.warn(`gog exited (code=${code}, signal=${signal}); restarting in 5s`);
|
|
4201
4201
|
watcherProcess = null;
|
|
4202
4202
|
setTimeout(() => {
|
|
4203
4203
|
if (shuttingDown || !currentConfig) return;
|
|
@@ -4237,15 +4237,15 @@ async function startGmailWatcher(cfg) {
|
|
|
4237
4237
|
port: runtimeConfig.serve.port,
|
|
4238
4238
|
target: runtimeConfig.tailscale.target
|
|
4239
4239
|
});
|
|
4240
|
-
log$
|
|
4240
|
+
log$26.info(`tailscale ${runtimeConfig.tailscale.mode} configured for port ${runtimeConfig.serve.port}`);
|
|
4241
4241
|
} catch (err) {
|
|
4242
|
-
log$
|
|
4242
|
+
log$26.error(`tailscale setup failed: ${String(err)}`);
|
|
4243
4243
|
return {
|
|
4244
4244
|
started: false,
|
|
4245
4245
|
reason: `tailscale setup failed: ${String(err)}`
|
|
4246
4246
|
};
|
|
4247
4247
|
}
|
|
4248
|
-
if (!await startGmailWatch(runtimeConfig)) log$
|
|
4248
|
+
if (!await startGmailWatch(runtimeConfig)) log$26.warn("gmail watch start failed, but continuing with serve");
|
|
4249
4249
|
shuttingDown = false;
|
|
4250
4250
|
watcherProcess = spawnGogServe(runtimeConfig);
|
|
4251
4251
|
const renewMs = runtimeConfig.renewEveryMinutes * 6e4;
|
|
@@ -4253,7 +4253,7 @@ async function startGmailWatcher(cfg) {
|
|
|
4253
4253
|
if (shuttingDown) return;
|
|
4254
4254
|
startGmailWatch(runtimeConfig);
|
|
4255
4255
|
}, renewMs);
|
|
4256
|
-
log$
|
|
4256
|
+
log$26.info(`gmail watcher started for ${runtimeConfig.account} (renew every ${runtimeConfig.renewEveryMinutes}m)`);
|
|
4257
4257
|
return { started: true };
|
|
4258
4258
|
}
|
|
4259
4259
|
/**
|
|
@@ -4266,7 +4266,7 @@ async function stopGmailWatcher() {
|
|
|
4266
4266
|
renewInterval = null;
|
|
4267
4267
|
}
|
|
4268
4268
|
if (watcherProcess) {
|
|
4269
|
-
log$
|
|
4269
|
+
log$26.info("stopping gmail watcher");
|
|
4270
4270
|
watcherProcess.kill("SIGTERM");
|
|
4271
4271
|
await new Promise((resolve) => {
|
|
4272
4272
|
const timeout = setTimeout(() => {
|
|
@@ -4281,7 +4281,7 @@ async function stopGmailWatcher() {
|
|
|
4281
4281
|
watcherProcess = null;
|
|
4282
4282
|
}
|
|
4283
4283
|
currentConfig = null;
|
|
4284
|
-
log$
|
|
4284
|
+
log$26.info("gmail watcher stopped");
|
|
4285
4285
|
}
|
|
4286
4286
|
|
|
4287
4287
|
//#endregion
|
|
@@ -5657,7 +5657,7 @@ async function runCronIsolatedAgentTurn(params) {
|
|
|
5657
5657
|
|
|
5658
5658
|
//#endregion
|
|
5659
5659
|
//#region src/cron/run-log.ts
|
|
5660
|
-
const log$
|
|
5660
|
+
const log$25 = createSubsystemLogger("cron/run-log");
|
|
5661
5661
|
function assertSafeCronRunLogJobId(jobId) {
|
|
5662
5662
|
const trimmed = jobId.trim();
|
|
5663
5663
|
if (!trimmed) throw new Error("invalid cron run log job id");
|
|
@@ -5696,10 +5696,10 @@ async function drainPendingWrite(filePath) {
|
|
|
5696
5696
|
if (pending) await pending.catch(() => void 0);
|
|
5697
5697
|
}
|
|
5698
5698
|
async function pruneIfNeeded(filePath, opts) {
|
|
5699
|
-
const stat = await
|
|
5699
|
+
const stat = await fs$1.stat(filePath).catch(() => null);
|
|
5700
5700
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
5701
|
-
const raw = await
|
|
5702
|
-
log$
|
|
5701
|
+
const raw = await fs$1.readFile(filePath, "utf-8").catch((err) => {
|
|
5702
|
+
log$25.warn("cron run-log: prune skipped (read failed)", {
|
|
5703
5703
|
filePath,
|
|
5704
5704
|
err: String(err)
|
|
5705
5705
|
});
|
|
@@ -5710,14 +5710,14 @@ async function pruneIfNeeded(filePath, opts) {
|
|
|
5710
5710
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
5711
5711
|
const { randomBytes } = await import("node:crypto");
|
|
5712
5712
|
const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
5713
|
-
await
|
|
5714
|
-
await
|
|
5713
|
+
await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
5714
|
+
await fs$1.rename(tmp, filePath);
|
|
5715
5715
|
}
|
|
5716
5716
|
async function listCronRunLogReadPaths(filePath) {
|
|
5717
5717
|
const resolved = path.resolve(filePath);
|
|
5718
5718
|
const dir = path.dirname(resolved);
|
|
5719
5719
|
const base = path.basename(resolved);
|
|
5720
|
-
return [...(await
|
|
5720
|
+
return [...(await fs$1.readdir(dir).catch(() => [])).map((name) => {
|
|
5721
5721
|
const match = new RegExp(`^${base.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\.(\\d+)(\\.gz)?$`).exec(name);
|
|
5722
5722
|
return match ? {
|
|
5723
5723
|
path: path.join(dir, name),
|
|
@@ -5726,8 +5726,8 @@ async function listCronRunLogReadPaths(filePath) {
|
|
|
5726
5726
|
}).filter((entry) => entry !== null).toSorted((a, b) => b.slot - a.slot).map((entry) => entry.path), resolved];
|
|
5727
5727
|
}
|
|
5728
5728
|
async function readCronRunLogFile(filePath) {
|
|
5729
|
-
if (filePath.endsWith(".gz")) return zlib.gunzipSync(await
|
|
5730
|
-
return
|
|
5729
|
+
if (filePath.endsWith(".gz")) return zlib.gunzipSync(await fs$1.readFile(filePath)).toString("utf-8");
|
|
5730
|
+
return fs$1.readFile(filePath, "utf-8");
|
|
5731
5731
|
}
|
|
5732
5732
|
async function readCronRunLogRaw(filePath) {
|
|
5733
5733
|
const chunks = [];
|
|
@@ -5878,7 +5878,7 @@ async function readCronRunLogEntriesPageAll(opts) {
|
|
|
5878
5878
|
const query = opts.query?.trim().toLowerCase() ?? "";
|
|
5879
5879
|
const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
|
|
5880
5880
|
const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
|
|
5881
|
-
const files = await
|
|
5881
|
+
const files = await fs$1.readdir(runsDir, { withFileTypes: true }).catch(() => []);
|
|
5882
5882
|
const logFiles = [...new Set(files.filter((entry) => entry.isFile()).map((entry) => {
|
|
5883
5883
|
const match = /^(.+\.jsonl)(?:\.\d+(?:\.gz)?)?$/.exec(entry.name);
|
|
5884
5884
|
return match ? path.join(runsDir, match[1] ?? "") : null;
|
|
@@ -10341,7 +10341,7 @@ function resolveWorkspaceFilePathResultOrThrow(params) {
|
|
|
10341
10341
|
}
|
|
10342
10342
|
async function resolveWorkspaceRealPath(workspaceDir) {
|
|
10343
10343
|
try {
|
|
10344
|
-
return await
|
|
10344
|
+
return await fs$1.realpath(workspaceDir);
|
|
10345
10345
|
} catch {
|
|
10346
10346
|
return path.resolve(workspaceDir);
|
|
10347
10347
|
}
|
|
@@ -10370,7 +10370,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
10370
10370
|
};
|
|
10371
10371
|
let candidateLstat;
|
|
10372
10372
|
try {
|
|
10373
|
-
candidateLstat = await
|
|
10373
|
+
candidateLstat = await fs$1.lstat(candidatePath);
|
|
10374
10374
|
} catch (err) {
|
|
10375
10375
|
return resolveWorkspaceFilePathResultOrThrow({
|
|
10376
10376
|
error: err,
|
|
@@ -10381,7 +10381,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
10381
10381
|
if (candidateLstat.isSymbolicLink()) {
|
|
10382
10382
|
let targetReal;
|
|
10383
10383
|
try {
|
|
10384
|
-
targetReal = await
|
|
10384
|
+
targetReal = await fs$1.realpath(candidatePath);
|
|
10385
10385
|
} catch (err) {
|
|
10386
10386
|
return resolveWorkspaceFilePathResultOrThrow({
|
|
10387
10387
|
error: err,
|
|
@@ -10396,7 +10396,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
10396
10396
|
};
|
|
10397
10397
|
let targetStat;
|
|
10398
10398
|
try {
|
|
10399
|
-
targetStat = await
|
|
10399
|
+
targetStat = await fs$1.stat(targetReal);
|
|
10400
10400
|
} catch (err) {
|
|
10401
10401
|
return resolveWorkspaceFilePathResultOrThrow({
|
|
10402
10402
|
error: err,
|
|
@@ -10434,13 +10434,13 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
10434
10434
|
return {
|
|
10435
10435
|
kind: "ready",
|
|
10436
10436
|
requestPath,
|
|
10437
|
-
ioPath: await
|
|
10437
|
+
ioPath: await fs$1.realpath(candidatePath).catch(() => candidatePath),
|
|
10438
10438
|
workspaceReal
|
|
10439
10439
|
};
|
|
10440
10440
|
}
|
|
10441
10441
|
async function statFileSafely(filePath) {
|
|
10442
10442
|
try {
|
|
10443
|
-
const [stat, lstat] = await Promise.all([
|
|
10443
|
+
const [stat, lstat] = await Promise.all([fs$1.stat(filePath), fs$1.lstat(filePath)]);
|
|
10444
10444
|
if (lstat.isSymbolicLink() || !stat.isFile()) return null;
|
|
10445
10445
|
if (stat.nlink > 1) return null;
|
|
10446
10446
|
if (!sameFileIdentity(stat, lstat)) return null;
|
|
@@ -10534,7 +10534,7 @@ function respondAgentNotFound(respond, agentId) {
|
|
|
10534
10534
|
async function moveToTrashBestEffort(pathname) {
|
|
10535
10535
|
if (!pathname) return;
|
|
10536
10536
|
try {
|
|
10537
|
-
await
|
|
10537
|
+
await fs$1.access(pathname);
|
|
10538
10538
|
} catch {
|
|
10539
10539
|
return;
|
|
10540
10540
|
}
|
|
@@ -10610,7 +10610,7 @@ const agentsHandlers = {
|
|
|
10610
10610
|
dir: workspaceDir,
|
|
10611
10611
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
10612
10612
|
});
|
|
10613
|
-
await
|
|
10613
|
+
await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
10614
10614
|
await writeConfigFile(nextConfig);
|
|
10615
10615
|
const safeName = sanitizeIdentityLine(rawName);
|
|
10616
10616
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -10623,7 +10623,7 @@ const agentsHandlers = {
|
|
|
10623
10623
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
10624
10624
|
""
|
|
10625
10625
|
];
|
|
10626
|
-
await
|
|
10626
|
+
await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
10627
10627
|
respond(true, {
|
|
10628
10628
|
ok: true,
|
|
10629
10629
|
agentId,
|
|
@@ -10658,9 +10658,9 @@ const agentsHandlers = {
|
|
|
10658
10658
|
});
|
|
10659
10659
|
if (avatar) {
|
|
10660
10660
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
10661
|
-
await
|
|
10661
|
+
await fs$1.mkdir(workspace, { recursive: true });
|
|
10662
10662
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
10663
|
-
await
|
|
10663
|
+
await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
10664
10664
|
}
|
|
10665
10665
|
respond(true, {
|
|
10666
10666
|
ok: true,
|
|
@@ -10784,7 +10784,7 @@ const agentsHandlers = {
|
|
|
10784
10784
|
const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
|
|
10785
10785
|
if (!resolved) return;
|
|
10786
10786
|
const { agentId, workspaceDir, name } = resolved;
|
|
10787
|
-
await
|
|
10787
|
+
await fs$1.mkdir(workspaceDir, { recursive: true });
|
|
10788
10788
|
const filePath = path.join(workspaceDir, name);
|
|
10789
10789
|
const resolvedPath = await resolveWorkspaceFilePathOrRespond({
|
|
10790
10790
|
respond,
|
|
@@ -11742,9 +11742,6 @@ const VOICE_INTERRUPTED_MARKER = " [interrupted]";
|
|
|
11742
11742
|
const CHAT_HISTORY_TEXT_MAX_CHARS = 12e3;
|
|
11743
11743
|
const CHAT_HISTORY_MAX_SINGLE_MESSAGE_BYTES = 128 * 1024;
|
|
11744
11744
|
const CHAT_HISTORY_OVERSIZED_PLACEHOLDER = "[chat.history omitted: message too large]";
|
|
11745
|
-
/** Twice the default storage probe timeout: how long chat.history waits for a booting gateway's session storage before it answers UNAVAILABLE. */
|
|
11746
|
-
const CHAT_HISTORY_STORAGE_START_WAIT_MS = 1e4;
|
|
11747
|
-
const CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS = 1e3;
|
|
11748
11745
|
let chatHistoryPlaceholderEmitCount = 0;
|
|
11749
11746
|
function stripDisallowedChatControlChars(message) {
|
|
11750
11747
|
let output = "";
|
|
@@ -12546,13 +12543,6 @@ const chatHandlers = {
|
|
|
12546
12543
|
return;
|
|
12547
12544
|
}
|
|
12548
12545
|
const { sessionKey, limit, maxChars, before } = params;
|
|
12549
|
-
if (!(await context.storageStartup?.whenReleased(CHAT_HISTORY_STORAGE_START_WAIT_MS) ?? true)) {
|
|
12550
|
-
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage is still starting", {
|
|
12551
|
-
retryable: true,
|
|
12552
|
-
retryAfterMs: CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS
|
|
12553
|
-
}));
|
|
12554
|
-
return;
|
|
12555
|
-
}
|
|
12556
12546
|
const { cfg, storePath, entry } = loadSessionEntry(sessionKey);
|
|
12557
12547
|
const sessionId = entry?.sessionId;
|
|
12558
12548
|
const sessionAgentId = resolveSessionAgentId({
|
|
@@ -14743,7 +14733,7 @@ async function replayApproval(ctx) {
|
|
|
14743
14733
|
|
|
14744
14734
|
//#endregion
|
|
14745
14735
|
//#region src/infra/exec-audit.ts
|
|
14746
|
-
const log$
|
|
14736
|
+
const log$24 = createSubsystemLogger("infra/exec-audit");
|
|
14747
14737
|
function emitAuditRecord(request, decision) {
|
|
14748
14738
|
const inv = request.invocation;
|
|
14749
14739
|
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}`;
|
|
@@ -14774,7 +14764,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14774
14764
|
timeoutMs: request.timeoutMs,
|
|
14775
14765
|
stdinPresent: request.stdin === "present-redacted"
|
|
14776
14766
|
};
|
|
14777
|
-
if (record.outcome === "deny") log$
|
|
14767
|
+
if (record.outcome === "deny") log$24.warn("exec-audit deny", {
|
|
14778
14768
|
effect: record.effect,
|
|
14779
14769
|
sourceRule: record.sourceRule,
|
|
14780
14770
|
reason: record.reason,
|
|
@@ -14783,7 +14773,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14783
14773
|
normalizedArgv: record.normalizedArgv,
|
|
14784
14774
|
policyId: record.policyId
|
|
14785
14775
|
});
|
|
14786
|
-
else log$
|
|
14776
|
+
else log$24.info("exec-audit", {
|
|
14787
14777
|
effect: record.effect,
|
|
14788
14778
|
sourceRule: record.sourceRule,
|
|
14789
14779
|
outcome: record.outcome,
|
|
@@ -15131,7 +15121,7 @@ function reEvaluatePoliciesForPath(reResolvedRequest, envSanitization, policies
|
|
|
15131
15121
|
|
|
15132
15122
|
//#endregion
|
|
15133
15123
|
//#region src/infra/load-policies-for-request.ts
|
|
15134
|
-
const log$
|
|
15124
|
+
const log$23 = createSubsystemLogger("infra/load-policies-for-request");
|
|
15135
15125
|
/**
|
|
15136
15126
|
* User-scoped policy source backed by the v2 exec-approvals store
|
|
15137
15127
|
* (`~/.openclaw/exec-approvals.json`). The store is migrated v1→v2 on load
|
|
@@ -15150,7 +15140,7 @@ function createUserPolicySource() {
|
|
|
15150
15140
|
try {
|
|
15151
15141
|
return (await loadExecApprovalsV2()).policies;
|
|
15152
15142
|
} catch (error) {
|
|
15153
|
-
log$
|
|
15143
|
+
log$23.warn("user policy store load failed; user policies will not apply", { error });
|
|
15154
15144
|
return [];
|
|
15155
15145
|
}
|
|
15156
15146
|
} };
|
|
@@ -16295,7 +16285,7 @@ const nodeHandlers = {
|
|
|
16295
16285
|
const p = params;
|
|
16296
16286
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
16297
16287
|
await respondUnavailableOnThrow(respond, async () => {
|
|
16298
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
16288
|
+
const { handleNodeEvent } = await import("./server-node-events-8k0OLCvW.js");
|
|
16299
16289
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
16300
16290
|
await handleNodeEvent({
|
|
16301
16291
|
deps: context.deps,
|
|
@@ -17092,7 +17082,7 @@ function resolveSteerResult(params) {
|
|
|
17092
17082
|
|
|
17093
17083
|
//#endregion
|
|
17094
17084
|
//#region src/gateway/session-title-completion.ts
|
|
17095
|
-
const log$
|
|
17085
|
+
const log$22 = createSubsystemLogger("gateway/session-title-completion");
|
|
17096
17086
|
const SESSION_TITLE_COMPLETION_TIMEOUT_MS = 15e3;
|
|
17097
17087
|
const SESSION_TITLE_MAX_CHARS = 60;
|
|
17098
17088
|
/** Upstream openclaw's dashboard-session-title prompt wording (ADR 0084 s5, mission M4). */
|
|
@@ -17143,7 +17133,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17143
17133
|
try {
|
|
17144
17134
|
const resolved = deps.resolveModel(provider, model, agentDir, cfg);
|
|
17145
17135
|
if (!resolved.model) {
|
|
17146
|
-
log$
|
|
17136
|
+
log$22.warn("session title model unresolved", {
|
|
17147
17137
|
...logFields,
|
|
17148
17138
|
error: resolved.error
|
|
17149
17139
|
});
|
|
@@ -17157,7 +17147,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17157
17147
|
let apiKey;
|
|
17158
17148
|
if (!auth.apiKey) {
|
|
17159
17149
|
if (auth.mode !== "aws-sdk") {
|
|
17160
|
-
log$
|
|
17150
|
+
log$22.warn("session title no api key resolved", {
|
|
17161
17151
|
...logFields,
|
|
17162
17152
|
mode: auth.mode
|
|
17163
17153
|
});
|
|
@@ -17172,7 +17162,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17172
17162
|
})).token;
|
|
17173
17163
|
else apiKey = auth.apiKey;
|
|
17174
17164
|
if (controller.signal.aborted) {
|
|
17175
|
-
log$
|
|
17165
|
+
log$22.warn("session title generation timed out before dispatch", logFields);
|
|
17176
17166
|
return null;
|
|
17177
17167
|
}
|
|
17178
17168
|
const response = await deps.completeSimple(resolved.model, {
|
|
@@ -17189,11 +17179,11 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17189
17179
|
signal: controller.signal
|
|
17190
17180
|
});
|
|
17191
17181
|
if (response.stopReason === "aborted") {
|
|
17192
|
-
log$
|
|
17182
|
+
log$22.warn("session title generation timed out", logFields);
|
|
17193
17183
|
return null;
|
|
17194
17184
|
}
|
|
17195
17185
|
if (response.stopReason === "error") {
|
|
17196
|
-
log$
|
|
17186
|
+
log$22.warn("session title generation provider error", {
|
|
17197
17187
|
...logFields,
|
|
17198
17188
|
error: response.errorMessage
|
|
17199
17189
|
});
|
|
@@ -17203,7 +17193,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17203
17193
|
if (!text) return null;
|
|
17204
17194
|
return normalizeSessionTitle(text);
|
|
17205
17195
|
} catch (error) {
|
|
17206
|
-
log$
|
|
17196
|
+
log$22.warn("session title generation failed", {
|
|
17207
17197
|
...logFields,
|
|
17208
17198
|
error: error instanceof Error ? error.message : String(error)
|
|
17209
17199
|
});
|
|
@@ -17384,6 +17374,218 @@ const skillsHandlers = {
|
|
|
17384
17374
|
}
|
|
17385
17375
|
};
|
|
17386
17376
|
|
|
17377
|
+
//#endregion
|
|
17378
|
+
//#region src/gateway/storage-method-policy.ts
|
|
17379
|
+
const STORAGE_METHOD_POLICY_REQUIRED = [
|
|
17380
|
+
"chat.history",
|
|
17381
|
+
"sessions.claims.status",
|
|
17382
|
+
"sessions.runHistory",
|
|
17383
|
+
"sessions.runs.cancel",
|
|
17384
|
+
"sessions.runs.continue",
|
|
17385
|
+
"sessions.runs.events",
|
|
17386
|
+
"sessions.runs.get",
|
|
17387
|
+
"sessions.runs.list",
|
|
17388
|
+
"tasks.resetBudget",
|
|
17389
|
+
"tasks.rollback",
|
|
17390
|
+
"tasks.runDryRun",
|
|
17391
|
+
"tasks.runEvents",
|
|
17392
|
+
"tasks.runs.get",
|
|
17393
|
+
"tasks.runs.events",
|
|
17394
|
+
"tasks.runs.list",
|
|
17395
|
+
"tasks.status"
|
|
17396
|
+
];
|
|
17397
|
+
const STORAGE_METHOD_POLICY_BOOT_WRITE = [
|
|
17398
|
+
"chat.inject",
|
|
17399
|
+
"sessions.compact",
|
|
17400
|
+
"sessions.create",
|
|
17401
|
+
"sessions.delete",
|
|
17402
|
+
"sessions.patch",
|
|
17403
|
+
"sessions.reset"
|
|
17404
|
+
];
|
|
17405
|
+
const STORAGE_METHOD_POLICY_NONE = [
|
|
17406
|
+
"connect",
|
|
17407
|
+
"health",
|
|
17408
|
+
"status",
|
|
17409
|
+
"logs.tail",
|
|
17410
|
+
"voicewake.get",
|
|
17411
|
+
"voicewake.set",
|
|
17412
|
+
"channels.status",
|
|
17413
|
+
"channels.logout",
|
|
17414
|
+
"chat.abort",
|
|
17415
|
+
"chat.send",
|
|
17416
|
+
"sessions.abort",
|
|
17417
|
+
"wake",
|
|
17418
|
+
"cron.list",
|
|
17419
|
+
"cron.status",
|
|
17420
|
+
"cron.add",
|
|
17421
|
+
"cron.update",
|
|
17422
|
+
"cron.remove",
|
|
17423
|
+
"cron.run",
|
|
17424
|
+
"cron.runs",
|
|
17425
|
+
"device.pair.list",
|
|
17426
|
+
"device.pair.approve",
|
|
17427
|
+
"device.pair.reject",
|
|
17428
|
+
"device.pair.remove",
|
|
17429
|
+
"device.token.rotate",
|
|
17430
|
+
"device.token.revoke",
|
|
17431
|
+
"diagnostics.runtime.snapshot",
|
|
17432
|
+
"diagnostics.capture.cpu",
|
|
17433
|
+
"diagnostics.capture.heap",
|
|
17434
|
+
"diagnostics.capture.report",
|
|
17435
|
+
"diagnostics.profiling.start",
|
|
17436
|
+
"diagnostics.profiling.stop",
|
|
17437
|
+
"doctor.memory.status",
|
|
17438
|
+
"doctor.recovery.inspect",
|
|
17439
|
+
"doctor.recovery.plan",
|
|
17440
|
+
"doctor.recovery.apply",
|
|
17441
|
+
"exec.approvals.get",
|
|
17442
|
+
"exec.approvals.set",
|
|
17443
|
+
"exec.approvals.node.get",
|
|
17444
|
+
"exec.approvals.node.set",
|
|
17445
|
+
"web.login.start",
|
|
17446
|
+
"web.login.wait",
|
|
17447
|
+
"models.authStatus",
|
|
17448
|
+
"models.list",
|
|
17449
|
+
"config.get",
|
|
17450
|
+
"config.schema",
|
|
17451
|
+
"config.set",
|
|
17452
|
+
"config.patch",
|
|
17453
|
+
"config.apply",
|
|
17454
|
+
"wizard.start",
|
|
17455
|
+
"wizard.next",
|
|
17456
|
+
"wizard.cancel",
|
|
17457
|
+
"wizard.status",
|
|
17458
|
+
"talk.config",
|
|
17459
|
+
"talk.mode",
|
|
17460
|
+
"talk.catalog",
|
|
17461
|
+
"talk.session.create",
|
|
17462
|
+
"talk.session.appendAudio",
|
|
17463
|
+
"talk.session.close",
|
|
17464
|
+
"talk.session.cancelTurn",
|
|
17465
|
+
"talk.session.mark",
|
|
17466
|
+
"talk.session.bargeIn",
|
|
17467
|
+
"talk.realtime.session",
|
|
17468
|
+
"talk.realtime.audio",
|
|
17469
|
+
"talk.realtime.mark",
|
|
17470
|
+
"talk.realtime.toolResult",
|
|
17471
|
+
"talk.realtime.bargeIn",
|
|
17472
|
+
"talk.realtime.stop",
|
|
17473
|
+
"talk.realtime.status",
|
|
17474
|
+
"talk.metrics",
|
|
17475
|
+
"tools.catalog",
|
|
17476
|
+
"tts.status",
|
|
17477
|
+
"tts.enable",
|
|
17478
|
+
"tts.disable",
|
|
17479
|
+
"tts.convert",
|
|
17480
|
+
"tts.setProvider",
|
|
17481
|
+
"tts.providers",
|
|
17482
|
+
"skills.status",
|
|
17483
|
+
"skills.bins",
|
|
17484
|
+
"skills.install",
|
|
17485
|
+
"skills.update",
|
|
17486
|
+
"sessions.subscribe",
|
|
17487
|
+
"sessions.list",
|
|
17488
|
+
"sessions.describe",
|
|
17489
|
+
"sessions.compaction.list",
|
|
17490
|
+
"sessions.runs",
|
|
17491
|
+
"sessions.thresholds",
|
|
17492
|
+
"sessions.interrupt",
|
|
17493
|
+
"sessions.preview",
|
|
17494
|
+
"sessions.resolve",
|
|
17495
|
+
"sessions.title.prepare",
|
|
17496
|
+
"sessions.steer",
|
|
17497
|
+
"last-heartbeat",
|
|
17498
|
+
"set-heartbeats",
|
|
17499
|
+
"system-presence",
|
|
17500
|
+
"system-event",
|
|
17501
|
+
"update.run",
|
|
17502
|
+
"node.pair.request",
|
|
17503
|
+
"node.pair.list",
|
|
17504
|
+
"node.pair.approve",
|
|
17505
|
+
"node.pair.reject",
|
|
17506
|
+
"node.pair.verify",
|
|
17507
|
+
"node.rename",
|
|
17508
|
+
"node.list",
|
|
17509
|
+
"node.describe",
|
|
17510
|
+
"node.canvas.capability.refresh",
|
|
17511
|
+
"node.invoke",
|
|
17512
|
+
"node.invoke.result",
|
|
17513
|
+
"node.event",
|
|
17514
|
+
"plugins/health",
|
|
17515
|
+
"push.test",
|
|
17516
|
+
"send",
|
|
17517
|
+
"poll",
|
|
17518
|
+
"usage.status",
|
|
17519
|
+
"usage.cost",
|
|
17520
|
+
"sessions.usage",
|
|
17521
|
+
"sessions.usage.timeseries",
|
|
17522
|
+
"sessions.usage.logs",
|
|
17523
|
+
"agent",
|
|
17524
|
+
"agent.identity.get",
|
|
17525
|
+
"agent.wait",
|
|
17526
|
+
"agent.nudge",
|
|
17527
|
+
"agents.list",
|
|
17528
|
+
"agents.create",
|
|
17529
|
+
"agents.update",
|
|
17530
|
+
"agents.delete",
|
|
17531
|
+
"agents.files.list",
|
|
17532
|
+
"agents.files.get",
|
|
17533
|
+
"agents.files.set",
|
|
17534
|
+
"browser.request"
|
|
17535
|
+
];
|
|
17536
|
+
const STORAGE_METHOD_POLICY = Object.freeze({
|
|
17537
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_REQUIRED.map((method) => [method, "required"])),
|
|
17538
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_BOOT_WRITE.map((method) => [method, "boot-write"])),
|
|
17539
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_NONE.map((method) => [method, "none"]))
|
|
17540
|
+
});
|
|
17541
|
+
|
|
17542
|
+
//#endregion
|
|
17543
|
+
//#region src/gateway/server-methods/storage-fence.ts
|
|
17544
|
+
const STORAGE_START_WAIT_MS = 1e4;
|
|
17545
|
+
const log$21 = createSubsystemLogger("gateway/storage-fence");
|
|
17546
|
+
const warnedGates = /* @__PURE__ */ new WeakSet();
|
|
17547
|
+
/**
|
|
17548
|
+
* Returns true when this call has been answered by the fence (held out, or answered a typed
|
|
17549
|
+
* error), so dispatch must not run the handler. Runs after authorization and the method-set
|
|
17550
|
+
* rate limits, so an unauthorized caller never learns storage readiness. Absent context gate or
|
|
17551
|
+
* `none`/missing classification means no storage decision applies to the method.
|
|
17552
|
+
*/
|
|
17553
|
+
async function guardStorageRpc(method, context, respond) {
|
|
17554
|
+
const policy = Object.hasOwn(STORAGE_METHOD_POLICY, method) ? STORAGE_METHOD_POLICY[method] : void 0;
|
|
17555
|
+
const gate = context.storageStartup;
|
|
17556
|
+
if (policy === void 0 || policy === "none" || !gate) return false;
|
|
17557
|
+
let state = gate.state();
|
|
17558
|
+
if (state.phase === "ready") return false;
|
|
17559
|
+
state = await gate.whenSettled(STORAGE_START_WAIT_MS);
|
|
17560
|
+
if (state.phase === "ready") return false;
|
|
17561
|
+
if (state.phase === "failed") {
|
|
17562
|
+
if (policy === "boot-write") return false;
|
|
17563
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage failed to start", {
|
|
17564
|
+
retryable: false,
|
|
17565
|
+
details: {
|
|
17566
|
+
code: "storage_start_failed",
|
|
17567
|
+
reasonCodes: state.reasonCodes
|
|
17568
|
+
}
|
|
17569
|
+
}));
|
|
17570
|
+
return true;
|
|
17571
|
+
}
|
|
17572
|
+
if (state.phase === "starting" && !warnedGates.has(gate)) {
|
|
17573
|
+
warnedGates.add(gate);
|
|
17574
|
+
log$21.warn("session storage still starting after 10000ms; storage-backed methods answer RECOVERY_NOT_READY");
|
|
17575
|
+
}
|
|
17576
|
+
const stopping = state.phase === "stopping";
|
|
17577
|
+
respond(false, void 0, errorShape(ErrorCodes.RECOVERY_NOT_READY, stopping ? "gateway is stopping" : "session storage is still starting", {
|
|
17578
|
+
retryable: true,
|
|
17579
|
+
retryAfterMs: 500,
|
|
17580
|
+
details: {
|
|
17581
|
+
producer: "session-storage",
|
|
17582
|
+
phase: state.phase,
|
|
17583
|
+
reasonCodes: [stopping ? "storage_stopping" : "storage_starting"]
|
|
17584
|
+
}
|
|
17585
|
+
}));
|
|
17586
|
+
return true;
|
|
17587
|
+
}
|
|
17588
|
+
|
|
17387
17589
|
//#endregion
|
|
17388
17590
|
//#region src/gateway/server/presence-events.ts
|
|
17389
17591
|
function broadcastPresenceSnapshot(params) {
|
|
@@ -18092,8 +18294,8 @@ function logConsultFailure(reason) {
|
|
|
18092
18294
|
}
|
|
18093
18295
|
const defaultDeps = {
|
|
18094
18296
|
runEmbeddedPiAgent,
|
|
18095
|
-
mkdtemp:
|
|
18096
|
-
rm:
|
|
18297
|
+
mkdtemp: fs$1.mkdtemp,
|
|
18298
|
+
rm: fs$1.rm,
|
|
18097
18299
|
resolveAgentDir,
|
|
18098
18300
|
resolveAgentWorkspaceDir,
|
|
18099
18301
|
resolveDefaultAgentId,
|
|
@@ -22237,9 +22439,9 @@ function toRedactedEvent(event) {
|
|
|
22237
22439
|
};
|
|
22238
22440
|
}
|
|
22239
22441
|
async function listQueuedView(params, runtime, respond) {
|
|
22240
|
-
const registry =
|
|
22442
|
+
const registry = await resolveTaskOperatorRegistry();
|
|
22241
22443
|
if (!registry) {
|
|
22242
|
-
respond
|
|
22444
|
+
respondTaskRegistryUnavailable(respond);
|
|
22243
22445
|
return;
|
|
22244
22446
|
}
|
|
22245
22447
|
const busWork = runtime.busWork;
|
|
@@ -23915,6 +24117,7 @@ async function handleGatewayRequest(opts) {
|
|
|
23915
24117
|
return;
|
|
23916
24118
|
}
|
|
23917
24119
|
}
|
|
24120
|
+
if (await guardStorageRpc(req.method, context, respond)) return;
|
|
23918
24121
|
await handler({
|
|
23919
24122
|
req,
|
|
23920
24123
|
params: req.params ?? {},
|
|
@@ -24859,7 +25062,7 @@ function normalizeAgentPayload(payload) {
|
|
|
24859
25062
|
async function startBrowserControlServerIfEnabled() {
|
|
24860
25063
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
24861
25064
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
24862
|
-
const mod = override ? await import(override) : await import("./server-
|
|
25065
|
+
const mod = override ? await import(override) : await import("./server-y8WhCQvu.js");
|
|
24863
25066
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
24864
25067
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
24865
25068
|
if (!start) return null;
|
|
@@ -25090,7 +25293,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
|
|
|
25090
25293
|
if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
25091
25294
|
const candidate = path.join(rootReal, rel);
|
|
25092
25295
|
try {
|
|
25093
|
-
const st = await
|
|
25296
|
+
const st = await fs$1.lstat(candidate);
|
|
25094
25297
|
if (st.isSymbolicLink()) return null;
|
|
25095
25298
|
if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
25096
25299
|
} catch {}
|
|
@@ -25127,8 +25330,8 @@ async function resolveA2uiRoot() {
|
|
|
25127
25330
|
for (const dir of candidates) try {
|
|
25128
25331
|
const indexPath = path.join(dir, "index.html");
|
|
25129
25332
|
const bundlePath = path.join(dir, "a2ui.bundle.js");
|
|
25130
|
-
await
|
|
25131
|
-
await
|
|
25333
|
+
await fs$1.stat(indexPath);
|
|
25334
|
+
await fs$1.stat(bundlePath);
|
|
25132
25335
|
return dir;
|
|
25133
25336
|
} catch {}
|
|
25134
25337
|
return null;
|
|
@@ -25137,7 +25340,7 @@ async function resolveA2uiRootReal() {
|
|
|
25137
25340
|
if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
|
|
25138
25341
|
if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
|
|
25139
25342
|
const root = await resolveA2uiRoot();
|
|
25140
|
-
cachedA2uiRootReal = root ? await
|
|
25343
|
+
cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
|
|
25141
25344
|
cachedA2uiResolvedAtMs = Date.now();
|
|
25142
25345
|
resolvingA2uiRoot = null;
|
|
25143
25346
|
return cachedA2uiRootReal;
|
|
@@ -25358,13 +25561,13 @@ function normalizeBasePath(rawPath) {
|
|
|
25358
25561
|
}
|
|
25359
25562
|
async function prepareCanvasRoot(rootDir) {
|
|
25360
25563
|
await ensureDir(rootDir);
|
|
25361
|
-
const rootReal = await
|
|
25564
|
+
const rootReal = await fs$1.realpath(rootDir);
|
|
25362
25565
|
try {
|
|
25363
25566
|
const indexPath = path.join(rootReal, "index.html");
|
|
25364
|
-
await
|
|
25567
|
+
await fs$1.stat(indexPath);
|
|
25365
25568
|
} catch {
|
|
25366
25569
|
try {
|
|
25367
|
-
await
|
|
25570
|
+
await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
|
|
25368
25571
|
} catch {}
|
|
25369
25572
|
}
|
|
25370
25573
|
return rootReal;
|
|
@@ -28659,7 +28862,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
|
|
|
28659
28862
|
}
|
|
28660
28863
|
async function readLockPayload(lockPath) {
|
|
28661
28864
|
try {
|
|
28662
|
-
const raw = await
|
|
28865
|
+
const raw = await fs$1.readFile(lockPath, "utf8");
|
|
28663
28866
|
const parsed = JSON.parse(raw);
|
|
28664
28867
|
if (typeof parsed.pid !== "number") return null;
|
|
28665
28868
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -28694,11 +28897,11 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
28694
28897
|
const platform = opts.platform ?? process.platform;
|
|
28695
28898
|
const port = opts.port;
|
|
28696
28899
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
28697
|
-
await
|
|
28900
|
+
await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
|
|
28698
28901
|
const startedAt = Date.now();
|
|
28699
28902
|
let lastPayload = null;
|
|
28700
28903
|
while (Date.now() - startedAt < timeoutMs) try {
|
|
28701
|
-
const handle = await
|
|
28904
|
+
const handle = await fs$1.open(lockPath, "wx");
|
|
28702
28905
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
28703
28906
|
const payload = {
|
|
28704
28907
|
pid: process.pid,
|
|
@@ -28712,7 +28915,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
28712
28915
|
configPath,
|
|
28713
28916
|
release: async () => {
|
|
28714
28917
|
await handle.close().catch(() => void 0);
|
|
28715
|
-
await
|
|
28918
|
+
await fs$1.rm(lockPath, { force: true });
|
|
28716
28919
|
}
|
|
28717
28920
|
};
|
|
28718
28921
|
} catch (err) {
|
|
@@ -28721,7 +28924,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
28721
28924
|
const ownerPid = lastPayload?.pid;
|
|
28722
28925
|
const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
|
|
28723
28926
|
if (ownerStatus === "dead" && ownerPid) {
|
|
28724
|
-
await
|
|
28927
|
+
await fs$1.rm(lockPath, { force: true });
|
|
28725
28928
|
continue;
|
|
28726
28929
|
}
|
|
28727
28930
|
if (ownerStatus !== "alive") {
|
|
@@ -28731,13 +28934,13 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
28731
28934
|
stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
|
|
28732
28935
|
}
|
|
28733
28936
|
if (!stale) try {
|
|
28734
|
-
const st = await
|
|
28937
|
+
const st = await fs$1.stat(lockPath);
|
|
28735
28938
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
28736
28939
|
} catch {
|
|
28737
28940
|
stale = false;
|
|
28738
28941
|
}
|
|
28739
28942
|
if (stale) {
|
|
28740
|
-
await
|
|
28943
|
+
await fs$1.rm(lockPath, { force: true });
|
|
28741
28944
|
continue;
|
|
28742
28945
|
}
|
|
28743
28946
|
}
|
|
@@ -31217,29 +31420,56 @@ function createStorageRecoveryContainment(deps) {
|
|
|
31217
31420
|
//#endregion
|
|
31218
31421
|
//#region src/gateway/storage-startup-gate.ts
|
|
31219
31422
|
function createStorageStartupGate() {
|
|
31423
|
+
let phase = { phase: "ready" };
|
|
31220
31424
|
let held = false;
|
|
31221
31425
|
const waiters = /* @__PURE__ */ new Set();
|
|
31426
|
+
const wakeAll = () => {
|
|
31427
|
+
for (const wake of waiters) wake();
|
|
31428
|
+
};
|
|
31222
31429
|
return {
|
|
31223
31430
|
hold() {
|
|
31224
|
-
held
|
|
31431
|
+
if (!held && phase.phase === "ready") {
|
|
31432
|
+
held = true;
|
|
31433
|
+
phase = { phase: "starting" };
|
|
31434
|
+
}
|
|
31225
31435
|
},
|
|
31226
|
-
|
|
31227
|
-
|
|
31228
|
-
|
|
31436
|
+
markReady() {
|
|
31437
|
+
if (phase.phase === "starting") {
|
|
31438
|
+
phase = { phase: "ready" };
|
|
31439
|
+
wakeAll();
|
|
31440
|
+
}
|
|
31229
31441
|
},
|
|
31230
|
-
|
|
31231
|
-
if (
|
|
31232
|
-
|
|
31233
|
-
|
|
31234
|
-
|
|
31235
|
-
waiters.delete(wake);
|
|
31236
|
-
resolve(true);
|
|
31442
|
+
markFailed(reasonCodes) {
|
|
31443
|
+
if (phase.phase === "starting") {
|
|
31444
|
+
phase = {
|
|
31445
|
+
phase: "failed",
|
|
31446
|
+
reasonCodes: [...reasonCodes]
|
|
31237
31447
|
};
|
|
31448
|
+
wakeAll();
|
|
31449
|
+
}
|
|
31450
|
+
},
|
|
31451
|
+
markStopping() {
|
|
31452
|
+
if (phase.phase !== "stopping") {
|
|
31453
|
+
phase = { phase: "stopping" };
|
|
31454
|
+
wakeAll();
|
|
31455
|
+
}
|
|
31456
|
+
},
|
|
31457
|
+
state() {
|
|
31458
|
+
return phase;
|
|
31459
|
+
},
|
|
31460
|
+
whenSettled(timeoutMs) {
|
|
31461
|
+
if (phase.phase !== "starting" && phase.phase !== "stopping") return Promise.resolve(phase);
|
|
31462
|
+
return new Promise((resolve) => {
|
|
31238
31463
|
const timer = setTimeout(() => {
|
|
31239
31464
|
waiters.delete(wake);
|
|
31240
|
-
resolve(
|
|
31465
|
+
resolve(phase);
|
|
31241
31466
|
}, timeoutMs);
|
|
31242
31467
|
timer.unref?.();
|
|
31468
|
+
const wake = () => {
|
|
31469
|
+
clearTimeout(timer);
|
|
31470
|
+
waiters.delete(wake);
|
|
31471
|
+
resolve(phase);
|
|
31472
|
+
};
|
|
31243
31473
|
waiters.add(wake);
|
|
31244
31474
|
});
|
|
31245
31475
|
}
|
|
@@ -34901,7 +35131,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
34901
35131
|
const lease = createPreservationLeaseService();
|
|
34902
35132
|
setActivePreservationLease(lease);
|
|
34903
35133
|
let supervisorClosed = false;
|
|
34904
|
-
const transcriptFingerprint = async (filePath) => createHash("sha256").update(await
|
|
35134
|
+
const transcriptFingerprint = async (filePath) => createHash("sha256").update(await fs$1.readFile(filePath)).digest("hex");
|
|
34905
35135
|
const requireCandidateRuntime = () => {
|
|
34906
35136
|
const candidate = candidateOwner?.candidate.runtime;
|
|
34907
35137
|
if (!candidate || candidateOwner?.state === "closed") throw new Error("recovery candidate runtime is not ready");
|
|
@@ -35184,9 +35414,14 @@ async function bootGatewayServer(port, opts) {
|
|
|
35184
35414
|
};
|
|
35185
35415
|
fencedStorageSupervisorStart = async () => {
|
|
35186
35416
|
await supervisor.start();
|
|
35187
|
-
|
|
35417
|
+
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35418
|
+
await storageSupervisorStop?.();
|
|
35419
|
+
storageSupervisorStop = null;
|
|
35420
|
+
throw new FatalConfiguredStorageStartError();
|
|
35421
|
+
}
|
|
35422
|
+
storageStartup.markReady();
|
|
35188
35423
|
try {
|
|
35189
|
-
const { installIncidentAsset } = await import("./incident-install-
|
|
35424
|
+
const { installIncidentAsset } = await import("./incident-install-B626HvYY.js");
|
|
35190
35425
|
await installIncidentAsset({
|
|
35191
35426
|
stateDir: resolveStateDir(),
|
|
35192
35427
|
loadIndexRecord: async () => {
|
|
@@ -35201,7 +35436,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35201
35436
|
if (supervisor.getState() === "healthy") {
|
|
35202
35437
|
const runtime = getConfiguredSessionStorageRuntime()?.runtime;
|
|
35203
35438
|
if (runtime?.conversation) try {
|
|
35204
|
-
const { runLiveRepair } = await import("./live-repair-
|
|
35439
|
+
const { runLiveRepair } = await import("./live-repair-BF2elTcB.js");
|
|
35205
35440
|
await runLiveRepair({
|
|
35206
35441
|
stateDir: resolveStateDir(),
|
|
35207
35442
|
conversationStore: runtime.conversation,
|
|
@@ -35217,11 +35452,6 @@ async function bootGatewayServer(port, opts) {
|
|
|
35217
35452
|
noteStorageRestartRequired("session-run-startup-recovery");
|
|
35218
35453
|
noteStorageRestartRequired("shutdown-run-reconciliation");
|
|
35219
35454
|
}
|
|
35220
|
-
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35221
|
-
await storageSupervisorStop?.();
|
|
35222
|
-
storageSupervisorStop = null;
|
|
35223
|
-
throw new FatalConfiguredStorageStartError();
|
|
35224
|
-
}
|
|
35225
35455
|
};
|
|
35226
35456
|
if (params.bootImmediately) await fencedStorageSupervisorStart();
|
|
35227
35457
|
else storageStartup.hold();
|
|
@@ -35576,14 +35806,14 @@ async function bootGatewayServer(port, opts) {
|
|
|
35576
35806
|
let sessionConsumerClaimSweepCancelled = false;
|
|
35577
35807
|
let sessionConsumerClaimSweepBoot = null;
|
|
35578
35808
|
if (!minimalTestGateway) sessionConsumerClaimSweepBoot = (async () => {
|
|
35579
|
-
const { getConfiguredSessionStorageRuntime } = await import("./config-
|
|
35580
|
-
const { loadPluginManifestRegistry } = await import("./config-
|
|
35581
|
-
const { getActivePluginRegistry } = await import("./config-
|
|
35582
|
-
const { deriveGatewaySweepConsumers, runSessionConsumerSweepTick, startSessionConsumerSweepSchedule } = await import("./session-consumer-claim-sweep-
|
|
35809
|
+
const { getConfiguredSessionStorageRuntime } = await import("./config-BPACL-n5.js").then((n) => n.Hn);
|
|
35810
|
+
const { loadPluginManifestRegistry } = await import("./config-BPACL-n5.js").then((n) => n.ut);
|
|
35811
|
+
const { getActivePluginRegistry } = await import("./config-BPACL-n5.js").then((n) => n.qt);
|
|
35812
|
+
const { deriveGatewaySweepConsumers, runSessionConsumerSweepTick, startSessionConsumerSweepSchedule } = await import("./session-consumer-claim-sweep-eBEe4crh.js");
|
|
35583
35813
|
const sweepLog = log.child("session-consumer-claim-sweep");
|
|
35584
35814
|
const { createDiagnosticRingBuffer } = await import("./session-consumer-diagnostics-BUKxP8bu.js");
|
|
35585
35815
|
const diagnostics = createDiagnosticRingBuffer();
|
|
35586
|
-
const { setDiagnostics } = await import("./sessions-
|
|
35816
|
+
const { setDiagnostics } = await import("./sessions-DFDrcshi.js").then((n) => n.n);
|
|
35587
35817
|
if (sessionConsumerClaimSweepCancelled) return;
|
|
35588
35818
|
setDiagnostics(diagnostics);
|
|
35589
35819
|
const lastKnownEnabledState = /* @__PURE__ */ new Map();
|
|
@@ -35622,7 +35852,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35622
35852
|
lastKnownEnabledState,
|
|
35623
35853
|
cfg: loadConfig()
|
|
35624
35854
|
});
|
|
35625
|
-
const { setLastSweepTimestamp } = await import("./sessions-
|
|
35855
|
+
const { setLastSweepTimestamp } = await import("./sessions-DFDrcshi.js").then((n) => n.n);
|
|
35626
35856
|
setLastSweepTimestamp(Date.now());
|
|
35627
35857
|
} catch (err) {
|
|
35628
35858
|
sweepLog.warn(`session consumer-claim sweep failed: ${String(err)}`);
|
|
@@ -35643,8 +35873,8 @@ async function bootGatewayServer(port, opts) {
|
|
|
35643
35873
|
id: "task-dispatch",
|
|
35644
35874
|
prepare: () => {
|
|
35645
35875
|
taskPipelineBoot = (async () => {
|
|
35646
|
-
const { getConfiguredSessionStorageRuntime } = await import("./config-
|
|
35647
|
-
const { startTaskPipeline } = await import("./task-pipeline-boot-
|
|
35876
|
+
const { getConfiguredSessionStorageRuntime } = await import("./config-BPACL-n5.js").then((n) => n.Hn);
|
|
35877
|
+
const { startTaskPipeline } = await import("./task-pipeline-boot-CM-3tH09.js");
|
|
35648
35878
|
const pipeline = startTaskPipeline({
|
|
35649
35879
|
getConfigured: getConfiguredSessionStorageRuntime,
|
|
35650
35880
|
cfg: cfgAtStart,
|
|
@@ -35813,7 +36043,17 @@ async function bootGatewayServer(port, opts) {
|
|
|
35813
36043
|
});
|
|
35814
36044
|
try {
|
|
35815
36045
|
recoveryRuntime = await Promise.race([ownInstalled, recoveryStarted]) ?? null;
|
|
36046
|
+
if (storageStartup.state().phase === "starting") {
|
|
36047
|
+
let codes = [];
|
|
36048
|
+
try {
|
|
36049
|
+
codes = recoveryRuntime?.snapshot().reasonCodes ?? [];
|
|
36050
|
+
} catch {
|
|
36051
|
+
codes = [];
|
|
36052
|
+
}
|
|
36053
|
+
storageStartup.markFailed(codes.length > 0 ? codes : ["recovery_start_failed"]);
|
|
36054
|
+
}
|
|
35816
36055
|
} catch (err) {
|
|
36056
|
+
if (storageStartup.state().phase === "starting") storageStartup.markFailed(["recovery_start_failed"]);
|
|
35817
36057
|
if (skillsRefreshTimer) {
|
|
35818
36058
|
clearTimeout(skillsRefreshTimer);
|
|
35819
36059
|
skillsRefreshTimer = null;
|
|
@@ -36024,6 +36264,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
36024
36264
|
startDiagnosticHeartbeat();
|
|
36025
36265
|
}
|
|
36026
36266
|
return { close: async (opts) => {
|
|
36267
|
+
storageStartup.markStopping();
|
|
36027
36268
|
recoveryAdmission.closeAdmission();
|
|
36028
36269
|
await runGlobalGatewayStopSafely({
|
|
36029
36270
|
event: { reason: opts?.reason ?? "gateway stopping" },
|