@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
|
@@ -51,6 +51,7 @@ import chokidar from "chokidar";
|
|
|
51
51
|
import MarkdownIt from "markdown-it";
|
|
52
52
|
import { WebClient } from "@slack/web-api";
|
|
53
53
|
import { Type as Type$1 } from "@sinclair/typebox";
|
|
54
|
+
import { Bash, InMemoryFs, MountableFs, ReadWriteFs } from "just-bash";
|
|
54
55
|
import fs$2 from "fs/promises";
|
|
55
56
|
import os$1 from "os";
|
|
56
57
|
import path$1 from "path";
|
|
@@ -182,7 +183,7 @@ function notifyMcpToolsChanged() {
|
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
185
|
var tools, sseSubscribers, EMPTY_OBJECT_SCHEMA;
|
|
185
|
-
var init_registry$
|
|
186
|
+
var init_registry$7 = __esmMin((() => {
|
|
186
187
|
tools = /* @__PURE__ */ new Map();
|
|
187
188
|
sseSubscribers = /* @__PURE__ */ new Set();
|
|
188
189
|
EMPTY_OBJECT_SCHEMA = {
|
|
@@ -1727,9 +1728,9 @@ function createPluginRegistry(registryParams) {
|
|
|
1727
1728
|
registerTypedHook
|
|
1728
1729
|
};
|
|
1729
1730
|
}
|
|
1730
|
-
var init_registry$
|
|
1731
|
+
var init_registry$6 = __esmMin((() => {
|
|
1731
1732
|
init_instant_commands();
|
|
1732
|
-
init_registry$
|
|
1733
|
+
init_registry$7();
|
|
1733
1734
|
init_internal_hooks();
|
|
1734
1735
|
init_utils$2();
|
|
1735
1736
|
init_channel_link_runtime();
|
|
@@ -1763,7 +1764,7 @@ function setActivePluginRuntime(runtime) {
|
|
|
1763
1764
|
}
|
|
1764
1765
|
var REGISTRY_STATE, CONFIG_STATE, RUNTIME_STATE, state$3, configState, runtimeState;
|
|
1765
1766
|
var init_runtime$3 = __esmMin((() => {
|
|
1766
|
-
init_registry$
|
|
1767
|
+
init_registry$6();
|
|
1767
1768
|
REGISTRY_STATE = Symbol.for("minion.pluginRegistryState");
|
|
1768
1769
|
CONFIG_STATE = Symbol.for("minion.pluginRegistryConfig");
|
|
1769
1770
|
RUNTIME_STATE = Symbol.for("minion.activePluginRuntime");
|
|
@@ -1810,7 +1811,7 @@ function normalizeAnyChannelId(raw) {
|
|
|
1810
1811
|
})?.plugin.id ?? null;
|
|
1811
1812
|
}
|
|
1812
1813
|
var CHAT_CHANNEL_ORDER, CHANNEL_IDS, CHAT_CHANNEL_META, CHAT_CHANNEL_ALIASES, normalizeChannelKey;
|
|
1813
|
-
var init_registry$
|
|
1814
|
+
var init_registry$5 = __esmMin((() => {
|
|
1814
1815
|
init_runtime$3();
|
|
1815
1816
|
CHAT_CHANNEL_ORDER = [
|
|
1816
1817
|
"telegram",
|
|
@@ -2224,7 +2225,7 @@ function createSubsystemLogger(subsystem) {
|
|
|
2224
2225
|
}
|
|
2225
2226
|
var SUBSYSTEM_COLORS, SUBSYSTEM_COLOR_OVERRIDES, SUBSYSTEM_PREFIXES_TO_DROP, SUBSYSTEM_MAX_SEGMENTS, CHANNEL_SUBSYSTEM_PREFIXES;
|
|
2226
2227
|
var init_subsystem = __esmMin((() => {
|
|
2227
|
-
init_registry$
|
|
2228
|
+
init_registry$5();
|
|
2228
2229
|
init_globals();
|
|
2229
2230
|
init_runtime$2();
|
|
2230
2231
|
init_progress_line();
|
|
@@ -3479,7 +3480,7 @@ function resolveDefaultAgentBoundAccountId(cfg, channelId) {
|
|
|
3479
3480
|
}
|
|
3480
3481
|
var init_bindings = __esmMin((() => {
|
|
3481
3482
|
init_agent_scope();
|
|
3482
|
-
init_registry$
|
|
3483
|
+
init_registry$5();
|
|
3483
3484
|
init_session_key$1();
|
|
3484
3485
|
}));
|
|
3485
3486
|
//#endregion
|
|
@@ -5141,6 +5142,7 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
5141
5142
|
]).optional(),
|
|
5142
5143
|
perSession: z.boolean().optional(),
|
|
5143
5144
|
workspaceRoot: z.string().optional(),
|
|
5145
|
+
tier0: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
5144
5146
|
docker: SandboxDockerSchema,
|
|
5145
5147
|
browser: SandboxBrowserSchema,
|
|
5146
5148
|
prune: SandboxPruneSchema
|
|
@@ -5342,7 +5344,8 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
5342
5344
|
exec: ToolExecSchema,
|
|
5343
5345
|
fs: ToolFsSchema,
|
|
5344
5346
|
subagents: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
5345
|
-
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional()
|
|
5347
|
+
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
5348
|
+
outputReduce: z.object({ enabled: z.boolean().optional() }).strict().optional()
|
|
5346
5349
|
}).strict().superRefine((value, ctx) => {
|
|
5347
5350
|
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)");
|
|
5348
5351
|
}).optional();
|
|
@@ -5838,7 +5841,7 @@ var init_shell_env = __esmMin((() => {
|
|
|
5838
5841
|
//#region src/version.ts
|
|
5839
5842
|
var VERSION;
|
|
5840
5843
|
var init_version$1 = __esmMin((() => {
|
|
5841
|
-
VERSION = "2026.6.
|
|
5844
|
+
VERSION = "2026.6.16-dev";
|
|
5842
5845
|
}));
|
|
5843
5846
|
//#endregion
|
|
5844
5847
|
//#region src/config/agent-dirs.ts
|
|
@@ -15558,6 +15561,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
15558
15561
|
importContacts: z.boolean().optional()
|
|
15559
15562
|
}).strict().optional(),
|
|
15560
15563
|
memorySync: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
15564
|
+
trajectory: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
15561
15565
|
personalAgentObservations: z.object({
|
|
15562
15566
|
enabled: z.boolean().optional(),
|
|
15563
15567
|
dbPath: z.string().optional()
|
|
@@ -15670,6 +15674,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
15670
15674
|
memory: MemorySchema,
|
|
15671
15675
|
skills: z.object({
|
|
15672
15676
|
allowBundled: z.array(z.string()).optional(),
|
|
15677
|
+
progressiveDisclosure: z.boolean().optional(),
|
|
15673
15678
|
load: z.object({
|
|
15674
15679
|
extraDirs: z.array(z.string()).optional(),
|
|
15675
15680
|
watch: z.boolean().optional(),
|
|
@@ -16045,7 +16050,7 @@ function validateConfigObjectWithPluginsBase(raw, opts) {
|
|
|
16045
16050
|
var AVATAR_SCHEME_RE, AVATAR_DATA_RE, AVATAR_HTTP_RE, WINDOWS_ABS_RE;
|
|
16046
16051
|
var init_validation = __esmMin((() => {
|
|
16047
16052
|
init_agent_scope();
|
|
16048
|
-
init_registry$
|
|
16053
|
+
init_registry$5();
|
|
16049
16054
|
init_config_state();
|
|
16050
16055
|
init_manifest_registry();
|
|
16051
16056
|
init_schema_validator();
|
|
@@ -17432,7 +17437,7 @@ function isMarkdownCapableMessageChannel(raw) {
|
|
|
17432
17437
|
}
|
|
17433
17438
|
var INTERNAL_MESSAGE_CHANNEL, MARKDOWN_CAPABLE_CHANNELS, listPluginChannelIds, listDeliverableMessageChannels, listGatewayMessageChannels;
|
|
17434
17439
|
var init_message_channel = __esmMin((() => {
|
|
17435
|
-
init_registry$
|
|
17440
|
+
init_registry$5();
|
|
17436
17441
|
init_client_info();
|
|
17437
17442
|
init_runtime$3();
|
|
17438
17443
|
INTERNAL_MESSAGE_CHANNEL = "webchat";
|
|
@@ -18603,7 +18608,7 @@ function normalizeChannelId(raw) {
|
|
|
18603
18608
|
}
|
|
18604
18609
|
var init_plugins = __esmMin((() => {
|
|
18605
18610
|
init_runtime$3();
|
|
18606
|
-
init_registry$
|
|
18611
|
+
init_registry$5();
|
|
18607
18612
|
init_directory_config();
|
|
18608
18613
|
}));
|
|
18609
18614
|
//#endregion
|
|
@@ -20824,6 +20829,24 @@ var init_bundled_dir = __esmMin((() => {
|
|
|
20824
20829
|
init_minion_root();
|
|
20825
20830
|
}));
|
|
20826
20831
|
//#endregion
|
|
20832
|
+
//#region src/agents/skills/compact-prompt.ts
|
|
20833
|
+
/**
|
|
20834
|
+
* Render a compact, name+description-only skills listing for progressive
|
|
20835
|
+
* disclosure. The full SKILL.md body is deliberately omitted; the agent is
|
|
20836
|
+
* instructed to load it on demand via the `skill_view` tool. This keeps the
|
|
20837
|
+
* system prompt small when many skills are available.
|
|
20838
|
+
*/
|
|
20839
|
+
function formatSkillsCompact(skills) {
|
|
20840
|
+
if (skills.length === 0) return "";
|
|
20841
|
+
return [
|
|
20842
|
+
"<available_skills>",
|
|
20843
|
+
...skills.map((s) => `- **${s.name}** — ${s.description.trim()}`),
|
|
20844
|
+
"</available_skills>",
|
|
20845
|
+
"Call the `skill_view` tool with a skill name to load its full instructions before using it."
|
|
20846
|
+
].join("\n");
|
|
20847
|
+
}
|
|
20848
|
+
var init_compact_prompt = __esmMin((() => {}));
|
|
20849
|
+
//#endregion
|
|
20827
20850
|
//#region src/shared/config-eval.ts
|
|
20828
20851
|
function isTruthyValue(value) {
|
|
20829
20852
|
if (value === void 0 || value === null) return false;
|
|
@@ -21574,6 +21597,35 @@ function applySkillsPromptLimits(params) {
|
|
|
21574
21597
|
truncatedReason
|
|
21575
21598
|
};
|
|
21576
21599
|
}
|
|
21600
|
+
/**
|
|
21601
|
+
* Resolve whether progressive disclosure is enabled. Default is ON; only an
|
|
21602
|
+
* explicit `false` disables it (inlining full skill bodies in the prompt).
|
|
21603
|
+
*/
|
|
21604
|
+
function resolveProgressiveDisclosure(config, override) {
|
|
21605
|
+
if (override !== void 0) return override;
|
|
21606
|
+
return config?.skills?.progressiveDisclosure !== false;
|
|
21607
|
+
}
|
|
21608
|
+
/**
|
|
21609
|
+
* Map prompt-eligible skill entries to compact `{ name, description, body }`
|
|
21610
|
+
* records. The body is the full SKILL.md text, read from disk on demand; if the
|
|
21611
|
+
* file can't be read we fall back to an empty body (compact mode omits bodies
|
|
21612
|
+
* from the prompt anyway, so this only affects callers that inspect `body`).
|
|
21613
|
+
*/
|
|
21614
|
+
function toCompactSkills(skills) {
|
|
21615
|
+
return skills.map((skill) => {
|
|
21616
|
+
let body = "";
|
|
21617
|
+
try {
|
|
21618
|
+
body = fs.readFileSync(skill.filePath, "utf-8");
|
|
21619
|
+
} catch {
|
|
21620
|
+
body = "";
|
|
21621
|
+
}
|
|
21622
|
+
return {
|
|
21623
|
+
name: skill.name,
|
|
21624
|
+
description: skill.description ?? "",
|
|
21625
|
+
body
|
|
21626
|
+
};
|
|
21627
|
+
});
|
|
21628
|
+
}
|
|
21577
21629
|
function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
21578
21630
|
const eligible = filterSkillEntries(opts?.entries ?? loadSkillEntries(workspaceDir, opts), opts?.config, opts?.skillFilter, opts?.eligibility, opts?.denyFilter);
|
|
21579
21631
|
const resolvedSkills = eligible.filter((entry) => entry.invocation?.disableModelInvocation !== true).map((entry) => entry.skill);
|
|
@@ -21585,7 +21637,7 @@ function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
|
21585
21637
|
const prompt = [
|
|
21586
21638
|
remoteNote,
|
|
21587
21639
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
21588
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
21640
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
21589
21641
|
].filter(Boolean).join("\n");
|
|
21590
21642
|
const skillFilter = normalizeSkillFilter(opts?.skillFilter);
|
|
21591
21643
|
const denyFilter = normalizeSkillFilter(opts?.denyFilter);
|
|
@@ -21612,7 +21664,7 @@ function buildWorkspaceSkillsPrompt(workspaceDir, opts) {
|
|
|
21612
21664
|
return [
|
|
21613
21665
|
remoteNote,
|
|
21614
21666
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
21615
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
21667
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
21616
21668
|
].filter(Boolean).join("\n");
|
|
21617
21669
|
}
|
|
21618
21670
|
function resolveSkillsPromptForRun(params) {
|
|
@@ -21765,6 +21817,7 @@ var init_workspace$1 = __esmMin((() => {
|
|
|
21765
21817
|
init_utils$2();
|
|
21766
21818
|
init_sandbox_paths();
|
|
21767
21819
|
init_bundled_dir();
|
|
21820
|
+
init_compact_prompt();
|
|
21768
21821
|
init_config$3();
|
|
21769
21822
|
init_filter();
|
|
21770
21823
|
init_frontmatter();
|
|
@@ -23495,7 +23548,7 @@ var init_parse$2 = __esmMin((() => {
|
|
|
23495
23548
|
ERROR_PAYLOAD_PREFIX_RE = /^(?:error|api\s*error|apierror|openai\s*error|anthropic\s*error|gateway\s*error)[:\s-]+/i;
|
|
23496
23549
|
})), 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;
|
|
23497
23550
|
var init_constants$2 = __esmMin((() => {
|
|
23498
|
-
init_registry$
|
|
23551
|
+
init_registry$5();
|
|
23499
23552
|
DEFAULT_SANDBOX_WORKSPACE_ROOT = path.join(STATE_DIR, "sandboxes");
|
|
23500
23553
|
DEFAULT_SANDBOX_IMAGE = "minion-sandbox:bookworm-slim";
|
|
23501
23554
|
DEFAULT_TOOL_ALLOW = [
|
|
@@ -23999,6 +24052,7 @@ function resolveSandboxConfigForAgent(cfg, agentId) {
|
|
|
23999
24052
|
scope,
|
|
24000
24053
|
workspaceAccess: agentSandbox?.workspaceAccess ?? agent?.workspaceAccess ?? "none",
|
|
24001
24054
|
workspaceRoot: agentSandbox?.workspaceRoot ?? agent?.workspaceRoot ?? DEFAULT_SANDBOX_WORKSPACE_ROOT,
|
|
24055
|
+
tier0: { enabled: agentSandbox?.tier0?.enabled ?? agent?.tier0?.enabled ?? false },
|
|
24002
24056
|
docker: resolveSandboxDockerConfig({
|
|
24003
24057
|
scope,
|
|
24004
24058
|
globalDocker: agent?.docker,
|
|
@@ -32179,7 +32233,7 @@ async function removeBrowserRegistryEntry(containerName) {
|
|
|
32179
32233
|
return next;
|
|
32180
32234
|
});
|
|
32181
32235
|
}
|
|
32182
|
-
var init_registry$
|
|
32236
|
+
var init_registry$4 = __esmMin((() => {
|
|
32183
32237
|
init_session_write_lock();
|
|
32184
32238
|
init_constants$2();
|
|
32185
32239
|
}));
|
|
@@ -32640,7 +32694,7 @@ var init_docker = __esmMin((() => {
|
|
|
32640
32694
|
init_runtime$2();
|
|
32641
32695
|
init_config_hash();
|
|
32642
32696
|
init_constants$2();
|
|
32643
|
-
init_registry$
|
|
32697
|
+
init_registry$4();
|
|
32644
32698
|
init_shared$1();
|
|
32645
32699
|
init_validate_sandbox_security();
|
|
32646
32700
|
log$46 = createSubsystemLogger("sandbox/docker");
|
|
@@ -32866,7 +32920,7 @@ var init_browser = __esmMin((() => {
|
|
|
32866
32920
|
init_config$2();
|
|
32867
32921
|
init_constants$2();
|
|
32868
32922
|
init_docker();
|
|
32869
|
-
init_registry$
|
|
32923
|
+
init_registry$4();
|
|
32870
32924
|
init_shared$1();
|
|
32871
32925
|
init_tool_policy();
|
|
32872
32926
|
HOT_BROWSER_WINDOW_MS = 300 * 1e3;
|
|
@@ -33232,7 +33286,7 @@ var init_prune = __esmMin((() => {
|
|
|
33232
33286
|
init_runtime$2();
|
|
33233
33287
|
init_browser_bridges();
|
|
33234
33288
|
init_docker();
|
|
33235
|
-
init_registry$
|
|
33289
|
+
init_registry$4();
|
|
33236
33290
|
lastPruneAtMs = 0;
|
|
33237
33291
|
}));
|
|
33238
33292
|
//#endregion
|
|
@@ -33851,7 +33905,7 @@ var init_dock = __esmMin((() => {
|
|
|
33851
33905
|
init_utils$2();
|
|
33852
33906
|
init_group_mentions();
|
|
33853
33907
|
init_signal$1();
|
|
33854
|
-
init_registry$
|
|
33908
|
+
init_registry$5();
|
|
33855
33909
|
formatLower = (allowFrom) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.toLowerCase());
|
|
33856
33910
|
formatDiscordAllowFrom = (allowFrom) => allowFrom.map((entry) => String(entry).trim().replace(/^<@!?/, "").replace(/>$/, "").replace(/^discord:/i, "").replace(/^user:/i, "").replace(/^pk:/i, "").trim().toLowerCase()).filter(Boolean);
|
|
33857
33911
|
DOCKS = {
|
|
@@ -35927,7 +35981,7 @@ var init_manage = __esmMin((() => {
|
|
|
35927
35981
|
init_config$4();
|
|
35928
35982
|
init_config$2();
|
|
35929
35983
|
init_docker();
|
|
35930
|
-
init_registry$
|
|
35984
|
+
init_registry$4();
|
|
35931
35985
|
init_shared$1();
|
|
35932
35986
|
}));
|
|
35933
35987
|
//#endregion
|
|
@@ -37235,7 +37289,7 @@ var loggedListActionErrors;
|
|
|
37235
37289
|
var init_channel_tools = __esmMin((() => {
|
|
37236
37290
|
init_dock();
|
|
37237
37291
|
init_plugins();
|
|
37238
|
-
init_registry$
|
|
37292
|
+
init_registry$5();
|
|
37239
37293
|
init_runtime$2();
|
|
37240
37294
|
loggedListActionErrors = /* @__PURE__ */ new Set();
|
|
37241
37295
|
}));
|
|
@@ -51843,7 +51897,7 @@ function resolveCommandAuthorization(params) {
|
|
|
51843
51897
|
}
|
|
51844
51898
|
var init_command_auth = __esmMin((() => {
|
|
51845
51899
|
init_dock();
|
|
51846
|
-
init_registry$
|
|
51900
|
+
init_registry$5();
|
|
51847
51901
|
init_message_channel();
|
|
51848
51902
|
}));
|
|
51849
51903
|
//#endregion
|
|
@@ -59083,7 +59137,7 @@ var init_commands_allowlist = __esmMin((() => {
|
|
|
59083
59137
|
init_resolve_users();
|
|
59084
59138
|
init_config_writes();
|
|
59085
59139
|
init_pairing();
|
|
59086
|
-
init_registry$
|
|
59140
|
+
init_registry$5();
|
|
59087
59141
|
init_accounts$5();
|
|
59088
59142
|
init_accounts$1();
|
|
59089
59143
|
init_config$4();
|
|
@@ -63388,6 +63442,198 @@ var init_landlock = __esmMin((() => {
|
|
|
63388
63442
|
_caps = null;
|
|
63389
63443
|
}));
|
|
63390
63444
|
//#endregion
|
|
63445
|
+
//#region src/agents/sandbox/tier0/router.ts
|
|
63446
|
+
function shouldTryTier0(command) {
|
|
63447
|
+
const cmd = command.trim();
|
|
63448
|
+
if (!cmd) return false;
|
|
63449
|
+
for (const re of ESCALATE_PATTERNS) if (re.test(cmd)) return false;
|
|
63450
|
+
return true;
|
|
63451
|
+
}
|
|
63452
|
+
/**
|
|
63453
|
+
* Distinguish "just-bash can't do this" from "the user's command legitimately
|
|
63454
|
+
* failed". Known limitations in just-bash@3.0.1 include `$(( ))` arithmetic
|
|
63455
|
+
* expansion (trips its own defense-in-depth `node:module` guard) and any
|
|
63456
|
+
* unimplemented builtin. These must escalate to Docker, not surface as failures.
|
|
63457
|
+
*/
|
|
63458
|
+
function isInterpreterLimitation(stderr) {
|
|
63459
|
+
if (!stderr) return false;
|
|
63460
|
+
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);
|
|
63461
|
+
}
|
|
63462
|
+
var ESCALATE_PATTERNS;
|
|
63463
|
+
var init_router = __esmMin((() => {
|
|
63464
|
+
ESCALATE_PATTERNS = [
|
|
63465
|
+
/\b(curl|wget|nc|ncat|netcat|ssh|scp|sftp|rsync|ping|dig|nslookup|host)\b/,
|
|
63466
|
+
/\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/,
|
|
63467
|
+
/\b(apt|apt-get|dpkg|yum|dnf|apk|brew|sudo|su|systemctl|service|mount|umount|chroot|insmod|modprobe|iptables)\b/,
|
|
63468
|
+
/\b(docker|kubectl|helm|git|gh|aws|gcloud|az|terraform|ffmpeg|convert|magick|pandoc)\b/,
|
|
63469
|
+
/(^|\s|=)\/(dev|proc|sys)\//,
|
|
63470
|
+
/<\(|>\(/
|
|
63471
|
+
];
|
|
63472
|
+
}));
|
|
63473
|
+
//#endregion
|
|
63474
|
+
//#region src/agents/sandbox/tier0/virtual-sandbox.ts
|
|
63475
|
+
/**
|
|
63476
|
+
* Tier-0 virtual sandbox — an in-process bash backend powered by just-bash.
|
|
63477
|
+
*
|
|
63478
|
+
* This is the cheap/fast tier in front of the Docker sandbox. For the high-volume
|
|
63479
|
+
* "safe" majority of agent shell calls (string munging, fs reads/writes in the
|
|
63480
|
+
* workspace, grep/sed/jq-style pipelines) it runs the command in-process against
|
|
63481
|
+
* an in-memory shell with the real workspace dir mounted — no container spawn.
|
|
63482
|
+
*
|
|
63483
|
+
* Correctness: the agent's real workspace dir is mounted (read-write, symlink-
|
|
63484
|
+
* blocked, root-jailed via just-bash's ReadWriteFs) at the container workdir, so
|
|
63485
|
+
* file visibility is identical to the Docker path. `/tmp` etc. live on an
|
|
63486
|
+
* InMemoryFs base. Network and python are OFF by default (just-bash defaults).
|
|
63487
|
+
*
|
|
63488
|
+
* Anything just-bash can't serve (an unimplemented builtin, an internal error)
|
|
63489
|
+
* sets `unsupported: true`; callers MUST escalate those to the Docker backend.
|
|
63490
|
+
* See ./router.ts for the routing + interpreter-limitation heuristics.
|
|
63491
|
+
*/
|
|
63492
|
+
function withTimeout$4(p, ms) {
|
|
63493
|
+
if (!ms) return p;
|
|
63494
|
+
return new Promise((resolve, reject) => {
|
|
63495
|
+
const timer = setTimeout(() => reject(new TimeoutError()), ms);
|
|
63496
|
+
p.then((value) => {
|
|
63497
|
+
clearTimeout(timer);
|
|
63498
|
+
resolve(value);
|
|
63499
|
+
}, (error) => {
|
|
63500
|
+
clearTimeout(timer);
|
|
63501
|
+
reject(error);
|
|
63502
|
+
});
|
|
63503
|
+
});
|
|
63504
|
+
}
|
|
63505
|
+
var Tier0VirtualSandbox, TimeoutError;
|
|
63506
|
+
var init_virtual_sandbox = __esmMin((() => {
|
|
63507
|
+
init_router();
|
|
63508
|
+
Tier0VirtualSandbox = class {
|
|
63509
|
+
constructor() {
|
|
63510
|
+
this.instances = /* @__PURE__ */ new Map();
|
|
63511
|
+
}
|
|
63512
|
+
getInstance(req) {
|
|
63513
|
+
const existing = this.instances.get(req.scopeKey);
|
|
63514
|
+
if (existing && existing.workspaceHostDir === req.workspaceHostDir && existing.workdir === req.workdir) {
|
|
63515
|
+
existing.lastUsed = Date.now();
|
|
63516
|
+
return existing.bash;
|
|
63517
|
+
}
|
|
63518
|
+
const fs = new MountableFs({ base: new InMemoryFs() });
|
|
63519
|
+
fs.mount(req.workdir, new ReadWriteFs({ root: req.workspaceHostDir }));
|
|
63520
|
+
const bash = new Bash({
|
|
63521
|
+
fs,
|
|
63522
|
+
cwd: req.workdir,
|
|
63523
|
+
env: {
|
|
63524
|
+
LANG: "C.UTF-8",
|
|
63525
|
+
...req.env
|
|
63526
|
+
},
|
|
63527
|
+
executionLimits: {
|
|
63528
|
+
maxCommandCount: 1e4,
|
|
63529
|
+
maxLoopIterations: 1e6
|
|
63530
|
+
}
|
|
63531
|
+
});
|
|
63532
|
+
const inst = {
|
|
63533
|
+
bash,
|
|
63534
|
+
workspaceHostDir: req.workspaceHostDir,
|
|
63535
|
+
workdir: req.workdir,
|
|
63536
|
+
lastUsed: Date.now()
|
|
63537
|
+
};
|
|
63538
|
+
this.instances.set(req.scopeKey, inst);
|
|
63539
|
+
return bash;
|
|
63540
|
+
}
|
|
63541
|
+
async exec(req) {
|
|
63542
|
+
const startedAt = Date.now();
|
|
63543
|
+
let bash;
|
|
63544
|
+
try {
|
|
63545
|
+
bash = this.getInstance(req);
|
|
63546
|
+
} catch {
|
|
63547
|
+
return {
|
|
63548
|
+
status: "failed",
|
|
63549
|
+
exitCode: null,
|
|
63550
|
+
durationMs: Date.now() - startedAt,
|
|
63551
|
+
aggregated: "",
|
|
63552
|
+
timedOut: false,
|
|
63553
|
+
unsupported: true
|
|
63554
|
+
};
|
|
63555
|
+
}
|
|
63556
|
+
try {
|
|
63557
|
+
const result = await withTimeout$4(bash.exec(req.command, {
|
|
63558
|
+
cwd: req.workdir,
|
|
63559
|
+
env: req.env
|
|
63560
|
+
}), req.timeoutSec ? req.timeoutSec * 1e3 : void 0);
|
|
63561
|
+
const durationMs = Date.now() - startedAt;
|
|
63562
|
+
const combined = [result.stdout, result.stderr].filter(Boolean).join("").trim();
|
|
63563
|
+
if (result.exitCode === 0) return {
|
|
63564
|
+
status: "completed",
|
|
63565
|
+
exitCode: 0,
|
|
63566
|
+
durationMs,
|
|
63567
|
+
aggregated: combined,
|
|
63568
|
+
timedOut: false,
|
|
63569
|
+
unsupported: false
|
|
63570
|
+
};
|
|
63571
|
+
return {
|
|
63572
|
+
status: "failed",
|
|
63573
|
+
exitCode: result.exitCode,
|
|
63574
|
+
durationMs,
|
|
63575
|
+
aggregated: combined,
|
|
63576
|
+
timedOut: false,
|
|
63577
|
+
unsupported: isInterpreterLimitation(result.stderr)
|
|
63578
|
+
};
|
|
63579
|
+
} catch (err) {
|
|
63580
|
+
const timedOut = err instanceof TimeoutError;
|
|
63581
|
+
return {
|
|
63582
|
+
status: "failed",
|
|
63583
|
+
exitCode: null,
|
|
63584
|
+
durationMs: Date.now() - startedAt,
|
|
63585
|
+
aggregated: "",
|
|
63586
|
+
timedOut,
|
|
63587
|
+
unsupported: !timedOut
|
|
63588
|
+
};
|
|
63589
|
+
}
|
|
63590
|
+
}
|
|
63591
|
+
dispose(scopeKey) {
|
|
63592
|
+
if (scopeKey) this.instances.delete(scopeKey);
|
|
63593
|
+
else this.instances.clear();
|
|
63594
|
+
}
|
|
63595
|
+
/** test/inspection helper */
|
|
63596
|
+
get liveInstances() {
|
|
63597
|
+
return this.instances.size;
|
|
63598
|
+
}
|
|
63599
|
+
};
|
|
63600
|
+
TimeoutError = class extends Error {};
|
|
63601
|
+
}));
|
|
63602
|
+
//#endregion
|
|
63603
|
+
//#region src/agents/sandbox/tier0/registry.ts
|
|
63604
|
+
function getTier0Sandbox() {
|
|
63605
|
+
if (!singleton$1) singleton$1 = new Tier0VirtualSandbox();
|
|
63606
|
+
return singleton$1;
|
|
63607
|
+
}
|
|
63608
|
+
/**
|
|
63609
|
+
* Resolve the tier-0 binding for an exec, or undefined to use the Docker/host
|
|
63610
|
+
* path. `workspaceHostDir` is the real sandbox workspace dir (mounted into the
|
|
63611
|
+
* Docker container too), so tier-0 sees the same files.
|
|
63612
|
+
*/
|
|
63613
|
+
function resolveTier0Binding(params) {
|
|
63614
|
+
if (!params.workspaceHostDir) return;
|
|
63615
|
+
const sandboxCfg = resolveSandboxConfigForAgent(params.config ?? loadConfig(), params.agentId);
|
|
63616
|
+
if (!sandboxCfg.tier0.enabled) return;
|
|
63617
|
+
if (sandboxCfg.workspaceAccess === "ro") return;
|
|
63618
|
+
return {
|
|
63619
|
+
backend: getTier0Sandbox(),
|
|
63620
|
+
workspaceHostDir: params.workspaceHostDir
|
|
63621
|
+
};
|
|
63622
|
+
}
|
|
63623
|
+
var singleton$1;
|
|
63624
|
+
var init_registry$3 = __esmMin((() => {
|
|
63625
|
+
init_config$4();
|
|
63626
|
+
init_config$2();
|
|
63627
|
+
init_virtual_sandbox();
|
|
63628
|
+
}));
|
|
63629
|
+
//#endregion
|
|
63630
|
+
//#region src/agents/sandbox/tier0/index.ts
|
|
63631
|
+
var init_tier0 = __esmMin((() => {
|
|
63632
|
+
init_router();
|
|
63633
|
+
init_registry$3();
|
|
63634
|
+
init_virtual_sandbox();
|
|
63635
|
+
}));
|
|
63636
|
+
//#endregion
|
|
63391
63637
|
//#region src/agents/tools/automation/gateway.ts
|
|
63392
63638
|
function readGatewayCallOptions(params) {
|
|
63393
63639
|
return {
|
|
@@ -64762,10 +65008,112 @@ function emitExecSystemEvent(text, opts) {
|
|
|
64762
65008
|
});
|
|
64763
65009
|
requestHeartbeatNow({ reason: "exec-event" });
|
|
64764
65010
|
}
|
|
65011
|
+
/**
|
|
65012
|
+
* Tier-0 fast path: run `execCommand` in the in-process virtual sandbox. Returns
|
|
65013
|
+
* a completed ExecProcessHandle on success, or null when just-bash can't serve
|
|
65014
|
+
* the command (so the caller escalates to Docker). Output is sanitized and a
|
|
65015
|
+
* ProcessSession is registered exactly like the normal path, so downstream
|
|
65016
|
+
* session listing / tailing is unaffected.
|
|
65017
|
+
*/
|
|
65018
|
+
async function tryTier0Exec(args) {
|
|
65019
|
+
const { opts, sessionId, startedAt, execCommand } = args;
|
|
65020
|
+
const tier0 = opts.tier0;
|
|
65021
|
+
const sandbox = opts.sandbox;
|
|
65022
|
+
if (!tier0 || !sandbox) return null;
|
|
65023
|
+
const workdir = opts.containerWorkdir ?? sandbox.containerWorkdir;
|
|
65024
|
+
let outcome;
|
|
65025
|
+
try {
|
|
65026
|
+
outcome = await tier0.backend.exec({
|
|
65027
|
+
command: execCommand,
|
|
65028
|
+
workdir,
|
|
65029
|
+
workspaceHostDir: tier0.workspaceHostDir,
|
|
65030
|
+
env: opts.env,
|
|
65031
|
+
scopeKey: sandbox.containerName,
|
|
65032
|
+
timeoutSec: opts.timeoutSec
|
|
65033
|
+
});
|
|
65034
|
+
} catch {
|
|
65035
|
+
return null;
|
|
65036
|
+
}
|
|
65037
|
+
if (outcome.unsupported) return null;
|
|
65038
|
+
const session = {
|
|
65039
|
+
id: sessionId,
|
|
65040
|
+
command: opts.command,
|
|
65041
|
+
scopeKey: opts.scopeKey,
|
|
65042
|
+
sessionKey: opts.sessionKey,
|
|
65043
|
+
notifyOnExit: opts.notifyOnExit,
|
|
65044
|
+
notifyOnExitEmptySuccess: opts.notifyOnExitEmptySuccess === true,
|
|
65045
|
+
exitNotified: false,
|
|
65046
|
+
child: void 0,
|
|
65047
|
+
stdin: void 0,
|
|
65048
|
+
pid: void 0,
|
|
65049
|
+
startedAt,
|
|
65050
|
+
cwd: opts.workdir,
|
|
65051
|
+
maxOutputChars: opts.maxOutput,
|
|
65052
|
+
pendingMaxOutputChars: opts.pendingMaxOutput,
|
|
65053
|
+
totalOutputChars: 0,
|
|
65054
|
+
pendingStdout: [],
|
|
65055
|
+
pendingStderr: [],
|
|
65056
|
+
pendingStdoutChars: 0,
|
|
65057
|
+
pendingStderrChars: 0,
|
|
65058
|
+
aggregated: "",
|
|
65059
|
+
tail: "",
|
|
65060
|
+
exited: false,
|
|
65061
|
+
exitCode: void 0,
|
|
65062
|
+
exitSignal: void 0,
|
|
65063
|
+
truncated: false,
|
|
65064
|
+
backgrounded: false
|
|
65065
|
+
};
|
|
65066
|
+
addSession(session);
|
|
65067
|
+
const sanitized = stripAnsi(sanitizeBinaryOutput(outcome.aggregated));
|
|
65068
|
+
for (const chunk of chunkString(sanitized)) appendOutput(session, "stdout", chunk);
|
|
65069
|
+
const status = outcome.status === "completed" ? "completed" : "failed";
|
|
65070
|
+
markExited(session, outcome.exitCode ?? 0, null, status);
|
|
65071
|
+
const durationMs = Date.now() - startedAt;
|
|
65072
|
+
const aggregated = session.aggregated.trim();
|
|
65073
|
+
let result;
|
|
65074
|
+
if (status === "completed") {
|
|
65075
|
+
const exitCode = outcome.exitCode ?? 0;
|
|
65076
|
+
result = {
|
|
65077
|
+
status: "completed",
|
|
65078
|
+
exitCode,
|
|
65079
|
+
exitSignal: null,
|
|
65080
|
+
durationMs,
|
|
65081
|
+
aggregated: aggregated + (exitCode !== 0 ? `\n\n(Command exited with code ${exitCode})` : ""),
|
|
65082
|
+
timedOut: false
|
|
65083
|
+
};
|
|
65084
|
+
} else {
|
|
65085
|
+
const reason = outcome.timedOut ? `Command timed out after ${opts.timeoutSec} seconds` : `Command exited with code ${outcome.exitCode ?? 1}`;
|
|
65086
|
+
result = {
|
|
65087
|
+
status: "failed",
|
|
65088
|
+
exitCode: outcome.exitCode,
|
|
65089
|
+
exitSignal: null,
|
|
65090
|
+
durationMs,
|
|
65091
|
+
aggregated,
|
|
65092
|
+
timedOut: outcome.timedOut,
|
|
65093
|
+
reason: aggregated ? `${aggregated}\n\n${reason}` : reason
|
|
65094
|
+
};
|
|
65095
|
+
}
|
|
65096
|
+
return {
|
|
65097
|
+
session,
|
|
65098
|
+
startedAt,
|
|
65099
|
+
pid: void 0,
|
|
65100
|
+
promise: Promise.resolve(result),
|
|
65101
|
+
kill: () => {}
|
|
65102
|
+
};
|
|
65103
|
+
}
|
|
64765
65104
|
async function runExecProcess(opts) {
|
|
64766
65105
|
const startedAt = Date.now();
|
|
64767
65106
|
const sessionId = createSessionSlug();
|
|
64768
65107
|
const execCommand = opts.execCommand ?? opts.command;
|
|
65108
|
+
if (opts.tier0 && opts.sandbox && !opts.usePty && shouldTryTier0(execCommand)) {
|
|
65109
|
+
const tier0Handle = await tryTier0Exec({
|
|
65110
|
+
opts,
|
|
65111
|
+
sessionId,
|
|
65112
|
+
startedAt,
|
|
65113
|
+
execCommand
|
|
65114
|
+
});
|
|
65115
|
+
if (tier0Handle) return tier0Handle;
|
|
65116
|
+
}
|
|
64769
65117
|
const supervisor = getProcessSupervisor();
|
|
64770
65118
|
const session = {
|
|
64771
65119
|
id: sessionId,
|
|
@@ -64996,6 +65344,7 @@ var init_bash_tools_exec_runtime = __esmMin((() => {
|
|
|
64996
65344
|
init_supervisor();
|
|
64997
65345
|
init_pty_dsr();
|
|
64998
65346
|
init_shell_utils();
|
|
65347
|
+
init_tier0();
|
|
64999
65348
|
init_bash_process_registry();
|
|
65000
65349
|
init_bash_tools_shared();
|
|
65001
65350
|
DANGEROUS_HOST_ENV_VARS = new Set([
|
|
@@ -65599,7 +65948,11 @@ function createExecTool(defaults) {
|
|
|
65599
65948
|
scopeKey: defaults?.scopeKey,
|
|
65600
65949
|
sessionKey: notifySessionKey,
|
|
65601
65950
|
timeoutSec: effectiveTimeout,
|
|
65602
|
-
onUpdate
|
|
65951
|
+
onUpdate,
|
|
65952
|
+
tier0: sandbox ? resolveTier0Binding({
|
|
65953
|
+
agentId,
|
|
65954
|
+
workspaceHostDir: sandbox.workspaceDir
|
|
65955
|
+
}) : void 0
|
|
65603
65956
|
});
|
|
65604
65957
|
let yielded = false;
|
|
65605
65958
|
let yieldTimer = null;
|
|
@@ -65674,6 +66027,7 @@ var init_bash_tools_exec = __esmMin((() => {
|
|
|
65674
66027
|
init_logger$2();
|
|
65675
66028
|
init_session_key$1();
|
|
65676
66029
|
init_landlock();
|
|
66030
|
+
init_tier0();
|
|
65677
66031
|
init_gateway();
|
|
65678
66032
|
init_nodes_utils();
|
|
65679
66033
|
init_bash_process_registry();
|
|
@@ -67852,7 +68206,7 @@ var init_debug_commands = __esmMin((() => {
|
|
|
67852
68206
|
var handleConfigCommand, handleDebugCommand;
|
|
67853
68207
|
var init_commands_config = __esmMin((() => {
|
|
67854
68208
|
init_config_writes();
|
|
67855
|
-
init_registry$
|
|
68209
|
+
init_registry$5();
|
|
67856
68210
|
init_config_paths();
|
|
67857
68211
|
init_config$4();
|
|
67858
68212
|
init_runtime_overrides();
|
|
@@ -68497,11 +68851,12 @@ var init_agent_type = __esmMin((() => {
|
|
|
68497
68851
|
if (!trimmed) return [];
|
|
68498
68852
|
return [
|
|
68499
68853
|
"## Skills (mandatory)",
|
|
68500
|
-
"Before replying: scan <available_skills>
|
|
68501
|
-
|
|
68502
|
-
"- If multiple could apply: choose the most specific one, then
|
|
68503
|
-
"- If none clearly apply: do not
|
|
68504
|
-
|
|
68854
|
+
"Before replying: scan the <available_skills> entries.",
|
|
68855
|
+
"- If exactly one skill clearly applies: load its full instructions, then follow it.",
|
|
68856
|
+
"- If multiple could apply: choose the most specific one, then load/follow it.",
|
|
68857
|
+
"- If none clearly apply: do not load any skill.",
|
|
68858
|
+
`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}\`.`,
|
|
68859
|
+
"Constraints: never load more than one skill up front; only load after selecting.",
|
|
68505
68860
|
trimmed,
|
|
68506
68861
|
""
|
|
68507
68862
|
];
|
|
@@ -68647,6 +69002,37 @@ var init_agent_type = __esmMin((() => {
|
|
|
68647
69002
|
];
|
|
68648
69003
|
}));
|
|
68649
69004
|
//#endregion
|
|
69005
|
+
//#region src/agents/sections/behaviour.ts
|
|
69006
|
+
var BEHAVIOUR_SECTIONS;
|
|
69007
|
+
var init_behaviour = __esmMin((() => {
|
|
69008
|
+
init_prose_loader();
|
|
69009
|
+
BEHAVIOUR_SECTIONS = [{
|
|
69010
|
+
id: "behaviour",
|
|
69011
|
+
layer: "identity",
|
|
69012
|
+
order: 2200,
|
|
69013
|
+
modes: ["full", "minimal"],
|
|
69014
|
+
cacheable: false,
|
|
69015
|
+
header: "## Operating Rules (self-maintained)",
|
|
69016
|
+
source: "file",
|
|
69017
|
+
render: (ctx) => {
|
|
69018
|
+
const workspaceDir = ctx.params.workspaceDir;
|
|
69019
|
+
if (!workspaceDir) return [];
|
|
69020
|
+
const content = resolveProse({
|
|
69021
|
+
layer: "identity",
|
|
69022
|
+
id: "behaviour",
|
|
69023
|
+
agentWorkspaceDir: workspaceDir
|
|
69024
|
+
})?.content.trim();
|
|
69025
|
+
if (!content) return [];
|
|
69026
|
+
return [
|
|
69027
|
+
"## Operating Rules (self-maintained)",
|
|
69028
|
+
"",
|
|
69029
|
+
content,
|
|
69030
|
+
""
|
|
69031
|
+
];
|
|
69032
|
+
}
|
|
69033
|
+
}];
|
|
69034
|
+
}));
|
|
69035
|
+
//#endregion
|
|
68650
69036
|
//#region src/agents/personal-agent-id.ts
|
|
68651
69037
|
/**
|
|
68652
69038
|
* Personal-agent ID helpers.
|
|
@@ -69681,6 +70067,7 @@ function getBuiltinRegistry() {
|
|
|
69681
70067
|
_registry$1.registerAll(PLATFORM_SECTIONS);
|
|
69682
70068
|
_registry$1.registerAll(AGENT_TYPE_SECTIONS);
|
|
69683
70069
|
_registry$1.registerAll(IDENTITY_SECTIONS);
|
|
70070
|
+
_registry$1.registerAll(BEHAVIOUR_SECTIONS);
|
|
69684
70071
|
_registry$1.registerAll(USER_SECTIONS);
|
|
69685
70072
|
_registry$1.registerAll(SESSION_SECTIONS);
|
|
69686
70073
|
return _registry$1;
|
|
@@ -69699,6 +70086,7 @@ function assembleAgentSystemPrompt(params) {
|
|
|
69699
70086
|
var _registry$1;
|
|
69700
70087
|
var init_assemble = __esmMin((() => {
|
|
69701
70088
|
init_agent_type();
|
|
70089
|
+
init_behaviour();
|
|
69702
70090
|
init_identity$1();
|
|
69703
70091
|
init_platform();
|
|
69704
70092
|
init_registry$1();
|
|
@@ -77531,7 +77919,7 @@ var init_reply_elevated = __esmMin((() => {
|
|
|
77531
77919
|
init_agent_scope();
|
|
77532
77920
|
init_dock();
|
|
77533
77921
|
init_plugins();
|
|
77534
|
-
init_registry$
|
|
77922
|
+
init_registry$5();
|
|
77535
77923
|
init_message_channel();
|
|
77536
77924
|
init_string_normalization();
|
|
77537
77925
|
init_elevated_unavailable();
|
|
@@ -87671,7 +88059,7 @@ function resolvePingPongTurns(cfg) {
|
|
|
87671
88059
|
var ANNOUNCE_SKIP_TOKEN, REPLY_SKIP_TOKEN, DEFAULT_PING_PONG_TURNS, MAX_PING_PONG_TURNS;
|
|
87672
88060
|
var init_sessions_send_helpers = __esmMin((() => {
|
|
87673
88061
|
init_plugins();
|
|
87674
|
-
init_registry$
|
|
88062
|
+
init_registry$5();
|
|
87675
88063
|
ANNOUNCE_SKIP_TOKEN = "ANNOUNCE_SKIP";
|
|
87676
88064
|
REPLY_SKIP_TOKEN = "REPLY_SKIP";
|
|
87677
88065
|
DEFAULT_PING_PONG_TURNS = 5;
|
|
@@ -95412,7 +95800,7 @@ var BUN_FETCH_SOCKET_ERROR_RE, isBunFetchSocketError, formatBunFetchSocketError,
|
|
|
95412
95800
|
var init_agent_runner_utils = __esmMin((() => {
|
|
95413
95801
|
init_agent_scope();
|
|
95414
95802
|
init_dock();
|
|
95415
|
-
init_registry$
|
|
95803
|
+
init_registry$5();
|
|
95416
95804
|
init_sessions$1();
|
|
95417
95805
|
init_provider_utils();
|
|
95418
95806
|
init_usage_format();
|
|
@@ -101609,7 +101997,7 @@ function loadOpenClawPlugins(options = {}) {
|
|
|
101609
101997
|
}
|
|
101610
101998
|
var registryCache, defaultLogger, resolvePluginSdkAliasFile, resolvePluginSdkAlias;
|
|
101611
101999
|
var init_loader = __esmMin((() => {
|
|
101612
|
-
init_registry$
|
|
102000
|
+
init_registry$7();
|
|
101613
102001
|
init_subsystem();
|
|
101614
102002
|
init_utils$2();
|
|
101615
102003
|
init_version$1();
|
|
@@ -101621,7 +102009,7 @@ var init_loader = __esmMin((() => {
|
|
|
101621
102009
|
init_discovery();
|
|
101622
102010
|
init_hook_runner_global();
|
|
101623
102011
|
init_manifest_registry();
|
|
101624
|
-
init_registry$
|
|
102012
|
+
init_registry$6();
|
|
101625
102013
|
init_runtime$3();
|
|
101626
102014
|
init_runtime$1();
|
|
101627
102015
|
init_schema_validator();
|
|
@@ -112606,6 +112994,36 @@ async function prepareSessionManagerForRun(params) {
|
|
|
112606
112994
|
}
|
|
112607
112995
|
var init_session_manager_init = __esmMin((() => {}));
|
|
112608
112996
|
//#endregion
|
|
112997
|
+
//#region src/agents/pi-embedded-runner/tool-result-reduce.ts
|
|
112998
|
+
/** Pure text reducer for oversized/repetitive tool output. Never throws. */
|
|
112999
|
+
function reduceToolOutputText(text, opts) {
|
|
113000
|
+
let lines = text.split("\n");
|
|
113001
|
+
if (opts.collapseRuns) {
|
|
113002
|
+
const collapsed = [];
|
|
113003
|
+
let i = 0;
|
|
113004
|
+
while (i < lines.length) {
|
|
113005
|
+
let j = i + 1;
|
|
113006
|
+
while (j < lines.length && lines[j] === lines[i]) j += 1;
|
|
113007
|
+
const run = j - i;
|
|
113008
|
+
if (run >= 5) collapsed.push(`${lines[i]} (repeated ${run}×)`);
|
|
113009
|
+
else for (let k = i; k < j; k++) collapsed.push(lines[k]);
|
|
113010
|
+
i = j;
|
|
113011
|
+
}
|
|
113012
|
+
lines = collapsed;
|
|
113013
|
+
}
|
|
113014
|
+
if (lines.length <= opts.maxLines) return lines.join("\n");
|
|
113015
|
+
if (opts.headLines + opts.tailLines >= lines.length) return lines.join("\n");
|
|
113016
|
+
const head = lines.slice(0, opts.headLines);
|
|
113017
|
+
const tail = lines.slice(lines.length - opts.tailLines);
|
|
113018
|
+
const elided = lines.length - head.length - tail.length;
|
|
113019
|
+
return [
|
|
113020
|
+
...head,
|
|
113021
|
+
`… ${elided} lines elided …`,
|
|
113022
|
+
...tail
|
|
113023
|
+
].join("\n");
|
|
113024
|
+
}
|
|
113025
|
+
var init_tool_result_reduce = __esmMin((() => {}));
|
|
113026
|
+
//#endregion
|
|
112609
113027
|
//#region src/agents/pi-embedded-runner/tool-result-context-guard.ts
|
|
112610
113028
|
function isTextBlock(block) {
|
|
112611
113029
|
return !!block && typeof block === "object" && block.type === "text";
|
|
@@ -112740,8 +113158,28 @@ function applyMessageMutationInPlace(target, source) {
|
|
|
112740
113158
|
for (const key of Object.keys(targetRecord)) if (!(key in sourceRecord)) delete targetRecord[key];
|
|
112741
113159
|
Object.assign(targetRecord, sourceRecord);
|
|
112742
113160
|
}
|
|
113161
|
+
/**
|
|
113162
|
+
* Run the pure line-reducer over each tool-result message's text content,
|
|
113163
|
+
* mutating messages in place. Skips reductions that wouldn't shrink the text.
|
|
113164
|
+
*/
|
|
113165
|
+
function reduceToolResultOutputsInPlace(messages) {
|
|
113166
|
+
for (const message of messages) {
|
|
113167
|
+
if (!isToolResultMessage(message)) continue;
|
|
113168
|
+
const rawText = getToolResultText(message);
|
|
113169
|
+
if (!rawText) continue;
|
|
113170
|
+
const reduced = reduceToolOutputText(rawText, {
|
|
113171
|
+
maxLines: REDUCE_MAX_LINES,
|
|
113172
|
+
headLines: REDUCE_HEAD_LINES,
|
|
113173
|
+
tailLines: REDUCE_TAIL_LINES,
|
|
113174
|
+
collapseRuns: true
|
|
113175
|
+
});
|
|
113176
|
+
if (reduced === rawText) continue;
|
|
113177
|
+
applyMessageMutationInPlace(message, replaceToolResultText(message, reduced));
|
|
113178
|
+
}
|
|
113179
|
+
}
|
|
112743
113180
|
function enforceToolResultContextBudgetInPlace(params) {
|
|
112744
|
-
const { messages, contextBudgetChars, maxSingleToolResultChars } = params;
|
|
113181
|
+
const { messages, contextBudgetChars, maxSingleToolResultChars, reduceOutput } = params;
|
|
113182
|
+
if (reduceOutput) reduceToolResultOutputsInPlace(messages);
|
|
112745
113183
|
for (const message of messages) {
|
|
112746
113184
|
if (!isToolResultMessage(message)) continue;
|
|
112747
113185
|
applyMessageMutationInPlace(message, truncateToolResultToChars(message, maxSingleToolResultChars));
|
|
@@ -112763,6 +113201,7 @@ function enforceToolResultContextBudgetInPlace(params) {
|
|
|
112763
113201
|
* @returns An async function suitable for use as Agent's transformContext callback.
|
|
112764
113202
|
*/
|
|
112765
113203
|
function createToolResultContextGuardTransform(params) {
|
|
113204
|
+
const reduceOutput = params.reduceOutput !== false;
|
|
112766
113205
|
const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
|
|
112767
113206
|
const contextBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * CONTEXT_INPUT_HEADROOM_RATIO));
|
|
112768
113207
|
const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
|
|
@@ -112773,13 +113212,15 @@ function createToolResultContextGuardTransform(params) {
|
|
|
112773
113212
|
enforceToolResultContextBudgetInPlace({
|
|
112774
113213
|
messages: contextMessages,
|
|
112775
113214
|
contextBudgetChars,
|
|
112776
|
-
maxSingleToolResultChars
|
|
113215
|
+
maxSingleToolResultChars,
|
|
113216
|
+
reduceOutput
|
|
112777
113217
|
});
|
|
112778
113218
|
return contextMessages;
|
|
112779
113219
|
};
|
|
112780
113220
|
}
|
|
112781
|
-
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;
|
|
113221
|
+
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;
|
|
112782
113222
|
var init_tool_result_context_guard = __esmMin((() => {
|
|
113223
|
+
init_tool_result_reduce();
|
|
112783
113224
|
CHARS_PER_TOKEN_ESTIMATE = 4;
|
|
112784
113225
|
CONTEXT_INPUT_HEADROOM_RATIO = .75;
|
|
112785
113226
|
SINGLE_TOOL_RESULT_CONTEXT_SHARE = .5;
|
|
@@ -112788,6 +113229,9 @@ var init_tool_result_context_guard = __esmMin((() => {
|
|
|
112788
113229
|
CONTEXT_LIMIT_TRUNCATION_NOTICE = "[truncated: output exceeded context limit]";
|
|
112789
113230
|
CONTEXT_LIMIT_TRUNCATION_SUFFIX = `\n${CONTEXT_LIMIT_TRUNCATION_NOTICE}`;
|
|
112790
113231
|
PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER = "[compacted: tool output removed to free context]";
|
|
113232
|
+
REDUCE_MAX_LINES = 200;
|
|
113233
|
+
REDUCE_HEAD_LINES = 40;
|
|
113234
|
+
REDUCE_TAIL_LINES = 40;
|
|
112791
113235
|
}));
|
|
112792
113236
|
//#endregion
|
|
112793
113237
|
//#region src/agents/pi-embedded-runner/run/attempt-session.ts
|
|
@@ -112880,7 +113324,10 @@ async function createRunSession(params, env) {
|
|
|
112880
113324
|
applySystemPromptOverrideToSession(session, env.systemPromptText);
|
|
112881
113325
|
if (!session) throw new Error("Embedded agent session missing");
|
|
112882
113326
|
const activeSession = session;
|
|
112883
|
-
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
113327
|
+
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
113328
|
+
contextWindowTokens: Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? 2e5)),
|
|
113329
|
+
reduceOutput: params.config?.tools?.outputReduce?.enabled !== false
|
|
113330
|
+
});
|
|
112884
113331
|
activeSession.agent.transformContext = contextGuardTransform;
|
|
112885
113332
|
const cacheTrace = createCacheTrace({
|
|
112886
113333
|
cfg: params.config,
|