@nikolasp98/minion 2026.6.14-dev.20260616061802 → 2026.6.16-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-cli-Du7NWZu3.js → acp-cli-2xKZfd6v.js} +3 -3
- package/dist/{acp-cli-BmKOFno7.js → acp-cli-q8e4aJoa.js} +3 -3
- package/dist/{agent-6dzad4Vk.js → agent-CZq9c4BW.js} +13 -13
- package/dist/{agent-step-C3wXb9Cx.js → agent-step-D5w2xNfi.js} +2 -2
- package/dist/{agent-step-Bf1GImWB.js → agent-step-DnVo1ws9.js} +2 -2
- package/dist/{agents-Dw2xlB7X.js → agents-3owoMugG.js} +7 -7
- package/dist/{agents-list-tool-Dq0lIpTn.js → agents-list-tool-Bjcc4I_6.js} +3 -3
- package/dist/{agents-list-tool-D9mHFLLa.js → agents-list-tool-CzUTgXov.js} +3 -3
- package/dist/{agents.config-1imA1H12.js → agents.config-Di1Fb5KI.js} +12 -12
- package/dist/{audit-DmbpL3cv.js → audit-B8L_aShb.js} +10 -10
- package/dist/{audit-DmJGMt0j.js → audit-Ck6MCUxx.js} +10 -10
- package/dist/{auth-choice-neer30p3.js → auth-choice-B6U5biA7.js} +4 -4
- package/dist/{auth-choice-CAmZkQLg.js → auth-choice-DmpOyRlb.js} +4 -4
- package/dist/{banner-DpI_geg3.js → banner-Be2ToLay.js} +1 -1
- package/dist/{browser-cli-z39mB4Us.js → browser-cli-BvtSNPci.js} +3 -3
- package/dist/{browser-cli-DDHEGwdS.js → browser-cli-De-S5eSp.js} +3 -3
- package/dist/{browser-tool-CWG74LXa.js → browser-tool-BVAlCkv9.js} +7 -7
- package/dist/{browser-tool-CZsdYOyF.js → browser-tool-CTNhVzit.js} +7 -7
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +489 -42
- package/dist/bundled/kg-message-sync/handler.js +6 -2
- package/dist/bundled/session-memory/handler.js +47 -1
- package/dist/{call-DkT-xA-u.js → call-BrDNyQiZ.js} +2 -2
- package/dist/{call-COjGFB_A.js → call-Di0NGY7s.js} +2 -2
- package/dist/{call-BKa0221r.js → call-QNmBuec5.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{canvas-tool-yqzOmVk8.js → canvas-tool-C8kJ8X6t.js} +2 -2
- package/dist/{canvas-tool-D7utVUj9.js → canvas-tool-v_tDod0l.js} +2 -2
- package/dist/{channel-options-DDJR7t6c.js → channel-options-BgB_XE_R.js} +1 -1
- package/dist/{channel-options-wAeX19Sd.js → channel-options-C3G3uvc8.js} +1 -1
- package/dist/{channel-web-B731iz_S.js → channel-web-C7erWB8c.js} +7 -7
- package/dist/{channels-cli-DyZ1QjyT.js → channels-cli-CWL9_dUC.js} +9 -9
- package/dist/{channels-cli-B2lgO976.js → channels-cli-D0WU7aEW.js} +9 -9
- package/dist/{chrome-BYfNS8BB.js → chrome-BUH9jMtc.js} +1 -1
- package/dist/{chrome-DKRiholg.js → chrome-WqxB18cs.js} +2 -2
- package/dist/{chrome-C3MXJRdA.js → chrome-xmfH0ICu.js} +2 -2
- package/dist/{clawbot-cli-ByrTjcjf.js → clawbot-cli-BqvWmOf2.js} +1 -1
- package/dist/{clawbot-cli-C-8EFRKv.js → clawbot-cli-Cy4xxEwA.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-DNiohgQu.js → cli-C6-qelzK.js} +3 -3
- package/dist/{cli-D-m3umOT.js → cli-COPy2u3N.js} +3 -3
- package/dist/{client-D2hf2jQ7.js → client-BIS2Uayk.js} +4 -4
- package/dist/{client-BQN-LuPk.js → client-BoM5FwV4.js} +4 -4
- package/dist/{client-xu3whbFC.js → client-CTr2olAS.js} +4 -4
- package/dist/{command-registry-CB0tYTNA.js → command-registry-BSAY6wdm.js} +14 -14
- package/dist/{commands-registry-PW7IInMR.js → commands-registry-SXjoCA7i.js} +2 -2
- package/dist/{commands-registry-dia3m7-M.js → commands-registry-UnBqSA67.js} +2 -2
- package/dist/{completion-cli-Dg5pvBMY.js → completion-cli--3eqgAwK.js} +1 -1
- package/dist/{completion-cli-CSzxM5wY.js → completion-cli-RDTl_9qR.js} +2 -2
- package/dist/{config-BBoAK0dA.js → config-CkMQunWU.js} +6 -2
- package/dist/{config-ClkrcdId.js → config-DHYot764.js} +2 -2
- package/dist/{config-BgqD6SVw.js → config-DJTLRK5S.js} +2 -2
- package/dist/{config-cli-Denu0eEu.js → config-cli-BUCeVfP_.js} +4 -4
- package/dist/{config-cli-DtAjejub.js → config-cli-C1RrXpz0.js} +4 -4
- package/dist/{config-guard-DF1WNs2e.js → config-guard-CVx36OOi.js} +3 -3
- package/dist/config-guard-Csz0-uEX.js +2 -0
- package/dist/{config-validation-mmyHFUrK.js → config-validation-BVN3OEOd.js} +2 -2
- package/dist/{config-validation-lm5BwYiy.js → config-validation-C3jULSMI.js} +2 -2
- package/dist/{configure-CxrB1V4C.js → configure-CQEz5KQ3.js} +15 -15
- package/dist/{configure-CroxylRT.js → configure-akx6bWAt.js} +15 -15
- package/dist/{cron-cli-CYFkAl-f.js → cron-cli-BoMJUHUX.js} +2 -2
- package/dist/{cron-cli-CMjG3iLg.js → cron-cli-DvtMDSN2.js} +1 -1
- package/dist/{cron-tool-B3ffaxAO.js → cron-tool-Dcr3QMih.js} +5 -5
- package/dist/{cron-tool-BnUUPLV3.js → cron-tool-DllqQBKI.js} +5 -5
- package/dist/{daemon-cli-Bs0GD5xF.js → daemon-cli-CHfZAu4w.js} +9 -9
- package/dist/{daemon-cli-dauqwBcE.js → daemon-cli-D7K6zRR6.js} +9 -9
- package/dist/daemon-cli.js +6 -2
- package/dist/daemon-install-helpers-Ls_foXgf.js +2 -0
- package/dist/daemon-install-helpers-VzSaKa-j.js +2 -0
- package/dist/{daemon-runtime-C-XyxJRT.js → daemon-runtime--L-FasK6.js} +1 -1
- package/dist/{daemon-runtime-BLp3uThx.js → daemon-runtime-DKTkFmdZ.js} +1 -1
- package/dist/{deliver-C40KRMzm.js → deliver-BCijF1xe.js} +4 -4
- package/dist/{deliver-C5vVViLg.js → deliver-DiDYkpmh.js} +5 -5
- package/dist/{deliver-Dhut24vc.js → deliver-Ds0o_rCY.js} +3 -3
- package/dist/{deps-DRyTOIPO.js → deps-DFeGFeii.js} +6 -6
- package/dist/{devices-cli-DFPiK0W5.js → devices-cli-C9OvVBEs.js} +1 -1
- package/dist/{devices-cli-BfwxECLu.js → devices-cli-D4YJarjz.js} +1 -1
- package/dist/{diagnostic-Bzd3eHBU.js → diagnostic-CVAiT8Yi.js} +2 -2
- package/dist/{diagnostic-session-state-C8e7GxAm.js → diagnostic-session-state-Cj5nMvNL.js} +1 -1
- package/dist/{directory-cli-BX_a06o7.js → directory-cli--LuldZqc.js} +2 -2
- package/dist/{directory-cli-BQlGeeQK.js → directory-cli-DHpksyLI.js} +2 -2
- package/dist/{dispatcher-BWcYLowQ.js → dispatcher-D46WCdTe.js} +7 -7
- package/dist/{dispatcher-DefEQC4n.js → dispatcher-D8fgAnwH.js} +7 -7
- package/dist/{dm-policy-shared-Dm70u4Yr.js → dm-policy-shared-CEUsAI0F.js} +1 -1
- package/dist/{dm-policy-shared-DeX6SUMT.js → dm-policy-shared-DZglJJMa.js} +1 -1
- package/dist/{dns-cli-CxMaD4cI.js → dns-cli-C4L7EzEY.js} +2 -2
- package/dist/{dns-cli-DAdvx6qq.js → dns-cli-wSFONc42.js} +2 -2
- package/dist/{docs-cli-BR1YXIH4.js → docs-cli-4Dzg7LrJ.js} +1 -1
- package/dist/{docs-cli-BR8IKtP3.js → docs-cli-BWUGypxO.js} +1 -1
- package/dist/doctor-completion-B4bzzPyA.js +2 -0
- package/dist/doctor-completion-CE9xjPcf.js +2 -0
- package/dist/{doctor-completion-C3YAoPkP.js → doctor-completion-COKl8-PU.js} +1 -1
- package/dist/{doctor-completion-CkIy7FpB.js → doctor-completion-DPjvm1G7.js} +1 -1
- package/dist/{doctor-config-flow-CsP66Ij5.js → doctor-config-flow-CCqETtju.js} +4 -4
- package/dist/{doctor-config-flow-D_WRZLT3.js → doctor-config-flow-CRibe33c.js} +4 -4
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CLIzgYS8.js → exec-approvals-cli-CCqVDSOe.js} +2 -2
- package/dist/{exec-approvals-cli-DW2-7TEV.js → exec-approvals-cli-RRZ5wIP0.js} +2 -2
- package/dist/extensionAPI.d.ts +36 -2
- package/dist/extensionAPI.js +263 -20
- package/dist/{gateway-Duqy39t3.js → gateway-Bvd5CqY4.js} +3 -3
- package/dist/{gateway-CqhiWZQd.js → gateway-D_kwhuup.js} +3 -3
- package/dist/{gateway-cli-CUrxOlB4.js → gateway-cli-BbuSOWKq.js} +328 -244
- package/dist/{gateway-cli-BrM4d8E7.js → gateway-cli-C-AMSwgo.js} +324 -240
- package/dist/{gateway-0sVK3Rjy.js → gateway-q_fM0u-m.js} +2 -2
- package/dist/{gateway-rpc-BGgh3mTl.js → gateway-rpc-Ed0F1N_m.js} +1 -1
- package/dist/{gateway-rpc-9WQJwkTJ.js → gateway-rpc-J14XBNuM.js} +1 -1
- package/dist/{gateway-tool-DtlbDV6N.js → gateway-tool-Bi96OPGe.js} +3 -3
- package/dist/{gateway-tool-CMd3r3O5.js → gateway-tool-CNaxsMbd.js} +3 -3
- package/dist/{github-copilot-auth-Dh5sombA.js → github-copilot-auth-BmlL3P7c.js} +2 -2
- package/dist/{github-copilot-auth-ClDHXpfT.js → github-copilot-auth-DhjScF3O.js} +2 -2
- package/dist/{gmail-Dkq3kngs.js → gmail-BuCz-KEp.js} +1 -1
- package/dist/{gmail-DpPYd91j.js → gmail-C1O6grHu.js} +1 -1
- package/dist/{health-BlZEOPXK.js → health-6TTjEZoo.js} +8 -8
- package/dist/{health-BJ-Irw3K.js → health-BJbAa4df.js} +8 -8
- package/dist/{hooks-cli-Bqd1BR2r.js → hooks-cli-C0Z9dRtP.js} +2 -2
- package/dist/{hooks-cli-CR_bwhdf.js → hooks-cli-DFrRHJ1j.js} +2 -2
- package/dist/{host-D3VZGype.js → host-C8oRBLB6.js} +1 -1
- package/dist/{host-CafVbu36.js → host-DCfZcVR_.js} +1 -1
- package/dist/{image-tool-CwCxITcF.js → image-tool-D_dhIXLT.js} +2 -2
- package/dist/{image-tool-BY8NbIQs.js → image-tool-y-FDf6-M.js} +2 -2
- package/dist/index.d.ts +36 -2
- package/dist/index.js +10 -10
- package/dist/{io-TKYkFbcF.js → io-C_Q6AU5E.js} +2 -2
- package/dist/{io-oiyyZuuG.js → io-CpUiX-Lv.js} +2 -2
- package/dist/{ir-CP9ltYx0.js → ir-D0vxg3iM.js} +2 -2
- package/dist/{knowledge-graph-Dd0rSl0Q.js → knowledge-graph-BFnL_feN.js} +1 -1
- package/dist/{lifecycle-core-C7W7YZwn.js → lifecycle-core-CCUOBmZs.js} +3 -3
- package/dist/{lifecycle-core-BQztQGrv.js → lifecycle-core-CX37YE4Z.js} +3 -3
- package/dist/llm-slug-generator.js +47 -1
- package/dist/{logs-cli-CdAJHTuP.js → logs-cli-BYdqoMkJ.js} +2 -2
- package/dist/{logs-cli-lcuW5kPv.js → logs-cli-Comxq7pP.js} +2 -2
- package/dist/{manager-DeR0znMP.js → manager-DvUEsXx3.js} +1 -1
- package/dist/{memory-cli-BxVGlaEm.js → memory-cli-Bz--RMDo.js} +3 -3
- package/dist/{memory-cli-Y_w-AsVt.js → memory-cli-ilkHc_D4.js} +3 -3
- package/dist/{message-action-runner-CE4bDq6V.js → message-action-runner-BZQOV03k.js} +9 -9
- package/dist/{message-action-runner-BdclEzxx.js → message-action-runner-J8W9BPhj.js} +9 -9
- package/dist/{message-tool-BpFLUe6E.js → message-tool-BHJpugQ6.js} +6 -6
- package/dist/{message-tool-_MODnjgC.js → message-tool-GTRrYMuR.js} +6 -6
- package/dist/{model-catalog-AiXYmm_2.js → model-catalog-7Ew4iFgU.js} +3 -3
- package/dist/{model-catalog-CIgjk707.js → model-catalog-B1R3eepi.js} +3 -3
- package/dist/{model-fallback-DsefSc26.js → model-fallback--afWtYyY.js} +2 -2
- package/dist/{model-fallback-C92G-WUW.js → model-fallback-DXR7ZbvM.js} +2 -2
- package/dist/{model-fallback-Dwkt7imi.js → model-fallback-GSMox3YK.js} +3 -3
- package/dist/{model-picker-B_SEgewv.js → model-picker--bqpbxbC.js} +2 -2
- package/dist/{model-picker-DLr3xagY.js → model-picker-DJpEjKZT.js} +2 -2
- package/dist/{models-YFKEQsfy.js → models-CETV4zZ3.js} +12 -12
- package/dist/{models-cli-DuHCNW7r.js → models-cli-B5caj79x.js} +2 -2
- package/dist/{models-cli-yoQKaR0X.js → models-cli-DPT6gYJm.js} +12 -12
- package/dist/{models-config-BWzVL4DK.js → models-config-CX3wpMrd.js} +2 -2
- package/dist/{models-config-Df7nRCU-.js → models-config-ChIAfklN.js} +2 -2
- package/dist/{node-cli-D4pCYQMW.js → node-cli-4VRhz_1P.js} +7 -7
- package/dist/{node-cli-DzvdQBVp.js → node-cli-DyoQqYo1.js} +7 -7
- package/dist/{nodes-cli-CHWJMLm6.js → nodes-cli-CNQ633Hz.js} +5 -5
- package/dist/{nodes-cli-cjiOPFLH.js → nodes-cli-Dl3KtKoX.js} +5 -5
- package/dist/{nodes-tool-CR8MmpTZ.js → nodes-tool-BkgixWxk.js} +3 -3
- package/dist/{nodes-tool-DxMgloLr.js → nodes-tool-BmT8LWTt.js} +3 -3
- package/dist/{nodes-utils-BHrOJOWk.js → nodes-utils-B1jr4oHE.js} +1 -1
- package/dist/{nodes-utils-BRFzmJmB.js → nodes-utils-CVaBTJ5V.js} +1 -1
- package/dist/{nodes-utils-Eo4ilZ36.js → nodes-utils-DVNKajNN.js} +1 -1
- package/dist/{onboard-D3EkmOs0.js → onboard-BSb-bXtw.js} +9 -9
- package/dist/{onboard-DdguleAq.js → onboard-DHzBfhN9.js} +9 -9
- package/dist/{onboard-channels-DBltNYY2.js → onboard-channels-BP5oQVqD.js} +1 -1
- package/dist/{onboard-channels-cSzxNqaz.js → onboard-channels-CNmc5fTo.js} +1 -1
- package/dist/{onboard-channels-CeAsHBgW.js → onboard-channels-DHeOj8d6.js} +1 -1
- package/dist/{onboard-channels-ZDMAODeW.js → onboard-channels-DqoegMtk.js} +1 -1
- package/dist/{onboard-custom-DqkrqRdv.js → onboard-custom-B7OO328d.js} +2 -2
- package/dist/{onboard-custom-DMHUJH5-.js → onboard-custom-BODmfSpC.js} +1 -1
- package/dist/{onboard-custom-Vb7K9679.js → onboard-custom-BZv_tJxB.js} +1 -1
- package/dist/{onboard-custom-DOEx3xcN.js → onboard-custom-D7LvDFdH.js} +2 -2
- package/dist/{onboard-helpers-D60Qp1ne.js → onboard-helpers-B9IGa3vx.js} +5 -5
- package/dist/{onboard-helpers-7fbTU2tq.js → onboard-helpers-BKca3qU4.js} +1 -1
- package/dist/{onboard-helpers-DCve32jF.js → onboard-helpers-DP2LE5Oh.js} +5 -5
- package/dist/{onboard-helpers-xGGsG9to.js → onboard-helpers-HkYz_NGi.js} +1 -1
- package/dist/{onboard-remote-B13DRLJa.js → onboard-remote-DQrtJWPJ.js} +1 -1
- package/dist/{onboard-remote-C6s3bR7X.js → onboard-remote-kBPMv7zo.js} +1 -1
- package/dist/{onboard-skills-BU0OKpqj.js → onboard-skills-Cd2WeuBn.js} +3 -3
- package/dist/{onboard-skills-CKzdl2Ph.js → onboard-skills-KRXxu17b.js} +3 -3
- package/dist/{onboarding-BkiZ3JkU.js → onboarding-Cg42Uf0E.js} +11 -11
- package/dist/{onboarding-C--TfoeE.js → onboarding-nPyIyp8f.js} +11 -11
- package/dist/{onboarding.finalize-CUkOVH_E.js → onboarding.finalize-B8gctARP.js} +9 -9
- package/dist/{onboarding.finalize-Damz4ET-.js → onboarding.finalize-BoMhnz3U.js} +9 -9
- package/dist/{onboarding.gateway-config-BA3PQJBL.js → onboarding.gateway-config-Co5c5Jsj.js} +2 -2
- package/dist/{onboarding.gateway-config-4wtmgfdq.js → onboarding.gateway-config-DkkPCpUx.js} +2 -2
- package/dist/{outbound-send-deps-BmDpImVK.js → outbound-send-deps-Dg8cSoFv.js} +6 -6
- package/dist/{outbound-session-B9B7Vsxm.js → outbound-session-BCNTkSVV.js} +3 -3
- package/dist/{outbound-session-pZGUQ4vz.js → outbound-session-BG0ZMrIB.js} +3 -3
- package/dist/{pairing-cli-CRnZKVjx.js → pairing-cli-B_sfgSbk.js} +2 -2
- package/dist/{pairing-cli-aoyKpG0L.js → pairing-cli-mUAKj093.js} +2 -2
- package/dist/{pi-embedded-helpers-D-m7pmXE.js → pi-embedded-helpers-BsRnajNh.js} +1 -1
- package/dist/{pi-embedded-helpers-CkhQP2gU.js → pi-embedded-helpers-CSxJBpFl.js} +1 -1
- package/dist/{pi-embedded-helpers-BbHYim54.js → pi-embedded-helpers-CUfPWD_N.js} +6 -5
- package/dist/{pi-embedded-utils-C6MaVLHj.js → pi-embedded-utils-BlNfBen_.js} +1 -1
- package/dist/{pi-embedded-utils-DIGchmzO.js → pi-embedded-utils-Bql42QTv.js} +1 -1
- package/dist/{pi-embedded-utils-Ip0GsjWb.js → pi-embedded-utils-BtyCE2ZK.js} +1 -1
- package/dist/{pi-model-discovery-Ot_Q_yYa.js → pi-model-discovery-BV73T1am.js} +1 -1
- package/dist/{pi-tools.policy-Dt2kTSid.js → pi-tools.policy-DDJ31-0E.js} +3 -3
- package/dist/{plugin-registry-BZCSZFQn.js → plugin-registry-Dq33ZU89.js} +3 -3
- package/dist/{plugin-registry-DMRnpxA2.js → plugin-registry-RoPLmlrM.js} +3 -3
- package/dist/plugin-sdk/agents/bash/bash-tools.exec-runtime.d.ts +4 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/tool-result-context-guard.d.ts +5 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/tool-result-reduce.d.ts +8 -0
- package/dist/plugin-sdk/agents/sandbox/tier0/index.d.ts +3 -0
- package/dist/plugin-sdk/agents/sandbox/tier0/registry.d.ts +28 -0
- package/dist/plugin-sdk/agents/sandbox/tier0/router.d.ts +18 -0
- package/dist/plugin-sdk/agents/sandbox/tier0/virtual-sandbox.d.ts +30 -0
- package/dist/plugin-sdk/agents/sandbox/types.d.ts +5 -0
- package/dist/plugin-sdk/agents/sections/behaviour.d.ts +9 -0
- package/dist/plugin-sdk/agents/skills/compact-prompt.d.ts +12 -0
- package/dist/plugin-sdk/agents/skills/workspace.d.ts +4 -0
- package/dist/plugin-sdk/channels/discord.js +487 -40
- package/dist/plugin-sdk/channels/googlechat.js +3 -1
- package/dist/plugin-sdk/channels/imessage.js +487 -40
- package/dist/plugin-sdk/channels/line.js +489 -42
- package/dist/plugin-sdk/channels/msteams.js +3 -1
- package/dist/plugin-sdk/channels/signal.js +487 -40
- package/dist/plugin-sdk/channels/slack.js +487 -40
- package/dist/plugin-sdk/channels/telegram.js +487 -40
- package/dist/plugin-sdk/channels/whatsapp.js +488 -41
- package/dist/plugin-sdk/config/types.agent-defaults.d.ts +8 -0
- package/dist/plugin-sdk/config/types.agents.d.ts +4 -0
- package/dist/plugin-sdk/config/types.gateway.d.ts +8 -0
- package/dist/plugin-sdk/config/types.skills.d.ts +7 -0
- package/dist/plugin-sdk/config/types.tools.d.ts +8 -0
- package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +3 -0
- package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +9 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +6 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +26 -0
- package/dist/plugin-sdk/core.js +6 -2
- package/dist/plugin-sdk/index.js +501 -54
- package/dist/{plugins-cli-BKMBY-np.js → plugins-cli-BA0wJM-k.js} +3 -3
- package/dist/{plugins-cli-D3_BCsVN.js → plugins-cli-a-DWljrI.js} +3 -3
- package/dist/{program-context-CVLR19jJ.js → program-context-CUZUPsiC.js} +43 -43
- package/dist/{program-DFvYiOXj.js → program-gbYi5UIa.js} +7 -7
- package/dist/{prompt-select-styled-D-axSDjg.js → prompt-select-styled-DAdqH32e.js} +17 -17
- package/dist/{prompt-select-styled-n1nMLPsI.js → prompt-select-styled-lKRNiihE.js} +17 -17
- package/dist/{push-apns-Dh6xZki_.js → push-apns-BhtcU_Da.js} +1 -1
- package/dist/{push-apns-D4wjtIOe.js → push-apns-D69Af97u.js} +1 -1
- package/dist/{pw-ai-2VhRhF2B.js → pw-ai-Ba9xJlWV.js} +2 -2
- package/dist/{pw-ai-Blk_s6D5.js → pw-ai-Cvjg4UOk.js} +2 -2
- package/dist/{pw-ai-B6oeo1wI.js → pw-ai-DiwvYyv3.js} +2 -2
- package/dist/{pw-session-Crb06R5v.js → pw-session-BZ1pAX5r.js} +1 -1
- package/dist/{pw-session-DmaV4mTM.js → pw-session-BxiZ6YYh.js} +1 -1
- package/dist/{pw-session-CATqkBLI.js → pw-session-EHew9i-n.js} +1 -1
- package/dist/{qr-cli-B3IWV_8b.js → qr-cli-CFsUuFR-.js} +2 -2
- package/dist/{qr-cli-SfioxAM_.js → qr-cli-SfzcWdI0.js} +2 -2
- package/dist/{register.agent-DDVZDpQC.js → register.agent-B4bNkRtB.js} +11 -11
- package/dist/{register.agent-Dfk70LYq.js → register.agent-DHCAqxWX.js} +8 -8
- package/dist/{register.channel-BvMvb6ip.js → register.channel-B1vKkWV7.js} +2 -2
- package/dist/{register.channel-BJtyCgD7.js → register.channel-D0lVq7dU.js} +2 -2
- package/dist/{register.configure-WQlTjNyz.js → register.configure-DFSJd0YH.js} +1 -1
- package/dist/{register.configure-BdKChDnl.js → register.configure-DIHFldND.js} +1 -1
- package/dist/{register.drone-B-xrDJpJ.js → register.drone-Do4i5ZE9.js} +2 -2
- package/dist/{register.drone-DSHJ5vq1.js → register.drone-Tckr0QFo.js} +2 -2
- package/dist/{register.maintenance-DoMoBeyF.js → register.maintenance-Bw9G1eZ0.js} +5 -5
- package/dist/{register.maintenance-DnP_N0ye.js → register.maintenance-D5LVEuKI.js} +5 -5
- package/dist/{register.message-Xl-pZILp.js → register.message-BsGRyTVT.js} +7 -7
- package/dist/{register.message-Cdp8TM0J.js → register.message-C_51tZCE.js} +8 -8
- package/dist/{register.onboard-BzZPizJ0.js → register.onboard-CMusJAzJ.js} +1 -1
- package/dist/{register.onboard-IPqLR5Zb.js → register.onboard-Ngaw9ikW.js} +1 -1
- package/dist/{register.setup-DLzSctB1.js → register.setup-aKi_hurQ.js} +4 -4
- package/dist/{register.setup-BX8Ya9qY.js → register.setup-xpiPRct8.js} +4 -4
- package/dist/{register.status-health-sessions-CXIHidz6.js → register.status-health-sessions-B87H-g0g.js} +6 -6
- package/dist/{register.status-health-sessions-DnNAMB3T.js → register.status-health-sessions-D2rMUW_t.js} +4 -4
- package/dist/{register.subclis-DAt5WEzu.js → register.subclis-DB0kFld6.js} +30 -30
- package/dist/{reply-D_uwJ_hb.js → reply-CNJWciSj.js} +442 -52
- package/dist/{reply-payloads-BBHotu7W.js → reply-payloads-BS889lPA.js} +2 -2
- package/dist/{reply-payloads-CikGrhVL.js → reply-payloads-Dk-zLmJC.js} +2 -2
- package/dist/{reply-prefix-eSF5kXs5.js → reply-prefix-CfrIMbCM.js} +1 -1
- package/dist/{reply-prefix-CYbvVBOV.js → reply-prefix-D9MQ_veY.js} +1 -1
- package/dist/{resolve-route-FLi7kFo1.js → resolve-route-0arQsERr.js} +1 -1
- package/dist/{resolve-route-DiiBj8NL.js → resolve-route-DwDSX3mI.js} +2 -2
- package/dist/{routes-DFLRIpty.js → routes-DubNFADQ.js} +4 -4
- package/dist/{routes-CagC77kh.js → routes-hcdbDZ60.js} +4 -4
- package/dist/{rpc-DxdMMngu.js → rpc-CpEGWO4f.js} +1 -1
- package/dist/{rpc-dZcSayi6.js → rpc-DShIx1il.js} +1 -1
- package/dist/{run-main-Cw7JO4bk.js → run-main-CgrHeBpO.js} +20 -20
- package/dist/{sandbox-DX1DKAJb.js → sandbox-BYK6Qgnd.js} +9 -8
- package/dist/{sandbox-pZvVQZ-a.js → sandbox-CDGF9AVA.js} +9 -8
- package/dist/{sandbox-cli-DsFqky0Y.js → sandbox-cli-3v8NFyXC.js} +4 -4
- package/dist/{sandbox-cli--NZU5yHm.js → sandbox-cli-DmXP8NkD.js} +4 -4
- package/dist/{security-cli-B9rFqAom.js → security-cli-B23Rjmu8.js} +3 -3
- package/dist/{security-cli-DUGFqvJc.js → security-cli-C7jxF7EW.js} +3 -3
- package/dist/{send-OcwoynpB.js → send-B3EXtlyb.js} +2 -2
- package/dist/{send-BUUHmWJ3.js → send-Boe93Q4V.js} +2 -2
- package/dist/{send-Czh3Yz38.js → send-Br1IcpxR.js} +2 -2
- package/dist/{send-mztwgKny.js → send-BrvRGJ0_.js} +3 -3
- package/dist/{send-CRNffLsb.js → send-BuiJlYF8.js} +2 -2
- package/dist/{send-DTQ_lSWv.js → send-DPURnZWZ.js} +2 -2
- package/dist/{send-Bh69NFd_.js → send-DT-x-IFQ.js} +3 -3
- package/dist/{send-CuFw68zk.js → send-D_PQuZ3x.js} +2 -2
- package/dist/{send-Ckq83rOO.js → send-DhuPDKRX.js} +2 -2
- package/dist/{server-context-D-VUH9Bz.js → server-context-BRKaxwJB.js} +6 -6
- package/dist/{server-context-BlUcP_zF.js → server-context-CvEQbenq.js} +6 -6
- package/dist/{server-context-BNI2cc_e.js → server-context-nyYhGUmI.js} +5 -5
- package/dist/{server-node-events-DQqHB_8B.js → server-node-events-B6rUT0PE.js} +8 -8
- package/dist/{server-node-events-BqG45BMs.js → server-node-events-D90DAPI1.js} +10 -10
- package/dist/{session-status-tool-CN-Juxjq.js → session-status-tool-BIN4ooy0.js} +6 -6
- package/dist/{session-status-tool-DnD354sJ.js → session-status-tool-CtbF1-VI.js} +7 -7
- package/dist/{session-utils-0BYkk3f_.js → session-utils-DDCd8HC9.js} +4 -4
- package/dist/{sessions-CismtNoo.js → sessions-ByNQiqr2.js} +1 -1
- package/dist/{sessions-D_b2UXud.js → sessions-C0Qs0Flz.js} +3 -3
- package/dist/{sessions-0d-dBE8D.js → sessions-CPoA3oJo.js} +4 -4
- package/dist/{sessions-Z8JCL_sa.js → sessions-CW4tzKA-.js} +3 -3
- package/dist/{sessions-helpers-Crh_NTSX.js → sessions-helpers-DdqQiSR6.js} +3 -3
- package/dist/{sessions-helpers-JsbUTHcP.js → sessions-helpers-vwVJ1Vy4.js} +3 -3
- package/dist/{sessions-helpers-uZ0Taeh3.js → sessions-helpers-xH-u6Byb.js} +3 -3
- package/dist/{sessions-history-tool-6VYdT_kc.js → sessions-history-tool-BO81rMTT.js} +5 -5
- package/dist/{sessions-history-tool-6WMcHpxy.js → sessions-history-tool-DKXNjv5X.js} +5 -5
- package/dist/{sessions-list-tool-CwTLRwGc.js → sessions-list-tool-6DJtypdD.js} +5 -5
- package/dist/{sessions-list-tool-CwGp-l3S.js → sessions-list-tool-s_y-_4Uv.js} +5 -5
- package/dist/{sessions-send-tool-BKNgicV5.js → sessions-send-tool-C3ggqtMe.js} +5 -5
- package/dist/{sessions-send-tool-Dl4HKGgL.js → sessions-send-tool-roh-kyNw.js} +5 -5
- package/dist/{sessions-spawn-tool-DqfoPFrK.js → sessions-spawn-tool-BgkkNWMg.js} +1 -1
- package/dist/{sessions-spawn-tool-Bguo3O1I.js → sessions-spawn-tool-UAd65WIb.js} +1 -1
- package/dist/{shared-Cr0N9iap.js → shared-BysrBqEi.js} +2 -2
- package/dist/{shared-B7QVxDsn.js → shared-CjEFJgna.js} +2 -2
- package/dist/{skills-DkeUrhAT.js → skills-Bf4ZPGHe.js} +1 -1
- package/dist/{skills-DMPRReoe.js → skills-DDhWBAii.js} +1 -1
- package/dist/{skills-cli--8zG3UQk.js → skills-cli-DnO1g2oN.js} +6 -6
- package/dist/{skills-cli-D334Q0dM.js → skills-cli-DxFMRja6.js} +6 -6
- package/dist/{skills-install-DAphGXoj.js → skills-install-Bo9PwVmT.js} +2 -2
- package/dist/{skills-install-BNR2Nfa3.js → skills-install-DkZHLCih.js} +2 -2
- package/dist/{skills-status-D54inzOP.js → skills-status-8p-KrlIF.js} +2 -2
- package/dist/{skills-status-DDzkv-Rj.js → skills-status-CBTT87BN.js} +2 -2
- package/dist/{status-BIvJQtxV.js → status-BpgCPxM4.js} +3 -3
- package/dist/{status-JJ8BdlhI.js → status-Db6PPdwI.js} +3 -3
- package/dist/{status-DosDYGut.js → status-DyQwrglF.js} +12 -12
- package/dist/{status-gWt5DmvD.js → status-Dz_-4ATW.js} +13 -13
- package/dist/{status.update-BnYycijV.js → status.update-BBLk_Q3P.js} +1 -1
- package/dist/{status.update-D0KmfrNX.js → status.update-OhQ3FS7R.js} +1 -1
- package/dist/{subagent-registry-0zv9UyYz.js → subagent-registry-C_UHFYRY.js} +443 -53
- package/dist/{subagents-tool-usr_WpP2.js → subagents-tool-BdWYv7Mb.js} +6 -6
- package/dist/{subagents-tool-m92Kjy1x.js → subagents-tool-DjPwvSat.js} +6 -6
- package/dist/{system-cli-t4Qk2mcC.js → system-cli-BQJK1EiV.js} +1 -1
- package/dist/{system-cli-BxYnYU05.js → system-cli-Cj6oDS1q.js} +1 -1
- package/dist/{systemd-hints-JlNoKkcf.js → systemd-hints-BKM-UvY_.js} +1 -1
- package/dist/{systemd-hints-C21GmUrX.js → systemd-hints-BdVIEvO3.js} +1 -1
- package/dist/{targets-BWPxk4rU.js → targets-BpZ7t54u.js} +1 -1
- package/dist/{tools-F4g3knJE.js → tools-D3fRPoa3.js} +421 -38
- package/dist/{tools-cli-Cmg7InJT.js → tools-cli-CjniP2oD.js} +3 -3
- package/dist/{tools-cli-BPV7GpBg.js → tools-cli-DLPn3_f-.js} +3 -3
- package/dist/{tts-CC3WSaW9.js → tts-BhWpmVdG.js} +1 -1
- package/dist/{tts-CRpGlsYO.js → tts-DrFhyLnB.js} +1 -1
- package/dist/{tts-OJZ7iSKo.js → tts-DyQvwyVi.js} +1 -1
- package/dist/{tts-tool-DsLN8-ZT.js → tts-tool-CdaKVWBM.js} +3 -3
- package/dist/{tts-tool-B73xs8Vs.js → tts-tool-CfEs7ebD.js} +3 -3
- package/dist/{tui-BRdOjXJy.js → tui-CNuz7tKz.js} +5 -5
- package/dist/{tui-PSDwA6SF.js → tui-DJvjN1xV.js} +5 -5
- package/dist/{tui-cli-DMD7clw2.js → tui-cli-CLoyYSXd.js} +1 -1
- package/dist/{tui-cli-DHWrleUP.js → tui-cli-DhhA87TG.js} +1 -1
- package/dist/{update-cli-DlxYgSAN.js → update-cli-0lBEnFj5.js} +8 -8
- package/dist/{update-cli-Du5BbYfl.js → update-cli-Cc4jgBsG.js} +8 -8
- package/dist/{validation-CG8Ui8_v.js → validation-B-XaORq2.js} +5 -1
- package/dist/{validation-T0CNq_JP.js → validation-DuFmPzCB.js} +5 -1
- package/dist/web-BUkj8HIz.js +2 -0
- package/dist/{web-CtwxKIvO.js → web-BY79LufL.js} +8 -8
- package/dist/{web-search-B5d6ODyB.js → web-search-CCeGZMBD.js} +4 -4
- package/dist/{web-search-CV42wG57.js → web-search-D1pX-Tuc.js} +4 -4
- package/dist/{webhooks-cli-tSv_Pzzq.js → webhooks-cli-B3LP9UKY.js} +5 -5
- package/dist/{webhooks-cli-BeHnKv6z.js → webhooks-cli-C5xR4Wu5.js} +5 -5
- package/dist/{workspace-Dov1_dCF.js → workspace-BwzunhL2.js} +49 -3
- package/dist/{workspace-CSGZ3DZ_.js → workspace-CVAkpBJa.js} +48 -2
- package/dist/{workspace-CSBTFAxh.js → workspace-D5-DoTNR.js} +48 -2
- package/dist/{workspace-dirs-Yo4RZm7s.js → workspace-dirs-CJDJUlno.js} +3 -3
- package/docs/superpowers/plans/2026-06-10-phase1-quick-wins.md +1260 -0
- package/docs/superpowers/specs/2026-06-10-recon-quick-wins-and-silent-agent-design.md +151 -0
- package/extensions/alert-watcher/index.js +47 -1
- package/extensions/bluebubbles/index.js +5 -1
- package/extensions/feishu/index.js +5 -1
- package/extensions/flows/index.js +52 -2
- package/extensions/gmail-calendar/index.js +47 -1
- package/extensions/googlechat/index.js +5 -1
- package/extensions/irc/index.js +5 -1
- package/extensions/llm-task/index.js +47 -1
- package/extensions/matrix/{credentials-B1q3x-N0.mjs → credentials-BtiLgiNR.mjs} +5 -1
- package/extensions/matrix/index.js +3 -3
- package/extensions/matrix/{matrix-B9amoffh.mjs → matrix-CWlUSNSh.mjs} +2 -2
- package/extensions/matrix/{resolve-targets-Dw7tv-7K.mjs → resolve-targets-ml4iU4Bd.mjs} +2 -2
- package/extensions/mattermost/index.js +5 -1
- package/extensions/nextcloud-talk/index.js +5 -1
- package/extensions/tlon/index.js +47 -1
- package/extensions/wati/index.js +5 -1
- package/extensions/weixin/index.js +5 -1
- package/extensions/zalo/index.js +5 -1
- package/extensions/zalouser/index.js +5 -1
- package/package.json +3 -2
- package/dist/config-guard-BfdkKYAa.js +0 -2
- package/dist/daemon-install-helpers-4gMthp-_.js +0 -2
- package/dist/daemon-install-helpers-BLXYJ3C5.js +0 -2
- package/dist/doctor-completion-DKJRw1m1.js +0 -2
- package/dist/doctor-completion-DMcJXsi0.js +0 -2
- package/dist/web-Dj8nR4rt.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as formatReasoningMessage, c as promoteThinkingTagsToBlocks, f as extractTextFromChatContent, i as extractThinkingFromTaggedText, l as stripDowngradedToolCallText, m as __exportAll, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, r as extractThinkingFromTaggedStream, s as isAssistantMessage, t as extractAssistantText } from "./pi-embedded-utils-
|
|
1
|
+
import { a as formatReasoningMessage, c as promoteThinkingTagsToBlocks, f as extractTextFromChatContent, i as extractThinkingFromTaggedText, l as stripDowngradedToolCallText, m as __exportAll, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, r as extractThinkingFromTaggedStream, s as isAssistantMessage, t as extractAssistantText } from "./pi-embedded-utils-BlNfBen_.js";
|
|
2
2
|
import { C as clampInt, D as formatTerminalLink, E as escapeRegExp, F as shortenHomeInString, G as shouldLogVerbose, H as logVerbose, I as shortenHomePath, J as isRich, L as sleep, N as resolveUserPath, O as isPlainObject, Q as normalizeLogLevel, R as sliceUtf16Safe, S as CONFIG_DIR, W as setVerbose, X as getChildLogger, Y as theme, Z as getLogger, _ as createPluginRegistry, a as unregisterActiveProgressLine, b as listPluginCommands, et as createInternalHookEvent, f as getActivePluginRegistry, g as setActivePluginRuntime, h as setActivePluginRegistryConfig, i as registerActiveProgressLine, k as isRecord, l as normalizeAnyChannelId, m as setActivePluginRegistry, mt as expandHomePrefix, n as defaultRuntime, nt as registerMcpTool, q as colorize, r as clearActiveProgressLine, s as CHAT_CHANNEL_ORDER, t as createSubsystemLogger, tt as triggerInternalHook, u as normalizeChannelId, ut as resolveStateDir, v as clearPluginCommands, x as matchPluginCommand, y as executePluginCommand, z as truncateUtf16Safe } from "./subsystem-Bz8lTz2g.js";
|
|
3
3
|
import { A as DEFAULT_AGENT_ID, C as ensureAgentWorkspace, D as resolveMinionPackageRoot, E as loadWorkspaceBootstrapFiles, F as normalizeAccountId, G as parseAgentSessionKey, I as normalizeAgentId, K as resolveThreadParentSessionKey, L as normalizeMainKey, P as classifySessionKeyShape, R as resolveAgentIdFromSessionKey, S as DEFAULT_WORKSHOP_FILENAME, T as isWorkspaceOnboardingCompleted, U as isCronSessionKey, V as getSubagentDepth, W as isSubagentSessionKey, _ as DEFAULT_HEARTBEAT_FILENAME, b as DEFAULT_TOOLS_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentIds, g as DEFAULT_FOCUS_FILENAME, i as resolveAgentModelFallbacksOverride, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as resolveAgentConfig, o as resolveAgentSkillsDenyFilter, r as resolveAgentDir, s as resolveAgentSkillsFilter, t as listAgentIds, u as resolveSessionAgentId, w as filterBootstrapFilesForSession } from "./agent-scope-G3FqXqqy.js";
|
|
4
4
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-DWwKe_AW.js";
|
|
@@ -6,14 +6,14 @@ import { $ as resolveOpenClawAgentDir, A as resolveShellEnvFallbackTimeoutMs, B
|
|
|
6
6
|
import { t as emitEvent } from "./emitter-DgCKoBMW.js";
|
|
7
7
|
import "./sqlite-TEJFfaDd.js";
|
|
8
8
|
import { n as recallMemories, r as recordMemories } from "./memory-sink-Cai9LXP2.js";
|
|
9
|
-
import { r as emitMemoryRead, t as KnowledgeGraphSession } from "./knowledge-graph-
|
|
10
|
-
import { A as ALL_SCOPES, C as VERSION, D as resolveMemorySlotDecision, E as resolveEnableState, O as isMemorySlotPlugin, S as emptyPluginConfigSchema, T as normalizePluginsConfig, _ as parseDurationMs, a as writeConfigFile, c as validateJsonSchemaValue, d as setConfigOverride, f as unsetConfigOverride, g as unsetConfigValueAtPath, h as setConfigValueAtPath, k as AGENT_TYPE_SCOPES, l as getConfigOverrides, m as parseConfigPath, n as loadConfig, o as validateConfigObjectWithPlugins, p as getConfigValueAtPath, r as readConfigFileSnapshot, u as resetConfigOverrides, v as loadPluginManifestRegistry, w as applyTestPluginDefaults, y as discoverOpenClawPlugins } from "./config-
|
|
11
|
-
import { $ as normalizeVerboseLevel, A as matchesAnyGlobPattern, B as parseImageSizeError, C as ensureSandboxWorkspaceForSession, D as resolveSkillEnvMapFromSnapshot, E as resolveSkillEnvMap, F as isContextOverflowError, G as sanitizeGoogleTurnOrdering, H as ensureSessionHeader, I as isLikelyContextOverflowError, J as listThinkingLevels, K as formatThinkingLevels, L as isTimeoutErrorMessage, M as isRawApiErrorPayload, N as isCloudCodeAssistFormatError, O as resolveSandboxConfigForAgent, P as isCompactionFailureError, Q as normalizeUsageDisplay, R as isTransientHttpError, S as sanitizeUserFacingText, T as resolveSandboxRuntimeStatus, U as resolveBootstrapMaxChars, V as buildBootstrapContextFiles, W as resolveBootstrapTotalMaxChars, X as normalizeReasoningLevel, Y as normalizeElevatedLevel, Z as normalizeThinkLevel, _ as isFailoverErrorMessage, a as isMessagingToolDuplicateNormalized, at as collectExplicitAllowlist, b as formatBillingErrorMessage, c as extractToolCallsFromAssistant, ct as mergeAlsoAllowPolicy, d as isAntigravityClaude, dt as stripPluginOnlyAllowlist, et as resolveResponseUsageMode, f as isGoogleModelApi, g as isFailoverAssistantError, h as isBillingAssistantError, it as buildPluginToolGroups, j as getApiErrorPayloadFingerprint, k as compileGlobPatterns, l as extractToolResultId, lt as normalizeToolName, m as isAuthAssistantError, n as validateGeminiTurns, nt as TOOL_GROUPS, o as normalizeTextForComparison, ot as expandPolicyWithPluginGroups, p as classifyFailoverReason, q as formatXHighModelHint, r as pickFallbackThinkingLevel, rt as applyOwnerOnlyToolPolicy, s as sanitizeSessionMessagesImages, st as expandToolGroups, t as validateAnthropicTurns, tt as supportsXHighThinking, u as downgradeOpenAIReasoningBlocks, ut as resolveToolProfilePolicy, v as isRateLimitAssistantError, w as resolveSandboxContext, x as formatRawAssistantErrorForUi, y as formatAssistantErrorText, z as parseImageDimensionError } from "./pi-embedded-helpers-
|
|
9
|
+
import { r as emitMemoryRead, t as KnowledgeGraphSession } from "./knowledge-graph-BFnL_feN.js";
|
|
10
|
+
import { A as ALL_SCOPES, C as VERSION, D as resolveMemorySlotDecision, E as resolveEnableState, O as isMemorySlotPlugin, S as emptyPluginConfigSchema, T as normalizePluginsConfig, _ as parseDurationMs, a as writeConfigFile, c as validateJsonSchemaValue, d as setConfigOverride, f as unsetConfigOverride, g as unsetConfigValueAtPath, h as setConfigValueAtPath, k as AGENT_TYPE_SCOPES, l as getConfigOverrides, m as parseConfigPath, n as loadConfig, o as validateConfigObjectWithPlugins, p as getConfigValueAtPath, r as readConfigFileSnapshot, u as resetConfigOverrides, v as loadPluginManifestRegistry, w as applyTestPluginDefaults, y as discoverOpenClawPlugins } from "./config-CkMQunWU.js";
|
|
11
|
+
import { $ as normalizeVerboseLevel, A as matchesAnyGlobPattern, B as parseImageSizeError, C as ensureSandboxWorkspaceForSession, D as resolveSkillEnvMapFromSnapshot, E as resolveSkillEnvMap, F as isContextOverflowError, G as sanitizeGoogleTurnOrdering, H as ensureSessionHeader, I as isLikelyContextOverflowError, J as listThinkingLevels, K as formatThinkingLevels, L as isTimeoutErrorMessage, M as isRawApiErrorPayload, N as isCloudCodeAssistFormatError, O as resolveSandboxConfigForAgent, P as isCompactionFailureError, Q as normalizeUsageDisplay, R as isTransientHttpError, S as sanitizeUserFacingText, T as resolveSandboxRuntimeStatus, U as resolveBootstrapMaxChars, V as buildBootstrapContextFiles, W as resolveBootstrapTotalMaxChars, X as normalizeReasoningLevel, Y as normalizeElevatedLevel, Z as normalizeThinkLevel, _ as isFailoverErrorMessage, a as isMessagingToolDuplicateNormalized, at as collectExplicitAllowlist, b as formatBillingErrorMessage, c as extractToolCallsFromAssistant, ct as mergeAlsoAllowPolicy, d as isAntigravityClaude, dt as stripPluginOnlyAllowlist, et as resolveResponseUsageMode, f as isGoogleModelApi, g as isFailoverAssistantError, h as isBillingAssistantError, it as buildPluginToolGroups, j as getApiErrorPayloadFingerprint, k as compileGlobPatterns, l as extractToolResultId, lt as normalizeToolName, m as isAuthAssistantError, n as validateGeminiTurns, nt as TOOL_GROUPS, o as normalizeTextForComparison, ot as expandPolicyWithPluginGroups, p as classifyFailoverReason, q as formatXHighModelHint, r as pickFallbackThinkingLevel, rt as applyOwnerOnlyToolPolicy, s as sanitizeSessionMessagesImages, st as expandToolGroups, t as validateAnthropicTurns, tt as supportsXHighThinking, u as downgradeOpenAIReasoningBlocks, ut as resolveToolProfilePolicy, v as isRateLimitAssistantError, w as resolveSandboxContext, x as formatRawAssistantErrorForUi, y as formatAssistantErrorText, z as parseImageDimensionError } from "./pi-embedded-helpers-CUfPWD_N.js";
|
|
12
12
|
import { n as traceChatEvent, r as traceGatewayEvent, t as deriveTraceId } from "./chat-trace-BHrz-R_x.js";
|
|
13
13
|
import { a as startSentrySpan, i as addSentryBreadcrumb, n as trackSkillExecution, o as withSentryIsolationScope, r as trackToolExecution, t as emitReliabilityEvent } from "./reliability-Ci95cCmv.js";
|
|
14
|
-
import { A as isSafeFenceBreak, C as chunkMarkdownText, D as resolveChunkMode, E as chunkTextWithMode, M as getGlobalHookRunner, N as initializeGlobalHookRunner, O as resolveTextChunkLimit, T as chunkText, _ as parseReplyDirectives, a as applyReplyTagsToPayload, b as parseInlineDirectives$1, c as filterMessagingToolMediaDuplicates, d as createReplyToModeFilterForChannel, f as resolveReplyToMode, g as normalizeTargetForProvider, i as resolveMarkdownTableMode, j as parseFenceSpans, k as findFenceSpanAt, l as isRenderablePayload, o as applyReplyThreading, p as resolveFetch, r as markdownToIRWithMeta, s as filterMessagingToolDuplicates, u as shouldSuppressMessagingToolReplies, v as MEDIA_TOKEN_RE, w as chunkMarkdownTextWithMode, x as chunkByNewline, y as splitMediaFromOutput } from "./ir-
|
|
14
|
+
import { A as isSafeFenceBreak, C as chunkMarkdownText, D as resolveChunkMode, E as chunkTextWithMode, M as getGlobalHookRunner, N as initializeGlobalHookRunner, O as resolveTextChunkLimit, T as chunkText, _ as parseReplyDirectives, a as applyReplyTagsToPayload, b as parseInlineDirectives$1, c as filterMessagingToolMediaDuplicates, d as createReplyToModeFilterForChannel, f as resolveReplyToMode, g as normalizeTargetForProvider, i as resolveMarkdownTableMode, j as parseFenceSpans, k as findFenceSpanAt, l as isRenderablePayload, o as applyReplyThreading, p as resolveFetch, r as markdownToIRWithMeta, s as filterMessagingToolDuplicates, u as shouldSuppressMessagingToolReplies, v as MEDIA_TOKEN_RE, w as chunkMarkdownTextWithMode, x as chunkByNewline, y as splitMediaFromOutput } from "./ir-D0vxg3iM.js";
|
|
15
15
|
import { t as wrapToolWithTracking } from "./tool-tracking-BfpUmfBM.js";
|
|
16
|
-
import { a as resolveMemorySearchConfig, i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-
|
|
16
|
+
import { a as resolveMemorySearchConfig, i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-DvUEsXx3.js";
|
|
17
17
|
import { n as formatErrorMessage } from "./errors-DInjg6Ku.js";
|
|
18
18
|
import { n as normalizeSecretInput } from "./normalize-secret-input-Ct6H42vX.js";
|
|
19
19
|
import { d as normalizeExtraMemoryPaths, h as runTasksWithConcurrency, u as listMemoryFiles } from "./session-files-CSGnJtRe.js";
|
|
@@ -23,24 +23,24 @@ import { _ as kindFromMime, c as getImageMetadata, d as resizeToJpeg, f as detec
|
|
|
23
23
|
import { a as readNumberParam, i as jsonResult, s as readStringParam } from "./common-mPQVYX41.js";
|
|
24
24
|
import { a as INTERNAL_MESSAGE_CHANNEL, c as isMarkdownCapableMessageChannel, d as resolveGatewayMessageChannel, f as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as normalizeInputProvenance, l as listDeliverableMessageChannels, m as GATEWAY_CLIENT_MODES, n as applyInputProvenanceToUserMessage, o as isDeliverableMessageChannel, r as hasInterSessionUserProvenance, s as isInternalMessageChannel, u as normalizeMessageChannel } from "./input-provenance-BUf7opno.js";
|
|
25
25
|
import { d as normalizeChatType, f as resolveDiscordAccount, l as resolveSlackAccount, n as listChannelPlugins, o as resolveWhatsAppAccount, p as normalizeDiscordToken, r as normalizeChannelId$1, s as resolveTelegramAccount, t as getChannelPlugin } from "./plugins-7HkLtO7B.js";
|
|
26
|
-
import { A as canonicalizeMainSessionAlias, B as normalizeAtHashSlug, C as evaluateSessionFreshness, D as resolveThreadFlag, E as resolveSessionResetType, F as resolveGroupSessionKey, G as resolveSignalAccount, H as resolveChannelGroupPolicy, I as acquireSessionWriteLock, K as resolveIMessageAccount, L as resolveSessionLockMaxHoldFromTimeout, M as resolveMainSessionKey, N as deriveSessionMetaPatch, O as DEFAULT_RESET_TRIGGERS, P as resolveConversationLabel, R as getChannelDock, S as resolveSessionKey, T as resolveSessionResetPolicy, U as resolveChannelGroupRequireMention, W as resolveChannelGroupToolsPolicy, _ as normalizeSessionDeliveryFields, a as readSessionUpdatedAt, b as countToolResults, c as updateLastRoute, d as isCacheEnabled, f as resolveCacheTtlMs, g as normalizeDeliveryContext, h as mergeDeliveryContext, i as loadSessionStore, k as resolveFreshSessionTotalTokens, l as updateSessionStore, m as deliveryContextKey, o as recordSessionMetaFromInbound, p as deliveryContextFromSession, u as updateSessionStoreEntry, v as archiveSessionTranscripts, w as resolveChannelResetConfig, x as extractToolCallNames, z as listChannelDocks } from "./sessions-
|
|
26
|
+
import { A as canonicalizeMainSessionAlias, B as normalizeAtHashSlug, C as evaluateSessionFreshness, D as resolveThreadFlag, E as resolveSessionResetType, F as resolveGroupSessionKey, G as resolveSignalAccount, H as resolveChannelGroupPolicy, I as acquireSessionWriteLock, K as resolveIMessageAccount, L as resolveSessionLockMaxHoldFromTimeout, M as resolveMainSessionKey, N as deriveSessionMetaPatch, O as DEFAULT_RESET_TRIGGERS, P as resolveConversationLabel, R as getChannelDock, S as resolveSessionKey, T as resolveSessionResetPolicy, U as resolveChannelGroupRequireMention, W as resolveChannelGroupToolsPolicy, _ as normalizeSessionDeliveryFields, a as readSessionUpdatedAt, b as countToolResults, c as updateLastRoute, d as isCacheEnabled, f as resolveCacheTtlMs, g as normalizeDeliveryContext, h as mergeDeliveryContext, i as loadSessionStore, k as resolveFreshSessionTotalTokens, l as updateSessionStore, m as deliveryContextKey, o as recordSessionMetaFromInbound, p as deliveryContextFromSession, u as updateSessionStoreEntry, v as archiveSessionTranscripts, w as resolveChannelResetConfig, x as extractToolCallNames, z as listChannelDocks } from "./sessions-ByNQiqr2.js";
|
|
27
27
|
import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText } from "./tokens-Dxroopzl.js";
|
|
28
28
|
import { i as stripHeartbeatToken, n as AGENT_LANE_SUBAGENT, r as resolveHeartbeatPrompt } from "./lanes-BR5o5mOf.js";
|
|
29
|
-
import { _ as listChannelSupportedActions, c as readChannelAllowFromStore, d as listPairingChannels, f as createSlackWebClient, g as listChannelAgentTools, h as isPersonalAgentId, i as resolveSessionDeliveryTarget, l as removeChannelAllowFromStoreEntry, m as fetchDiscord, n as resolveAgentRoute, p as normalizeDiscordSlug, s as addChannelAllowFromStoreEntry, u as upsertChannelPairingRequest, v as resolveChannelMessageToolHints, y as resolveTelegramInlineButtonsScope } from "./resolve-route-
|
|
30
|
-
import { a as logMessageProcessed, c as emitDiagnosticEvent, i as logLaneEnqueue, l as isDiagnosticsEnabled, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-
|
|
31
|
-
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-
|
|
32
|
-
import { S as isVoiceCompatibleAudio, _ as setTtsMaxLength, a as isSummarizationEnabled, b as textToSpeech, c as maybeApplyTtsToPayload, d as resolveTtsAutoMode, f as resolveTtsConfig, g as setTtsEnabled, h as setSummarizationEnabled, i as getTtsProvider, l as normalizeTtsAutoMode, m as setLastTtsAttempt, n as getLastTtsAttempt, o as isTtsEnabled, p as resolveTtsPrefsPath, r as getTtsMaxLength, s as isTtsProviderConfigured, t as buildTtsSystemPromptHint, u as resolveTtsApiKey, v as setTtsProvider, x as textToSpeechTelephony, y as stripTtsDirectivesFromText } from "./tts-
|
|
33
|
-
import { d as resolveSandboxInputPath, i as resolveSkillsPromptForRun, n as buildWorkspaceSkillSnapshot, o as resolvePluginSkillDirs, r as loadWorkspaceSkillEntries, t as buildWorkspaceSkillCommandSpecs, u as assertSandboxPath } from "./workspace-
|
|
34
|
-
import { a as getMediaDir, o as saveMediaBuffer } from "./server-context-
|
|
29
|
+
import { _ as listChannelSupportedActions, c as readChannelAllowFromStore, d as listPairingChannels, f as createSlackWebClient, g as listChannelAgentTools, h as isPersonalAgentId, i as resolveSessionDeliveryTarget, l as removeChannelAllowFromStoreEntry, m as fetchDiscord, n as resolveAgentRoute, p as normalizeDiscordSlug, s as addChannelAllowFromStoreEntry, u as upsertChannelPairingRequest, v as resolveChannelMessageToolHints, y as resolveTelegramInlineButtonsScope } from "./resolve-route-DwDSX3mI.js";
|
|
30
|
+
import { a as logMessageProcessed, c as emitDiagnosticEvent, i as logLaneEnqueue, l as isDiagnosticsEnabled, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-CVAiT8Yi.js";
|
|
31
|
+
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-Cj5nMvNL.js";
|
|
32
|
+
import { S as isVoiceCompatibleAudio, _ as setTtsMaxLength, a as isSummarizationEnabled, b as textToSpeech, c as maybeApplyTtsToPayload, d as resolveTtsAutoMode, f as resolveTtsConfig, g as setTtsEnabled, h as setSummarizationEnabled, i as getTtsProvider, l as normalizeTtsAutoMode, m as setLastTtsAttempt, n as getLastTtsAttempt, o as isTtsEnabled, p as resolveTtsPrefsPath, r as getTtsMaxLength, s as isTtsProviderConfigured, t as buildTtsSystemPromptHint, u as resolveTtsApiKey, v as setTtsProvider, x as textToSpeechTelephony, y as stripTtsDirectivesFromText } from "./tts-DyQvwyVi.js";
|
|
33
|
+
import { d as resolveSandboxInputPath, i as resolveSkillsPromptForRun, n as buildWorkspaceSkillSnapshot, o as resolvePluginSkillDirs, r as loadWorkspaceSkillEntries, t as buildWorkspaceSkillCommandSpecs, u as assertSandboxPath } from "./workspace-BwzunhL2.js";
|
|
34
|
+
import { a as getMediaDir, o as saveMediaBuffer } from "./server-context-nyYhGUmI.js";
|
|
35
35
|
import { a as isPrivateIpAddress, i as isBlockedHostname } from "./ssrf-DWqM0QRy.js";
|
|
36
|
-
import { c as FailoverError, d as resolveFailoverStatus, h as ensureOpenClawModelsJson, l as isTimeoutError, m as ensureMinionModelsJson, n as runWithModelFallback, p as resolveWorkspaceRoot, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as resolveFailoverReasonFromError } from "./model-fallback-
|
|
37
|
-
import { t as callGateway } from "./call-
|
|
38
|
-
import { t as callGatewayTool } from "./gateway-
|
|
39
|
-
import { r as resolveNodeIdFromList, t as listNodes } from "./nodes-utils-
|
|
36
|
+
import { c as FailoverError, d as resolveFailoverStatus, h as ensureOpenClawModelsJson, l as isTimeoutError, m as ensureMinionModelsJson, n as runWithModelFallback, p as resolveWorkspaceRoot, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as resolveFailoverReasonFromError } from "./model-fallback-GSMox3YK.js";
|
|
37
|
+
import { t as callGateway } from "./call-QNmBuec5.js";
|
|
38
|
+
import { t as callGatewayTool } from "./gateway-q_fM0u-m.js";
|
|
39
|
+
import { r as resolveNodeIdFromList, t as listNodes } from "./nodes-utils-CVaBTJ5V.js";
|
|
40
40
|
import { n as bindAbortRelay, r as fetchWithTimeout, t as fetchWithSsrFGuard } from "./fetch-guard-6r0F3dD_.js";
|
|
41
|
-
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-
|
|
41
|
+
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BV73T1am.js";
|
|
42
42
|
import { a as fetchRemoteMedia, i as MediaFetchError, n as loadWebMedia, o as readResponseWithLimit } from "./load-DKwJGFTz.js";
|
|
43
|
-
import { a as stripToolMessages, d as resolveDisplaySessionKey, f as resolveInternalSessionKey, i as sanitizeTextContent, p as resolveMainSessionAlias, r as extractAssistantText$1 } from "./sessions-helpers-
|
|
43
|
+
import { a as stripToolMessages, d as resolveDisplaySessionKey, f as resolveInternalSessionKey, i as sanitizeTextContent, p as resolveMainSessionAlias, r as extractAssistantText$1 } from "./sessions-helpers-DdqQiSR6.js";
|
|
44
44
|
import { t as detectSuspiciousPatterns } from "./external-content-BeJGOgQK.js";
|
|
45
45
|
import { n as triggerMinionRestart, t as scheduleGatewaySigusr1Restart } from "./restart-DTw1wkyF.js";
|
|
46
46
|
import { createRequire } from "node:module";
|
|
@@ -62,6 +62,7 @@ import chokidar from "chokidar";
|
|
|
62
62
|
import { CURRENT_SESSION_VERSION, SessionManager, SettingsManager, createAgentSession, createCodingTools, createEditTool, createReadTool, createWriteTool, estimateTokens } from "@earendil-works/pi-coding-agent";
|
|
63
63
|
import "yaml";
|
|
64
64
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
65
|
+
import { Bash, InMemoryFs, MountableFs, ReadWriteFs } from "just-bash";
|
|
65
66
|
import { EventEmitter } from "node:events";
|
|
66
67
|
import { spinner } from "@clack/prompts";
|
|
67
68
|
import { createOscProgressController, supportsOscProgress } from "osc-progress";
|
|
@@ -912,7 +913,7 @@ async function getMemorySearchManager(params) {
|
|
|
912
913
|
const wrapper = new FallbackMemoryManager({
|
|
913
914
|
primary,
|
|
914
915
|
fallbackFactory: async () => {
|
|
915
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
916
|
+
const { MemoryIndexManager } = await import("./manager-DvUEsXx3.js").then((n) => n.t);
|
|
916
917
|
return await MemoryIndexManager.get(params);
|
|
917
918
|
}
|
|
918
919
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -925,7 +926,7 @@ async function getMemorySearchManager(params) {
|
|
|
925
926
|
}
|
|
926
927
|
}
|
|
927
928
|
try {
|
|
928
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
929
|
+
const { MemoryIndexManager } = await import("./manager-DvUEsXx3.js").then((n) => n.t);
|
|
929
930
|
return { manager: await MemoryIndexManager.get(params) };
|
|
930
931
|
} catch (err) {
|
|
931
932
|
return {
|
|
@@ -4553,6 +4554,189 @@ function buildLandlockSandboxEnv(workdir) {
|
|
|
4553
4554
|
};
|
|
4554
4555
|
}
|
|
4555
4556
|
//#endregion
|
|
4557
|
+
//#region src/agents/sandbox/tier0/router.ts
|
|
4558
|
+
/**
|
|
4559
|
+
* Tier-0 routing + interpreter-limitation heuristics.
|
|
4560
|
+
*
|
|
4561
|
+
* `shouldTryTier0` decides — cheaply, before running anything — whether a command
|
|
4562
|
+
* is a candidate for the in-process virtual sandbox. It is CONSERVATIVE: anything
|
|
4563
|
+
* that needs the network, a real runtime/toolchain, a privileged syscall, or an
|
|
4564
|
+
* external binary that lives outside the virtual command set escalates straight
|
|
4565
|
+
* to Docker. When tier-0 is tried and just-bash can't serve it, the exec result
|
|
4566
|
+
* is flagged `unsupported` (see isInterpreterLimitation) and the caller escalates.
|
|
4567
|
+
*/
|
|
4568
|
+
const ESCALATE_PATTERNS = [
|
|
4569
|
+
/\b(curl|wget|nc|ncat|netcat|ssh|scp|sftp|rsync|ping|dig|nslookup|host)\b/,
|
|
4570
|
+
/\b(python3?|pip3?|node|npm|pnpm|yarn|bun|deno|ruby|perl|php|cargo|rustc|go|gcc|g\+\+|cc|clang|make|cmake|java|javac|dotnet)\b/,
|
|
4571
|
+
/\b(apt|apt-get|dpkg|yum|dnf|apk|brew|sudo|su|systemctl|service|mount|umount|chroot|insmod|modprobe|iptables)\b/,
|
|
4572
|
+
/\b(docker|kubectl|helm|git|gh|aws|gcloud|az|terraform|ffmpeg|convert|magick|pandoc)\b/,
|
|
4573
|
+
/(^|\s|=)\/(dev|proc|sys)\//,
|
|
4574
|
+
/<\(|>\(/
|
|
4575
|
+
];
|
|
4576
|
+
function shouldTryTier0(command) {
|
|
4577
|
+
const cmd = command.trim();
|
|
4578
|
+
if (!cmd) return false;
|
|
4579
|
+
for (const re of ESCALATE_PATTERNS) if (re.test(cmd)) return false;
|
|
4580
|
+
return true;
|
|
4581
|
+
}
|
|
4582
|
+
/**
|
|
4583
|
+
* Distinguish "just-bash can't do this" from "the user's command legitimately
|
|
4584
|
+
* failed". Known limitations in just-bash@3.0.1 include `$(( ))` arithmetic
|
|
4585
|
+
* expansion (trips its own defense-in-depth `node:module` guard) and any
|
|
4586
|
+
* unimplemented builtin. These must escalate to Docker, not surface as failures.
|
|
4587
|
+
*/
|
|
4588
|
+
function isInterpreterLimitation(stderr) {
|
|
4589
|
+
if (!stderr) return false;
|
|
4590
|
+
return /security violation/i.test(stderr) || /indicates a bug in just-bash/i.test(stderr) || /\bcommand not found\b/i.test(stderr) || /not (yet )?(supported|implemented)/i.test(stderr) || /unknown command/i.test(stderr);
|
|
4591
|
+
}
|
|
4592
|
+
//#endregion
|
|
4593
|
+
//#region src/agents/sandbox/tier0/virtual-sandbox.ts
|
|
4594
|
+
/**
|
|
4595
|
+
* Tier-0 virtual sandbox — an in-process bash backend powered by just-bash.
|
|
4596
|
+
*
|
|
4597
|
+
* This is the cheap/fast tier in front of the Docker sandbox. For the high-volume
|
|
4598
|
+
* "safe" majority of agent shell calls (string munging, fs reads/writes in the
|
|
4599
|
+
* workspace, grep/sed/jq-style pipelines) it runs the command in-process against
|
|
4600
|
+
* an in-memory shell with the real workspace dir mounted — no container spawn.
|
|
4601
|
+
*
|
|
4602
|
+
* Correctness: the agent's real workspace dir is mounted (read-write, symlink-
|
|
4603
|
+
* blocked, root-jailed via just-bash's ReadWriteFs) at the container workdir, so
|
|
4604
|
+
* file visibility is identical to the Docker path. `/tmp` etc. live on an
|
|
4605
|
+
* InMemoryFs base. Network and python are OFF by default (just-bash defaults).
|
|
4606
|
+
*
|
|
4607
|
+
* Anything just-bash can't serve (an unimplemented builtin, an internal error)
|
|
4608
|
+
* sets `unsupported: true`; callers MUST escalate those to the Docker backend.
|
|
4609
|
+
* See ./router.ts for the routing + interpreter-limitation heuristics.
|
|
4610
|
+
*/
|
|
4611
|
+
var Tier0VirtualSandbox = class {
|
|
4612
|
+
constructor() {
|
|
4613
|
+
this.instances = /* @__PURE__ */ new Map();
|
|
4614
|
+
}
|
|
4615
|
+
getInstance(req) {
|
|
4616
|
+
const existing = this.instances.get(req.scopeKey);
|
|
4617
|
+
if (existing && existing.workspaceHostDir === req.workspaceHostDir && existing.workdir === req.workdir) {
|
|
4618
|
+
existing.lastUsed = Date.now();
|
|
4619
|
+
return existing.bash;
|
|
4620
|
+
}
|
|
4621
|
+
const fs = new MountableFs({ base: new InMemoryFs() });
|
|
4622
|
+
fs.mount(req.workdir, new ReadWriteFs({ root: req.workspaceHostDir }));
|
|
4623
|
+
const bash = new Bash({
|
|
4624
|
+
fs,
|
|
4625
|
+
cwd: req.workdir,
|
|
4626
|
+
env: {
|
|
4627
|
+
LANG: "C.UTF-8",
|
|
4628
|
+
...req.env
|
|
4629
|
+
},
|
|
4630
|
+
executionLimits: {
|
|
4631
|
+
maxCommandCount: 1e4,
|
|
4632
|
+
maxLoopIterations: 1e6
|
|
4633
|
+
}
|
|
4634
|
+
});
|
|
4635
|
+
const inst = {
|
|
4636
|
+
bash,
|
|
4637
|
+
workspaceHostDir: req.workspaceHostDir,
|
|
4638
|
+
workdir: req.workdir,
|
|
4639
|
+
lastUsed: Date.now()
|
|
4640
|
+
};
|
|
4641
|
+
this.instances.set(req.scopeKey, inst);
|
|
4642
|
+
return bash;
|
|
4643
|
+
}
|
|
4644
|
+
async exec(req) {
|
|
4645
|
+
const startedAt = Date.now();
|
|
4646
|
+
let bash;
|
|
4647
|
+
try {
|
|
4648
|
+
bash = this.getInstance(req);
|
|
4649
|
+
} catch {
|
|
4650
|
+
return {
|
|
4651
|
+
status: "failed",
|
|
4652
|
+
exitCode: null,
|
|
4653
|
+
durationMs: Date.now() - startedAt,
|
|
4654
|
+
aggregated: "",
|
|
4655
|
+
timedOut: false,
|
|
4656
|
+
unsupported: true
|
|
4657
|
+
};
|
|
4658
|
+
}
|
|
4659
|
+
try {
|
|
4660
|
+
const result = await withTimeout$3(bash.exec(req.command, {
|
|
4661
|
+
cwd: req.workdir,
|
|
4662
|
+
env: req.env
|
|
4663
|
+
}), req.timeoutSec ? req.timeoutSec * 1e3 : void 0);
|
|
4664
|
+
const durationMs = Date.now() - startedAt;
|
|
4665
|
+
const combined = [result.stdout, result.stderr].filter(Boolean).join("").trim();
|
|
4666
|
+
if (result.exitCode === 0) return {
|
|
4667
|
+
status: "completed",
|
|
4668
|
+
exitCode: 0,
|
|
4669
|
+
durationMs,
|
|
4670
|
+
aggregated: combined,
|
|
4671
|
+
timedOut: false,
|
|
4672
|
+
unsupported: false
|
|
4673
|
+
};
|
|
4674
|
+
return {
|
|
4675
|
+
status: "failed",
|
|
4676
|
+
exitCode: result.exitCode,
|
|
4677
|
+
durationMs,
|
|
4678
|
+
aggregated: combined,
|
|
4679
|
+
timedOut: false,
|
|
4680
|
+
unsupported: isInterpreterLimitation(result.stderr)
|
|
4681
|
+
};
|
|
4682
|
+
} catch (err) {
|
|
4683
|
+
const timedOut = err instanceof TimeoutError;
|
|
4684
|
+
return {
|
|
4685
|
+
status: "failed",
|
|
4686
|
+
exitCode: null,
|
|
4687
|
+
durationMs: Date.now() - startedAt,
|
|
4688
|
+
aggregated: "",
|
|
4689
|
+
timedOut,
|
|
4690
|
+
unsupported: !timedOut
|
|
4691
|
+
};
|
|
4692
|
+
}
|
|
4693
|
+
}
|
|
4694
|
+
dispose(scopeKey) {
|
|
4695
|
+
if (scopeKey) this.instances.delete(scopeKey);
|
|
4696
|
+
else this.instances.clear();
|
|
4697
|
+
}
|
|
4698
|
+
/** test/inspection helper */
|
|
4699
|
+
get liveInstances() {
|
|
4700
|
+
return this.instances.size;
|
|
4701
|
+
}
|
|
4702
|
+
};
|
|
4703
|
+
var TimeoutError = class extends Error {};
|
|
4704
|
+
function withTimeout$3(p, ms) {
|
|
4705
|
+
if (!ms) return p;
|
|
4706
|
+
return new Promise((resolve, reject) => {
|
|
4707
|
+
const timer = setTimeout(() => reject(new TimeoutError()), ms);
|
|
4708
|
+
p.then((value) => {
|
|
4709
|
+
clearTimeout(timer);
|
|
4710
|
+
resolve(value);
|
|
4711
|
+
}, (error) => {
|
|
4712
|
+
clearTimeout(timer);
|
|
4713
|
+
reject(error);
|
|
4714
|
+
});
|
|
4715
|
+
});
|
|
4716
|
+
}
|
|
4717
|
+
//#endregion
|
|
4718
|
+
//#region src/agents/sandbox/tier0/registry.ts
|
|
4719
|
+
let singleton$1;
|
|
4720
|
+
function getTier0Sandbox() {
|
|
4721
|
+
if (!singleton$1) singleton$1 = new Tier0VirtualSandbox();
|
|
4722
|
+
return singleton$1;
|
|
4723
|
+
}
|
|
4724
|
+
/**
|
|
4725
|
+
* Resolve the tier-0 binding for an exec, or undefined to use the Docker/host
|
|
4726
|
+
* path. `workspaceHostDir` is the real sandbox workspace dir (mounted into the
|
|
4727
|
+
* Docker container too), so tier-0 sees the same files.
|
|
4728
|
+
*/
|
|
4729
|
+
function resolveTier0Binding(params) {
|
|
4730
|
+
if (!params.workspaceHostDir) return;
|
|
4731
|
+
const sandboxCfg = resolveSandboxConfigForAgent(params.config ?? loadConfig(), params.agentId);
|
|
4732
|
+
if (!sandboxCfg.tier0.enabled) return;
|
|
4733
|
+
if (sandboxCfg.workspaceAccess === "ro") return;
|
|
4734
|
+
return {
|
|
4735
|
+
backend: getTier0Sandbox(),
|
|
4736
|
+
workspaceHostDir: params.workspaceHostDir
|
|
4737
|
+
};
|
|
4738
|
+
}
|
|
4739
|
+
//#endregion
|
|
4556
4740
|
//#region src/agents/sessions/session-slug.ts
|
|
4557
4741
|
const SLUG_ADJECTIVES = [
|
|
4558
4742
|
"amber",
|
|
@@ -6066,10 +6250,112 @@ function emitExecSystemEvent(text, opts) {
|
|
|
6066
6250
|
});
|
|
6067
6251
|
requestHeartbeatNow({ reason: "exec-event" });
|
|
6068
6252
|
}
|
|
6253
|
+
/**
|
|
6254
|
+
* Tier-0 fast path: run `execCommand` in the in-process virtual sandbox. Returns
|
|
6255
|
+
* a completed ExecProcessHandle on success, or null when just-bash can't serve
|
|
6256
|
+
* the command (so the caller escalates to Docker). Output is sanitized and a
|
|
6257
|
+
* ProcessSession is registered exactly like the normal path, so downstream
|
|
6258
|
+
* session listing / tailing is unaffected.
|
|
6259
|
+
*/
|
|
6260
|
+
async function tryTier0Exec(args) {
|
|
6261
|
+
const { opts, sessionId, startedAt, execCommand } = args;
|
|
6262
|
+
const tier0 = opts.tier0;
|
|
6263
|
+
const sandbox = opts.sandbox;
|
|
6264
|
+
if (!tier0 || !sandbox) return null;
|
|
6265
|
+
const workdir = opts.containerWorkdir ?? sandbox.containerWorkdir;
|
|
6266
|
+
let outcome;
|
|
6267
|
+
try {
|
|
6268
|
+
outcome = await tier0.backend.exec({
|
|
6269
|
+
command: execCommand,
|
|
6270
|
+
workdir,
|
|
6271
|
+
workspaceHostDir: tier0.workspaceHostDir,
|
|
6272
|
+
env: opts.env,
|
|
6273
|
+
scopeKey: sandbox.containerName,
|
|
6274
|
+
timeoutSec: opts.timeoutSec
|
|
6275
|
+
});
|
|
6276
|
+
} catch {
|
|
6277
|
+
return null;
|
|
6278
|
+
}
|
|
6279
|
+
if (outcome.unsupported) return null;
|
|
6280
|
+
const session = {
|
|
6281
|
+
id: sessionId,
|
|
6282
|
+
command: opts.command,
|
|
6283
|
+
scopeKey: opts.scopeKey,
|
|
6284
|
+
sessionKey: opts.sessionKey,
|
|
6285
|
+
notifyOnExit: opts.notifyOnExit,
|
|
6286
|
+
notifyOnExitEmptySuccess: opts.notifyOnExitEmptySuccess === true,
|
|
6287
|
+
exitNotified: false,
|
|
6288
|
+
child: void 0,
|
|
6289
|
+
stdin: void 0,
|
|
6290
|
+
pid: void 0,
|
|
6291
|
+
startedAt,
|
|
6292
|
+
cwd: opts.workdir,
|
|
6293
|
+
maxOutputChars: opts.maxOutput,
|
|
6294
|
+
pendingMaxOutputChars: opts.pendingMaxOutput,
|
|
6295
|
+
totalOutputChars: 0,
|
|
6296
|
+
pendingStdout: [],
|
|
6297
|
+
pendingStderr: [],
|
|
6298
|
+
pendingStdoutChars: 0,
|
|
6299
|
+
pendingStderrChars: 0,
|
|
6300
|
+
aggregated: "",
|
|
6301
|
+
tail: "",
|
|
6302
|
+
exited: false,
|
|
6303
|
+
exitCode: void 0,
|
|
6304
|
+
exitSignal: void 0,
|
|
6305
|
+
truncated: false,
|
|
6306
|
+
backgrounded: false
|
|
6307
|
+
};
|
|
6308
|
+
addSession(session);
|
|
6309
|
+
const sanitized = stripAnsi(sanitizeBinaryOutput(outcome.aggregated));
|
|
6310
|
+
for (const chunk of chunkString(sanitized)) appendOutput(session, "stdout", chunk);
|
|
6311
|
+
const status = outcome.status === "completed" ? "completed" : "failed";
|
|
6312
|
+
markExited(session, outcome.exitCode ?? 0, null, status);
|
|
6313
|
+
const durationMs = Date.now() - startedAt;
|
|
6314
|
+
const aggregated = session.aggregated.trim();
|
|
6315
|
+
let result;
|
|
6316
|
+
if (status === "completed") {
|
|
6317
|
+
const exitCode = outcome.exitCode ?? 0;
|
|
6318
|
+
result = {
|
|
6319
|
+
status: "completed",
|
|
6320
|
+
exitCode,
|
|
6321
|
+
exitSignal: null,
|
|
6322
|
+
durationMs,
|
|
6323
|
+
aggregated: aggregated + (exitCode !== 0 ? `\n\n(Command exited with code ${exitCode})` : ""),
|
|
6324
|
+
timedOut: false
|
|
6325
|
+
};
|
|
6326
|
+
} else {
|
|
6327
|
+
const reason = outcome.timedOut ? `Command timed out after ${opts.timeoutSec} seconds` : `Command exited with code ${outcome.exitCode ?? 1}`;
|
|
6328
|
+
result = {
|
|
6329
|
+
status: "failed",
|
|
6330
|
+
exitCode: outcome.exitCode,
|
|
6331
|
+
exitSignal: null,
|
|
6332
|
+
durationMs,
|
|
6333
|
+
aggregated,
|
|
6334
|
+
timedOut: outcome.timedOut,
|
|
6335
|
+
reason: aggregated ? `${aggregated}\n\n${reason}` : reason
|
|
6336
|
+
};
|
|
6337
|
+
}
|
|
6338
|
+
return {
|
|
6339
|
+
session,
|
|
6340
|
+
startedAt,
|
|
6341
|
+
pid: void 0,
|
|
6342
|
+
promise: Promise.resolve(result),
|
|
6343
|
+
kill: () => {}
|
|
6344
|
+
};
|
|
6345
|
+
}
|
|
6069
6346
|
async function runExecProcess(opts) {
|
|
6070
6347
|
const startedAt = Date.now();
|
|
6071
6348
|
const sessionId = createSessionSlug();
|
|
6072
6349
|
const execCommand = opts.execCommand ?? opts.command;
|
|
6350
|
+
if (opts.tier0 && opts.sandbox && !opts.usePty && shouldTryTier0(execCommand)) {
|
|
6351
|
+
const tier0Handle = await tryTier0Exec({
|
|
6352
|
+
opts,
|
|
6353
|
+
sessionId,
|
|
6354
|
+
startedAt,
|
|
6355
|
+
execCommand
|
|
6356
|
+
});
|
|
6357
|
+
if (tier0Handle) return tier0Handle;
|
|
6358
|
+
}
|
|
6073
6359
|
const supervisor = getProcessSupervisor();
|
|
6074
6360
|
const session = {
|
|
6075
6361
|
id: sessionId,
|
|
@@ -6849,7 +7135,11 @@ function createExecTool(defaults) {
|
|
|
6849
7135
|
scopeKey: defaults?.scopeKey,
|
|
6850
7136
|
sessionKey: notifySessionKey,
|
|
6851
7137
|
timeoutSec: effectiveTimeout,
|
|
6852
|
-
onUpdate
|
|
7138
|
+
onUpdate,
|
|
7139
|
+
tier0: sandbox ? resolveTier0Binding({
|
|
7140
|
+
agentId,
|
|
7141
|
+
workspaceHostDir: sandbox.workspaceDir
|
|
7142
|
+
}) : void 0
|
|
6853
7143
|
});
|
|
6854
7144
|
let yielded = false;
|
|
6855
7145
|
let yieldTimer = null;
|
|
@@ -7943,7 +8233,7 @@ const TOOL_REGISTRY = {
|
|
|
7943
8233
|
multi: true,
|
|
7944
8234
|
modulePath: "../../../memory/knowledge-graph.js"
|
|
7945
8235
|
},
|
|
7946
|
-
load: () => import("./knowledge-graph-
|
|
8236
|
+
load: () => import("./knowledge-graph-BFnL_feN.js").then((n) => n.i)
|
|
7947
8237
|
},
|
|
7948
8238
|
"summarize": {
|
|
7949
8239
|
meta: {
|
|
@@ -10800,7 +11090,7 @@ function shouldEmitLoopWarning(state, warningKey, count) {
|
|
|
10800
11090
|
async function recordLoopOutcome(args) {
|
|
10801
11091
|
if (!args.ctx?.sessionKey) return;
|
|
10802
11092
|
try {
|
|
10803
|
-
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-
|
|
11093
|
+
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Cj5nMvNL.js").then((n) => n.t);
|
|
10804
11094
|
const { recordToolCallOutcome } = await import("./tool-loop-detection-DLKwnZY5.js");
|
|
10805
11095
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
10806
11096
|
sessionKey: args.ctx.sessionKey,
|
|
@@ -10848,8 +11138,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
10848
11138
|
const toolName = normalizeToolName(args.toolName || "tool");
|
|
10849
11139
|
const params = args.params;
|
|
10850
11140
|
if (args.ctx?.sessionKey) {
|
|
10851
|
-
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-
|
|
10852
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
11141
|
+
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Cj5nMvNL.js").then((n) => n.t);
|
|
11142
|
+
const { logToolLoopAction } = await import("./diagnostic-CVAiT8Yi.js").then((n) => n.n);
|
|
10853
11143
|
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-DLKwnZY5.js");
|
|
10854
11144
|
const sessionState = getDiagnosticSessionState({
|
|
10855
11145
|
sessionKey: args.ctx.sessionKey,
|
|
@@ -14032,11 +14322,12 @@ const AGENT_TYPE_SECTIONS = [
|
|
|
14032
14322
|
if (!trimmed) return [];
|
|
14033
14323
|
return [
|
|
14034
14324
|
"## Skills (mandatory)",
|
|
14035
|
-
"Before replying: scan <available_skills>
|
|
14036
|
-
|
|
14037
|
-
"- If multiple could apply: choose the most specific one, then
|
|
14038
|
-
"- If none clearly apply: do not
|
|
14039
|
-
|
|
14325
|
+
"Before replying: scan the <available_skills> entries.",
|
|
14326
|
+
"- If exactly one skill clearly applies: load its full instructions, then follow it.",
|
|
14327
|
+
"- If multiple could apply: choose the most specific one, then load/follow it.",
|
|
14328
|
+
"- If none clearly apply: do not load any skill.",
|
|
14329
|
+
`To load a skill's full instructions: if they aren't already shown, call the \`skill_view\` tool with the skill name; otherwise read its SKILL.md at <location> with \`${ctx.readToolName}\`.`,
|
|
14330
|
+
"Constraints: never load more than one skill up front; only load after selecting.",
|
|
14040
14331
|
trimmed,
|
|
14041
14332
|
""
|
|
14042
14333
|
];
|
|
@@ -14181,6 +14472,40 @@ const AGENT_TYPE_SECTIONS = [
|
|
|
14181
14472
|
}
|
|
14182
14473
|
];
|
|
14183
14474
|
//#endregion
|
|
14475
|
+
//#region src/agents/sections/behaviour.ts
|
|
14476
|
+
/**
|
|
14477
|
+
* Identity-layer section that injects the agent's self-maintained operating
|
|
14478
|
+
* rules. The rules live at `<workspaceDir>/prompts/behaviour.md` and are
|
|
14479
|
+
* written by the `update_behaviour` tool. There is intentionally no global
|
|
14480
|
+
* fallback file — the section renders nothing unless the agent has authored
|
|
14481
|
+
* its own behaviour.md.
|
|
14482
|
+
*/
|
|
14483
|
+
const BEHAVIOUR_SECTIONS = [{
|
|
14484
|
+
id: "behaviour",
|
|
14485
|
+
layer: "identity",
|
|
14486
|
+
order: 2200,
|
|
14487
|
+
modes: ["full", "minimal"],
|
|
14488
|
+
cacheable: false,
|
|
14489
|
+
header: "## Operating Rules (self-maintained)",
|
|
14490
|
+
source: "file",
|
|
14491
|
+
render: (ctx) => {
|
|
14492
|
+
const workspaceDir = ctx.params.workspaceDir;
|
|
14493
|
+
if (!workspaceDir) return [];
|
|
14494
|
+
const content = resolveProse({
|
|
14495
|
+
layer: "identity",
|
|
14496
|
+
id: "behaviour",
|
|
14497
|
+
agentWorkspaceDir: workspaceDir
|
|
14498
|
+
})?.content.trim();
|
|
14499
|
+
if (!content) return [];
|
|
14500
|
+
return [
|
|
14501
|
+
"## Operating Rules (self-maintained)",
|
|
14502
|
+
"",
|
|
14503
|
+
content,
|
|
14504
|
+
""
|
|
14505
|
+
];
|
|
14506
|
+
}
|
|
14507
|
+
}];
|
|
14508
|
+
//#endregion
|
|
14184
14509
|
//#region src/agents/sections/identity.ts
|
|
14185
14510
|
/** Identity-layer section definitions (3 sections). */
|
|
14186
14511
|
const IDENTITY_SECTIONS = [
|
|
@@ -15178,6 +15503,7 @@ function getBuiltinRegistry() {
|
|
|
15178
15503
|
_registry.registerAll(PLATFORM_SECTIONS);
|
|
15179
15504
|
_registry.registerAll(AGENT_TYPE_SECTIONS);
|
|
15180
15505
|
_registry.registerAll(IDENTITY_SECTIONS);
|
|
15506
|
+
_registry.registerAll(BEHAVIOUR_SECTIONS);
|
|
15181
15507
|
_registry.registerAll(USER_SECTIONS);
|
|
15182
15508
|
_registry.registerAll(SESSION_SECTIONS);
|
|
15183
15509
|
return _registry;
|
|
@@ -20046,7 +20372,7 @@ queueMicrotask(() => {
|
|
|
20046
20372
|
await ensureOpenClawModelsJson(cfg);
|
|
20047
20373
|
} catch {}
|
|
20048
20374
|
try {
|
|
20049
|
-
const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-
|
|
20375
|
+
const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-BV73T1am.js").then((n) => n.r);
|
|
20050
20376
|
const agentDir = resolveOpenClawAgentDir();
|
|
20051
20377
|
const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
|
|
20052
20378
|
applyDiscoveredContextWindows({
|
|
@@ -20996,6 +21322,35 @@ async function prepareSessionManagerForRun(params) {
|
|
|
20996
21322
|
}
|
|
20997
21323
|
}
|
|
20998
21324
|
//#endregion
|
|
21325
|
+
//#region src/agents/pi-embedded-runner/tool-result-reduce.ts
|
|
21326
|
+
/** Pure text reducer for oversized/repetitive tool output. Never throws. */
|
|
21327
|
+
function reduceToolOutputText(text, opts) {
|
|
21328
|
+
let lines = text.split("\n");
|
|
21329
|
+
if (opts.collapseRuns) {
|
|
21330
|
+
const collapsed = [];
|
|
21331
|
+
let i = 0;
|
|
21332
|
+
while (i < lines.length) {
|
|
21333
|
+
let j = i + 1;
|
|
21334
|
+
while (j < lines.length && lines[j] === lines[i]) j += 1;
|
|
21335
|
+
const run = j - i;
|
|
21336
|
+
if (run >= 5) collapsed.push(`${lines[i]} (repeated ${run}×)`);
|
|
21337
|
+
else for (let k = i; k < j; k++) collapsed.push(lines[k]);
|
|
21338
|
+
i = j;
|
|
21339
|
+
}
|
|
21340
|
+
lines = collapsed;
|
|
21341
|
+
}
|
|
21342
|
+
if (lines.length <= opts.maxLines) return lines.join("\n");
|
|
21343
|
+
if (opts.headLines + opts.tailLines >= lines.length) return lines.join("\n");
|
|
21344
|
+
const head = lines.slice(0, opts.headLines);
|
|
21345
|
+
const tail = lines.slice(lines.length - opts.tailLines);
|
|
21346
|
+
const elided = lines.length - head.length - tail.length;
|
|
21347
|
+
return [
|
|
21348
|
+
...head,
|
|
21349
|
+
`… ${elided} lines elided …`,
|
|
21350
|
+
...tail
|
|
21351
|
+
].join("\n");
|
|
21352
|
+
}
|
|
21353
|
+
//#endregion
|
|
20999
21354
|
//#region src/agents/pi-embedded-runner/tool-result-context-guard.ts
|
|
21000
21355
|
const CHARS_PER_TOKEN_ESTIMATE = 4;
|
|
21001
21356
|
const CONTEXT_INPUT_HEADROOM_RATIO = .75;
|
|
@@ -21138,8 +21493,31 @@ function applyMessageMutationInPlace(target, source) {
|
|
|
21138
21493
|
for (const key of Object.keys(targetRecord)) if (!(key in sourceRecord)) delete targetRecord[key];
|
|
21139
21494
|
Object.assign(targetRecord, sourceRecord);
|
|
21140
21495
|
}
|
|
21496
|
+
const REDUCE_MAX_LINES = 200;
|
|
21497
|
+
const REDUCE_HEAD_LINES = 40;
|
|
21498
|
+
const REDUCE_TAIL_LINES = 40;
|
|
21499
|
+
/**
|
|
21500
|
+
* Run the pure line-reducer over each tool-result message's text content,
|
|
21501
|
+
* mutating messages in place. Skips reductions that wouldn't shrink the text.
|
|
21502
|
+
*/
|
|
21503
|
+
function reduceToolResultOutputsInPlace(messages) {
|
|
21504
|
+
for (const message of messages) {
|
|
21505
|
+
if (!isToolResultMessage(message)) continue;
|
|
21506
|
+
const rawText = getToolResultText(message);
|
|
21507
|
+
if (!rawText) continue;
|
|
21508
|
+
const reduced = reduceToolOutputText(rawText, {
|
|
21509
|
+
maxLines: REDUCE_MAX_LINES,
|
|
21510
|
+
headLines: REDUCE_HEAD_LINES,
|
|
21511
|
+
tailLines: REDUCE_TAIL_LINES,
|
|
21512
|
+
collapseRuns: true
|
|
21513
|
+
});
|
|
21514
|
+
if (reduced === rawText) continue;
|
|
21515
|
+
applyMessageMutationInPlace(message, replaceToolResultText(message, reduced));
|
|
21516
|
+
}
|
|
21517
|
+
}
|
|
21141
21518
|
function enforceToolResultContextBudgetInPlace(params) {
|
|
21142
|
-
const { messages, contextBudgetChars, maxSingleToolResultChars } = params;
|
|
21519
|
+
const { messages, contextBudgetChars, maxSingleToolResultChars, reduceOutput } = params;
|
|
21520
|
+
if (reduceOutput) reduceToolResultOutputsInPlace(messages);
|
|
21143
21521
|
for (const message of messages) {
|
|
21144
21522
|
if (!isToolResultMessage(message)) continue;
|
|
21145
21523
|
applyMessageMutationInPlace(message, truncateToolResultToChars(message, maxSingleToolResultChars));
|
|
@@ -21161,6 +21539,7 @@ function enforceToolResultContextBudgetInPlace(params) {
|
|
|
21161
21539
|
* @returns An async function suitable for use as Agent's transformContext callback.
|
|
21162
21540
|
*/
|
|
21163
21541
|
function createToolResultContextGuardTransform(params) {
|
|
21542
|
+
const reduceOutput = params.reduceOutput !== false;
|
|
21164
21543
|
const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
|
|
21165
21544
|
const contextBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * CONTEXT_INPUT_HEADROOM_RATIO));
|
|
21166
21545
|
const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
|
|
@@ -21171,7 +21550,8 @@ function createToolResultContextGuardTransform(params) {
|
|
|
21171
21550
|
enforceToolResultContextBudgetInPlace({
|
|
21172
21551
|
messages: contextMessages,
|
|
21173
21552
|
contextBudgetChars,
|
|
21174
|
-
maxSingleToolResultChars
|
|
21553
|
+
maxSingleToolResultChars,
|
|
21554
|
+
reduceOutput
|
|
21175
21555
|
});
|
|
21176
21556
|
return contextMessages;
|
|
21177
21557
|
};
|
|
@@ -21267,7 +21647,10 @@ async function createRunSession(params, env) {
|
|
|
21267
21647
|
applySystemPromptOverrideToSession(session, env.systemPromptText);
|
|
21268
21648
|
if (!session) throw new Error("Embedded agent session missing");
|
|
21269
21649
|
const activeSession = session;
|
|
21270
|
-
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
21650
|
+
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
21651
|
+
contextWindowTokens: Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? 2e5)),
|
|
21652
|
+
reduceOutput: params.config?.tools?.outputReduce?.enabled !== false
|
|
21653
|
+
});
|
|
21271
21654
|
activeSession.agent.transformContext = contextGuardTransform;
|
|
21272
21655
|
const cacheTrace = createCacheTrace({
|
|
21273
21656
|
cfg: params.config,
|
|
@@ -24286,7 +24669,7 @@ async function routeReply(params) {
|
|
|
24286
24669
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
24287
24670
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
24288
24671
|
try {
|
|
24289
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
24672
|
+
const { deliverOutboundPayloads } = await import("./deliver-DiDYkpmh.js").then((n) => n.n);
|
|
24290
24673
|
return {
|
|
24291
24674
|
ok: true,
|
|
24292
24675
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -28125,7 +28508,7 @@ function formatAudioTranscripts(outputs) {
|
|
|
28125
28508
|
const log$6 = createSubsystemLogger("models/model-catalog");
|
|
28126
28509
|
let modelCatalogPromise = null;
|
|
28127
28510
|
let hasLoggedModelCatalogError = false;
|
|
28128
|
-
const defaultImportPiSdk = () => import("./pi-model-discovery-
|
|
28511
|
+
const defaultImportPiSdk = () => import("./pi-model-discovery-BV73T1am.js").then((n) => n.r);
|
|
28129
28512
|
let importPiSdk = defaultImportPiSdk;
|
|
28130
28513
|
const CODEX_PROVIDER = "openai-codex";
|
|
28131
28514
|
const OPENAI_CODEX_GPT53_MODEL_ID = "gpt-5.3-codex";
|
|
@@ -43847,7 +44230,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
43847
44230
|
return;
|
|
43848
44231
|
}
|
|
43849
44232
|
try {
|
|
43850
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44233
|
+
const { deliverOutboundPayloads } = await import("./deliver-DiDYkpmh.js").then((n) => n.n);
|
|
43851
44234
|
await deliverOutboundPayloads({
|
|
43852
44235
|
cfg: params.cfg,
|
|
43853
44236
|
channel,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { l as normalizeAgentId } from "./session-key-BcXqsG0l.js";
|
|
2
2
|
import { n as runExec, t as runCommandWithTimeout } from "./exec-ByW9LeFK.js";
|
|
3
|
-
import { i as loadConfig, l as writeConfigFile, s as readConfigFileSnapshotForWrite } from "./io-
|
|
4
|
-
import "./config-
|
|
5
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
3
|
+
import { i as loadConfig, l as writeConfigFile, s as readConfigFileSnapshotForWrite } from "./io-CpUiX-Lv.js";
|
|
4
|
+
import "./config-DJTLRK5S.js";
|
|
5
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Ed0F1N_m.js";
|
|
6
6
|
import { existsSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { resolve } from "node:path";
|
|
8
8
|
//#region src/cli/tools-cli.install.ts
|