@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
|
@@ -46,6 +46,7 @@ import readline, { createInterface } from "node:readline";
|
|
|
46
46
|
import { Readable } from "node:stream";
|
|
47
47
|
import chokidar from "chokidar";
|
|
48
48
|
import { Type as Type$1 } from "@sinclair/typebox";
|
|
49
|
+
import { Bash, InMemoryFs, MountableFs, ReadWriteFs } from "just-bash";
|
|
49
50
|
import fs$2 from "fs/promises";
|
|
50
51
|
import os$1 from "os";
|
|
51
52
|
import path$1 from "path";
|
|
@@ -1297,6 +1298,7 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
1297
1298
|
]).optional(),
|
|
1298
1299
|
perSession: z.boolean().optional(),
|
|
1299
1300
|
workspaceRoot: z.string().optional(),
|
|
1301
|
+
tier0: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
1300
1302
|
docker: SandboxDockerSchema,
|
|
1301
1303
|
browser: SandboxBrowserSchema,
|
|
1302
1304
|
prune: SandboxPruneSchema
|
|
@@ -1498,7 +1500,8 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
1498
1500
|
exec: ToolExecSchema,
|
|
1499
1501
|
fs: ToolFsSchema,
|
|
1500
1502
|
subagents: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
1501
|
-
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional()
|
|
1503
|
+
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
1504
|
+
outputReduce: z.object({ enabled: z.boolean().optional() }).strict().optional()
|
|
1502
1505
|
}).strict().superRefine((value, ctx) => {
|
|
1503
1506
|
addAllowAlsoAllowConflictIssue(value, ctx, "tools cannot set both allow and alsoAllow in the same scope (merge alsoAllow into allow, or remove allow and use profile + alsoAllow)");
|
|
1504
1507
|
}).optional();
|
|
@@ -2709,7 +2712,7 @@ function notifyMcpToolsChanged() {
|
|
|
2709
2712
|
}
|
|
2710
2713
|
}
|
|
2711
2714
|
var tools$1, sseSubscribers, EMPTY_OBJECT_SCHEMA;
|
|
2712
|
-
var init_registry$
|
|
2715
|
+
var init_registry$7 = __esmMin((() => {
|
|
2713
2716
|
tools$1 = /* @__PURE__ */ new Map();
|
|
2714
2717
|
sseSubscribers = /* @__PURE__ */ new Set();
|
|
2715
2718
|
EMPTY_OBJECT_SCHEMA = {
|
|
@@ -3463,9 +3466,9 @@ function createPluginRegistry(registryParams) {
|
|
|
3463
3466
|
registerTypedHook
|
|
3464
3467
|
};
|
|
3465
3468
|
}
|
|
3466
|
-
var init_registry$
|
|
3469
|
+
var init_registry$6 = __esmMin((() => {
|
|
3467
3470
|
init_instant_commands();
|
|
3468
|
-
init_registry$
|
|
3471
|
+
init_registry$7();
|
|
3469
3472
|
init_internal_hooks();
|
|
3470
3473
|
init_utils$2();
|
|
3471
3474
|
init_channel_link_runtime();
|
|
@@ -3499,7 +3502,7 @@ function setActivePluginRuntime(runtime) {
|
|
|
3499
3502
|
}
|
|
3500
3503
|
var REGISTRY_STATE, CONFIG_STATE, RUNTIME_STATE, state$3, configState, runtimeState;
|
|
3501
3504
|
var init_runtime$3 = __esmMin((() => {
|
|
3502
|
-
init_registry$
|
|
3505
|
+
init_registry$6();
|
|
3503
3506
|
REGISTRY_STATE = Symbol.for("minion.pluginRegistryState");
|
|
3504
3507
|
CONFIG_STATE = Symbol.for("minion.pluginRegistryConfig");
|
|
3505
3508
|
RUNTIME_STATE = Symbol.for("minion.activePluginRuntime");
|
|
@@ -3546,7 +3549,7 @@ function normalizeAnyChannelId(raw) {
|
|
|
3546
3549
|
})?.plugin.id ?? null;
|
|
3547
3550
|
}
|
|
3548
3551
|
var CHAT_CHANNEL_ORDER, CHANNEL_IDS, CHAT_CHANNEL_META, CHAT_CHANNEL_ALIASES, normalizeChannelKey;
|
|
3549
|
-
var init_registry$
|
|
3552
|
+
var init_registry$5 = __esmMin((() => {
|
|
3550
3553
|
init_runtime$3();
|
|
3551
3554
|
CHAT_CHANNEL_ORDER = [
|
|
3552
3555
|
"telegram",
|
|
@@ -3968,7 +3971,7 @@ function createSubsystemLogger(subsystem) {
|
|
|
3968
3971
|
}
|
|
3969
3972
|
var SUBSYSTEM_COLORS, SUBSYSTEM_COLOR_OVERRIDES, SUBSYSTEM_PREFIXES_TO_DROP, SUBSYSTEM_MAX_SEGMENTS, CHANNEL_SUBSYSTEM_PREFIXES;
|
|
3970
3973
|
var init_subsystem = __esmMin((() => {
|
|
3971
|
-
init_registry$
|
|
3974
|
+
init_registry$5();
|
|
3972
3975
|
init_globals();
|
|
3973
3976
|
init_runtime$2();
|
|
3974
3977
|
init_progress_line();
|
|
@@ -4197,7 +4200,7 @@ var init_shell_env = __esmMin((() => {
|
|
|
4197
4200
|
//#region src/version.ts
|
|
4198
4201
|
var VERSION;
|
|
4199
4202
|
var init_version$1 = __esmMin((() => {
|
|
4200
|
-
VERSION = "2026.6.
|
|
4203
|
+
VERSION = "2026.6.16-dev";
|
|
4201
4204
|
}));
|
|
4202
4205
|
//#endregion
|
|
4203
4206
|
//#region src/config/agent-dirs.ts
|
|
@@ -14903,6 +14906,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
14903
14906
|
importContacts: z.boolean().optional()
|
|
14904
14907
|
}).strict().optional(),
|
|
14905
14908
|
memorySync: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
14909
|
+
trajectory: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
14906
14910
|
personalAgentObservations: z.object({
|
|
14907
14911
|
enabled: z.boolean().optional(),
|
|
14908
14912
|
dbPath: z.string().optional()
|
|
@@ -15015,6 +15019,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
15015
15019
|
memory: MemorySchema,
|
|
15016
15020
|
skills: z.object({
|
|
15017
15021
|
allowBundled: z.array(z.string()).optional(),
|
|
15022
|
+
progressiveDisclosure: z.boolean().optional(),
|
|
15018
15023
|
load: z.object({
|
|
15019
15024
|
extraDirs: z.array(z.string()).optional(),
|
|
15020
15025
|
watch: z.boolean().optional(),
|
|
@@ -15390,7 +15395,7 @@ function validateConfigObjectWithPluginsBase(raw, opts) {
|
|
|
15390
15395
|
var AVATAR_SCHEME_RE, AVATAR_DATA_RE, AVATAR_HTTP_RE, WINDOWS_ABS_RE;
|
|
15391
15396
|
var init_validation = __esmMin((() => {
|
|
15392
15397
|
init_agent_scope();
|
|
15393
|
-
init_registry$
|
|
15398
|
+
init_registry$5();
|
|
15394
15399
|
init_config_state();
|
|
15395
15400
|
init_manifest_registry();
|
|
15396
15401
|
init_schema_validator();
|
|
@@ -16598,7 +16603,7 @@ function isMarkdownCapableMessageChannel(raw) {
|
|
|
16598
16603
|
}
|
|
16599
16604
|
var INTERNAL_MESSAGE_CHANNEL, MARKDOWN_CAPABLE_CHANNELS, listPluginChannelIds, listDeliverableMessageChannels, listGatewayMessageChannels;
|
|
16600
16605
|
var init_message_channel = __esmMin((() => {
|
|
16601
|
-
init_registry$
|
|
16606
|
+
init_registry$5();
|
|
16602
16607
|
init_client_info();
|
|
16603
16608
|
init_runtime$3();
|
|
16604
16609
|
INTERNAL_MESSAGE_CHANNEL = "webchat";
|
|
@@ -17032,7 +17037,7 @@ function resolveDefaultAgentBoundAccountId(cfg, channelId) {
|
|
|
17032
17037
|
}
|
|
17033
17038
|
var init_bindings = __esmMin((() => {
|
|
17034
17039
|
init_agent_scope();
|
|
17035
|
-
init_registry$
|
|
17040
|
+
init_registry$5();
|
|
17036
17041
|
init_session_key$1();
|
|
17037
17042
|
}));
|
|
17038
17043
|
//#endregion
|
|
@@ -17687,7 +17692,7 @@ function normalizeChannelId(raw) {
|
|
|
17687
17692
|
}
|
|
17688
17693
|
var init_plugins = __esmMin((() => {
|
|
17689
17694
|
init_runtime$3();
|
|
17690
|
-
init_registry$
|
|
17695
|
+
init_registry$5();
|
|
17691
17696
|
init_directory_config();
|
|
17692
17697
|
init_channel_config();
|
|
17693
17698
|
init_allowlist_match();
|
|
@@ -20834,7 +20839,7 @@ var init_dock = __esmMin((() => {
|
|
|
20834
20839
|
init_utils$2();
|
|
20835
20840
|
init_group_mentions();
|
|
20836
20841
|
init_signal$1();
|
|
20837
|
-
init_registry$
|
|
20842
|
+
init_registry$5();
|
|
20838
20843
|
formatLower = (allowFrom) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.toLowerCase());
|
|
20839
20844
|
formatDiscordAllowFrom = (allowFrom) => allowFrom.map((entry) => String(entry).trim().replace(/^<@!?/, "").replace(/>$/, "").replace(/^discord:/i, "").replace(/^user:/i, "").replace(/^pk:/i, "").trim().toLowerCase()).filter(Boolean);
|
|
20840
20845
|
DOCKS = {
|
|
@@ -28441,6 +28446,24 @@ var init_bundled_dir = __esmMin((() => {
|
|
|
28441
28446
|
init_minion_root();
|
|
28442
28447
|
}));
|
|
28443
28448
|
//#endregion
|
|
28449
|
+
//#region src/agents/skills/compact-prompt.ts
|
|
28450
|
+
/**
|
|
28451
|
+
* Render a compact, name+description-only skills listing for progressive
|
|
28452
|
+
* disclosure. The full SKILL.md body is deliberately omitted; the agent is
|
|
28453
|
+
* instructed to load it on demand via the `skill_view` tool. This keeps the
|
|
28454
|
+
* system prompt small when many skills are available.
|
|
28455
|
+
*/
|
|
28456
|
+
function formatSkillsCompact(skills) {
|
|
28457
|
+
if (skills.length === 0) return "";
|
|
28458
|
+
return [
|
|
28459
|
+
"<available_skills>",
|
|
28460
|
+
...skills.map((s) => `- **${s.name}** — ${s.description.trim()}`),
|
|
28461
|
+
"</available_skills>",
|
|
28462
|
+
"Call the `skill_view` tool with a skill name to load its full instructions before using it."
|
|
28463
|
+
].join("\n");
|
|
28464
|
+
}
|
|
28465
|
+
var init_compact_prompt = __esmMin((() => {}));
|
|
28466
|
+
//#endregion
|
|
28444
28467
|
//#region src/shared/config-eval.ts
|
|
28445
28468
|
function isTruthyValue(value) {
|
|
28446
28469
|
if (value === void 0 || value === null) return false;
|
|
@@ -29191,6 +29214,35 @@ function applySkillsPromptLimits(params) {
|
|
|
29191
29214
|
truncatedReason
|
|
29192
29215
|
};
|
|
29193
29216
|
}
|
|
29217
|
+
/**
|
|
29218
|
+
* Resolve whether progressive disclosure is enabled. Default is ON; only an
|
|
29219
|
+
* explicit `false` disables it (inlining full skill bodies in the prompt).
|
|
29220
|
+
*/
|
|
29221
|
+
function resolveProgressiveDisclosure(config, override) {
|
|
29222
|
+
if (override !== void 0) return override;
|
|
29223
|
+
return config?.skills?.progressiveDisclosure !== false;
|
|
29224
|
+
}
|
|
29225
|
+
/**
|
|
29226
|
+
* Map prompt-eligible skill entries to compact `{ name, description, body }`
|
|
29227
|
+
* records. The body is the full SKILL.md text, read from disk on demand; if the
|
|
29228
|
+
* file can't be read we fall back to an empty body (compact mode omits bodies
|
|
29229
|
+
* from the prompt anyway, so this only affects callers that inspect `body`).
|
|
29230
|
+
*/
|
|
29231
|
+
function toCompactSkills(skills) {
|
|
29232
|
+
return skills.map((skill) => {
|
|
29233
|
+
let body = "";
|
|
29234
|
+
try {
|
|
29235
|
+
body = fs.readFileSync(skill.filePath, "utf-8");
|
|
29236
|
+
} catch {
|
|
29237
|
+
body = "";
|
|
29238
|
+
}
|
|
29239
|
+
return {
|
|
29240
|
+
name: skill.name,
|
|
29241
|
+
description: skill.description ?? "",
|
|
29242
|
+
body
|
|
29243
|
+
};
|
|
29244
|
+
});
|
|
29245
|
+
}
|
|
29194
29246
|
function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
29195
29247
|
const eligible = filterSkillEntries(opts?.entries ?? loadSkillEntries(workspaceDir, opts), opts?.config, opts?.skillFilter, opts?.eligibility, opts?.denyFilter);
|
|
29196
29248
|
const resolvedSkills = eligible.filter((entry) => entry.invocation?.disableModelInvocation !== true).map((entry) => entry.skill);
|
|
@@ -29202,7 +29254,7 @@ function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
|
29202
29254
|
const prompt = [
|
|
29203
29255
|
remoteNote,
|
|
29204
29256
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
29205
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
29257
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
29206
29258
|
].filter(Boolean).join("\n");
|
|
29207
29259
|
const skillFilter = normalizeSkillFilter(opts?.skillFilter);
|
|
29208
29260
|
const denyFilter = normalizeSkillFilter(opts?.denyFilter);
|
|
@@ -29229,7 +29281,7 @@ function buildWorkspaceSkillsPrompt(workspaceDir, opts) {
|
|
|
29229
29281
|
return [
|
|
29230
29282
|
remoteNote,
|
|
29231
29283
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
29232
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
29284
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
29233
29285
|
].filter(Boolean).join("\n");
|
|
29234
29286
|
}
|
|
29235
29287
|
function resolveSkillsPromptForRun(params) {
|
|
@@ -29382,6 +29434,7 @@ var init_workspace$1 = __esmMin((() => {
|
|
|
29382
29434
|
init_utils$2();
|
|
29383
29435
|
init_sandbox_paths();
|
|
29384
29436
|
init_bundled_dir();
|
|
29437
|
+
init_compact_prompt();
|
|
29385
29438
|
init_config$3();
|
|
29386
29439
|
init_filter();
|
|
29387
29440
|
init_frontmatter();
|
|
@@ -31112,7 +31165,7 @@ var init_parse$2 = __esmMin((() => {
|
|
|
31112
31165
|
ERROR_PAYLOAD_PREFIX_RE = /^(?:error|api\s*error|apierror|openai\s*error|anthropic\s*error|gateway\s*error)[:\s-]+/i;
|
|
31113
31166
|
})), DEFAULT_SANDBOX_WORKSPACE_ROOT, DEFAULT_SANDBOX_IMAGE, DEFAULT_TOOL_ALLOW, DEFAULT_TOOL_DENY, SANDBOX_AGENT_WORKSPACE_MOUNT, SANDBOX_STATE_DIR, SANDBOX_REGISTRY_PATH, SANDBOX_BROWSER_REGISTRY_PATH;
|
|
31114
31167
|
var init_constants$2 = __esmMin((() => {
|
|
31115
|
-
init_registry$
|
|
31168
|
+
init_registry$5();
|
|
31116
31169
|
init_config$4();
|
|
31117
31170
|
DEFAULT_SANDBOX_WORKSPACE_ROOT = path.join(STATE_DIR, "sandboxes");
|
|
31118
31171
|
DEFAULT_SANDBOX_IMAGE = "minion-sandbox:bookworm-slim";
|
|
@@ -31617,6 +31670,7 @@ function resolveSandboxConfigForAgent(cfg, agentId) {
|
|
|
31617
31670
|
scope,
|
|
31618
31671
|
workspaceAccess: agentSandbox?.workspaceAccess ?? agent?.workspaceAccess ?? "none",
|
|
31619
31672
|
workspaceRoot: agentSandbox?.workspaceRoot ?? agent?.workspaceRoot ?? DEFAULT_SANDBOX_WORKSPACE_ROOT,
|
|
31673
|
+
tier0: { enabled: agentSandbox?.tier0?.enabled ?? agent?.tier0?.enabled ?? false },
|
|
31620
31674
|
docker: resolveSandboxDockerConfig({
|
|
31621
31675
|
scope,
|
|
31622
31676
|
globalDocker: agent?.docker,
|
|
@@ -39095,7 +39149,7 @@ async function removeBrowserRegistryEntry(containerName) {
|
|
|
39095
39149
|
return next;
|
|
39096
39150
|
});
|
|
39097
39151
|
}
|
|
39098
|
-
var init_registry$
|
|
39152
|
+
var init_registry$4 = __esmMin((() => {
|
|
39099
39153
|
init_session_write_lock();
|
|
39100
39154
|
init_constants$2();
|
|
39101
39155
|
}));
|
|
@@ -39556,7 +39610,7 @@ var init_docker = __esmMin((() => {
|
|
|
39556
39610
|
init_runtime$2();
|
|
39557
39611
|
init_config_hash();
|
|
39558
39612
|
init_constants$2();
|
|
39559
|
-
init_registry$
|
|
39613
|
+
init_registry$4();
|
|
39560
39614
|
init_shared$1();
|
|
39561
39615
|
init_validate_sandbox_security();
|
|
39562
39616
|
log$43 = createSubsystemLogger("sandbox/docker");
|
|
@@ -39782,7 +39836,7 @@ var init_browser = __esmMin((() => {
|
|
|
39782
39836
|
init_config$2();
|
|
39783
39837
|
init_constants$2();
|
|
39784
39838
|
init_docker();
|
|
39785
|
-
init_registry$
|
|
39839
|
+
init_registry$4();
|
|
39786
39840
|
init_shared$1();
|
|
39787
39841
|
init_tool_policy();
|
|
39788
39842
|
HOT_BROWSER_WINDOW_MS = 300 * 1e3;
|
|
@@ -40148,7 +40202,7 @@ var init_prune = __esmMin((() => {
|
|
|
40148
40202
|
init_runtime$2();
|
|
40149
40203
|
init_browser_bridges();
|
|
40150
40204
|
init_docker();
|
|
40151
|
-
init_registry$
|
|
40205
|
+
init_registry$4();
|
|
40152
40206
|
lastPruneAtMs = 0;
|
|
40153
40207
|
}));
|
|
40154
40208
|
//#endregion
|
|
@@ -40454,7 +40508,7 @@ var init_manage = __esmMin((() => {
|
|
|
40454
40508
|
init_config$4();
|
|
40455
40509
|
init_config$2();
|
|
40456
40510
|
init_docker();
|
|
40457
|
-
init_registry$
|
|
40511
|
+
init_registry$4();
|
|
40458
40512
|
init_shared$1();
|
|
40459
40513
|
}));
|
|
40460
40514
|
//#endregion
|
|
@@ -41554,7 +41608,7 @@ var loggedListActionErrors;
|
|
|
41554
41608
|
var init_channel_tools = __esmMin((() => {
|
|
41555
41609
|
init_dock();
|
|
41556
41610
|
init_plugins();
|
|
41557
|
-
init_registry$
|
|
41611
|
+
init_registry$5();
|
|
41558
41612
|
init_runtime$2();
|
|
41559
41613
|
loggedListActionErrors = /* @__PURE__ */ new Set();
|
|
41560
41614
|
}));
|
|
@@ -54833,7 +54887,7 @@ function resolveCommandAuthorization(params) {
|
|
|
54833
54887
|
}
|
|
54834
54888
|
var init_command_auth = __esmMin((() => {
|
|
54835
54889
|
init_dock();
|
|
54836
|
-
init_registry$
|
|
54890
|
+
init_registry$5();
|
|
54837
54891
|
init_message_channel();
|
|
54838
54892
|
}));
|
|
54839
54893
|
//#endregion
|
|
@@ -60764,7 +60818,7 @@ var init_commands_allowlist = __esmMin((() => {
|
|
|
60764
60818
|
init_accounts$5();
|
|
60765
60819
|
init_config_writes();
|
|
60766
60820
|
init_pairing();
|
|
60767
|
-
init_registry$
|
|
60821
|
+
init_registry$5();
|
|
60768
60822
|
init_accounts$3();
|
|
60769
60823
|
init_accounts$2();
|
|
60770
60824
|
init_config$4();
|
|
@@ -65069,6 +65123,198 @@ var init_landlock = __esmMin((() => {
|
|
|
65069
65123
|
_caps = null;
|
|
65070
65124
|
}));
|
|
65071
65125
|
//#endregion
|
|
65126
|
+
//#region src/agents/sandbox/tier0/router.ts
|
|
65127
|
+
function shouldTryTier0(command) {
|
|
65128
|
+
const cmd = command.trim();
|
|
65129
|
+
if (!cmd) return false;
|
|
65130
|
+
for (const re of ESCALATE_PATTERNS) if (re.test(cmd)) return false;
|
|
65131
|
+
return true;
|
|
65132
|
+
}
|
|
65133
|
+
/**
|
|
65134
|
+
* Distinguish "just-bash can't do this" from "the user's command legitimately
|
|
65135
|
+
* failed". Known limitations in just-bash@3.0.1 include `$(( ))` arithmetic
|
|
65136
|
+
* expansion (trips its own defense-in-depth `node:module` guard) and any
|
|
65137
|
+
* unimplemented builtin. These must escalate to Docker, not surface as failures.
|
|
65138
|
+
*/
|
|
65139
|
+
function isInterpreterLimitation(stderr) {
|
|
65140
|
+
if (!stderr) return false;
|
|
65141
|
+
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);
|
|
65142
|
+
}
|
|
65143
|
+
var ESCALATE_PATTERNS;
|
|
65144
|
+
var init_router = __esmMin((() => {
|
|
65145
|
+
ESCALATE_PATTERNS = [
|
|
65146
|
+
/\b(curl|wget|nc|ncat|netcat|ssh|scp|sftp|rsync|ping|dig|nslookup|host)\b/,
|
|
65147
|
+
/\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/,
|
|
65148
|
+
/\b(apt|apt-get|dpkg|yum|dnf|apk|brew|sudo|su|systemctl|service|mount|umount|chroot|insmod|modprobe|iptables)\b/,
|
|
65149
|
+
/\b(docker|kubectl|helm|git|gh|aws|gcloud|az|terraform|ffmpeg|convert|magick|pandoc)\b/,
|
|
65150
|
+
/(^|\s|=)\/(dev|proc|sys)\//,
|
|
65151
|
+
/<\(|>\(/
|
|
65152
|
+
];
|
|
65153
|
+
}));
|
|
65154
|
+
//#endregion
|
|
65155
|
+
//#region src/agents/sandbox/tier0/virtual-sandbox.ts
|
|
65156
|
+
/**
|
|
65157
|
+
* Tier-0 virtual sandbox — an in-process bash backend powered by just-bash.
|
|
65158
|
+
*
|
|
65159
|
+
* This is the cheap/fast tier in front of the Docker sandbox. For the high-volume
|
|
65160
|
+
* "safe" majority of agent shell calls (string munging, fs reads/writes in the
|
|
65161
|
+
* workspace, grep/sed/jq-style pipelines) it runs the command in-process against
|
|
65162
|
+
* an in-memory shell with the real workspace dir mounted — no container spawn.
|
|
65163
|
+
*
|
|
65164
|
+
* Correctness: the agent's real workspace dir is mounted (read-write, symlink-
|
|
65165
|
+
* blocked, root-jailed via just-bash's ReadWriteFs) at the container workdir, so
|
|
65166
|
+
* file visibility is identical to the Docker path. `/tmp` etc. live on an
|
|
65167
|
+
* InMemoryFs base. Network and python are OFF by default (just-bash defaults).
|
|
65168
|
+
*
|
|
65169
|
+
* Anything just-bash can't serve (an unimplemented builtin, an internal error)
|
|
65170
|
+
* sets `unsupported: true`; callers MUST escalate those to the Docker backend.
|
|
65171
|
+
* See ./router.ts for the routing + interpreter-limitation heuristics.
|
|
65172
|
+
*/
|
|
65173
|
+
function withTimeout$5(p, ms) {
|
|
65174
|
+
if (!ms) return p;
|
|
65175
|
+
return new Promise((resolve, reject) => {
|
|
65176
|
+
const timer = setTimeout(() => reject(new TimeoutError()), ms);
|
|
65177
|
+
p.then((value) => {
|
|
65178
|
+
clearTimeout(timer);
|
|
65179
|
+
resolve(value);
|
|
65180
|
+
}, (error) => {
|
|
65181
|
+
clearTimeout(timer);
|
|
65182
|
+
reject(error);
|
|
65183
|
+
});
|
|
65184
|
+
});
|
|
65185
|
+
}
|
|
65186
|
+
var Tier0VirtualSandbox, TimeoutError;
|
|
65187
|
+
var init_virtual_sandbox = __esmMin((() => {
|
|
65188
|
+
init_router();
|
|
65189
|
+
Tier0VirtualSandbox = class {
|
|
65190
|
+
constructor() {
|
|
65191
|
+
this.instances = /* @__PURE__ */ new Map();
|
|
65192
|
+
}
|
|
65193
|
+
getInstance(req) {
|
|
65194
|
+
const existing = this.instances.get(req.scopeKey);
|
|
65195
|
+
if (existing && existing.workspaceHostDir === req.workspaceHostDir && existing.workdir === req.workdir) {
|
|
65196
|
+
existing.lastUsed = Date.now();
|
|
65197
|
+
return existing.bash;
|
|
65198
|
+
}
|
|
65199
|
+
const fs = new MountableFs({ base: new InMemoryFs() });
|
|
65200
|
+
fs.mount(req.workdir, new ReadWriteFs({ root: req.workspaceHostDir }));
|
|
65201
|
+
const bash = new Bash({
|
|
65202
|
+
fs,
|
|
65203
|
+
cwd: req.workdir,
|
|
65204
|
+
env: {
|
|
65205
|
+
LANG: "C.UTF-8",
|
|
65206
|
+
...req.env
|
|
65207
|
+
},
|
|
65208
|
+
executionLimits: {
|
|
65209
|
+
maxCommandCount: 1e4,
|
|
65210
|
+
maxLoopIterations: 1e6
|
|
65211
|
+
}
|
|
65212
|
+
});
|
|
65213
|
+
const inst = {
|
|
65214
|
+
bash,
|
|
65215
|
+
workspaceHostDir: req.workspaceHostDir,
|
|
65216
|
+
workdir: req.workdir,
|
|
65217
|
+
lastUsed: Date.now()
|
|
65218
|
+
};
|
|
65219
|
+
this.instances.set(req.scopeKey, inst);
|
|
65220
|
+
return bash;
|
|
65221
|
+
}
|
|
65222
|
+
async exec(req) {
|
|
65223
|
+
const startedAt = Date.now();
|
|
65224
|
+
let bash;
|
|
65225
|
+
try {
|
|
65226
|
+
bash = this.getInstance(req);
|
|
65227
|
+
} catch {
|
|
65228
|
+
return {
|
|
65229
|
+
status: "failed",
|
|
65230
|
+
exitCode: null,
|
|
65231
|
+
durationMs: Date.now() - startedAt,
|
|
65232
|
+
aggregated: "",
|
|
65233
|
+
timedOut: false,
|
|
65234
|
+
unsupported: true
|
|
65235
|
+
};
|
|
65236
|
+
}
|
|
65237
|
+
try {
|
|
65238
|
+
const result = await withTimeout$5(bash.exec(req.command, {
|
|
65239
|
+
cwd: req.workdir,
|
|
65240
|
+
env: req.env
|
|
65241
|
+
}), req.timeoutSec ? req.timeoutSec * 1e3 : void 0);
|
|
65242
|
+
const durationMs = Date.now() - startedAt;
|
|
65243
|
+
const combined = [result.stdout, result.stderr].filter(Boolean).join("").trim();
|
|
65244
|
+
if (result.exitCode === 0) return {
|
|
65245
|
+
status: "completed",
|
|
65246
|
+
exitCode: 0,
|
|
65247
|
+
durationMs,
|
|
65248
|
+
aggregated: combined,
|
|
65249
|
+
timedOut: false,
|
|
65250
|
+
unsupported: false
|
|
65251
|
+
};
|
|
65252
|
+
return {
|
|
65253
|
+
status: "failed",
|
|
65254
|
+
exitCode: result.exitCode,
|
|
65255
|
+
durationMs,
|
|
65256
|
+
aggregated: combined,
|
|
65257
|
+
timedOut: false,
|
|
65258
|
+
unsupported: isInterpreterLimitation(result.stderr)
|
|
65259
|
+
};
|
|
65260
|
+
} catch (err) {
|
|
65261
|
+
const timedOut = err instanceof TimeoutError;
|
|
65262
|
+
return {
|
|
65263
|
+
status: "failed",
|
|
65264
|
+
exitCode: null,
|
|
65265
|
+
durationMs: Date.now() - startedAt,
|
|
65266
|
+
aggregated: "",
|
|
65267
|
+
timedOut,
|
|
65268
|
+
unsupported: !timedOut
|
|
65269
|
+
};
|
|
65270
|
+
}
|
|
65271
|
+
}
|
|
65272
|
+
dispose(scopeKey) {
|
|
65273
|
+
if (scopeKey) this.instances.delete(scopeKey);
|
|
65274
|
+
else this.instances.clear();
|
|
65275
|
+
}
|
|
65276
|
+
/** test/inspection helper */
|
|
65277
|
+
get liveInstances() {
|
|
65278
|
+
return this.instances.size;
|
|
65279
|
+
}
|
|
65280
|
+
};
|
|
65281
|
+
TimeoutError = class extends Error {};
|
|
65282
|
+
}));
|
|
65283
|
+
//#endregion
|
|
65284
|
+
//#region src/agents/sandbox/tier0/registry.ts
|
|
65285
|
+
function getTier0Sandbox() {
|
|
65286
|
+
if (!singleton$1) singleton$1 = new Tier0VirtualSandbox();
|
|
65287
|
+
return singleton$1;
|
|
65288
|
+
}
|
|
65289
|
+
/**
|
|
65290
|
+
* Resolve the tier-0 binding for an exec, or undefined to use the Docker/host
|
|
65291
|
+
* path. `workspaceHostDir` is the real sandbox workspace dir (mounted into the
|
|
65292
|
+
* Docker container too), so tier-0 sees the same files.
|
|
65293
|
+
*/
|
|
65294
|
+
function resolveTier0Binding(params) {
|
|
65295
|
+
if (!params.workspaceHostDir) return;
|
|
65296
|
+
const sandboxCfg = resolveSandboxConfigForAgent(params.config ?? loadConfig(), params.agentId);
|
|
65297
|
+
if (!sandboxCfg.tier0.enabled) return;
|
|
65298
|
+
if (sandboxCfg.workspaceAccess === "ro") return;
|
|
65299
|
+
return {
|
|
65300
|
+
backend: getTier0Sandbox(),
|
|
65301
|
+
workspaceHostDir: params.workspaceHostDir
|
|
65302
|
+
};
|
|
65303
|
+
}
|
|
65304
|
+
var singleton$1;
|
|
65305
|
+
var init_registry$3 = __esmMin((() => {
|
|
65306
|
+
init_config$4();
|
|
65307
|
+
init_config$2();
|
|
65308
|
+
init_virtual_sandbox();
|
|
65309
|
+
}));
|
|
65310
|
+
//#endregion
|
|
65311
|
+
//#region src/agents/sandbox/tier0/index.ts
|
|
65312
|
+
var init_tier0 = __esmMin((() => {
|
|
65313
|
+
init_router();
|
|
65314
|
+
init_registry$3();
|
|
65315
|
+
init_virtual_sandbox();
|
|
65316
|
+
}));
|
|
65317
|
+
//#endregion
|
|
65072
65318
|
//#region src/agents/tools/automation/gateway.ts
|
|
65073
65319
|
function readGatewayCallOptions(params) {
|
|
65074
65320
|
return {
|
|
@@ -66443,10 +66689,112 @@ function emitExecSystemEvent(text, opts) {
|
|
|
66443
66689
|
});
|
|
66444
66690
|
requestHeartbeatNow({ reason: "exec-event" });
|
|
66445
66691
|
}
|
|
66692
|
+
/**
|
|
66693
|
+
* Tier-0 fast path: run `execCommand` in the in-process virtual sandbox. Returns
|
|
66694
|
+
* a completed ExecProcessHandle on success, or null when just-bash can't serve
|
|
66695
|
+
* the command (so the caller escalates to Docker). Output is sanitized and a
|
|
66696
|
+
* ProcessSession is registered exactly like the normal path, so downstream
|
|
66697
|
+
* session listing / tailing is unaffected.
|
|
66698
|
+
*/
|
|
66699
|
+
async function tryTier0Exec(args) {
|
|
66700
|
+
const { opts, sessionId, startedAt, execCommand } = args;
|
|
66701
|
+
const tier0 = opts.tier0;
|
|
66702
|
+
const sandbox = opts.sandbox;
|
|
66703
|
+
if (!tier0 || !sandbox) return null;
|
|
66704
|
+
const workdir = opts.containerWorkdir ?? sandbox.containerWorkdir;
|
|
66705
|
+
let outcome;
|
|
66706
|
+
try {
|
|
66707
|
+
outcome = await tier0.backend.exec({
|
|
66708
|
+
command: execCommand,
|
|
66709
|
+
workdir,
|
|
66710
|
+
workspaceHostDir: tier0.workspaceHostDir,
|
|
66711
|
+
env: opts.env,
|
|
66712
|
+
scopeKey: sandbox.containerName,
|
|
66713
|
+
timeoutSec: opts.timeoutSec
|
|
66714
|
+
});
|
|
66715
|
+
} catch {
|
|
66716
|
+
return null;
|
|
66717
|
+
}
|
|
66718
|
+
if (outcome.unsupported) return null;
|
|
66719
|
+
const session = {
|
|
66720
|
+
id: sessionId,
|
|
66721
|
+
command: opts.command,
|
|
66722
|
+
scopeKey: opts.scopeKey,
|
|
66723
|
+
sessionKey: opts.sessionKey,
|
|
66724
|
+
notifyOnExit: opts.notifyOnExit,
|
|
66725
|
+
notifyOnExitEmptySuccess: opts.notifyOnExitEmptySuccess === true,
|
|
66726
|
+
exitNotified: false,
|
|
66727
|
+
child: void 0,
|
|
66728
|
+
stdin: void 0,
|
|
66729
|
+
pid: void 0,
|
|
66730
|
+
startedAt,
|
|
66731
|
+
cwd: opts.workdir,
|
|
66732
|
+
maxOutputChars: opts.maxOutput,
|
|
66733
|
+
pendingMaxOutputChars: opts.pendingMaxOutput,
|
|
66734
|
+
totalOutputChars: 0,
|
|
66735
|
+
pendingStdout: [],
|
|
66736
|
+
pendingStderr: [],
|
|
66737
|
+
pendingStdoutChars: 0,
|
|
66738
|
+
pendingStderrChars: 0,
|
|
66739
|
+
aggregated: "",
|
|
66740
|
+
tail: "",
|
|
66741
|
+
exited: false,
|
|
66742
|
+
exitCode: void 0,
|
|
66743
|
+
exitSignal: void 0,
|
|
66744
|
+
truncated: false,
|
|
66745
|
+
backgrounded: false
|
|
66746
|
+
};
|
|
66747
|
+
addSession(session);
|
|
66748
|
+
const sanitized = stripAnsi(sanitizeBinaryOutput(outcome.aggregated));
|
|
66749
|
+
for (const chunk of chunkString(sanitized)) appendOutput(session, "stdout", chunk);
|
|
66750
|
+
const status = outcome.status === "completed" ? "completed" : "failed";
|
|
66751
|
+
markExited(session, outcome.exitCode ?? 0, null, status);
|
|
66752
|
+
const durationMs = Date.now() - startedAt;
|
|
66753
|
+
const aggregated = session.aggregated.trim();
|
|
66754
|
+
let result;
|
|
66755
|
+
if (status === "completed") {
|
|
66756
|
+
const exitCode = outcome.exitCode ?? 0;
|
|
66757
|
+
result = {
|
|
66758
|
+
status: "completed",
|
|
66759
|
+
exitCode,
|
|
66760
|
+
exitSignal: null,
|
|
66761
|
+
durationMs,
|
|
66762
|
+
aggregated: aggregated + (exitCode !== 0 ? `\n\n(Command exited with code ${exitCode})` : ""),
|
|
66763
|
+
timedOut: false
|
|
66764
|
+
};
|
|
66765
|
+
} else {
|
|
66766
|
+
const reason = outcome.timedOut ? `Command timed out after ${opts.timeoutSec} seconds` : `Command exited with code ${outcome.exitCode ?? 1}`;
|
|
66767
|
+
result = {
|
|
66768
|
+
status: "failed",
|
|
66769
|
+
exitCode: outcome.exitCode,
|
|
66770
|
+
exitSignal: null,
|
|
66771
|
+
durationMs,
|
|
66772
|
+
aggregated,
|
|
66773
|
+
timedOut: outcome.timedOut,
|
|
66774
|
+
reason: aggregated ? `${aggregated}\n\n${reason}` : reason
|
|
66775
|
+
};
|
|
66776
|
+
}
|
|
66777
|
+
return {
|
|
66778
|
+
session,
|
|
66779
|
+
startedAt,
|
|
66780
|
+
pid: void 0,
|
|
66781
|
+
promise: Promise.resolve(result),
|
|
66782
|
+
kill: () => {}
|
|
66783
|
+
};
|
|
66784
|
+
}
|
|
66446
66785
|
async function runExecProcess(opts) {
|
|
66447
66786
|
const startedAt = Date.now();
|
|
66448
66787
|
const sessionId = createSessionSlug();
|
|
66449
66788
|
const execCommand = opts.execCommand ?? opts.command;
|
|
66789
|
+
if (opts.tier0 && opts.sandbox && !opts.usePty && shouldTryTier0(execCommand)) {
|
|
66790
|
+
const tier0Handle = await tryTier0Exec({
|
|
66791
|
+
opts,
|
|
66792
|
+
sessionId,
|
|
66793
|
+
startedAt,
|
|
66794
|
+
execCommand
|
|
66795
|
+
});
|
|
66796
|
+
if (tier0Handle) return tier0Handle;
|
|
66797
|
+
}
|
|
66450
66798
|
const supervisor = getProcessSupervisor();
|
|
66451
66799
|
const session = {
|
|
66452
66800
|
id: sessionId,
|
|
@@ -66677,6 +67025,7 @@ var init_bash_tools_exec_runtime = __esmMin((() => {
|
|
|
66677
67025
|
init_supervisor();
|
|
66678
67026
|
init_pty_dsr();
|
|
66679
67027
|
init_shell_utils();
|
|
67028
|
+
init_tier0();
|
|
66680
67029
|
init_bash_process_registry();
|
|
66681
67030
|
init_bash_tools_shared();
|
|
66682
67031
|
DANGEROUS_HOST_ENV_VARS = new Set([
|
|
@@ -67280,7 +67629,11 @@ function createExecTool(defaults) {
|
|
|
67280
67629
|
scopeKey: defaults?.scopeKey,
|
|
67281
67630
|
sessionKey: notifySessionKey,
|
|
67282
67631
|
timeoutSec: effectiveTimeout,
|
|
67283
|
-
onUpdate
|
|
67632
|
+
onUpdate,
|
|
67633
|
+
tier0: sandbox ? resolveTier0Binding({
|
|
67634
|
+
agentId,
|
|
67635
|
+
workspaceHostDir: sandbox.workspaceDir
|
|
67636
|
+
}) : void 0
|
|
67284
67637
|
});
|
|
67285
67638
|
let yielded = false;
|
|
67286
67639
|
let yieldTimer = null;
|
|
@@ -67355,6 +67708,7 @@ var init_bash_tools_exec = __esmMin((() => {
|
|
|
67355
67708
|
init_logger$2();
|
|
67356
67709
|
init_session_key$1();
|
|
67357
67710
|
init_landlock();
|
|
67711
|
+
init_tier0();
|
|
67358
67712
|
init_gateway();
|
|
67359
67713
|
init_nodes_utils();
|
|
67360
67714
|
init_bash_process_registry();
|
|
@@ -69559,7 +69913,7 @@ var init_debug_commands = __esmMin((() => {
|
|
|
69559
69913
|
var handleConfigCommand, handleDebugCommand;
|
|
69560
69914
|
var init_commands_config = __esmMin((() => {
|
|
69561
69915
|
init_config_writes();
|
|
69562
|
-
init_registry$
|
|
69916
|
+
init_registry$5();
|
|
69563
69917
|
init_config_paths();
|
|
69564
69918
|
init_config$4();
|
|
69565
69919
|
init_runtime_overrides();
|
|
@@ -70204,11 +70558,12 @@ var init_agent_type = __esmMin((() => {
|
|
|
70204
70558
|
if (!trimmed) return [];
|
|
70205
70559
|
return [
|
|
70206
70560
|
"## Skills (mandatory)",
|
|
70207
|
-
"Before replying: scan <available_skills>
|
|
70208
|
-
|
|
70209
|
-
"- If multiple could apply: choose the most specific one, then
|
|
70210
|
-
"- If none clearly apply: do not
|
|
70211
|
-
|
|
70561
|
+
"Before replying: scan the <available_skills> entries.",
|
|
70562
|
+
"- If exactly one skill clearly applies: load its full instructions, then follow it.",
|
|
70563
|
+
"- If multiple could apply: choose the most specific one, then load/follow it.",
|
|
70564
|
+
"- If none clearly apply: do not load any skill.",
|
|
70565
|
+
`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}\`.`,
|
|
70566
|
+
"Constraints: never load more than one skill up front; only load after selecting.",
|
|
70212
70567
|
trimmed,
|
|
70213
70568
|
""
|
|
70214
70569
|
];
|
|
@@ -70354,6 +70709,37 @@ var init_agent_type = __esmMin((() => {
|
|
|
70354
70709
|
];
|
|
70355
70710
|
}));
|
|
70356
70711
|
//#endregion
|
|
70712
|
+
//#region src/agents/sections/behaviour.ts
|
|
70713
|
+
var BEHAVIOUR_SECTIONS;
|
|
70714
|
+
var init_behaviour = __esmMin((() => {
|
|
70715
|
+
init_prose_loader();
|
|
70716
|
+
BEHAVIOUR_SECTIONS = [{
|
|
70717
|
+
id: "behaviour",
|
|
70718
|
+
layer: "identity",
|
|
70719
|
+
order: 2200,
|
|
70720
|
+
modes: ["full", "minimal"],
|
|
70721
|
+
cacheable: false,
|
|
70722
|
+
header: "## Operating Rules (self-maintained)",
|
|
70723
|
+
source: "file",
|
|
70724
|
+
render: (ctx) => {
|
|
70725
|
+
const workspaceDir = ctx.params.workspaceDir;
|
|
70726
|
+
if (!workspaceDir) return [];
|
|
70727
|
+
const content = resolveProse({
|
|
70728
|
+
layer: "identity",
|
|
70729
|
+
id: "behaviour",
|
|
70730
|
+
agentWorkspaceDir: workspaceDir
|
|
70731
|
+
})?.content.trim();
|
|
70732
|
+
if (!content) return [];
|
|
70733
|
+
return [
|
|
70734
|
+
"## Operating Rules (self-maintained)",
|
|
70735
|
+
"",
|
|
70736
|
+
content,
|
|
70737
|
+
""
|
|
70738
|
+
];
|
|
70739
|
+
}
|
|
70740
|
+
}];
|
|
70741
|
+
}));
|
|
70742
|
+
//#endregion
|
|
70357
70743
|
//#region src/agents/personal-agent-id.ts
|
|
70358
70744
|
/**
|
|
70359
70745
|
* Personal-agent ID helpers.
|
|
@@ -71368,6 +71754,7 @@ function getBuiltinRegistry() {
|
|
|
71368
71754
|
_registry$1.registerAll(PLATFORM_SECTIONS);
|
|
71369
71755
|
_registry$1.registerAll(AGENT_TYPE_SECTIONS);
|
|
71370
71756
|
_registry$1.registerAll(IDENTITY_SECTIONS);
|
|
71757
|
+
_registry$1.registerAll(BEHAVIOUR_SECTIONS);
|
|
71371
71758
|
_registry$1.registerAll(USER_SECTIONS);
|
|
71372
71759
|
_registry$1.registerAll(SESSION_SECTIONS);
|
|
71373
71760
|
return _registry$1;
|
|
@@ -71386,6 +71773,7 @@ function assembleAgentSystemPrompt(params) {
|
|
|
71386
71773
|
var _registry$1;
|
|
71387
71774
|
var init_assemble = __esmMin((() => {
|
|
71388
71775
|
init_agent_type();
|
|
71776
|
+
init_behaviour();
|
|
71389
71777
|
init_identity$1();
|
|
71390
71778
|
init_platform();
|
|
71391
71779
|
init_registry$1();
|
|
@@ -79216,7 +79604,7 @@ var init_reply_elevated = __esmMin((() => {
|
|
|
79216
79604
|
init_agent_scope();
|
|
79217
79605
|
init_dock();
|
|
79218
79606
|
init_plugins();
|
|
79219
|
-
init_registry$
|
|
79607
|
+
init_registry$5();
|
|
79220
79608
|
init_message_channel();
|
|
79221
79609
|
init_string_normalization();
|
|
79222
79610
|
init_elevated_unavailable();
|
|
@@ -88950,7 +89338,7 @@ function resolvePingPongTurns(cfg) {
|
|
|
88950
89338
|
var ANNOUNCE_SKIP_TOKEN, REPLY_SKIP_TOKEN, DEFAULT_PING_PONG_TURNS, MAX_PING_PONG_TURNS;
|
|
88951
89339
|
var init_sessions_send_helpers = __esmMin((() => {
|
|
88952
89340
|
init_plugins();
|
|
88953
|
-
init_registry$
|
|
89341
|
+
init_registry$5();
|
|
88954
89342
|
ANNOUNCE_SKIP_TOKEN = "ANNOUNCE_SKIP";
|
|
88955
89343
|
REPLY_SKIP_TOKEN = "REPLY_SKIP";
|
|
88956
89344
|
DEFAULT_PING_PONG_TURNS = 5;
|
|
@@ -96691,7 +97079,7 @@ var BUN_FETCH_SOCKET_ERROR_RE, isBunFetchSocketError, formatBunFetchSocketError,
|
|
|
96691
97079
|
var init_agent_runner_utils = __esmMin((() => {
|
|
96692
97080
|
init_agent_scope();
|
|
96693
97081
|
init_dock();
|
|
96694
|
-
init_registry$
|
|
97082
|
+
init_registry$5();
|
|
96695
97083
|
init_sessions$1();
|
|
96696
97084
|
init_usage_format();
|
|
96697
97085
|
BUN_FETCH_SOCKET_ERROR_RE = /socket connection was closed unexpectedly/i;
|
|
@@ -102758,7 +103146,7 @@ function loadOpenClawPlugins(options = {}) {
|
|
|
102758
103146
|
}
|
|
102759
103147
|
var registryCache, defaultLogger, resolvePluginSdkAliasFile, resolvePluginSdkAlias;
|
|
102760
103148
|
var init_loader = __esmMin((() => {
|
|
102761
|
-
init_registry$
|
|
103149
|
+
init_registry$7();
|
|
102762
103150
|
init_subsystem();
|
|
102763
103151
|
init_utils$2();
|
|
102764
103152
|
init_version$1();
|
|
@@ -102768,7 +103156,7 @@ var init_loader = __esmMin((() => {
|
|
|
102768
103156
|
init_discovery();
|
|
102769
103157
|
init_hook_runner_global();
|
|
102770
103158
|
init_manifest_registry();
|
|
102771
|
-
init_registry$
|
|
103159
|
+
init_registry$6();
|
|
102772
103160
|
init_runtime$3();
|
|
102773
103161
|
init_runtime$1();
|
|
102774
103162
|
init_schema_validator();
|
|
@@ -113748,6 +114136,36 @@ async function prepareSessionManagerForRun(params) {
|
|
|
113748
114136
|
}
|
|
113749
114137
|
var init_session_manager_init = __esmMin((() => {}));
|
|
113750
114138
|
//#endregion
|
|
114139
|
+
//#region src/agents/pi-embedded-runner/tool-result-reduce.ts
|
|
114140
|
+
/** Pure text reducer for oversized/repetitive tool output. Never throws. */
|
|
114141
|
+
function reduceToolOutputText(text, opts) {
|
|
114142
|
+
let lines = text.split("\n");
|
|
114143
|
+
if (opts.collapseRuns) {
|
|
114144
|
+
const collapsed = [];
|
|
114145
|
+
let i = 0;
|
|
114146
|
+
while (i < lines.length) {
|
|
114147
|
+
let j = i + 1;
|
|
114148
|
+
while (j < lines.length && lines[j] === lines[i]) j += 1;
|
|
114149
|
+
const run = j - i;
|
|
114150
|
+
if (run >= 5) collapsed.push(`${lines[i]} (repeated ${run}×)`);
|
|
114151
|
+
else for (let k = i; k < j; k++) collapsed.push(lines[k]);
|
|
114152
|
+
i = j;
|
|
114153
|
+
}
|
|
114154
|
+
lines = collapsed;
|
|
114155
|
+
}
|
|
114156
|
+
if (lines.length <= opts.maxLines) return lines.join("\n");
|
|
114157
|
+
if (opts.headLines + opts.tailLines >= lines.length) return lines.join("\n");
|
|
114158
|
+
const head = lines.slice(0, opts.headLines);
|
|
114159
|
+
const tail = lines.slice(lines.length - opts.tailLines);
|
|
114160
|
+
const elided = lines.length - head.length - tail.length;
|
|
114161
|
+
return [
|
|
114162
|
+
...head,
|
|
114163
|
+
`… ${elided} lines elided …`,
|
|
114164
|
+
...tail
|
|
114165
|
+
].join("\n");
|
|
114166
|
+
}
|
|
114167
|
+
var init_tool_result_reduce = __esmMin((() => {}));
|
|
114168
|
+
//#endregion
|
|
113751
114169
|
//#region src/agents/pi-embedded-runner/tool-result-context-guard.ts
|
|
113752
114170
|
function isTextBlock(block) {
|
|
113753
114171
|
return !!block && typeof block === "object" && block.type === "text";
|
|
@@ -113882,8 +114300,28 @@ function applyMessageMutationInPlace(target, source) {
|
|
|
113882
114300
|
for (const key of Object.keys(targetRecord)) if (!(key in sourceRecord)) delete targetRecord[key];
|
|
113883
114301
|
Object.assign(targetRecord, sourceRecord);
|
|
113884
114302
|
}
|
|
114303
|
+
/**
|
|
114304
|
+
* Run the pure line-reducer over each tool-result message's text content,
|
|
114305
|
+
* mutating messages in place. Skips reductions that wouldn't shrink the text.
|
|
114306
|
+
*/
|
|
114307
|
+
function reduceToolResultOutputsInPlace(messages) {
|
|
114308
|
+
for (const message of messages) {
|
|
114309
|
+
if (!isToolResultMessage(message)) continue;
|
|
114310
|
+
const rawText = getToolResultText(message);
|
|
114311
|
+
if (!rawText) continue;
|
|
114312
|
+
const reduced = reduceToolOutputText(rawText, {
|
|
114313
|
+
maxLines: REDUCE_MAX_LINES,
|
|
114314
|
+
headLines: REDUCE_HEAD_LINES,
|
|
114315
|
+
tailLines: REDUCE_TAIL_LINES,
|
|
114316
|
+
collapseRuns: true
|
|
114317
|
+
});
|
|
114318
|
+
if (reduced === rawText) continue;
|
|
114319
|
+
applyMessageMutationInPlace(message, replaceToolResultText(message, reduced));
|
|
114320
|
+
}
|
|
114321
|
+
}
|
|
113885
114322
|
function enforceToolResultContextBudgetInPlace(params) {
|
|
113886
|
-
const { messages, contextBudgetChars, maxSingleToolResultChars } = params;
|
|
114323
|
+
const { messages, contextBudgetChars, maxSingleToolResultChars, reduceOutput } = params;
|
|
114324
|
+
if (reduceOutput) reduceToolResultOutputsInPlace(messages);
|
|
113887
114325
|
for (const message of messages) {
|
|
113888
114326
|
if (!isToolResultMessage(message)) continue;
|
|
113889
114327
|
applyMessageMutationInPlace(message, truncateToolResultToChars(message, maxSingleToolResultChars));
|
|
@@ -113905,6 +114343,7 @@ function enforceToolResultContextBudgetInPlace(params) {
|
|
|
113905
114343
|
* @returns An async function suitable for use as Agent's transformContext callback.
|
|
113906
114344
|
*/
|
|
113907
114345
|
function createToolResultContextGuardTransform(params) {
|
|
114346
|
+
const reduceOutput = params.reduceOutput !== false;
|
|
113908
114347
|
const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
|
|
113909
114348
|
const contextBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * CONTEXT_INPUT_HEADROOM_RATIO));
|
|
113910
114349
|
const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
|
|
@@ -113915,13 +114354,15 @@ function createToolResultContextGuardTransform(params) {
|
|
|
113915
114354
|
enforceToolResultContextBudgetInPlace({
|
|
113916
114355
|
messages: contextMessages,
|
|
113917
114356
|
contextBudgetChars,
|
|
113918
|
-
maxSingleToolResultChars
|
|
114357
|
+
maxSingleToolResultChars,
|
|
114358
|
+
reduceOutput
|
|
113919
114359
|
});
|
|
113920
114360
|
return contextMessages;
|
|
113921
114361
|
};
|
|
113922
114362
|
}
|
|
113923
|
-
var CHARS_PER_TOKEN_ESTIMATE, CONTEXT_INPUT_HEADROOM_RATIO, SINGLE_TOOL_RESULT_CONTEXT_SHARE, TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, IMAGE_CHAR_ESTIMATE, CONTEXT_LIMIT_TRUNCATION_NOTICE, CONTEXT_LIMIT_TRUNCATION_SUFFIX, PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER;
|
|
114363
|
+
var CHARS_PER_TOKEN_ESTIMATE, CONTEXT_INPUT_HEADROOM_RATIO, SINGLE_TOOL_RESULT_CONTEXT_SHARE, TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, IMAGE_CHAR_ESTIMATE, CONTEXT_LIMIT_TRUNCATION_NOTICE, CONTEXT_LIMIT_TRUNCATION_SUFFIX, PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER, REDUCE_MAX_LINES, REDUCE_HEAD_LINES, REDUCE_TAIL_LINES;
|
|
113924
114364
|
var init_tool_result_context_guard = __esmMin((() => {
|
|
114365
|
+
init_tool_result_reduce();
|
|
113925
114366
|
CHARS_PER_TOKEN_ESTIMATE = 4;
|
|
113926
114367
|
CONTEXT_INPUT_HEADROOM_RATIO = .75;
|
|
113927
114368
|
SINGLE_TOOL_RESULT_CONTEXT_SHARE = .5;
|
|
@@ -113930,6 +114371,9 @@ var init_tool_result_context_guard = __esmMin((() => {
|
|
|
113930
114371
|
CONTEXT_LIMIT_TRUNCATION_NOTICE = "[truncated: output exceeded context limit]";
|
|
113931
114372
|
CONTEXT_LIMIT_TRUNCATION_SUFFIX = `\n${CONTEXT_LIMIT_TRUNCATION_NOTICE}`;
|
|
113932
114373
|
PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER = "[compacted: tool output removed to free context]";
|
|
114374
|
+
REDUCE_MAX_LINES = 200;
|
|
114375
|
+
REDUCE_HEAD_LINES = 40;
|
|
114376
|
+
REDUCE_TAIL_LINES = 40;
|
|
113933
114377
|
}));
|
|
113934
114378
|
//#endregion
|
|
113935
114379
|
//#region src/agents/pi-embedded-runner/run/attempt-session.ts
|
|
@@ -114022,7 +114466,10 @@ async function createRunSession(params, env) {
|
|
|
114022
114466
|
applySystemPromptOverrideToSession(session, env.systemPromptText);
|
|
114023
114467
|
if (!session) throw new Error("Embedded agent session missing");
|
|
114024
114468
|
const activeSession = session;
|
|
114025
|
-
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
114469
|
+
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
114470
|
+
contextWindowTokens: Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? 2e5)),
|
|
114471
|
+
reduceOutput: params.config?.tools?.outputReduce?.enabled !== false
|
|
114472
|
+
});
|
|
114026
114473
|
activeSession.agent.transformContext = contextGuardTransform;
|
|
114027
114474
|
const cacheTrace = createCacheTrace({
|
|
114028
114475
|
cfg: params.config,
|