wednesdayai 0.4.12-dev.719 → 0.4.12-dev.721
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-BYoOiK6T.js → acp-cli-BWtNp40J.js} +2 -2
- package/dist/{acp-cli-dvFCSROw.js → acp-cli-DXVeP5by.js} +2 -2
- package/dist/{agent-scope-DxKPMu8w.js → agent-scope-cbxkoURo.js} +3 -3
- package/dist/{agent-turn-enqueue-DEStltEg.js → agent-turn-enqueue-CsHMHVsf.js} +4 -4
- package/dist/{agent-turn-enqueue-DzWOPhgy.js → agent-turn-enqueue-QcHb-Wlq.js} +4 -4
- package/dist/{agent-turn-execute-CzOC4mHw.js → agent-turn-execute-pkDSwyuf.js} +41 -30
- package/dist/{agent-turn-recovery-adapter-DnvjgbK0.js → agent-turn-recovery-adapter-CL4IrGUo.js} +1 -1
- package/dist/{agent-turn-recovery-adapter-CdLD3DuI.js → agent-turn-recovery-adapter-Dw5-XbMI.js} +1 -1
- package/dist/{agent-turn-runner-BEvwtTis.js → agent-turn-runner-CUoz_Fkl.js} +1 -1
- package/dist/{agent-turn-runner-BsxQBFRB.js → agent-turn-runner-CXf6g-6f.js} +5 -5
- package/dist/{agent-turn-runner-DpICdamt.js → agent-turn-runner-DHNZdQJB.js} +3 -3
- package/dist/{agent-turn-runner-C1u8sVfA.js → agent-turn-runner-DoHGgNPh.js} +1 -1
- package/dist/{agents-C61lzbyw.js → agents-TOaKn6gk.js} +5 -5
- package/dist/{agents.config-DAh5Ah1J.js → agents.config-96ueVlOH.js} +1 -1
- package/dist/{agents.config-BcD-ZJ0N.js → agents.config-DWMgN4qH.js} +1 -1
- package/dist/{api-key-rotation-Br7_jaAV.js → api-key-rotation-BMnyfyGD.js} +2 -2
- package/dist/{artifacts-QHme-vnS.js → artifacts-DUhYSSmK.js} +4 -4
- package/dist/{audio-preflight-CehYz7wU.js → audio-preflight-CO3ozqOb.js} +6 -6
- package/dist/{audio-preflight-B_5sTSyb.js → audio-preflight-ifCgpG3c.js} +27 -27
- package/dist/{audio-preflight-uatGs8bC.js → audio-preflight-p84ph4C7.js} +6 -6
- package/dist/{audio-transcription-runner-BvZFFknx.js → audio-transcription-runner-CsQR8LpS.js} +1 -1
- package/dist/{audio-transcription-runner-CJ8YdMv-.js → audio-transcription-runner-Gr8vN3AS.js} +1 -1
- package/dist/{audio-transcription-runner-XFfvRPXl.js → audio-transcription-runner-ipSQoPp8.js} +11 -11
- package/dist/{audit-UMAK8rQC.js → audit-8O6sjQPv.js} +6 -6
- package/dist/{audit-C0WHA5BX.js → audit-CzREkjwC.js} +6 -6
- package/dist/{auth-choice-CHzuLxTp.js → auth-choice-DtRePxUx.js} +2 -2
- package/dist/{auth-choice-BHU_G3if.js → auth-choice-s0pWvSbn.js} +2 -2
- package/dist/{banner-BAtbMrrp.js → banner-BwICuMvl.js} +1 -1
- package/dist/{browser-cli-DvjIut0z.js → browser-cli-Ci3F1b7y.js} +3 -3
- package/dist/{browser-cli-FTpdxTqL.js → browser-cli-NV-pdj3F.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +58 -58
- package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
- package/dist/bundled/command-logger/handler.js +2 -2
- package/dist/bundled/session-journal/handler.js +58 -58
- package/dist/bundled/session-memory/handler.js +58 -58
- package/dist/{call-Cl6Q0T5z.js → call-DFhcVchO.js} +1 -1
- package/dist/{call-BIVg1gmJ.js → call-PE59cW0J.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-DNq7LYjU.js → channel-activity-BJHm_pDV.js} +3 -3
- package/dist/{channel-options-CsgHOF5l.js → channel-options-BmfLwNE6.js} +1 -1
- package/dist/{channel-options-DRnowLFK.js → channel-options-CurDeT7Z.js} +1 -1
- package/dist/{channels-cli-Cn1IUfM3.js → channels-cli-CZqlXMjZ.js} +28 -28
- package/dist/{channels-cli-BN4oTmr6.js → channels-cli-D2PB80Ed.js} +28 -28
- package/dist/{chrome-FHxGdLnd.js → chrome-DTJprCGv.js} +15 -15
- package/dist/{chunk-BhntPUH_.js → chunk-eNEsWhab.js} +3 -3
- package/dist/{clawbot-cli-C-wEI2Wc.js → clawbot-cli-BL_gdm6D.js} +5 -5
- package/dist/{clawbot-cli-DWWHmqlt.js → clawbot-cli-C91sysrP.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-CFIRmNaZ.js → cli-DJUeQG1g.js} +22 -22
- package/dist/{cli-BGAvAUiU.js → cli-YKA_HQlq.js} +22 -22
- package/dist/{client-BbpMX08n.js → client-D7IpaFCL.js} +2 -1
- package/dist/{client-BMkNNUux.js → client-DN-SMVBn.js} +2 -1
- package/dist/{client-profiles-DP8BWND2.js → client-profiles-DEoACLX5.js} +1 -1
- package/dist/{client-profiles-BNQu4_Z_.js → client-profiles-soWN7eGC.js} +1 -1
- package/dist/{command-queue-zXu22yak.js → command-queue-B3_VRNOr.js} +8 -2
- package/dist/{command-queue-CmpLmuvI.js → command-queue-Bjb4nYXi.js} +8 -2
- package/dist/{command-queue-DtybAhHH.js → command-queue-Bn2PHabT.js} +8 -2
- package/dist/{command-queue-SzKgkaS6.js → command-queue-smA8JaO_.js} +9 -3
- package/dist/{command-registry-DBfEAwIt.js → command-registry-Dok3-b8T.js} +12 -12
- package/dist/{command-secret-targets-DtDJB3vv.js → command-secret-targets-BAFcvtYe.js} +2 -2
- package/dist/{command-secret-targets-B54n8F_3.js → command-secret-targets-CJ1czw_Q.js} +2 -2
- package/dist/{commands-registry-DC0fovy_.js → commands-registry-DdQg21ct.js} +2 -2
- package/dist/{completion-cli-BfRsix3J.js → completion-cli-Ctg9QIDB.js} +2 -2
- package/dist/{completion-cli-L5YP0rxV.js → completion-cli-DzgbSYNf.js} +1 -1
- package/dist/{config-cli-dgRsXbD3.js → config-cli-BUrIABmo.js} +1 -1
- package/dist/{config-cli-D4Gxd0pm.js → config-cli-Bp3NVXJ8.js} +1 -1
- package/dist/config.js +9 -9
- package/dist/{configure-DtRyMLwO.js → configure-CAdfZJx3.js} +6 -6
- package/dist/{configure-BN-JNKf7.js → configure-CFjjPHas.js} +6 -6
- package/dist/{cron-cli-_Mwn7mzJ.js → cron-cli-BuVrA_FU.js} +3 -3
- package/dist/{cron-cli-BuO3qskK.js → cron-cli-CEOGOJUA.js} +3 -3
- package/dist/{daemon-cli-YmPcKhvo.js → daemon-cli-BTld-maF.js} +2 -2
- package/dist/{daemon-cli-CiPY543O.js → daemon-cli-D874Hxry.js} +2 -2
- package/dist/daemon-cli.js +2 -1
- package/dist/{deliver-Aw7d03gL.js → deliver-BLp1Q7uO.js} +1 -1
- package/dist/{deliver-CXqNQ8yi.js → deliver-CVWbwPkb.js} +24 -24
- package/dist/{deliver-D37woOwV.js → deliver-rLn-23ud.js} +1 -1
- package/dist/{devices-cli-HXNfviPB.js → devices-cli-CVrx_5o-.js} +2 -2
- package/dist/{devices-cli-CxSEOWZs.js → devices-cli-PIMtgiCQ.js} +2 -2
- package/dist/{diagnostic-Cid_Tw67.js → diagnostic-85mWzvQi.js} +1 -1
- package/dist/{diagnostic-Bbg-zObh.js → diagnostic-DI-K8155.js} +5 -5
- package/dist/{diagnostic-lG00b_zg.js → diagnostic-u64kcpDQ.js} +1 -1
- package/dist/{dm-policy-shared-BJNH9gNN.js → dm-policy-shared-CV1uWhMc.js} +1 -1
- package/dist/{doctor-completion-ChF4A40n.js → doctor-completion-Cfe2nTpN.js} +1 -1
- package/dist/{doctor-completion-DIFx6d6S.js → doctor-completion-CpGKbe63.js} +1 -1
- package/dist/entry.js +2 -2
- package/dist/{exec-approvals-cli-BAJ3sxzP.js → exec-approvals-cli-BShAvkW4.js} +4 -4
- package/dist/{exec-approvals-cli-DIUYxvM0.js → exec-approvals-cli-CABBuuEP.js} +4 -4
- package/dist/extensionAPI.js +3 -3
- package/dist/{fetch-BoHKSk-O.js → fetch-BzXaK9px.js} +8 -8
- package/dist/{fetch-guard-TJjLK0FV.js → fetch-guard-0mkjBgri.js} +3 -3
- package/dist/{frontmatter-saAwiKEb.js → frontmatter-PMByWrfP.js} +5 -5
- package/dist/{fs-safe-LRpYbPaA.js → fs-safe-DwICJjkN.js} +4 -4
- package/dist/{gateway-cli-BJ9wa3Hc.js → gateway-cli-3YUOWIal.js} +415 -169
- package/dist/{gateway-cli-CVnksdlt.js → gateway-cli-CDCwUJ0Z.js} +415 -169
- package/dist/{gateway-rpc-DNsG0xAN.js → gateway-rpc-Bs4EcgS4.js} +1 -1
- package/dist/{gateway-rpc-BeRn5nUX.js → gateway-rpc-DOfMq6W1.js} +1 -1
- package/dist/{github-copilot-token-zGOMIGSh.js → github-copilot-token-WSjo05vB.js} +7 -7
- package/dist/{health-Cxv6ou16.js → health-B5jHSu9i.js} +3 -3
- package/dist/{health-Q4hCJ8O2.js → health-BEgp6PEF.js} +3 -3
- package/dist/{hooks-cli-ChZY2urb.js → hooks-cli-D1_UuIh4.js} +24 -24
- package/dist/{hooks-cli-DOHX--ha.js → hooks-cli-Dy5LfGKt.js} +24 -24
- package/dist/{image-ops-D_fm2PuR.js → image-ops-O8pHxo7i.js} +1 -1
- package/dist/index.js +26 -26
- package/dist/{installs-Du8n8Do9.js → installs-4lGALZOo.js} +1 -1
- package/dist/{installs-78zhoWuO.js → installs-puN7yKHH.js} +1 -1
- package/dist/{ir-C4MMLUJr.js → ir-fzpdYPWw.js} +5 -5
- package/dist/{legacy-names-vLJrYADD.js → legacy-names-CLlrMq8r.js} +1 -1
- package/dist/llm-slug-generator.js +58 -58
- package/dist/{logger-a0-zAY5a.js → logger-DNehzD_s.js} +1 -1
- package/dist/{logs-cli-BrL9UDGB.js → logs-cli-CrUZySOS.js} +3 -3
- package/dist/{logs-cli-BdR6-Q3U.js → logs-cli-CwN6ZrMz.js} +3 -3
- package/dist/{manager-DdA_cy40.js → manager-DH-MILAU.js} +12 -12
- package/dist/{markdown-tables-Dd7jV1JF.js → markdown-tables-UWspJNAH.js} +2 -2
- package/dist/{memory-cli-DZyEfnsr.js → memory-cli-CqS6VXEu.js} +1 -1
- package/dist/{memory-cli-D_89Y9nb.js → memory-cli-DVqLwNhN.js} +1 -1
- package/dist/{model-selection-CdZITU0t.js → model-selection-9qbqwsOT.js} +86 -86
- package/dist/{models-BbhdUY5g.js → models-Kq9m-LfF.js} +3 -3
- package/dist/{models-cli-BekoSHw2.js → models-cli-B4wVcMjJ.js} +23 -23
- package/dist/{models-cli-BmL2dpSq.js → models-cli-dyUiDMqX.js} +22 -22
- package/dist/{node-cli-BVgH-DXq.js → node-cli-DGi3DELS.js} +4 -4
- package/dist/{node-cli-BTywy8AL.js → node-cli-Dm9lnwVF.js} +4 -4
- package/dist/{node-command-policy-B9A0wAU6.js → node-command-policy-6yjbNtx-.js} +1 -1
- package/dist/{node-command-policy-wwMY6dIH.js → node-command-policy-C1Fy9dcA.js} +1 -1
- package/dist/{nodes-cli-OzWTp207.js → nodes-cli-Bp2RePXd.js} +3 -3
- package/dist/{nodes-cli-D9vz6Yaa.js → nodes-cli-CLzaLC3L.js} +3 -3
- package/dist/{npm-pack-install-opyKYSmS.js → npm-pack-install-BgBpeTJk.js} +1 -1
- package/dist/{npm-pack-install-B-cOWuiF.js → npm-pack-install-Dlm0MIZy.js} +1 -1
- package/dist/{npm-resolution-6WKQ6nBu.js → npm-resolution-DWE5khjC.js} +2 -2
- package/dist/{npm-resolution-51BBOWpQ.js → npm-resolution-Ey8dK3VI.js} +2 -2
- package/dist/{onboard-CnRiqboN.js → onboard-CneU0GqJ.js} +3 -3
- package/dist/{onboard-channels-DAwHVQ1P.js → onboard-channels-B1oC1rop.js} +3 -3
- package/dist/{onboard-channels-DYRTySsa.js → onboard-channels-Bm2XVN3C.js} +3 -3
- package/dist/{onboard-helpers-ziqfw3UR.js → onboard-helpers-DLBTH9b_.js} +1 -1
- package/dist/{onboard-helpers-BgbRKH4z.js → onboard-helpers-DNbkQX5v.js} +1 -1
- package/dist/{onboard-remote-BsnRgDQj.js → onboard-remote-DUy7Ew-K.js} +1 -1
- package/dist/{onboard-remote-NW_cPnaV.js → onboard-remote-DsBkNMeO.js} +1 -1
- package/dist/{onboard-skills-DwbAJ4nt.js → onboard-skills-D3L4yX2A.js} +1 -1
- package/dist/{onboard-skills-DCYqOaTS.js → onboard-skills-DX_x-MfC.js} +1 -1
- package/dist/{onboard-Cj-sLY2K.js → onboard-trNO818c.js} +3 -3
- package/dist/{onboarding-CujUbWy2.js → onboarding-BKoaWOxQ.js} +7 -7
- package/dist/{onboarding-DidWWI3X.js → onboarding-R2m4j7Dp.js} +7 -7
- package/dist/{onboarding.finalize-CDE1nAu8.js → onboarding.finalize-B6K3hYJZ.js} +28 -28
- package/dist/{onboarding.finalize-DTqRxVZH.js → onboarding.finalize-C0X_xaHh.js} +27 -27
- package/dist/{onboarding.gateway-config-DOvEzkIo.js → onboarding.gateway-config-CFRbyVyW.js} +4 -4
- package/dist/{onboarding.gateway-config-SrBY4Yem.js → onboarding.gateway-config-DKLUe3Ul.js} +4 -4
- package/dist/{operator-commands-Ct0WXISe.js → operator-commands-BmGo9Ngv.js} +2 -2
- package/dist/{operator-commands-Bfd55UfE.js → operator-commands-EsKoI4yV.js} +2 -2
- package/dist/{outbound-attachment-CqtMGpsJ.js → outbound-attachment-DVKqk30B.js} +2 -2
- package/dist/{outbound-message-hooks-RBQbGzGm.js → outbound-message-hooks-S_VhlJs3.js} +4 -4
- package/dist/{path-alias-guards-Zj-NwKjV.js → path-alias-guards-Cd5yHmTq.js} +1 -1
- package/dist/{paths-C6TxBCvO.js → paths-Cvc9EM8Y.js} +5 -5
- package/dist/{pi-embedded-B6sr5IdC.js → pi-embedded-B7d9LrI1.js} +16 -4
- package/dist/{pi-embedded-helpers-BYLOFsUc.js → pi-embedded-helpers-5JApWu7A.js} +24 -24
- package/dist/{pi-embedded-helpers-BAjtRn7m.js → pi-embedded-helpers-C9XqX-Jq.js} +1 -1
- package/dist/{pi-embedded-helpers-CPorV-Mk.js → pi-embedded-helpers-DIUrv2Ua.js} +1 -1
- package/dist/{pi-embedded-B9bOSjfE.js → pi-embedded-maiK_yr9.js} +183 -171
- package/dist/{pi-embedded-recovery-adapter-Cs1EJElw.js → pi-embedded-recovery-adapter-8xq2SINa.js} +8 -8
- package/dist/{pi-embedded-recovery-adapter-B8Goyik3.js → pi-embedded-recovery-adapter-BHTdeEKa.js} +8 -8
- package/dist/{pi-embedded-recovery-adapter-swbNIWgT.js → pi-embedded-recovery-adapter-DPjgp8q4.js} +2 -2
- package/dist/{pi-embedded-recovery-adapter-ZPyX9YC1.js → pi-embedded-recovery-adapter-DytV4fjp.js} +2 -2
- package/dist/{pi-embedded-utils-CT_f_S3Y.js → pi-embedded-utils-BV_Dtzrw.js} +1 -1
- package/dist/{pi-embedded-utils-lp-U3XQ9.js → pi-embedded-utils-BetZbS6i.js} +1 -1
- package/dist/{pi-embedded-utils-DOtaZ7KV.js → pi-embedded-utils-kHMmP2Xh.js} +3 -3
- package/dist/{pi-model-discovery-B9KKtGuw.js → pi-model-discovery-CsC6yTDG.js} +7 -7
- package/dist/{pi-tools.policy-r9H_A-NQ.js → pi-tools.policy-B7YiM0PW.js} +1 -1
- package/dist/{plugin-registry-CwGfmKsn.js → plugin-registry-AEemJBCl.js} +1 -1
- package/dist/{plugin-registry-EHKfjAoe.js → plugin-registry-BjZ0q-dW.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-BLF4nZUv.js → agent-scope-BYp_CjdU.js} +2 -2
- package/dist/plugin-sdk/{agent-turn-execute-BVPDW02i.js → agent-turn-execute-BRJa_EBt.js} +12 -12
- package/dist/plugin-sdk/agent-turn-execute-lFEMcNl2.js +61 -0
- package/dist/plugin-sdk/{agent-turn-runner-DDIT9POj.js → agent-turn-runner-CqIBwx4o.js} +3 -3
- package/dist/plugin-sdk/agent-turn-runner-LfHz7Qc1.js +11 -0
- package/dist/plugin-sdk/{agent-turn-runner-DjK-LdTA.js → agent-turn-runner-nXQCZaSU.js} +6 -6
- package/dist/plugin-sdk/{api-key-rotation-XDUKz2gd.js → api-key-rotation-CDNf_4cI.js} +2 -2
- package/dist/plugin-sdk/{artifacts-HAYpGlG1.js → artifacts-BMLMg3MG.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-Bi8RI9zM.js → audio-preflight-BVO3xBbT.js} +5 -5
- package/dist/plugin-sdk/{audio-preflight-BS29OWk3.js → audio-preflight-BmKL6FNP.js} +2 -2
- package/dist/plugin-sdk/audio-preflight-DlGohKMs.js +28 -0
- package/dist/plugin-sdk/{audio-transcription-runner-CGgNZVZv.js → audio-transcription-runner-DXiOiQMw.js} +1 -1
- package/dist/plugin-sdk/{audio-transcription-runner-BNafitZj.js → audio-transcription-runner-TBjJv_mZ.js} +10 -10
- package/dist/plugin-sdk/{auth-profiles-CCJQoedi.js → auth-profiles-DHZjW8Vk.js} +5 -5
- package/dist/plugin-sdk/{channel-activity-BKwRzYJb.js → channel-activity-Dr4PYej7.js} +3 -3
- package/dist/plugin-sdk/{chrome-D0eLSqkP.js → chrome-BDy1zYAr.js} +4 -4
- package/dist/plugin-sdk/{chrome-CT_6RvJg.js → chrome-DDIL8pIX.js} +8 -8
- package/dist/plugin-sdk/{chunk-DI-5pBck.js → chunk-BTSnO1wn.js} +6 -6
- package/dist/plugin-sdk/{chunk-CDvvv9SU.js → chunk-DGQdf0JN.js} +3 -3
- package/dist/plugin-sdk/{command-detection-WNHSrul-.js → command-detection-O-osZdkd.js} +99 -87
- package/dist/plugin-sdk/command-queue-BYvVRYdf.js +13 -0
- package/dist/plugin-sdk/{command-queue-DH8k55DC.js → command-queue-Cveon04f.js} +9 -3
- package/dist/plugin-sdk/{command-queue-CHiQj9Ji.js → command-queue-d5XPm8KU.js} +7 -2
- package/dist/plugin-sdk/{commands-registry-Do_g2It_.js → commands-registry-8sy0wsK_.js} +6 -6
- package/dist/plugin-sdk/{commands-registry-DpLk11E7.js → commands-registry-N6f_lsxF.js} +2 -2
- package/dist/plugin-sdk/{config-CQNfmIC8.js → config-Biusjzx-.js} +7 -7
- package/dist/plugin-sdk/{deliver-_UyigkEK.js → deliver-BD3gpFAY.js} +1 -1
- package/dist/plugin-sdk/{deliver-L6eu6zyG.js → deliver-BgHA8c9F.js} +11 -11
- package/dist/plugin-sdk/deliver-DBCz1GqU.js +32 -0
- package/dist/plugin-sdk/{deliver-DuDcszu1.js → deliver-DZoYhDxC.js} +3 -3
- package/dist/plugin-sdk/{diagnostic-Dk57KVjE.js → diagnostic-BhLorIrS.js} +1 -1
- package/dist/plugin-sdk/{diagnostic-DfxuMWHd.js → diagnostic-Bni_8VyY.js} +7 -7
- package/dist/plugin-sdk/{diagnostic-C7lPoqyv.js → diagnostic-D6hSjxiv.js} +5 -5
- package/dist/plugin-sdk/{fetch-guard-CZT8FU1i.js → fetch-guard-C1a1KfEb.js} +3 -3
- package/dist/plugin-sdk/{fs-safe-B0JgGdXa.js → fs-safe-CbZ6uRVv.js} +3 -3
- package/dist/plugin-sdk/{hook-runner-global-WRI53ibi.js → hook-runner-global-BvxlnAyu.js} +3 -3
- package/dist/plugin-sdk/{image-ops-kuILYHZv.js → image-ops-DY_SZfXk.js} +1 -1
- package/dist/plugin-sdk/index.js +54 -54
- package/dist/plugin-sdk/{ir-Bm7oqkwT.js → ir-BNohi6ZW.js} +5 -5
- package/dist/plugin-sdk/{local-roots-D-CHzVr1.js → local-roots-Bm7nDW20.js} +7 -7
- package/dist/plugin-sdk/{logger-BSK-0Yjx.js → logger-D6KsqbNW.js} +1 -1
- package/dist/plugin-sdk/{manager-D2jffdjH.js → manager-B_vK9MbM.js} +8 -8
- package/dist/plugin-sdk/manager-ByaW_O4Y.js +16 -0
- package/dist/plugin-sdk/{markdown-tables-DIWQQ2W1.js → markdown-tables-G4vK24xc.js} +2 -2
- package/dist/plugin-sdk/markdown-tables-J4hZ7eWU.js +10 -0
- package/dist/plugin-sdk/{outbound-attachment-CtKKNyms.js → outbound-attachment-Cw7T2Mrt.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-CHfCMaeX.js → path-alias-guards-CVybi_GQ.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-BRymkO_1.js → pi-embedded-helpers-B_jgacW8.js} +11 -11
- package/dist/plugin-sdk/{pi-embedded-helpers-CELD3Ns3.js → pi-embedded-helpers-D74AHWBs.js} +3 -3
- package/dist/plugin-sdk/{pi-embedded-utils-BHmc3RVS.js → pi-embedded-utils-DOXEm_H8.js} +3 -3
- package/dist/plugin-sdk/{pi-embedded-utils-AFQ-oCFM.js → pi-embedded-utils-DQaOun1y.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-6BBajZds.js → pi-model-discovery-DWUrLRLg.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-4X7_2_nP.js → pi-model-discovery-DWw1ReX-.js} +6 -6
- package/dist/plugin-sdk/provider-dispatcher-CC6PgYPM.js +61 -0
- package/dist/plugin-sdk/{provider-dispatcher-D7UK3G8K.js → provider-dispatcher-NB8R-FyS.js} +12 -12
- package/dist/plugin-sdk/provider-image-B_dJDOl5.js +22 -0
- package/dist/plugin-sdk/{provider-image-DBye3Ln5.js → provider-image-CEQrHWYz.js} +5 -5
- package/dist/plugin-sdk/{provider-image-CbZOYl0b.js → provider-image-Cy9HRMER.js} +1 -1
- package/dist/plugin-sdk/{provider-image-Bumd1GBG.js → provider-image-g3vmjlkZ.js} +4 -4
- package/dist/plugin-sdk/provider-media-understanding.js +7 -7
- package/dist/plugin-sdk/{proxy-DJ2nskkh.js → proxy-BWc9guJs.js} +1 -1
- package/dist/plugin-sdk/proxy-DwbYzxBy.js +7 -0
- package/dist/plugin-sdk/{proxy-fetch-CuQpjpkI.js → proxy-fetch-BYkGxQnh.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-BJrhPMHJ.js → pw-ai-DQv6Xhce.js} +10 -10
- package/dist/plugin-sdk/{pw-ai-hVucoF_I.js → pw-ai-DlM8D_uP.js} +1 -1
- package/dist/plugin-sdk/{qmd-manager-DhW_frb3.js → qmd-manager-CpV0SFnY.js} +8 -8
- package/dist/plugin-sdk/{query-expansion-NpBeKA8F.js → query-expansion-CwmHvvV_.js} +3 -3
- package/dist/plugin-sdk/{recorder-DdbAQ2HO.js → recorder-BXZMRSjO.js} +4 -4
- package/dist/plugin-sdk/{redact-CUjmZn2Y.js → redact-C88Ryyfs.js} +1 -1
- package/dist/plugin-sdk/replies-B9uDLFOE.js +25 -0
- package/dist/plugin-sdk/{replies-Dw3jvqpR.js → replies-l2hZAzbt.js} +4 -4
- package/dist/plugin-sdk/{reply-directives-BS8Ge06Z.js → reply-directives-BwxzQXmX.js} +2 -2
- package/dist/plugin-sdk/reply-prefix-BQMEQam1.js +7 -0
- package/dist/plugin-sdk/{reply-prefix-Dt1hESHJ.js → reply-prefix-qLQRxqrf.js} +1 -1
- package/dist/plugin-sdk/{resolve-route-BpLuk-wC.js → resolve-route-50KoArP9.js} +4 -4
- package/dist/plugin-sdk/{resolve-route-DiQTL1qI.js → resolve-route-6v1HVvWk.js} +6 -6
- package/dist/plugin-sdk/{runs-CPWQbljV.js → runs-B4G4Txj3.js} +3 -3
- package/dist/plugin-sdk/runs-BQhYekhr.js +25 -0
- package/dist/plugin-sdk/{runs-D6fAvItC.js → runs-CiohhBb8.js} +7 -7
- package/dist/plugin-sdk/{runs-B3DB63tB.js → runs-Dzlj-BO5.js} +5 -5
- package/dist/plugin-sdk/{send-CpXGZgrS.js → send-BMSqETcU.js} +6 -6
- package/dist/plugin-sdk/send-CeWqZTK0.js +23 -0
- package/dist/plugin-sdk/{send-BDwTyH6I.js → send-Cv2CGnsK.js} +8 -8
- package/dist/plugin-sdk/{send-Ce2XBaKF.js → send-Cx6gHjnA.js} +6 -6
- package/dist/plugin-sdk/send-CzcKgBBf.js +25 -0
- package/dist/plugin-sdk/{send-R0HB1-l-.js → send-DG4MQPPm.js} +13 -13
- package/dist/plugin-sdk/{send-C28pxKhC.js → send-DHNKlQPv.js} +2 -2
- package/dist/plugin-sdk/{send-CE_6VOiQ.js → send-DM6RpDCL.js} +7 -7
- package/dist/plugin-sdk/{send-GMYUhBtJ.js → send-DO0C4Uva.js} +19 -19
- package/dist/plugin-sdk/send-Dvna5ey-.js +27 -0
- package/dist/plugin-sdk/{send-DE9YP1gQ.js → send-Tg5PT6ci.js} +1 -1
- package/dist/plugin-sdk/send-xPV0QIjh.js +24 -0
- package/dist/plugin-sdk/{session-meta-BU2WXD0N.js → session-meta-CiqJP0pO.js} +2 -2
- package/dist/plugin-sdk/session-meta-n4SCcAbJ.js +10 -0
- package/dist/plugin-sdk/skill-commands-BOV3NIbU.js +14 -0
- package/dist/plugin-sdk/{skill-commands-BYfWIPfV.js → skill-commands-CE_SkRQk.js} +5 -5
- package/dist/plugin-sdk/{skills-BuJjEYto.js → skills-CjW6uGTa.js} +6 -6
- package/dist/plugin-sdk/src/auto-reply/reply/agent-runner-execution.d.ts +2 -0
- package/dist/plugin-sdk/src/config/talk.d.ts +0 -4
- package/dist/plugin-sdk/src/gateway/storage-startup-gate.d.ts +28 -8
- package/dist/plugin-sdk/src/process/command-queue.d.ts +3 -0
- package/dist/plugin-sdk/src/talk/realtime-transcription-provider-types.d.ts +4 -1
- package/dist/plugin-sdk/src/talk/streaming-speech-provider-types.d.ts +2 -0
- package/dist/plugin-sdk/{ssrf-DiAz1Z_z.js → ssrf-BUCEDxp5.js} +2 -2
- package/dist/plugin-sdk/{store-Bl3Yjf_w.js → store-yBNTHg3N.js} +2 -2
- package/dist/plugin-sdk/{subagent-registry-Bxwla-0-.js → subagent-registry-B5xaoVWq.js} +12 -12
- package/dist/plugin-sdk/subagent-registry-BiarU1g8.js +61 -0
- package/dist/plugin-sdk/{subsystem-B2x33s9h.js → subsystem-CUUKL6Fr.js} +4 -4
- package/dist/plugin-sdk/{tables-CTmQQyfU.js → tables-DKYi6grj.js} +1 -1
- package/dist/plugin-sdk/testing.js +12 -12
- package/dist/plugin-sdk/{tokens-DxJSOoJn.js → tokens-ysZUkYZZ.js} +1 -1
- package/dist/plugin-sdk/{tool-loop-detection-Buouaxew.js → tool-loop-detection-LsvZ1dIY.js} +1 -1
- package/dist/plugin-sdk/{tools-iyXmO6p1.js → tools-Sk-IqHBP.js} +46 -34
- package/dist/plugin-sdk/{user-run-recording-juCW_uQ-.js → user-run-recording-BMaK7jNR.js} +2 -2
- package/dist/plugin-sdk/user-run-recording-DiKcNdjn.js +11 -0
- package/dist/{plugins-cli-CmYpruM_.js → plugins-cli-CjgLVUxJ.js} +27 -27
- package/dist/{plugins-cli-B0I1Xkrz.js → plugins-cli-Di9VhU7J.js} +27 -27
- package/dist/{program-CA1rDqtK.js → program-Dus5j4vB.js} +28 -28
- package/dist/{program-context-BCo6By7P.js → program-context-CQrxOpXH.js} +36 -36
- package/dist/{prompt-select-styled-cL1dmYcO.js → prompt-select-styled-D1Kc5Amb.js} +9 -9
- package/dist/{prompt-select-styled-BAmwLkut.js → prompt-select-styled-D3Li9uy2.js} +9 -9
- package/dist/{provider-image-CIpRvhkS.js → provider-image-BICZzOki.js} +1 -1
- package/dist/{provider-image-D9B_J5Ys.js → provider-image-Bsivqxw8.js} +1 -1
- package/dist/{provider-image-BllyLBJM.js → provider-image-Cb4z6zUu.js} +5 -5
- package/dist/{proxy-fWL7CKDP.js → proxy-C9sq6M-h.js} +1 -1
- package/dist/{proxy-env-CzGKpJY_.js → proxy-env-i0jn5uxB.js} +2 -2
- package/dist/{proxy-fetch-DCI0KuH6.js → proxy-fetch-CK5AQAYw.js} +1 -1
- package/dist/{push-apns-Bhf8qK68.js → push-apns-BcZzA03X.js} +2 -2
- package/dist/{push-apns-BmrddV2R.js → push-apns-qUm5cL9P.js} +2 -2
- package/dist/{pw-ai-CKjrjwfw.js → pw-ai-Ci1kADkJ.js} +1 -1
- package/dist/{pw-ai-Cd08hlBj.js → pw-ai-DT3fj2Kt.js} +1 -1
- package/dist/{pw-ai-CXSJw34w.js → pw-ai-DziGw6Jy.js} +14 -14
- package/dist/{qmd-manager-BwZ0V5fL.js → qmd-manager-p036XU01.js} +10 -10
- package/dist/{qr-cli-BCIfpQUF.js → qr-cli-BE3QWMP3.js} +3 -3
- package/dist/{qr-cli-BTOCXqFJ.js → qr-cli-DhJ37DZK.js} +3 -3
- package/dist/{query-expansion-31VWpPCz.js → query-expansion-30x7RlZY.js} +5 -5
- package/dist/{reconcile-bundled-Bl6XpmI5.js → reconcile-bundled-CAKTvY-C.js} +1 -1
- package/dist/{reconcile-bundled-TswjG3xv.js → reconcile-bundled-DJKaKSgk.js} +1 -1
- package/dist/{recorder-DNRxe9C8.js → recorder-C_ViZLf1.js} +4 -4
- package/dist/{recovery-adapter-DyPV7syS.js → recovery-adapter-BT12fVyO.js} +8 -8
- package/dist/{recovery-adapter-DW0R_vFE.js → recovery-adapter-DF25-zSH.js} +1 -1
- package/dist/{recovery-adapter-DOizlZvv.js → recovery-adapter-Df87xZQp.js} +8 -8
- package/dist/{recovery-adapter-mi8jbyvy.js → recovery-adapter-okaOo6tO.js} +1 -1
- package/dist/{redact-DZne_lu8.js → redact-BOHmCPP_.js} +1 -1
- package/dist/{register.agent-B3BSgQcW.js → register.agent-BCNYDn8G.js} +27 -27
- package/dist/{register.agent-CSHtI9uN.js → register.agent-CqGVQ2N1.js} +28 -28
- package/dist/{register.configure-CYwDM9d3.js → register.configure-CPTDt8eL.js} +30 -30
- package/dist/{register.configure-Cu4CPpm4.js → register.configure-DxdNTBIk.js} +30 -30
- package/dist/{register.maintenance-BXiHFIyG.js → register.maintenance-BOCv2N1t.js} +28 -28
- package/dist/{register.maintenance-C6vjRY-I.js → register.maintenance-CFjB31Z5.js} +29 -29
- package/dist/{register.message-BsBClRov.js → register.message-CiT53tgD.js} +23 -23
- package/dist/{register.message-DNpBTvto.js → register.message-dqrK9EsG.js} +23 -23
- package/dist/{register.onboard-BKQLGJhh.js → register.onboard-BKoeYDAF.js} +5 -5
- package/dist/{register.onboard-t_7lOkRu.js → register.onboard-xtBBqce9.js} +5 -5
- package/dist/{register.setup-B7QHn0Qv.js → register.setup-qHCNX6LC.js} +5 -5
- package/dist/{register.setup-DEg7fSPZ.js → register.setup-xIVMlLYx.js} +5 -5
- package/dist/{register.status-health-sessions-7E-y6cw7.js → register.status-health-sessions-CaxJw1rr.js} +27 -27
- package/dist/{register.status-health-sessions-D9iuSOb8.js → register.status-health-sessions-D4hMq0I7.js} +27 -27
- package/dist/{register.subclis-R6keQnon.js → register.subclis-srwCZnD0.js} +25 -25
- package/dist/{replies-NkETqb6B.js → replies-BsctLhfp.js} +4 -4
- package/dist/{reply-B4TgvJrJ.js → reply-B_SiN91-.js} +41 -30
- package/dist/{reply-directives-DGITtNUL.js → reply-directives-D9wYtPPy.js} +2 -2
- package/dist/{reply-prefix-DVkNDBNe.js → reply-prefix-C7WlN3qm.js} +1 -1
- package/dist/{resolve-route-jDAjkfZE.js → resolve-route-BV8k5qjX.js} +5 -5
- package/dist/{rpc-B2GRFhpM.js → rpc-BgMIbqpb.js} +1 -1
- package/dist/{rpc-BljNUarN.js → rpc-htgXg_yf.js} +1 -1
- package/dist/{run-main-CMTfGYjG.js → run-main-BzfK-GcH.js} +36 -36
- package/dist/{runs-B0TxOQnF.js → runs-BW5fW5nB.js} +3 -3
- package/dist/{runs-BMp7jOLL.js → runs-BjLs5ozo.js} +3 -3
- package/dist/{runs-DGWNXyKA.js → runs-ucQd8Fc-.js} +8 -8
- package/dist/{sandbox-DbfWdQha.js → sandbox-7YCCMJoM.js} +1 -1
- package/dist/{sandbox-CQwpubTx.js → sandbox-BpdiWabc.js} +1 -1
- package/dist/{sandbox-cli-CSjghLhl.js → sandbox-cli-Dv0Viev8.js} +2 -2
- package/dist/{sandbox-cli-DwhgE7u4.js → sandbox-cli-UfXu5kvh.js} +2 -2
- package/dist/{secrets-cli-jj1RZiK2.js → secrets-cli-DD5pd5lU.js} +3 -3
- package/dist/{secrets-cli-mfGtyiPb.js → secrets-cli-DMX3vuhP.js} +3 -3
- package/dist/{security-cli-DSB1NLa6.js → security-cli-DCKCspHc.js} +7 -7
- package/dist/{security-cli-DlMcCXl1.js → security-cli-DRALCMFL.js} +7 -7
- package/dist/{send-Do1AlhD5.js → send-BGps2i_C.js} +8 -8
- package/dist/{send-ENMm5qbW.js → send-Ba3pDq6E.js} +7 -7
- package/dist/{send-Dq8ChBfS.js → send-BiDcVZSc.js} +6 -6
- package/dist/{send-l57G-s8y.js → send-CZsC4D3G.js} +1 -1
- package/dist/{send-DEFcgo-1.js → send-TscXeVY8.js} +27 -27
- package/dist/{send-CNLmncRW.js → send-Tx-ew59_.js} +6 -6
- package/dist/{send-DAYMV49d.js → send-s0RNLFLX.js} +1 -1
- package/dist/{server-BAGUd2MH.js → server-DWJmtex3.js} +4 -4
- package/dist/{server-context-BUX61Gwl.js → server-context-BEjWhzMi.js} +2 -2
- package/dist/{server-context-FPrSnBNG.js → server-context-CQQ6Q5Kp.js} +2 -2
- package/dist/{server-lifecycle-7QoL5fyb.js → server-lifecycle-B9IQKSom.js} +1 -1
- package/dist/{server-lifecycle-DXRap2AR.js → server-lifecycle-C3hCCbXm.js} +1 -1
- package/dist/{server-node-events-DSTI4JnV.js → server-node-events-8k0OLCvW.js} +23 -23
- package/dist/{server-node-events-MOX6FUiJ.js → server-node-events-BYTgaAay.js} +23 -23
- package/dist/{server-IDopagLT.js → server-y8WhCQvu.js} +4 -4
- package/dist/{session-meta-DuK_BrWT.js → session-meta-DH__PMKt.js} +2 -2
- package/dist/{sessions-Dcu0bdQ7.js → sessions-BlXxa7bM.js} +6 -6
- package/dist/{sessions-CgVN798h.js → sessions-DFDrcshi.js} +6 -6
- package/dist/{sessions-claims-status-D5th0G34.js → sessions-claims-status-BWkOZDb1.js} +2 -2
- package/dist/{sessions-claims-status-Bt9unG8h.js → sessions-claims-status-BzqTiwuz.js} +2 -2
- package/dist/{skill-commands-BhMQp_i8.js → skill-commands-CRZajtK_.js} +9 -9
- package/dist/{skills-ckuLxkyg.js → skills-DOc6uEd1.js} +21 -21
- package/dist/{status-B3eNMcE3.js → status-BacPIpt6.js} +8 -8
- package/dist/{status-C5pbfqhh.js → status-BsGjriqM.js} +8 -8
- package/dist/{store-gQ6FSjVk.js → store-xxN6qyAh.js} +2 -2
- package/dist/{subsystem-CPYnUTN4.js → subsystem-BCjklMkJ.js} +64 -64
- package/dist/{system-cli-B-THY8xp.js → system-cli-DaeSeaNj.js} +3 -3
- package/dist/{system-cli-BqCA8eq3.js → system-cli-LSxX4WjX.js} +3 -3
- package/dist/{tables-DEyD0zuy.js → tables-o3ZpyPWV.js} +1 -1
- package/dist/{task-pipeline-boot-BLEjtMkt.js → task-pipeline-boot-CM-3tH09.js} +23 -23
- package/dist/{task-pipeline-boot-DKqT4VdZ.js → task-pipeline-boot-Dihxq0Tg.js} +23 -23
- package/dist/{task-runlog-retention-cEBecqvb.js → task-runlog-retention-DCbMK2T8.js} +65 -10
- package/dist/{task-runlog-retention-BZrnJGL1.js → task-runlog-retention-GZu-QuBY.js} +65 -10
- package/dist/{tasks-DXPXCFmn.js → tasks-DCbYQt5N.js} +2 -2
- package/dist/{tasks-YUokA114.js → tasks-Dm1ljmuN.js} +2 -2
- package/dist/{tokens-9BPY4SaX.js → tokens-9Mla_HDp.js} +1 -1
- package/dist/{tool-loop-detection-C1fqyXXD.js → tool-loop-detection-8uvf8mSd.js} +2 -2
- package/dist/{tui-CetFSZIt.js → tui-DQwfx20_.js} +3 -3
- package/dist/{tui-5QhX2Lcm.js → tui-X8LP2ykY.js} +3 -3
- package/dist/{tui-cli-Bo-8qeoa.js → tui-cli-DFen3XYb.js} +6 -6
- package/dist/{tui-cli-DFak7s89.js → tui-cli-Dhj11694.js} +6 -6
- package/dist/{update-Dwt-MeRL.js → update-CYcHPlAS.js} +1 -1
- package/dist/{update-B3jJ2yVe.js → update-VuewNwzn.js} +1 -1
- package/dist/{update-cli-Dhxx3iie.js → update-cli-DE0ttohR.js} +32 -32
- package/dist/{update-cli-D5knJbn5.js → update-cli-DECVfh7L.js} +33 -33
- package/dist/{update-runner-18yD5NLo.js → update-runner-C8NxlRy7.js} +1 -1
- package/dist/{update-runner-DohE1D7D.js → update-runner-CBbs-iN_.js} +1 -1
- package/dist/{user-run-recording-B0XAAUwL.js → user-run-recording-CAk1Ketk.js} +2 -2
- package/dist/{validation-cli-Dfac8Duq.js → validation-cli-D8dTZ830.js} +23 -23
- package/dist/{validation-cli-CAge8d_F.js → validation-cli-Di7B-mhn.js} +23 -23
- package/dist/{with-timeout-DD5bV7yq.js → with-timeout-BfG7k9-4.js} +2 -2
- package/dist/{with-timeout-1SSQaGSz.js → with-timeout-CpZZ4mMw.js} +2 -2
- package/dist/{workspace-B707AGIc.js → workspace-Dbn4gFdH.js} +9 -9
- 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/realtime-transcription-provider-faults.test.ts +0 -39
- package/extensions/elevenlabs/src/realtime-transcription-provider.test.ts +34 -32
- package/extensions/elevenlabs/src/realtime-transcription-provider.ts +5 -34
- package/extensions/elevenlabs/src/streaming-speech-provider.ts +5 -0
- 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/plugin-sdk/agent-turn-execute-zuw0S_Lh.js +0 -61
- package/dist/plugin-sdk/agent-turn-runner-BcrkoR1M.js +0 -11
- package/dist/plugin-sdk/audio-preflight-DE04bi4M.js +0 -28
- package/dist/plugin-sdk/command-queue-BnJsJc_w.js +0 -13
- package/dist/plugin-sdk/deliver-D4fWK65M.js +0 -32
- package/dist/plugin-sdk/manager-BlYRVNJI.js +0 -16
- package/dist/plugin-sdk/markdown-tables-cZSKCBuW.js +0 -10
- package/dist/plugin-sdk/provider-dispatcher-B4PdTha5.js +0 -61
- package/dist/plugin-sdk/provider-image-CNlYbRab.js +0 -22
- package/dist/plugin-sdk/proxy-D2uiu68M.js +0 -7
- package/dist/plugin-sdk/replies-XUkqz_7S.js +0 -25
- package/dist/plugin-sdk/reply-prefix-MU3uY52y.js +0 -7
- package/dist/plugin-sdk/runs-R28wdt7j.js +0 -25
- package/dist/plugin-sdk/send-Cg2VXcO0.js +0 -27
- package/dist/plugin-sdk/send-DAs6FmWB.js +0 -23
- package/dist/plugin-sdk/send-UIQH_kN6.js +0 -25
- package/dist/plugin-sdk/send-tASIQF-Q.js +0 -24
- package/dist/plugin-sdk/session-meta-Dd1ZONel.js +0 -10
- package/dist/plugin-sdk/skill-commands-C7ZE3rKj.js +0 -14
- package/dist/plugin-sdk/subagent-registry-CTZBVVPF.js +0 -61
- package/dist/plugin-sdk/user-run-recording-BMikDBXR.js +0 -11
|
@@ -2,7 +2,7 @@ import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as
|
|
|
2
2
|
import { $ as readLoggingConfig, A as setVerbose, At as resolvePreferredOpenClawTmpDir, C as truncateUtf16Safe, F as isRich, I as theme, K as resolveFileLogProfile, L as getChildLogger, P as colorize, R as getLogger, W as appendFileLog, _t as isNotFoundPathError, c as ensureDir, dt as openVerifiedFileSync, ft as sameFileIdentity, g as resolveUserPath, lt as openBoundaryFile, t as CONFIG_DIR, ut as openBoundaryFileSync, vt as isPathInside, y as shortenHomePath, z as getResolvedLoggerSettings } from "./utils-CMEUUHmM.js";
|
|
3
3
|
import { t as isPlainObject } from "./plain-object-DHRdTVMa.js";
|
|
4
4
|
import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-DDYFn78t.js";
|
|
5
|
-
import { $n as
|
|
5
|
+
import { $n as setTtsEnabled, A as resolveCronSession, An as ensureOutboundSessionEntry, Ar as resolveInputFileLimits, At as takePendingActivationMigration, Bt as resolveAgentOutboundIdentity, C as startHeartbeatRunner, Cn as buildHistoryContextFromEntries, Cr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Ct as persistBrowserProxyFiles, D as onHeartbeatEvent, Dn as createReplyDispatcher, Dr as extractFileContentFromSource, Dt as clearPluginRegistryCaches, E as getLastHeartbeatEvent, En as setDispatchInboundAdmissionRejectionFor, Er as DEFAULT_INPUT_TIMEOUT_MS, F as waitForPendingWrites, Fn as resolveOutboundChannelPlugin, Ft as loadProviderUsageSummary, Gn as getTtsProvider, H as readLatestAssistantReply, Hn as DEFAULT_MAX_PARALLEL, Ht as handleSlackHttpRequest, J as loadCombinedSessionStoreForGateway, Jn as resolveTtsApiKey, K as listAgentsForGateway, Kn as isTtsEnabled, L as resolveExecConfig, Ln as resetDirectoryCache, M as runEmbeddedPiAgent, Mn as resolveHeartbeatDeliveryTarget, Mt as requestNudge, N as prepareSessionManagerForRun, Nn as resolveOutboundTarget, O as redactSensitiveHeartbeatEvent, On as getTotalPendingReplies, Or as extractImageContentFromSource, Ot as getLoadedAnalysisConcurrency, P as snapshotRunPendingWrites, Pn as resolveSessionDeliveryTarget, Q as resolveSessionModelRef, Qn as resolveTtsProviderOrder, R as applyToolPolicyPipeline, Rn as isAbortRequestText, S as setHeartbeatsEnabled, Sr as resolveSendPolicy, St as applyBrowserProxyPaths, T as resolveHeartbeatVisibility, Tn as dispatchInboundMessage, Tr as DEFAULT_INPUT_MAX_REDIRECTS, Tt as resolvePluginTools, U as resolveAnnounceTargetFromKey, Un as resolveUserTimezone, Ut as readJsonBodyWithLimit, V as createOpenClawTools, Vn as setTaskPipelineStatus, W as canonicalizeSpawnedByForAgent, Wt as requestBodyErrorToText, X as pruneLegacyStoreKeys, Xn as resolveTtsConfig, Xt as resolveAgentOutboundTarget, Y as loadSessionEntry, Yn as resolveTtsAutoMode, Yt as resolveAgentDeliveryPlan, Z as resolveGatewaySessionStoreTarget, Zn as resolveTtsPrefsPath, Zt as createOutboundSendDeps, _ as runMainAgentTurn, _t as normalizeCronJobPatch, an as runCliAgent, ar as getExistingFollowupQueue, at as scheduleGatewaySigusr1Restart, b as runHeartbeatOnce, bn as getHookType, br as resolveAgentSessionDirs, bt as hasLegacyDeliveryHints, cr as stripHeartbeatToken, ct as triggerOpenClawRestart, d as countActiveDescendantRuns, dn as computeBackoff, dr as isSystemEventContextChanged, dt as formatRestartSentinelMessage, en as createDefaultDeps, er as setTtsProvider, et as consumeGatewaySigusr1RestartAuthorization, f as initSubagentRegistry, fn as sleepWithAbort, gt as normalizeCronJobCreate, h as runSubagentAnnounceFlow, hr as requestHeartbeatNow, ht as writeRestartSentinel, in as setCliSessionId, ir as clearSessionQueues, it as markGatewaySigusr1RestartHandled, j as resolveCronStyleNow, jn as resolveOutboundSessionRoute, jr as resolveAgentTimeoutMs, jt as createPluginRuntime, k as isCronSystemEvent, kr as normalizeMimeList, kt as loadOpenClawPlugins, ln as lookupContextTokens, lr as ToolInputError, lt as consumeRestartSentinel, mn as resolveAgentAvatar, nn as runWithModelFallback, nr as OPENAI_TTS_MODELS, nt as emitGatewayRestart, o as resolveChannelAccountEnabled, or as removeQueuedFollowupRun, ot as setGatewaySigusr1RestartPolicy, p as listDescendantRunsForRequester, pn as resolveSessionAuthProfileOverride, pt as summarizeRestartSentinel, qn as isTtsProviderConfigured, qt as agentCommandFromIngress, rn as getCliSessionId, rr as OPENAI_TTS_VOICES, rt as isGatewaySigusr1RestartExternallyAllowed, s as BARE_SESSION_RESET_PROMPT, sr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, st as setPreRestartDeferralCheck, tn as createOutboundSendDeps$1, tr as textToSpeech, tt as deferGatewayRestartUntilIdle, ur as enqueueSystemEvent, ut as formatDoctorNonInteractiveHint, v as resolveHeartbeatConfig, vn as buildSafeExternalPrompt, vr as ACP_SESSION_IDENTITY_RENDERER_VERSION, vt as migrateLegacyCronPayload, w as runWakeGate, wr as DEFAULT_INPUT_IMAGE_MIMES, wt as getPluginToolMeta, xn as isExternalHookSession, xt as stripLegacyDeliveryFields, y as resolveHeartbeatSummaryForAgent, yn as detectSuspiciousPatterns, yr as getAcpSessionManager, yt as buildDeliveryFromLegacyPayload, z as buildDefaultToolPolicyPipelineSteps } from "./reply-B_SiN91-.js";
|
|
6
6
|
import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, M as matchesSkillFilter, O as isWorkspaceOnboardingCompleted, S as DEFAULT_MEMORY_FILENAME, T as DEFAULT_USER_FILENAME, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, g as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, j as resolveWorkspaceTemplateDir, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME, w as DEFAULT_TOOLS_FILENAME, x as DEFAULT_MEMORY_ALT_FILENAME, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-CWTkr4pS.js";
|
|
7
7
|
import { m as defaultRuntime, n as runtimeForLogger, o as setConsoleSubsystemFilter, s as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-DDZBycwS.js";
|
|
8
8
|
import { A as isCronRunSessionKey, M as isSubagentSessionKey, N as parseAgentSessionKey, S as normalizeAccountId$1, a as classifySessionKeyShape, b as toAgentStoreSessionKey, d as normalizeAgentId, f as normalizeMainKey, g as resolveLinkedPeerIdForChannel, h as resolveConfiguredCanonicalIdentity, p as resolveAgentIdFromSessionKey, r as buildAgentMainSessionKey, t as DEFAULT_AGENT_ID, x as DEFAULT_ACCOUNT_ID, y as toAgentRequestSessionKey } from "./session-key-B1wN38jV.js";
|
|
@@ -24,12 +24,12 @@ import { c as isDiagnosticsEnabled, l as onDiagnosticEvent, s as emitDiagnosticE
|
|
|
24
24
|
import { n as USER_CLIENT_ID, o as buildUserClientRuntimeConfig, s as handleUserClientHttpRequest } from "./static-server-C-iTMRyz.js";
|
|
25
25
|
import { n as assertNoPathAliasEscape } from "./path-alias-guards-BSmwo1rT.js";
|
|
26
26
|
import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DD7KXuvI.js";
|
|
27
|
-
import { D as normalizeMediaProviderId, E as listAutoDetectableProviders, T as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, g as registerUnhandledRejectionHandler, n as buildProviderRegistry, x as resolveModelEntries, y as resolveCapabilityConfig } from "./audio-transcription-runner-
|
|
27
|
+
import { D as normalizeMediaProviderId, E as listAutoDetectableProviders, T as getProviderDeclaredEnvVars, c as transcribeBufferedPcmWithMediaUnderstanding, g as registerUnhandledRejectionHandler, n as buildProviderRegistry, x as resolveModelEntries, y as resolveCapabilityConfig } from "./audio-transcription-runner-CsQR8LpS.js";
|
|
28
28
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-CjyGDRXN.js";
|
|
29
29
|
import { t as SsrFBlockedError } from "./ssrf-B85AIIOO.js";
|
|
30
30
|
import "./proxy-fetch-Czv8kxaL.js";
|
|
31
31
|
import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-BXebcnwh.js";
|
|
32
|
-
import "./pi-embedded-helpers-
|
|
32
|
+
import "./pi-embedded-helpers-DIUrv2Ua.js";
|
|
33
33
|
import "./local-roots-_qt4-Ma5.js";
|
|
34
34
|
import { c as detectMime } from "./image-ops-DcqCZEUY.js";
|
|
35
35
|
import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-CQtYLB4a.js";
|
|
@@ -37,10 +37,10 @@ import { i as formatErrorMessage, o as hasErrnoCode, s as isErrno } from "./erro
|
|
|
37
37
|
import "./models-config-Burwt3mB.js";
|
|
38
38
|
import { n as loadModelCatalog } from "./model-catalog-C7itJJDM.js";
|
|
39
39
|
import "./api-key-rotation-BEt1ZchD.js";
|
|
40
|
-
import "./provider-image-
|
|
40
|
+
import "./provider-image-BICZzOki.js";
|
|
41
41
|
import "./pi-model-discovery-CfUi22Es.js";
|
|
42
|
-
import { h as extractTextFromChatContent } from "./pi-embedded-utils-
|
|
43
|
-
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
42
|
+
import { h as extractTextFromChatContent } from "./pi-embedded-utils-BetZbS6i.js";
|
|
43
|
+
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-7YCCMJoM.js";
|
|
44
44
|
import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-B6wH7-iE.js";
|
|
45
45
|
import { i as resolveRelayAuthTokenForPort, n as resolveGatewayRelayToken } from "./extension-relay-auth-C-1c9CZk.js";
|
|
46
46
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DbsrfsUT.js";
|
|
@@ -48,7 +48,7 @@ import { t as safeEqualSecret } from "./secret-equal-DyYamV7h.js";
|
|
|
48
48
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-G5phL2pY.js";
|
|
49
49
|
import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-BuVK_u9S.js";
|
|
50
50
|
import { a as isDirectLoopbackProvenance, c as AUTH_RATE_LIMIT_SCOPE_BROWSER_EXTENSION, d as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, f as createAuthRateLimiter, i as captureTransportProvenance, l as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, n as authorizeHttpGatewayConnect, o as isLocalDirectRequest, p as normalizeRateLimitClientIp, r as authorizeWsControlUiGatewayConnect, s as resolveGatewayAuth, t as assertGatewayAuthConfigured, u as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH } from "./auth-DeLQvx-N.js";
|
|
51
|
-
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-
|
|
51
|
+
import { o as ensureGatewayStartupAuth, s as mergeGatewayTailscaleConfig } from "./server-context-CQQ6Q5Kp.js";
|
|
52
52
|
import { d as hasBinary } from "./frontmatter-B8Zb_8go.js";
|
|
53
53
|
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-Buc1RWDY.js";
|
|
54
54
|
import "./store-DoqX9VsZ.js";
|
|
@@ -63,9 +63,9 @@ import { r as isRestartEnabled } from "./commands-tFdLuF5k.js";
|
|
|
63
63
|
import "./commands-registry-BMswme6t.js";
|
|
64
64
|
import { t as redactIdentifier } from "./redact-identifier-CSPL9LuH.js";
|
|
65
65
|
import "./registry-D9ygkK-J.js";
|
|
66
|
-
import { a as cancelDelayedAgentTurnWaiters, c as enqueueAgentTurn, i as agentTurnIdempotencyKey, l as isClaimableAgentTurnWorkId, r as AGENT_TURN_TOPIC, s as createRecoveryAgentTurnStager } from "./agent-turn-enqueue-
|
|
67
|
-
import { $ as validateNodeListParams, $t as validateTalkSessionCreateParams, A as validateCronRunParams, B as validateExecApprovalRequestParams, Bn as verifyDeviceToken, Bt as validateTalkConfigParams, C as validateConfigPatchParams, Cn as normalizeDeviceMetadataForAuth, D as validateCronAddParams, Dn as consumeDeviceBootstrapToken, E as validateConnectParams, En as approveDevicePairing, F as validateDevicePairListParams, Fn as revokeDeviceToken, Ft as validateSkillsBinsParams, G as validateExecApprovalsSetParams, Gt as validateTalkRealtimeSessionParams, H as validateExecApprovalsGetParams, Ht as validateTalkRealtimeAudioParams, I as validateDevicePairRejectParams, In as rotateDeviceToken, It as validateSkillsInstallParams, J as validateModelsListParams, Jt as validateTalkRealtimeToolResultParams, K as validateLogsTailParams, Kt as validateTalkRealtimeStatusParams, L as validateDevicePairRemoveParams, Ln as summarizeDeviceTokens, Lt as validateSkillsStatusParams, M as validateCronStatusParams, Mn as rejectDevicePairing, N as validateCronUpdateParams, Nn as removePairedDevice, Nt as validateSessionsTitlePrepareParams, O as validateCronListParams, On as ensureDeviceToken, P as validateDevicePairApproveParams, Pn as requestDevicePairing, Pt as validateSessionsUsageParams, Q as validateNodeInvokeResultParams, Qt as validateTalkSessionCloseParams, R as validateDeviceTokenRevokeParams, Rn as updatePairedDeviceMetadata, Rt as validateSkillsUpdateParams, S as validateConfigGetParams, Sn as buildDeviceAuthPayloadV3, T as validateConfigSetParams, Tn as approveBootstrapDevicePairing, U as validateExecApprovalsNodeGetParams, Un as operatorScopeSatisfied, Ut as validateTalkRealtimeBargeInParams, V as validateExecApprovalResolveParams, Vt as validateTalkModeParams, W as validateExecApprovalsNodeSetParams, Wn as roleScopesAllow, Wt as validateTalkRealtimeMarkParams, X as validateNodeEventParams, Xn as verifyDeviceSignature, Xt as validateTalkSessionBargeInParams, Y as validateNodeDescribeParams, Yn as normalizeDevicePublicKeyBase64Url, Yt as validateTalkSessionAppendAudioParams, Z as validateNodeInvokeParams, Zt as validateTalkSessionCancelTurnParams, _ as validateChatAbortParams, _n as ErrorCodes, a as validateAgentNudgeParams, an as validateToolsCatalogParams, at as validateNodeRenameParams, b as validateChatSendParams, c as validateAgentsCreateParams, cn as validateWebLoginStartParams, ct as validateRequestFrame, d as validateAgentsFilesListParams, dn as validateWizardNextParams, dt as validateSendParams, en as validateTalkSessionMarkParams, et as validateNodePairApproveParams, f as validateAgentsFilesSetParams, fn as validateWizardStartParams, ft as validateSessionsAbortParams, g as validateChannelsStatusParams, h as validateChannelsLogoutParams, hn as RUNS_INVALIDATED_EVENT, i as validateAgentIdentityParams, in as validateTasksRunsListParams, it as validateNodePairVerifyParams, j as validateCronRunsParams, jn as listDevicePairing, jt as validateSessionsSteerParams, k as validateCronRemoveParams, kn as getPairedDevice, l as validateAgentsDeleteParams, ln as validateWebLoginWaitParams, lt as validateSecretsResolveParams, m as validateAgentsUpdateParams, mn as PROTOCOL_VERSION, nn as validateTasksRunsEventsParams, nt as validateNodePairRejectParams, o as validateAgentParams, on as validateUpdateRunParams, ot as validatePollParams, p as validateAgentsListParams, pn as validateWizardStatusParams, q as validateModelsAuthStatusParams, qn as deriveDeviceIdFromPublicKey, qt as validateTalkRealtimeStopParams, r as formatValidationErrors, rn as validateTasksRunsGetParams, rt as validateNodePairRequestParams, s as validateAgentWaitParams, sn as validateWakeParams, st as validatePushTestParams, tn as validateTasksRunEventsParams, tt as validateNodePairListParams, u as validateAgentsFilesGetParams, un as validateWizardCancelParams, ut as validateSecretsResolveResult, v as validateChatHistoryParams, vn as errorShape, w as validateConfigSchemaParams, x as validateConfigApplyParams, xn as buildDeviceAuthPayload, y as validateChatInjectParams, z as validateDeviceTokenRotateParams, zn as verifyDeviceBootstrapToken, zt as validateTalkCatalogParams } from "./client-
|
|
68
|
-
import { _ as hasNarrowSessionScope, d as APPROVALS_SCOPE, f as PAIRING_SCOPE, g as authorizeOperatorScopesForMethod, h as WRITE_SCOPE, m as SESSION_READ_SCOPE, n as callGateway, p as READ_SCOPE, u as ADMIN_SCOPE$1, v as isHealthProbeAllowedForScopes, x as loadGatewayTlsRuntime$1, y as isNodeRoleMethod } from "./call-
|
|
66
|
+
import { a as cancelDelayedAgentTurnWaiters, c as enqueueAgentTurn, i as agentTurnIdempotencyKey, l as isClaimableAgentTurnWorkId, r as AGENT_TURN_TOPIC, s as createRecoveryAgentTurnStager } from "./agent-turn-enqueue-QcHb-Wlq.js";
|
|
67
|
+
import { $ as validateNodeListParams, $t as validateTalkSessionCreateParams, A as validateCronRunParams, B as validateExecApprovalRequestParams, Bn as verifyDeviceToken, Bt as validateTalkConfigParams, C as validateConfigPatchParams, Cn as normalizeDeviceMetadataForAuth, D as validateCronAddParams, Dn as consumeDeviceBootstrapToken, E as validateConnectParams, En as approveDevicePairing, F as validateDevicePairListParams, Fn as revokeDeviceToken, Ft as validateSkillsBinsParams, G as validateExecApprovalsSetParams, Gt as validateTalkRealtimeSessionParams, H as validateExecApprovalsGetParams, Ht as validateTalkRealtimeAudioParams, I as validateDevicePairRejectParams, In as rotateDeviceToken, It as validateSkillsInstallParams, J as validateModelsListParams, Jt as validateTalkRealtimeToolResultParams, K as validateLogsTailParams, Kt as validateTalkRealtimeStatusParams, L as validateDevicePairRemoveParams, Ln as summarizeDeviceTokens, Lt as validateSkillsStatusParams, M as validateCronStatusParams, Mn as rejectDevicePairing, N as validateCronUpdateParams, Nn as removePairedDevice, Nt as validateSessionsTitlePrepareParams, O as validateCronListParams, On as ensureDeviceToken, P as validateDevicePairApproveParams, Pn as requestDevicePairing, Pt as validateSessionsUsageParams, Q as validateNodeInvokeResultParams, Qt as validateTalkSessionCloseParams, R as validateDeviceTokenRevokeParams, Rn as updatePairedDeviceMetadata, Rt as validateSkillsUpdateParams, S as validateConfigGetParams, Sn as buildDeviceAuthPayloadV3, T as validateConfigSetParams, Tn as approveBootstrapDevicePairing, U as validateExecApprovalsNodeGetParams, Un as operatorScopeSatisfied, Ut as validateTalkRealtimeBargeInParams, V as validateExecApprovalResolveParams, Vt as validateTalkModeParams, W as validateExecApprovalsNodeSetParams, Wn as roleScopesAllow, Wt as validateTalkRealtimeMarkParams, X as validateNodeEventParams, Xn as verifyDeviceSignature, Xt as validateTalkSessionBargeInParams, Y as validateNodeDescribeParams, Yn as normalizeDevicePublicKeyBase64Url, Yt as validateTalkSessionAppendAudioParams, Z as validateNodeInvokeParams, Zt as validateTalkSessionCancelTurnParams, _ as validateChatAbortParams, _n as ErrorCodes, a as validateAgentNudgeParams, an as validateToolsCatalogParams, at as validateNodeRenameParams, b as validateChatSendParams, c as validateAgentsCreateParams, cn as validateWebLoginStartParams, ct as validateRequestFrame, d as validateAgentsFilesListParams, dn as validateWizardNextParams, dt as validateSendParams, en as validateTalkSessionMarkParams, et as validateNodePairApproveParams, f as validateAgentsFilesSetParams, fn as validateWizardStartParams, ft as validateSessionsAbortParams, g as validateChannelsStatusParams, h as validateChannelsLogoutParams, hn as RUNS_INVALIDATED_EVENT, i as validateAgentIdentityParams, in as validateTasksRunsListParams, it as validateNodePairVerifyParams, j as validateCronRunsParams, jn as listDevicePairing, jt as validateSessionsSteerParams, k as validateCronRemoveParams, kn as getPairedDevice, l as validateAgentsDeleteParams, ln as validateWebLoginWaitParams, lt as validateSecretsResolveParams, m as validateAgentsUpdateParams, mn as PROTOCOL_VERSION, nn as validateTasksRunsEventsParams, nt as validateNodePairRejectParams, o as validateAgentParams, on as validateUpdateRunParams, ot as validatePollParams, p as validateAgentsListParams, pn as validateWizardStatusParams, q as validateModelsAuthStatusParams, qn as deriveDeviceIdFromPublicKey, qt as validateTalkRealtimeStopParams, r as formatValidationErrors, rn as validateTasksRunsGetParams, rt as validateNodePairRequestParams, s as validateAgentWaitParams, sn as validateWakeParams, st as validatePushTestParams, tn as validateTasksRunEventsParams, tt as validateNodePairListParams, u as validateAgentsFilesGetParams, un as validateWizardCancelParams, ut as validateSecretsResolveResult, v as validateChatHistoryParams, vn as errorShape, w as validateConfigSchemaParams, x as validateConfigApplyParams, xn as buildDeviceAuthPayload, y as validateChatInjectParams, z as validateDeviceTokenRotateParams, zn as verifyDeviceBootstrapToken, zt as validateTalkCatalogParams } from "./client-D7IpaFCL.js";
|
|
68
|
+
import { _ as hasNarrowSessionScope, d as APPROVALS_SCOPE, f as PAIRING_SCOPE, g as authorizeOperatorScopesForMethod, h as WRITE_SCOPE, m as SESSION_READ_SCOPE, n as callGateway, p as READ_SCOPE, u as ADMIN_SCOPE$1, v as isHealthProbeAllowedForScopes, x as loadGatewayTlsRuntime$1, y as isNodeRoleMethod } from "./call-DFhcVchO.js";
|
|
69
69
|
import "./pairing-token-A_0lRJCJ.js";
|
|
70
70
|
import "./fetch-CY39qjQT.js";
|
|
71
71
|
import { a as readChannelAllowFromStoreSync } from "./pairing-store-CQ7fjFFo.js";
|
|
@@ -75,14 +75,14 @@ import "./exec-safe-bin-runtime-policy-KSPaR73B.js";
|
|
|
75
75
|
import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-BRZLdw3g.js";
|
|
76
76
|
import { r as resolveSystemRunCommand, t as canonicalizeLegacySystemRunParams } from "./system-run-command-AF8TLlEl.js";
|
|
77
77
|
import { u as snapshotActiveRuns } from "./diagnostic-session-state-C6JXU3l4.js";
|
|
78
|
-
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-
|
|
78
|
+
import { A as setActiveRunProbe, M as stopDiagnosticHeartbeat, j as startDiagnosticHeartbeat, k as resolveStuckSessionWarnMs, t as clearActiveRunProbe } from "./diagnostic-85mWzvQi.js";
|
|
79
79
|
import { t as CommandLane } from "./lanes-DA0g5tPR.js";
|
|
80
|
-
import { D as onAgentEvent, E as getAgentRunContext, O as registerAgentRunContext, T as emitAgentEvent, a as getActiveEmbeddedRunCount, c as isEmbeddedPiRunInFlight, d as isInFlightVoiceAttempt, f as peekActiveEmbeddedRun, g as waitForEmbeddedPiRunEnd, l as isEmbeddedPiRunSteerable, o as getActiveEmbeddedRunOwner, r as clearActiveEmbeddedRun, s as isEmbeddedPiRunActive, t as abortEmbeddedPiRun, w as clearAgentRunContext } from "./runs-
|
|
81
|
-
import { a as getActiveTaskCount, c as getTotalQueueSize, d as
|
|
80
|
+
import { D as onAgentEvent, E as getAgentRunContext, O as registerAgentRunContext, T as emitAgentEvent, a as getActiveEmbeddedRunCount, c as isEmbeddedPiRunInFlight, d as isInFlightVoiceAttempt, f as peekActiveEmbeddedRun, g as waitForEmbeddedPiRunEnd, l as isEmbeddedPiRunSteerable, o as getActiveEmbeddedRunOwner, r as clearActiveEmbeddedRun, s as isEmbeddedPiRunActive, t as abortEmbeddedPiRun, w as clearAgentRunContext } from "./runs-BW5fW5nB.js";
|
|
81
|
+
import { a as getActiveTaskCount, c as getTotalQueueSize, d as resetAllLanes, f as setCommandLaneConcurrency, m as waitForActiveTasks, p as setGatewayDrainState, u as markGatewayDraining } from "./command-queue-Bn2PHabT.js";
|
|
82
82
|
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-D0xrt6Z-.js";
|
|
83
|
-
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
84
|
-
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-
|
|
85
|
-
import { T as collectTelegramDuplicatePollerDiagnostics, d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-
|
|
83
|
+
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-rLn-23ud.js";
|
|
84
|
+
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-BfG7k9-4.js";
|
|
85
|
+
import { T as collectTelegramDuplicatePollerDiagnostics, d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-s0RNLFLX.js";
|
|
86
86
|
import { n as resolveModel } from "./model-BI6n6kVo.js";
|
|
87
87
|
import "./session-consumer-agents-DWh7Mygv.js";
|
|
88
88
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-F-4FwfCE.js";
|
|
@@ -99,7 +99,7 @@ import "./outbound-attachment-Bg7WvYcG.js";
|
|
|
99
99
|
import "./delivery-queue-DhBE3s1K.js";
|
|
100
100
|
import "./send-26KAC8EW.js";
|
|
101
101
|
import "./resolve-route-DnhX9nWr.js";
|
|
102
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-
|
|
102
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-B7YiM0PW.js";
|
|
103
103
|
import "./tables-CzW-cMQN.js";
|
|
104
104
|
import "./proxy-Df2WAHRA.js";
|
|
105
105
|
import "./replies-DoejQAqN.js";
|
|
@@ -107,21 +107,21 @@ import { S as registerSkillsChangeListener, _ as requestNodePairing, c as record
|
|
|
107
107
|
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-_vJAsBIN.js";
|
|
108
108
|
import "./user-run-recording-CTVI96gC.js";
|
|
109
109
|
import { n as GATEWAY_AUTH_SURFACE_PATHS, p as isKnownSecretTargetId, r as evaluateGatewayAuthSurfaceStates } from "./runtime-config-collectors-B4N79pBu.js";
|
|
110
|
-
import "./command-secret-targets-
|
|
110
|
+
import "./command-secret-targets-BAFcvtYe.js";
|
|
111
111
|
import { a as getGatewayInstanceId, o as resolveSessionRunStore, t as createSessionRunRecorder } from "./recorder-BntUAL0_.js";
|
|
112
|
-
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-
|
|
112
|
+
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DLBTH9b_.js";
|
|
113
113
|
import "./prompt-style-D0wRuIYC.js";
|
|
114
114
|
import "./pairing-labels-CGUWaZ3f.js";
|
|
115
115
|
import "./session-meta-DzjDKcgW.js";
|
|
116
|
-
import { A as registerBeforeCreate, C as artifactTokenFor, D as markRemoved, E as markClientRemovedAcknowledged, M as buildVerificationEnvelope, N as redactVerificationProjection, O as markRetained, P as verificationEnvelopeFingerprint, S as accountSessionArtifactsAtTerminalSweep, T as listSessionArtifacts, _ as requireProcessBootIdentityPair, a as setAgentTurnRuntime, b as installGatewayRestartRecoveryRuntime, d as isSoakError, f as readTrustedBuildInfo, g as isBootIdentityError, h as deriveBootIdentityPair, i as getAgentTurnRuntime, j as VERIFICATION_CONFIG_SCENARIO, k as redactArtifactLogId, l as buildSoakDeploymentRecord, m as armBarrier, n as createAgentTurnRuntimeFromStorage, o as tryGetAgentTurnRuntime, p as acceptSuccessorExecution, r as getActiveAgentTurnCount, u as evaluateSoak, v as clearGatewayRestartRecoveryRuntimeIf, w as isArtifactRegistrationError, x as RETAINED_ARTIFACT_KIND, y as getGatewayRestartRecoveryRuntime } from "./agent-turn-runner-
|
|
117
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
116
|
+
import { A as registerBeforeCreate, C as artifactTokenFor, D as markRemoved, E as markClientRemovedAcknowledged, M as buildVerificationEnvelope, N as redactVerificationProjection, O as markRetained, P as verificationEnvelopeFingerprint, S as accountSessionArtifactsAtTerminalSweep, T as listSessionArtifacts, _ as requireProcessBootIdentityPair, a as setAgentTurnRuntime, b as installGatewayRestartRecoveryRuntime, d as isSoakError, f as readTrustedBuildInfo, g as isBootIdentityError, h as deriveBootIdentityPair, i as getAgentTurnRuntime, j as VERIFICATION_CONFIG_SCENARIO, k as redactArtifactLogId, l as buildSoakDeploymentRecord, m as armBarrier, n as createAgentTurnRuntimeFromStorage, o as tryGetAgentTurnRuntime, p as acceptSuccessorExecution, r as getActiveAgentTurnCount, u as evaluateSoak, v as clearGatewayRestartRecoveryRuntimeIf, w as isArtifactRegistrationError, x as RETAINED_ARTIFACT_KIND, y as getGatewayRestartRecoveryRuntime } from "./agent-turn-runner-CUoz_Fkl.js";
|
|
117
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-CqS6VXEu.js";
|
|
118
118
|
import { r as resolveMemorySearchConfig } from "./manager-DehDxi2A.js";
|
|
119
119
|
import "./query-expansion-BD3CL_NZ.js";
|
|
120
120
|
import { t as formatDocsLink } from "./links-BhLGjTwm.js";
|
|
121
121
|
import { n as runCommandWithRuntime } from "./cli-utils-DWSfnwCw.js";
|
|
122
122
|
import { t as formatHelpExamples } from "./help-format-DqpZruAs.js";
|
|
123
123
|
import { n as withProgress } from "./progress-DRMfDm7h.js";
|
|
124
|
-
import "./server-lifecycle-
|
|
124
|
+
import "./server-lifecycle-B9IQKSom.js";
|
|
125
125
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BIZMWR_z.js";
|
|
126
126
|
import { a as normalizeHttpWebhookUrl, l as normalizeOptionalText, o as inferLegacyName } from "./heartbeat-tick-CsyeD75h.js";
|
|
127
127
|
import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-Cm6wsMRx.js";
|
|
@@ -136,53 +136,53 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-gv_rp-w_.
|
|
|
136
136
|
import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
|
|
137
137
|
import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
|
|
138
138
|
import { t as resolveChannelDefaultAccountId } from "./helpers-CU6_xh9V.js";
|
|
139
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
139
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DWMgN4qH.js";
|
|
140
140
|
import { t as isWithinDir } from "./path-safety-DAKUyD-v.js";
|
|
141
141
|
import "./install-safe-path-DjFYmzeb.js";
|
|
142
|
-
import "./npm-pack-install-
|
|
142
|
+
import "./npm-pack-install-BgBpeTJk.js";
|
|
143
143
|
import "./skill-scanner-BA3h34y0.js";
|
|
144
|
-
import "./installs-
|
|
144
|
+
import "./installs-puN7yKHH.js";
|
|
145
145
|
import { n as formatConfigIssueLines } from "./issue-format-D0G927lb.js";
|
|
146
146
|
import { t as buildChannelAccountSnapshot } from "./status-B8TZsG0t.js";
|
|
147
147
|
import "./channels-status-issues-C6LrjLpF.js";
|
|
148
|
-
import { i as resolveGatewayClientProfile, t as WEB_CLIENT_ALLOWED_ORIGINS_CONFIG_KEY } from "./client-profiles-
|
|
148
|
+
import { i as resolveGatewayClientProfile, t as WEB_CLIENT_ALLOWED_ORIGINS_CONFIG_KEY } from "./client-profiles-soWN7eGC.js";
|
|
149
149
|
import "./daemon-install-helpers-C8mJ0UpL.js";
|
|
150
150
|
import "./service-C_LTJsJU.js";
|
|
151
151
|
import "./systemd-D6tSdsgx.js";
|
|
152
152
|
import "./lifecycle-core-M-5Z8Xml.js";
|
|
153
153
|
import "./systemd-hints-DzBfweRH.js";
|
|
154
154
|
import { t as parsePort$1 } from "./parse-port-p0PJP2nG.js";
|
|
155
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
155
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-BTld-maF.js";
|
|
156
156
|
import "./diagnostics-Ds3p_NPY.js";
|
|
157
157
|
import "./table-DoIju7rh.js";
|
|
158
158
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DgeeMUtJ.js";
|
|
159
159
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-6Uo_6p6X.js";
|
|
160
|
-
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-
|
|
160
|
+
import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-CzREkjwC.js";
|
|
161
161
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-C517Q6gA.js";
|
|
162
|
-
import { a as noteStorageReplayResult, i as getStorageV1Snapshot, n as getStatusSummary, o as noteStorageRestartRequired, r as createStorageSupervisor, s as pickGatewaySelfPresence } from "./status-
|
|
163
|
-
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-
|
|
162
|
+
import { a as noteStorageReplayResult, i as getStorageV1Snapshot, n as getStatusSummary, o as noteStorageRestartRequired, r as createStorageSupervisor, s as pickGatewaySelfPresence } from "./status-BsGjriqM.js";
|
|
163
|
+
import { c as redactOwner, d as redactSensitiveHealthSummary, f as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-BEgp6PEF.js";
|
|
164
164
|
import { a as readPostQuiesceTranscriptDelta, i as readBulkTranscriptLines, o as replaySource, r as mergeBulkTranscriptSnapshotAndDelta, t as ReplayRowConflictError } from "./replay-BHfUVVHN.js";
|
|
165
165
|
import "./session-key-resolution-DDJD1XYy.js";
|
|
166
|
-
import { c as
|
|
166
|
+
import { a as respondTaskRegistryUnavailable, c as tasksHandlers, d as withTimeout, i as resolveTaskOperatorRegistry, l as retryDelayMs, r as getTaskOperatorRegistry, t as DEFAULT_RETENTION_DAYS, u as waitForStopDrain } from "./task-runlog-retention-GZu-QuBY.js";
|
|
167
167
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DonecnKL.js";
|
|
168
168
|
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-C9otZxLF.js";
|
|
169
|
-
import { t as reconcileBundledInstalls } from "./reconcile-bundled-
|
|
169
|
+
import { t as reconcileBundledInstalls } from "./reconcile-bundled-DJKaKSgk.js";
|
|
170
170
|
import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-Ch9itsH4.js";
|
|
171
171
|
import "./onboarding.secret-input-BCxy1JxD.js";
|
|
172
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
172
|
+
import { t as runOnboardingWizard } from "./onboarding-BKoaWOxQ.js";
|
|
173
173
|
import { a as computeJobNextRunAtMs, c as findJobOrThrow, d as recomputeNextRuns, f as recomputeNextRunsForMaintenance, h as produceCronAgentTurn, i as applyJobPatch, l as isJobDue, m as resolveJobPayloadTextForMain, o as createJob, p as recordScheduleComputeError, r as resolveStaleClaimAdoptionMs, s as cronShapeSupportsIdentity, t as CRON_HEARTBEAT_ADAPTER_ID, u as nextWakeAtMs } from "./recovery-adapter-BF5ESanQ.js";
|
|
174
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-
|
|
174
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-qUm5cL9P.js";
|
|
175
175
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CRvbl5q3.js";
|
|
176
|
-
import { a as readChatHistoryPage, c as unsubscribeSessionChanges, i as decodeHistoryCursor, l as assertValidParams, o as resolveDbLeafEntryId, r as InvalidHistoryCursorError, s as resolveDbMessageEntryById, t as sessionsHandlers } from "./sessions-
|
|
177
|
-
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-
|
|
176
|
+
import { a as readChatHistoryPage, c as unsubscribeSessionChanges, i as decodeHistoryCursor, l as assertValidParams, o as resolveDbLeafEntryId, r as InvalidHistoryCursorError, s as resolveDbMessageEntryById, t as sessionsHandlers } from "./sessions-BlXxa7bM.js";
|
|
177
|
+
import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-6yjbNtx-.js";
|
|
178
178
|
import "./node-service-BnyKZNqa.js";
|
|
179
179
|
import "./status.update-BOB92yBQ.js";
|
|
180
180
|
import { i as resolveActiveLogFile, n as readLogSlice } from "./log-tail-BAg8b5Wq.js";
|
|
181
181
|
import { t as installSkill } from "./skills-install-DqCRPwE1.js";
|
|
182
|
-
import { r as runGatewayUpdate } from "./update-runner-
|
|
182
|
+
import { r as runGatewayUpdate } from "./update-runner-CBbs-iN_.js";
|
|
183
183
|
import { n as resolveWebClientPackagedRootSync, t as WEB_CLIENT_BUNDLE_MISSING_MESSAGE } from "./web-client-assets-CJyKwFRS.js";
|
|
184
184
|
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CcKQx_l1.js";
|
|
185
|
-
import { c as heartbeatProbeRunArtifactId, d as runIsolatedHeartbeatProbe, i as HEARTBEAT_PROBE_REASON, l as isHeartbeatProbeError, o as assertHeartbeatProbeDeliveryIsSafe, p as readValidationActivation, r as HEARTBEAT_PROBE_ALLOWED_TARGET, s as assertHeartbeatProbeParamsAreClosed, t as VALIDATION_ABORT_COMMAND, u as probeSessionKey$1 } from "./operator-commands-
|
|
185
|
+
import { c as heartbeatProbeRunArtifactId, d as runIsolatedHeartbeatProbe, i as HEARTBEAT_PROBE_REASON, l as isHeartbeatProbeError, o as assertHeartbeatProbeDeliveryIsSafe, p as readValidationActivation, r as HEARTBEAT_PROBE_ALLOWED_TARGET, s as assertHeartbeatProbeParamsAreClosed, t as VALIDATION_ABORT_COMMAND, u as probeSessionKey$1 } from "./operator-commands-EsKoI4yV.js";
|
|
186
186
|
import { createRequire } from "node:module";
|
|
187
187
|
import { cpuUsage, memoryUsage, resourceUsage, uptime } from "node:process";
|
|
188
188
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -1082,7 +1082,7 @@ function resolveVerificationStore(params = {}) {
|
|
|
1082
1082
|
|
|
1083
1083
|
//#endregion
|
|
1084
1084
|
//#region src/infra/exec-approval-forwarder.ts
|
|
1085
|
-
const log$
|
|
1085
|
+
const log$30 = createSubsystemLogger("gateway/exec-approvals");
|
|
1086
1086
|
const DEFAULT_MODE = "session";
|
|
1087
1087
|
function normalizeMode(mode) {
|
|
1088
1088
|
return mode ?? DEFAULT_MODE;
|
|
@@ -1220,7 +1220,7 @@ async function deliverToTargets(params) {
|
|
|
1220
1220
|
payloads: [{ text: params.text }]
|
|
1221
1221
|
});
|
|
1222
1222
|
} catch (err) {
|
|
1223
|
-
log$
|
|
1223
|
+
log$30.error(`exec approvals: failed to deliver to ${channel}:${target.to}: ${String(err)}`);
|
|
1224
1224
|
}
|
|
1225
1225
|
});
|
|
1226
1226
|
await Promise.allSettled(deliveries);
|
|
@@ -1309,7 +1309,7 @@ function createExecApprovalForwarder(deps = {}) {
|
|
|
1309
1309
|
deliver,
|
|
1310
1310
|
shouldSend: () => pending.get(request.id) === pendingEntry
|
|
1311
1311
|
}).catch((err) => {
|
|
1312
|
-
log$
|
|
1312
|
+
log$30.error(`exec approvals: failed to deliver request ${request.id}: ${String(err)}`);
|
|
1313
1313
|
});
|
|
1314
1314
|
return true;
|
|
1315
1315
|
};
|
|
@@ -1681,7 +1681,7 @@ function scheduleGatewayUpdateCheck(params) {
|
|
|
1681
1681
|
|
|
1682
1682
|
//#endregion
|
|
1683
1683
|
//#region src/sessions/session-runs/restart-transitions.ts
|
|
1684
|
-
const log$
|
|
1684
|
+
const log$29 = createSubsystemLogger("sessions/restart-transitions");
|
|
1685
1685
|
async function transition(input, recoveryEnabled) {
|
|
1686
1686
|
const store = input.store ?? getConfiguredSessionStorageRuntime()?.runtime?.runs;
|
|
1687
1687
|
if (!store) return [];
|
|
@@ -1692,14 +1692,14 @@ async function transition(input, recoveryEnabled) {
|
|
|
1692
1692
|
recoveryReason: input.reason,
|
|
1693
1693
|
recoveryEnabled
|
|
1694
1694
|
});
|
|
1695
|
-
if (transitioned.length > 0) log$
|
|
1695
|
+
if (transitioned.length > 0) log$29.info("transitioned active runs for restart", {
|
|
1696
1696
|
count: transitioned.length,
|
|
1697
1697
|
recoveryEnabled,
|
|
1698
1698
|
reason: input.reason
|
|
1699
1699
|
});
|
|
1700
1700
|
return transitioned;
|
|
1701
1701
|
} catch (err) {
|
|
1702
|
-
log$
|
|
1702
|
+
log$29.warn("failed to transition active runs for restart", {
|
|
1703
1703
|
recoveryEnabled,
|
|
1704
1704
|
error: String(err)
|
|
1705
1705
|
});
|
|
@@ -1768,7 +1768,7 @@ function resolveChannelRestartReason(snapshot, evaluation) {
|
|
|
1768
1768
|
|
|
1769
1769
|
//#endregion
|
|
1770
1770
|
//#region src/gateway/channel-health-monitor.ts
|
|
1771
|
-
const log$
|
|
1771
|
+
const log$28 = createSubsystemLogger("gateway/health-monitor");
|
|
1772
1772
|
const DEFAULT_CHECK_INTERVAL_MS = 5 * 6e4;
|
|
1773
1773
|
const DEFAULT_MONITOR_STARTUP_GRACE_MS = 6e4;
|
|
1774
1774
|
const DEFAULT_COOLDOWN_CYCLES = 2;
|
|
@@ -1828,11 +1828,11 @@ function startChannelHealthMonitor(deps) {
|
|
|
1828
1828
|
if (now - record.lastRestartAt <= cooldownMs) continue;
|
|
1829
1829
|
pruneOldRestarts(record, now);
|
|
1830
1830
|
if (record.restartsThisHour.length >= maxRestartsPerHour) {
|
|
1831
|
-
log$
|
|
1831
|
+
log$28.warn?.(`[${channelId}:${accountId}] health-monitor: hit ${maxRestartsPerHour} restarts/hour limit, skipping`);
|
|
1832
1832
|
continue;
|
|
1833
1833
|
}
|
|
1834
1834
|
const reason = resolveChannelRestartReason(status, health);
|
|
1835
|
-
log$
|
|
1835
|
+
log$28.info?.(`[${channelId}:${accountId}] health-monitor: restarting (reason: ${reason})`);
|
|
1836
1836
|
try {
|
|
1837
1837
|
if (status.running) await channelManager.stopChannel(channelId, accountId);
|
|
1838
1838
|
channelManager.resetRestartAttempts(channelId, accountId);
|
|
@@ -1841,7 +1841,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1841
1841
|
record.restartsThisHour.push({ at: now });
|
|
1842
1842
|
restartRecords.set(key, record);
|
|
1843
1843
|
} catch (err) {
|
|
1844
|
-
log$
|
|
1844
|
+
log$28.error?.(`[${channelId}:${accountId}] health-monitor: restart failed: ${String(err)}`);
|
|
1845
1845
|
}
|
|
1846
1846
|
}
|
|
1847
1847
|
}
|
|
@@ -1861,7 +1861,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
1861
1861
|
abortSignal?.addEventListener("abort", stop, { once: true });
|
|
1862
1862
|
timer = setInterval(() => void runCheck(), checkIntervalMs);
|
|
1863
1863
|
if (typeof timer === "object" && "unref" in timer) timer.unref();
|
|
1864
|
-
log$
|
|
1864
|
+
log$28.info?.(`started (interval: ${Math.round(checkIntervalMs / 1e3)}s, startup-grace: ${Math.round(timing.monitorStartupGraceMs / 1e3)}s, channel-connect-grace: ${Math.round(timing.channelConnectGraceMs / 1e3)}s)`);
|
|
1865
1865
|
}
|
|
1866
1866
|
return { stop };
|
|
1867
1867
|
}
|
|
@@ -3067,10 +3067,10 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3067
3067
|
const { getConfiguredSessionStorageRuntime } = await import("./model-selection-k68XU4oS.js").then((n) => n.hi);
|
|
3068
3068
|
const runtime = getConfiguredSessionStorageRuntime()?.runtime;
|
|
3069
3069
|
const gatewayInstanceId = getGatewayInstanceId();
|
|
3070
|
-
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-
|
|
3070
|
+
const { tryGetAgentTurnRuntime } = await import("./agent-turn-runner-CUoz_Fkl.js").then((n) => n.t);
|
|
3071
3071
|
const backbone = tryGetAgentTurnRuntime()?.backbone;
|
|
3072
3072
|
const { createOutboundDeliveryRecoveryAdapter } = await import("./delivery-recovery-adapter-CXwijCdD.js");
|
|
3073
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
3073
|
+
const { deliverOutboundPayloads } = await import("./deliver-rLn-23ud.js").then((n) => n.n);
|
|
3074
3074
|
adapters.push(createOutboundDeliveryRecoveryAdapter({
|
|
3075
3075
|
cfg,
|
|
3076
3076
|
deliver: deliverOutboundPayloads,
|
|
@@ -3084,7 +3084,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3084
3084
|
sessionRuns = void 0;
|
|
3085
3085
|
}
|
|
3086
3086
|
if (sessionRuns && wiring?.agentTurnStager) {
|
|
3087
|
-
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-
|
|
3087
|
+
const { createSessionRunRecoveryAdapter } = await import("./recovery-adapter-DF25-zSH.js");
|
|
3088
3088
|
adapters.push(createSessionRunRecoveryAdapter({
|
|
3089
3089
|
store: sessionRuns,
|
|
3090
3090
|
cfg,
|
|
@@ -3100,7 +3100,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3100
3100
|
lease: wiring?.lease ? () => wiring.lease?.() ?? { isArmed: () => false } : void 0
|
|
3101
3101
|
}));
|
|
3102
3102
|
if (backbone && wiring?.agentTurnStager) {
|
|
3103
|
-
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-
|
|
3103
|
+
const { createAgentTurnRecoveryAdapter } = await import("./agent-turn-recovery-adapter-CL4IrGUo.js");
|
|
3104
3104
|
adapters.push(createAgentTurnRecoveryAdapter({
|
|
3105
3105
|
backbone,
|
|
3106
3106
|
stager: wiring.agentTurnStager
|
|
@@ -3122,7 +3122,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3122
3122
|
}));
|
|
3123
3123
|
}
|
|
3124
3124
|
if (sessionRuns) {
|
|
3125
|
-
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-
|
|
3125
|
+
const { createEmbeddedPiRecoveryAdapter } = await import("./pi-embedded-recovery-adapter-BHTdeEKa.js");
|
|
3126
3126
|
adapters.push(createEmbeddedPiRecoveryAdapter({
|
|
3127
3127
|
sessionRuns,
|
|
3128
3128
|
cfg,
|
|
@@ -3130,7 +3130,7 @@ async function assembleFirstPartyAdapters(cfg, wiring) {
|
|
|
3130
3130
|
stager: wiring?.agentTurnStager,
|
|
3131
3131
|
isRunActive: isEmbeddedPiRunActive
|
|
3132
3132
|
}));
|
|
3133
|
-
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-
|
|
3133
|
+
const { createAcpRuntimeRecoveryAdapter } = await import("./recovery-adapter-BT12fVyO.js");
|
|
3134
3134
|
adapters.push(createAcpRuntimeRecoveryAdapter({ sessionRuns }));
|
|
3135
3135
|
}
|
|
3136
3136
|
if (backbone) {
|
|
@@ -3771,7 +3771,7 @@ function createChannelManager(opts) {
|
|
|
3771
3771
|
|
|
3772
3772
|
//#endregion
|
|
3773
3773
|
//#region src/gateway/server-chat.ts
|
|
3774
|
-
const log$
|
|
3774
|
+
const log$27 = createSubsystemLogger("gateway/chat-final");
|
|
3775
3775
|
const CHAT_TERMINAL_DURABILITY_TIMEOUT_MS = 5e3;
|
|
3776
3776
|
function resolveHeartbeatAckMaxChars$1() {
|
|
3777
3777
|
try {
|
|
@@ -4013,14 +4013,14 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4013
4013
|
const pending = pendingTerminalBySession.get(sessionKey);
|
|
4014
4014
|
const durability = waitForPendingWrites(writes, CHAT_TERMINAL_DURABILITY_TIMEOUT_MS);
|
|
4015
4015
|
const gate = (pending ?? Promise.resolve()).then(() => durability).then((outcome) => {
|
|
4016
|
-
if (outcome === "timeout") log$
|
|
4016
|
+
if (outcome === "timeout") log$27.warn("chat terminal broadcast before transcript durability (timeout)", {
|
|
4017
4017
|
runId: sourceRunId,
|
|
4018
4018
|
sessionKey,
|
|
4019
4019
|
timeoutMs: CHAT_TERMINAL_DURABILITY_TIMEOUT_MS
|
|
4020
4020
|
});
|
|
4021
4021
|
sendChatTerminal(sessionKey, payload);
|
|
4022
4022
|
}).catch((err) => {
|
|
4023
|
-
log$
|
|
4023
|
+
log$27.warn("chat terminal broadcast failed while waiting for transcript durability", {
|
|
4024
4024
|
runId: sourceRunId,
|
|
4025
4025
|
sessionKey,
|
|
4026
4026
|
err
|
|
@@ -4127,7 +4127,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
4127
4127
|
* Automatically starts `gog gmail watch serve` when the gateway starts,
|
|
4128
4128
|
* if hooks.gmail is configured with an account.
|
|
4129
4129
|
*/
|
|
4130
|
-
const log$
|
|
4130
|
+
const log$26 = createSubsystemLogger("gmail-watcher");
|
|
4131
4131
|
const ADDRESS_IN_USE_RE = /address already in use|EADDRINUSE/i;
|
|
4132
4132
|
function isAddressInUseError(line) {
|
|
4133
4133
|
return ADDRESS_IN_USE_RE.test(line);
|
|
@@ -4151,13 +4151,13 @@ async function startGmailWatch(cfg) {
|
|
|
4151
4151
|
const result = await runCommandWithTimeout(args, { timeoutMs: 12e4 });
|
|
4152
4152
|
if (result.code !== 0) {
|
|
4153
4153
|
const message = result.stderr || result.stdout || "gog watch start failed";
|
|
4154
|
-
log$
|
|
4154
|
+
log$26.error(`watch start failed: ${message}`);
|
|
4155
4155
|
return false;
|
|
4156
4156
|
}
|
|
4157
|
-
log$
|
|
4157
|
+
log$26.info(`watch started for ${cfg.account}`);
|
|
4158
4158
|
return true;
|
|
4159
4159
|
} catch (err) {
|
|
4160
|
-
log$
|
|
4160
|
+
log$26.error(`watch start error: ${String(err)}`);
|
|
4161
4161
|
return false;
|
|
4162
4162
|
}
|
|
4163
4163
|
}
|
|
@@ -4166,7 +4166,7 @@ async function startGmailWatch(cfg) {
|
|
|
4166
4166
|
*/
|
|
4167
4167
|
function spawnGogServe(cfg) {
|
|
4168
4168
|
const args = buildGogWatchServeArgs(cfg);
|
|
4169
|
-
log$
|
|
4169
|
+
log$26.info(`starting gog ${args.join(" ")}`);
|
|
4170
4170
|
let addressInUse = false;
|
|
4171
4171
|
const child = spawn("gog", args, {
|
|
4172
4172
|
stdio: [
|
|
@@ -4178,25 +4178,25 @@ function spawnGogServe(cfg) {
|
|
|
4178
4178
|
});
|
|
4179
4179
|
child.stdout?.on("data", (data) => {
|
|
4180
4180
|
const line = data.toString().trim();
|
|
4181
|
-
if (line) log$
|
|
4181
|
+
if (line) log$26.info(`[gog] ${line}`);
|
|
4182
4182
|
});
|
|
4183
4183
|
child.stderr?.on("data", (data) => {
|
|
4184
4184
|
const line = data.toString().trim();
|
|
4185
4185
|
if (!line) return;
|
|
4186
4186
|
if (isAddressInUseError(line)) addressInUse = true;
|
|
4187
|
-
log$
|
|
4187
|
+
log$26.warn(`[gog] ${line}`);
|
|
4188
4188
|
});
|
|
4189
4189
|
child.on("error", (err) => {
|
|
4190
|
-
log$
|
|
4190
|
+
log$26.error(`gog process error: ${String(err)}`);
|
|
4191
4191
|
});
|
|
4192
4192
|
child.on("exit", (code, signal) => {
|
|
4193
4193
|
if (shuttingDown) return;
|
|
4194
4194
|
if (addressInUse) {
|
|
4195
|
-
log$
|
|
4195
|
+
log$26.warn("gog serve failed to bind (address already in use); stopping restarts. Another watcher is likely running. Set OPENCLAW_SKIP_GMAIL_WATCHER=1 or stop the other process.");
|
|
4196
4196
|
watcherProcess = null;
|
|
4197
4197
|
return;
|
|
4198
4198
|
}
|
|
4199
|
-
log$
|
|
4199
|
+
log$26.warn(`gog exited (code=${code}, signal=${signal}); restarting in 5s`);
|
|
4200
4200
|
watcherProcess = null;
|
|
4201
4201
|
setTimeout(() => {
|
|
4202
4202
|
if (shuttingDown || !currentConfig) return;
|
|
@@ -4236,15 +4236,15 @@ async function startGmailWatcher(cfg) {
|
|
|
4236
4236
|
port: runtimeConfig.serve.port,
|
|
4237
4237
|
target: runtimeConfig.tailscale.target
|
|
4238
4238
|
});
|
|
4239
|
-
log$
|
|
4239
|
+
log$26.info(`tailscale ${runtimeConfig.tailscale.mode} configured for port ${runtimeConfig.serve.port}`);
|
|
4240
4240
|
} catch (err) {
|
|
4241
|
-
log$
|
|
4241
|
+
log$26.error(`tailscale setup failed: ${String(err)}`);
|
|
4242
4242
|
return {
|
|
4243
4243
|
started: false,
|
|
4244
4244
|
reason: `tailscale setup failed: ${String(err)}`
|
|
4245
4245
|
};
|
|
4246
4246
|
}
|
|
4247
|
-
if (!await startGmailWatch(runtimeConfig)) log$
|
|
4247
|
+
if (!await startGmailWatch(runtimeConfig)) log$26.warn("gmail watch start failed, but continuing with serve");
|
|
4248
4248
|
shuttingDown = false;
|
|
4249
4249
|
watcherProcess = spawnGogServe(runtimeConfig);
|
|
4250
4250
|
const renewMs = runtimeConfig.renewEveryMinutes * 6e4;
|
|
@@ -4252,7 +4252,7 @@ async function startGmailWatcher(cfg) {
|
|
|
4252
4252
|
if (shuttingDown) return;
|
|
4253
4253
|
startGmailWatch(runtimeConfig);
|
|
4254
4254
|
}, renewMs);
|
|
4255
|
-
log$
|
|
4255
|
+
log$26.info(`gmail watcher started for ${runtimeConfig.account} (renew every ${runtimeConfig.renewEveryMinutes}m)`);
|
|
4256
4256
|
return { started: true };
|
|
4257
4257
|
}
|
|
4258
4258
|
/**
|
|
@@ -4265,7 +4265,7 @@ async function stopGmailWatcher() {
|
|
|
4265
4265
|
renewInterval = null;
|
|
4266
4266
|
}
|
|
4267
4267
|
if (watcherProcess) {
|
|
4268
|
-
log$
|
|
4268
|
+
log$26.info("stopping gmail watcher");
|
|
4269
4269
|
watcherProcess.kill("SIGTERM");
|
|
4270
4270
|
await new Promise((resolve) => {
|
|
4271
4271
|
const timeout = setTimeout(() => {
|
|
@@ -4280,7 +4280,7 @@ async function stopGmailWatcher() {
|
|
|
4280
4280
|
watcherProcess = null;
|
|
4281
4281
|
}
|
|
4282
4282
|
currentConfig = null;
|
|
4283
|
-
log$
|
|
4283
|
+
log$26.info("gmail watcher stopped");
|
|
4284
4284
|
}
|
|
4285
4285
|
|
|
4286
4286
|
//#endregion
|
|
@@ -5656,7 +5656,7 @@ async function runCronIsolatedAgentTurn(params) {
|
|
|
5656
5656
|
|
|
5657
5657
|
//#endregion
|
|
5658
5658
|
//#region src/cron/run-log.ts
|
|
5659
|
-
const log$
|
|
5659
|
+
const log$25 = createSubsystemLogger("cron/run-log");
|
|
5660
5660
|
function assertSafeCronRunLogJobId(jobId) {
|
|
5661
5661
|
const trimmed = jobId.trim();
|
|
5662
5662
|
if (!trimmed) throw new Error("invalid cron run log job id");
|
|
@@ -5698,7 +5698,7 @@ async function pruneIfNeeded(filePath, opts) {
|
|
|
5698
5698
|
const stat = await fs$1.stat(filePath).catch(() => null);
|
|
5699
5699
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
5700
5700
|
const raw = await fs$1.readFile(filePath, "utf-8").catch((err) => {
|
|
5701
|
-
log$
|
|
5701
|
+
log$25.warn("cron run-log: prune skipped (read failed)", {
|
|
5702
5702
|
filePath,
|
|
5703
5703
|
err: String(err)
|
|
5704
5704
|
});
|
|
@@ -11741,9 +11741,6 @@ const VOICE_INTERRUPTED_MARKER = " [interrupted]";
|
|
|
11741
11741
|
const CHAT_HISTORY_TEXT_MAX_CHARS = 12e3;
|
|
11742
11742
|
const CHAT_HISTORY_MAX_SINGLE_MESSAGE_BYTES = 128 * 1024;
|
|
11743
11743
|
const CHAT_HISTORY_OVERSIZED_PLACEHOLDER = "[chat.history omitted: message too large]";
|
|
11744
|
-
/** Twice the default storage probe timeout: how long chat.history waits for a booting gateway's session storage before it answers UNAVAILABLE. */
|
|
11745
|
-
const CHAT_HISTORY_STORAGE_START_WAIT_MS = 1e4;
|
|
11746
|
-
const CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS = 1e3;
|
|
11747
11744
|
let chatHistoryPlaceholderEmitCount = 0;
|
|
11748
11745
|
function stripDisallowedChatControlChars(message) {
|
|
11749
11746
|
let output = "";
|
|
@@ -12545,13 +12542,6 @@ const chatHandlers = {
|
|
|
12545
12542
|
return;
|
|
12546
12543
|
}
|
|
12547
12544
|
const { sessionKey, limit, maxChars, before } = params;
|
|
12548
|
-
if (!(await context.storageStartup?.whenReleased(CHAT_HISTORY_STORAGE_START_WAIT_MS) ?? true)) {
|
|
12549
|
-
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage is still starting", {
|
|
12550
|
-
retryable: true,
|
|
12551
|
-
retryAfterMs: CHAT_HISTORY_STORAGE_START_RETRY_AFTER_MS
|
|
12552
|
-
}));
|
|
12553
|
-
return;
|
|
12554
|
-
}
|
|
12555
12545
|
const { cfg, storePath, entry } = loadSessionEntry(sessionKey);
|
|
12556
12546
|
const sessionId = entry?.sessionId;
|
|
12557
12547
|
const sessionAgentId = resolveSessionAgentId({
|
|
@@ -14742,7 +14732,7 @@ async function replayApproval(ctx) {
|
|
|
14742
14732
|
|
|
14743
14733
|
//#endregion
|
|
14744
14734
|
//#region src/infra/exec-audit.ts
|
|
14745
|
-
const log$
|
|
14735
|
+
const log$24 = createSubsystemLogger("infra/exec-audit");
|
|
14746
14736
|
function emitAuditRecord(request, decision) {
|
|
14747
14737
|
const inv = request.invocation;
|
|
14748
14738
|
const argvSummary = inv.mode === "argv" ? `${inv.executable} ${redactArgvForAudit(inv.args).join(" ")}` : inv.mode === "shell" ? redactCommandText(inv.command) : inv.mode === "approved-script" ? inv.scriptId : `${inv.serverId}/${inv.toolName}`;
|
|
@@ -14773,7 +14763,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14773
14763
|
timeoutMs: request.timeoutMs,
|
|
14774
14764
|
stdinPresent: request.stdin === "present-redacted"
|
|
14775
14765
|
};
|
|
14776
|
-
if (record.outcome === "deny") log$
|
|
14766
|
+
if (record.outcome === "deny") log$24.warn("exec-audit deny", {
|
|
14777
14767
|
effect: record.effect,
|
|
14778
14768
|
sourceRule: record.sourceRule,
|
|
14779
14769
|
reason: record.reason,
|
|
@@ -14782,7 +14772,7 @@ function emitAuditRecord(request, decision) {
|
|
|
14782
14772
|
normalizedArgv: record.normalizedArgv,
|
|
14783
14773
|
policyId: record.policyId
|
|
14784
14774
|
});
|
|
14785
|
-
else log$
|
|
14775
|
+
else log$24.info("exec-audit", {
|
|
14786
14776
|
effect: record.effect,
|
|
14787
14777
|
sourceRule: record.sourceRule,
|
|
14788
14778
|
outcome: record.outcome,
|
|
@@ -15130,7 +15120,7 @@ function reEvaluatePoliciesForPath(reResolvedRequest, envSanitization, policies
|
|
|
15130
15120
|
|
|
15131
15121
|
//#endregion
|
|
15132
15122
|
//#region src/infra/load-policies-for-request.ts
|
|
15133
|
-
const log$
|
|
15123
|
+
const log$23 = createSubsystemLogger("infra/load-policies-for-request");
|
|
15134
15124
|
/**
|
|
15135
15125
|
* User-scoped policy source backed by the v2 exec-approvals store
|
|
15136
15126
|
* (`~/.openclaw/exec-approvals.json`). The store is migrated v1→v2 on load
|
|
@@ -15149,7 +15139,7 @@ function createUserPolicySource() {
|
|
|
15149
15139
|
try {
|
|
15150
15140
|
return (await loadExecApprovalsV2()).policies;
|
|
15151
15141
|
} catch (error) {
|
|
15152
|
-
log$
|
|
15142
|
+
log$23.warn("user policy store load failed; user policies will not apply", { error });
|
|
15153
15143
|
return [];
|
|
15154
15144
|
}
|
|
15155
15145
|
} };
|
|
@@ -16294,7 +16284,7 @@ const nodeHandlers = {
|
|
|
16294
16284
|
const p = params;
|
|
16295
16285
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
16296
16286
|
await respondUnavailableOnThrow(respond, async () => {
|
|
16297
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
16287
|
+
const { handleNodeEvent } = await import("./server-node-events-BYTgaAay.js");
|
|
16298
16288
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
16299
16289
|
await handleNodeEvent({
|
|
16300
16290
|
deps: context.deps,
|
|
@@ -17091,7 +17081,7 @@ function resolveSteerResult(params) {
|
|
|
17091
17081
|
|
|
17092
17082
|
//#endregion
|
|
17093
17083
|
//#region src/gateway/session-title-completion.ts
|
|
17094
|
-
const log$
|
|
17084
|
+
const log$22 = createSubsystemLogger("gateway/session-title-completion");
|
|
17095
17085
|
const SESSION_TITLE_COMPLETION_TIMEOUT_MS = 15e3;
|
|
17096
17086
|
const SESSION_TITLE_MAX_CHARS = 60;
|
|
17097
17087
|
/** Upstream openclaw's dashboard-session-title prompt wording (ADR 0084 s5, mission M4). */
|
|
@@ -17142,7 +17132,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17142
17132
|
try {
|
|
17143
17133
|
const resolved = deps.resolveModel(provider, model, agentDir, cfg);
|
|
17144
17134
|
if (!resolved.model) {
|
|
17145
|
-
log$
|
|
17135
|
+
log$22.warn("session title model unresolved", {
|
|
17146
17136
|
...logFields,
|
|
17147
17137
|
error: resolved.error
|
|
17148
17138
|
});
|
|
@@ -17156,7 +17146,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17156
17146
|
let apiKey;
|
|
17157
17147
|
if (!auth.apiKey) {
|
|
17158
17148
|
if (auth.mode !== "aws-sdk") {
|
|
17159
|
-
log$
|
|
17149
|
+
log$22.warn("session title no api key resolved", {
|
|
17160
17150
|
...logFields,
|
|
17161
17151
|
mode: auth.mode
|
|
17162
17152
|
});
|
|
@@ -17171,7 +17161,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17171
17161
|
})).token;
|
|
17172
17162
|
else apiKey = auth.apiKey;
|
|
17173
17163
|
if (controller.signal.aborted) {
|
|
17174
|
-
log$
|
|
17164
|
+
log$22.warn("session title generation timed out before dispatch", logFields);
|
|
17175
17165
|
return null;
|
|
17176
17166
|
}
|
|
17177
17167
|
const response = await deps.completeSimple(resolved.model, {
|
|
@@ -17188,11 +17178,11 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17188
17178
|
signal: controller.signal
|
|
17189
17179
|
});
|
|
17190
17180
|
if (response.stopReason === "aborted") {
|
|
17191
|
-
log$
|
|
17181
|
+
log$22.warn("session title generation timed out", logFields);
|
|
17192
17182
|
return null;
|
|
17193
17183
|
}
|
|
17194
17184
|
if (response.stopReason === "error") {
|
|
17195
|
-
log$
|
|
17185
|
+
log$22.warn("session title generation provider error", {
|
|
17196
17186
|
...logFields,
|
|
17197
17187
|
error: response.errorMessage
|
|
17198
17188
|
});
|
|
@@ -17202,7 +17192,7 @@ async function generateSessionTitleCompletion(req, overrides) {
|
|
|
17202
17192
|
if (!text) return null;
|
|
17203
17193
|
return normalizeSessionTitle(text);
|
|
17204
17194
|
} catch (error) {
|
|
17205
|
-
log$
|
|
17195
|
+
log$22.warn("session title generation failed", {
|
|
17206
17196
|
...logFields,
|
|
17207
17197
|
error: error instanceof Error ? error.message : String(error)
|
|
17208
17198
|
});
|
|
@@ -17383,6 +17373,218 @@ const skillsHandlers = {
|
|
|
17383
17373
|
}
|
|
17384
17374
|
};
|
|
17385
17375
|
|
|
17376
|
+
//#endregion
|
|
17377
|
+
//#region src/gateway/storage-method-policy.ts
|
|
17378
|
+
const STORAGE_METHOD_POLICY_REQUIRED = [
|
|
17379
|
+
"chat.history",
|
|
17380
|
+
"sessions.claims.status",
|
|
17381
|
+
"sessions.runHistory",
|
|
17382
|
+
"sessions.runs.cancel",
|
|
17383
|
+
"sessions.runs.continue",
|
|
17384
|
+
"sessions.runs.events",
|
|
17385
|
+
"sessions.runs.get",
|
|
17386
|
+
"sessions.runs.list",
|
|
17387
|
+
"tasks.resetBudget",
|
|
17388
|
+
"tasks.rollback",
|
|
17389
|
+
"tasks.runDryRun",
|
|
17390
|
+
"tasks.runEvents",
|
|
17391
|
+
"tasks.runs.get",
|
|
17392
|
+
"tasks.runs.events",
|
|
17393
|
+
"tasks.runs.list",
|
|
17394
|
+
"tasks.status"
|
|
17395
|
+
];
|
|
17396
|
+
const STORAGE_METHOD_POLICY_BOOT_WRITE = [
|
|
17397
|
+
"chat.inject",
|
|
17398
|
+
"sessions.compact",
|
|
17399
|
+
"sessions.create",
|
|
17400
|
+
"sessions.delete",
|
|
17401
|
+
"sessions.patch",
|
|
17402
|
+
"sessions.reset"
|
|
17403
|
+
];
|
|
17404
|
+
const STORAGE_METHOD_POLICY_NONE = [
|
|
17405
|
+
"connect",
|
|
17406
|
+
"health",
|
|
17407
|
+
"status",
|
|
17408
|
+
"logs.tail",
|
|
17409
|
+
"voicewake.get",
|
|
17410
|
+
"voicewake.set",
|
|
17411
|
+
"channels.status",
|
|
17412
|
+
"channels.logout",
|
|
17413
|
+
"chat.abort",
|
|
17414
|
+
"chat.send",
|
|
17415
|
+
"sessions.abort",
|
|
17416
|
+
"wake",
|
|
17417
|
+
"cron.list",
|
|
17418
|
+
"cron.status",
|
|
17419
|
+
"cron.add",
|
|
17420
|
+
"cron.update",
|
|
17421
|
+
"cron.remove",
|
|
17422
|
+
"cron.run",
|
|
17423
|
+
"cron.runs",
|
|
17424
|
+
"device.pair.list",
|
|
17425
|
+
"device.pair.approve",
|
|
17426
|
+
"device.pair.reject",
|
|
17427
|
+
"device.pair.remove",
|
|
17428
|
+
"device.token.rotate",
|
|
17429
|
+
"device.token.revoke",
|
|
17430
|
+
"diagnostics.runtime.snapshot",
|
|
17431
|
+
"diagnostics.capture.cpu",
|
|
17432
|
+
"diagnostics.capture.heap",
|
|
17433
|
+
"diagnostics.capture.report",
|
|
17434
|
+
"diagnostics.profiling.start",
|
|
17435
|
+
"diagnostics.profiling.stop",
|
|
17436
|
+
"doctor.memory.status",
|
|
17437
|
+
"doctor.recovery.inspect",
|
|
17438
|
+
"doctor.recovery.plan",
|
|
17439
|
+
"doctor.recovery.apply",
|
|
17440
|
+
"exec.approvals.get",
|
|
17441
|
+
"exec.approvals.set",
|
|
17442
|
+
"exec.approvals.node.get",
|
|
17443
|
+
"exec.approvals.node.set",
|
|
17444
|
+
"web.login.start",
|
|
17445
|
+
"web.login.wait",
|
|
17446
|
+
"models.authStatus",
|
|
17447
|
+
"models.list",
|
|
17448
|
+
"config.get",
|
|
17449
|
+
"config.schema",
|
|
17450
|
+
"config.set",
|
|
17451
|
+
"config.patch",
|
|
17452
|
+
"config.apply",
|
|
17453
|
+
"wizard.start",
|
|
17454
|
+
"wizard.next",
|
|
17455
|
+
"wizard.cancel",
|
|
17456
|
+
"wizard.status",
|
|
17457
|
+
"talk.config",
|
|
17458
|
+
"talk.mode",
|
|
17459
|
+
"talk.catalog",
|
|
17460
|
+
"talk.session.create",
|
|
17461
|
+
"talk.session.appendAudio",
|
|
17462
|
+
"talk.session.close",
|
|
17463
|
+
"talk.session.cancelTurn",
|
|
17464
|
+
"talk.session.mark",
|
|
17465
|
+
"talk.session.bargeIn",
|
|
17466
|
+
"talk.realtime.session",
|
|
17467
|
+
"talk.realtime.audio",
|
|
17468
|
+
"talk.realtime.mark",
|
|
17469
|
+
"talk.realtime.toolResult",
|
|
17470
|
+
"talk.realtime.bargeIn",
|
|
17471
|
+
"talk.realtime.stop",
|
|
17472
|
+
"talk.realtime.status",
|
|
17473
|
+
"talk.metrics",
|
|
17474
|
+
"tools.catalog",
|
|
17475
|
+
"tts.status",
|
|
17476
|
+
"tts.enable",
|
|
17477
|
+
"tts.disable",
|
|
17478
|
+
"tts.convert",
|
|
17479
|
+
"tts.setProvider",
|
|
17480
|
+
"tts.providers",
|
|
17481
|
+
"skills.status",
|
|
17482
|
+
"skills.bins",
|
|
17483
|
+
"skills.install",
|
|
17484
|
+
"skills.update",
|
|
17485
|
+
"sessions.subscribe",
|
|
17486
|
+
"sessions.list",
|
|
17487
|
+
"sessions.describe",
|
|
17488
|
+
"sessions.compaction.list",
|
|
17489
|
+
"sessions.runs",
|
|
17490
|
+
"sessions.thresholds",
|
|
17491
|
+
"sessions.interrupt",
|
|
17492
|
+
"sessions.preview",
|
|
17493
|
+
"sessions.resolve",
|
|
17494
|
+
"sessions.title.prepare",
|
|
17495
|
+
"sessions.steer",
|
|
17496
|
+
"last-heartbeat",
|
|
17497
|
+
"set-heartbeats",
|
|
17498
|
+
"system-presence",
|
|
17499
|
+
"system-event",
|
|
17500
|
+
"update.run",
|
|
17501
|
+
"node.pair.request",
|
|
17502
|
+
"node.pair.list",
|
|
17503
|
+
"node.pair.approve",
|
|
17504
|
+
"node.pair.reject",
|
|
17505
|
+
"node.pair.verify",
|
|
17506
|
+
"node.rename",
|
|
17507
|
+
"node.list",
|
|
17508
|
+
"node.describe",
|
|
17509
|
+
"node.canvas.capability.refresh",
|
|
17510
|
+
"node.invoke",
|
|
17511
|
+
"node.invoke.result",
|
|
17512
|
+
"node.event",
|
|
17513
|
+
"plugins/health",
|
|
17514
|
+
"push.test",
|
|
17515
|
+
"send",
|
|
17516
|
+
"poll",
|
|
17517
|
+
"usage.status",
|
|
17518
|
+
"usage.cost",
|
|
17519
|
+
"sessions.usage",
|
|
17520
|
+
"sessions.usage.timeseries",
|
|
17521
|
+
"sessions.usage.logs",
|
|
17522
|
+
"agent",
|
|
17523
|
+
"agent.identity.get",
|
|
17524
|
+
"agent.wait",
|
|
17525
|
+
"agent.nudge",
|
|
17526
|
+
"agents.list",
|
|
17527
|
+
"agents.create",
|
|
17528
|
+
"agents.update",
|
|
17529
|
+
"agents.delete",
|
|
17530
|
+
"agents.files.list",
|
|
17531
|
+
"agents.files.get",
|
|
17532
|
+
"agents.files.set",
|
|
17533
|
+
"browser.request"
|
|
17534
|
+
];
|
|
17535
|
+
const STORAGE_METHOD_POLICY = Object.freeze({
|
|
17536
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_REQUIRED.map((method) => [method, "required"])),
|
|
17537
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_BOOT_WRITE.map((method) => [method, "boot-write"])),
|
|
17538
|
+
...Object.fromEntries(STORAGE_METHOD_POLICY_NONE.map((method) => [method, "none"]))
|
|
17539
|
+
});
|
|
17540
|
+
|
|
17541
|
+
//#endregion
|
|
17542
|
+
//#region src/gateway/server-methods/storage-fence.ts
|
|
17543
|
+
const STORAGE_START_WAIT_MS = 1e4;
|
|
17544
|
+
const log$21 = createSubsystemLogger("gateway/storage-fence");
|
|
17545
|
+
const warnedGates = /* @__PURE__ */ new WeakSet();
|
|
17546
|
+
/**
|
|
17547
|
+
* Returns true when this call has been answered by the fence (held out, or answered a typed
|
|
17548
|
+
* error), so dispatch must not run the handler. Runs after authorization and the method-set
|
|
17549
|
+
* rate limits, so an unauthorized caller never learns storage readiness. Absent context gate or
|
|
17550
|
+
* `none`/missing classification means no storage decision applies to the method.
|
|
17551
|
+
*/
|
|
17552
|
+
async function guardStorageRpc(method, context, respond) {
|
|
17553
|
+
const policy = Object.hasOwn(STORAGE_METHOD_POLICY, method) ? STORAGE_METHOD_POLICY[method] : void 0;
|
|
17554
|
+
const gate = context.storageStartup;
|
|
17555
|
+
if (policy === void 0 || policy === "none" || !gate) return false;
|
|
17556
|
+
let state = gate.state();
|
|
17557
|
+
if (state.phase === "ready") return false;
|
|
17558
|
+
state = await gate.whenSettled(STORAGE_START_WAIT_MS);
|
|
17559
|
+
if (state.phase === "ready") return false;
|
|
17560
|
+
if (state.phase === "failed") {
|
|
17561
|
+
if (policy === "boot-write") return false;
|
|
17562
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "session storage failed to start", {
|
|
17563
|
+
retryable: false,
|
|
17564
|
+
details: {
|
|
17565
|
+
code: "storage_start_failed",
|
|
17566
|
+
reasonCodes: state.reasonCodes
|
|
17567
|
+
}
|
|
17568
|
+
}));
|
|
17569
|
+
return true;
|
|
17570
|
+
}
|
|
17571
|
+
if (state.phase === "starting" && !warnedGates.has(gate)) {
|
|
17572
|
+
warnedGates.add(gate);
|
|
17573
|
+
log$21.warn("session storage still starting after 10000ms; storage-backed methods answer RECOVERY_NOT_READY");
|
|
17574
|
+
}
|
|
17575
|
+
const stopping = state.phase === "stopping";
|
|
17576
|
+
respond(false, void 0, errorShape(ErrorCodes.RECOVERY_NOT_READY, stopping ? "gateway is stopping" : "session storage is still starting", {
|
|
17577
|
+
retryable: true,
|
|
17578
|
+
retryAfterMs: 500,
|
|
17579
|
+
details: {
|
|
17580
|
+
producer: "session-storage",
|
|
17581
|
+
phase: state.phase,
|
|
17582
|
+
reasonCodes: [stopping ? "storage_stopping" : "storage_starting"]
|
|
17583
|
+
}
|
|
17584
|
+
}));
|
|
17585
|
+
return true;
|
|
17586
|
+
}
|
|
17587
|
+
|
|
17386
17588
|
//#endregion
|
|
17387
17589
|
//#region src/gateway/server/presence-events.ts
|
|
17388
17590
|
function broadcastPresenceSnapshot(params) {
|
|
@@ -19308,10 +19510,6 @@ function createSttTtsTurnController(params) {
|
|
|
19308
19510
|
const sm = new SttTtsLoopStateMachine();
|
|
19309
19511
|
let sessionClosed = false;
|
|
19310
19512
|
let currentTurn;
|
|
19311
|
-
/** The utterance text whose eager end-of-turn produced (or last resumed) the current turn.
|
|
19312
|
-
* Lives only as long as that turn does: retireTurn() clears it, so a later identical
|
|
19313
|
-
* utterance is a genuine new turn, never a swallowed stale confirmation. */
|
|
19314
|
-
let eagerUtterance;
|
|
19315
19513
|
/** VAL-LOOP-001: every state transition is logged (never the wire — these never carry
|
|
19316
19514
|
* transcript/audio content, only the state names and a short reason tag). */
|
|
19317
19515
|
function transitionState(to, reason) {
|
|
@@ -19426,10 +19624,7 @@ function createSttTtsTurnController(params) {
|
|
|
19426
19624
|
turn.unsubscribeAgentEvents();
|
|
19427
19625
|
sm.resetTurn();
|
|
19428
19626
|
transitionState("listening", "turn-settled");
|
|
19429
|
-
if (currentTurn === turn)
|
|
19430
|
-
currentTurn = void 0;
|
|
19431
|
-
eagerUtterance = void 0;
|
|
19432
|
-
}
|
|
19627
|
+
if (currentTurn === turn) currentTurn = void 0;
|
|
19433
19628
|
}
|
|
19434
19629
|
function emitTurnCancelled(turn, reason) {
|
|
19435
19630
|
if (turn.fillerPlayed || turn.fillerTimer) broadcast(sequencer.next({
|
|
@@ -19577,6 +19772,15 @@ function createSttTtsTurnController(params) {
|
|
|
19577
19772
|
text
|
|
19578
19773
|
});
|
|
19579
19774
|
}
|
|
19775
|
+
function resumeCandidate(turn, text) {
|
|
19776
|
+
if (turn.cancelled || turn.finished) return false;
|
|
19777
|
+
if (text === turn.userText) return false;
|
|
19778
|
+
if (turn.sawTtsAudio) {
|
|
19779
|
+
turnBargeIn.evaluateCandidateText(turn, text);
|
|
19780
|
+
return false;
|
|
19781
|
+
}
|
|
19782
|
+
return wordCount(text) >= 1;
|
|
19783
|
+
}
|
|
19580
19784
|
function handleEndOfTurn(result) {
|
|
19581
19785
|
if (sessionClosed) return;
|
|
19582
19786
|
const text = result.text.trim();
|
|
@@ -19584,29 +19788,25 @@ function createSttTtsTurnController(params) {
|
|
|
19584
19788
|
if (text) startNewTurn(text);
|
|
19585
19789
|
return;
|
|
19586
19790
|
}
|
|
19587
|
-
|
|
19791
|
+
if (resumeCandidate(currentTurn, text)) {
|
|
19792
|
+
teardownTurnForCancel(currentTurn, "turn-resumed");
|
|
19793
|
+
startNewTurn(text);
|
|
19794
|
+
}
|
|
19588
19795
|
}
|
|
19589
|
-
/** VAL-LOOP-006: a partial/
|
|
19590
|
-
* first real assistant audio
|
|
19591
|
-
*
|
|
19592
|
-
*
|
|
19796
|
+
/** VAL-LOOP-006 (ADR 0087 section 4.5): a worded partial/transcript arriving after
|
|
19797
|
+
* end-of-turn but before the first real assistant audio only cancels the in-flight run
|
|
19798
|
+
* (turn-resumed); it never starts a turn itself - the continuation's own end-of-turn starts
|
|
19799
|
+
* it. Once real audio has started, further speech is a barge-in concern - out of scope here
|
|
19800
|
+
* (the dedicated turn-taking task owns it) - so this never fires past that point. */
|
|
19593
19801
|
function handlePossibleResume(text) {
|
|
19594
19802
|
if (sessionClosed) return;
|
|
19595
19803
|
const turn = currentTurn;
|
|
19596
|
-
if (!turn
|
|
19597
|
-
if (
|
|
19598
|
-
if (turn.sawTtsAudio) {
|
|
19599
|
-
turnBargeIn.evaluateCandidateText(turn, text);
|
|
19600
|
-
return;
|
|
19601
|
-
}
|
|
19602
|
-
if (wordCount(text) < 1) return;
|
|
19603
|
-
teardownTurnForCancel(turn, "turn-resumed");
|
|
19604
|
-
startNewTurn(text);
|
|
19804
|
+
if (!turn) return;
|
|
19805
|
+
if (resumeCandidate(turn, text.trim())) teardownTurnForCancel(turn, "turn-resumed");
|
|
19605
19806
|
}
|
|
19606
|
-
/** ADR 0087 section 5: a provider-native resume signal carries no text
|
|
19607
|
-
* handlePossibleResume this only cancels
|
|
19608
|
-
*
|
|
19609
|
-
* starts the next turn, once it arrives with real text. */
|
|
19807
|
+
/** ADR 0087 section 5: a provider-native resume signal carries no text. Like
|
|
19808
|
+
* handlePossibleResume, this only cancels; the continuation's own end-of-turn (routed through
|
|
19809
|
+
* handleEndOfTurn) starts the next turn once it arrives with real text. */
|
|
19610
19810
|
function handleProviderTurnResumed() {
|
|
19611
19811
|
if (sessionClosed) return;
|
|
19612
19812
|
const turn = currentTurn;
|
|
@@ -19618,15 +19818,6 @@ function createSttTtsTurnController(params) {
|
|
|
19618
19818
|
if (sessionClosed) return;
|
|
19619
19819
|
bargeInSurface.handleBargeIn(speechDetectedAt, playbackPausedAt);
|
|
19620
19820
|
}
|
|
19621
|
-
/** A fused-detection provider's early, not-yet-committed end-of-turn: handled exactly like a
|
|
19622
|
-
* committed one, then the utterance is remembered so its committed confirmation (the matching
|
|
19623
|
-
* onTranscript/onEndOfTurn pair) does not re-enter the resume path. Set AFTER handling so this
|
|
19624
|
-
* very event starts/resumes the turn instead of consuming itself. */
|
|
19625
|
-
function handleEagerEndOfTurn(result) {
|
|
19626
|
-
if (sessionClosed) return;
|
|
19627
|
-
handleEndOfTurn(result);
|
|
19628
|
-
eagerUtterance = result.text.trim() || void 0;
|
|
19629
|
-
}
|
|
19630
19821
|
/** Monotonic: a stale/out-of-order mark ack can only hold or advance `heardChars`, never move
|
|
19631
19822
|
* it backward. */
|
|
19632
19823
|
function acknowledgeMark(markName, timestamp) {
|
|
@@ -19636,7 +19827,6 @@ function createSttTtsTurnController(params) {
|
|
|
19636
19827
|
}
|
|
19637
19828
|
return {
|
|
19638
19829
|
handleEndOfTurn,
|
|
19639
|
-
handleEagerEndOfTurn,
|
|
19640
19830
|
handlePossibleResume,
|
|
19641
19831
|
handleProviderTurnResumed,
|
|
19642
19832
|
cancelActiveTurn,
|
|
@@ -19762,7 +19952,7 @@ function createSttTtsLoopSession(params) {
|
|
|
19762
19952
|
},
|
|
19763
19953
|
onEagerEndOfTurn: (result) => {
|
|
19764
19954
|
clearSpeechCapTimer();
|
|
19765
|
-
turnController.
|
|
19955
|
+
turnController.handleEndOfTurn(result);
|
|
19766
19956
|
},
|
|
19767
19957
|
onTurnResumed: () => {
|
|
19768
19958
|
clearSpeechCapTimer();
|
|
@@ -20890,6 +21080,9 @@ async function buildTalkCatalogStreamingTranscriptionSection(params) {
|
|
|
20890
21080
|
rows
|
|
20891
21081
|
};
|
|
20892
21082
|
}
|
|
21083
|
+
function resolveSpeechVoiceId(provider, config) {
|
|
21084
|
+
return config?.voiceId?.trim() || provider.defaultVoiceId?.trim() || void 0;
|
|
21085
|
+
}
|
|
20893
21086
|
async function buildTalkCatalogSpeechSection(params) {
|
|
20894
21087
|
const providers = getRegisteredStreamingSpeechProviders();
|
|
20895
21088
|
const configuredId = params.configuredTtsProviderId?.trim();
|
|
@@ -20901,11 +21094,12 @@ async function buildTalkCatalogSpeechSection(params) {
|
|
|
20901
21094
|
cfg: params.cfg,
|
|
20902
21095
|
apiKey: providerConfig?.apiKey
|
|
20903
21096
|
});
|
|
21097
|
+
const voiceMissing = status.configured && !resolveSpeechVoiceId(provider, providerConfig);
|
|
20904
21098
|
rows.push({
|
|
20905
21099
|
id: provider.id,
|
|
20906
21100
|
label: provider.label,
|
|
20907
|
-
configured: status.configured,
|
|
20908
|
-
...status.diagnostic ? { diagnostic: status.diagnostic } : {},
|
|
21101
|
+
configured: status.configured && !voiceMissing,
|
|
21102
|
+
...status.diagnostic ? { diagnostic: status.diagnostic } : voiceMissing ? { diagnostic: "missing-voice-id" } : {},
|
|
20909
21103
|
modes: ["streaming"],
|
|
20910
21104
|
transports: ["gateway-relay"]
|
|
20911
21105
|
});
|
|
@@ -21074,9 +21268,10 @@ const talkHandlers = {
|
|
|
21074
21268
|
if (p.mode === "stt-tts") {
|
|
21075
21269
|
const sttCandidateId = conversationConfig.sttProvider.trim().toLowerCase();
|
|
21076
21270
|
const sttProvider = getRegisteredRealtimeTranscriptionProviders().find((candidate) => candidate.id.trim().toLowerCase() === sttCandidateId);
|
|
21077
|
-
const { provider: ttsProviderId, config:
|
|
21271
|
+
const { provider: ttsProviderId, config: ttsEntry } = resolveActiveTalkProviderConfig(snapshot.config.talk);
|
|
21272
|
+
const ttsConfig = ttsEntry ?? {};
|
|
21078
21273
|
const ttsProvider = ttsProviderId ? getRegisteredStreamingSpeechProviders().find((candidate) => candidate.id.trim().toLowerCase() === ttsProviderId.trim().toLowerCase()) : void 0;
|
|
21079
|
-
if (!sttProvider || !ttsProvider
|
|
21274
|
+
if (!sttProvider || !ttsProvider) {
|
|
21080
21275
|
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "stt-tts requires a configured STT and TTS provider"));
|
|
21081
21276
|
return;
|
|
21082
21277
|
}
|
|
@@ -21088,14 +21283,26 @@ const talkHandlers = {
|
|
|
21088
21283
|
cfg: snapshot.config,
|
|
21089
21284
|
providerConfig: ttsConfig
|
|
21090
21285
|
});
|
|
21091
|
-
|
|
21286
|
+
const unconfigured = !sttProvider.isConfigured({
|
|
21092
21287
|
cfg: snapshot.config,
|
|
21093
21288
|
providerConfig: resolvedSttProviderConfig
|
|
21094
|
-
})
|
|
21289
|
+
}) ? {
|
|
21290
|
+
seam: "transcription",
|
|
21291
|
+
id: sttProvider.id
|
|
21292
|
+
} : !ttsProvider.isConfigured({
|
|
21095
21293
|
cfg: snapshot.config,
|
|
21096
21294
|
providerConfig: resolvedTtsProviderConfig
|
|
21097
|
-
})
|
|
21098
|
-
|
|
21295
|
+
}) ? {
|
|
21296
|
+
seam: "speech",
|
|
21297
|
+
id: ttsProviderId
|
|
21298
|
+
} : void 0;
|
|
21299
|
+
if (unconfigured) {
|
|
21300
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `stt-tts requires a configured STT and TTS provider: ${unconfigured.seam} provider "${unconfigured.id}" is not configured; check talk.providers.${unconfigured.id}.apiKey`));
|
|
21301
|
+
return;
|
|
21302
|
+
}
|
|
21303
|
+
const voiceId = resolveSpeechVoiceId(ttsProvider, ttsConfig);
|
|
21304
|
+
if (!voiceId) {
|
|
21305
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `stt-tts requires talk.providers.${ttsProviderId}.voiceId: speech provider "${ttsProvider.id}" has no default voice`));
|
|
21099
21306
|
return;
|
|
21100
21307
|
}
|
|
21101
21308
|
const rawSessionKey = p.sessionKey;
|
|
@@ -21118,7 +21325,7 @@ const talkHandlers = {
|
|
|
21118
21325
|
},
|
|
21119
21326
|
ttsProvider,
|
|
21120
21327
|
ttsProviderConfig: resolvedTtsProviderConfig,
|
|
21121
|
-
voiceId
|
|
21328
|
+
voiceId,
|
|
21122
21329
|
modelId: ttsConfig.modelId ?? DEFAULT_TALK_CONVERSATION_MODEL_ID,
|
|
21123
21330
|
outputFormat: ttsConfig.outputFormat ?? "pcm_24000",
|
|
21124
21331
|
locale: conversationConfig.locale,
|
|
@@ -22231,9 +22438,9 @@ function toRedactedEvent(event) {
|
|
|
22231
22438
|
};
|
|
22232
22439
|
}
|
|
22233
22440
|
async function listQueuedView(params, runtime, respond) {
|
|
22234
|
-
const registry =
|
|
22441
|
+
const registry = await resolveTaskOperatorRegistry();
|
|
22235
22442
|
if (!registry) {
|
|
22236
|
-
respond
|
|
22443
|
+
respondTaskRegistryUnavailable(respond);
|
|
22237
22444
|
return;
|
|
22238
22445
|
}
|
|
22239
22446
|
const busWork = runtime.busWork;
|
|
@@ -23909,6 +24116,7 @@ async function handleGatewayRequest(opts) {
|
|
|
23909
24116
|
return;
|
|
23910
24117
|
}
|
|
23911
24118
|
}
|
|
24119
|
+
if (await guardStorageRpc(req.method, context, respond)) return;
|
|
23912
24120
|
await handler({
|
|
23913
24121
|
req,
|
|
23914
24122
|
params: req.params ?? {},
|
|
@@ -24853,7 +25061,7 @@ function normalizeAgentPayload(payload) {
|
|
|
24853
25061
|
async function startBrowserControlServerIfEnabled() {
|
|
24854
25062
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
24855
25063
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
24856
|
-
const mod = override ? await import(override) : await import("./server-
|
|
25064
|
+
const mod = override ? await import(override) : await import("./server-DWJmtex3.js");
|
|
24857
25065
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
24858
25066
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
24859
25067
|
if (!start) return null;
|
|
@@ -31211,29 +31419,56 @@ function createStorageRecoveryContainment(deps) {
|
|
|
31211
31419
|
//#endregion
|
|
31212
31420
|
//#region src/gateway/storage-startup-gate.ts
|
|
31213
31421
|
function createStorageStartupGate() {
|
|
31422
|
+
let phase = { phase: "ready" };
|
|
31214
31423
|
let held = false;
|
|
31215
31424
|
const waiters = /* @__PURE__ */ new Set();
|
|
31425
|
+
const wakeAll = () => {
|
|
31426
|
+
for (const wake of waiters) wake();
|
|
31427
|
+
};
|
|
31216
31428
|
return {
|
|
31217
31429
|
hold() {
|
|
31218
|
-
held
|
|
31430
|
+
if (!held && phase.phase === "ready") {
|
|
31431
|
+
held = true;
|
|
31432
|
+
phase = { phase: "starting" };
|
|
31433
|
+
}
|
|
31219
31434
|
},
|
|
31220
|
-
|
|
31221
|
-
|
|
31222
|
-
|
|
31435
|
+
markReady() {
|
|
31436
|
+
if (phase.phase === "starting") {
|
|
31437
|
+
phase = { phase: "ready" };
|
|
31438
|
+
wakeAll();
|
|
31439
|
+
}
|
|
31223
31440
|
},
|
|
31224
|
-
|
|
31225
|
-
if (
|
|
31226
|
-
|
|
31227
|
-
|
|
31228
|
-
|
|
31229
|
-
waiters.delete(wake);
|
|
31230
|
-
resolve(true);
|
|
31441
|
+
markFailed(reasonCodes) {
|
|
31442
|
+
if (phase.phase === "starting") {
|
|
31443
|
+
phase = {
|
|
31444
|
+
phase: "failed",
|
|
31445
|
+
reasonCodes: [...reasonCodes]
|
|
31231
31446
|
};
|
|
31447
|
+
wakeAll();
|
|
31448
|
+
}
|
|
31449
|
+
},
|
|
31450
|
+
markStopping() {
|
|
31451
|
+
if (phase.phase !== "stopping") {
|
|
31452
|
+
phase = { phase: "stopping" };
|
|
31453
|
+
wakeAll();
|
|
31454
|
+
}
|
|
31455
|
+
},
|
|
31456
|
+
state() {
|
|
31457
|
+
return phase;
|
|
31458
|
+
},
|
|
31459
|
+
whenSettled(timeoutMs) {
|
|
31460
|
+
if (phase.phase !== "starting" && phase.phase !== "stopping") return Promise.resolve(phase);
|
|
31461
|
+
return new Promise((resolve) => {
|
|
31232
31462
|
const timer = setTimeout(() => {
|
|
31233
31463
|
waiters.delete(wake);
|
|
31234
|
-
resolve(
|
|
31464
|
+
resolve(phase);
|
|
31235
31465
|
}, timeoutMs);
|
|
31236
31466
|
timer.unref?.();
|
|
31467
|
+
const wake = () => {
|
|
31468
|
+
clearTimeout(timer);
|
|
31469
|
+
waiters.delete(wake);
|
|
31470
|
+
resolve(phase);
|
|
31471
|
+
};
|
|
31237
31472
|
waiters.add(wake);
|
|
31238
31473
|
});
|
|
31239
31474
|
}
|
|
@@ -35178,7 +35413,12 @@ async function bootGatewayServer(port, opts) {
|
|
|
35178
35413
|
};
|
|
35179
35414
|
fencedStorageSupervisorStart = async () => {
|
|
35180
35415
|
await supervisor.start();
|
|
35181
|
-
|
|
35416
|
+
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35417
|
+
await storageSupervisorStop?.();
|
|
35418
|
+
storageSupervisorStop = null;
|
|
35419
|
+
throw new FatalConfiguredStorageStartError();
|
|
35420
|
+
}
|
|
35421
|
+
storageStartup.markReady();
|
|
35182
35422
|
try {
|
|
35183
35423
|
const { installIncidentAsset } = await import("./incident-install-cGBLZhud.js");
|
|
35184
35424
|
await installIncidentAsset({
|
|
@@ -35211,11 +35451,6 @@ async function bootGatewayServer(port, opts) {
|
|
|
35211
35451
|
noteStorageRestartRequired("session-run-startup-recovery");
|
|
35212
35452
|
noteStorageRestartRequired("shutdown-run-reconciliation");
|
|
35213
35453
|
}
|
|
35214
|
-
if (supervisor.getState() !== "healthy" && !params.resolved.fallbackToJsonlOnError) {
|
|
35215
|
-
await storageSupervisorStop?.();
|
|
35216
|
-
storageSupervisorStop = null;
|
|
35217
|
-
throw new FatalConfiguredStorageStartError();
|
|
35218
|
-
}
|
|
35219
35454
|
};
|
|
35220
35455
|
if (params.bootImmediately) await fencedStorageSupervisorStart();
|
|
35221
35456
|
else storageStartup.hold();
|
|
@@ -35577,7 +35812,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35577
35812
|
const sweepLog = log.child("session-consumer-claim-sweep");
|
|
35578
35813
|
const { createDiagnosticRingBuffer } = await import("./session-consumer-diagnostics-UbdxGCz8.js");
|
|
35579
35814
|
const diagnostics = createDiagnosticRingBuffer();
|
|
35580
|
-
const { setDiagnostics } = await import("./sessions-
|
|
35815
|
+
const { setDiagnostics } = await import("./sessions-BlXxa7bM.js").then((n) => n.n);
|
|
35581
35816
|
if (sessionConsumerClaimSweepCancelled) return;
|
|
35582
35817
|
setDiagnostics(diagnostics);
|
|
35583
35818
|
const lastKnownEnabledState = /* @__PURE__ */ new Map();
|
|
@@ -35616,7 +35851,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35616
35851
|
lastKnownEnabledState,
|
|
35617
35852
|
cfg: loadConfig()
|
|
35618
35853
|
});
|
|
35619
|
-
const { setLastSweepTimestamp } = await import("./sessions-
|
|
35854
|
+
const { setLastSweepTimestamp } = await import("./sessions-BlXxa7bM.js").then((n) => n.n);
|
|
35620
35855
|
setLastSweepTimestamp(Date.now());
|
|
35621
35856
|
} catch (err) {
|
|
35622
35857
|
sweepLog.warn(`session consumer-claim sweep failed: ${String(err)}`);
|
|
@@ -35638,7 +35873,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
35638
35873
|
prepare: () => {
|
|
35639
35874
|
taskPipelineBoot = (async () => {
|
|
35640
35875
|
const { getConfiguredSessionStorageRuntime } = await import("./model-selection-k68XU4oS.js").then((n) => n.hi);
|
|
35641
|
-
const { startTaskPipeline } = await import("./task-pipeline-boot-
|
|
35876
|
+
const { startTaskPipeline } = await import("./task-pipeline-boot-Dihxq0Tg.js");
|
|
35642
35877
|
const pipeline = startTaskPipeline({
|
|
35643
35878
|
getConfigured: getConfiguredSessionStorageRuntime,
|
|
35644
35879
|
cfg: cfgAtStart,
|
|
@@ -35807,7 +36042,17 @@ async function bootGatewayServer(port, opts) {
|
|
|
35807
36042
|
});
|
|
35808
36043
|
try {
|
|
35809
36044
|
recoveryRuntime = await Promise.race([ownInstalled, recoveryStarted]) ?? null;
|
|
36045
|
+
if (storageStartup.state().phase === "starting") {
|
|
36046
|
+
let codes = [];
|
|
36047
|
+
try {
|
|
36048
|
+
codes = recoveryRuntime?.snapshot().reasonCodes ?? [];
|
|
36049
|
+
} catch {
|
|
36050
|
+
codes = [];
|
|
36051
|
+
}
|
|
36052
|
+
storageStartup.markFailed(codes.length > 0 ? codes : ["recovery_start_failed"]);
|
|
36053
|
+
}
|
|
35810
36054
|
} catch (err) {
|
|
36055
|
+
if (storageStartup.state().phase === "starting") storageStartup.markFailed(["recovery_start_failed"]);
|
|
35811
36056
|
if (skillsRefreshTimer) {
|
|
35812
36057
|
clearTimeout(skillsRefreshTimer);
|
|
35813
36058
|
skillsRefreshTimer = null;
|
|
@@ -36018,6 +36263,7 @@ async function bootGatewayServer(port, opts) {
|
|
|
36018
36263
|
startDiagnosticHeartbeat();
|
|
36019
36264
|
}
|
|
36020
36265
|
return { close: async (opts) => {
|
|
36266
|
+
storageStartup.markStopping();
|
|
36021
36267
|
recoveryAdmission.closeAdmission();
|
|
36022
36268
|
await runGlobalGatewayStopSafely({
|
|
36023
36269
|
event: { reason: opts?.reason ?? "gateway stopping" },
|