@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
|
@@ -14,53 +14,53 @@ import { n as getEventStore, r as initEventSystem, t as emitEvent } from "./emit
|
|
|
14
14
|
import { t as applySqlitePragmas } from "./sqlite-pragmas-C_o_lU6a.js";
|
|
15
15
|
import { t as requireNodeSqlite } from "./sqlite-C3xwcWJn.js";
|
|
16
16
|
import { d as setSentryContext, f as setSentryTag, n as getReliabilityUptimeStartMs, r as initReliability, t as emitReliabilityEvent } from "./reliability-B8aPy4cP.js";
|
|
17
|
-
import { $n as setCommandLaneConcurrency, $t as updatePairedNodeMetadata, A as loadMinionPlugins, An as normalizeMimeList, At as buildSystemPromptReport, B as resolveCronStyleNow, Bt as resolveSendPolicy, C as readConsolidationState, D as buildDefaultToolPolicyPipelineSteps, Dt as PROSE_GLOBAL_ROOT, E as applyToolPolicyPipeline, En as DEFAULT_INPUT_IMAGE_MIMES, Et as PromptSectionRegistry, G as debugSkipAll, Gn as resolveAgentIdentity, Gt as refreshRemoteNodeBins, H as setCliSessionId, Ht as primeRemoteSkillsCache, It as requestHeartbeatNow, J as setDebugStepBroadcaster, Jn as resolveBootstrapContextForRun, Jt as approveNodePairing, K as debugStepContinue, Kt as removeRemoteNodeInfo, Ln as resolveUserTimezone, M as dispatchInboundMessage, N as createReplyDispatcher, Nn as transcribeOpenAiCompatibleAudio, O as getPluginToolMeta, On as extractFileContentFromSource, Ot as _clearProseCache, P as getTotalPendingReplies, Pn as formatZonedTimestamp, Qn as resetAllLanes, Qt as requestNodePairing, R as BARE_SESSION_RESET_PROMPT, Rn as isAbortTrigger, S as openInFlightTurnsStore, St as getBuiltinSectionRegistry, Tt as buildToolSummaryMap, U as runCliAgent, Un as clearSessionQueues, Ut as recordRemoteNodeInfo, V as getCliSessionId, Vt as getRemoteSkillEligibility, Wt as refreshRemoteBinsForConnectedNodes, X as createMinionTools, Xt as rejectNodePairing, Y as setSteppedBuild, Yn as getActiveTaskCount, Yt as listNodePairing, Z as TOOL_REGISTRY, Zn as getTotalQueueSize, Zt as renamePairedNode, _ as deleteRow, _n as applyVerboseOverride, an as resolvePairingPaths, ar as onAgentEvent, at as getTemplateCache, b as markInterrupted, bn as isSystemEventContextChanged, cn as createAsyncLock, ct as initTemplateLoader, d as abortEmbeddedPiRun, en as verifyNodeToken, er as waitForActiveTasks, f as getActiveEmbeddedRunCount, g as closeInFlightTurnsStore, gn as applyModelOverrideToSessionEntry, gt as loadProviderUsageSummary, h as registerLifecycleHooks, ht as normalizeGroupActivation, i as listDescendantRunsForRequester, in as pruneExpiredPending, ir as getAgentRunContext, it as getTemplate, j as loadOpenClawPlugins, jn as resolveInputFileLimits, kn as extractImageContentFromSource, kt as buildSystemPromptParams, l as runSubagentAnnounceFlow, ln as getSkillsSnapshotVersion, lt as stopTemplateWatcher, m as waitForEmbeddedPiRunEnd, mn as buildAuthHealthSummary, n as countActiveDescendantRuns, nn as hashToken, nr as clearAgentRunContext, nt as spawnSubagentDirect, on as readJsonFile, or as registerAgentRunContext, ot as getTemplateLoadErrors, p as queueEmbeddedPiMessage, q as isSteppedBuildEnabled, qt as setSkillsRemoteRegistry, r as initSubagentRegistry, rn as verifyPairingToken, rr as emitAgentEvent, rt as getLastReloadAt, s as markSubagentRunTerminated, sn as writeJsonAtomic, st as getTemplateUsageStats, tn as generatePairingToken, tr as resolveAgentTimeoutMs, u as runEmbeddedPiAgent, un as registerSkillsChangeListener, v as listForCurrentInstance, vn as parseVerboseOverride, w as createOpenClawCodingTools, wn as registerUnhandledRejectionHandler, wt as buildSectionRenderContext, x as markRecoveryAttempt, xt as assembleAgentSystemPromptWithSections, y as listFromOtherInstances, yn as enqueueSystemEvent, zn as stopSubagentsForRequester, zt as normalizeSendPolicy } from "./subagent-registry-
|
|
17
|
+
import { $n as setCommandLaneConcurrency, $t as updatePairedNodeMetadata, A as loadMinionPlugins, An as normalizeMimeList, At as buildSystemPromptReport, B as resolveCronStyleNow, Bt as resolveSendPolicy, C as readConsolidationState, D as buildDefaultToolPolicyPipelineSteps, Dt as PROSE_GLOBAL_ROOT, E as applyToolPolicyPipeline, En as DEFAULT_INPUT_IMAGE_MIMES, Et as PromptSectionRegistry, G as debugSkipAll, Gn as resolveAgentIdentity, Gt as refreshRemoteNodeBins, H as setCliSessionId, Ht as primeRemoteSkillsCache, It as requestHeartbeatNow, J as setDebugStepBroadcaster, Jn as resolveBootstrapContextForRun, Jt as approveNodePairing, K as debugStepContinue, Kt as removeRemoteNodeInfo, Ln as resolveUserTimezone, M as dispatchInboundMessage, N as createReplyDispatcher, Nn as transcribeOpenAiCompatibleAudio, O as getPluginToolMeta, On as extractFileContentFromSource, Ot as _clearProseCache, P as getTotalPendingReplies, Pn as formatZonedTimestamp, Qn as resetAllLanes, Qt as requestNodePairing, R as BARE_SESSION_RESET_PROMPT, Rn as isAbortTrigger, S as openInFlightTurnsStore, St as getBuiltinSectionRegistry, Tt as buildToolSummaryMap, U as runCliAgent, Un as clearSessionQueues, Ut as recordRemoteNodeInfo, V as getCliSessionId, Vt as getRemoteSkillEligibility, Wt as refreshRemoteBinsForConnectedNodes, X as createMinionTools, Xt as rejectNodePairing, Y as setSteppedBuild, Yn as getActiveTaskCount, Yt as listNodePairing, Z as TOOL_REGISTRY, Zn as getTotalQueueSize, Zt as renamePairedNode, _ as deleteRow, _n as applyVerboseOverride, an as resolvePairingPaths, ar as onAgentEvent, at as getTemplateCache, b as markInterrupted, bn as isSystemEventContextChanged, cn as createAsyncLock, ct as initTemplateLoader, d as abortEmbeddedPiRun, en as verifyNodeToken, er as waitForActiveTasks, f as getActiveEmbeddedRunCount, g as closeInFlightTurnsStore, gn as applyModelOverrideToSessionEntry, gt as loadProviderUsageSummary, h as registerLifecycleHooks, ht as normalizeGroupActivation, i as listDescendantRunsForRequester, in as pruneExpiredPending, ir as getAgentRunContext, it as getTemplate, j as loadOpenClawPlugins, jn as resolveInputFileLimits, kn as extractImageContentFromSource, kt as buildSystemPromptParams, l as runSubagentAnnounceFlow, ln as getSkillsSnapshotVersion, lt as stopTemplateWatcher, m as waitForEmbeddedPiRunEnd, mn as buildAuthHealthSummary, n as countActiveDescendantRuns, nn as hashToken, nr as clearAgentRunContext, nt as spawnSubagentDirect, on as readJsonFile, or as registerAgentRunContext, ot as getTemplateLoadErrors, p as queueEmbeddedPiMessage, q as isSteppedBuildEnabled, qt as setSkillsRemoteRegistry, r as initSubagentRegistry, rn as verifyPairingToken, rr as emitAgentEvent, rt as getLastReloadAt, s as markSubagentRunTerminated, sn as writeJsonAtomic, st as getTemplateUsageStats, tn as generatePairingToken, tr as resolveAgentTimeoutMs, u as runEmbeddedPiAgent, un as registerSkillsChangeListener, v as listForCurrentInstance, vn as parseVerboseOverride, w as createOpenClawCodingTools, wn as registerUnhandledRejectionHandler, wt as buildSectionRenderContext, x as markRecoveryAttempt, xt as assembleAgentSystemPromptWithSections, y as listFromOtherInstances, yn as enqueueSystemEvent, zn as stopSubagentsForRequester, zt as normalizeSendPolicy } from "./subagent-registry-CtFQu2XK.js";
|
|
18
18
|
import { n as resolveModel } from "./model-Cyy-PjVo.js";
|
|
19
19
|
import { n as buildWorkspaceSkillSnapshot, r as loadWorkspaceSkillEntries } from "./workspace-pEoxpxC2.js";
|
|
20
20
|
import "./skills-3GqMCeaa.js";
|
|
21
21
|
import { l as isTestDefaultMemorySlotDisabled, n as loadPluginManifestRegistry } from "./manifest-registry-ByjgBm6U.js";
|
|
22
22
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-CIEf_GHk.js";
|
|
23
|
-
import { E as parseDurationMs, c as applyLegacyMigrations, i as MinionSchema, n as validateConfigObjectWithPlugins, v as resolveAgentMaxConcurrent, w as sensitive, y as resolveSubagentMaxConcurrent } from "./validation-
|
|
24
|
-
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-
|
|
25
|
-
import { n as migrateLegacyConfig } from "./config-
|
|
23
|
+
import { E as parseDurationMs, c as applyLegacyMigrations, i as MinionSchema, n as validateConfigObjectWithPlugins, v as resolveAgentMaxConcurrent, w as sensitive, y as resolveSubagentMaxConcurrent } from "./validation-NFMJmuUc.js";
|
|
24
|
+
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-ixUbjx-d.js";
|
|
25
|
+
import { n as migrateLegacyConfig } from "./config-DhxWEGQB.js";
|
|
26
26
|
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-Bze4rUhk.js";
|
|
27
27
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C0DLwT7t.js";
|
|
28
|
-
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-
|
|
28
|
+
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-XTvSS1II.js";
|
|
29
29
|
import { 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-BKpbLfdK.js";
|
|
30
30
|
import { c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as resolveHostName, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, p as rawDataToString, r as isPrivateOrLoopbackAddress, t as isLoopbackAddress, u as resolveGatewayClientIp } from "./net-C0W-QK7p.js";
|
|
31
31
|
import { i as normalizeInputProvenance } from "./input-provenance-ChJN5mZj.js";
|
|
32
|
-
import { B as snapshotSessionOrigin, D as evaluateSessionFreshness, F as resolveAgentMainSessionKey, I as resolveExplicitAgentSessionKey, L as resolveMainSessionKey, N as resolveFreshSessionTotalTokens, P as canonicalizeMainSessionAlias, Q as deliveryContextFromSession, R as resolveMainSessionKeyFromConfig, S as stripMessageIdHints, _ as readSessionMessages, a as loadSessionStore, b as resolveSessionTranscriptCandidates, et as mergeDeliveryContext, g as capArrayByJsonBytes, h as archiveSessionTranscripts, k as resolveSessionResetPolicy, m as archiveFileOnDisk, n as parseSessionThreadInfo, nt as normalizeSessionDeliveryFields, t as extractDeliveryInfo, u as updateSessionStore, v as readSessionPreviewItemsFromTranscript, w as cleanStaleLockFiles, x as stripEnvelope } from "./sessions-
|
|
32
|
+
import { B as snapshotSessionOrigin, D as evaluateSessionFreshness, F as resolveAgentMainSessionKey, I as resolveExplicitAgentSessionKey, L as resolveMainSessionKey, N as resolveFreshSessionTotalTokens, P as canonicalizeMainSessionAlias, Q as deliveryContextFromSession, R as resolveMainSessionKeyFromConfig, S as stripMessageIdHints, _ as readSessionMessages, a as loadSessionStore, b as resolveSessionTranscriptCandidates, et as mergeDeliveryContext, g as capArrayByJsonBytes, h as archiveSessionTranscripts, k as resolveSessionResetPolicy, m as archiveFileOnDisk, n as parseSessionThreadInfo, nt as normalizeSessionDeliveryFields, t as extractDeliveryInfo, u as updateSessionStore, v as readSessionPreviewItemsFromTranscript, w as cleanStaleLockFiles, x as stripEnvelope } from "./sessions-B-cuXd6I.js";
|
|
33
33
|
import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText } from "./tokens-CCCwddgc.js";
|
|
34
|
-
import { A as resolveHubMetricsConfig, C as getMirrorSnapshot, D as seedMirror, M as setMirrorAccountSource, O as setChannelRestartHandler, S as getMirrorEntry, b as applyChannelRestart, c as resolveWhatsAppAccount, d as buildChannelAccountBindings, k as startMirrorRefreshTick, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, u as resolveTelegramAccount, w as listMirrorAccountIds, x as channelConfigSource } from "./plugins-
|
|
34
|
+
import { A as resolveHubMetricsConfig, C as getMirrorSnapshot, D as seedMirror, M as setMirrorAccountSource, O as setChannelRestartHandler, S as getMirrorEntry, b as applyChannelRestart, c as resolveWhatsAppAccount, d as buildChannelAccountBindings, k as startMirrorRefreshTick, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, u as resolveTelegramAccount, w as listMirrorAccountIds, x as channelConfigSource } from "./plugins-CDfgbD2S.js";
|
|
35
35
|
import "./logging-CyBpyZLp.js";
|
|
36
36
|
import { r as resolveUserDir } from "./user-directory-D27je39W.js";
|
|
37
37
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-Dm5-em7b.js";
|
|
38
38
|
import { a as stripHeartbeatToken } from "./lanes-BEZu7L5R.js";
|
|
39
|
-
import { a as resolveOutboundTarget, o as resolveSessionDeliveryTarget } from "./resolve-route-
|
|
39
|
+
import { a as resolveOutboundTarget, o as resolveSessionDeliveryTarget } from "./resolve-route-CQ8m3Y_1.js";
|
|
40
40
|
import { n as getMachineDisplayName } from "./with-timeout-BVhDEOTB.js";
|
|
41
41
|
import { n as isDiagnosticsEnabled } from "./diagnostic-events-BIoHynd0.js";
|
|
42
42
|
import { c as startDiagnosticHeartbeat, l as stopDiagnosticHeartbeat } from "./diagnostic-DYs0_0mX.js";
|
|
43
|
-
import { D as getGlobalHookRunner, a as markSynced, i as markFailed, j as isPluginEnabledForOrg, k as runGlobalGatewayStopSafely, l as deterministicClientId, n as closeMessageLedger, o as openMessageLedger, s as patchRouting, t as claimBatch } from "./message-ledger-
|
|
44
|
-
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-
|
|
43
|
+
import { D as getGlobalHookRunner, a as markSynced, i as markFailed, j as isPluginEnabledForOrg, k as runGlobalGatewayStopSafely, l as deterministicClientId, n as closeMessageLedger, o as openMessageLedger, s as patchRouting, t as claimBatch } from "./message-ledger-Dxdjwnp5.js";
|
|
44
|
+
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-BFst7lT8.js";
|
|
45
45
|
import { c as detectMime } from "./image-ops-C3SpAWwm.js";
|
|
46
46
|
import { i as runDrone, t as createGatewayDroneHost } from "./host-DUzTARxx.js";
|
|
47
|
-
import { B as resolveBootstrapMaxChars, V as resolveBootstrapTotalMaxChars, a as listThinkingLevels, c as normalizeThinkLevel, f as supportsXHighThinking, l as normalizeUsageDisplay, n as formatThinkingLevels, o as normalizeElevatedLevel, r as formatXHighModelHint, s as normalizeReasoningLevel, u as normalizeVerboseLevel } from "./pi-embedded-helpers-
|
|
48
|
-
import { c as resolveSandboxRuntimeStatus, g as collectExplicitAllowlist, p as TOOL_GROUPS, v as expandToolGroups, x as resolveToolProfilePolicy, y as mergeAlsoAllowPolicy } from "./sandbox-
|
|
47
|
+
import { B as resolveBootstrapMaxChars, V as resolveBootstrapTotalMaxChars, a as listThinkingLevels, c as normalizeThinkLevel, f as supportsXHighThinking, l as normalizeUsageDisplay, n as formatThinkingLevels, o as normalizeElevatedLevel, r as formatXHighModelHint, s as normalizeReasoningLevel, u as normalizeVerboseLevel } from "./pi-embedded-helpers-BfVIc4c5.js";
|
|
48
|
+
import { c as resolveSandboxRuntimeStatus, g as collectExplicitAllowlist, p as TOOL_GROUPS, v as expandToolGroups, x as resolveToolProfilePolicy, y as mergeAlsoAllowPolicy } from "./sandbox-DwGbzphU.js";
|
|
49
49
|
import { a as enableTailscaleServeFunnel, i as enableTailscaleServe, n as disableTailscaleServe, r as enableTailscaleFunnel, s as getTailnetHostname, t as disableTailscaleFunnel } from "./tailscale-DdVOGsI9.js";
|
|
50
50
|
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-DPXV6BW7.js";
|
|
51
|
-
import { h as mergeGatewayTailscaleConfig, m as ensureGatewayStartupAuth } from "./server-context-
|
|
51
|
+
import { h as mergeGatewayTailscaleConfig, m as ensureGatewayStartupAuth } from "./server-context-68HV9bpp.js";
|
|
52
52
|
import { a as isErrno, n as formatErrorMessage } from "./errors-iV4-NKRR.js";
|
|
53
53
|
import { i as formatPortDiagnostics, n as inspectPortUsage, t as ensurePortAvailable } from "./ports-DHJ3IPPA.js";
|
|
54
54
|
import { t as movePathToTrash } from "./trash--L0YM4v3.js";
|
|
55
|
-
import { n as runWithModelFallback } from "./model-fallback-
|
|
55
|
+
import { n as runWithModelFallback } from "./model-fallback-xPeowZyn.js";
|
|
56
56
|
import { a as traceGatewayEvent, n as pruneOldTraceFiles } from "./chat-trace-DMQCLCi7.js";
|
|
57
|
-
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-
|
|
57
|
+
import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-BPA2VF2K.js";
|
|
58
58
|
import { t as ToolInputError } from "./common-DaYU0QCr.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 fetchWithSsrFGuard } from "./fetch-guard-Cz8ylHLg.js";
|
|
61
|
-
import { n as loadModelCatalog } from "./model-catalog-
|
|
62
|
-
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, d as orgScopeVisible, f as lookupContextTokens, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as normalizeOrgIds } from "./session-utils
|
|
63
|
-
import { a as resolveSubagentToolPolicy, d as listAgentWorkspaceDirs, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-
|
|
61
|
+
import { n as loadModelCatalog } from "./model-catalog-BSiv3f8K.js";
|
|
62
|
+
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, d as orgScopeVisible, f as lookupContextTokens, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as normalizeOrgIds } from "./session-utils--BgIkPfi.js";
|
|
63
|
+
import { a as resolveSubagentToolPolicy, d as listAgentWorkspaceDirs, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-BEqjC5lp.js";
|
|
64
64
|
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-BeHGjZzx.js";
|
|
65
65
|
import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-yBL75k4k.js";
|
|
66
66
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format--dK3YoXf.js";
|
|
@@ -78,19 +78,19 @@ import { a as normalizeOptionalAgentId, c as normalizePayloadToSystemText, d as
|
|
|
78
78
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BlvVswOf.js";
|
|
79
79
|
import { a as summarizeRestartSentinel, n as formatDoctorNonInteractiveHint, r as formatRestartSentinelMessage, s as writeRestartSentinel, t as consumeRestartSentinel } from "./restart-sentinel-f8KHn8x4.js";
|
|
80
80
|
import { n as setHubRest } from "./hub-rest-registry-DQyDHHy2.js";
|
|
81
|
-
import { o as normalizeReplyPayloadsForDelivery, s as loadChannelOutboundAdapter, t as deliverOutboundPayloads } from "./deliver-
|
|
82
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
83
|
-
import { n as ensureOutboundSessionEntry, o as resetDirectoryCache, r as normalizePollInput, t as resolveOutboundSessionRoute } from "./outbound-session-
|
|
84
|
-
import { c as resolveAnnounceTargetFromKey, t as readLatestAssistantReply } from "./agent-step-
|
|
81
|
+
import { o as normalizeReplyPayloadsForDelivery, s as loadChannelOutboundAdapter, t as deliverOutboundPayloads } from "./deliver-p_wWlh7d.js";
|
|
82
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-C0mWZNWy.js";
|
|
83
|
+
import { n as ensureOutboundSessionEntry, o as resetDirectoryCache, r as normalizePollInput, t as resolveOutboundSessionRoute } from "./outbound-session-SmzP0oiG.js";
|
|
84
|
+
import { c as resolveAnnounceTargetFromKey, t as readLatestAssistantReply } from "./agent-step-Urh1ULgm.js";
|
|
85
85
|
import { a as runAggregation, n as executeOrchestration, r as readStatusJson, t as executePipeline } from "./orchestration-pipeline-Bi3YT3Jf.js";
|
|
86
86
|
import { r as readManifest, t as completeManifest } from "./orchestration-manifest-DXWf2_x7.js";
|
|
87
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
88
|
-
import { t as createBrowserRouteDispatcher } from "./dispatcher-
|
|
87
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-5kw5OYIx.js";
|
|
88
|
+
import { t as createBrowserRouteDispatcher } from "./dispatcher-DJI5AwTt.js";
|
|
89
89
|
import { n as persistBrowserProxyFiles, t as applyBrowserProxyPaths } from "./proxy-files-CndZU0gq.js";
|
|
90
90
|
import { r as cachedJson } from "./ttl-cache-UdlZ-zJd.js";
|
|
91
|
-
import { a as styleHealthChannelLine, c as runHeartbeatOnce, d as resolveHeartbeatVisibility, l as setHeartbeatsEnabled, n as formatHealthChannelLines, o as areHeartbeatsEnabled, r as getHealthSnapshot, u as startHeartbeatRunner } from "./health-
|
|
91
|
+
import { a as styleHealthChannelLine, c as runHeartbeatOnce, d as resolveHeartbeatVisibility, l as setHeartbeatsEnabled, n as formatHealthChannelLines, o as areHeartbeatsEnabled, r as getHealthSnapshot, u as startHeartbeatRunner } from "./health-bhWSy0iT.js";
|
|
92
92
|
import { n as getLastHeartbeatEvent, r as onHeartbeatEvent } from "./heartbeat-events-DLgkBgdw.js";
|
|
93
|
-
import { n as resolveChannelSenderIdentity, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
93
|
+
import { n as resolveChannelSenderIdentity, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-CqR6xBt8.js";
|
|
94
94
|
import { n as handleHubAssignmentChanged, r as initUserSubsystem, t as getActiveUserSubsystem } from "./server-startup-users-B1IlQBSa.js";
|
|
95
95
|
import { t as mapRoleToScopes } from "./types-Utz3c3Qq.js";
|
|
96
96
|
import { t as ensureMinionCliOnPath } from "./path-env-DpsCNe2h.js";
|
|
@@ -99,10 +99,10 @@ import { n as inheritOptionFromParent } from "./command-options-Dhjl7AMa.js";
|
|
|
99
99
|
import { t as buildChannelUiCatalog } from "./catalog-DOKauHFd.js";
|
|
100
100
|
import { t as WizardCancelledError } from "./prompts-E0FayNjJ.js";
|
|
101
101
|
import { t as resolveChannelDefaultAccountId } from "./helpers-HNAIOJ_3.js";
|
|
102
|
-
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
102
|
+
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-FIoIz-a0.js";
|
|
103
103
|
import { t as buildChannelAccountSnapshot } from "./status-Dg720jp3.js";
|
|
104
|
-
import { C as resolveAssistantAvatarUrl, S as normalizeControlUiBasePath, b as CONTROL_UI_AVATAR_PREFIX, c as handleReset, x as buildControlUiAvatarUrl } from "./onboard-helpers-
|
|
105
|
-
import "./onboard-helpers-
|
|
104
|
+
import { C as resolveAssistantAvatarUrl, S as normalizeControlUiBasePath, b as CONTROL_UI_AVATAR_PREFIX, c as handleReset, x as buildControlUiAvatarUrl } from "./onboard-helpers-D4NUWUH4.js";
|
|
105
|
+
import "./onboard-helpers-CAp6xUvG.js";
|
|
106
106
|
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, s as loadAgentIdentityFromWorkspace, t as applyAgentConfig } from "./agents.config-BRZczxkO.js";
|
|
107
107
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C7sF_VNq.js";
|
|
108
108
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DJ67yyP8.js";
|
|
@@ -110,17 +110,17 @@ import { t as discoverGatewayBeacons } from "./bonjour-discovery-DzKslgdA.js";
|
|
|
110
110
|
import { t as installSkill } from "./skills-install-C-t6jFVR.js";
|
|
111
111
|
import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-DKaLYbe_.js";
|
|
112
112
|
import { a as resolveNpmChannelTag, n as compareSemverStrings, p as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-C3c5TuO_.js";
|
|
113
|
-
import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-
|
|
114
|
-
import { a as probeGateway, i as resolveNodeCommandAllowlist, r as isNodeCommandAllowed } from "./audit-
|
|
115
|
-
import { m as parsePort$1 } from "./lifecycle-core-
|
|
116
|
-
import { n as addGatewayServiceCommands } from "./daemon-cli-
|
|
113
|
+
import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-Bxo5Qgkm.js";
|
|
114
|
+
import { a as probeGateway, i as resolveNodeCommandAllowlist, r as isNodeCommandAllowed } from "./audit-DjsxBT25.js";
|
|
115
|
+
import { m as parsePort$1 } from "./lifecycle-core-DcELCz73.js";
|
|
116
|
+
import { n as addGatewayServiceCommands } from "./daemon-cli-eMnGI3zL.js";
|
|
117
117
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BjuB2JdU.js";
|
|
118
|
-
import { n as createDefaultDeps, r as createOutboundSendDeps$1, t as createOutboundSendDeps } from "./outbound-send-deps-
|
|
118
|
+
import { n as createDefaultDeps, r as createOutboundSendDeps$1, t as createOutboundSendDeps } from "./outbound-send-deps-CLdxbXZ4.js";
|
|
119
119
|
import { i as initCrypto, n as ProbeRegistry, r as SecretsManager, t as SecretStore } from "./store-DR4Ip_0q.js";
|
|
120
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
121
|
-
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-
|
|
122
|
-
import { h as resolveGmailPullRuntimeConfig } from "./gmail-
|
|
123
|
-
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
120
|
+
import { t as runOnboardingWizard } from "./onboarding-CA28TXPp.js";
|
|
121
|
+
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-BYvlu7xE.js";
|
|
122
|
+
import { h as resolveGmailPullRuntimeConfig } from "./gmail-smcTnAL4.js";
|
|
123
|
+
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-DICZ1SNs.js";
|
|
124
124
|
import { n as validateSystemRunCommandConsistency, t as formatExecCommand } from "./system-run-command-BRxsVIll.js";
|
|
125
125
|
import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-DGKCBPrM.js";
|
|
126
126
|
import { n as setEmbedConcurrency } from "./qmd-embed-semaphore-CnC0D_l5.js";
|
|
@@ -1396,7 +1396,7 @@ async function stripLegacyConfigOverrides(cfg, stateDir, log) {
|
|
|
1396
1396
|
* Orchestration event bus — typed EventEmitter for orchestration progress
|
|
1397
1397
|
* with auto-cleanup on completion and optional gateway bridge.
|
|
1398
1398
|
*/
|
|
1399
|
-
const log$
|
|
1399
|
+
const log$30 = createSubsystemLogger("orchestration-events");
|
|
1400
1400
|
var OrchestrationEventBus = class {
|
|
1401
1401
|
constructor() {
|
|
1402
1402
|
this.listeners = /* @__PURE__ */ new Map();
|
|
@@ -1494,7 +1494,7 @@ function scanForInterruptedOrchestrations(agentWorkspaces) {
|
|
|
1494
1494
|
if (manifest.status === "running") {
|
|
1495
1495
|
completeManifest(orchestrationDir, "interrupted");
|
|
1496
1496
|
interrupted.push(manifest.orchestrationId);
|
|
1497
|
-
log$
|
|
1497
|
+
log$30.info(`crash recovery: marked orchestration ${manifest.orchestrationId} as interrupted`);
|
|
1498
1498
|
}
|
|
1499
1499
|
}
|
|
1500
1500
|
}
|
|
@@ -1502,7 +1502,7 @@ function scanForInterruptedOrchestrations(agentWorkspaces) {
|
|
|
1502
1502
|
}
|
|
1503
1503
|
//#endregion
|
|
1504
1504
|
//#region src/infra/exec-approval-forwarder.ts
|
|
1505
|
-
const log$
|
|
1505
|
+
const log$29 = createSubsystemLogger("gateway/exec-approvals");
|
|
1506
1506
|
const DEFAULT_MODE = "session";
|
|
1507
1507
|
function normalizeMode(mode) {
|
|
1508
1508
|
return mode ?? DEFAULT_MODE;
|
|
@@ -1620,7 +1620,7 @@ async function deliverToTargets(params) {
|
|
|
1620
1620
|
payloads: [{ text: params.text }]
|
|
1621
1621
|
});
|
|
1622
1622
|
} catch (err) {
|
|
1623
|
-
log$
|
|
1623
|
+
log$29.error(`exec approvals: failed to deliver to ${channel}:${target.to}: ${String(err)}`);
|
|
1624
1624
|
}
|
|
1625
1625
|
});
|
|
1626
1626
|
await Promise.allSettled(deliveries);
|
|
@@ -3233,7 +3233,7 @@ async function validateGatewayJwt(token, config) {
|
|
|
3233
3233
|
}
|
|
3234
3234
|
//#endregion
|
|
3235
3235
|
//#region src/gateway/channel-health-monitor.ts
|
|
3236
|
-
const log$
|
|
3236
|
+
const log$28 = createSubsystemLogger("gateway/health-monitor");
|
|
3237
3237
|
const DEFAULT_CHECK_INTERVAL_MS$1 = 5 * 6e4;
|
|
3238
3238
|
const DEFAULT_STARTUP_GRACE_MS = 6e4;
|
|
3239
3239
|
const DEFAULT_COOLDOWN_CYCLES = 2;
|
|
@@ -3283,11 +3283,11 @@ function startChannelHealthMonitor(deps) {
|
|
|
3283
3283
|
if (now - record.lastRestartAt <= cooldownMs) continue;
|
|
3284
3284
|
pruneOldRestarts(record, now);
|
|
3285
3285
|
if (record.restartsThisHour.length >= maxRestartsPerHour) {
|
|
3286
|
-
log$
|
|
3286
|
+
log$28.warn?.(`[${channelId}:${accountId}] health-monitor: hit ${maxRestartsPerHour} restarts/hour limit, skipping`);
|
|
3287
3287
|
continue;
|
|
3288
3288
|
}
|
|
3289
3289
|
const reason = !status.running ? status.reconnectAttempts && status.reconnectAttempts >= 10 ? "gave-up" : "stopped" : "stuck";
|
|
3290
|
-
log$
|
|
3290
|
+
log$28.info?.(`[${channelId}:${accountId}] health-monitor: restarting (reason: ${reason})`);
|
|
3291
3291
|
try {
|
|
3292
3292
|
if (status.running) await channelManager.stopChannel(channelId, accountId);
|
|
3293
3293
|
channelManager.resetRestartAttempts(channelId, accountId);
|
|
@@ -3296,7 +3296,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3296
3296
|
record.restartsThisHour.push({ at: now });
|
|
3297
3297
|
restartRecords.set(key, record);
|
|
3298
3298
|
} catch (err) {
|
|
3299
|
-
log$
|
|
3299
|
+
log$28.error?.(`[${channelId}:${accountId}] health-monitor: restart failed: ${String(err)}`);
|
|
3300
3300
|
}
|
|
3301
3301
|
}
|
|
3302
3302
|
}
|
|
@@ -3316,7 +3316,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3316
3316
|
abortSignal?.addEventListener("abort", stop, { once: true });
|
|
3317
3317
|
timer = setInterval(() => void runCheck(), checkIntervalMs);
|
|
3318
3318
|
if (typeof timer === "object" && "unref" in timer) timer.unref();
|
|
3319
|
-
log$
|
|
3319
|
+
log$28.info?.(`started (interval: ${Math.round(checkIntervalMs / 1e3)}s, grace: ${Math.round(startupGraceMs / 1e3)}s)`);
|
|
3320
3320
|
}
|
|
3321
3321
|
return { stop };
|
|
3322
3322
|
}
|
|
@@ -3336,7 +3336,7 @@ function startChannelHealthMonitor(deps) {
|
|
|
3336
3336
|
* compare) before any phase flips dispatch to the mirror. whatsapp + telegram compare
|
|
3337
3337
|
* fully; discord is compare-deferred. See specs/2026-06-26-gateway-config-db-migration-plan.md.
|
|
3338
3338
|
*/
|
|
3339
|
-
const log$
|
|
3339
|
+
const log$27 = createSubsystemLogger("channel-mirror");
|
|
3340
3340
|
/** The gateway's live (gateway.json-resolved) comparable projection for an account.
|
|
3341
3341
|
* Type-aware: whatsapp + telegram resolve cleanly; discord's per-guild/channel model
|
|
3342
3342
|
* has no flat account projection → returns null (compare deferred, logged honestly). */
|
|
@@ -3395,7 +3395,7 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3395
3395
|
try {
|
|
3396
3396
|
await seedMirror();
|
|
3397
3397
|
} catch (err) {
|
|
3398
|
-
log$
|
|
3398
|
+
log$27.warn(`mirror refresh on signal failed: ${String(err)}`);
|
|
3399
3399
|
}
|
|
3400
3400
|
const affectedTypes = /* @__PURE__ */ new Set();
|
|
3401
3401
|
for (const tag of channelTags) {
|
|
@@ -3407,7 +3407,7 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3407
3407
|
try {
|
|
3408
3408
|
compareOne(type, accountId);
|
|
3409
3409
|
} catch (err) {
|
|
3410
|
-
log$
|
|
3410
|
+
log$27.warn(`compare failed for ${tag}: ${String(err)}`);
|
|
3411
3411
|
}
|
|
3412
3412
|
}
|
|
3413
3413
|
for (const type of affectedTypes) await applyChannelRestart(type);
|
|
@@ -3416,18 +3416,18 @@ async function channelMirrorCompareFromTags(tags) {
|
|
|
3416
3416
|
function compareOne(type, accountId) {
|
|
3417
3417
|
const entry = getMirrorEntry(type, accountId);
|
|
3418
3418
|
if (!entry) {
|
|
3419
|
-
log$
|
|
3419
|
+
log$27.info(`signal for ${type}:${accountId}: not in mirror (Valkey/hub hydrate empty)`);
|
|
3420
3420
|
return;
|
|
3421
3421
|
}
|
|
3422
3422
|
const shadow = entry.projection;
|
|
3423
3423
|
const live = liveProjection(type, accountId);
|
|
3424
3424
|
if (!live) {
|
|
3425
|
-
log$
|
|
3425
|
+
log$27.info(`signal for ${type}:${accountId}: no live comparable (new account or compare-deferred type) [observe-only]`);
|
|
3426
3426
|
return;
|
|
3427
3427
|
}
|
|
3428
3428
|
const diff = diffFields(shadow, live);
|
|
3429
3429
|
const intended = shadow.enabled ? live.enabled ? "noop(running)" : "START" : "STOP";
|
|
3430
|
-
log$
|
|
3430
|
+
log$27.info(`mirror ${type}:${accountId}: diff=[${diff.join(",") || "none"}] intended=${intended} shadow=${JSON.stringify(shadow)} live=${JSON.stringify(live)} [observe-only]`);
|
|
3431
3431
|
}
|
|
3432
3432
|
/**
|
|
3433
3433
|
* Boot parity check: read the seeded mirror snapshot and log how many accounts diverge
|
|
@@ -3447,10 +3447,10 @@ async function channelMirrorBootParity() {
|
|
|
3447
3447
|
}
|
|
3448
3448
|
if (diffFields(projection, live).length > 0) diffs += 1;
|
|
3449
3449
|
}
|
|
3450
|
-
log$
|
|
3451
|
-
log$
|
|
3450
|
+
log$27.info(`boot hydration: ${shadows.size} accounts from hub, ${diffs} diff(s), ${deferred} deferred vs gateway.json [observe-only]`);
|
|
3451
|
+
log$27.info(`boot hydration keys: [${Array.from(shadows.keys()).sort().join(", ")}]`);
|
|
3452
3452
|
} catch (err) {
|
|
3453
|
-
log$
|
|
3453
|
+
log$27.warn(`boot hydration parity failed: ${String(err)}`);
|
|
3454
3454
|
}
|
|
3455
3455
|
}
|
|
3456
3456
|
//#endregion
|
|
@@ -3950,7 +3950,7 @@ var ExecApprovalManager = class {
|
|
|
3950
3950
|
* Opens the SQLite database, applies WAL pragmas, and runs the
|
|
3951
3951
|
* 004_free_tier_users migration. Returns the DatabaseSync instance.
|
|
3952
3952
|
*/
|
|
3953
|
-
const log$
|
|
3953
|
+
const log$26 = createSubsystemLogger("free-tier/db");
|
|
3954
3954
|
const MIGRATION_SQL_PATH = join(dirname(fileURLToPath(import.meta.url)), "../../db/migrations/004_free_tier_users.sql");
|
|
3955
3955
|
function openFreeTierDb(dbPath) {
|
|
3956
3956
|
const { DatabaseSync } = requireNodeSqlite();
|
|
@@ -3959,9 +3959,9 @@ function openFreeTierDb(dbPath) {
|
|
|
3959
3959
|
try {
|
|
3960
3960
|
const sql = readFileSync(MIGRATION_SQL_PATH, "utf8");
|
|
3961
3961
|
db.exec(sql);
|
|
3962
|
-
log$
|
|
3962
|
+
log$26.info("free-tier DB migration applied", { dbPath });
|
|
3963
3963
|
} catch (err) {
|
|
3964
|
-
log$
|
|
3964
|
+
log$26.error("free-tier DB migration failed", {
|
|
3965
3965
|
dbPath,
|
|
3966
3966
|
error: String(err)
|
|
3967
3967
|
});
|
|
@@ -4101,13 +4101,13 @@ var UserRepository = class {
|
|
|
4101
4101
|
};
|
|
4102
4102
|
//#endregion
|
|
4103
4103
|
//#region src/gateway/free-tier/email.ts
|
|
4104
|
-
const log$
|
|
4104
|
+
const log$25 = createSubsystemLogger("free-tier/email");
|
|
4105
4105
|
const RESEND_API = "https://api.resend.com/emails";
|
|
4106
4106
|
const FROM = "OpenClaw <noreply@minion.ai>";
|
|
4107
4107
|
async function send$1(to, subject, html) {
|
|
4108
4108
|
const apiKey = process.env["RESEND_API_KEY"];
|
|
4109
4109
|
if (!apiKey) {
|
|
4110
|
-
log$
|
|
4110
|
+
log$25.warn("RESEND_API_KEY not set — email not sent", {
|
|
4111
4111
|
to,
|
|
4112
4112
|
subject
|
|
4113
4113
|
});
|
|
@@ -4128,7 +4128,7 @@ async function send$1(to, subject, html) {
|
|
|
4128
4128
|
});
|
|
4129
4129
|
if (!res.ok) {
|
|
4130
4130
|
const text = await res.text().catch(() => "");
|
|
4131
|
-
log$
|
|
4131
|
+
log$25.error("Resend API error", {
|
|
4132
4132
|
status: res.status,
|
|
4133
4133
|
body: text
|
|
4134
4134
|
});
|
|
@@ -4141,7 +4141,7 @@ async function sendVerificationEmail(email, token, baseUrl) {
|
|
|
4141
4141
|
}
|
|
4142
4142
|
//#endregion
|
|
4143
4143
|
//#region src/gateway/free-tier/auth-http.ts
|
|
4144
|
-
const log$
|
|
4144
|
+
const log$24 = createSubsystemLogger("free-tier/auth");
|
|
4145
4145
|
function json$1(res, status, body) {
|
|
4146
4146
|
res.statusCode = status;
|
|
4147
4147
|
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
@@ -4203,7 +4203,7 @@ async function handleSignup(req, res, users) {
|
|
|
4203
4203
|
passwordHash
|
|
4204
4204
|
});
|
|
4205
4205
|
await sendVerificationEmail(email, verifyToken, process.env["HUB_BASE_URL"] ?? "https://hub.minion.ai").catch((e) => {
|
|
4206
|
-
log$
|
|
4206
|
+
log$24.error("failed to send verification email", {
|
|
4207
4207
|
userId: user.id,
|
|
4208
4208
|
error: String(e)
|
|
4209
4209
|
});
|
|
@@ -4536,7 +4536,7 @@ function createFreeTierApiHandler(db) {
|
|
|
4536
4536
|
*
|
|
4537
4537
|
* @module
|
|
4538
4538
|
*/
|
|
4539
|
-
const log$
|
|
4539
|
+
const log$23 = createSubsystemLogger("gateway/metrics");
|
|
4540
4540
|
/** Cap on retained latency samples per method (reservoir) to bound memory. */
|
|
4541
4541
|
const MAX_SAMPLES_PER_METHOD = 512;
|
|
4542
4542
|
/** Default snapshot window. Matches the reliability rate-limiter granularity. */
|
|
@@ -4650,7 +4650,7 @@ function startGatewayRequestMetrics(opts) {
|
|
|
4650
4650
|
eventLoopHist = monitorEventLoopDelay({ resolution: 20 });
|
|
4651
4651
|
eventLoopHist.enable();
|
|
4652
4652
|
} catch (err) {
|
|
4653
|
-
log$
|
|
4653
|
+
log$23.debug(`event-loop delay monitor unavailable: ${err instanceof Error ? err.message : String(err)}`);
|
|
4654
4654
|
eventLoopHist = null;
|
|
4655
4655
|
}
|
|
4656
4656
|
windowStartMs = Date.now();
|
|
@@ -4659,7 +4659,7 @@ function startGatewayRequestMetrics(opts) {
|
|
|
4659
4659
|
try {
|
|
4660
4660
|
emitSnapshot(now - windowStartMs);
|
|
4661
4661
|
} catch (err) {
|
|
4662
|
-
log$
|
|
4662
|
+
log$23.debug(`perf snapshot emit failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
4663
4663
|
}
|
|
4664
4664
|
methodStats.clear();
|
|
4665
4665
|
eventLoopHist?.reset();
|
|
@@ -5832,7 +5832,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
|
|
|
5832
5832
|
*
|
|
5833
5833
|
* See specs/2026-05-22-gateway-turn-recovery.md.
|
|
5834
5834
|
*/
|
|
5835
|
-
const log$
|
|
5835
|
+
const log$22 = createSubsystemLogger("agents/in-flight-turns");
|
|
5836
5836
|
const STALE_AFTER_MS = 1800 * 1e3;
|
|
5837
5837
|
const MAX_RECOVERY_ATTEMPTS = 2;
|
|
5838
5838
|
const APOLOGY_SEND_TIMEOUT_MS = 3e3;
|
|
@@ -5865,7 +5865,7 @@ async function sendApology(cfg, row) {
|
|
|
5865
5865
|
});
|
|
5866
5866
|
return await Promise.race([send, timeout]);
|
|
5867
5867
|
} catch (err) {
|
|
5868
|
-
log$
|
|
5868
|
+
log$22.warn(`apology send failed for ${row.channel}:${row.chatId}: ${String(err)}`);
|
|
5869
5869
|
return false;
|
|
5870
5870
|
} finally {
|
|
5871
5871
|
if (timer) clearTimeout(timer);
|
|
@@ -5890,14 +5890,14 @@ async function recoverInterruptedTurns(deps) {
|
|
|
5890
5890
|
if (isStale || looped) {
|
|
5891
5891
|
deleteRow(row.id);
|
|
5892
5892
|
summary.dropped++;
|
|
5893
|
-
log$
|
|
5893
|
+
log$22.info(`dropped row ${row.id} (${isStale ? "stale" : "loop guard"}): ${row.channel}:${row.chatId} agent=${row.agentId}`);
|
|
5894
5894
|
continue;
|
|
5895
5895
|
}
|
|
5896
5896
|
markRecoveryAttempt(row.id);
|
|
5897
5897
|
if (await sendApology(deps.cfg, row)) summary.apologized++;
|
|
5898
5898
|
deleteRow(row.id);
|
|
5899
5899
|
}
|
|
5900
|
-
log$
|
|
5900
|
+
log$22.info(`recovery scanned=${summary.scanned} apologized=${summary.apologized} dropped=${summary.dropped}`);
|
|
5901
5901
|
return summary;
|
|
5902
5902
|
}
|
|
5903
5903
|
/**
|
|
@@ -5920,7 +5920,7 @@ async function drainInFlightTurns(deps) {
|
|
|
5920
5920
|
deleteRow(row.id);
|
|
5921
5921
|
}
|
|
5922
5922
|
}
|
|
5923
|
-
log$
|
|
5923
|
+
log$22.info(`drain drained=${summary.drained} apologized=${summary.apologized}`);
|
|
5924
5924
|
return summary;
|
|
5925
5925
|
}
|
|
5926
5926
|
//#endregion
|
|
@@ -5949,7 +5949,7 @@ async function drainInFlightTurns(deps) {
|
|
|
5949
5949
|
*
|
|
5950
5950
|
* Spec: specs/2026-06-11-gog-nuke-execution-plan.md (Phase D)
|
|
5951
5951
|
*/
|
|
5952
|
-
const log$
|
|
5952
|
+
const log$21 = createSubsystemLogger("gmail-gws");
|
|
5953
5953
|
/**
|
|
5954
5954
|
* Run a `gws gmail …` command with the watcher's Gmail credentials file
|
|
5955
5955
|
* injected. Returns parsed JSON on success. A non-zero exit is surfaced as
|
|
@@ -6030,7 +6030,7 @@ async function registerWatch(opts) {
|
|
|
6030
6030
|
error: "users.watch response missing historyId"
|
|
6031
6031
|
};
|
|
6032
6032
|
const expiration = data.expiration != null && Number.isFinite(Number(data.expiration)) ? Number(data.expiration) : void 0;
|
|
6033
|
-
log$
|
|
6033
|
+
log$21.info(`watch registered (historyId=${historyId}, expiration=${expiration ?? "?"})`);
|
|
6034
6034
|
return {
|
|
6035
6035
|
ok: true,
|
|
6036
6036
|
historyId,
|
|
@@ -6164,7 +6164,7 @@ async function getMessage(opts) {
|
|
|
6164
6164
|
timeoutMs: opts.timeoutMs ?? 6e4
|
|
6165
6165
|
});
|
|
6166
6166
|
if (!res.ok) {
|
|
6167
|
-
log$
|
|
6167
|
+
log$21.warn(`messages.get ${opts.id} failed: ${res.error}`);
|
|
6168
6168
|
return null;
|
|
6169
6169
|
}
|
|
6170
6170
|
return parseGmailMessage(res.data, {
|
|
@@ -6245,6 +6245,177 @@ function truncateUtf8(value, maxBytes) {
|
|
|
6245
6245
|
return `${text}…`;
|
|
6246
6246
|
}
|
|
6247
6247
|
//#endregion
|
|
6248
|
+
//#region src/hooks/gmail-auto-label.ts
|
|
6249
|
+
/**
|
|
6250
|
+
* AI auto-labeling for the Gmail pull watcher.
|
|
6251
|
+
*
|
|
6252
|
+
* As Pub/Sub notifications deliver new messages, each one is classified by a
|
|
6253
|
+
* schema-output drone (same primitive as the personal-agent email summaries —
|
|
6254
|
+
* works on OpenRouter-only deployments) into ONE of the configured labels,
|
|
6255
|
+
* and that Gmail label is applied via `gws gmail users messages modify`.
|
|
6256
|
+
*
|
|
6257
|
+
* Labels are resolved name → id via `users labels list` and created on first
|
|
6258
|
+
* use (`users labels create`), cached per credentials file. Applying a label
|
|
6259
|
+
* is idempotent (addLabelIds), so a redelivered notification re-labels
|
|
6260
|
+
* harmlessly.
|
|
6261
|
+
*
|
|
6262
|
+
* Everything here is best-effort: a classify or gws failure logs and skips
|
|
6263
|
+
* the message — it never blocks the watcher's history baseline from
|
|
6264
|
+
* advancing. Requires the watched account's token to hold gmail.modify scope
|
|
6265
|
+
* (a 403 here means the account must be re-linked with the current scopes).
|
|
6266
|
+
*/
|
|
6267
|
+
const log$20 = createSubsystemLogger("gmail-auto-label");
|
|
6268
|
+
const classifyDrone = defineDrone({
|
|
6269
|
+
id: "gmail-auto-label",
|
|
6270
|
+
description: "Classifies an incoming email into one configured Gmail label.",
|
|
6271
|
+
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.",
|
|
6272
|
+
model: {
|
|
6273
|
+
provider: "anthropic",
|
|
6274
|
+
model: "claude-haiku-4-5"
|
|
6275
|
+
},
|
|
6276
|
+
output: Type.Object({ label: Type.String({ description: "Exactly one of the allowed label names (verbatim), or \"none\" when no label clearly applies." }) }),
|
|
6277
|
+
timeoutMs: 15e3
|
|
6278
|
+
});
|
|
6279
|
+
/** Cap what we feed the classifier — triage metadata + a body slice is plenty. */
|
|
6280
|
+
const BODY_CHARS_FOR_CLASSIFY = 2e3;
|
|
6281
|
+
/** Build the classify prompt for one message. Exported for tests. */
|
|
6282
|
+
function buildClassifyPrompt(msg, labels) {
|
|
6283
|
+
const lines = [
|
|
6284
|
+
"Allowed labels:",
|
|
6285
|
+
...labels.map((l) => `- ${l.name}${l.description ? `: ${l.description}` : ""}`),
|
|
6286
|
+
"",
|
|
6287
|
+
`From: ${msg.from}`,
|
|
6288
|
+
`Subject: ${msg.subject}`
|
|
6289
|
+
];
|
|
6290
|
+
const preview = (msg.body || msg.snippet || "").slice(0, BODY_CHARS_FOR_CLASSIFY).trim();
|
|
6291
|
+
if (preview) lines.push("", preview);
|
|
6292
|
+
return lines.join("\n");
|
|
6293
|
+
}
|
|
6294
|
+
/**
|
|
6295
|
+
* Match the drone's answer against the configured rules. Case-insensitive;
|
|
6296
|
+
* returns the canonical configured name, or null for "none"/unknown answers.
|
|
6297
|
+
* Exported for tests.
|
|
6298
|
+
*/
|
|
6299
|
+
function matchLabel(raw, labels) {
|
|
6300
|
+
const answer = raw.trim().toLowerCase();
|
|
6301
|
+
if (!answer || answer === "none") return null;
|
|
6302
|
+
return labels.find((l) => l.name.trim().toLowerCase() === answer)?.name ?? null;
|
|
6303
|
+
}
|
|
6304
|
+
const labelCaches = /* @__PURE__ */ new Map();
|
|
6305
|
+
async function loadLabelCache(credentialsFile) {
|
|
6306
|
+
const res = await runGwsGmail([
|
|
6307
|
+
"gmail",
|
|
6308
|
+
"users",
|
|
6309
|
+
"labels",
|
|
6310
|
+
"list",
|
|
6311
|
+
"--params",
|
|
6312
|
+
JSON.stringify({ userId: "me" })
|
|
6313
|
+
], {
|
|
6314
|
+
credentialsFile,
|
|
6315
|
+
timeoutMs: 3e4
|
|
6316
|
+
});
|
|
6317
|
+
if (!res.ok) {
|
|
6318
|
+
log$20.warn(`labels.list failed: ${res.error}`);
|
|
6319
|
+
return null;
|
|
6320
|
+
}
|
|
6321
|
+
const cache = /* @__PURE__ */ new Map();
|
|
6322
|
+
for (const label of res.data.labels ?? []) if (label.id && label.name) cache.set(label.name.trim().toLowerCase(), label.id);
|
|
6323
|
+
return cache;
|
|
6324
|
+
}
|
|
6325
|
+
async function createLabel(credentialsFile, name) {
|
|
6326
|
+
const res = await runGwsGmail([
|
|
6327
|
+
"gmail",
|
|
6328
|
+
"users",
|
|
6329
|
+
"labels",
|
|
6330
|
+
"create",
|
|
6331
|
+
"--params",
|
|
6332
|
+
JSON.stringify({ userId: "me" }),
|
|
6333
|
+
"--json",
|
|
6334
|
+
JSON.stringify({
|
|
6335
|
+
name,
|
|
6336
|
+
labelListVisibility: "labelShow",
|
|
6337
|
+
messageListVisibility: "show"
|
|
6338
|
+
})
|
|
6339
|
+
], {
|
|
6340
|
+
credentialsFile,
|
|
6341
|
+
timeoutMs: 3e4
|
|
6342
|
+
});
|
|
6343
|
+
if (!res.ok) {
|
|
6344
|
+
log$20.warn(`labels.create "${name}" failed: ${res.error}`);
|
|
6345
|
+
return null;
|
|
6346
|
+
}
|
|
6347
|
+
return res.data.id ?? null;
|
|
6348
|
+
}
|
|
6349
|
+
/** Resolve a label name to its Gmail id, creating the label on first use. */
|
|
6350
|
+
async function ensureLabelId(credentialsFile, name) {
|
|
6351
|
+
let cache = labelCaches.get(credentialsFile);
|
|
6352
|
+
if (!cache) {
|
|
6353
|
+
const loaded = await loadLabelCache(credentialsFile);
|
|
6354
|
+
if (!loaded) return null;
|
|
6355
|
+
cache = loaded;
|
|
6356
|
+
labelCaches.set(credentialsFile, cache);
|
|
6357
|
+
}
|
|
6358
|
+
const key = name.trim().toLowerCase();
|
|
6359
|
+
const existing = cache.get(key);
|
|
6360
|
+
if (existing) return existing;
|
|
6361
|
+
const created = await createLabel(credentialsFile, name);
|
|
6362
|
+
if (created) cache.set(key, created);
|
|
6363
|
+
return created;
|
|
6364
|
+
}
|
|
6365
|
+
async function applyLabel(credentialsFile, messageId, labelId) {
|
|
6366
|
+
const res = await runGwsGmail([
|
|
6367
|
+
"gmail",
|
|
6368
|
+
"users",
|
|
6369
|
+
"messages",
|
|
6370
|
+
"modify",
|
|
6371
|
+
"--params",
|
|
6372
|
+
JSON.stringify({
|
|
6373
|
+
userId: "me",
|
|
6374
|
+
id: messageId
|
|
6375
|
+
}),
|
|
6376
|
+
"--json",
|
|
6377
|
+
JSON.stringify({ addLabelIds: [labelId] })
|
|
6378
|
+
], {
|
|
6379
|
+
credentialsFile,
|
|
6380
|
+
timeoutMs: 3e4
|
|
6381
|
+
});
|
|
6382
|
+
if (!res.ok) {
|
|
6383
|
+
log$20.warn(`messages.modify ${messageId} failed: ${res.error}`);
|
|
6384
|
+
return false;
|
|
6385
|
+
}
|
|
6386
|
+
return true;
|
|
6387
|
+
}
|
|
6388
|
+
async function classifyWithDrone(prompt) {
|
|
6389
|
+
const result = await runDrone(classifyDrone, { prompt }, createGatewayDroneHost());
|
|
6390
|
+
if (!result.ok) {
|
|
6391
|
+
log$20.debug(`classify drone failed: ${result.error.code} ${result.error.message}`);
|
|
6392
|
+
return null;
|
|
6393
|
+
}
|
|
6394
|
+
return result.data.label;
|
|
6395
|
+
}
|
|
6396
|
+
/**
|
|
6397
|
+
* Classify + label a batch of freshly delivered messages. Never throws;
|
|
6398
|
+
* per-message failures are logged and skipped. `classify` is injectable for
|
|
6399
|
+
* tests and defaults to the Haiku drone.
|
|
6400
|
+
*/
|
|
6401
|
+
async function autoLabelMessages(opts) {
|
|
6402
|
+
const classify = opts.classify ?? classifyWithDrone;
|
|
6403
|
+
for (const msg of opts.messages) try {
|
|
6404
|
+
const answer = await classify(buildClassifyPrompt(msg, opts.labels));
|
|
6405
|
+
if (answer === null) continue;
|
|
6406
|
+
const name = matchLabel(answer, opts.labels);
|
|
6407
|
+
if (!name) {
|
|
6408
|
+
log$20.debug(`no label for ${msg.id} (classifier said "${answer}")`);
|
|
6409
|
+
continue;
|
|
6410
|
+
}
|
|
6411
|
+
const labelId = await ensureLabelId(opts.credentialsFile, name);
|
|
6412
|
+
if (!labelId) continue;
|
|
6413
|
+
if (await applyLabel(opts.credentialsFile, msg.id, labelId)) log$20.info(`labeled ${msg.id} as "${name}"`);
|
|
6414
|
+
} catch (err) {
|
|
6415
|
+
log$20.warn(`auto-label failed for ${msg.id}: ${String(err)}`);
|
|
6416
|
+
}
|
|
6417
|
+
}
|
|
6418
|
+
//#endregion
|
|
6248
6419
|
//#region src/hooks/gmail-history-state.ts
|
|
6249
6420
|
/**
|
|
6250
6421
|
* Durable historyId persistence for the Gmail pull watcher.
|
|
@@ -6533,12 +6704,17 @@ async function syncOnce(notification) {
|
|
|
6533
6704
|
if (msg) messages.push(msg);
|
|
6534
6705
|
}
|
|
6535
6706
|
if (messages.length > 0) {
|
|
6536
|
-
if (
|
|
6707
|
+
if (cfg.autoLabel.enabled) await autoLabelMessages({
|
|
6708
|
+
credentialsFile: cfg.credentialsFile,
|
|
6709
|
+
labels: cfg.autoLabel.labels,
|
|
6710
|
+
messages
|
|
6711
|
+
});
|
|
6712
|
+
if (!(cfg.deliver ? await postToHook(cfg, messages) : true)) {
|
|
6537
6713
|
log$17.warn("hook POST failed; will retry on next notification");
|
|
6538
6714
|
return;
|
|
6539
6715
|
}
|
|
6540
6716
|
for (const msg of messages) rememberProcessed(current, msg.id);
|
|
6541
|
-
log$17.info(`delivered ${messages.length} message(s) to ${cfg.hookUrl}`);
|
|
6717
|
+
if (cfg.deliver) log$17.info(`delivered ${messages.length} message(s) to ${cfg.hookUrl}`);
|
|
6542
6718
|
} else for (const id of freshIds) rememberProcessed(current, id);
|
|
6543
6719
|
advanceHistory(current, history.historyId ?? notification.historyId);
|
|
6544
6720
|
await saveHistoryId(current.stateDir, cfg.account, current.lastHistoryId);
|
|
@@ -6570,19 +6746,34 @@ async function renewWatch() {
|
|
|
6570
6746
|
/**
|
|
6571
6747
|
* POST the normalized payload to the gateway's local `/hooks/gmail` endpoint
|
|
6572
6748
|
* with the bearer hook token. Returns true on a 2xx response.
|
|
6749
|
+
*
|
|
6750
|
+
* Uses node:http(s) directly instead of global fetch: the default hookUrl is
|
|
6751
|
+
* the gateway POSTing to itself on 127.0.0.1, and undici's process-global
|
|
6752
|
+
* dispatcher state (mutable by other subsystems/extensions) broke that fetch
|
|
6753
|
+
* in production for weeks ("TypeError: fetch failed") while the endpoint was
|
|
6754
|
+
* reachable from every other client.
|
|
6573
6755
|
*/
|
|
6574
6756
|
async function postToHook(cfg, messages) {
|
|
6757
|
+
const body = JSON.stringify({ messages });
|
|
6575
6758
|
try {
|
|
6576
|
-
const
|
|
6577
|
-
|
|
6578
|
-
|
|
6579
|
-
|
|
6580
|
-
|
|
6581
|
-
|
|
6582
|
-
|
|
6759
|
+
const status = await new Promise((resolve, reject) => {
|
|
6760
|
+
const req = (cfg.hookUrl.startsWith("https:") ? https : http).request(cfg.hookUrl, {
|
|
6761
|
+
method: "POST",
|
|
6762
|
+
headers: {
|
|
6763
|
+
"content-type": "application/json",
|
|
6764
|
+
authorization: `Bearer ${cfg.hookToken}`,
|
|
6765
|
+
"content-length": Buffer.byteLength(body)
|
|
6766
|
+
}
|
|
6767
|
+
}, (res) => {
|
|
6768
|
+
res.resume();
|
|
6769
|
+
res.on("end", () => resolve(res.statusCode ?? 0));
|
|
6770
|
+
});
|
|
6771
|
+
req.setTimeout(3e4, () => req.destroy(/* @__PURE__ */ new Error("hook POST timed out")));
|
|
6772
|
+
req.on("error", reject);
|
|
6773
|
+
req.end(body);
|
|
6583
6774
|
});
|
|
6584
|
-
if (
|
|
6585
|
-
log$17.warn(`hook POST returned ${
|
|
6775
|
+
if (status < 200 || status >= 300) {
|
|
6776
|
+
log$17.warn(`hook POST returned ${status}`);
|
|
6586
6777
|
return false;
|
|
6587
6778
|
}
|
|
6588
6779
|
return true;
|
|
@@ -19744,7 +19935,7 @@ const nodeHandlers = {
|
|
|
19744
19935
|
const p = params;
|
|
19745
19936
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
19746
19937
|
await respondUnavailableOnThrow(respond, async () => {
|
|
19747
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
19938
|
+
const { handleNodeEvent } = await import("./server-node-events-CJsgH2Am.js");
|
|
19748
19939
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
19749
19940
|
const nodeConnId = client?.connId;
|
|
19750
19941
|
await handleNodeEvent({
|
|
@@ -27520,7 +27711,7 @@ function normalizeAgentPayload(payload) {
|
|
|
27520
27711
|
async function startBrowserControlServerIfEnabled() {
|
|
27521
27712
|
if (isTruthyEnvValue(process.env.MINION_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
27522
27713
|
const override = process.env.MINION_BROWSER_CONTROL_MODULE?.trim();
|
|
27523
|
-
const mod = override ? await import(override) : await import("./control-service-
|
|
27714
|
+
const mod = override ? await import(override) : await import("./control-service-5kw5OYIx.js").then((n) => n.t);
|
|
27524
27715
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
27525
27716
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
27526
27717
|
if (!start) return null;
|
|
@@ -33482,7 +33673,7 @@ async function deliverFlowReply(sessionKey, reply) {
|
|
|
33482
33673
|
}
|
|
33483
33674
|
try {
|
|
33484
33675
|
const cfg = loadConfig();
|
|
33485
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33676
|
+
const { deliverOutboundPayloads } = await import("./deliver-p_wWlh7d.js").then((n) => n.n);
|
|
33486
33677
|
await deliverOutboundPayloads({
|
|
33487
33678
|
cfg,
|
|
33488
33679
|
channel: target.channel,
|
|
@@ -37201,7 +37392,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
37201
37392
|
}
|
|
37202
37393
|
if (!minimalTestGateway) (async () => {
|
|
37203
37394
|
const { recoverPendingDeliveries } = await import("./delivery-queue-4i2kXntr.js").then((n) => n.n);
|
|
37204
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
37395
|
+
const { deliverOutboundPayloads } = await import("./deliver-p_wWlh7d.js").then((n) => n.n);
|
|
37205
37396
|
await recoverPendingDeliveries({
|
|
37206
37397
|
deliver: deliverOutboundPayloads,
|
|
37207
37398
|
log: log.child("delivery-recovery"),
|