@visorcraft/idlehands 4.0.15 → 4.0.17
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/CHANGELOG.md +13 -0
- package/dist/{accounts-DLTODa_Z.js → accounts-D-hQsUw-.js} +1 -1
- package/dist/{accounts-DgbTKQoW.js → accounts-D87a1Y_K.js} +1 -1
- package/dist/{accounts-3HS_UAhJ.js → accounts-DsVN0UNw.js} +1 -1
- package/dist/{acp-cli-B-7CXaeS.js → acp-cli-D52jj29o.js} +7 -7
- package/dist/{agent-scope-RA0zXRpu.js → agent-scope-Bn39ugK4.js} +18 -18
- package/dist/{agent-via-gateway-CcaPUQrc.js → agent-via-gateway-BDWomN2t.js} +4 -4
- package/dist/{agent-via-gateway-BvXS1sXv.js → agent-via-gateway-BVY7w5-N.js} +1 -1
- package/dist/{agent-via-gateway-CIM26Dxl.js → agent-via-gateway-BlRwv6D6.js} +2 -2
- package/dist/{agent-via-gateway-BFtbpQpT.js → agent-via-gateway-DSZK5iRF.js} +2 -2
- package/dist/{agents-DPlb4UQu.js → agents-BLa67Gdv.js} +4 -4
- package/dist/{agents.config-8pxRoZvL.js → agents.config-ADCeu0yD.js} +1 -1
- package/dist/{agents.config-BKoyeUnK.js → agents.config-CyEkgCQE.js} +2 -2
- package/dist/{anton-DKA8iAQE.js → anton-CZ5moxh6.js} +22 -4
- package/dist/{anton-BTjKlGm7.js → anton-D-0SP_5T.js} +22 -4
- package/dist/{anton-DhBvDNcB.js → anton-DYEYyPJ1.js} +40 -22
- package/dist/{anton-Dyhtv3C8.js → anton-llLwn1lp.js} +22 -4
- package/dist/{api-key-rotation-B-FTJm5p.js → api-key-rotation-nXQVJErE.js} +1 -1
- package/dist/{audio-preflight-Dl1TO10w.js → audio-preflight-DzjXupNO.js} +31 -31
- package/dist/{audit-BmaVRZSd.js → audit-D12wg2tV.js} +22 -22
- package/dist/{auth-choice-D-_AVWgJ.js → auth-choice-01ELTnLA.js} +1 -1
- package/dist/{auth-choice-D12Wsf7w.js → auth-choice-BDndThZZ.js} +12 -12
- package/dist/{auth-choice-CMUzxwaw.js → auth-choice-CqbTnCYz.js} +10 -10
- package/dist/{auth-choice.apply-helpers-CGcniL1T.js → auth-choice.apply-helpers-pTqMTYmi.js} +1 -1
- package/dist/{auth-store-DDzIMy8_.js → auth-store-CMyrmmSF.js} +7 -7
- package/dist/{auth-token-BJq87X3o.js → auth-token-fKt_cHOj.js} +1 -1
- package/dist/{banner-B6ih1A5q.js → banner-Dv_eAAWw.js} +1 -1
- package/dist/{bindings-B59Q7nsk.js → bindings-DZjkLUU_.js} +1 -1
- package/dist/{browser-cli-Ny1nHwqv.js → browser-cli-Da-0lyq2.js} +11 -11
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-BRL23UCk.js → call-DnTBT02D.js} +9 -9
- package/dist/{channel-account-context-CDbY5AIr.js → channel-account-context-B4nJPU2N.js} +5 -5
- package/dist/{channel-options-DqOp64vm.js → channel-options-BilcK806.js} +1 -1
- package/dist/{channel-options-DdT_iiu2.js → channel-options-BvOLgXCF.js} +3 -3
- package/dist/{channel-selection-ZxRkxpuF.js → channel-selection-3jUl-PyW.js} +1 -1
- package/dist/{channel-web-DjS8VQYO.js → channel-web-B1IazKKL.js} +22 -22
- package/dist/{channel-web-PG7u76pG.js → channel-web-BptLTwvg.js} +2 -2
- package/dist/{channels-cli-1tt6zmdw.js → channels-cli-DejBZZ85.js} +7 -7
- package/dist/{channels-cli-CWxVX3_x.js → channels-cli-FssbSykQ.js} +88 -88
- package/dist/{channels-status-issues-CDpWjdI3.js → channels-status-issues-hgASw9UA.js} +1 -1
- package/dist/{chrome-VBsQfIrt.js → chrome-YguTEaLx.js} +2 -2
- package/dist/{clawbot-cli-uFgYrysW.js → clawbot-cli-C5cDal-5.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-D4FV736E.js → cli-BrQZTuUX.js} +70 -70
- package/dist/{cli-CmOlEYcx.js → cli-j1A8WKSj.js} +2 -2
- package/dist/{client-DxH9hwLn.js → client-DIckPnsi.js} +1 -1
- package/dist/{command-registry-CQ_cgvak.js → command-registry-DZZAmcbA.js} +10 -10
- package/dist/{commands-Dj5LalLo.js → commands-D3BU_t7G.js} +1 -1
- package/dist/{commands-registry-CURlRZQJ.js → commands-registry-Cj4D_1tw.js} +3 -3
- package/dist/{completion-cli-UytEAOmM.js → completion-cli-Cxvf8clb.js} +2 -2
- package/dist/{completion-cli-y9BFk5F6.js → completion-cli-ktxbWAiG.js} +12 -12
- package/dist/{config-cli-DUb0ZGdL.js → config-cli-Bq_MWzp9.js} +1 -1
- package/dist/{config-cli-5c6A3y5U.js → config-cli-CogA71uD.js} +6 -6
- package/dist/{config-guard-BdsOumqh.js → config-guard-DnAyuF6T.js} +17 -17
- package/dist/{config-validation-BvKX6fPw.js → config-validation-DIomLMwH.js} +2 -2
- package/dist/{configure-AlSS40po.js → configure-CPDGJFyt.js} +3 -3
- package/dist/{configure-BPwYKVb4.js → configure-CZUn--aN.js} +16 -16
- package/dist/{control-ui-assets-C7ZpN9hN.js → control-ui-assets-CiaCDBvZ.js} +1 -1
- package/dist/{cron-cli-Xml0Uww8.js → cron-cli-B8uqoogS.js} +12 -12
- package/dist/{daemon-cli-B1Ti51bt.js → daemon-cli-CMBNTpSS.js} +11 -11
- package/dist/{daemon-install-CYPo4M1M.js → daemon-install-DeqQiAad.js} +4 -4
- package/dist/{daemon-install-helpers-BZY9-jNW.js → daemon-install-helpers-Bug_GYuy.js} +9 -9
- package/dist/{deliver--kttnrER.js → deliver-yTpXc5sv.js} +7 -7
- package/dist/{deps-DxMLbT7t.js → deps-BUUwigzc.js} +1 -1
- package/dist/{deps-KIFYHxig.js → deps-B_5kPH1Q.js} +1 -1
- package/dist/{deps-BYfE_aIY.js → deps-CH8f3TJK.js} +6 -6
- package/dist/{deps-TwKaIh1I.js → deps-PAzfFs3Q.js} +1 -1
- package/dist/{devices-cli-BNkO0Fey.js → devices-cli-DVLF8Yvw.js} +7 -7
- package/dist/{diagnostics-DmZbQ8Nc.js → diagnostics-CdUgLS0N.js} +5 -5
- package/dist/{directory-cli-Dz9iXeut.js → directory-cli-BAMS8f9U.js} +9 -9
- package/dist/{dns-cli-DD6hWsdc.js → dns-cli-BdxBk-k_.js} +4 -4
- package/dist/{dock-Y96MzKuM.js → dock-CzF5XYGd.js} +4 -4
- package/dist/{docs-cli-cHkrTB2e.js → docs-cli-SF7es4Zs.js} +4 -4
- package/dist/{doctor-completion-S-XHygGb.js → doctor-completion-i04j1TGW.js} +1 -1
- package/dist/{doctor-completion-HzTBPNbS.js → doctor-completion-iWmUY3B4.js} +2 -2
- package/dist/{doctor-config-flow-Ck4oCjfl.js → doctor-config-flow-8qXzBx09.js} +14 -14
- package/dist/{emergency-stop-BDwI4Cyl.js → emergency-stop-CfKEsUr_.js} +70 -70
- package/dist/{emergency-stop-DpMAMIiz.js → emergency-stop-CzExWKhr.js} +2 -2
- package/dist/{emergency-stop-DOi-rKmj.js → emergency-stop-DAmKucxm.js} +2 -2
- package/dist/{emergency-stop--ScwariE.js → emergency-stop-tKLAiFAG.js} +2 -2
- package/dist/{enable-o_s6PBsC.js → enable-DaA_orGN.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-allowlist-Co2tJSEo.js → exec-approvals-allowlist-8AkOwwIr.js} +1 -1
- package/dist/{exec-approvals-cli-CyjTnYfk.js → exec-approvals-cli-CtoJW2K-.js} +15 -15
- package/dist/{exec-safe-bin-runtime-policy-DaoU9-ni.js → exec-safe-bin-runtime-policy-DYXuBKqH.js} +2 -2
- package/dist/extensionAPI.js +2 -2
- package/dist/{fs-safe-_JQUGpZf.js → fs-safe-DNFrxDS-.js} +15 -15
- package/dist/{gateway-cli-DQcjWJr7.js → gateway-cli-C8P5BVto.js} +148 -148
- package/dist/{gateway-cli-B4T44JsM.js → gateway-cli-DSJcNJYR.js} +9 -9
- package/dist/{gateway-rpc-Du-ZpDjh.js → gateway-rpc-6vnhO4v8.js} +1 -1
- package/dist/{health-D7UCYzfy.js → health-BN8WNyon.js} +1 -1
- package/dist/{health--39yieH5.js → health-CNZK5D2k.js} +13 -13
- package/dist/{hooks-cli-CGB7TcZZ.js → hooks-cli-L32lBsp7.js} +3 -3
- package/dist/{hooks-cli-Cko_uweG.js → hooks-cli-t7tiLn8P.js} +84 -84
- package/dist/{hooks-status-DNGo2G8Q.js → hooks-status-CPIWc_bx.js} +1 -1
- package/dist/{idlehands-root-B8cUs-5M.js → idlehands-root-DFL2GrNW.js} +8 -8
- package/dist/{image-DSDEbSiO.js → image-C2JZiK-6.js} +5 -5
- package/dist/{image-ops-BU-VdLZu.js → image-ops-BkoEFRYH.js} +10 -10
- package/dist/index.js +80 -80
- package/dist/{inspect-ISQZuNM5.js → inspect-Dg16DMLn.js} +4 -4
- package/dist/{install-safe-path-ChNR9pl6.js → install-safe-path-CNNMzJl9.js} +19 -19
- package/dist/{installs-CNubze2L.js → installs-ST3UaUVJ.js} +9 -9
- package/dist/{ir-VncGpwA1.js → ir-DV0Hszc8.js} +6 -6
- package/dist/{lifecycle-core-B6UoqYTJ.js → lifecycle-core-DOScNyOv.js} +5 -5
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{local-roots-q0xbefkf.js → local-roots-Cco87A2_.js} +2 -2
- package/dist/{login-CfUhrgWT.js → login-Dl_lsEHS.js} +4 -4
- package/dist/{login-qr-DBMsUxgL.js → login-qr-B68cBRH0.js} +7 -7
- package/dist/{logs-cli-CH4mFhUt.js → logs-cli-BluGGq03.js} +8 -8
- package/dist/{manager-BMAFgXyU.js → manager-BBeTPO2h.js} +13 -13
- package/dist/{manifest-registry-Bak1x76G.js → manifest-registry-RfRn8HJx.js} +1 -1
- package/dist/{markdown-tables-DZClqsNo.js → markdown-tables-C5hTDqNm.js} +1 -1
- package/dist/{memory-cli-CUGwnVIY.js → memory-cli-4wfelGdK.js} +12 -12
- package/dist/{model-C-icShH2.js → model-Bd-05WpB.js} +2 -2
- package/dist/{model-catalog-D9no0CH2.js → model-catalog-BCsDrrvq.js} +3 -3
- package/dist/{model-picker-BkXoTOiA.js → model-picker-D3U0wJCO.js} +4 -4
- package/dist/{model-selection-0dGxYGp8.js → model-selection-CSn9tUuH.js} +16 -16
- package/dist/{models-cli-d_ead6LU.js → models-cli-ChStpcQY.js} +79 -79
- package/dist/{models-cli-NlT2N74B.js → models-cli-dd-wJvj0.js} +4 -4
- package/dist/{models-config-C5A1wDWh.js → models-config-lQpqp472.js} +6 -6
- package/dist/{models-CWfcMshO.js → models-mQeB9JXZ.js} +2 -2
- package/dist/{node-cli-Ch7K7WtL.js → node-cli-DhD8-NHR.js} +32 -32
- package/dist/{node-service-C3vyxHLA.js → node-service-GpI0jzKr.js} +1 -1
- package/dist/{nodes-cli-D_hUCPNt.js → nodes-cli-DPzxQ0mY.js} +14 -14
- package/dist/{nodes-screen-CcpPaFxa.js → nodes-screen-CIAn0wXq.js} +4 -4
- package/dist/{npm-registry-spec-BCbbfIhX.js → npm-registry-spec-BfeHLbIQ.js} +16 -16
- package/dist/{npm-resolution-Dpn9DNPz.js → npm-resolution-WKW4cIrd.js} +1 -1
- package/dist/{npm-resolution-DIJeEhoa.js → npm-resolution-tT1BUac2.js} +3 -3
- package/dist/{onboard-DFseyAG9.js → onboard-D1wKkHHC.js} +2 -2
- package/dist/{onboard-channels-mLWuxUlN.js → onboard-channels-CG1R8Ozs.js} +1 -1
- package/dist/{onboard-channels-CG1HcORq.js → onboard-channels-CRHp5hA-.js} +20 -20
- package/dist/{onboard-custom-DUbzMMu7.js → onboard-custom-D2sCP3_S.js} +4 -4
- package/dist/{onboard-helpers-BQmbMJxJ.js → onboard-helpers-ByhJg2ST.js} +8 -8
- package/dist/{onboard-hooks-D9teGxfH.js → onboard-hooks-_1Jgimeu.js} +4 -4
- package/dist/{onboard-remote-CIjhaP2W.js → onboard-remote-DuhWSiAO.js} +1 -1
- package/dist/{onboard-Raw5nkGc.js → onboard-rze7pzoW.js} +6 -6
- package/dist/{onboard-skills-BsaUIuq6.js → onboard-skills-vFwEasAg.js} +4 -4
- package/dist/{onboarding-CzzjhwRf.js → onboarding-BgHfZNln.js} +3 -3
- package/dist/{onboarding-DYlNLV9R.js → onboarding-BxvY_aEE.js} +13 -13
- package/dist/{onboarding.finalize-CIOBj6Jy.js → onboarding.finalize-5_UCPMAw.js} +7 -7
- package/dist/{onboarding.finalize-BJYuOTPe.js → onboarding.finalize-DnCFQEPR.js} +82 -82
- package/dist/{onboarding.gateway-config-CEQMyj8l.js → onboarding.gateway-config-qVAY6x7I.js} +16 -16
- package/dist/{openai-model-default-7J6cw1rA.js → openai-model-default-OPCCNNS0.js} +2 -2
- package/dist/{outbound-DPTxwchq.js → outbound-CG19kl0w.js} +4 -4
- package/dist/{plugin-sdk/outbound-attachment-BisU5Vji.js → outbound-attachment-jYdMgCml.js} +2 -2
- package/dist/{pairing-cli-jwx6hMsM.js → pairing-cli-QJYYDcIK.js} +10 -10
- package/dist/{pairing-labels-ChQJzbS9.js → pairing-labels-DuZ7ih-T.js} +1 -1
- package/dist/{pairing-store-CPpEEQJO.js → pairing-store-qvpPoWL_.js} +2 -2
- package/dist/{pairing-token-lKXTMQ_M.js → pairing-token-3hoCgQqp.js} +7 -7
- package/dist/{path-alias-guards-FXBVVTLw.js → path-alias-guards-BCskHdfJ.js} +3 -3
- package/dist/{path-safety-DwibX65n.js → path-safety-C1Y004P_.js} +1 -1
- package/dist/{paths-B-CLQ5RT.js → paths-Bt0fZexW.js} +9 -9
- package/dist/{pi-embedded-Swc7dke2.js → pi-embedded-BcmA23Ak.js} +12 -12
- package/dist/{pi-embedded-7XGjNojd.js → pi-embedded-D_8x2ll-.js} +12 -12
- package/dist/{pi-embedded-helpers-BCsfqpDt.js → pi-embedded-helpers-BkzrQ5bZ.js} +6 -6
- package/dist/{pi-model-discovery-BIP3RjXl.js → pi-model-discovery-Bt79ifyi.js} +1 -1
- package/dist/{pi-tools.policy-DfITIKZj.js → pi-tools.policy-B_ME3yF6.js} +5 -5
- package/dist/{plugin-auto-enable-7DUxMy6A.js → plugin-auto-enable-BMuSi4aV.js} +3 -3
- package/dist/{plugin-registry-BAd0SoEv.js → plugin-registry-C3IHwz9i.js} +3 -3
- package/dist/{plugin-registry-D9Z1bMNt.js → plugin-registry-CncOKeD3.js} +1 -1
- package/dist/plugin-sdk/{accounts-CBVAw5_G.js → accounts-B9nfRzyn.js} +1 -1
- package/dist/plugin-sdk/{accounts-BLYMokxV.js → accounts-Kt6ygPsC.js} +2 -2
- package/dist/plugin-sdk/{accounts-C5tHm1UI.js → accounts-mjFAny5F.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-jl80I5G9.js → agent-scope-CU41EMlR.js} +2 -2
- package/dist/plugin-sdk/{agent-via-gateway-B3F-royZ.js → agent-via-gateway-CDKZ0Jk9.js} +55 -55
- package/dist/plugin-sdk/{anton-DfpQdXJJ.js → anton-Bp5L7uaN.js} +25 -7
- package/dist/plugin-sdk/{api-key-rotation-D6nK54XH.js → api-key-rotation-CZhCWd61.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-CKqqN8ty.js → audio-preflight-CRgDehfO.js} +30 -30
- package/dist/plugin-sdk/{auth-store-DaPWgQTx.js → auth-store-DycBvVqL.js} +1 -1
- package/dist/plugin-sdk/{bindings-xXgmJGxj.js → bindings-BDKKHGv-.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-loOg1DRw.js → channel-activity-TcS_VfJk.js} +3 -3
- package/dist/plugin-sdk/{channel-web-BWE_kecR.js → channel-web-DcgShj6y.js} +24 -24
- package/dist/plugin-sdk/{chrome-Cb9FgiCI.js → chrome-BCTizrZD.js} +6 -6
- package/dist/plugin-sdk/{chunk-PW4MBmaN.js → chunk-DZr5xuqv.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-B5m2EsHz.js → commands-registry-BqJLwZYh.js} +5 -5
- package/dist/plugin-sdk/{config-CEgzwk0J.js → config-BzPMtEKA.js} +10 -10
- package/dist/plugin-sdk/{deliver-BNfMF0Nb.js → deliver-Cfc1UCre.js} +10 -10
- package/dist/plugin-sdk/{deps-B0MfJgDH.js → deps-B5eQTF_d.js} +6 -6
- package/dist/plugin-sdk/{diagnostic-ByA6zvzu.js → diagnostic-B8VzcqLf.js} +1 -1
- package/dist/plugin-sdk/{dock-DKQYtT6-.js → dock-CMURqoee.js} +6 -6
- package/dist/plugin-sdk/{emergency-stop-rTRWpk26.js → emergency-stop-DQppo4RU.js} +55 -55
- package/dist/plugin-sdk/{env-5XecRTLs.js → env-qurSiOO2.js} +1 -1
- package/dist/plugin-sdk/{errors-CMcD8Lhh.js → errors-UqLewZJL.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-DwdUEdmT.js → fetch-guard-C174s8ZV.js} +1 -1
- package/dist/plugin-sdk/{fs-safe-qsx2_8-o.js → fs-safe-CCXTOK7j.js} +2 -2
- package/dist/plugin-sdk/{image-C_1tftC8.js → image-DDuK8tyO.js} +6 -6
- package/dist/plugin-sdk/{image-ops-CXSUo-AM.js → image-ops-BRYGGDwL.js} +1 -1
- package/dist/plugin-sdk/index.js +60 -60
- package/dist/plugin-sdk/{ir-kdDGpPMq.js → ir-Bv0Zbp2E.js} +5 -5
- package/dist/plugin-sdk/{local-roots-DjB6DYeI.js → local-roots-bHCsSVt_.js} +4 -4
- package/dist/plugin-sdk/{login-DIwO5D5Y.js → login-CkQrnY2G.js} +6 -6
- package/dist/plugin-sdk/{login-qr-CpCAJuvT.js → login-qr-DAeHibH_.js} +8 -8
- package/dist/plugin-sdk/{manager-Dox9r7og.js → manager-CTC1S_c9.js} +10 -10
- package/dist/plugin-sdk/{markdown-tables-Drtwd4J5.js → markdown-tables-DfUQHRZY.js} +1 -1
- package/dist/plugin-sdk/{message-channel-CQ0qkGHj.js → message-channel-DiMXmQeQ.js} +1 -1
- package/dist/plugin-sdk/{outbound-Dx_q6JAI.js → outbound-B1twcfz5.js} +6 -6
- package/dist/{outbound-attachment-Bot3bRnK.js → plugin-sdk/outbound-attachment-Bs7fNaqv.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-C_uBEYb4.js → path-alias-guards-yyy61qHh.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-B68z4sHq.js → pi-embedded-helpers-BAm9cWol.js} +16 -16
- package/dist/plugin-sdk/{pi-model-discovery-Dt6899be.js → pi-model-discovery-Bt6JtUFr.js} +1 -1
- package/dist/plugin-sdk/{plugins-NTjIvHYk.js → plugins-DRPlVBr_.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-Dk2PTZzq.js → pw-ai-CY0evCZ2.js} +10 -10
- package/dist/plugin-sdk/{qmd-manager-juzrnopq.js → qmd-manager-BckPBwZX.js} +5 -5
- package/dist/plugin-sdk/{query-expansion-xBXvzdkL.js → query-expansion-CPqK-tTR.js} +2 -2
- package/dist/plugin-sdk/{redact-B6VQH3UQ.js → redact-Ub8sMBBC.js} +1 -1
- package/dist/plugin-sdk/{replies-ZovJp-3F.js → replies-DwTNZJgi.js} +3 -3
- package/dist/plugin-sdk/{reply-C2G4DKTN.js → reply-BtQHoQT3.js} +96 -96
- package/dist/plugin-sdk/{reply-prefix--mxmTL7A.js → reply-prefix-BqV0o7_7.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-CnUtsDch.js → resolve-outbound-target-DAdNGEqG.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-BZABUE4J.js → resolve-route-C5mAwY-o.js} +3 -3
- package/dist/plugin-sdk/{retry-Bh7jveNm.js → retry-2OVzZJMZ.js} +1 -1
- package/dist/plugin-sdk/{runner-CZz1tOIR.js → runner-Ck0w3rcz.js} +10 -10
- package/dist/plugin-sdk/{send-Cb5NIN8s.js → send-A4Lv5nrg.js} +7 -7
- package/dist/plugin-sdk/{send-0EVlThEG.js → send-BBD-m-nM.js} +10 -10
- package/dist/plugin-sdk/{send-BCjVQhp3.js → send-CPeuqOlq.js} +13 -13
- package/dist/plugin-sdk/{send-B26cNPqY.js → send-CaPoBwby.js} +6 -6
- package/dist/plugin-sdk/{send-CHUGIZs9.js → send-SsqudCMv.js} +7 -7
- package/dist/plugin-sdk/{session-DdJj6_DW.js → session-DpL4uk1J.js} +3 -3
- package/dist/plugin-sdk/{sessions-DNx9c2O2.js → sessions-CQ5iD4Uq.js} +6 -6
- package/dist/plugin-sdk/{skill-commands-DorIK8kn.js → skill-commands-C_O9I71g.js} +5 -5
- package/dist/plugin-sdk/{skills-Dh_Cf2PA.js → skills-DmiIiX4l.js} +8 -8
- package/dist/plugin-sdk/{store-CCCXwngh.js → store-BI3rLJdW.js} +2 -2
- package/dist/plugin-sdk/{subsystem-DWPzKeZ0.js → subsystem-lJo9gqAK.js} +1 -1
- package/dist/plugin-sdk/{tables-CF9W23Rd.js → tables-C4X_nAUQ.js} +1 -1
- package/dist/plugin-sdk/{target-errors-DaH0qYtL.js → target-errors-CXh6e9ZE.js} +2 -2
- package/dist/plugin-sdk/{tokens-Y97UKh4C.js → tokens-CU9S3S7t.js} +1 -1
- package/dist/plugin-sdk/{tool-images-BMRkn_yk.js → tool-images-Cf9aWlVu.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-Cv8wyfAi.js → tool-loop-detection-DuwkSqZL.js} +2 -2
- package/dist/plugin-sdk/{upgrade-command-DKUGbn8D.js → upgrade-command-y1YvsJbf.js} +12 -2
- package/dist/plugin-sdk/{utils-Dyj2wV4e.js → utils-dP-FpIgu.js} +2 -2
- package/dist/plugin-sdk/web-Cg6vlkku.js +71 -0
- package/dist/plugin-sdk/{whatsapp-actions-B5g-Rywy.js → whatsapp-actions-Bcknq6EZ.js} +23 -23
- package/dist/{plugins-D46VZh7u.js → plugins-B4hASNc2.js} +2 -2
- package/dist/{plugins-cli-BYfDyWXn.js → plugins-cli-BMptU-1l.js} +80 -80
- package/dist/{plugins-cli-DP46ipIu.js → plugins-cli-CMYlin6k.js} +3 -3
- package/dist/{ports-B2o0FSFD.js → ports-B07M55Gr.js} +1 -1
- package/dist/{ports-SQy1d-RL.js → ports-DWJO5S52.js} +2 -2
- package/dist/{program-BlV0XOMu.js → program-DyMaBEqF.js} +8 -8
- package/dist/{program-context-PC7Knx3s.js → program-context-BxflGz_G.js} +43 -43
- package/dist/{prompt-select-styled-BgfuPDVv.js → prompt-select-styled-CI3hobey.js} +37 -37
- package/dist/{prompt-select-styled-BEnn1bwr.js → prompt-select-styled-es3PJxfH.js} +4 -4
- package/dist/{provider-auth-helpers-CrjXAqYu.js → provider-auth-helpers-CrGScfnN.js} +1 -1
- package/dist/{provider-auth-helpers-CKIkgNDk.js → provider-auth-helpers-DYxaYmlq.js} +5 -5
- package/dist/{push-apns-B4sxQAG3.js → push-apns-BNxgGXQy.js} +1 -1
- package/dist/{push-apns-BPmS_f8e.js → push-apns-CjAXPy2N.js} +5 -5
- package/dist/{pw-ai-7i9eGnLh.js → pw-ai-BGALvhDi.js} +11 -11
- package/dist/{qmd-manager-B-qeywfQ.js → qmd-manager-CVcPfkhL.js} +19 -19
- package/dist/{qr-cli-CSt5ihwG.js → qr-cli-D2Oh8f0U.js} +1 -1
- package/dist/{query-expansion-Clts_AGz.js → query-expansion-i5I3yavb.js} +12 -12
- package/dist/{redact-snapshot-BBNDQZIe.js → redact-snapshot-CtIVs92s.js} +1 -1
- package/dist/{register.agent-DRcOj2U3.js → register.agent-B9f0mtlc.js} +9 -9
- package/dist/{register.agent-uaM-OgFM.js → register.agent-DrVFgVpf.js} +95 -95
- package/dist/register.configure-BxZRBEJ9.js +168 -0
- package/dist/{register.configure-BebpNVXc.js → register.configure-DAlBU97I.js} +8 -8
- package/dist/{register.maintenance-CjWtRkPb.js → register.maintenance-BThQUyMI.js} +9 -9
- package/dist/{register.maintenance-Cr0SJRGa.js → register.maintenance-G_dZOyQA.js} +90 -90
- package/dist/{register.message-BNqRwnPx.js → register.message-BVTuvjQA.js} +71 -71
- package/dist/{register.message-DMAqqNBh.js → register.message-DKaxesxx.js} +3 -3
- package/dist/{register.onboard-9Z1ghVgM.js → register.onboard-CnoQ56yq.js} +18 -18
- package/dist/{register.onboard-DDLj9mJ2.js → register.onboard-CwtL9YYR.js} +2 -2
- package/dist/{register.orchestrator-anton-BybNaYi1.js → register.orchestrator-anton-2LtPHPXM.js} +14 -14
- package/dist/{register.orchestrator-anton-9Al8Av8i.js → register.orchestrator-anton-Ce55Lxt0.js} +2 -2
- package/dist/{register.setup-yqN0SXow.js → register.setup-Dg5LmRxd.js} +2 -2
- package/dist/{register.setup-Z1tBfa9d.js → register.setup-_s2CQaBF.js} +21 -21
- package/dist/{register.status-health-sessions-r-mpQR1m.js → register.status-health-sessions-DX2OgAeG.js} +4 -4
- package/dist/{register.status-health-sessions-Di92AnoH.js → register.status-health-sessions-iSQzPXD0.js} +82 -82
- package/dist/{register.subclis-DPQqxIZd.js → register.subclis-YeKuHCRg.js} +10 -10
- package/dist/{replies-hSFVxL4h.js → replies-Czp4hvpS.js} +1 -1
- package/dist/{reply-ZWOav11z.js → reply-DKIv9jez.js} +153 -153
- package/dist/{reply-prefix-C3y4zpTl.js → reply-prefix-BMEdvSpA.js} +1 -1
- package/dist/{resolve-route-D_AbcmD6.js → resolve-route-Ef_Yt2Dw.js} +2 -2
- package/dist/{rpc-CCimHATv.js → rpc-DDTp_J6f.js} +1 -1
- package/dist/{run-main-DDbBATo6.js → run-main-BwWO5erE.js} +15 -15
- package/dist/{runner-DzszLzI4.js → runner-BFG54hnb.js} +20 -20
- package/dist/{runtime-XmXLaHNk.js → runtime-DEmy759r.js} +2 -2
- package/dist/{sandbox-DcUw5h3p.js → sandbox-CfPbhDY_.js} +20 -20
- package/dist/{sandbox-cli-DGvJ7Eeq.js → sandbox-cli-B4wLJr21.js} +22 -22
- package/dist/{secrets-cli-Bgp_H_bH.js → secrets-cli-CidAOBfl.js} +9 -9
- package/dist/{security-cli-MQ__Ca6v.js → security-cli-Ch7AhbhS.js} +39 -39
- package/dist/{send-C4v0Leny.js → send-BCPkAE2k.js} +6 -6
- package/dist/{send-DuwdEkLw.js → send-BPwTl4-K.js} +4 -4
- package/dist/{send-DQiw_nGD.js → send-CEavqqEz.js} +6 -6
- package/dist/{send-DwdHiC7_.js → send-CVIXqubC.js} +13 -13
- package/dist/{send--lzpNy4f.js → send-DDMaLJAQ.js} +7 -7
- package/dist/{server-D6MltJIF.js → server-BpSbZAwg.js} +14 -14
- package/dist/{server-context-DI0W_H7R.js → server-context-BxNSTpH6.js} +10 -10
- package/dist/{server-lifecycle-B5PlrlbG.js → server-lifecycle-CGKrGrhM.js} +2 -2
- package/dist/{server-node-events-DNJLKEMT.js → server-node-events-CZ5OkouD.js} +71 -71
- package/dist/{server-node-events-BcZPS5tj.js → server-node-events-lbb8M18B.js} +3 -3
- package/dist/{service-C8NMS3m_.js → service-Bj2oSfpw.js} +15 -15
- package/dist/{session-CdnrRhb4.js → session-BKVySI8q.js} +1 -1
- package/dist/{sessions-BtPXimXQ.js → sessions-BqWocozB.js} +14 -14
- package/dist/{shared-CpDPo3hJ.js → shared-DnQ4iyXk.js} +2 -2
- package/dist/{shared-DpLSpJIl.js → shared-Jzrx8DfN.js} +1 -1
- package/dist/{skill-commands-BFzmZAfo.js → skill-commands-BwIRWSCI.js} +5 -5
- package/dist/{skill-scanner-D7mzXRXd.js → skill-scanner-B4Ftsbd2.js} +5 -5
- package/dist/{skills-DlvDyK8L.js → skills-TIyQDZx7.js} +3 -3
- package/dist/{skills-cli-BhKGhjbO.js → skills-cli-5lbXi4Lh.js} +5 -5
- package/dist/{skills-install-tr6wRWZj.js → skills-install-D0JHP5uM.js} +4 -4
- package/dist/{skills-status-qjQ8XP0h.js → skills-status-Q9skQExW.js} +1 -1
- package/dist/{status-geIYZraQ.js → status-BE1Y0CKS.js} +2 -2
- package/dist/{status-BXSiFfmy.js → status-Bd9NYE1U.js} +24 -24
- package/dist/{status.update-CTi6vuWj.js → status.update-C3uRz7W6.js} +2 -2
- package/dist/{store-kH9wHHbO.js → store-CLNuI8-G.js} +5 -5
- package/dist/{subagent-registry-C6uygQa1.js → subagent-registry-CTZmDdGV.js} +12 -12
- package/dist/{system-cli-3T-OTIKv.js → system-cli-DBp9Zmvt.js} +8 -8
- package/dist/{system-run-approval-context-CISBXlNw.js → system-run-approval-context-xZVoE4nS.js} +1 -1
- package/dist/{system-run-command-qJdgzxLp.js → system-run-command-BIhrK3OI.js} +1 -1
- package/dist/{systemd-CaCR5CyM.js → systemd-DyrVLTI0.js} +9 -9
- package/dist/{systemd-hints-DHu-HVFx.js → systemd-hints-BoKKzRI_.js} +6 -6
- package/dist/{systemd-linger-B7XlUHk_.js → systemd-linger-DrhGd61G.js} +1 -1
- package/dist/{tables-g9xkflht.js → tables-CZSD889r.js} +1 -1
- package/dist/{target-errors-bLIVFsbF.js → target-errors-BYuWhuLU.js} +4 -4
- package/dist/{tool-images-CHqepyF_.js → tool-images-DZHrc4pq.js} +1 -1
- package/dist/{tui-lalhRHve.js → tui-DWGHGeZ3.js} +6 -6
- package/dist/{tui-cli-BVKWJ9X7.js → tui-cli-DKyA5pZ2.js} +30 -30
- package/dist/{update-cli-BxVcRBy_.js → update-cli-D-4_OhRR.js} +9 -9
- package/dist/{update-cli-VlK55yII.js → update-cli-DvUx2El6.js} +99 -99
- package/dist/{update-D79ppbMQ.js → update-la2AdLf3.js} +3 -3
- package/dist/{update-runner-bFqEARFN.js → update-runner-BvaywdEe.js} +1 -1
- package/dist/{update-runner-Cw7BbjGv.js → update-runner-n2snlf-4.js} +15 -15
- package/dist/{upgrade-command-Bh61DpzA.js → upgrade-command-28wRHZZ2.js} +15 -5
- package/dist/{upgrade-command-CvbcPPIF.js → upgrade-command-BOG7TpIq.js} +12 -2
- package/dist/{upgrade-command-Bvrv4iDU.js → upgrade-command-CWP8S_lt.js} +12 -2
- package/dist/{upgrade-command-L9y3xbza.js → upgrade-command-eqla-KnV.js} +12 -2
- package/dist/{web-BjMMu9l1.js → web-BedV4zGE.js} +3 -3
- package/dist/{web-DptF9st7.js → web-BjP-D0Iz.js} +3 -3
- package/dist/web-CDFWB79W.js +123 -0
- package/dist/{web-TRTzT6rm.js → web-Dbrx58hF.js} +3 -3
- package/dist/{webhooks-cli-2N03q0iY.js → webhooks-cli-BnmVPYkU.js} +6 -6
- package/dist/{whatsapp-actions-Cms8wQM1.js → whatsapp-actions-D2mBFzmK.js} +18 -18
- package/dist/{with-timeout-DEdycYxq.js → with-timeout-BodPmGCY.js} +3 -3
- package/dist/{workspace-D3pARwoB.js → workspace-CDw87aZG.js} +1 -1
- package/dist/{workspace-dirs-SsExQ3Bz.js → workspace-dirs-D3bousoX.js} +1 -1
- package/dist/{wsl-BJW8nTyL.js → wsl-CgXDjE09.js} +2 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/hand/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- 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-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/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 +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/plugin-sdk/web-bxu2RRVS.js +0 -71
- package/dist/register.configure-B0i1vobR.js +0 -168
- package/dist/web-Bjj9WtlF.js +0 -123
|
@@ -1,169 +1,169 @@
|
|
|
1
1
|
import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cn44w-EB.js";
|
|
2
2
|
import { B as theme, D as isPlainObject, E as truncateUtf16Safe, H as getLogger, M as logVerbose, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, r as clamp, y as resolveUserPath, z as isRich } from "./utils-CXzXXV2o.js";
|
|
3
3
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
|
|
4
|
-
import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-
|
|
5
|
-
import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, 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-
|
|
4
|
+
import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-DKIv9jez.js";
|
|
5
|
+
import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, 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-Bn39ugK4.js";
|
|
6
6
|
import { F as triggerInternalHook, M as clearInternalHooks, N as createInternalHookEvent, P as registerInternalHook, a as setConsoleSubsystemFilter, b as getActivePluginRegistry, d as CHANNEL_IDS, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger, w as createEmptyPluginRegistry } from "./subsystem-CGZX2PBV.js";
|
|
7
7
|
import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
|
|
8
8
|
import { C as isSubagentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, h as normalizeAccountId$1, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, w as parseAgentSessionKey, x as isCronRunSessionKey } from "./session-key-Cuihcz_O.js";
|
|
9
|
-
import { a as openBoundaryFileSync, d as isNotFoundPathError, i as openBoundaryFile, m as matchesSkillFilter, o as openVerifiedFileSync, s as sameFileIdentity, t as resolveIdleHandsPackageRoot } from "./idlehands-root-
|
|
9
|
+
import { a as openBoundaryFileSync, d as isNotFoundPathError, i as openBoundaryFile, m as matchesSkillFilter, o as openVerifiedFileSync, s as sameFileIdentity, t as resolveIdleHandsPackageRoot } from "./idlehands-root-DFL2GrNW.js";
|
|
10
10
|
import { i as logDebug, n as runExec, s as logWarn, t as runCommandWithTimeout } from "./exec-CKHMT0tZ.js";
|
|
11
|
-
import { $r as DEFAULT_PROVIDER, Bt as resolveConfigSnapshotHash, Ft as createConfigIO, Ht as writeConfigFile, It as loadConfig, Lt as parseConfigJson5, Nt as migrateLegacyConfig, Qr as DEFAULT_MODEL, Rt as readConfigFileSnapshot, Ut as validateConfigObjectWithPlugins, Wr as normalizeSecretInput, Wt as IdleHandsSchema, Zr as DEFAULT_CONTEXT_TOKENS, _n as looksLikeAvatarPath, a as getModelRefStatus, cn as parseDurationMs, dr as buildTalkConfigResponse, f as resolveAllowedModelRef, fn as isAvatarHttpUrl, g as resolveHooksGmailModel, h as resolveDefaultModelForAgent, ln as parseByteSize, m as resolveConfiguredModelRef, mr as resolveSubagentMaxConcurrent, nr as applyLegacyMigrations, pn as isAvatarImageDataUrl, pr as resolveAgentMaxConcurrent, s as isCliProvider, t as buildAllowedModelSet, tr as applyMergePatch, un as AVATAR_MAX_BYTES, x as resolveThinkingDefault, y as resolveSubagentConfiguredModelSelection, zr as isPidAlive, zt as readConfigFileSnapshotForWrite } from "./model-selection-
|
|
11
|
+
import { $r as DEFAULT_PROVIDER, Bt as resolveConfigSnapshotHash, Ft as createConfigIO, Ht as writeConfigFile, It as loadConfig, Lt as parseConfigJson5, Nt as migrateLegacyConfig, Qr as DEFAULT_MODEL, Rt as readConfigFileSnapshot, Ut as validateConfigObjectWithPlugins, Wr as normalizeSecretInput, Wt as IdleHandsSchema, Zr as DEFAULT_CONTEXT_TOKENS, _n as looksLikeAvatarPath, a as getModelRefStatus, cn as parseDurationMs, dr as buildTalkConfigResponse, f as resolveAllowedModelRef, fn as isAvatarHttpUrl, g as resolveHooksGmailModel, h as resolveDefaultModelForAgent, ln as parseByteSize, m as resolveConfiguredModelRef, mr as resolveSubagentMaxConcurrent, nr as applyLegacyMigrations, pn as isAvatarImageDataUrl, pr as resolveAgentMaxConcurrent, s as isCliProvider, t as buildAllowedModelSet, tr as applyMergePatch, un as AVATAR_MAX_BYTES, x as resolveThinkingDefault, y as resolveSubagentConfiguredModelSelection, zr as isPidAlive, zt as readConfigFileSnapshotForWrite } from "./model-selection-CSn9tUuH.js";
|
|
12
12
|
import "./github-copilot-token-D7lpquOO.js";
|
|
13
13
|
import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
|
|
14
14
|
import "./boolean-BsqeuxE6.js";
|
|
15
15
|
import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-Bx-F45X5.js";
|
|
16
16
|
import "./host-env-security-DkAVVuaw.js";
|
|
17
17
|
import { i as resolveRuntimeServiceVersion, r as VERSION } from "./env-vars-sTMVGyld.js";
|
|
18
|
-
import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-
|
|
19
|
-
import "./dock-
|
|
18
|
+
import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-RfRn8HJx.js";
|
|
19
|
+
import "./dock-CzF5XYGd.js";
|
|
20
20
|
import { _ as normalizeGatewayClientMode, f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-DVauVtrg.js";
|
|
21
|
-
import "./send-
|
|
22
|
-
import { d as registerUnhandledRejectionHandler } from "./runner-
|
|
23
|
-
import { x as extractTextFromChatContent } from "./image-
|
|
24
|
-
import "./models-config-
|
|
25
|
-
import "./pi-model-discovery-
|
|
26
|
-
import "./pi-embedded-helpers-
|
|
27
|
-
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
21
|
+
import "./send-CVIXqubC.js";
|
|
22
|
+
import { d as registerUnhandledRejectionHandler } from "./runner-BFG54hnb.js";
|
|
23
|
+
import { x as extractTextFromChatContent } from "./image-C2JZiK-6.js";
|
|
24
|
+
import "./models-config-lQpqp472.js";
|
|
25
|
+
import "./pi-model-discovery-Bt79ifyi.js";
|
|
26
|
+
import "./pi-embedded-helpers-BkzrQ5bZ.js";
|
|
27
|
+
import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-CfPbhDY_.js";
|
|
28
28
|
import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-4_Wxc542.js";
|
|
29
|
-
import "./chrome-
|
|
29
|
+
import "./chrome-YguTEaLx.js";
|
|
30
30
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-B5Irc_Bi.js";
|
|
31
31
|
import { t as safeEqualSecret } from "./secret-equal-D_OXOV-d.js";
|
|
32
32
|
import "./ip-DJ5wsTQn.js";
|
|
33
33
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C9lH_YnG.js";
|
|
34
34
|
import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, p as resolveHostName, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-XBTtYpJc.js";
|
|
35
35
|
import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-heRVBxh2.js";
|
|
36
|
-
import { c as ensureGatewayStartupAuth, l as mergeGatewayTailscaleConfig } from "./server-context-
|
|
36
|
+
import { c as ensureGatewayStartupAuth, l as mergeGatewayTailscaleConfig } from "./server-context-BxNSTpH6.js";
|
|
37
37
|
import { d as hasBinary } from "./frontmatter-D-sQ_Hqk.js";
|
|
38
|
-
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
39
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
40
|
-
import "./paths-
|
|
38
|
+
import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-TIyQDZx7.js";
|
|
39
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-BCskHdfJ.js";
|
|
40
|
+
import "./paths-Bt0fZexW.js";
|
|
41
41
|
import { i as compileSafeRegex } from "./redact-B_4KNlXs.js";
|
|
42
42
|
import { a as isErrno, n as formatErrorMessage } from "./errors-DZDuPc3M.js";
|
|
43
|
-
import { i as writeFileWithinRoot, n as openFileWithinRoot, r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
43
|
+
import { i as writeFileWithinRoot, n as openFileWithinRoot, r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DNFrxDS-.js";
|
|
44
44
|
import { t as SsrFBlockedError } from "./ssrf-Dw9zzKSM.js";
|
|
45
|
-
import { c as detectMime } from "./image-ops-
|
|
46
|
-
import "./store-
|
|
47
|
-
import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-
|
|
45
|
+
import { c as detectMime } from "./image-ops-BkoEFRYH.js";
|
|
46
|
+
import "./store-CLNuI8-G.js";
|
|
47
|
+
import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-DWJO5S52.js";
|
|
48
48
|
import { t as movePathToTrash } from "./trash-CUFiyQN5.js";
|
|
49
49
|
import "./server-middleware-BC21xYvr.js";
|
|
50
|
-
import { $ as resolveExplicitAgentSessionKey, A as cleanupArchivedSessionTranscripts, C as mergeDeliveryContext, D as archiveFileOnDisk, F as stripEnvelopeFromMessage, H as evaluateSessionFreshness, I as stripEnvelopeFromMessages, J as mergeSessionEntry, M as readSessionPreviewItemsFromTranscript, O as archiveSessionTranscripts, P as resolveSessionTranscriptCandidates, Q as resolveAgentMainSessionKey, R as stripInlineDirectiveTagsForDisplay, T as normalizeSessionDeliveryFields, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Z as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveMainSessionKey, g as updateSessionStore, j as readSessionMessages, k as capArrayByJsonBytes, lt as cleanStaleLockFiles, n as extractDeliveryInfo, r as parseSessionThreadInfo, rt as snapshotSessionOrigin, tt as resolveMainSessionKeyFromConfig, x as deliveryContextFromSession, z as stripInlineDirectiveTagsFromMessageForDisplay } from "./sessions-
|
|
51
|
-
import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
52
|
-
import { i as resolveWhatsAppAccount } from "./accounts-
|
|
53
|
-
import "./accounts-
|
|
54
|
-
import "./accounts-
|
|
55
|
-
import { t as buildChannelAccountBindings } from "./bindings-
|
|
50
|
+
import { $ as resolveExplicitAgentSessionKey, A as cleanupArchivedSessionTranscripts, C as mergeDeliveryContext, D as archiveFileOnDisk, F as stripEnvelopeFromMessage, H as evaluateSessionFreshness, I as stripEnvelopeFromMessages, J as mergeSessionEntry, M as readSessionPreviewItemsFromTranscript, O as archiveSessionTranscripts, P as resolveSessionTranscriptCandidates, Q as resolveAgentMainSessionKey, R as stripInlineDirectiveTagsForDisplay, T as normalizeSessionDeliveryFields, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Z as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveMainSessionKey, g as updateSessionStore, j as readSessionMessages, k as capArrayByJsonBytes, lt as cleanStaleLockFiles, n as extractDeliveryInfo, r as parseSessionThreadInfo, rt as snapshotSessionOrigin, tt as resolveMainSessionKeyFromConfig, x as deliveryContextFromSession, z as stripInlineDirectiveTagsFromMessageForDisplay } from "./sessions-BqWocozB.js";
|
|
51
|
+
import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-B4hASNc2.js";
|
|
52
|
+
import { i as resolveWhatsAppAccount } from "./accounts-D-hQsUw-.js";
|
|
53
|
+
import "./accounts-DsVN0UNw.js";
|
|
54
|
+
import "./accounts-D87a1Y_K.js";
|
|
55
|
+
import { t as buildChannelAccountBindings } from "./bindings-DZjkLUU_.js";
|
|
56
56
|
import "./logging-q4KyMmY-.js";
|
|
57
|
-
import "./auth-store-
|
|
58
|
-
import "./send-
|
|
57
|
+
import "./auth-store-CMyrmmSF.js";
|
|
58
|
+
import "./send-BPwTl4-K.js";
|
|
59
59
|
import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath, l as resolveSessionTranscriptsDirForAgent, o as resolveSessionTranscriptPath, u as resolveStorePath } from "./paths-DRz46q00.js";
|
|
60
60
|
import { i as normalizeInputProvenance } from "./input-provenance-CTnwu8Ge.js";
|
|
61
61
|
import "./chat-envelope-Bebo3vwl.js";
|
|
62
|
-
import "./tool-images-
|
|
62
|
+
import "./tool-images-DZHrc4pq.js";
|
|
63
63
|
import "./tool-display-Dac7lHGW.js";
|
|
64
64
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-yUZu1Vzc.js";
|
|
65
|
-
import "./api-key-rotation-
|
|
66
|
-
import "./local-roots-
|
|
67
|
-
import { n as loadModelCatalog } from "./model-catalog-
|
|
65
|
+
import "./api-key-rotation-nXQVJErE.js";
|
|
66
|
+
import "./local-roots-Cco87A2_.js";
|
|
67
|
+
import { n as loadModelCatalog } from "./model-catalog-BCsDrrvq.js";
|
|
68
68
|
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Dg-QZ_pN.js";
|
|
69
|
-
import { S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver
|
|
70
|
-
import { r as isRestartEnabled } from "./commands-
|
|
71
|
-
import "./commands-registry-
|
|
72
|
-
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-
|
|
73
|
-
import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-
|
|
74
|
-
import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-
|
|
69
|
+
import { S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver-yTpXc5sv.js";
|
|
70
|
+
import { r as isRestartEnabled } from "./commands-D3BU_t7G.js";
|
|
71
|
+
import "./commands-registry-Cj4D_1tw.js";
|
|
72
|
+
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-DIckPnsi.js";
|
|
73
|
+
import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-DnTBT02D.js";
|
|
74
|
+
import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-3hoCgQqp.js";
|
|
75
75
|
import "./fetch-CYe1ekSh.js";
|
|
76
76
|
import "./retry-Db05aSB8.js";
|
|
77
|
-
import { a as readChannelAllowFromStoreSync } from "./pairing-store-
|
|
77
|
+
import { a as readChannelAllowFromStoreSync } from "./pairing-store-qvpPoWL_.js";
|
|
78
78
|
import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-C2s2dPha.js";
|
|
79
|
-
import "./exec-approvals-allowlist-
|
|
80
|
-
import "./exec-safe-bin-runtime-policy-
|
|
81
|
-
import "./nodes-screen-
|
|
82
|
-
import { a as ToolInputError } from "./target-errors-
|
|
79
|
+
import "./exec-approvals-allowlist-8AkOwwIr.js";
|
|
80
|
+
import "./exec-safe-bin-runtime-policy-DYXuBKqH.js";
|
|
81
|
+
import "./nodes-screen-CIAn0wXq.js";
|
|
82
|
+
import { a as ToolInputError } from "./target-errors-BYuWhuLU.js";
|
|
83
83
|
import "./diagnostic-session-state-CJHdRyOy.js";
|
|
84
|
-
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-
|
|
84
|
+
import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-BodPmGCY.js";
|
|
85
85
|
import { f as startDiagnosticHeartbeat, h as isDiagnosticsEnabled, p as stopDiagnosticHeartbeat } from "./diagnostic-ByHpt6q8.js";
|
|
86
|
-
import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send
|
|
87
|
-
import "./model-
|
|
88
|
-
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
89
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
90
|
-
import { n as resolveMemorySearchConfig } from "./manager-
|
|
91
|
-
import "./query-expansion-
|
|
86
|
+
import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-DDMaLJAQ.js";
|
|
87
|
+
import "./model-Bd-05WpB.js";
|
|
88
|
+
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BMEdvSpA.js";
|
|
89
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-4wfelGdK.js";
|
|
90
|
+
import { n as resolveMemorySearchConfig } from "./manager-BBeTPO2h.js";
|
|
91
|
+
import "./query-expansion-i5I3yavb.js";
|
|
92
92
|
import "./chunk-ClMFHJu-.js";
|
|
93
|
-
import "./markdown-tables-
|
|
94
|
-
import "./ir-
|
|
93
|
+
import "./markdown-tables-C5hTDqNm.js";
|
|
94
|
+
import "./ir-DV0Hszc8.js";
|
|
95
95
|
import "./render-DC4qnRqG.js";
|
|
96
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-
|
|
96
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-B_ME3yF6.js";
|
|
97
97
|
import { n as normalizePollInput } from "./polls-CGpoOVqd.js";
|
|
98
98
|
import { t as getChannelActivity } from "./channel-activity-DaCsrdWK.js";
|
|
99
|
-
import "./tables-
|
|
100
|
-
import "./send-
|
|
99
|
+
import "./tables-CZSD889r.js";
|
|
100
|
+
import "./send-BCPkAE2k.js";
|
|
101
101
|
import "./proxy-yk1Oqe9p.js";
|
|
102
102
|
import { t as formatDocsLink } from "./links-15764jZB.js";
|
|
103
103
|
import { n as runCommandWithRuntime } from "./cli-utils-CH2y4E2f.js";
|
|
104
104
|
import { t as formatHelpExamples } from "./help-format-CMAqOikG.js";
|
|
105
105
|
import { n as withProgress } from "./progress-BQLz1r3L.js";
|
|
106
|
-
import "./resolve-route-
|
|
107
|
-
import "./replies-
|
|
108
|
-
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-
|
|
109
|
-
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
110
|
-
import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-
|
|
111
|
-
import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
112
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
113
|
-
import "./outbound-attachment-
|
|
106
|
+
import "./resolve-route-Ef_Yt2Dw.js";
|
|
107
|
+
import "./replies-Czp4hvpS.js";
|
|
108
|
+
import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-BwIRWSCI.js";
|
|
109
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-D3bousoX.js";
|
|
110
|
+
import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-CH8f3TJK.js";
|
|
111
|
+
import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-BMuSi4aV.js";
|
|
112
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-3jUl-PyW.js";
|
|
113
|
+
import "./outbound-attachment-jYdMgCml.js";
|
|
114
114
|
import "./delivery-queue-BvDRo8CK.js";
|
|
115
115
|
import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-DS1rjzML.js";
|
|
116
|
-
import "./send-
|
|
117
|
-
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-
|
|
116
|
+
import "./send-CEavqqEz.js";
|
|
117
|
+
import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-ByhJg2ST.js";
|
|
118
118
|
import "./prompt-style-kmKiCZnm.js";
|
|
119
|
-
import "./pairing-labels-
|
|
119
|
+
import "./pairing-labels-DuZ7ih-T.js";
|
|
120
120
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-D1JXJKiz.js";
|
|
121
|
-
import "./server-lifecycle-
|
|
121
|
+
import "./server-lifecycle-CGKrGrhM.js";
|
|
122
122
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-rQoQSWkz.js";
|
|
123
|
-
import { n as resolveSystemRunCommand } from "./system-run-command-
|
|
123
|
+
import { n as resolveSystemRunCommand } from "./system-run-command-BIhrK3OI.js";
|
|
124
124
|
import { i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-CVWq9u04.js";
|
|
125
125
|
import { t as ensureIdleHandsCliOnPath } from "./path-env-CKSLQUS1.js";
|
|
126
126
|
import "./runtime-guard-X6f4YmTM.js";
|
|
127
|
-
import { t as forceFreePortAndWait } from "./ports-
|
|
128
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
127
|
+
import { t as forceFreePortAndWait } from "./ports-B07M55Gr.js";
|
|
128
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-Q9skQExW.js";
|
|
129
129
|
import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-ulSRJzn7.js";
|
|
130
130
|
import { n as inheritOptionFromParent } from "./command-options-D4MmqoOd.js";
|
|
131
131
|
import { t as WizardCancelledError } from "./prompts-9ZBCWbQB.js";
|
|
132
132
|
import { t as resolveChannelDefaultAccountId } from "./helpers-C6eW1WGZ.js";
|
|
133
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
134
|
-
import { t as isWithinDir } from "./path-safety-
|
|
135
|
-
import "./install-safe-path-
|
|
136
|
-
import "./skill-scanner-
|
|
133
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CyEkgCQE.js";
|
|
134
|
+
import { t as isWithinDir } from "./path-safety-C1Y004P_.js";
|
|
135
|
+
import "./install-safe-path-CNNMzJl9.js";
|
|
136
|
+
import "./skill-scanner-B4Ftsbd2.js";
|
|
137
137
|
import { t as buildChannelAccountSnapshot } from "./status-D8Z2uvBM.js";
|
|
138
|
-
import "./channels-status-issues-
|
|
139
|
-
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-
|
|
140
|
-
import "./daemon-install-helpers-
|
|
141
|
-
import "./systemd-
|
|
142
|
-
import "./service-
|
|
143
|
-
import "./lifecycle-core-
|
|
144
|
-
import "./systemd-hints-
|
|
138
|
+
import "./channels-status-issues-hgASw9UA.js";
|
|
139
|
+
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-CtIVs92s.js";
|
|
140
|
+
import "./daemon-install-helpers-Bug_GYuy.js";
|
|
141
|
+
import "./systemd-DyrVLTI0.js";
|
|
142
|
+
import "./service-Bj2oSfpw.js";
|
|
143
|
+
import "./lifecycle-core-DOScNyOv.js";
|
|
144
|
+
import "./systemd-hints-BoKKzRI_.js";
|
|
145
145
|
import { t as parsePort$1 } from "./parse-port-l2c0Yyf3.js";
|
|
146
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
147
|
-
import "./diagnostics-
|
|
146
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-CMBNTpSS.js";
|
|
147
|
+
import "./diagnostics-CdUgLS0N.js";
|
|
148
148
|
import "./table-B9AmL3M1.js";
|
|
149
149
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-FDdFH5E8.js";
|
|
150
|
-
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-
|
|
151
|
-
import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-
|
|
150
|
+
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Jzrx8DfN.js";
|
|
151
|
+
import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-D12wg2tV.js";
|
|
152
152
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-DMslm8Hx.js";
|
|
153
|
-
import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-
|
|
154
|
-
import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health
|
|
155
|
-
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
156
|
-
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-
|
|
157
|
-
import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-
|
|
158
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
159
|
-
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-
|
|
153
|
+
import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-Bd9NYE1U.js";
|
|
154
|
+
import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-CNZK5D2k.js";
|
|
155
|
+
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CiaCDBvZ.js";
|
|
156
|
+
import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-B4nJPU2N.js";
|
|
157
|
+
import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-DEmy759r.js";
|
|
158
|
+
import { t as runOnboardingWizard } from "./onboarding-BxvY_aEE.js";
|
|
159
|
+
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-CjAXPy2N.js";
|
|
160
160
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DRJTQOMM.js";
|
|
161
|
-
import "./node-service-
|
|
162
|
-
import "./status.update-
|
|
163
|
-
import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-
|
|
164
|
-
import { t as installSkill } from "./skills-install-
|
|
165
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
166
|
-
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-
|
|
161
|
+
import "./node-service-GpI0jzKr.js";
|
|
162
|
+
import "./status.update-C3uRz7W6.js";
|
|
163
|
+
import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-xZVoE4nS.js";
|
|
164
|
+
import { t as installSkill } from "./skills-install-D0JHP5uM.js";
|
|
165
|
+
import { t as runGatewayUpdate } from "./update-runner-n2snlf-4.js";
|
|
166
|
+
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CDw87aZG.js";
|
|
167
167
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
168
168
|
import * as fsSync from "node:fs";
|
|
169
169
|
import fs from "node:fs";
|
|
@@ -171,7 +171,7 @@ import os from "node:os";
|
|
|
171
171
|
import path from "node:path";
|
|
172
172
|
import chalk from "chalk";
|
|
173
173
|
import { isDeepStrictEqual } from "node:util";
|
|
174
|
-
import
|
|
174
|
+
import fsPromises from "node:fs/promises";
|
|
175
175
|
import { spawn, spawnSync } from "node:child_process";
|
|
176
176
|
import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
177
177
|
import { z } from "zod";
|
|
@@ -1242,7 +1242,7 @@ function resolveCheckIntervalMs(cfg) {
|
|
|
1242
1242
|
}
|
|
1243
1243
|
async function readState(statePath) {
|
|
1244
1244
|
try {
|
|
1245
|
-
const raw = await
|
|
1245
|
+
const raw = await fsPromises.readFile(statePath, "utf-8");
|
|
1246
1246
|
const parsed = JSON.parse(raw);
|
|
1247
1247
|
return parsed && typeof parsed === "object" ? parsed : {};
|
|
1248
1248
|
} catch {
|
|
@@ -1250,8 +1250,8 @@ async function readState(statePath) {
|
|
|
1250
1250
|
}
|
|
1251
1251
|
}
|
|
1252
1252
|
async function writeState(statePath, state) {
|
|
1253
|
-
await
|
|
1254
|
-
await
|
|
1253
|
+
await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
|
|
1254
|
+
await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
|
|
1255
1255
|
}
|
|
1256
1256
|
function sameUpdateAvailable(a, b) {
|
|
1257
1257
|
if (a === b) return true;
|
|
@@ -1324,7 +1324,7 @@ async function runAutoUpdateCommand(params) {
|
|
|
1324
1324
|
path.join(params.root, "dist", "index.mjs")
|
|
1325
1325
|
];
|
|
1326
1326
|
for (const candidate of candidates) try {
|
|
1327
|
-
await
|
|
1327
|
+
await fsPromises.access(candidate);
|
|
1328
1328
|
argv.push(execPath, candidate, ...baseArgs);
|
|
1329
1329
|
break;
|
|
1330
1330
|
} catch {}
|
|
@@ -4160,20 +4160,20 @@ function resolveCronRunLogPruneOptions(cfg) {
|
|
|
4160
4160
|
};
|
|
4161
4161
|
}
|
|
4162
4162
|
async function pruneIfNeeded(filePath, opts) {
|
|
4163
|
-
const stat = await
|
|
4163
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
4164
4164
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
4165
|
-
const lines = (await
|
|
4165
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
4166
4166
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
4167
4167
|
const { randomBytes } = await import("node:crypto");
|
|
4168
4168
|
const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
4169
|
-
await
|
|
4170
|
-
await
|
|
4169
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
4170
|
+
await fsPromises.rename(tmp, filePath);
|
|
4171
4171
|
}
|
|
4172
4172
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
4173
4173
|
const resolved = path.resolve(filePath);
|
|
4174
4174
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
4175
|
-
await
|
|
4176
|
-
await
|
|
4175
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
4176
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
4177
4177
|
await pruneIfNeeded(resolved, {
|
|
4178
4178
|
maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
|
|
4179
4179
|
keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
|
|
@@ -4266,7 +4266,7 @@ function filterRunLogEntries(entries, opts) {
|
|
|
4266
4266
|
}
|
|
4267
4267
|
async function readCronRunLogEntriesPage(filePath, opts) {
|
|
4268
4268
|
const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
|
|
4269
|
-
const raw = await
|
|
4269
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
4270
4270
|
const statuses = normalizeRunStatuses(opts);
|
|
4271
4271
|
const deliveryStatuses = normalizeDeliveryStatuses(opts);
|
|
4272
4272
|
const query = opts?.query?.trim().toLowerCase() ?? "";
|
|
@@ -4302,7 +4302,7 @@ async function readCronRunLogEntriesPageAll(opts) {
|
|
|
4302
4302
|
const query = opts.query?.trim().toLowerCase() ?? "";
|
|
4303
4303
|
const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
|
|
4304
4304
|
const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
|
|
4305
|
-
const jsonlFiles = (await
|
|
4305
|
+
const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
|
|
4306
4306
|
if (jsonlFiles.length === 0) return {
|
|
4307
4307
|
entries: [],
|
|
4308
4308
|
total: 0,
|
|
@@ -4312,7 +4312,7 @@ async function readCronRunLogEntriesPageAll(opts) {
|
|
|
4312
4312
|
nextOffset: null
|
|
4313
4313
|
};
|
|
4314
4314
|
const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
|
|
4315
|
-
return parseAllRunLogEntries(await
|
|
4315
|
+
return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
|
|
4316
4316
|
}))).flat(), {
|
|
4317
4317
|
statuses,
|
|
4318
4318
|
deliveryStatuses,
|
|
@@ -9015,7 +9015,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
|
|
|
9015
9015
|
}
|
|
9016
9016
|
async function resolveWorkspaceRealPath(workspaceDir) {
|
|
9017
9017
|
try {
|
|
9018
|
-
return await
|
|
9018
|
+
return await fsPromises.realpath(workspaceDir);
|
|
9019
9019
|
} catch {
|
|
9020
9020
|
return path.resolve(workspaceDir);
|
|
9021
9021
|
}
|
|
@@ -9039,7 +9039,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9039
9039
|
}
|
|
9040
9040
|
let candidateLstat;
|
|
9041
9041
|
try {
|
|
9042
|
-
candidateLstat = await
|
|
9042
|
+
candidateLstat = await fsPromises.lstat(candidatePath);
|
|
9043
9043
|
} catch (err) {
|
|
9044
9044
|
if (isNotFoundPathError(err)) {
|
|
9045
9045
|
if (params.allowMissing) return {
|
|
@@ -9059,7 +9059,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9059
9059
|
if (candidateLstat.isSymbolicLink()) {
|
|
9060
9060
|
let targetReal;
|
|
9061
9061
|
try {
|
|
9062
|
-
targetReal = await
|
|
9062
|
+
targetReal = await fsPromises.realpath(candidatePath);
|
|
9063
9063
|
} catch (err) {
|
|
9064
9064
|
if (isNotFoundPathError(err)) {
|
|
9065
9065
|
if (params.allowMissing) return {
|
|
@@ -9078,7 +9078,7 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9078
9078
|
}
|
|
9079
9079
|
let targetStat;
|
|
9080
9080
|
try {
|
|
9081
|
-
targetStat = await
|
|
9081
|
+
targetStat = await fsPromises.stat(targetReal);
|
|
9082
9082
|
} catch (err) {
|
|
9083
9083
|
if (isNotFoundPathError(err)) {
|
|
9084
9084
|
if (params.allowMissing) return {
|
|
@@ -9125,13 +9125,13 @@ async function resolveAgentWorkspaceFilePath(params) {
|
|
|
9125
9125
|
return {
|
|
9126
9126
|
kind: "ready",
|
|
9127
9127
|
requestPath,
|
|
9128
|
-
ioPath: await
|
|
9128
|
+
ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
|
|
9129
9129
|
workspaceReal
|
|
9130
9130
|
};
|
|
9131
9131
|
}
|
|
9132
9132
|
async function statFileSafely(filePath) {
|
|
9133
9133
|
try {
|
|
9134
|
-
const [stat, lstat] = await Promise.all([
|
|
9134
|
+
const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
|
|
9135
9135
|
if (lstat.isSymbolicLink() || !stat.isFile()) return null;
|
|
9136
9136
|
if (stat.nlink > 1) return null;
|
|
9137
9137
|
if (!sameFileIdentity(stat, lstat)) return null;
|
|
@@ -9216,7 +9216,7 @@ function resolveOptionalStringParam(value) {
|
|
|
9216
9216
|
async function moveToTrashBestEffort(pathname) {
|
|
9217
9217
|
if (!pathname) return;
|
|
9218
9218
|
try {
|
|
9219
|
-
await
|
|
9219
|
+
await fsPromises.access(pathname);
|
|
9220
9220
|
} catch {
|
|
9221
9221
|
return;
|
|
9222
9222
|
}
|
|
@@ -9263,7 +9263,7 @@ const agentsHandlers = {
|
|
|
9263
9263
|
dir: workspaceDir,
|
|
9264
9264
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
9265
9265
|
});
|
|
9266
|
-
await
|
|
9266
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
9267
9267
|
await writeConfigFile(nextConfig);
|
|
9268
9268
|
const safeName = sanitizeIdentityLine(rawName);
|
|
9269
9269
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -9276,7 +9276,7 @@ const agentsHandlers = {
|
|
|
9276
9276
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
9277
9277
|
""
|
|
9278
9278
|
];
|
|
9279
|
-
await
|
|
9279
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
9280
9280
|
respond(true, {
|
|
9281
9281
|
ok: true,
|
|
9282
9282
|
agentId,
|
|
@@ -9311,9 +9311,9 @@ const agentsHandlers = {
|
|
|
9311
9311
|
});
|
|
9312
9312
|
if (avatar) {
|
|
9313
9313
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
9314
|
-
await
|
|
9314
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
9315
9315
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
9316
|
-
await
|
|
9316
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
9317
9317
|
}
|
|
9318
9318
|
respond(true, {
|
|
9319
9319
|
ok: true,
|
|
@@ -9444,7 +9444,7 @@ const agentsHandlers = {
|
|
|
9444
9444
|
const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
|
|
9445
9445
|
if (!resolved) return;
|
|
9446
9446
|
const { agentId, workspaceDir, name } = resolved;
|
|
9447
|
-
await
|
|
9447
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
9448
9448
|
const filePath = path.join(workspaceDir, name);
|
|
9449
9449
|
const resolvedPath = await resolveAgentWorkspaceFilePath({
|
|
9450
9450
|
workspaceDir,
|
|
@@ -11656,14 +11656,14 @@ function isRollingLogFile(file) {
|
|
|
11656
11656
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
11657
11657
|
}
|
|
11658
11658
|
async function resolveLogFile(file) {
|
|
11659
|
-
if (await
|
|
11659
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
11660
11660
|
if (!isRollingLogFile(file)) return file;
|
|
11661
11661
|
const dir = path.dirname(file);
|
|
11662
|
-
const entries = await
|
|
11662
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
11663
11663
|
if (!entries) return file;
|
|
11664
11664
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
11665
11665
|
const fullPath = path.join(dir, entry.name);
|
|
11666
|
-
const fileStat = await
|
|
11666
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
11667
11667
|
return fileStat ? {
|
|
11668
11668
|
path: fullPath,
|
|
11669
11669
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -11671,7 +11671,7 @@ async function resolveLogFile(file) {
|
|
|
11671
11671
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
11672
11672
|
}
|
|
11673
11673
|
async function readLogSlice(params) {
|
|
11674
|
-
const stat = await
|
|
11674
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
11675
11675
|
if (!stat) return {
|
|
11676
11676
|
cursor: 0,
|
|
11677
11677
|
size: 0,
|
|
@@ -11709,7 +11709,7 @@ async function readLogSlice(params) {
|
|
|
11709
11709
|
truncated,
|
|
11710
11710
|
reset
|
|
11711
11711
|
};
|
|
11712
|
-
const handle = await
|
|
11712
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
11713
11713
|
try {
|
|
11714
11714
|
let prefix = "";
|
|
11715
11715
|
if (start > 0) {
|
|
@@ -12691,7 +12691,7 @@ const nodeHandlers = {
|
|
|
12691
12691
|
const p = params;
|
|
12692
12692
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
12693
12693
|
await respondUnavailableOnThrow(respond, async () => {
|
|
12694
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
12694
|
+
const { handleNodeEvent } = await import("./server-node-events-CZ5OkouD.js");
|
|
12695
12695
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
12696
12696
|
await handleNodeEvent({
|
|
12697
12697
|
deps: context.deps,
|
|
@@ -15677,7 +15677,7 @@ function normalizeAgentPayload(payload) {
|
|
|
15677
15677
|
async function startBrowserControlServerIfEnabled() {
|
|
15678
15678
|
if (isTruthyEnvValue(process.env.IDLEHANDS_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
15679
15679
|
const override = process.env.IDLEHANDS_BROWSER_CONTROL_MODULE?.trim();
|
|
15680
|
-
const mod = override ? await import(override) : await import("./server-
|
|
15680
|
+
const mod = override ? await import(override) : await import("./server-BpSbZAwg.js");
|
|
15681
15681
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
15682
15682
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
15683
15683
|
if (!start) return null;
|
|
@@ -15900,7 +15900,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
|
|
|
15900
15900
|
if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
15901
15901
|
const candidate = path.join(rootReal, rel);
|
|
15902
15902
|
try {
|
|
15903
|
-
const st = await
|
|
15903
|
+
const st = await fsPromises.lstat(candidate);
|
|
15904
15904
|
if (st.isSymbolicLink()) return null;
|
|
15905
15905
|
if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
15906
15906
|
} catch {}
|
|
@@ -15937,8 +15937,8 @@ async function resolveA2uiRoot() {
|
|
|
15937
15937
|
for (const dir of candidates) try {
|
|
15938
15938
|
const indexPath = path.join(dir, "index.html");
|
|
15939
15939
|
const bundlePath = path.join(dir, "a2ui.bundle.js");
|
|
15940
|
-
await
|
|
15941
|
-
await
|
|
15940
|
+
await fsPromises.stat(indexPath);
|
|
15941
|
+
await fsPromises.stat(bundlePath);
|
|
15942
15942
|
return dir;
|
|
15943
15943
|
} catch {}
|
|
15944
15944
|
return null;
|
|
@@ -15947,7 +15947,7 @@ async function resolveA2uiRootReal() {
|
|
|
15947
15947
|
if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
|
|
15948
15948
|
if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
|
|
15949
15949
|
const root = await resolveA2uiRoot();
|
|
15950
|
-
cachedA2uiRootReal = root ? await
|
|
15950
|
+
cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
|
|
15951
15951
|
cachedA2uiResolvedAtMs = Date.now();
|
|
15952
15952
|
resolvingA2uiRoot = null;
|
|
15953
15953
|
return cachedA2uiRootReal;
|
|
@@ -16168,13 +16168,13 @@ function normalizeBasePath(rawPath) {
|
|
|
16168
16168
|
}
|
|
16169
16169
|
async function prepareCanvasRoot(rootDir) {
|
|
16170
16170
|
await ensureDir(rootDir);
|
|
16171
|
-
const rootReal = await
|
|
16171
|
+
const rootReal = await fsPromises.realpath(rootDir);
|
|
16172
16172
|
try {
|
|
16173
16173
|
const indexPath = path.join(rootReal, "index.html");
|
|
16174
|
-
await
|
|
16174
|
+
await fsPromises.stat(indexPath);
|
|
16175
16175
|
} catch {
|
|
16176
16176
|
try {
|
|
16177
|
-
await
|
|
16177
|
+
await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
|
|
16178
16178
|
} catch {}
|
|
16179
16179
|
}
|
|
16180
16180
|
return rootReal;
|
|
@@ -18988,7 +18988,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
|
|
|
18988
18988
|
}
|
|
18989
18989
|
async function readLockPayload(lockPath) {
|
|
18990
18990
|
try {
|
|
18991
|
-
const raw = await
|
|
18991
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
18992
18992
|
const parsed = JSON.parse(raw);
|
|
18993
18993
|
if (typeof parsed.pid !== "number") return null;
|
|
18994
18994
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -19023,11 +19023,11 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
19023
19023
|
const platform = opts.platform ?? process.platform;
|
|
19024
19024
|
const port = opts.port;
|
|
19025
19025
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
19026
|
-
await
|
|
19026
|
+
await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
|
|
19027
19027
|
const startedAt = Date.now();
|
|
19028
19028
|
let lastPayload = null;
|
|
19029
19029
|
while (Date.now() - startedAt < timeoutMs) try {
|
|
19030
|
-
const handle = await
|
|
19030
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
19031
19031
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
19032
19032
|
const payload = {
|
|
19033
19033
|
pid: process.pid,
|
|
@@ -19041,7 +19041,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
19041
19041
|
configPath,
|
|
19042
19042
|
release: async () => {
|
|
19043
19043
|
await handle.close().catch(() => void 0);
|
|
19044
|
-
await
|
|
19044
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
19045
19045
|
}
|
|
19046
19046
|
};
|
|
19047
19047
|
} catch (err) {
|
|
@@ -19050,7 +19050,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
19050
19050
|
const ownerPid = lastPayload?.pid;
|
|
19051
19051
|
const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
|
|
19052
19052
|
if (ownerStatus === "dead" && ownerPid) {
|
|
19053
|
-
await
|
|
19053
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
19054
19054
|
continue;
|
|
19055
19055
|
}
|
|
19056
19056
|
if (ownerStatus !== "alive") {
|
|
@@ -19060,13 +19060,13 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
19060
19060
|
stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
|
|
19061
19061
|
}
|
|
19062
19062
|
if (!stale) try {
|
|
19063
|
-
const st = await
|
|
19063
|
+
const st = await fsPromises.stat(lockPath);
|
|
19064
19064
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
19065
19065
|
} catch {
|
|
19066
19066
|
stale = false;
|
|
19067
19067
|
}
|
|
19068
19068
|
if (stale) {
|
|
19069
|
-
await
|
|
19069
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
19070
19070
|
continue;
|
|
19071
19071
|
}
|
|
19072
19072
|
}
|
|
@@ -21357,7 +21357,7 @@ async function startGatewayServer(port = 1013, opts = {}) {
|
|
|
21357
21357
|
if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
|
|
21358
21358
|
if (!minimalTestGateway) (async () => {
|
|
21359
21359
|
const { recoverPendingDeliveries } = await import("./delivery-queue-BvDRo8CK.js").then((n) => n.n);
|
|
21360
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
21360
|
+
const { deliverOutboundPayloads } = await import("./deliver-yTpXc5sv.js").then((n) => n.n);
|
|
21361
21361
|
await recoverPendingDeliveries({
|
|
21362
21362
|
deliver: deliverOutboundPayloads,
|
|
21363
21363
|
log: log.child("delivery-recovery"),
|