@nikolasp98/minion 2026.7.4-dev → 2026.7.4-dev.20260709144240
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-Dbd25vMS.js → accounts-BPGTTw4_.js} +1 -1
- package/dist/{accounts-B15UWwpN.js → accounts-DNHbDS8N.js} +1 -1
- package/dist/{accounts-CipaqB1S.js → accounts-DX9PQcQ5.js} +1 -1
- package/dist/{accounts-YlgHAyxw.js → accounts-Qv_qMcKu.js} +1 -1
- package/dist/{acp-cli-CUPICcDH.js → acp-cli-7ifY5P2w.js} +3 -3
- package/dist/{acp-cli-BEVpyf2p.js → acp-cli-CXQRsKJY.js} +3 -3
- package/dist/{agent-CXpwHFOG.js → agent-DICZ1SNs.js} +12 -12
- package/dist/{agent-PiFxVqHJ.js → agent-r19IQe9R.js} +11 -11
- package/dist/{agent-step-CUJ4eMri.js → agent-step-BlC5YTeo.js} +3 -3
- package/dist/{agent-step-DSsPpXT3.js → agent-step-Urh1ULgm.js} +3 -3
- package/dist/{agents-Ctj4OxuD.js → agents-CD3GSnMb.js} +8 -8
- package/dist/{agents-list-tool-wIbFkQ7B.js → agents-list-tool-BWwkH_uu.js} +3 -3
- package/dist/{agents-list-tool-Cdq6gx7b.js → agents-list-tool-C8g2wdl0.js} +3 -3
- package/dist/{agents-list-tool-J81xvsC7.js → agents-list-tool-CdAfu3mL.js} +2 -2
- package/dist/{audit-BQa9UHqw.js → audit-DjsxBT25.js} +10 -10
- package/dist/{audit-BJ-z-LVb.js → audit-bz0y9XAh.js} +10 -10
- package/dist/{auth-choice-BiA4uMDt.js → auth-choice-BajjuqG0.js} +4 -4
- package/dist/{auth-choice-CTuT4TZL.js → auth-choice-fJdiLUlW.js} +4 -4
- package/dist/{banner-Bxd8hQ4y.js → banner-Doqdmx_j.js} +1 -1
- package/dist/{browser-cli-B-WFQQKT.js → browser-cli-B8dJNOnW.js} +3 -3
- package/dist/{browser-cli-BcYbyf4-.js → browser-cli-Cz7pSHRi.js} +3 -3
- package/dist/{browser-tool-CN_2EWks.js → browser-tool-B9LLP228.js} +6 -6
- package/dist/{browser-tool-DNAI36US.js → browser-tool-BZA9S2d2.js} +7 -7
- package/dist/{browser-tool-CpexgdC1.js → browser-tool-CZIrQMee.js} +7 -7
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +9 -1
- package/dist/bundled/kg-message-sync/handler.js +9 -1
- package/dist/{call-CIunfHRi.js → call-BgSOYP9z.js} +1 -1
- package/dist/{call-CKivy66e.js → call-Cv9JOMB9.js} +2 -2
- package/dist/{call-Dkmv0jiT.js → call-XTvSS1II.js} +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{canvas-tool-8o6oo61Z.js → canvas-tool-BU7FSC80.js} +2 -2
- package/dist/{canvas-tool-1ztGKWjT.js → canvas-tool-DGEGmXF1.js} +2 -2
- package/dist/{canvas-tool-DQxG0Y7R.js → canvas-tool-EEEr6iSD.js} +2 -2
- package/dist/{channel-options-C68_q9Rr.js → channel-options-BEFxVqMz.js} +2 -2
- package/dist/{channel-options-DhkD86lO.js → channel-options-C8WvoI4Z.js} +2 -2
- package/dist/{channel-selection-DlUXGnzg.js → channel-selection-BTmIs82T.js} +1 -1
- package/dist/{channel-selection-BewMTsqq.js → channel-selection-C0mWZNWy.js} +1 -1
- package/dist/{channel-web-DWLT7KUJ.js → channel-web-BbcJ-2a_.js} +11 -11
- package/dist/{channels-cli-DrRfb_jd.js → channels-cli-dOat1M60.js} +13 -13
- package/dist/{channels-cli-CFwRMLQ0.js → channels-cli-vYZOaFFl.js} +13 -13
- package/dist/{channels-status-issues-A8GAMh-R.js → channels-status-issues-BJS72Ak4.js} +1 -1
- package/dist/{channels-status-issues-CqD61nHR.js → channels-status-issues-BgvrV8cu.js} +1 -1
- package/dist/{chrome-IsE6CWo0.js → chrome-Dklo_qcC.js} +2 -2
- package/dist/{chrome-ZOgm_xe0.js → chrome-cQJEH0M3.js} +1 -1
- package/dist/{chrome-CqJUFw6W.js → chrome-qRwjGg26.js} +2 -2
- package/dist/{clawbot-cli-1mMIKIh-.js → clawbot-cli-DXrdZT2P.js} +1 -1
- package/dist/{clawbot-cli-9oTZdRv0.js → clawbot-cli-nLyirBTd.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BVDjrQ_Z.js → cli-BgmnUAbQ.js} +3 -3
- package/dist/{cli-CvIovpRi.js → cli-DewUEwhW.js} +3 -3
- package/dist/{client-CKx0mQZ9.js → client-B6tG7Uvs.js} +5 -5
- package/dist/{client-C92y7sQr.js → client-CbWEB-Ag.js} +5 -5
- package/dist/{client-w300gZPu.js → client-DscxMhBC.js} +4 -4
- package/dist/{command-registry-DpQkZgbl.js → command-registry-Dn_GVpAL.js} +14 -14
- package/dist/{commands-registry-C863DsL3.js → commands-registry-DH6ymetJ.js} +2 -2
- package/dist/{commands-registry-Can979-O.js → commands-registry-oKdLXWl_.js} +2 -2
- package/dist/{completion-cli-iw7SVTBI.js → completion-cli-CfKytSbd.js} +1 -1
- package/dist/{completion-cli-ynSivZB6.js → completion-cli-ozWibTSL.js} +2 -2
- package/dist/{config-CeRW-yVy.js → config-46EEiw-I.js} +9 -1
- package/dist/{config-C7v6yY2J.js → config-DehMVNfT.js} +2 -2
- package/dist/{config-Cm8MqYN8.js → config-DhxWEGQB.js} +2 -2
- package/dist/{config-cli-BFKPXWfo.js → config-cli-CRC3zEGw.js} +4 -4
- package/dist/{config-cli-C0GVQwvZ.js → config-cli-DaMUo6r7.js} +4 -4
- package/dist/{config-guard-BcXgvP7Q.js → config-guard-Dvhh6UhH.js} +3 -3
- package/dist/{config-guard-DUB_sG7v.js → config-guard-iExiK0ea.js} +3 -3
- package/dist/{config-validation-CI4CpbiZ.js → config-validation-BwiyHMtc.js} +2 -2
- package/dist/{config-validation-PiRNAOU0.js → config-validation-D53Go4nQ.js} +2 -2
- package/dist/{configure-qYk6aPzc.js → configure-Bi-9cnMl.js} +16 -16
- package/dist/{configure-DHX4hMfG.js → configure-D85n-4iq.js} +16 -16
- package/dist/{control-service-0L910S2Q.js → control-service-5kw5OYIx.js} +6 -6
- package/dist/{control-service-BomzHVkf.js → control-service-B4NmPTp4.js} +6 -6
- package/dist/{cron-cli-AzKKuZWY.js → cron-cli-COKLRsNP.js} +2 -2
- package/dist/{cron-cli-CdOhLLeS.js → cron-cli-DoZ4CTLJ.js} +2 -2
- package/dist/{cron-tool-Cntt4OCG.js → cron-tool-CBzve6Wj.js} +5 -5
- package/dist/{cron-tool-DQlnrkMC.js → cron-tool-D9t1IW9g.js} +4 -4
- package/dist/{cron-tool-BjrIdOCZ.js → cron-tool-mYpbvP42.js} +5 -5
- package/dist/{daemon-cli-am9lVfde.js → daemon-cli-BIyeWSo9.js} +9 -9
- package/dist/{daemon-cli-DoYeUpfT.js → daemon-cli-eMnGI3zL.js} +9 -9
- package/dist/daemon-cli.js +9 -1
- package/dist/daemon-install-helpers-DFhh_xYP.js +2 -0
- package/dist/daemon-install-helpers-DGb3mbAW.js +2 -0
- package/dist/{daemon-runtime-DT3wcYKu.js → daemon-runtime-BwU5UG9c.js} +1 -1
- package/dist/{daemon-runtime-C6sGHOcm.js → daemon-runtime-RtqiEWdz.js} +1 -1
- package/dist/{deliver-Ckze82mh.js → deliver-C97xbDFj.js} +4 -4
- package/dist/{deliver-CLC5995g.js → deliver-CnWkOjIS.js} +4 -4
- package/dist/{deliver-PUOUs4ol.js → deliver-p_wWlh7d.js} +4 -4
- package/dist/{deps-OtLVxtqA.js → deps-dnIzvRTI.js} +7 -7
- package/dist/{devices-cli-D0BLiV5P.js → devices-cli-BK99ZWma.js} +1 -1
- package/dist/{devices-cli-BcP_ANPE.js → devices-cli-Re_Yv5w8.js} +1 -1
- package/dist/{directory-cli-DpBUXrp-.js → directory-cli-Cmg1IBIV.js} +4 -4
- package/dist/{directory-cli-DhxF4o13.js → directory-cli-_0XEzDQ4.js} +4 -4
- package/dist/{dispatcher-nmVyfQFp.js → dispatcher-DJI5AwTt.js} +1 -1
- package/dist/{dispatcher-CmOeTrK_.js → dispatcher-Dpk5Q-if.js} +1 -1
- package/dist/{dm-policy-shared-blX46cKQ.js → dm-policy-shared-CUioJdk1.js} +2 -2
- package/dist/{dm-policy-shared-C2q1D8fT.js → dm-policy-shared-YTfwZ6jY.js} +2 -2
- package/dist/{dns-cli-CQi019dy.js → dns-cli-HCXo7f3i.js} +2 -2
- package/dist/{dns-cli-BSNVla3B.js → dns-cli-dFY1v-iF.js} +2 -2
- package/dist/doctor-completion-B5-kCeMP.js +2 -0
- package/dist/{doctor-completion-BdgKiese.js → doctor-completion-B78sHoqs.js} +1 -1
- package/dist/doctor-completion-BeYCjlny.js +2 -0
- package/dist/{doctor-completion-BWQNa8Rn.js → doctor-completion-Kw4O81dP.js} +1 -1
- package/dist/{doctor-config-flow-BXSVwYS5.js → doctor-config-flow-890IANFn.js} +6 -6
- package/dist/{doctor-config-flow-B-H0pKMJ.js → doctor-config-flow-BtyHlY7m.js} +6 -6
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-D7k2G-_u.js → exec-approvals-cli-A0fdPwKP.js} +2 -2
- package/dist/{exec-approvals-cli-BT4Xj7Y1.js → exec-approvals-cli-CVi3Qs4M.js} +2 -2
- package/dist/extensionAPI.d.ts +18 -0
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-Bek458JN.js → gateway-4zoqQRFS.js} +2 -2
- package/dist/{gateway-BsDz6Txw.js → gateway-BjrVF36X.js} +3 -3
- package/dist/{gateway-Kvu235lW.js → gateway-C_y60rCC.js} +3 -3
- package/dist/{gateway-cli-DWNvy97w.js → gateway-cli-B2zp0e2L.js} +281 -90
- package/dist/{gateway-cli-DBYifD2O.js → gateway-cli-ChbnKEbL.js} +280 -89
- package/dist/{gateway-rpc-Dc0DnxUX.js → gateway-rpc-DL6Qup-i.js} +1 -1
- package/dist/{gateway-rpc-l6HPIQzp.js → gateway-rpc-DssF63Ne.js} +1 -1
- package/dist/{gateway-tool-Mw-Gx803.js → gateway-tool-BzJ0h7eR.js} +3 -3
- package/dist/{gateway-tool-xl9tAtSB.js → gateway-tool-DOztRJUz.js} +3 -3
- package/dist/{gateway-tool-a20jJWDq.js → gateway-tool-DqqN5bQR.js} +3 -3
- package/dist/{github-copilot-auth-litvRVoa.js → github-copilot-auth-DMIEk1vO.js} +2 -2
- package/dist/{github-copilot-auth-D-W8ft9q.js → github-copilot-auth-DxZiDiLm.js} +2 -2
- package/dist/{gmail-DgNp3YYe.js → gmail-DyzUUJJc.js} +37 -2
- package/dist/{gmail-zhEe5Z8O.js → gmail-smcTnAL4.js} +37 -2
- package/dist/{health-B8RawP7b.js → health-CMSekzYP.js} +9 -9
- package/dist/{health-CTFvDTD7.js → health-bhWSy0iT.js} +9 -9
- package/dist/{helpers-CGxR-v_q.js → helpers-BmlsKFRE.js} +1 -1
- package/dist/{helpers-BmRNbFqd.js → helpers-bV4rDY7S.js} +1 -1
- package/dist/{hooks-cli-B0acrP_x.js → hooks-cli-CHzL3VxB.js} +2 -2
- package/dist/{hooks-cli-B4UnTlhs.js → hooks-cli-DlB2CWZ3.js} +2 -2
- package/dist/{image-tool-CyX6NMfF.js → image-tool-BJ1l_29F.js} +2 -2
- package/dist/{image-tool-DSsariPb.js → image-tool-CVxor5gM.js} +1 -1
- package/dist/{image-tool-pVcdVsPz.js → image-tool-jbnSFNt8.js} +2 -2
- package/dist/index.d.ts +18 -0
- package/dist/index.js +10 -10
- package/dist/{io-m4wc1BAH.js → io-CdQCAaa6.js} +2 -2
- package/dist/{io-D25qfBsN.js → io-ixUbjx-d.js} +2 -2
- package/dist/{ir-Dx-C32VK.js → ir-BraJF3FA.js} +4 -4
- package/dist/{ir-C05WXJJk.js → ir-C1yvfPUD.js} +1 -1
- package/dist/{ir-CWl3mIBF.js → ir-ap_93956.js} +1 -1
- package/dist/{lifecycle-core-DfqLUBMA.js → lifecycle-core-D1qgiAnW.js} +3 -3
- package/dist/{lifecycle-core-DzUG_Ssw.js → lifecycle-core-DcELCz73.js} +3 -3
- package/dist/{logs-cli-BFL0tNQ7.js → logs-cli-B7DrbJJe.js} +2 -2
- package/dist/{logs-cli-57sWeC-n.js → logs-cli-BtsZAvQl.js} +2 -2
- package/dist/{memory-cli-C-GpnDhy.js → memory-cli-BPA2VF2K.js} +3 -3
- package/dist/{memory-cli-DSkmVEn2.js → memory-cli-Cjc2QC34.js} +3 -3
- package/dist/{message-action-runner-D4J_Q8si.js → message-action-runner-Cp7IDTgr.js} +10 -10
- package/dist/{message-action-runner-D3d8Qol-.js → message-action-runner-Y0gGuB9o.js} +10 -10
- package/dist/{message-ledger-B25yZ2QH.js → message-ledger-Dxdjwnp5.js} +6 -6
- package/dist/{message-tool-DaVlHkIL.js → message-tool-C0cB-u85.js} +8 -8
- package/dist/{message-tool-D4ICBygu.js → message-tool-D6_NEoKc.js} +6 -6
- package/dist/{message-tool-BoM6uXri.js → message-tool-tUSmmPC8.js} +6 -6
- package/dist/{minion-tools-Bl6_2TjV.js → minion-tools-DJy-WfEJ.js} +32 -32
- package/dist/{model-catalog-DAyuGuaM.js → model-catalog-BSiv3f8K.js} +3 -3
- package/dist/{model-catalog-D2mf6NCd.js → model-catalog-BT-GB5Sg.js} +3 -3
- package/dist/{model-fallback-CkHoZK3M.js → model-fallback-BnX9l93Z.js} +3 -3
- package/dist/{model-fallback-ClZN3VTY.js → model-fallback-CbUPBvLD.js} +2 -2
- package/dist/{model-fallback-BI2APyvK.js → model-fallback-xPeowZyn.js} +2 -2
- package/dist/{model-picker-DLQzZ-5Y.js → model-picker-ULuiV8vS.js} +2 -2
- package/dist/{model-picker-DMFOiIKC.js → model-picker-oHGlXGmQ.js} +2 -2
- package/dist/{models-CoBCsawh.js → models-Ctl2brz_.js} +12 -12
- package/dist/{models-cli-DzurrL4c.js → models-cli-BlfFEsbo.js} +2 -2
- package/dist/{models-cli-Du8v-We9.js → models-cli-uBrX9319.js} +12 -12
- package/dist/{models-config-9gR2ReZP.js → models-config-5UEUfArU.js} +2 -2
- package/dist/{models-config-CHQqAhX1.js → models-config-CfHxg89-.js} +2 -2
- package/dist/{node-cli-CfjV_Ydb.js → node-cli-BBOTnlCC.js} +8 -8
- package/dist/{node-cli-B6_kL5Io.js → node-cli-PphC70ft.js} +8 -8
- package/dist/{nodes-cli-LrnoE5Hf.js → nodes-cli-C1CX4km4.js} +5 -5
- package/dist/{nodes-cli-VZ3jgwE_.js → nodes-cli-D3Xc4a5j.js} +5 -5
- package/dist/{nodes-tool-7_gy6muZ.js → nodes-tool-B_huovGW.js} +3 -3
- package/dist/{nodes-tool-CC1r9rbg.js → nodes-tool-D7XW5R19.js} +3 -3
- package/dist/{nodes-tool-rm10iTBH.js → nodes-tool-YT7A5IpP.js} +3 -3
- package/dist/{nodes-utils-XrLsrfuH.js → nodes-utils-B1N5BMdS.js} +1 -1
- package/dist/{nodes-utils-KWfjG80h.js → nodes-utils-DoweebPv.js} +1 -1
- package/dist/{nodes-utils-CINjm-rv.js → nodes-utils-iQtlU_22.js} +1 -1
- package/dist/{onboard-DIPKzpum.js → onboard-D51kdZE7.js} +9 -9
- package/dist/{onboard-channels-BsGyK9L4.js → onboard-channels-5GW29O4D.js} +3 -3
- package/dist/{onboard-channels-B8EXMhqz.js → onboard-channels-BNsYG_kk.js} +1 -1
- package/dist/{onboard-channels-uqdpert3.js → onboard-channels-ChfJpe1O.js} +1 -1
- package/dist/{onboard-channels-2mjk8QRb.js → onboard-channels-DEEm5bq0.js} +3 -3
- package/dist/{onboard-custom-RaIi_OGk.js → onboard-custom-BTQOo_CS.js} +2 -2
- package/dist/{onboard-custom-dlxM-UkE.js → onboard-custom-BVTWXYZZ.js} +1 -1
- package/dist/{onboard-custom-vMIsoEjQ.js → onboard-custom-BW4cjI4L.js} +1 -1
- package/dist/{onboard-custom-OhyB5-Gd.js → onboard-custom-C0YZYcqB.js} +2 -2
- package/dist/{onboard-BX2-_phh.js → onboard-h_y7-C7c.js} +9 -9
- package/dist/{onboard-helpers-CmQBiGjp.js → onboard-helpers-CAp6xUvG.js} +1 -1
- package/dist/{onboard-helpers-BeTBv9NV.js → onboard-helpers-CLTVAIAP.js} +5 -5
- package/dist/{onboard-helpers-BAjkjDC1.js → onboard-helpers-D4NUWUH4.js} +5 -5
- package/dist/{onboard-helpers-DIRlPtVB.js → onboard-helpers-DobA9gFL.js} +1 -1
- package/dist/{onboard-remote-BBuIg8t3.js → onboard-remote-0D9FeBDo.js} +1 -1
- package/dist/{onboard-remote-BZSlbbvu.js → onboard-remote-BZhR0x4e.js} +1 -1
- package/dist/{onboard-skills-bJtoE2b0.js → onboard-skills-Dl9wVHp5.js} +1 -1
- package/dist/{onboard-skills-DphCt9Wl.js → onboard-skills-DonusvJ8.js} +1 -1
- package/dist/{onboarding-CquDb4Ko.js → onboarding-BOHF-KyS.js} +12 -12
- package/dist/{onboarding-BRTMRUY5.js → onboarding-CA28TXPp.js} +12 -12
- package/dist/{onboarding.finalize-Bb4ntaL-.js → onboarding.finalize-BcY1Tcgm.js} +9 -9
- package/dist/{onboarding.finalize-CCSPOpcJ.js → onboarding.finalize-CPjJ6oRP.js} +9 -9
- package/dist/{onboarding.gateway-config-DzlKkg5n.js → onboarding.gateway-config-CBdiSzJD.js} +2 -2
- package/dist/{onboarding.gateway-config-DY-KiclE.js → onboarding.gateway-config-DotULIqj.js} +2 -2
- package/dist/{outbound-send-deps-D_xee69M.js → outbound-send-deps-CLdxbXZ4.js} +7 -7
- package/dist/{outbound-session-CDWwaggL.js → outbound-session-DAvju8aE.js} +6 -6
- package/dist/{outbound-session-BfiNGbxM.js → outbound-session-SmzP0oiG.js} +6 -6
- package/dist/{pairing-cli-BQdVIKQi.js → pairing-cli-BGttqvX2.js} +4 -4
- package/dist/{pairing-cli-C_RIay6s.js → pairing-cli-DZhIJM3E.js} +4 -4
- package/dist/{pairing-store-D7i7bXiE.js → pairing-store-BKNRbNxY.js} +2 -2
- package/dist/{pairing-store-BngtUsor.js → pairing-store-Cf5T90i8.js} +2 -2
- package/dist/{pi-embedded-helpers-DdMwVhWo.js → pi-embedded-helpers-BfVIc4c5.js} +1 -1
- package/dist/{pi-embedded-helpers-DEW1Kowd.js → pi-embedded-helpers-e3rGVwvz.js} +4 -4
- package/dist/{pi-embedded-helpers-B09QHIJ6.js → pi-embedded-helpers-iIC17y0y.js} +1 -1
- package/dist/{pi-embedded-utils-EQyF94vt.js → pi-embedded-utils-CQXEVMAO.js} +1 -1
- package/dist/{pi-embedded-utils-KCO4xrpR.js → pi-embedded-utils-Ciyl4mBw.js} +1 -1
- package/dist/{pi-embedded-utils-DKuWTXNr.js → pi-embedded-utils-RlNd1YPz.js} +1 -1
- package/dist/{pi-tools.policy-CFHuM9wa.js → pi-tools.policy-BEqjC5lp.js} +3 -3
- package/dist/{plugin-auto-enable-BhGucCgt.js → plugin-auto-enable-C1841BQR.js} +1 -1
- package/dist/{plugin-auto-enable-tbz6JDnp.js → plugin-auto-enable-FIoIz-a0.js} +1 -1
- package/dist/{plugin-registry-Ca6X2inP.js → plugin-registry-BzUzEXW5.js} +3 -3
- package/dist/{plugin-registry-emvrVNCr.js → plugin-registry-CIkeUO1p.js} +3 -3
- package/dist/plugin-sdk/channels/discord.js +9 -1
- package/dist/plugin-sdk/channels/imessage.js +9 -1
- package/dist/plugin-sdk/channels/line.js +9 -1
- package/dist/plugin-sdk/channels/signal.js +9 -1
- package/dist/plugin-sdk/channels/slack.js +9 -1
- package/dist/plugin-sdk/channels/telegram.js +9 -1
- package/dist/plugin-sdk/channels/whatsapp.js +9 -1
- package/dist/plugin-sdk/config/types.hooks.d.ts +18 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +16 -0
- package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +8 -0
- package/dist/plugin-sdk/core.js +9 -1
- package/dist/plugin-sdk/index.js +9 -1
- package/dist/{plugins-BBxVrybd.js → plugins-CDfgbD2S.js} +1 -1
- package/dist/{plugins-R05b7jc4.js → plugins-DPanwIbt.js} +1 -1
- package/dist/{plugins-C3Yr0vjv.js → plugins-DoD5loqV.js} +1 -1
- package/dist/{plugins-cli-QDEsQJm-.js → plugins-cli-BKtXDROc.js} +3 -3
- package/dist/{plugins-cli-Dn-MSLQu.js → plugins-cli-BW0N9fSR.js} +3 -3
- package/dist/{program-DHSIldNQ.js → program-DthXMAW7.js} +7 -7
- package/dist/{program-context-T2JYjWqc.js → program-context-DQ_mPSwe.js} +42 -42
- package/dist/{prompt-select-styled-mQlTs7CF.js → prompt-select-styled-CL2pJdYI.js} +18 -18
- package/dist/{prompt-select-styled-DcnMuuJL.js → prompt-select-styled-CVkDOduz.js} +18 -18
- package/dist/{push-apns-D61x7OCA.js → push-apns-BYvlu7xE.js} +1 -1
- package/dist/{push-apns-D08TcbbK.js → push-apns-DnLzbtEB.js} +1 -1
- package/dist/{pw-ai-BHl1-Iv9.js → pw-ai-CRKcQ4Lu.js} +2 -2
- package/dist/{pw-ai-DVHvqhN7.js → pw-ai-D7bg6NOC.js} +2 -2
- package/dist/{pw-ai-L9MpO96I.js → pw-ai-fnPq0hxx.js} +2 -2
- package/dist/{pw-session-DAEdZ_Jt.js → pw-session-Bwzc9e4u.js} +1 -1
- package/dist/{pw-session-BHkBkS6f.js → pw-session-Cymqd59A.js} +1 -1
- package/dist/{pw-session-iSeqduQN.js → pw-session-DWta6A5x.js} +1 -1
- package/dist/{qr-cli-BS4NphXo.js → qr-cli-BEIxivqG.js} +2 -2
- package/dist/{qr-cli-DcCr98E8.js → qr-cli-Dxk-9Aiq.js} +2 -2
- package/dist/{register.agent-BIY97DZM.js → register.agent-ZSVxMRSf.js} +7 -7
- package/dist/{register.agent-D00bssoy.js → register.agent-e9CkuZeX.js} +12 -12
- package/dist/{register.channel-DJ6HzsSR.js → register.channel-BD4jMjFt.js} +2 -2
- package/dist/{register.channel-DYqNRzGQ.js → register.channel-BsG64VlQ.js} +2 -2
- package/dist/{register.configure-CJU21ErI.js → register.configure-CF1kaDmi.js} +1 -1
- package/dist/{register.configure-BaGbYg0W.js → register.configure-CpS1rEZ7.js} +1 -1
- package/dist/{register.drone-B-gMKIGc.js → register.drone-DV3tHito.js} +1 -1
- package/dist/{register.drone-fp4Hp7td.js → register.drone-DpYnKKiY.js} +1 -1
- package/dist/{register.maintenance-hQ-lGg-3.js → register.maintenance-CE_wmlLd.js} +5 -5
- package/dist/{register.maintenance-CfgkkwNy.js → register.maintenance-Rpaq5Xgy.js} +5 -5
- package/dist/{register.message-DJ6m0hJm.js → register.message-CMIXJlcj.js} +8 -8
- package/dist/{register.message-BW431Wdc.js → register.message-DXvk3yWB.js} +8 -8
- package/dist/{register.onboard-Oaz1TlPk.js → register.onboard-CegpaJI9.js} +1 -1
- package/dist/{register.onboard-DuH2nA9A.js → register.onboard-DnXBbt3A.js} +1 -1
- package/dist/{register.setup-CwBj2rIK.js → register.setup-B0-IOheA.js} +4 -4
- package/dist/{register.setup-DFjvHDLh.js → register.setup-C7q45sGE.js} +4 -4
- package/dist/{register.status-health-sessions-DMdKoG2v.js → register.status-health-sessions--rSi39EL.js} +3 -3
- package/dist/{register.status-health-sessions-C0CKXfIL.js → register.status-health-sessions-CbYS1DRA.js} +6 -6
- package/dist/{register.subclis-ckbJFO-L.js → register.subclis-DBB-RHWD.js} +29 -29
- package/dist/{reply-DjQyZzxK.js → reply-Cztaxyf8.js} +44 -44
- package/dist/{reply-payloads-DRKznvAh.js → reply-payloads-SesmOYS1.js} +6 -6
- package/dist/{reply-prefix-COgNJVi7.js → reply-prefix-CqR6xBt8.js} +1 -1
- package/dist/{reply-prefix-DMYpa9nO.js → reply-prefix-DaqS3OL8.js} +1 -1
- package/dist/{resolve-route-C1gqJExF.js → resolve-route-BylUpvs3.js} +4 -4
- package/dist/{resolve-route-U1dN8gZq.js → resolve-route-CQ8m3Y_1.js} +2 -2
- package/dist/{routes-BwHxQr5z.js → routes-CVeLAQJp.js} +4 -4
- package/dist/{routes-S_klsryv.js → routes-DzArzaiM.js} +4 -4
- package/dist/{rpc-DNFilbM-.js → rpc-5jPxUJ4A.js} +1 -1
- package/dist/{rpc-Cd-Ec9Ba.js → rpc-Czo5KWhm.js} +1 -1
- package/dist/{run-main-DE-CWHv3.js → run-main-B3wm2juN.js} +19 -19
- package/dist/{sandbox-DuNLTHpm.js → sandbox-DbBsfhrg.js} +6 -6
- package/dist/{sandbox-DKbtOnC4.js → sandbox-DwGbzphU.js} +6 -6
- package/dist/{sandbox-cli-C0JQMKzM.js → sandbox-cli-CB7GmAVd.js} +4 -4
- package/dist/{sandbox-cli-DD3udf2_.js → sandbox-cli-DBHlPhv3.js} +4 -4
- package/dist/{security-cli-CRhvGph3.js → security-cli-B8KEOSM7.js} +4 -4
- package/dist/{security-cli-CkXUq5B9.js → security-cli-BIq6dAQQ.js} +4 -4
- package/dist/{send-_iLB73r8.js → send--cVaTW_v.js} +6 -6
- package/dist/{send-CzLI7gv4.js → send-BKT_lmUT.js} +5 -5
- package/dist/{send-VlNTkqaJ.js → send-BwVdjvzd.js} +6 -6
- package/dist/{send-Daph0nLd.js → send-CiJ0tV1S.js} +4 -4
- package/dist/{send-BSLXVHlm.js → send-CryjP4Y8.js} +4 -4
- package/dist/{send-DwuYUaI8.js → send-DPZQ1nNP.js} +5 -5
- package/dist/{send-DECu0R1a.js → send-DcasEJpW.js} +5 -5
- package/dist/{send-Jz-q93TZ.js → send-DkdEYAe5.js} +5 -5
- package/dist/{send-Cfc4zQZQ.js → send-Dwk8cP7W.js} +4 -4
- package/dist/{send-DRjKjZs1.js → send-Mb8xn3nw.js} +4 -4
- package/dist/{server-context-BUJezTt7.js → server-context-68HV9bpp.js} +6 -6
- package/dist/{server-context-DmXqKFna.js → server-context-D-6GdMor.js} +6 -6
- package/dist/{server-context-CFg_npAt.js → server-context-XRvM6sVl.js} +5 -5
- package/dist/{server-node-events-B6R9PtsE.js → server-node-events-CJsgH2Am.js} +11 -11
- package/dist/{server-node-events-DE9awsGD.js → server-node-events-SK_JbV5S.js} +9 -9
- package/dist/{session-status-tool-xcp9V7TS.js → session-status-tool-BJ3uXJiB.js} +6 -6
- package/dist/{session-status-tool-BAMVlbMV.js → session-status-tool-CxAtKcRz.js} +4 -4
- package/dist/{session-status-tool-CxHTQ9M-.js → session-status-tool-Df3p1FkL.js} +7 -7
- package/dist/{session-utils-WPz6l6QB.js → session-utils--BgIkPfi.js} +4 -4
- package/dist/{sessions-zdScGHgW.js → sessions-B-cuXd6I.js} +6 -6
- package/dist/{sessions-CLk9f3VS.js → sessions-BwRNCPkA.js} +6 -6
- package/dist/{sessions-Dl0Cd4oL.js → sessions-CNjX7z0J.js} +4 -4
- package/dist/{sessions-BzdtrJWV.js → sessions-CzHO0eVl.js} +2 -2
- package/dist/{sessions-helpers-D41batWj.js → sessions-helpers-D0q0G8LJ.js} +3 -3
- package/dist/{sessions-helpers-B5il3JNp.js → sessions-helpers-DLuKdjo_.js} +3 -3
- package/dist/{sessions-helpers-j1QroB55.js → sessions-helpers-DQeOOWhn.js} +3 -3
- package/dist/{sessions-history-tool-hXN2sQro.js → sessions-history-tool-2N5gNLun.js} +4 -4
- package/dist/{sessions-history-tool-BRbzOq97.js → sessions-history-tool-BSUrbcFq.js} +5 -5
- package/dist/{sessions-history-tool-BQ_spEuc.js → sessions-history-tool-BpoDhmO9.js} +5 -5
- package/dist/{sessions-list-tool-CJQntbWI.js → sessions-list-tool-BbX-qiub.js} +5 -5
- package/dist/{sessions-list-tool-Dg2loMdM.js → sessions-list-tool-CozuR0rR.js} +5 -5
- package/dist/{sessions-list-tool-DSDnEdeh.js → sessions-list-tool-DICPSLjZ.js} +4 -4
- package/dist/{sessions-send-tool-CpACfQXU.js → sessions-send-tool-D2HLfmT7.js} +4 -4
- package/dist/{sessions-send-tool-BRma72Qe.js → sessions-send-tool-PlwovQWQ.js} +6 -6
- package/dist/{sessions-send-tool-BGKsRTVQ.js → sessions-send-tool-_Gft5-ns.js} +6 -6
- package/dist/{sessions-spawn-tool-DOgBxODP.js → sessions-spawn-tool-BZEFuAfT.js} +1 -1
- package/dist/{sessions-spawn-tool-Bz9k0pyF.js → sessions-spawn-tool-DblQBRVE.js} +1 -1
- package/dist/{sessions-spawn-tool-BQZQ6qN9.js → sessions-spawn-tool-Yzyfg2jU.js} +1 -1
- package/dist/{shared-CRrAp12U.js → shared-CEUByqYl.js} +2 -2
- package/dist/{shared-DSKVP9mK.js → shared-Cpe2HKSy.js} +2 -2
- package/dist/{skills-cli-DuTDiiHI.js → skills-cli-CZ95j-SK.js} +2 -2
- package/dist/{skills-cli-Bqgq6w1O.js → skills-cli-CejQzPvn.js} +2 -2
- package/dist/{status-Cn_uxl76.js → status-B7w5Rjj0.js} +3 -3
- package/dist/{status-Z8UvQv14.js → status-Bxo5Qgkm.js} +14 -14
- package/dist/{status--iMuqyeg.js → status-D6dSGWoV.js} +3 -3
- package/dist/{status-DLQ6qhVR.js → status-V-A_EQLj.js} +13 -13
- package/dist/{status.update-DwZsqDjZ.js → status.update-D7OzY1un.js} +1 -1
- package/dist/{status.update-wJSTrY3p.js → status.update-xTrXCcTT.js} +1 -1
- package/dist/{subagent-registry-CW6S0hCt.js → subagent-registry-CtFQu2XK.js} +45 -45
- package/dist/{subagents-tool-LGTTnjN8.js → subagents-tool-BgHJ1Aq5.js} +5 -5
- package/dist/{subagents-tool-G_iTKaEM.js → subagents-tool-DVH-Yiuj.js} +6 -6
- package/dist/{subagents-tool-DVCoQVCv.js → subagents-tool-DrGmazl0.js} +6 -6
- package/dist/{system-cli-DcyrWw1d.js → system-cli-DsbBgaIf.js} +1 -1
- package/dist/{system-cli-Dy0bqSW4.js → system-cli-pUoSWi6a.js} +1 -1
- package/dist/{systemd-hints-DMPapqK4.js → systemd-hints-CxrUl99q.js} +1 -1
- package/dist/{systemd-hints-BS411_Qp.js → systemd-hints-h7Rsbtaq.js} +1 -1
- package/dist/{tables-BkOpcnFe.js → tables-BqbZpaiW.js} +1 -1
- package/dist/{tables-DxNxpmv_.js → tables-Dw6fPHPm.js} +1 -1
- package/dist/{targets-COAISf4b.js → targets-0zwF_rcw.js} +2 -2
- package/dist/{targets-aZjwTVyj.js → targets-BDAi2uAM.js} +1 -1
- package/dist/{targets-D83qNpgt.js → targets-ZMb4vg1U.js} +1 -1
- package/dist/{tools-cli-CHENLVBK.js → tools-cli-DxD_TWLP.js} +3 -3
- package/dist/{tools-cli-BMlA4gsY.js → tools-cli-jBx6fczM.js} +3 -3
- package/dist/{tts-CjrwccM4.js → tts-BFst7lT8.js} +1 -1
- package/dist/{tts-CWeZg7pL.js → tts-CrhkSarn.js} +1 -1
- package/dist/{tts-B96k_Lwf.js → tts-pal-CEGo.js} +1 -1
- package/dist/{tts-tool-bED0Rvrn.js → tts-tool-CHxhNUNS.js} +2 -2
- package/dist/{tts-tool-DRWkB0vy.js → tts-tool-Ca-KZba5.js} +3 -3
- package/dist/{tts-tool-OBys_Fcn.js → tts-tool-DxcHcbaB.js} +3 -3
- package/dist/{tui-PDYEGxqk.js → tui-C-R3f8Nx.js} +5 -5
- package/dist/{tui-BVB3So1e.js → tui-CMJvG6DY.js} +5 -5
- package/dist/{tui-cli-C47jFE5K.js → tui-cli-DgKi1NEY.js} +1 -1
- package/dist/{tui-cli-XZJF1TrA.js → tui-cli-VjwcXcq-.js} +1 -1
- package/dist/{update-cli-DjzWjC0N.js → update-cli-DHuLiu1K.js} +8 -8
- package/dist/{update-cli-BMmnfyl5.js → update-cli-QvYJPXKw.js} +8 -8
- package/dist/{validation-C3bcbV84.js → validation-BerZ8GL9.js} +8 -0
- package/dist/{validation-CMXTA_lT.js → validation-NFMJmuUc.js} +8 -0
- package/dist/{web-CmPUg1_h.js → web--T8iHjtC.js} +11 -11
- package/dist/web-B46WIIAq.js +2 -0
- package/dist/{web-search-BKjUWmD_.js → web-search-BZUuxSQw.js} +3 -3
- package/dist/{web-search-CAym2HtE.js → web-search-C8PfcjOm.js} +4 -4
- package/dist/{web-search-CvTnpnBT.js → web-search-CjPx3-uy.js} +4 -4
- package/dist/{webhooks-cli-5X1REotn.js → webhooks-cli-BRkm7juI.js} +4 -4
- package/dist/{webhooks-cli-DjrRcHg-.js → webhooks-cli-BZeAjDjf.js} +4 -4
- package/dist/{workspace-dirs-CBjbBiRa.js → workspace-dirs-7j25QnoW.js} +3 -3
- package/extensions/bluebubbles/index.js +8 -0
- package/extensions/feishu/index.js +8 -0
- package/extensions/flows/index.js +8 -0
- package/extensions/googlechat/index.js +8 -0
- package/extensions/irc/index.js +8 -0
- package/extensions/matrix/{credentials-BM0IUyzD.mjs → credentials-BHs_ypXX.mjs} +8 -0
- package/extensions/matrix/index.js +3 -3
- package/extensions/matrix/{matrix-CVXkVV5E.mjs → matrix-CEQ7r1mq.mjs} +2 -2
- package/extensions/matrix/{resolve-targets-D0pnafu-.mjs → resolve-targets-Ckl6DBF6.mjs} +2 -2
- package/extensions/mattermost/index.js +8 -0
- package/extensions/nextcloud-talk/index.js +8 -0
- package/extensions/wati/index.js +8 -0
- package/extensions/weixin/index.js +8 -0
- package/extensions/zalo/index.js +8 -0
- package/extensions/zalouser/index.js +8 -0
- package/package.json +1 -1
- package/dist/daemon-install-helpers-BHq5Umy1.js +0 -2
- package/dist/daemon-install-helpers-CKFMlhKx.js +0 -2
- package/dist/doctor-completion-D1hIk3j-.js +0 -2
- package/dist/doctor-completion-Db4jJGsj.js +0 -2
- package/dist/web-BL2lSkB9.js +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { C as expandHomePrefix, c as resolveConfigPath, d as resolveGatewayLockDir, f as resolveGatewayPort, n as STATE_DIR, r as isNixMode, t as CONFIG_PATH, v as resolveStateDir } from "./paths-CoM-oAkW.js";
|
|
2
2
|
import { C as shortenHomePath, D as truncateUtf16Safe, L as getChildLogger, P as setVerbose, R as getLogger, _ as resolveConfigDir, b as resolveUserPath, c as ensureDir, d as isPlainObject, r as clamp, t as CONFIG_DIR, z as getResolvedLoggerSettings } from "./utils-FhRSYjMj.js";
|
|
3
3
|
import { n as isRich, r as theme, t as colorize } from "./theme-CDbj88LB.js";
|
|
4
|
-
import { A as resolveBootstrapTotalMaxChars, B as normalizeVerboseLevel, F as listThinkingLevels, H as supportsXHighThinking, I as normalizeElevatedLevel, L as normalizeReasoningLevel, M as formatThinkingLevels, N as formatXHighModelHint, R as normalizeThinkLevel, k as resolveBootstrapMaxChars, z as normalizeUsageDisplay } from "./pi-embedded-helpers-
|
|
5
|
-
import { $ as renamePairedNode, An as isAbortTrigger, At as abortEmbeddedPiRun, Bt as markRecoveryAttempt, C as initTemplateLoader, Ct as loadCombinedSessionStoreForGateway, Dn as resolveUserTimezone, Dt as resolveSessionModelRef, Et as resolveGatewaySessionStoreTarget, Fr as normalizeMimeList, Ft as closeInFlightTurnsStore, G as recordRemoteNodeInfo, Gn as clearAgentRunContext, Gt as getBuiltinSectionRegistry, H as resolveSendPolicy, In as countActiveDescendantRuns, Ir as resolveInputFileLimits, It as deleteRow, J as removeRemoteNodeInfo, Jn as onAgentEvent, Jt as buildToolSummaryMap, K as refreshRemoteBinsForConnectedNodes, Kn as emitAgentEvent, Ln as initSubagentRegistry, Lt as listForCurrentInstance, Mt as queueEmbeddedPiMessage, Nr as extractFileContentFromSource, Nt as waitForEmbeddedPiRunEnd, Ot as normalizeOrgIds, Pr as extractImageContentFromSource, Pt as registerLifecycleHooks, Q as rejectNodePairing, Qt as createOpenClawCodingTools, Rn as listDescendantRunsForRequester, Rr as transcribeOpenAiCompatibleAudio, Rt as listFromOtherInstances, S as getTemplateUsageStats, St as listSessionsFromStore, Tt as pruneLegacyStoreKeys, U as getRemoteSkillEligibility, Un as runSubagentAnnounceFlow, Ut as readConsolidationState, V as normalizeSendPolicy, Vn as markSubagentRunTerminated, Vr as resolveAgentTimeoutMs, Vt as openInFlightTurnsStore, W as primeRemoteSkillsCache, Wt as assembleAgentSystemPromptWithSections, X as approveNodePairing, Xt as PROSE_GLOBAL_ROOT, Y as setSkillsRemoteRegistry, Yn as registerAgentRunContext, Yt as PromptSectionRegistry, Z as listNodePairing, Zn as resolveAgentIdentity, Zt as _clearProseCache, _ as spawnSubagentDirect, _r as parseVerboseOverride, _t as buildSystemPromptReport, a as getCliSessionId, ar as getTotalQueueSize, at as verifyPairingToken, b as getTemplateCache, c as debugSkipAll, cr as waitForActiveTasks, ct as readJsonFile, d as setDebugStepBroadcaster, dt as getSkillsSnapshotVersion, en as applyToolPolicyPipeline, et as requestNodePairing, f as setSteppedBuild, ft as registerSkillsChangeListener, gn as getTotalPendingReplies, gr as applyVerboseOverride, gt as runEmbeddedPiAgent, hn as createReplyDispatcher, hr as applyModelOverrideToSessionEntry, ht as clearSessionQueues, i as resolveCronStyleNow, in as requestHeartbeatNow, it as hashToken, j as loadProviderUsageSummary, jn as stopSubagentsForRequester, jr as DEFAULT_INPUT_IMAGE_MIMES, jt as getActiveEmbeddedRunCount, k as normalizeGroupActivation, kr as registerUnhandledRejectionHandler, kt as orgScopeVisible, l as debugStepContinue, ln as loadMinionPlugins, lr as lookupContextTokens, lt as writeJsonAtomic, mn as dispatchInboundMessage, n as BARE_SESSION_RESET_PROMPT, nn as createMinionTools, nr as resolveBootstrapContextForRun, nt as verifyNodeToken, o as setCliSessionId, or as resetAllLanes, ot as pruneExpiredPending, pr as buildAuthHealthSummary, q as refreshRemoteNodeBins, qn as getAgentRunContext, qt as buildSectionRenderContext, rn as TOOL_REGISTRY, rr as getActiveTaskCount, rt as generatePairingToken, s as runCliAgent, sn as getPluginToolMeta, sr as setCommandLaneConcurrency, st as resolvePairingPaths, tn as buildDefaultToolPolicyPipelineSteps, tt as updatePairedNodeMetadata, u as isSteppedBuildEnabled, un as loadOpenClawPlugins, ut as createAsyncLock, v as getLastReloadAt, vr as enqueueSystemEvent, vt as buildSystemPromptParams, w as stopTemplateWatcher, wn as formatZonedTimestamp, wt as loadSessionEntry, x as getTemplateLoadErrors, xt as listAgentsForGateway, y as getTemplate, yr as isSystemEventContextChanged, yt as canonicalizeSpawnedByForAgent, zt as markInterrupted } from "./reply-
|
|
4
|
+
import { A as resolveBootstrapTotalMaxChars, B as normalizeVerboseLevel, F as listThinkingLevels, H as supportsXHighThinking, I as normalizeElevatedLevel, L as normalizeReasoningLevel, M as formatThinkingLevels, N as formatXHighModelHint, R as normalizeThinkLevel, k as resolveBootstrapMaxChars, z as normalizeUsageDisplay } from "./pi-embedded-helpers-iIC17y0y.js";
|
|
5
|
+
import { $ as renamePairedNode, An as isAbortTrigger, At as abortEmbeddedPiRun, Bt as markRecoveryAttempt, C as initTemplateLoader, Ct as loadCombinedSessionStoreForGateway, Dn as resolveUserTimezone, Dt as resolveSessionModelRef, Et as resolveGatewaySessionStoreTarget, Fr as normalizeMimeList, Ft as closeInFlightTurnsStore, G as recordRemoteNodeInfo, Gn as clearAgentRunContext, Gt as getBuiltinSectionRegistry, H as resolveSendPolicy, In as countActiveDescendantRuns, Ir as resolveInputFileLimits, It as deleteRow, J as removeRemoteNodeInfo, Jn as onAgentEvent, Jt as buildToolSummaryMap, K as refreshRemoteBinsForConnectedNodes, Kn as emitAgentEvent, Ln as initSubagentRegistry, Lt as listForCurrentInstance, Mt as queueEmbeddedPiMessage, Nr as extractFileContentFromSource, Nt as waitForEmbeddedPiRunEnd, Ot as normalizeOrgIds, Pr as extractImageContentFromSource, Pt as registerLifecycleHooks, Q as rejectNodePairing, Qt as createOpenClawCodingTools, Rn as listDescendantRunsForRequester, Rr as transcribeOpenAiCompatibleAudio, Rt as listFromOtherInstances, S as getTemplateUsageStats, St as listSessionsFromStore, Tt as pruneLegacyStoreKeys, U as getRemoteSkillEligibility, Un as runSubagentAnnounceFlow, Ut as readConsolidationState, V as normalizeSendPolicy, Vn as markSubagentRunTerminated, Vr as resolveAgentTimeoutMs, Vt as openInFlightTurnsStore, W as primeRemoteSkillsCache, Wt as assembleAgentSystemPromptWithSections, X as approveNodePairing, Xt as PROSE_GLOBAL_ROOT, Y as setSkillsRemoteRegistry, Yn as registerAgentRunContext, Yt as PromptSectionRegistry, Z as listNodePairing, Zn as resolveAgentIdentity, Zt as _clearProseCache, _ as spawnSubagentDirect, _r as parseVerboseOverride, _t as buildSystemPromptReport, a as getCliSessionId, ar as getTotalQueueSize, at as verifyPairingToken, b as getTemplateCache, c as debugSkipAll, cr as waitForActiveTasks, ct as readJsonFile, d as setDebugStepBroadcaster, dt as getSkillsSnapshotVersion, en as applyToolPolicyPipeline, et as requestNodePairing, f as setSteppedBuild, ft as registerSkillsChangeListener, gn as getTotalPendingReplies, gr as applyVerboseOverride, gt as runEmbeddedPiAgent, hn as createReplyDispatcher, hr as applyModelOverrideToSessionEntry, ht as clearSessionQueues, i as resolveCronStyleNow, in as requestHeartbeatNow, it as hashToken, j as loadProviderUsageSummary, jn as stopSubagentsForRequester, jr as DEFAULT_INPUT_IMAGE_MIMES, jt as getActiveEmbeddedRunCount, k as normalizeGroupActivation, kr as registerUnhandledRejectionHandler, kt as orgScopeVisible, l as debugStepContinue, ln as loadMinionPlugins, lr as lookupContextTokens, lt as writeJsonAtomic, mn as dispatchInboundMessage, n as BARE_SESSION_RESET_PROMPT, nn as createMinionTools, nr as resolveBootstrapContextForRun, nt as verifyNodeToken, o as setCliSessionId, or as resetAllLanes, ot as pruneExpiredPending, pr as buildAuthHealthSummary, q as refreshRemoteNodeBins, qn as getAgentRunContext, qt as buildSectionRenderContext, rn as TOOL_REGISTRY, rr as getActiveTaskCount, rt as generatePairingToken, s as runCliAgent, sn as getPluginToolMeta, sr as setCommandLaneConcurrency, st as resolvePairingPaths, tn as buildDefaultToolPolicyPipelineSteps, tt as updatePairedNodeMetadata, u as isSteppedBuildEnabled, un as loadOpenClawPlugins, ut as createAsyncLock, v as getLastReloadAt, vr as enqueueSystemEvent, vt as buildSystemPromptParams, w as stopTemplateWatcher, wn as formatZonedTimestamp, wt as loadSessionEntry, x as getTemplateLoadErrors, xt as listAgentsForGateway, y as getTemplate, yr as isSystemEventContextChanged, yt as canonicalizeSpawnedByForAgent, zt as markInterrupted } from "./reply-Cztaxyf8.js";
|
|
6
6
|
import { B as listMcpTools, E as createEmptyPluginRegistry, F as triggerInternalHook, H as registerMcpTool, I as addMcpSseSubscriber, L as getMcpDispatcher, M as clearInternalHooks, N as createInternalHookEvent, P as registerInternalHook, R as getMcpIdentityResolver, U as setMcpDispatcher, V as reconcileMcpPluginTools, W as setMcpIdentityResolver, a as setConsoleSubsystemFilter, d as CHANNEL_IDS, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger, w as setActivePluginRegistryConfig, x as getActivePluginRegistry, z as getMcpToolMethod } from "./subsystem-Dor46CEN.js";
|
|
7
7
|
import { t as defaultRuntime } from "./runtime-Da615Z-K.js";
|
|
8
8
|
import { b as isSubagentSessionKey, d as resolveAgentIdFromSessionKey, h as toAgentStoreSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, m as toAgentRequestSessionKey, n as DEFAULT_AGENT_ID, s as classifySessionKeyShape, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as isCronRunSessionKey, x as parseAgentSessionKey } from "./session-key-BcXqsG0l.js";
|
|
@@ -16,19 +16,19 @@ import { t as applySqlitePragmas } from "./sqlite-pragmas-C_o_lU6a.js";
|
|
|
16
16
|
import { t as requireNodeSqlite } from "./sqlite-TEJFfaDd.js";
|
|
17
17
|
import { d as setSentryContext, f as setSentryTag, n as getReliabilityUptimeStartMs, r as initReliability, t as emitReliabilityEvent } from "./reliability-D5odTVhl.js";
|
|
18
18
|
import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-IZo5oHSI.js";
|
|
19
|
-
import { E as parseDurationMs, c as applyLegacyMigrations, i as MinionSchema, n as validateConfigObjectWithPlugins, v as resolveAgentMaxConcurrent, w as sensitive, y as resolveSubagentMaxConcurrent } from "./validation-
|
|
20
|
-
import { C as resolveRuntimeServiceVersion, S as VERSION, a as parseConfigJson5, c as resolveConfigSnapshotHash, i as loadConfig, l as writeConfigFile, n as clearConfigCache, o as readConfigFileSnapshot, r as createConfigIO, s as readConfigFileSnapshotForWrite, t as applySnapshotDefaults, y as applyMergePatch } from "./io-
|
|
19
|
+
import { E as parseDurationMs, c as applyLegacyMigrations, i as MinionSchema, n as validateConfigObjectWithPlugins, v as resolveAgentMaxConcurrent, w as sensitive, y as resolveSubagentMaxConcurrent } from "./validation-BerZ8GL9.js";
|
|
20
|
+
import { C as resolveRuntimeServiceVersion, S as VERSION, a as parseConfigJson5, c as resolveConfigSnapshotHash, i as loadConfig, l as writeConfigFile, n as clearConfigCache, o as readConfigFileSnapshot, r as createConfigIO, s as readConfigFileSnapshotForWrite, t as applySnapshotDefaults, y as applyMergePatch } from "./io-CdQCAaa6.js";
|
|
21
21
|
import { l as isTestDefaultMemorySlotDisabled, n as loadPluginManifestRegistry } from "./manifest-registry-BhQtdshS.js";
|
|
22
|
-
import { n as migrateLegacyConfig } from "./config-
|
|
23
|
-
import { A as getMirrorSnapshot, D as applyChannelRestart, F as setChannelRestartHandler, I as startMirrorRefreshTick, L as resolveHubMetricsConfig, O as channelConfigSource, P as seedMirror, _ as resolveTelegramAccount, c as resolveWhatsAppAccount, j as listMirrorAccountIds, k as getMirrorEntry, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as buildChannelAccountBindings, z as setMirrorAccountSource } from "./plugins-
|
|
24
|
-
import { B as resolveExplicitAgentSessionKey, C as readSessionMessages, D as stripEnvelope, E as resolveSessionTranscriptCandidates, H as resolveMainSessionKeyFromConfig, L as resolveFreshSessionTotalTokens, N as resolveSessionResetPolicy, O as stripMessageIdHints, R as canonicalizeMainSessionAlias, S as capArrayByJsonBytes, V as resolveMainSessionKey, W as snapshotSessionOrigin, a as loadSessionStore, b as archiveFileOnDisk, g as mergeDeliveryContext, j as evaluateSessionFreshness, m as deliveryContextFromSession, n as parseSessionThreadInfo, nt as cleanStaleLockFiles, t as extractDeliveryInfo, u as updateSessionStore, v as normalizeSessionDeliveryFields, w as readSessionPreviewItemsFromTranscript, x as archiveSessionTranscripts, z as resolveAgentMainSessionKey } from "./sessions-
|
|
25
|
-
import { n as runWithModelFallback } from "./model-fallback-
|
|
26
|
-
import { c as resolveSandboxRuntimeStatus, g as collectExplicitAllowlist, p as TOOL_GROUPS, v as expandToolGroups, x as resolveToolProfilePolicy, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
22
|
+
import { n as migrateLegacyConfig } from "./config-DehMVNfT.js";
|
|
23
|
+
import { A as getMirrorSnapshot, D as applyChannelRestart, F as setChannelRestartHandler, I as startMirrorRefreshTick, L as resolveHubMetricsConfig, O as channelConfigSource, P as seedMirror, _ as resolveTelegramAccount, c as resolveWhatsAppAccount, j as listMirrorAccountIds, k as getMirrorEntry, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as buildChannelAccountBindings, z as setMirrorAccountSource } from "./plugins-DoD5loqV.js";
|
|
24
|
+
import { B as resolveExplicitAgentSessionKey, C as readSessionMessages, D as stripEnvelope, E as resolveSessionTranscriptCandidates, H as resolveMainSessionKeyFromConfig, L as resolveFreshSessionTotalTokens, N as resolveSessionResetPolicy, O as stripMessageIdHints, R as canonicalizeMainSessionAlias, S as capArrayByJsonBytes, V as resolveMainSessionKey, W as snapshotSessionOrigin, a as loadSessionStore, b as archiveFileOnDisk, g as mergeDeliveryContext, j as evaluateSessionFreshness, m as deliveryContextFromSession, n as parseSessionThreadInfo, nt as cleanStaleLockFiles, t as extractDeliveryInfo, u as updateSessionStore, v as normalizeSessionDeliveryFields, w as readSessionPreviewItemsFromTranscript, x as archiveSessionTranscripts, z as resolveAgentMainSessionKey } from "./sessions-BwRNCPkA.js";
|
|
25
|
+
import { n as runWithModelFallback } from "./model-fallback-CbUPBvLD.js";
|
|
26
|
+
import { c as resolveSandboxRuntimeStatus, g as collectExplicitAllowlist, p as TOOL_GROUPS, v as expandToolGroups, x as resolveToolProfilePolicy, y as mergeAlsoAllowPolicy } from "./sandbox-DbBsfhrg.js";
|
|
27
27
|
import { a as enableTailscaleServeFunnel, i as enableTailscaleServe, n as disableTailscaleServe, r as enableTailscaleFunnel, s as getTailnetHostname, t as disableTailscaleFunnel } from "./tailscale-ElLAPnGH.js";
|
|
28
28
|
import { a as resolveRequestClientIp, c as createAuthRateLimiter, i as resolveGatewayAuth, l as safeEqualSecret, n as authorizeGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as isLocalDirectRequest, s as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, t as assertGatewayAuthConfigured } from "./auth-OWSujIee.js";
|
|
29
29
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C0DLwT7t.js";
|
|
30
30
|
import { a as isTrustedProxyAddress, d as resolveGatewayClientIp, f as resolveGatewayListenHosts, i as isPrivateOrLoopbackAddress, l as pickPrimaryLanIPv4, n as isLoopbackAddress, p as resolveHostName, r as isLoopbackHost, s as normalizeHostHeader, t as rawDataToString, u as resolveGatewayBindHost } from "./ws-D1BO6u3O.js";
|
|
31
|
-
import { h as mergeGatewayTailscaleConfig, m as ensureGatewayStartupAuth } from "./server-context-
|
|
31
|
+
import { h as mergeGatewayTailscaleConfig, m as ensureGatewayStartupAuth } from "./server-context-D-6GdMor.js";
|
|
32
32
|
import { n as buildWorkspaceSkillSnapshot, r as loadWorkspaceSkillEntries } from "./workspace-CsM-Cs49.js";
|
|
33
33
|
import "./skills-CiPqFRzf.js";
|
|
34
34
|
import { a as isErrno, n as formatErrorMessage } from "./errors-iV4-NKRR.js";
|
|
@@ -40,22 +40,22 @@ import "./logging-_oKeHe0e.js";
|
|
|
40
40
|
import { r as resolveUserDir } from "./user-directory-D27je39W.js";
|
|
41
41
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CIx6mrsE.js";
|
|
42
42
|
import { i as normalizeInputProvenance } from "./input-provenance-ChJN5mZj.js";
|
|
43
|
-
import { D as runGlobalGatewayStopSafely, S as patchRouting, T as getGlobalHookRunner, _ as closeMessageLedger, b as markSynced, g as claimBatch, k as isPluginEnabledForOrg, w as deterministicClientId, x as openMessageLedger, y as markFailed } from "./reply-payloads-
|
|
43
|
+
import { D as runGlobalGatewayStopSafely, S as patchRouting, T as getGlobalHookRunner, _ as closeMessageLedger, b as markSynced, g as claimBatch, k as isPluginEnabledForOrg, w as deterministicClientId, x as openMessageLedger, y as markFailed } from "./reply-payloads-SesmOYS1.js";
|
|
44
44
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-v1JmmyzF.js";
|
|
45
|
-
import { n as loadModelCatalog } from "./model-catalog-
|
|
45
|
+
import { n as loadModelCatalog } from "./model-catalog-BT-GB5Sg.js";
|
|
46
46
|
import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText } from "./tokens-DyoUYpcY.js";
|
|
47
47
|
import { a as stripHeartbeatToken } from "./lanes-lpI3esC4.js";
|
|
48
|
-
import { i as resolveSessionDeliveryTarget, r as resolveOutboundTarget } from "./targets-
|
|
48
|
+
import { i as resolveSessionDeliveryTarget, r as resolveOutboundTarget } from "./targets-0zwF_rcw.js";
|
|
49
49
|
import { n as getMachineDisplayName } from "./with-timeout-B2r_vm3n.js";
|
|
50
50
|
import { n as isDiagnosticsEnabled } from "./diagnostic-events-BIoHynd0.js";
|
|
51
51
|
import { c as startDiagnosticHeartbeat, l as stopDiagnosticHeartbeat } from "./diagnostic-BAEmirZd.js";
|
|
52
|
-
import { C as OPENAI_TTS_MODELS, T as defineDrone, _ as setTtsEnabled, d as resolveTtsAutoMode, f as resolveTtsConfig, i as getTtsProvider, m as resolveTtsProviderOrder, o as isTtsEnabled, p as resolveTtsPrefsPath, s as isTtsProviderConfigured, t as buildTtsSystemPromptHint, u as resolveTtsApiKey, w as OPENAI_TTS_VOICES, x as textToSpeech, y as setTtsProvider } from "./tts-
|
|
52
|
+
import { C as OPENAI_TTS_MODELS, T as defineDrone, _ as setTtsEnabled, d as resolveTtsAutoMode, f as resolveTtsConfig, i as getTtsProvider, m as resolveTtsProviderOrder, o as isTtsEnabled, p as resolveTtsPrefsPath, s as isTtsProviderConfigured, t as buildTtsSystemPromptHint, u as resolveTtsApiKey, w as OPENAI_TTS_VOICES, x as textToSpeech, y as setTtsProvider } from "./tts-pal-CEGo.js";
|
|
53
53
|
import { i as runDrone, t as createGatewayDroneHost } from "./host-DjZfjj2q.js";
|
|
54
54
|
import { a as traceGatewayEvent, n as pruneOldTraceFiles } from "./chat-trace-DK2HjAH4.js";
|
|
55
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
55
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-Cjc2QC34.js";
|
|
56
56
|
import { t as ToolInputError } from "./common-DSuaFkdO.js";
|
|
57
57
|
import { $ as validateModelsSetEnabledParams, A as validateCronRunsParams, At as validateToolsOverridesSetParams, B as validateExecApprovalRequestParams, Bt as validateWizardStatusParams, C as validateConfigSchemaParams, Ct as validateSkillsBinsParams, D as validateCronListParams, Dt as validateTalkConfigParams, E as validateCronAddParams, Et as validateSkillsUpdateParams, F as validateDevicePairRejectParams, Ft as validateWebLoginStartParams, G as validateExecApprovalsSetParams, Gt as deriveDeviceIdFromPublicKey, H as validateExecApprovalsGetParams, Ht as buildDeviceAuthPayload, I as validateDevicePairRemoveParams, It as validateWebLoginWaitParams, J as validateMeshPlanParams, Jt as verifyDeviceSignature, K as validateLogsTailParams, L as validateDeviceTokenRevokeParams, Lt as validateWizardCancelParams, M as validateCronUpdateParams, Mt as validateToolsUpdateParams, N as validateDevicePairApproveParams, Nt as validateUpdateRunParams, O as validateCronRemoveParams, Ot as validateTalkModeParams, P as validateDevicePairListParams, Pt as validateWakeParams, Q as validateModelsListParams, R as validateDeviceTokenRotateParams, Rt as validateWizardNextParams, S as validateConfigPatchParams, St as validateSessionsUsageParams, T as validateConnectParams, Tt as validateSkillsStatusParams, U as validateExecApprovalsNodeGetParams, Ut as normalizeDeviceAuthScopes, V as validateExecApprovalResolveParams, Vt as parseSessionLabel, W as validateExecApprovalsNodeSetParams, X as validateMeshRunParams, Y as validateMeshRetryParams, Z as validateMeshStatusParams, _ as validateChatHistoryParams, _t as validateSessionsListParams, a as validateAgentWaitParams, at as validateNodePairApproveParams, b as validateConfigApplyParams, bt as validateSessionsResetParams, c as validateAgentsFilesGetParams, ct as validateNodePairRequestParams, d as validateAgentsListParams, dt as validatePlaygroundCompleteParams, et as validateNodeDescribeParams, f as validateAgentsSkillsSetParams, ft as validatePollParams, g as validateChatAbortParams, gt as validateSessionsDeleteParams, h as validateChannelsStatusParams, ht as validateSessionsCompactParams, i as validateAgentParams, it as validateNodeListParams, j as validateCronStatusParams, jt as validateToolsStatusParams, k as validateCronRunParams, kt as validateTelegramValidateTokenParams, l as validateAgentsFilesListParams, lt as validateNodePairVerifyParams, m as validateChannelsLogoutParams, mt as validateSendParams, n as formatValidationErrors, nt as validateNodeInvokeParams, o as validateAgentsCreateParams, ot as validateNodePairListParams, p as validateAgentsUpdateParams, pt as validateRequestFrame, q as validateMeshPlanAutoParams, qt as normalizeDevicePublicKeyBase64Url, r as validateAgentIdentityParams, rt as validateNodeInvokeResultParams, s as validateAgentsDeleteParams, st as validateNodePairRejectParams, tt as validateNodeEventParams, u as validateAgentsFilesSetParams, ut as validateNodeRenameParams, v as validateChatInjectParams, vt as validateSessionsPatchParams, w as validateConfigSetParams, wt as validateSkillsInstallParams, x as validateConfigGetParams, xt as validateSessionsResolveParams, y as validateChatSendParams, yt as validateSessionsPreviewParams, z as validateDiscordValidateTokenParams, zt as validateWizardStartParams } from "./client-D2G3F-qm.js";
|
|
58
|
-
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-
|
|
58
|
+
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-Cv9JOMB9.js";
|
|
59
59
|
import { i as isExternalHookSession, n as detectSuspiciousPatterns, r as getHookType, t as buildSafeExternalPrompt } from "./external-content-Css-cJoz.js";
|
|
60
60
|
import { t as formatDocsLink } from "./links-XaZTa0pi.js";
|
|
61
61
|
import { n as runCommandWithRuntime } from "./cli-utils-Cg2c3XDf.js";
|
|
@@ -63,20 +63,20 @@ import { t as formatHelpExamples } from "./help-format-D20I7z1G.js";
|
|
|
63
63
|
import { n as withProgress } from "./progress-Dai1njDG.js";
|
|
64
64
|
import { t as getChannelActivity } from "./channel-activity-mLVM0GeJ.js";
|
|
65
65
|
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-DkFd6DjM.js";
|
|
66
|
-
import { a as resolveGroupToolPolicy, i as resolveEffectiveToolPolicy, o as resolveSubagentToolPolicy, t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
66
|
+
import { a as resolveGroupToolPolicy, i as resolveEffectiveToolPolicy, o as resolveSubagentToolPolicy, t as listAgentWorkspaceDirs } from "./workspace-dirs-7j25QnoW.js";
|
|
67
67
|
import { r as recallMemories, t as configureMemorySink } from "./memory-sink-D19pkCCX.js";
|
|
68
68
|
import { t as KnowledgeGraphSession } from "./knowledge-graph-pXjPijn6.js";
|
|
69
69
|
import { n as resolveModel } from "./model-BXSqE87X.js";
|
|
70
70
|
import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-D-vzOkTS.js";
|
|
71
71
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format--dK3YoXf.js";
|
|
72
72
|
import { a as markGatewaySigusr1RestartHandled, c as setPreRestartDeferralCheck, i as isGatewaySigusr1RestartExternallyAllowed, n as deferGatewayRestartUntilIdle, o as scheduleGatewaySigusr1Restart, r as emitGatewayRestart, s as setGatewaySigusr1RestartPolicy, t as consumeGatewaySigusr1RestartAuthorization } from "./restart-CrIJvqAZ.js";
|
|
73
|
-
import { a as areHeartbeatsEnabled, c as setHeartbeatsEnabled, i as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as resolveHeartbeatVisibility } from "./health-
|
|
73
|
+
import { a as areHeartbeatsEnabled, c as setHeartbeatsEnabled, i as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as resolveHeartbeatVisibility } from "./health-CMSekzYP.js";
|
|
74
74
|
import { n as getLastHeartbeatEvent, r as onHeartbeatEvent } from "./heartbeat-events-CNb7CXLY.js";
|
|
75
|
-
import { a as resetDirectoryCache, n as ensureOutboundSessionEntry, s as normalizePollInput, t as resolveOutboundSessionRoute } from "./outbound-session-
|
|
76
|
-
import { a as computeBackoff, n as resolveChannelSenderIdentity, o as sleepWithAbort, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
75
|
+
import { a as resetDirectoryCache, n as ensureOutboundSessionEntry, s as normalizePollInput, t as resolveOutboundSessionRoute } from "./outbound-session-DAvju8aE.js";
|
|
76
|
+
import { a as computeBackoff, n as resolveChannelSenderIdentity, o as sleepWithAbort, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-DaqS3OL8.js";
|
|
77
77
|
import { n as handleHubAssignmentChanged, r as initUserSubsystem, t as getActiveUserSubsystem } from "./server-startup-users-BPNhajYB.js";
|
|
78
78
|
import { t as mapRoleToScopes } from "./types-Utz3c3Qq.js";
|
|
79
|
-
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-
|
|
79
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-dnIzvRTI.js";
|
|
80
80
|
import { t as ensureMinionCliOnPath } from "./path-env-q2qzs5In.js";
|
|
81
81
|
import { t as forceFreePortAndWait } from "./ports-CRi_UQIX.js";
|
|
82
82
|
import { t as buildChannelUiCatalog } from "./catalog-Pmvum_mS.js";
|
|
@@ -87,41 +87,41 @@ import { a as normalizeOptionalAgentId, c as normalizePayloadToSystemText, d as
|
|
|
87
87
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BlvVswOf.js";
|
|
88
88
|
import { a as summarizeRestartSentinel, n as formatDoctorNonInteractiveHint, r as formatRestartSentinelMessage, s as writeRestartSentinel, t as consumeRestartSentinel } from "./restart-sentinel-fbAWH01I.js";
|
|
89
89
|
import { n as setHubRest } from "./hub-rest-registry-DQyDHHy2.js";
|
|
90
|
-
import { o as normalizeReplyPayloadsForDelivery, s as loadChannelOutboundAdapter, t as deliverOutboundPayloads } from "./deliver-
|
|
91
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
92
|
-
import { c as resolveAnnounceTargetFromKey, t as readLatestAssistantReply } from "./agent-step-
|
|
90
|
+
import { o as normalizeReplyPayloadsForDelivery, s as loadChannelOutboundAdapter, t as deliverOutboundPayloads } from "./deliver-C97xbDFj.js";
|
|
91
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-BTmIs82T.js";
|
|
92
|
+
import { c as resolveAnnounceTargetFromKey, t as readLatestAssistantReply } from "./agent-step-BlC5YTeo.js";
|
|
93
93
|
import { a as runAggregation, n as executeOrchestration, r as readStatusJson, t as executePipeline } from "./orchestration-pipeline-BBscBgru.js";
|
|
94
94
|
import { r as readManifest, t as completeManifest } from "./orchestration-manifest-ByxGsjSI.js";
|
|
95
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
96
|
-
import { t as createBrowserRouteDispatcher } from "./dispatcher-
|
|
95
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-B4NmPTp4.js";
|
|
96
|
+
import { t as createBrowserRouteDispatcher } from "./dispatcher-Dpk5Q-if.js";
|
|
97
97
|
import { n as persistBrowserProxyFiles, t as applyBrowserProxyPaths } from "./proxy-files-CGzbQD6b.js";
|
|
98
98
|
import { r as cachedJson } from "./ttl-cache-C8H9R9LT.js";
|
|
99
99
|
import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-C1Fg_5xy.js";
|
|
100
100
|
import { n as inheritOptionFromParent } from "./command-options-Dhjl7AMa.js";
|
|
101
101
|
import { t as WizardCancelledError } from "./prompts-E0FayNjJ.js";
|
|
102
102
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BcEbnHmz.js";
|
|
103
|
-
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
103
|
+
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-C1841BQR.js";
|
|
104
104
|
import { t as buildChannelAccountSnapshot } from "./status-Dg720jp3.js";
|
|
105
|
-
import { C as resolveAssistantAvatarUrl, S as normalizeControlUiBasePath, b as CONTROL_UI_AVATAR_PREFIX, c as handleReset, x as buildControlUiAvatarUrl } from "./onboard-helpers-
|
|
106
|
-
import "./onboard-helpers-
|
|
105
|
+
import { C as resolveAssistantAvatarUrl, S as normalizeControlUiBasePath, b as CONTROL_UI_AVATAR_PREFIX, c as handleReset, x as buildControlUiAvatarUrl } from "./onboard-helpers-CLTVAIAP.js";
|
|
106
|
+
import "./onboard-helpers-DobA9gFL.js";
|
|
107
107
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Qux811Cp.js";
|
|
108
108
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BwC8GE-s.js";
|
|
109
109
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-NB0c0sCF.js";
|
|
110
110
|
import { t as installSkill } from "./skills-install-FagnOGmD.js";
|
|
111
111
|
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-C2cJYDtd.js";
|
|
112
|
-
import { m as parsePort$1 } from "./lifecycle-core-
|
|
113
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
112
|
+
import { m as parsePort$1 } from "./lifecycle-core-D1qgiAnW.js";
|
|
113
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-BIyeWSo9.js";
|
|
114
114
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CwLlNhTt.js";
|
|
115
|
-
import { a as resolveNodeCommandAllowlist, i as isNodeCommandAllowed, o as probeGateway } from "./audit-
|
|
116
|
-
import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-
|
|
115
|
+
import { a as resolveNodeCommandAllowlist, i as isNodeCommandAllowed, o as probeGateway } from "./audit-bz0y9XAh.js";
|
|
116
|
+
import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-V-A_EQLj.js";
|
|
117
117
|
import { a as resolveNpmChannelTag, n as compareSemverStrings, p as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-Bx-oG--O.js";
|
|
118
118
|
import { i as initCrypto, n as ProbeRegistry, r as SecretsManager, t as SecretStore } from "./store-J0lVAVgk.js";
|
|
119
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
120
|
-
import { a as normalizeRpcAttachmentsToChatAttachments, c as logWs, d as setGatewayWsLogStyle, i as sendApnsBackgroundWake, l as shouldLogWs, o as parseMessageWithAttachments, r as resolveApnsAuthConfigFromEnv, s as formatForLog, t as loadApnsRegistration, u as summarizeAgentEventForWsLog } from "./push-apns-
|
|
121
|
-
import { h as resolveGmailPullRuntimeConfig } from "./gmail-
|
|
119
|
+
import { t as runOnboardingWizard } from "./onboarding-BOHF-KyS.js";
|
|
120
|
+
import { a as normalizeRpcAttachmentsToChatAttachments, c as logWs, d as setGatewayWsLogStyle, i as sendApnsBackgroundWake, l as shouldLogWs, o as parseMessageWithAttachments, r as resolveApnsAuthConfigFromEnv, s as formatForLog, t as loadApnsRegistration, u as summarizeAgentEventForWsLog } from "./push-apns-DnLzbtEB.js";
|
|
121
|
+
import { h as resolveGmailPullRuntimeConfig } from "./gmail-DyzUUJJc.js";
|
|
122
122
|
import { t as createOutboundSendDeps$1 } from "./outbound-send-deps-BF7Fp5DR.js";
|
|
123
123
|
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, s as loadAgentIdentityFromWorkspace, t as applyAgentConfig } from "./agents.config-Bkv5OgWh.js";
|
|
124
|
-
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
124
|
+
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-r19IQe9R.js";
|
|
125
125
|
import { n as validateSystemRunCommandConsistency, t as formatExecCommand } from "./system-run-command-BRxsVIll.js";
|
|
126
126
|
import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-fhvkz2W3.js";
|
|
127
127
|
import { n as setEmbedConcurrency } from "./qmd-embed-semaphore-BI3_fJ4u.js";
|
|
@@ -1379,7 +1379,7 @@ async function stripLegacyConfigOverrides(cfg, stateDir, log) {
|
|
|
1379
1379
|
* Orchestration event bus — typed EventEmitter for orchestration progress
|
|
1380
1380
|
* with auto-cleanup on completion and optional gateway bridge.
|
|
1381
1381
|
*/
|
|
1382
|
-
const log$
|
|
1382
|
+
const log$30 = createSubsystemLogger("orchestration-events");
|
|
1383
1383
|
var OrchestrationEventBus = class {
|
|
1384
1384
|
constructor() {
|
|
1385
1385
|
this.listeners = /* @__PURE__ */ new Map();
|
|
@@ -1477,7 +1477,7 @@ function scanForInterruptedOrchestrations(agentWorkspaces) {
|
|
|
1477
1477
|
if (manifest.status === "running") {
|
|
1478
1478
|
completeManifest(orchestrationDir, "interrupted");
|
|
1479
1479
|
interrupted.push(manifest.orchestrationId);
|
|
1480
|
-
log$
|
|
1480
|
+
log$30.info(`crash recovery: marked orchestration ${manifest.orchestrationId} as interrupted`);
|
|
1481
1481
|
}
|
|
1482
1482
|
}
|
|
1483
1483
|
}
|
|
@@ -1485,7 +1485,7 @@ function scanForInterruptedOrchestrations(agentWorkspaces) {
|
|
|
1485
1485
|
}
|
|
1486
1486
|
//#endregion
|
|
1487
1487
|
//#region src/infra/exec-approval-forwarder.ts
|
|
1488
|
-
const log$
|
|
1488
|
+
const log$29 = createSubsystemLogger("gateway/exec-approvals");
|
|
1489
1489
|
const DEFAULT_MODE = "session";
|
|
1490
1490
|
function normalizeMode(mode) {
|
|
1491
1491
|
return mode ?? DEFAULT_MODE;
|
|
@@ -1603,7 +1603,7 @@ async function deliverToTargets(params) {
|
|
|
1603
1603
|
payloads: [{ text: params.text }]
|
|
1604
1604
|
});
|
|
1605
1605
|
} catch (err) {
|
|
1606
|
-
log$
|
|
1606
|
+
log$29.error(`exec approvals: failed to deliver to ${channel}:${target.to}: ${String(err)}`);
|
|
1607
1607
|
}
|
|
1608
1608
|
});
|
|
1609
1609
|
await Promise.allSettled(deliveries);
|
|
@@ -3216,7 +3216,7 @@ async function validateGatewayJwt(token, config) {
|
|
|
3216
3216
|
}
|
|
3217
3217
|
//#endregion
|
|
3218
3218
|
//#region src/gateway/channel-health-monitor.ts
|
|
3219
|
-
const log$
|
|
3219
|
+
const log$28 = createSubsystemLogger("gateway/health-monitor");
|
|
3220
3220
|
const DEFAULT_CHECK_INTERVAL_MS$1 = 5 * 6e4;
|
|
3221
3221
|
const DEFAULT_STARTUP_GRACE_MS = 6e4;
|
|
3222
3222
|
const DEFAULT_COOLDOWN_CYCLES = 2;
|
|
@@ -3266,11 +3266,11 @@ function startChannelHealthMonitor(deps) {
|
|
|
3266
3266
|
if (now - record.lastRestartAt <= cooldownMs) continue;
|
|
3267
3267
|
pruneOldRestarts(record, now);
|
|
3268
3268
|
if (record.restartsThisHour.length >= maxRestartsPerHour) {
|
|
3269
|
-
log$
|
|
3269
|
+
log$28.warn?.(`[${channelId}:${accountId}] health-monitor: hit ${maxRestartsPerHour} restarts/hour limit, skipping`);
|
|
3270
3270
|
continue;
|
|
3271
3271
|
}
|
|
3272
3272
|
const reason = !status.running ? status.reconnectAttempts && status.reconnectAttempts >= 10 ? "gave-up" : "stopped" : "stuck";
|
|
3273
|
-
log$
|
|
3273
|
+
log$28.info?.(`[${channelId}:${accountId}] health-monitor: restarting (reason: ${reason})`);
|
|
3274
3274
|
try {
|
|
3275
3275
|
if (status.running) await channelManager.stopChannel(channelId, accountId);
|
|
3276
3276
|
channelManager.resetRestartAttempts(channelId, accountId);
|
|
@@ -3279,7 +3279,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3279
3279
|
record.restartsThisHour.push({ at: now });
|
|
3280
3280
|
restartRecords.set(key, record);
|
|
3281
3281
|
} catch (err) {
|
|
3282
|
-
log$
|
|
3282
|
+
log$28.error?.(`[${channelId}:${accountId}] health-monitor: restart failed: ${String(err)}`);
|
|
3283
3283
|
}
|
|
3284
3284
|
}
|
|
3285
3285
|
}
|
|
@@ -3299,7 +3299,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3299
3299
|
abortSignal?.addEventListener("abort", stop, { once: true });
|
|
3300
3300
|
timer = setInterval(() => void runCheck(), checkIntervalMs);
|
|
3301
3301
|
if (typeof timer === "object" && "unref" in timer) timer.unref();
|
|
3302
|
-
log$
|
|
3302
|
+
log$28.info?.(`started (interval: ${Math.round(checkIntervalMs / 1e3)}s, grace: ${Math.round(startupGraceMs / 1e3)}s)`);
|
|
3303
3303
|
}
|
|
3304
3304
|
return { stop };
|
|
3305
3305
|
}
|
|
@@ -3319,7 +3319,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3319
3319
|
* compare) before any phase flips dispatch to the mirror. whatsapp + telegram compare
|
|
3320
3320
|
* fully; discord is compare-deferred. See specs/2026-06-26-gateway-config-db-migration-plan.md.
|
|
3321
3321
|
*/
|
|
3322
|
-
const log$
|
|
3322
|
+
const log$27 = createSubsystemLogger("channel-mirror");
|
|
3323
3323
|
/** The gateway's live (gateway.json-resolved) comparable projection for an account.
|
|
3324
3324
|
* Type-aware: whatsapp + telegram resolve cleanly; discord's per-guild/channel model
|
|
3325
3325
|
* has no flat account projection → returns null (compare deferred, logged honestly). */
|
|
@@ -3378,7 +3378,7 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3378
3378
|
try {
|
|
3379
3379
|
await seedMirror();
|
|
3380
3380
|
} catch (err) {
|
|
3381
|
-
log$
|
|
3381
|
+
log$27.warn(`mirror refresh on signal failed: ${String(err)}`);
|
|
3382
3382
|
}
|
|
3383
3383
|
const affectedTypes = /* @__PURE__ */ new Set();
|
|
3384
3384
|
for (const tag of channelTags) {
|
|
@@ -3390,7 +3390,7 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3390
3390
|
try {
|
|
3391
3391
|
compareOne(type, accountId);
|
|
3392
3392
|
} catch (err) {
|
|
3393
|
-
log$
|
|
3393
|
+
log$27.warn(`compare failed for ${tag}: ${String(err)}`);
|
|
3394
3394
|
}
|
|
3395
3395
|
}
|
|
3396
3396
|
for (const type of affectedTypes) await applyChannelRestart(type);
|
|
@@ -3399,18 +3399,18 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3399
3399
|
function compareOne(type, accountId) {
|
|
3400
3400
|
const entry = getMirrorEntry(type, accountId);
|
|
3401
3401
|
if (!entry) {
|
|
3402
|
-
log$
|
|
3402
|
+
log$27.info(`signal for ${type}:${accountId}: not in mirror (Valkey/hub hydrate empty)`);
|
|
3403
3403
|
return;
|
|
3404
3404
|
}
|
|
3405
3405
|
const shadow = entry.projection;
|
|
3406
3406
|
const live = liveProjection(type, accountId);
|
|
3407
3407
|
if (!live) {
|
|
3408
|
-
log$
|
|
3408
|
+
log$27.info(`signal for ${type}:${accountId}: no live comparable (new account or compare-deferred type) [observe-only]`);
|
|
3409
3409
|
return;
|
|
3410
3410
|
}
|
|
3411
3411
|
const diff = diffFields(shadow, live);
|
|
3412
3412
|
const intended = shadow.enabled ? live.enabled ? "noop(running)" : "START" : "STOP";
|
|
3413
|
-
log$
|
|
3413
|
+
log$27.info(`mirror ${type}:${accountId}: diff=[${diff.join(",") || "none"}] intended=${intended} shadow=${JSON.stringify(shadow)} live=${JSON.stringify(live)} [observe-only]`);
|
|
3414
3414
|
}
|
|
3415
3415
|
/**
|
|
3416
3416
|
* Boot parity check: read the seeded mirror snapshot and log how many accounts diverge
|
|
@@ -3430,10 +3430,10 @@ async function channelMirrorBootParity() {
|
|
|
3430
3430
|
}
|
|
3431
3431
|
if (diffFields(projection, live).length > 0) diffs += 1;
|
|
3432
3432
|
}
|
|
3433
|
-
log$
|
|
3434
|
-
log$
|
|
3433
|
+
log$27.info(`boot hydration: ${shadows.size} accounts from hub, ${diffs} diff(s), ${deferred} deferred vs gateway.json [observe-only]`);
|
|
3434
|
+
log$27.info(`boot hydration keys: [${Array.from(shadows.keys()).sort().join(", ")}]`);
|
|
3435
3435
|
} catch (err) {
|
|
3436
|
-
log$
|
|
3436
|
+
log$27.warn(`boot hydration parity failed: ${String(err)}`);
|
|
3437
3437
|
}
|
|
3438
3438
|
}
|
|
3439
3439
|
//#endregion
|
|
@@ -3933,7 +3933,7 @@ var ExecApprovalManager = class {
|
|
|
3933
3933
|
* Opens the SQLite database, applies WAL pragmas, and runs the
|
|
3934
3934
|
* 004_free_tier_users migration. Returns the DatabaseSync instance.
|
|
3935
3935
|
*/
|
|
3936
|
-
const log$
|
|
3936
|
+
const log$26 = createSubsystemLogger("free-tier/db");
|
|
3937
3937
|
const MIGRATION_SQL_PATH = join(dirname(fileURLToPath(import.meta.url)), "../../db/migrations/004_free_tier_users.sql");
|
|
3938
3938
|
function openFreeTierDb(dbPath) {
|
|
3939
3939
|
const { DatabaseSync } = requireNodeSqlite();
|
|
@@ -3942,9 +3942,9 @@ function openFreeTierDb(dbPath) {
|
|
|
3942
3942
|
try {
|
|
3943
3943
|
const sql = readFileSync(MIGRATION_SQL_PATH, "utf8");
|
|
3944
3944
|
db.exec(sql);
|
|
3945
|
-
log$
|
|
3945
|
+
log$26.info("free-tier DB migration applied", { dbPath });
|
|
3946
3946
|
} catch (err) {
|
|
3947
|
-
log$
|
|
3947
|
+
log$26.error("free-tier DB migration failed", {
|
|
3948
3948
|
dbPath,
|
|
3949
3949
|
error: String(err)
|
|
3950
3950
|
});
|
|
@@ -4084,13 +4084,13 @@ var UserRepository = class {
|
|
|
4084
4084
|
};
|
|
4085
4085
|
//#endregion
|
|
4086
4086
|
//#region src/gateway/free-tier/email.ts
|
|
4087
|
-
const log$
|
|
4087
|
+
const log$25 = createSubsystemLogger("free-tier/email");
|
|
4088
4088
|
const RESEND_API = "https://api.resend.com/emails";
|
|
4089
4089
|
const FROM = "OpenClaw <noreply@minion.ai>";
|
|
4090
4090
|
async function send$1(to, subject, html) {
|
|
4091
4091
|
const apiKey = process.env["RESEND_API_KEY"];
|
|
4092
4092
|
if (!apiKey) {
|
|
4093
|
-
log$
|
|
4093
|
+
log$25.warn("RESEND_API_KEY not set — email not sent", {
|
|
4094
4094
|
to,
|
|
4095
4095
|
subject
|
|
4096
4096
|
});
|
|
@@ -4111,7 +4111,7 @@ async function send$1(to, subject, html) {
|
|
|
4111
4111
|
});
|
|
4112
4112
|
if (!res.ok) {
|
|
4113
4113
|
const text = await res.text().catch(() => "");
|
|
4114
|
-
log$
|
|
4114
|
+
log$25.error("Resend API error", {
|
|
4115
4115
|
status: res.status,
|
|
4116
4116
|
body: text
|
|
4117
4117
|
});
|
|
@@ -4124,7 +4124,7 @@ async function sendVerificationEmail(email, token, baseUrl) {
|
|
|
4124
4124
|
}
|
|
4125
4125
|
//#endregion
|
|
4126
4126
|
//#region src/gateway/free-tier/auth-http.ts
|
|
4127
|
-
const log$
|
|
4127
|
+
const log$24 = createSubsystemLogger("free-tier/auth");
|
|
4128
4128
|
function json$1(res, status, body) {
|
|
4129
4129
|
res.statusCode = status;
|
|
4130
4130
|
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
@@ -4186,7 +4186,7 @@ async function handleSignup(req, res, users) {
|
|
|
4186
4186
|
passwordHash
|
|
4187
4187
|
});
|
|
4188
4188
|
await sendVerificationEmail(email, verifyToken, process.env["HUB_BASE_URL"] ?? "https://hub.minion.ai").catch((e) => {
|
|
4189
|
-
log$
|
|
4189
|
+
log$24.error("failed to send verification email", {
|
|
4190
4190
|
userId: user.id,
|
|
4191
4191
|
error: String(e)
|
|
4192
4192
|
});
|
|
@@ -4519,7 +4519,7 @@ function createFreeTierApiHandler(db) {
|
|
|
4519
4519
|
*
|
|
4520
4520
|
* @module
|
|
4521
4521
|
*/
|
|
4522
|
-
const log$
|
|
4522
|
+
const log$23 = createSubsystemLogger("gateway/metrics");
|
|
4523
4523
|
/** Cap on retained latency samples per method (reservoir) to bound memory. */
|
|
4524
4524
|
const MAX_SAMPLES_PER_METHOD = 512;
|
|
4525
4525
|
/** Default snapshot window. Matches the reliability rate-limiter granularity. */
|
|
@@ -4633,7 +4633,7 @@ function startGatewayRequestMetrics(opts) {
|
|
|
4633
4633
|
eventLoopHist = monitorEventLoopDelay({ resolution: 20 });
|
|
4634
4634
|
eventLoopHist.enable();
|
|
4635
4635
|
} catch (err) {
|
|
4636
|
-
log$
|
|
4636
|
+
log$23.debug(`event-loop delay monitor unavailable: ${err instanceof Error ? err.message : String(err)}`);
|
|
4637
4637
|
eventLoopHist = null;
|
|
4638
4638
|
}
|
|
4639
4639
|
windowStartMs = Date.now();
|
|
@@ -4642,7 +4642,7 @@ function startGatewayRequestMetrics(opts) {
|
|
|
4642
4642
|
try {
|
|
4643
4643
|
emitSnapshot(now - windowStartMs);
|
|
4644
4644
|
} catch (err) {
|
|
4645
|
-
log$
|
|
4645
|
+
log$23.debug(`perf snapshot emit failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
4646
4646
|
}
|
|
4647
4647
|
methodStats.clear();
|
|
4648
4648
|
eventLoopHist?.reset();
|
|
@@ -5815,7 +5815,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
5815
5815
|
*
|
|
5816
5816
|
* See specs/2026-05-22-gateway-turn-recovery.md.
|
|
5817
5817
|
*/
|
|
5818
|
-
const log$
|
|
5818
|
+
const log$22 = createSubsystemLogger("agents/in-flight-turns");
|
|
5819
5819
|
const STALE_AFTER_MS = 1800 * 1e3;
|
|
5820
5820
|
const MAX_RECOVERY_ATTEMPTS = 2;
|
|
5821
5821
|
const APOLOGY_SEND_TIMEOUT_MS = 3e3;
|
|
@@ -5848,7 +5848,7 @@ async function sendApology(cfg, row) {
|
|
|
5848
5848
|
});
|
|
5849
5849
|
return await Promise.race([send, timeout]);
|
|
5850
5850
|
} catch (err) {
|
|
5851
|
-
log$
|
|
5851
|
+
log$22.warn(`apology send failed for ${row.channel}:${row.chatId}: ${String(err)}`);
|
|
5852
5852
|
return false;
|
|
5853
5853
|
} finally {
|
|
5854
5854
|
if (timer) clearTimeout(timer);
|
|
@@ -5873,14 +5873,14 @@ async function recoverInterruptedTurns(deps) {
|
|
|
5873
5873
|
if (isStale || looped) {
|
|
5874
5874
|
deleteRow(row.id);
|
|
5875
5875
|
summary.dropped++;
|
|
5876
|
-
log$
|
|
5876
|
+
log$22.info(`dropped row ${row.id} (${isStale ? "stale" : "loop guard"}): ${row.channel}:${row.chatId} agent=${row.agentId}`);
|
|
5877
5877
|
continue;
|
|
5878
5878
|
}
|
|
5879
5879
|
markRecoveryAttempt(row.id);
|
|
5880
5880
|
if (await sendApology(deps.cfg, row)) summary.apologized++;
|
|
5881
5881
|
deleteRow(row.id);
|
|
5882
5882
|
}
|
|
5883
|
-
log$
|
|
5883
|
+
log$22.info(`recovery scanned=${summary.scanned} apologized=${summary.apologized} dropped=${summary.dropped}`);
|
|
5884
5884
|
return summary;
|
|
5885
5885
|
}
|
|
5886
5886
|
/**
|
|
@@ -5903,7 +5903,7 @@ async function drainInFlightTurns(deps) {
|
|
|
5903
5903
|
deleteRow(row.id);
|
|
5904
5904
|
}
|
|
5905
5905
|
}
|
|
5906
|
-
log$
|
|
5906
|
+
log$22.info(`drain drained=${summary.drained} apologized=${summary.apologized}`);
|
|
5907
5907
|
return summary;
|
|
5908
5908
|
}
|
|
5909
5909
|
//#endregion
|
|
@@ -5932,7 +5932,7 @@ async function drainInFlightTurns(deps) {
|
|
|
5932
5932
|
*
|
|
5933
5933
|
* Spec: specs/2026-06-11-gog-nuke-execution-plan.md (Phase D)
|
|
5934
5934
|
*/
|
|
5935
|
-
const log$
|
|
5935
|
+
const log$21 = createSubsystemLogger("gmail-gws");
|
|
5936
5936
|
/**
|
|
5937
5937
|
* Run a `gws gmail …` command with the watcher's Gmail credentials file
|
|
5938
5938
|
* injected. Returns parsed JSON on success. A non-zero exit is surfaced as
|
|
@@ -6013,7 +6013,7 @@ async function registerWatch(opts) {
|
|
|
6013
6013
|
error: "users.watch response missing historyId"
|
|
6014
6014
|
};
|
|
6015
6015
|
const expiration = data.expiration != null && Number.isFinite(Number(data.expiration)) ? Number(data.expiration) : void 0;
|
|
6016
|
-
log$
|
|
6016
|
+
log$21.info(`watch registered (historyId=${historyId}, expiration=${expiration ?? "?"})`);
|
|
6017
6017
|
return {
|
|
6018
6018
|
ok: true,
|
|
6019
6019
|
historyId,
|
|
@@ -6147,7 +6147,7 @@ async function getMessage(opts) {
|
|
|
6147
6147
|
timeoutMs: opts.timeoutMs ?? 6e4
|
|
6148
6148
|
});
|
|
6149
6149
|
if (!res.ok) {
|
|
6150
|
-
log$
|
|
6150
|
+
log$21.warn(`messages.get ${opts.id} failed: ${res.error}`);
|
|
6151
6151
|
return null;
|
|
6152
6152
|
}
|
|
6153
6153
|
return parseGmailMessage(res.data, {
|
|
@@ -6228,6 +6228,177 @@ function truncateUtf8(value, maxBytes) {
|
|
|
6228
6228
|
return `${text}…`;
|
|
6229
6229
|
}
|
|
6230
6230
|
//#endregion
|
|
6231
|
+
//#region src/hooks/gmail-auto-label.ts
|
|
6232
|
+
/**
|
|
6233
|
+
* AI auto-labeling for the Gmail pull watcher.
|
|
6234
|
+
*
|
|
6235
|
+
* As Pub/Sub notifications deliver new messages, each one is classified by a
|
|
6236
|
+
* schema-output drone (same primitive as the personal-agent email summaries —
|
|
6237
|
+
* works on OpenRouter-only deployments) into ONE of the configured labels,
|
|
6238
|
+
* and that Gmail label is applied via `gws gmail users messages modify`.
|
|
6239
|
+
*
|
|
6240
|
+
* Labels are resolved name → id via `users labels list` and created on first
|
|
6241
|
+
* use (`users labels create`), cached per credentials file. Applying a label
|
|
6242
|
+
* is idempotent (addLabelIds), so a redelivered notification re-labels
|
|
6243
|
+
* harmlessly.
|
|
6244
|
+
*
|
|
6245
|
+
* Everything here is best-effort: a classify or gws failure logs and skips
|
|
6246
|
+
* the message — it never blocks the watcher's history baseline from
|
|
6247
|
+
* advancing. Requires the watched account's token to hold gmail.modify scope
|
|
6248
|
+
* (a 403 here means the account must be re-linked with the current scopes).
|
|
6249
|
+
*/
|
|
6250
|
+
const log$20 = createSubsystemLogger("gmail-auto-label");
|
|
6251
|
+
const classifyDrone = defineDrone({
|
|
6252
|
+
id: "gmail-auto-label",
|
|
6253
|
+
description: "Classifies an incoming email into one configured Gmail label.",
|
|
6254
|
+
systemPrompt: "You label incoming email for a small-business inbox. Given the allowed labels with their meanings and one email, answer with exactly one label name — the best fit — or \"none\" when no label clearly applies. Never invent labels not in the list.",
|
|
6255
|
+
model: {
|
|
6256
|
+
provider: "anthropic",
|
|
6257
|
+
model: "claude-haiku-4-5"
|
|
6258
|
+
},
|
|
6259
|
+
output: Type.Object({ label: Type.String({ description: "Exactly one of the allowed label names (verbatim), or \"none\" when no label clearly applies." }) }),
|
|
6260
|
+
timeoutMs: 15e3
|
|
6261
|
+
});
|
|
6262
|
+
/** Cap what we feed the classifier — triage metadata + a body slice is plenty. */
|
|
6263
|
+
const BODY_CHARS_FOR_CLASSIFY = 2e3;
|
|
6264
|
+
/** Build the classify prompt for one message. Exported for tests. */
|
|
6265
|
+
function buildClassifyPrompt(msg, labels) {
|
|
6266
|
+
const lines = [
|
|
6267
|
+
"Allowed labels:",
|
|
6268
|
+
...labels.map((l) => `- ${l.name}${l.description ? `: ${l.description}` : ""}`),
|
|
6269
|
+
"",
|
|
6270
|
+
`From: ${msg.from}`,
|
|
6271
|
+
`Subject: ${msg.subject}`
|
|
6272
|
+
];
|
|
6273
|
+
const preview = (msg.body || msg.snippet || "").slice(0, BODY_CHARS_FOR_CLASSIFY).trim();
|
|
6274
|
+
if (preview) lines.push("", preview);
|
|
6275
|
+
return lines.join("\n");
|
|
6276
|
+
}
|
|
6277
|
+
/**
|
|
6278
|
+
* Match the drone's answer against the configured rules. Case-insensitive;
|
|
6279
|
+
* returns the canonical configured name, or null for "none"/unknown answers.
|
|
6280
|
+
* Exported for tests.
|
|
6281
|
+
*/
|
|
6282
|
+
function matchLabel(raw, labels) {
|
|
6283
|
+
const answer = raw.trim().toLowerCase();
|
|
6284
|
+
if (!answer || answer === "none") return null;
|
|
6285
|
+
return labels.find((l) => l.name.trim().toLowerCase() === answer)?.name ?? null;
|
|
6286
|
+
}
|
|
6287
|
+
const labelCaches = /* @__PURE__ */ new Map();
|
|
6288
|
+
async function loadLabelCache(credentialsFile) {
|
|
6289
|
+
const res = await runGwsGmail([
|
|
6290
|
+
"gmail",
|
|
6291
|
+
"users",
|
|
6292
|
+
"labels",
|
|
6293
|
+
"list",
|
|
6294
|
+
"--params",
|
|
6295
|
+
JSON.stringify({ userId: "me" })
|
|
6296
|
+
], {
|
|
6297
|
+
credentialsFile,
|
|
6298
|
+
timeoutMs: 3e4
|
|
6299
|
+
});
|
|
6300
|
+
if (!res.ok) {
|
|
6301
|
+
log$20.warn(`labels.list failed: ${res.error}`);
|
|
6302
|
+
return null;
|
|
6303
|
+
}
|
|
6304
|
+
const cache = /* @__PURE__ */ new Map();
|
|
6305
|
+
for (const label of res.data.labels ?? []) if (label.id && label.name) cache.set(label.name.trim().toLowerCase(), label.id);
|
|
6306
|
+
return cache;
|
|
6307
|
+
}
|
|
6308
|
+
async function createLabel(credentialsFile, name) {
|
|
6309
|
+
const res = await runGwsGmail([
|
|
6310
|
+
"gmail",
|
|
6311
|
+
"users",
|
|
6312
|
+
"labels",
|
|
6313
|
+
"create",
|
|
6314
|
+
"--params",
|
|
6315
|
+
JSON.stringify({ userId: "me" }),
|
|
6316
|
+
"--json",
|
|
6317
|
+
JSON.stringify({
|
|
6318
|
+
name,
|
|
6319
|
+
labelListVisibility: "labelShow",
|
|
6320
|
+
messageListVisibility: "show"
|
|
6321
|
+
})
|
|
6322
|
+
], {
|
|
6323
|
+
credentialsFile,
|
|
6324
|
+
timeoutMs: 3e4
|
|
6325
|
+
});
|
|
6326
|
+
if (!res.ok) {
|
|
6327
|
+
log$20.warn(`labels.create "${name}" failed: ${res.error}`);
|
|
6328
|
+
return null;
|
|
6329
|
+
}
|
|
6330
|
+
return res.data.id ?? null;
|
|
6331
|
+
}
|
|
6332
|
+
/** Resolve a label name to its Gmail id, creating the label on first use. */
|
|
6333
|
+
async function ensureLabelId(credentialsFile, name) {
|
|
6334
|
+
let cache = labelCaches.get(credentialsFile);
|
|
6335
|
+
if (!cache) {
|
|
6336
|
+
const loaded = await loadLabelCache(credentialsFile);
|
|
6337
|
+
if (!loaded) return null;
|
|
6338
|
+
cache = loaded;
|
|
6339
|
+
labelCaches.set(credentialsFile, cache);
|
|
6340
|
+
}
|
|
6341
|
+
const key = name.trim().toLowerCase();
|
|
6342
|
+
const existing = cache.get(key);
|
|
6343
|
+
if (existing) return existing;
|
|
6344
|
+
const created = await createLabel(credentialsFile, name);
|
|
6345
|
+
if (created) cache.set(key, created);
|
|
6346
|
+
return created;
|
|
6347
|
+
}
|
|
6348
|
+
async function applyLabel(credentialsFile, messageId, labelId) {
|
|
6349
|
+
const res = await runGwsGmail([
|
|
6350
|
+
"gmail",
|
|
6351
|
+
"users",
|
|
6352
|
+
"messages",
|
|
6353
|
+
"modify",
|
|
6354
|
+
"--params",
|
|
6355
|
+
JSON.stringify({
|
|
6356
|
+
userId: "me",
|
|
6357
|
+
id: messageId
|
|
6358
|
+
}),
|
|
6359
|
+
"--json",
|
|
6360
|
+
JSON.stringify({ addLabelIds: [labelId] })
|
|
6361
|
+
], {
|
|
6362
|
+
credentialsFile,
|
|
6363
|
+
timeoutMs: 3e4
|
|
6364
|
+
});
|
|
6365
|
+
if (!res.ok) {
|
|
6366
|
+
log$20.warn(`messages.modify ${messageId} failed: ${res.error}`);
|
|
6367
|
+
return false;
|
|
6368
|
+
}
|
|
6369
|
+
return true;
|
|
6370
|
+
}
|
|
6371
|
+
async function classifyWithDrone(prompt) {
|
|
6372
|
+
const result = await runDrone(classifyDrone, { prompt }, createGatewayDroneHost());
|
|
6373
|
+
if (!result.ok) {
|
|
6374
|
+
log$20.debug(`classify drone failed: ${result.error.code} ${result.error.message}`);
|
|
6375
|
+
return null;
|
|
6376
|
+
}
|
|
6377
|
+
return result.data.label;
|
|
6378
|
+
}
|
|
6379
|
+
/**
|
|
6380
|
+
* Classify + label a batch of freshly delivered messages. Never throws;
|
|
6381
|
+
* per-message failures are logged and skipped. `classify` is injectable for
|
|
6382
|
+
* tests and defaults to the Haiku drone.
|
|
6383
|
+
*/
|
|
6384
|
+
async function autoLabelMessages(opts) {
|
|
6385
|
+
const classify = opts.classify ?? classifyWithDrone;
|
|
6386
|
+
for (const msg of opts.messages) try {
|
|
6387
|
+
const answer = await classify(buildClassifyPrompt(msg, opts.labels));
|
|
6388
|
+
if (answer === null) continue;
|
|
6389
|
+
const name = matchLabel(answer, opts.labels);
|
|
6390
|
+
if (!name) {
|
|
6391
|
+
log$20.debug(`no label for ${msg.id} (classifier said "${answer}")`);
|
|
6392
|
+
continue;
|
|
6393
|
+
}
|
|
6394
|
+
const labelId = await ensureLabelId(opts.credentialsFile, name);
|
|
6395
|
+
if (!labelId) continue;
|
|
6396
|
+
if (await applyLabel(opts.credentialsFile, msg.id, labelId)) log$20.info(`labeled ${msg.id} as "${name}"`);
|
|
6397
|
+
} catch (err) {
|
|
6398
|
+
log$20.warn(`auto-label failed for ${msg.id}: ${String(err)}`);
|
|
6399
|
+
}
|
|
6400
|
+
}
|
|
6401
|
+
//#endregion
|
|
6231
6402
|
//#region src/hooks/gmail-history-state.ts
|
|
6232
6403
|
/**
|
|
6233
6404
|
* Durable historyId persistence for the Gmail pull watcher.
|
|
@@ -6516,12 +6687,17 @@ async function syncOnce(notification) {
|
|
|
6516
6687
|
if (msg) messages.push(msg);
|
|
6517
6688
|
}
|
|
6518
6689
|
if (messages.length > 0) {
|
|
6519
|
-
if (
|
|
6690
|
+
if (cfg.autoLabel.enabled) await autoLabelMessages({
|
|
6691
|
+
credentialsFile: cfg.credentialsFile,
|
|
6692
|
+
labels: cfg.autoLabel.labels,
|
|
6693
|
+
messages
|
|
6694
|
+
});
|
|
6695
|
+
if (!(cfg.deliver ? await postToHook(cfg, messages) : true)) {
|
|
6520
6696
|
log$17.warn("hook POST failed; will retry on next notification");
|
|
6521
6697
|
return;
|
|
6522
6698
|
}
|
|
6523
6699
|
for (const msg of messages) rememberProcessed(current, msg.id);
|
|
6524
|
-
log$17.info(`delivered ${messages.length} message(s) to ${cfg.hookUrl}`);
|
|
6700
|
+
if (cfg.deliver) log$17.info(`delivered ${messages.length} message(s) to ${cfg.hookUrl}`);
|
|
6525
6701
|
} else for (const id of freshIds) rememberProcessed(current, id);
|
|
6526
6702
|
advanceHistory(current, history.historyId ?? notification.historyId);
|
|
6527
6703
|
await saveHistoryId(current.stateDir, cfg.account, current.lastHistoryId);
|
|
@@ -6553,19 +6729,34 @@ async function renewWatch() {
|
|
|
6553
6729
|
/**
|
|
6554
6730
|
* POST the normalized payload to the gateway's local `/hooks/gmail` endpoint
|
|
6555
6731
|
* with the bearer hook token. Returns true on a 2xx response.
|
|
6732
|
+
*
|
|
6733
|
+
* Uses node:http(s) directly instead of global fetch: the default hookUrl is
|
|
6734
|
+
* the gateway POSTing to itself on 127.0.0.1, and undici's process-global
|
|
6735
|
+
* dispatcher state (mutable by other subsystems/extensions) broke that fetch
|
|
6736
|
+
* in production for weeks ("TypeError: fetch failed") while the endpoint was
|
|
6737
|
+
* reachable from every other client.
|
|
6556
6738
|
*/
|
|
6557
6739
|
async function postToHook(cfg, messages) {
|
|
6740
|
+
const body = JSON.stringify({ messages });
|
|
6558
6741
|
try {
|
|
6559
|
-
const
|
|
6560
|
-
|
|
6561
|
-
|
|
6562
|
-
|
|
6563
|
-
|
|
6564
|
-
|
|
6565
|
-
|
|
6742
|
+
const status = await new Promise((resolve, reject) => {
|
|
6743
|
+
const req = (cfg.hookUrl.startsWith("https:") ? https : http).request(cfg.hookUrl, {
|
|
6744
|
+
method: "POST",
|
|
6745
|
+
headers: {
|
|
6746
|
+
"content-type": "application/json",
|
|
6747
|
+
authorization: `Bearer ${cfg.hookToken}`,
|
|
6748
|
+
"content-length": Buffer.byteLength(body)
|
|
6749
|
+
}
|
|
6750
|
+
}, (res) => {
|
|
6751
|
+
res.resume();
|
|
6752
|
+
res.on("end", () => resolve(res.statusCode ?? 0));
|
|
6753
|
+
});
|
|
6754
|
+
req.setTimeout(3e4, () => req.destroy(/* @__PURE__ */ new Error("hook POST timed out")));
|
|
6755
|
+
req.on("error", reject);
|
|
6756
|
+
req.end(body);
|
|
6566
6757
|
});
|
|
6567
|
-
if (
|
|
6568
|
-
log$17.warn(`hook POST returned ${
|
|
6758
|
+
if (status < 200 || status >= 300) {
|
|
6759
|
+
log$17.warn(`hook POST returned ${status}`);
|
|
6569
6760
|
return false;
|
|
6570
6761
|
}
|
|
6571
6762
|
return true;
|
|
@@ -19727,7 +19918,7 @@ const nodeHandlers = {
|
|
|
19727
19918
|
const p = params;
|
|
19728
19919
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
19729
19920
|
await respondUnavailableOnThrow(respond, async () => {
|
|
19730
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
19921
|
+
const { handleNodeEvent } = await import("./server-node-events-SK_JbV5S.js");
|
|
19731
19922
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
19732
19923
|
const nodeConnId = client?.connId;
|
|
19733
19924
|
await handleNodeEvent({
|
|
@@ -27503,7 +27694,7 @@ function normalizeAgentPayload(payload) {
|
|
|
27503
27694
|
async function startBrowserControlServerIfEnabled() {
|
|
27504
27695
|
if (isTruthyEnvValue(process.env.MINION_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
27505
27696
|
const override = process.env.MINION_BROWSER_CONTROL_MODULE?.trim();
|
|
27506
|
-
const mod = override ? await import(override) : await import("./control-service-
|
|
27697
|
+
const mod = override ? await import(override) : await import("./control-service-B4NmPTp4.js").then((n) => n.t);
|
|
27507
27698
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
27508
27699
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
27509
27700
|
if (!start) return null;
|
|
@@ -33465,7 +33656,7 @@ async function deliverFlowReply(sessionKey, reply) {
|
|
|
33465
33656
|
}
|
|
33466
33657
|
try {
|
|
33467
33658
|
const cfg = loadConfig();
|
|
33468
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33659
|
+
const { deliverOutboundPayloads } = await import("./deliver-C97xbDFj.js").then((n) => n.n);
|
|
33469
33660
|
await deliverOutboundPayloads({
|
|
33470
33661
|
cfg,
|
|
33471
33662
|
channel: target.channel,
|
|
@@ -37184,7 +37375,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
37184
37375
|
}
|
|
37185
37376
|
if (!minimalTestGateway) (async () => {
|
|
37186
37377
|
const { recoverPendingDeliveries } = await import("./delivery-queue-BTPlqn4c.js").then((n) => n.n);
|
|
37187
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
37378
|
+
const { deliverOutboundPayloads } = await import("./deliver-C97xbDFj.js").then((n) => n.n);
|
|
37188
37379
|
await recoverPendingDeliveries({
|
|
37189
37380
|
deliver: deliverOutboundPayloads,
|
|
37190
37381
|
log: log.child("delivery-recovery"),
|