@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
|
@@ -48,6 +48,7 @@ import chokidar from "chokidar";
|
|
|
48
48
|
import MarkdownIt from "markdown-it";
|
|
49
49
|
import { WebClient } from "@slack/web-api";
|
|
50
50
|
import { Type as Type$1 } from "@sinclair/typebox";
|
|
51
|
+
import { Bash, InMemoryFs, MountableFs, ReadWriteFs } from "just-bash";
|
|
51
52
|
import fs$2 from "fs/promises";
|
|
52
53
|
import os$1 from "os";
|
|
53
54
|
import path$1 from "path";
|
|
@@ -379,7 +380,7 @@ function notifyMcpToolsChanged() {
|
|
|
379
380
|
}
|
|
380
381
|
}
|
|
381
382
|
var tools$1, sseSubscribers, EMPTY_OBJECT_SCHEMA;
|
|
382
|
-
var init_registry$
|
|
383
|
+
var init_registry$7 = __esmMin((() => {
|
|
383
384
|
tools$1 = /* @__PURE__ */ new Map();
|
|
384
385
|
sseSubscribers = /* @__PURE__ */ new Set();
|
|
385
386
|
EMPTY_OBJECT_SCHEMA = {
|
|
@@ -1320,7 +1321,7 @@ function createSubsystemLogger(subsystem) {
|
|
|
1320
1321
|
}
|
|
1321
1322
|
var SUBSYSTEM_COLORS, SUBSYSTEM_COLOR_OVERRIDES, SUBSYSTEM_PREFIXES_TO_DROP, SUBSYSTEM_MAX_SEGMENTS, CHANNEL_SUBSYSTEM_PREFIXES;
|
|
1322
1323
|
var init_subsystem = __esmMin((() => {
|
|
1323
|
-
init_registry$
|
|
1324
|
+
init_registry$5();
|
|
1324
1325
|
init_globals();
|
|
1325
1326
|
init_runtime$3();
|
|
1326
1327
|
init_progress_line();
|
|
@@ -2254,9 +2255,9 @@ function createPluginRegistry(registryParams) {
|
|
|
2254
2255
|
registerTypedHook
|
|
2255
2256
|
};
|
|
2256
2257
|
}
|
|
2257
|
-
var init_registry$
|
|
2258
|
+
var init_registry$6 = __esmMin((() => {
|
|
2258
2259
|
init_instant_commands();
|
|
2259
|
-
init_registry$
|
|
2260
|
+
init_registry$7();
|
|
2260
2261
|
init_internal_hooks();
|
|
2261
2262
|
init_utils$2();
|
|
2262
2263
|
init_channel_link_runtime();
|
|
@@ -2290,7 +2291,7 @@ function setActivePluginRuntime(runtime) {
|
|
|
2290
2291
|
}
|
|
2291
2292
|
var REGISTRY_STATE, CONFIG_STATE, RUNTIME_STATE, state$3, configState, runtimeState;
|
|
2292
2293
|
var init_runtime$2 = __esmMin((() => {
|
|
2293
|
-
init_registry$
|
|
2294
|
+
init_registry$6();
|
|
2294
2295
|
REGISTRY_STATE = Symbol.for("minion.pluginRegistryState");
|
|
2295
2296
|
CONFIG_STATE = Symbol.for("minion.pluginRegistryConfig");
|
|
2296
2297
|
RUNTIME_STATE = Symbol.for("minion.activePluginRuntime");
|
|
@@ -2337,7 +2338,7 @@ function normalizeAnyChannelId(raw) {
|
|
|
2337
2338
|
})?.plugin.id ?? null;
|
|
2338
2339
|
}
|
|
2339
2340
|
var CHAT_CHANNEL_ORDER, CHANNEL_IDS, CHAT_CHANNEL_META, CHAT_CHANNEL_ALIASES, normalizeChannelKey;
|
|
2340
|
-
var init_registry$
|
|
2341
|
+
var init_registry$5 = __esmMin((() => {
|
|
2341
2342
|
init_runtime$2();
|
|
2342
2343
|
CHAT_CHANNEL_ORDER = [
|
|
2343
2344
|
"telegram",
|
|
@@ -2510,7 +2511,7 @@ function isMarkdownCapableMessageChannel(raw) {
|
|
|
2510
2511
|
}
|
|
2511
2512
|
var INTERNAL_MESSAGE_CHANNEL, MARKDOWN_CAPABLE_CHANNELS, listPluginChannelIds, listDeliverableMessageChannels, listGatewayMessageChannels;
|
|
2512
2513
|
var init_message_channel = __esmMin((() => {
|
|
2513
|
-
init_registry$
|
|
2514
|
+
init_registry$5();
|
|
2514
2515
|
init_client_info();
|
|
2515
2516
|
init_runtime$2();
|
|
2516
2517
|
INTERNAL_MESSAGE_CHANNEL = "webchat";
|
|
@@ -4135,7 +4136,7 @@ function resolveDefaultAgentBoundAccountId(cfg, channelId) {
|
|
|
4135
4136
|
}
|
|
4136
4137
|
var init_bindings = __esmMin((() => {
|
|
4137
4138
|
init_agent_scope();
|
|
4138
|
-
init_registry$
|
|
4139
|
+
init_registry$5();
|
|
4139
4140
|
init_session_key$1();
|
|
4140
4141
|
}));
|
|
4141
4142
|
//#endregion
|
|
@@ -5020,7 +5021,7 @@ var init_dock = __esmMin((() => {
|
|
|
5020
5021
|
init_utils$2();
|
|
5021
5022
|
init_group_mentions();
|
|
5022
5023
|
init_signal$1();
|
|
5023
|
-
init_registry$
|
|
5024
|
+
init_registry$5();
|
|
5024
5025
|
formatLower = (allowFrom) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.toLowerCase());
|
|
5025
5026
|
formatDiscordAllowFrom = (allowFrom) => allowFrom.map((entry) => String(entry).trim().replace(/^<@!?/, "").replace(/>$/, "").replace(/^discord:/i, "").replace(/^user:/i, "").replace(/^pk:/i, "").trim().toLowerCase()).filter(Boolean);
|
|
5026
5027
|
DOCKS = {
|
|
@@ -5445,7 +5446,7 @@ function normalizeChannelId(raw) {
|
|
|
5445
5446
|
}
|
|
5446
5447
|
var init_plugins = __esmMin((() => {
|
|
5447
5448
|
init_runtime$2();
|
|
5448
|
-
init_registry$
|
|
5449
|
+
init_registry$5();
|
|
5449
5450
|
init_directory_config();
|
|
5450
5451
|
}));
|
|
5451
5452
|
//#endregion
|
|
@@ -6445,6 +6446,7 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
6445
6446
|
]).optional(),
|
|
6446
6447
|
perSession: z.boolean().optional(),
|
|
6447
6448
|
workspaceRoot: z.string().optional(),
|
|
6449
|
+
tier0: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
6448
6450
|
docker: SandboxDockerSchema,
|
|
6449
6451
|
browser: SandboxBrowserSchema,
|
|
6450
6452
|
prune: SandboxPruneSchema
|
|
@@ -6646,7 +6648,8 @@ var init_zod_schema_agent_runtime = __esmMin((() => {
|
|
|
6646
6648
|
exec: ToolExecSchema,
|
|
6647
6649
|
fs: ToolFsSchema,
|
|
6648
6650
|
subagents: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
6649
|
-
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional()
|
|
6651
|
+
sandbox: z.object({ tools: ToolPolicySchema }).strict().optional(),
|
|
6652
|
+
outputReduce: z.object({ enabled: z.boolean().optional() }).strict().optional()
|
|
6650
6653
|
}).strict().superRefine((value, ctx) => {
|
|
6651
6654
|
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)");
|
|
6652
6655
|
}).optional();
|
|
@@ -7142,7 +7145,7 @@ var init_shell_env = __esmMin((() => {
|
|
|
7142
7145
|
//#region src/version.ts
|
|
7143
7146
|
var VERSION;
|
|
7144
7147
|
var init_version$1 = __esmMin((() => {
|
|
7145
|
-
VERSION = "2026.6.
|
|
7148
|
+
VERSION = "2026.6.16-dev";
|
|
7146
7149
|
}));
|
|
7147
7150
|
//#endregion
|
|
7148
7151
|
//#region src/config/agent-dirs.ts
|
|
@@ -16865,6 +16868,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
16865
16868
|
importContacts: z.boolean().optional()
|
|
16866
16869
|
}).strict().optional(),
|
|
16867
16870
|
memorySync: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
16871
|
+
trajectory: z.object({ enabled: z.boolean().optional() }).strict().optional(),
|
|
16868
16872
|
personalAgentObservations: z.object({
|
|
16869
16873
|
enabled: z.boolean().optional(),
|
|
16870
16874
|
dbPath: z.string().optional()
|
|
@@ -16977,6 +16981,7 @@ var init_zod_schema = __esmMin((() => {
|
|
|
16977
16981
|
memory: MemorySchema,
|
|
16978
16982
|
skills: z.object({
|
|
16979
16983
|
allowBundled: z.array(z.string()).optional(),
|
|
16984
|
+
progressiveDisclosure: z.boolean().optional(),
|
|
16980
16985
|
load: z.object({
|
|
16981
16986
|
extraDirs: z.array(z.string()).optional(),
|
|
16982
16987
|
watch: z.boolean().optional(),
|
|
@@ -17352,7 +17357,7 @@ function validateConfigObjectWithPluginsBase(raw, opts) {
|
|
|
17352
17357
|
var AVATAR_SCHEME_RE, AVATAR_DATA_RE, AVATAR_HTTP_RE, WINDOWS_ABS_RE;
|
|
17353
17358
|
var init_validation = __esmMin((() => {
|
|
17354
17359
|
init_agent_scope();
|
|
17355
|
-
init_registry$
|
|
17360
|
+
init_registry$5();
|
|
17356
17361
|
init_config_state();
|
|
17357
17362
|
init_manifest_registry();
|
|
17358
17363
|
init_schema_validator();
|
|
@@ -22749,6 +22754,24 @@ var init_bundled_dir = __esmMin((() => {
|
|
|
22749
22754
|
init_minion_root();
|
|
22750
22755
|
}));
|
|
22751
22756
|
//#endregion
|
|
22757
|
+
//#region src/agents/skills/compact-prompt.ts
|
|
22758
|
+
/**
|
|
22759
|
+
* Render a compact, name+description-only skills listing for progressive
|
|
22760
|
+
* disclosure. The full SKILL.md body is deliberately omitted; the agent is
|
|
22761
|
+
* instructed to load it on demand via the `skill_view` tool. This keeps the
|
|
22762
|
+
* system prompt small when many skills are available.
|
|
22763
|
+
*/
|
|
22764
|
+
function formatSkillsCompact(skills) {
|
|
22765
|
+
if (skills.length === 0) return "";
|
|
22766
|
+
return [
|
|
22767
|
+
"<available_skills>",
|
|
22768
|
+
...skills.map((s) => `- **${s.name}** — ${s.description.trim()}`),
|
|
22769
|
+
"</available_skills>",
|
|
22770
|
+
"Call the `skill_view` tool with a skill name to load its full instructions before using it."
|
|
22771
|
+
].join("\n");
|
|
22772
|
+
}
|
|
22773
|
+
var init_compact_prompt = __esmMin((() => {}));
|
|
22774
|
+
//#endregion
|
|
22752
22775
|
//#region src/shared/config-eval.ts
|
|
22753
22776
|
function isTruthyValue(value) {
|
|
22754
22777
|
if (value === void 0 || value === null) return false;
|
|
@@ -23499,6 +23522,35 @@ function applySkillsPromptLimits(params) {
|
|
|
23499
23522
|
truncatedReason
|
|
23500
23523
|
};
|
|
23501
23524
|
}
|
|
23525
|
+
/**
|
|
23526
|
+
* Resolve whether progressive disclosure is enabled. Default is ON; only an
|
|
23527
|
+
* explicit `false` disables it (inlining full skill bodies in the prompt).
|
|
23528
|
+
*/
|
|
23529
|
+
function resolveProgressiveDisclosure(config, override) {
|
|
23530
|
+
if (override !== void 0) return override;
|
|
23531
|
+
return config?.skills?.progressiveDisclosure !== false;
|
|
23532
|
+
}
|
|
23533
|
+
/**
|
|
23534
|
+
* Map prompt-eligible skill entries to compact `{ name, description, body }`
|
|
23535
|
+
* records. The body is the full SKILL.md text, read from disk on demand; if the
|
|
23536
|
+
* file can't be read we fall back to an empty body (compact mode omits bodies
|
|
23537
|
+
* from the prompt anyway, so this only affects callers that inspect `body`).
|
|
23538
|
+
*/
|
|
23539
|
+
function toCompactSkills(skills) {
|
|
23540
|
+
return skills.map((skill) => {
|
|
23541
|
+
let body = "";
|
|
23542
|
+
try {
|
|
23543
|
+
body = fs.readFileSync(skill.filePath, "utf-8");
|
|
23544
|
+
} catch {
|
|
23545
|
+
body = "";
|
|
23546
|
+
}
|
|
23547
|
+
return {
|
|
23548
|
+
name: skill.name,
|
|
23549
|
+
description: skill.description ?? "",
|
|
23550
|
+
body
|
|
23551
|
+
};
|
|
23552
|
+
});
|
|
23553
|
+
}
|
|
23502
23554
|
function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
23503
23555
|
const eligible = filterSkillEntries(opts?.entries ?? loadSkillEntries(workspaceDir, opts), opts?.config, opts?.skillFilter, opts?.eligibility, opts?.denyFilter);
|
|
23504
23556
|
const resolvedSkills = eligible.filter((entry) => entry.invocation?.disableModelInvocation !== true).map((entry) => entry.skill);
|
|
@@ -23510,7 +23562,7 @@ function buildWorkspaceSkillSnapshot(workspaceDir, opts) {
|
|
|
23510
23562
|
const prompt = [
|
|
23511
23563
|
remoteNote,
|
|
23512
23564
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
23513
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
23565
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
23514
23566
|
].filter(Boolean).join("\n");
|
|
23515
23567
|
const skillFilter = normalizeSkillFilter(opts?.skillFilter);
|
|
23516
23568
|
const denyFilter = normalizeSkillFilter(opts?.denyFilter);
|
|
@@ -23537,7 +23589,7 @@ function buildWorkspaceSkillsPrompt(workspaceDir, opts) {
|
|
|
23537
23589
|
return [
|
|
23538
23590
|
remoteNote,
|
|
23539
23591
|
truncated ? `⚠️ Skills truncated: included ${skillsForPrompt.length} of ${resolvedSkills.length}. Run \`openclaw skills check\` to audit.` : "",
|
|
23540
|
-
formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
23592
|
+
resolveProgressiveDisclosure(opts?.config, opts?.progressive) ? formatSkillsCompact(toCompactSkills(skillsForPrompt)) : formatSkillsForPrompt(compactSkillPaths(skillsForPrompt))
|
|
23541
23593
|
].filter(Boolean).join("\n");
|
|
23542
23594
|
}
|
|
23543
23595
|
function resolveSkillsPromptForRun(params) {
|
|
@@ -23690,6 +23742,7 @@ var init_workspace$1 = __esmMin((() => {
|
|
|
23690
23742
|
init_utils$2();
|
|
23691
23743
|
init_sandbox_paths();
|
|
23692
23744
|
init_bundled_dir();
|
|
23745
|
+
init_compact_prompt();
|
|
23693
23746
|
init_config$3();
|
|
23694
23747
|
init_filter();
|
|
23695
23748
|
init_frontmatter();
|
|
@@ -25420,7 +25473,7 @@ var init_parse$2 = __esmMin((() => {
|
|
|
25420
25473
|
ERROR_PAYLOAD_PREFIX_RE = /^(?:error|api\s*error|apierror|openai\s*error|anthropic\s*error|gateway\s*error)[:\s-]+/i;
|
|
25421
25474
|
})), 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;
|
|
25422
25475
|
var init_constants$2 = __esmMin((() => {
|
|
25423
|
-
init_registry$
|
|
25476
|
+
init_registry$5();
|
|
25424
25477
|
DEFAULT_SANDBOX_WORKSPACE_ROOT = path.join(STATE_DIR, "sandboxes");
|
|
25425
25478
|
DEFAULT_SANDBOX_IMAGE = "minion-sandbox:bookworm-slim";
|
|
25426
25479
|
DEFAULT_TOOL_ALLOW = [
|
|
@@ -25924,6 +25977,7 @@ function resolveSandboxConfigForAgent(cfg, agentId) {
|
|
|
25924
25977
|
scope,
|
|
25925
25978
|
workspaceAccess: agentSandbox?.workspaceAccess ?? agent?.workspaceAccess ?? "none",
|
|
25926
25979
|
workspaceRoot: agentSandbox?.workspaceRoot ?? agent?.workspaceRoot ?? DEFAULT_SANDBOX_WORKSPACE_ROOT,
|
|
25980
|
+
tier0: { enabled: agentSandbox?.tier0?.enabled ?? agent?.tier0?.enabled ?? false },
|
|
25927
25981
|
docker: resolveSandboxDockerConfig({
|
|
25928
25982
|
scope,
|
|
25929
25983
|
globalDocker: agent?.docker,
|
|
@@ -33929,7 +33983,7 @@ async function removeBrowserRegistryEntry(containerName) {
|
|
|
33929
33983
|
return next;
|
|
33930
33984
|
});
|
|
33931
33985
|
}
|
|
33932
|
-
var init_registry$
|
|
33986
|
+
var init_registry$4 = __esmMin((() => {
|
|
33933
33987
|
init_session_write_lock();
|
|
33934
33988
|
init_constants$2();
|
|
33935
33989
|
}));
|
|
@@ -34390,7 +34444,7 @@ var init_docker = __esmMin((() => {
|
|
|
34390
34444
|
init_runtime$3();
|
|
34391
34445
|
init_config_hash();
|
|
34392
34446
|
init_constants$2();
|
|
34393
|
-
init_registry$
|
|
34447
|
+
init_registry$4();
|
|
34394
34448
|
init_shared$1();
|
|
34395
34449
|
init_validate_sandbox_security();
|
|
34396
34450
|
log$44 = createSubsystemLogger("sandbox/docker");
|
|
@@ -34616,7 +34670,7 @@ var init_browser = __esmMin((() => {
|
|
|
34616
34670
|
init_config$2();
|
|
34617
34671
|
init_constants$2();
|
|
34618
34672
|
init_docker();
|
|
34619
|
-
init_registry$
|
|
34673
|
+
init_registry$4();
|
|
34620
34674
|
init_shared$1();
|
|
34621
34675
|
init_tool_policy();
|
|
34622
34676
|
HOT_BROWSER_WINDOW_MS = 300 * 1e3;
|
|
@@ -34982,7 +35036,7 @@ var init_prune = __esmMin((() => {
|
|
|
34982
35036
|
init_runtime$3();
|
|
34983
35037
|
init_browser_bridges();
|
|
34984
35038
|
init_docker();
|
|
34985
|
-
init_registry$
|
|
35039
|
+
init_registry$4();
|
|
34986
35040
|
lastPruneAtMs = 0;
|
|
34987
35041
|
}));
|
|
34988
35042
|
//#endregion
|
|
@@ -36852,7 +36906,7 @@ var init_manage = __esmMin((() => {
|
|
|
36852
36906
|
init_config$4();
|
|
36853
36907
|
init_config$2();
|
|
36854
36908
|
init_docker();
|
|
36855
|
-
init_registry$
|
|
36909
|
+
init_registry$4();
|
|
36856
36910
|
init_shared$1();
|
|
36857
36911
|
}));
|
|
36858
36912
|
//#endregion
|
|
@@ -37952,7 +38006,7 @@ var loggedListActionErrors;
|
|
|
37952
38006
|
var init_channel_tools = __esmMin((() => {
|
|
37953
38007
|
init_dock();
|
|
37954
38008
|
init_plugins();
|
|
37955
|
-
init_registry$
|
|
38009
|
+
init_registry$5();
|
|
37956
38010
|
init_runtime$3();
|
|
37957
38011
|
loggedListActionErrors = /* @__PURE__ */ new Set();
|
|
37958
38012
|
}));
|
|
@@ -51395,7 +51449,7 @@ function resolveCommandAuthorization(params) {
|
|
|
51395
51449
|
}
|
|
51396
51450
|
var init_command_auth = __esmMin((() => {
|
|
51397
51451
|
init_dock();
|
|
51398
|
-
init_registry$
|
|
51452
|
+
init_registry$5();
|
|
51399
51453
|
init_message_channel();
|
|
51400
51454
|
}));
|
|
51401
51455
|
//#endregion
|
|
@@ -58415,7 +58469,7 @@ var init_commands_allowlist = __esmMin((() => {
|
|
|
58415
58469
|
init_resolve_users();
|
|
58416
58470
|
init_config_writes();
|
|
58417
58471
|
init_pairing();
|
|
58418
|
-
init_registry$
|
|
58472
|
+
init_registry$5();
|
|
58419
58473
|
init_accounts$1();
|
|
58420
58474
|
init_accounts();
|
|
58421
58475
|
init_config$4();
|
|
@@ -62720,6 +62774,198 @@ var init_landlock = __esmMin((() => {
|
|
|
62720
62774
|
_caps = null;
|
|
62721
62775
|
}));
|
|
62722
62776
|
//#endregion
|
|
62777
|
+
//#region src/agents/sandbox/tier0/router.ts
|
|
62778
|
+
function shouldTryTier0(command) {
|
|
62779
|
+
const cmd = command.trim();
|
|
62780
|
+
if (!cmd) return false;
|
|
62781
|
+
for (const re of ESCALATE_PATTERNS) if (re.test(cmd)) return false;
|
|
62782
|
+
return true;
|
|
62783
|
+
}
|
|
62784
|
+
/**
|
|
62785
|
+
* Distinguish "just-bash can't do this" from "the user's command legitimately
|
|
62786
|
+
* failed". Known limitations in just-bash@3.0.1 include `$(( ))` arithmetic
|
|
62787
|
+
* expansion (trips its own defense-in-depth `node:module` guard) and any
|
|
62788
|
+
* unimplemented builtin. These must escalate to Docker, not surface as failures.
|
|
62789
|
+
*/
|
|
62790
|
+
function isInterpreterLimitation(stderr) {
|
|
62791
|
+
if (!stderr) return false;
|
|
62792
|
+
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);
|
|
62793
|
+
}
|
|
62794
|
+
var ESCALATE_PATTERNS;
|
|
62795
|
+
var init_router = __esmMin((() => {
|
|
62796
|
+
ESCALATE_PATTERNS = [
|
|
62797
|
+
/\b(curl|wget|nc|ncat|netcat|ssh|scp|sftp|rsync|ping|dig|nslookup|host)\b/,
|
|
62798
|
+
/\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/,
|
|
62799
|
+
/\b(apt|apt-get|dpkg|yum|dnf|apk|brew|sudo|su|systemctl|service|mount|umount|chroot|insmod|modprobe|iptables)\b/,
|
|
62800
|
+
/\b(docker|kubectl|helm|git|gh|aws|gcloud|az|terraform|ffmpeg|convert|magick|pandoc)\b/,
|
|
62801
|
+
/(^|\s|=)\/(dev|proc|sys)\//,
|
|
62802
|
+
/<\(|>\(/
|
|
62803
|
+
];
|
|
62804
|
+
}));
|
|
62805
|
+
//#endregion
|
|
62806
|
+
//#region src/agents/sandbox/tier0/virtual-sandbox.ts
|
|
62807
|
+
/**
|
|
62808
|
+
* Tier-0 virtual sandbox — an in-process bash backend powered by just-bash.
|
|
62809
|
+
*
|
|
62810
|
+
* This is the cheap/fast tier in front of the Docker sandbox. For the high-volume
|
|
62811
|
+
* "safe" majority of agent shell calls (string munging, fs reads/writes in the
|
|
62812
|
+
* workspace, grep/sed/jq-style pipelines) it runs the command in-process against
|
|
62813
|
+
* an in-memory shell with the real workspace dir mounted — no container spawn.
|
|
62814
|
+
*
|
|
62815
|
+
* Correctness: the agent's real workspace dir is mounted (read-write, symlink-
|
|
62816
|
+
* blocked, root-jailed via just-bash's ReadWriteFs) at the container workdir, so
|
|
62817
|
+
* file visibility is identical to the Docker path. `/tmp` etc. live on an
|
|
62818
|
+
* InMemoryFs base. Network and python are OFF by default (just-bash defaults).
|
|
62819
|
+
*
|
|
62820
|
+
* Anything just-bash can't serve (an unimplemented builtin, an internal error)
|
|
62821
|
+
* sets `unsupported: true`; callers MUST escalate those to the Docker backend.
|
|
62822
|
+
* See ./router.ts for the routing + interpreter-limitation heuristics.
|
|
62823
|
+
*/
|
|
62824
|
+
function withTimeout$5(p, ms) {
|
|
62825
|
+
if (!ms) return p;
|
|
62826
|
+
return new Promise((resolve, reject) => {
|
|
62827
|
+
const timer = setTimeout(() => reject(new TimeoutError()), ms);
|
|
62828
|
+
p.then((value) => {
|
|
62829
|
+
clearTimeout(timer);
|
|
62830
|
+
resolve(value);
|
|
62831
|
+
}, (error) => {
|
|
62832
|
+
clearTimeout(timer);
|
|
62833
|
+
reject(error);
|
|
62834
|
+
});
|
|
62835
|
+
});
|
|
62836
|
+
}
|
|
62837
|
+
var Tier0VirtualSandbox, TimeoutError;
|
|
62838
|
+
var init_virtual_sandbox = __esmMin((() => {
|
|
62839
|
+
init_router();
|
|
62840
|
+
Tier0VirtualSandbox = class {
|
|
62841
|
+
constructor() {
|
|
62842
|
+
this.instances = /* @__PURE__ */ new Map();
|
|
62843
|
+
}
|
|
62844
|
+
getInstance(req) {
|
|
62845
|
+
const existing = this.instances.get(req.scopeKey);
|
|
62846
|
+
if (existing && existing.workspaceHostDir === req.workspaceHostDir && existing.workdir === req.workdir) {
|
|
62847
|
+
existing.lastUsed = Date.now();
|
|
62848
|
+
return existing.bash;
|
|
62849
|
+
}
|
|
62850
|
+
const fs = new MountableFs({ base: new InMemoryFs() });
|
|
62851
|
+
fs.mount(req.workdir, new ReadWriteFs({ root: req.workspaceHostDir }));
|
|
62852
|
+
const bash = new Bash({
|
|
62853
|
+
fs,
|
|
62854
|
+
cwd: req.workdir,
|
|
62855
|
+
env: {
|
|
62856
|
+
LANG: "C.UTF-8",
|
|
62857
|
+
...req.env
|
|
62858
|
+
},
|
|
62859
|
+
executionLimits: {
|
|
62860
|
+
maxCommandCount: 1e4,
|
|
62861
|
+
maxLoopIterations: 1e6
|
|
62862
|
+
}
|
|
62863
|
+
});
|
|
62864
|
+
const inst = {
|
|
62865
|
+
bash,
|
|
62866
|
+
workspaceHostDir: req.workspaceHostDir,
|
|
62867
|
+
workdir: req.workdir,
|
|
62868
|
+
lastUsed: Date.now()
|
|
62869
|
+
};
|
|
62870
|
+
this.instances.set(req.scopeKey, inst);
|
|
62871
|
+
return bash;
|
|
62872
|
+
}
|
|
62873
|
+
async exec(req) {
|
|
62874
|
+
const startedAt = Date.now();
|
|
62875
|
+
let bash;
|
|
62876
|
+
try {
|
|
62877
|
+
bash = this.getInstance(req);
|
|
62878
|
+
} catch {
|
|
62879
|
+
return {
|
|
62880
|
+
status: "failed",
|
|
62881
|
+
exitCode: null,
|
|
62882
|
+
durationMs: Date.now() - startedAt,
|
|
62883
|
+
aggregated: "",
|
|
62884
|
+
timedOut: false,
|
|
62885
|
+
unsupported: true
|
|
62886
|
+
};
|
|
62887
|
+
}
|
|
62888
|
+
try {
|
|
62889
|
+
const result = await withTimeout$5(bash.exec(req.command, {
|
|
62890
|
+
cwd: req.workdir,
|
|
62891
|
+
env: req.env
|
|
62892
|
+
}), req.timeoutSec ? req.timeoutSec * 1e3 : void 0);
|
|
62893
|
+
const durationMs = Date.now() - startedAt;
|
|
62894
|
+
const combined = [result.stdout, result.stderr].filter(Boolean).join("").trim();
|
|
62895
|
+
if (result.exitCode === 0) return {
|
|
62896
|
+
status: "completed",
|
|
62897
|
+
exitCode: 0,
|
|
62898
|
+
durationMs,
|
|
62899
|
+
aggregated: combined,
|
|
62900
|
+
timedOut: false,
|
|
62901
|
+
unsupported: false
|
|
62902
|
+
};
|
|
62903
|
+
return {
|
|
62904
|
+
status: "failed",
|
|
62905
|
+
exitCode: result.exitCode,
|
|
62906
|
+
durationMs,
|
|
62907
|
+
aggregated: combined,
|
|
62908
|
+
timedOut: false,
|
|
62909
|
+
unsupported: isInterpreterLimitation(result.stderr)
|
|
62910
|
+
};
|
|
62911
|
+
} catch (err) {
|
|
62912
|
+
const timedOut = err instanceof TimeoutError;
|
|
62913
|
+
return {
|
|
62914
|
+
status: "failed",
|
|
62915
|
+
exitCode: null,
|
|
62916
|
+
durationMs: Date.now() - startedAt,
|
|
62917
|
+
aggregated: "",
|
|
62918
|
+
timedOut,
|
|
62919
|
+
unsupported: !timedOut
|
|
62920
|
+
};
|
|
62921
|
+
}
|
|
62922
|
+
}
|
|
62923
|
+
dispose(scopeKey) {
|
|
62924
|
+
if (scopeKey) this.instances.delete(scopeKey);
|
|
62925
|
+
else this.instances.clear();
|
|
62926
|
+
}
|
|
62927
|
+
/** test/inspection helper */
|
|
62928
|
+
get liveInstances() {
|
|
62929
|
+
return this.instances.size;
|
|
62930
|
+
}
|
|
62931
|
+
};
|
|
62932
|
+
TimeoutError = class extends Error {};
|
|
62933
|
+
}));
|
|
62934
|
+
//#endregion
|
|
62935
|
+
//#region src/agents/sandbox/tier0/registry.ts
|
|
62936
|
+
function getTier0Sandbox() {
|
|
62937
|
+
if (!singleton$1) singleton$1 = new Tier0VirtualSandbox();
|
|
62938
|
+
return singleton$1;
|
|
62939
|
+
}
|
|
62940
|
+
/**
|
|
62941
|
+
* Resolve the tier-0 binding for an exec, or undefined to use the Docker/host
|
|
62942
|
+
* path. `workspaceHostDir` is the real sandbox workspace dir (mounted into the
|
|
62943
|
+
* Docker container too), so tier-0 sees the same files.
|
|
62944
|
+
*/
|
|
62945
|
+
function resolveTier0Binding(params) {
|
|
62946
|
+
if (!params.workspaceHostDir) return;
|
|
62947
|
+
const sandboxCfg = resolveSandboxConfigForAgent(params.config ?? loadConfig(), params.agentId);
|
|
62948
|
+
if (!sandboxCfg.tier0.enabled) return;
|
|
62949
|
+
if (sandboxCfg.workspaceAccess === "ro") return;
|
|
62950
|
+
return {
|
|
62951
|
+
backend: getTier0Sandbox(),
|
|
62952
|
+
workspaceHostDir: params.workspaceHostDir
|
|
62953
|
+
};
|
|
62954
|
+
}
|
|
62955
|
+
var singleton$1;
|
|
62956
|
+
var init_registry$3 = __esmMin((() => {
|
|
62957
|
+
init_config$4();
|
|
62958
|
+
init_config$2();
|
|
62959
|
+
init_virtual_sandbox();
|
|
62960
|
+
}));
|
|
62961
|
+
//#endregion
|
|
62962
|
+
//#region src/agents/sandbox/tier0/index.ts
|
|
62963
|
+
var init_tier0 = __esmMin((() => {
|
|
62964
|
+
init_router();
|
|
62965
|
+
init_registry$3();
|
|
62966
|
+
init_virtual_sandbox();
|
|
62967
|
+
}));
|
|
62968
|
+
//#endregion
|
|
62723
62969
|
//#region src/agents/tools/automation/gateway.ts
|
|
62724
62970
|
function readGatewayCallOptions(params) {
|
|
62725
62971
|
return {
|
|
@@ -64094,10 +64340,112 @@ function emitExecSystemEvent(text, opts) {
|
|
|
64094
64340
|
});
|
|
64095
64341
|
requestHeartbeatNow({ reason: "exec-event" });
|
|
64096
64342
|
}
|
|
64343
|
+
/**
|
|
64344
|
+
* Tier-0 fast path: run `execCommand` in the in-process virtual sandbox. Returns
|
|
64345
|
+
* a completed ExecProcessHandle on success, or null when just-bash can't serve
|
|
64346
|
+
* the command (so the caller escalates to Docker). Output is sanitized and a
|
|
64347
|
+
* ProcessSession is registered exactly like the normal path, so downstream
|
|
64348
|
+
* session listing / tailing is unaffected.
|
|
64349
|
+
*/
|
|
64350
|
+
async function tryTier0Exec(args) {
|
|
64351
|
+
const { opts, sessionId, startedAt, execCommand } = args;
|
|
64352
|
+
const tier0 = opts.tier0;
|
|
64353
|
+
const sandbox = opts.sandbox;
|
|
64354
|
+
if (!tier0 || !sandbox) return null;
|
|
64355
|
+
const workdir = opts.containerWorkdir ?? sandbox.containerWorkdir;
|
|
64356
|
+
let outcome;
|
|
64357
|
+
try {
|
|
64358
|
+
outcome = await tier0.backend.exec({
|
|
64359
|
+
command: execCommand,
|
|
64360
|
+
workdir,
|
|
64361
|
+
workspaceHostDir: tier0.workspaceHostDir,
|
|
64362
|
+
env: opts.env,
|
|
64363
|
+
scopeKey: sandbox.containerName,
|
|
64364
|
+
timeoutSec: opts.timeoutSec
|
|
64365
|
+
});
|
|
64366
|
+
} catch {
|
|
64367
|
+
return null;
|
|
64368
|
+
}
|
|
64369
|
+
if (outcome.unsupported) return null;
|
|
64370
|
+
const session = {
|
|
64371
|
+
id: sessionId,
|
|
64372
|
+
command: opts.command,
|
|
64373
|
+
scopeKey: opts.scopeKey,
|
|
64374
|
+
sessionKey: opts.sessionKey,
|
|
64375
|
+
notifyOnExit: opts.notifyOnExit,
|
|
64376
|
+
notifyOnExitEmptySuccess: opts.notifyOnExitEmptySuccess === true,
|
|
64377
|
+
exitNotified: false,
|
|
64378
|
+
child: void 0,
|
|
64379
|
+
stdin: void 0,
|
|
64380
|
+
pid: void 0,
|
|
64381
|
+
startedAt,
|
|
64382
|
+
cwd: opts.workdir,
|
|
64383
|
+
maxOutputChars: opts.maxOutput,
|
|
64384
|
+
pendingMaxOutputChars: opts.pendingMaxOutput,
|
|
64385
|
+
totalOutputChars: 0,
|
|
64386
|
+
pendingStdout: [],
|
|
64387
|
+
pendingStderr: [],
|
|
64388
|
+
pendingStdoutChars: 0,
|
|
64389
|
+
pendingStderrChars: 0,
|
|
64390
|
+
aggregated: "",
|
|
64391
|
+
tail: "",
|
|
64392
|
+
exited: false,
|
|
64393
|
+
exitCode: void 0,
|
|
64394
|
+
exitSignal: void 0,
|
|
64395
|
+
truncated: false,
|
|
64396
|
+
backgrounded: false
|
|
64397
|
+
};
|
|
64398
|
+
addSession(session);
|
|
64399
|
+
const sanitized = stripAnsi(sanitizeBinaryOutput(outcome.aggregated));
|
|
64400
|
+
for (const chunk of chunkString(sanitized)) appendOutput(session, "stdout", chunk);
|
|
64401
|
+
const status = outcome.status === "completed" ? "completed" : "failed";
|
|
64402
|
+
markExited(session, outcome.exitCode ?? 0, null, status);
|
|
64403
|
+
const durationMs = Date.now() - startedAt;
|
|
64404
|
+
const aggregated = session.aggregated.trim();
|
|
64405
|
+
let result;
|
|
64406
|
+
if (status === "completed") {
|
|
64407
|
+
const exitCode = outcome.exitCode ?? 0;
|
|
64408
|
+
result = {
|
|
64409
|
+
status: "completed",
|
|
64410
|
+
exitCode,
|
|
64411
|
+
exitSignal: null,
|
|
64412
|
+
durationMs,
|
|
64413
|
+
aggregated: aggregated + (exitCode !== 0 ? `\n\n(Command exited with code ${exitCode})` : ""),
|
|
64414
|
+
timedOut: false
|
|
64415
|
+
};
|
|
64416
|
+
} else {
|
|
64417
|
+
const reason = outcome.timedOut ? `Command timed out after ${opts.timeoutSec} seconds` : `Command exited with code ${outcome.exitCode ?? 1}`;
|
|
64418
|
+
result = {
|
|
64419
|
+
status: "failed",
|
|
64420
|
+
exitCode: outcome.exitCode,
|
|
64421
|
+
exitSignal: null,
|
|
64422
|
+
durationMs,
|
|
64423
|
+
aggregated,
|
|
64424
|
+
timedOut: outcome.timedOut,
|
|
64425
|
+
reason: aggregated ? `${aggregated}\n\n${reason}` : reason
|
|
64426
|
+
};
|
|
64427
|
+
}
|
|
64428
|
+
return {
|
|
64429
|
+
session,
|
|
64430
|
+
startedAt,
|
|
64431
|
+
pid: void 0,
|
|
64432
|
+
promise: Promise.resolve(result),
|
|
64433
|
+
kill: () => {}
|
|
64434
|
+
};
|
|
64435
|
+
}
|
|
64097
64436
|
async function runExecProcess(opts) {
|
|
64098
64437
|
const startedAt = Date.now();
|
|
64099
64438
|
const sessionId = createSessionSlug();
|
|
64100
64439
|
const execCommand = opts.execCommand ?? opts.command;
|
|
64440
|
+
if (opts.tier0 && opts.sandbox && !opts.usePty && shouldTryTier0(execCommand)) {
|
|
64441
|
+
const tier0Handle = await tryTier0Exec({
|
|
64442
|
+
opts,
|
|
64443
|
+
sessionId,
|
|
64444
|
+
startedAt,
|
|
64445
|
+
execCommand
|
|
64446
|
+
});
|
|
64447
|
+
if (tier0Handle) return tier0Handle;
|
|
64448
|
+
}
|
|
64101
64449
|
const supervisor = getProcessSupervisor();
|
|
64102
64450
|
const session = {
|
|
64103
64451
|
id: sessionId,
|
|
@@ -64328,6 +64676,7 @@ var init_bash_tools_exec_runtime = __esmMin((() => {
|
|
|
64328
64676
|
init_supervisor();
|
|
64329
64677
|
init_pty_dsr();
|
|
64330
64678
|
init_shell_utils();
|
|
64679
|
+
init_tier0();
|
|
64331
64680
|
init_bash_process_registry();
|
|
64332
64681
|
init_bash_tools_shared();
|
|
64333
64682
|
DANGEROUS_HOST_ENV_VARS = new Set([
|
|
@@ -64931,7 +65280,11 @@ function createExecTool(defaults) {
|
|
|
64931
65280
|
scopeKey: defaults?.scopeKey,
|
|
64932
65281
|
sessionKey: notifySessionKey,
|
|
64933
65282
|
timeoutSec: effectiveTimeout,
|
|
64934
|
-
onUpdate
|
|
65283
|
+
onUpdate,
|
|
65284
|
+
tier0: sandbox ? resolveTier0Binding({
|
|
65285
|
+
agentId,
|
|
65286
|
+
workspaceHostDir: sandbox.workspaceDir
|
|
65287
|
+
}) : void 0
|
|
64935
65288
|
});
|
|
64936
65289
|
let yielded = false;
|
|
64937
65290
|
let yieldTimer = null;
|
|
@@ -65006,6 +65359,7 @@ var init_bash_tools_exec = __esmMin((() => {
|
|
|
65006
65359
|
init_logger$2();
|
|
65007
65360
|
init_session_key$1();
|
|
65008
65361
|
init_landlock();
|
|
65362
|
+
init_tier0();
|
|
65009
65363
|
init_gateway();
|
|
65010
65364
|
init_nodes_utils();
|
|
65011
65365
|
init_bash_process_registry();
|
|
@@ -67210,7 +67564,7 @@ var init_debug_commands = __esmMin((() => {
|
|
|
67210
67564
|
var handleConfigCommand, handleDebugCommand;
|
|
67211
67565
|
var init_commands_config = __esmMin((() => {
|
|
67212
67566
|
init_config_writes();
|
|
67213
|
-
init_registry$
|
|
67567
|
+
init_registry$5();
|
|
67214
67568
|
init_config_paths();
|
|
67215
67569
|
init_config$4();
|
|
67216
67570
|
init_runtime_overrides();
|
|
@@ -67855,11 +68209,12 @@ var init_agent_type = __esmMin((() => {
|
|
|
67855
68209
|
if (!trimmed) return [];
|
|
67856
68210
|
return [
|
|
67857
68211
|
"## Skills (mandatory)",
|
|
67858
|
-
"Before replying: scan <available_skills>
|
|
67859
|
-
|
|
67860
|
-
"- If multiple could apply: choose the most specific one, then
|
|
67861
|
-
"- If none clearly apply: do not
|
|
67862
|
-
|
|
68212
|
+
"Before replying: scan the <available_skills> entries.",
|
|
68213
|
+
"- If exactly one skill clearly applies: load its full instructions, then follow it.",
|
|
68214
|
+
"- If multiple could apply: choose the most specific one, then load/follow it.",
|
|
68215
|
+
"- If none clearly apply: do not load any skill.",
|
|
68216
|
+
`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}\`.`,
|
|
68217
|
+
"Constraints: never load more than one skill up front; only load after selecting.",
|
|
67863
68218
|
trimmed,
|
|
67864
68219
|
""
|
|
67865
68220
|
];
|
|
@@ -68005,6 +68360,37 @@ var init_agent_type = __esmMin((() => {
|
|
|
68005
68360
|
];
|
|
68006
68361
|
}));
|
|
68007
68362
|
//#endregion
|
|
68363
|
+
//#region src/agents/sections/behaviour.ts
|
|
68364
|
+
var BEHAVIOUR_SECTIONS;
|
|
68365
|
+
var init_behaviour = __esmMin((() => {
|
|
68366
|
+
init_prose_loader();
|
|
68367
|
+
BEHAVIOUR_SECTIONS = [{
|
|
68368
|
+
id: "behaviour",
|
|
68369
|
+
layer: "identity",
|
|
68370
|
+
order: 2200,
|
|
68371
|
+
modes: ["full", "minimal"],
|
|
68372
|
+
cacheable: false,
|
|
68373
|
+
header: "## Operating Rules (self-maintained)",
|
|
68374
|
+
source: "file",
|
|
68375
|
+
render: (ctx) => {
|
|
68376
|
+
const workspaceDir = ctx.params.workspaceDir;
|
|
68377
|
+
if (!workspaceDir) return [];
|
|
68378
|
+
const content = resolveProse({
|
|
68379
|
+
layer: "identity",
|
|
68380
|
+
id: "behaviour",
|
|
68381
|
+
agentWorkspaceDir: workspaceDir
|
|
68382
|
+
})?.content.trim();
|
|
68383
|
+
if (!content) return [];
|
|
68384
|
+
return [
|
|
68385
|
+
"## Operating Rules (self-maintained)",
|
|
68386
|
+
"",
|
|
68387
|
+
content,
|
|
68388
|
+
""
|
|
68389
|
+
];
|
|
68390
|
+
}
|
|
68391
|
+
}];
|
|
68392
|
+
}));
|
|
68393
|
+
//#endregion
|
|
68008
68394
|
//#region src/agents/personal-agent-id.ts
|
|
68009
68395
|
/**
|
|
68010
68396
|
* Personal-agent ID helpers.
|
|
@@ -69039,6 +69425,7 @@ function getBuiltinRegistry() {
|
|
|
69039
69425
|
_registry$1.registerAll(PLATFORM_SECTIONS);
|
|
69040
69426
|
_registry$1.registerAll(AGENT_TYPE_SECTIONS);
|
|
69041
69427
|
_registry$1.registerAll(IDENTITY_SECTIONS);
|
|
69428
|
+
_registry$1.registerAll(BEHAVIOUR_SECTIONS);
|
|
69042
69429
|
_registry$1.registerAll(USER_SECTIONS);
|
|
69043
69430
|
_registry$1.registerAll(SESSION_SECTIONS);
|
|
69044
69431
|
return _registry$1;
|
|
@@ -69057,6 +69444,7 @@ function assembleAgentSystemPrompt(params) {
|
|
|
69057
69444
|
var _registry$1;
|
|
69058
69445
|
var init_assemble = __esmMin((() => {
|
|
69059
69446
|
init_agent_type();
|
|
69447
|
+
init_behaviour();
|
|
69060
69448
|
init_identity();
|
|
69061
69449
|
init_platform();
|
|
69062
69450
|
init_registry$1();
|
|
@@ -76887,7 +77275,7 @@ var init_reply_elevated = __esmMin((() => {
|
|
|
76887
77275
|
init_agent_scope();
|
|
76888
77276
|
init_dock();
|
|
76889
77277
|
init_plugins();
|
|
76890
|
-
init_registry$
|
|
77278
|
+
init_registry$5();
|
|
76891
77279
|
init_message_channel();
|
|
76892
77280
|
init_string_normalization();
|
|
76893
77281
|
init_elevated_unavailable();
|
|
@@ -86590,7 +86978,7 @@ function resolvePingPongTurns(cfg) {
|
|
|
86590
86978
|
var ANNOUNCE_SKIP_TOKEN, REPLY_SKIP_TOKEN, DEFAULT_PING_PONG_TURNS, MAX_PING_PONG_TURNS;
|
|
86591
86979
|
var init_sessions_send_helpers = __esmMin((() => {
|
|
86592
86980
|
init_plugins();
|
|
86593
|
-
init_registry$
|
|
86981
|
+
init_registry$5();
|
|
86594
86982
|
ANNOUNCE_SKIP_TOKEN = "ANNOUNCE_SKIP";
|
|
86595
86983
|
REPLY_SKIP_TOKEN = "REPLY_SKIP";
|
|
86596
86984
|
DEFAULT_PING_PONG_TURNS = 5;
|
|
@@ -94331,7 +94719,7 @@ var BUN_FETCH_SOCKET_ERROR_RE, isBunFetchSocketError, formatBunFetchSocketError,
|
|
|
94331
94719
|
var init_agent_runner_utils = __esmMin((() => {
|
|
94332
94720
|
init_agent_scope();
|
|
94333
94721
|
init_dock();
|
|
94334
|
-
init_registry$
|
|
94722
|
+
init_registry$5();
|
|
94335
94723
|
init_sessions$1();
|
|
94336
94724
|
init_usage_format();
|
|
94337
94725
|
BUN_FETCH_SOCKET_ERROR_RE = /socket connection was closed unexpectedly/i;
|
|
@@ -100537,7 +100925,7 @@ function loadOpenClawPlugins(options = {}) {
|
|
|
100537
100925
|
}
|
|
100538
100926
|
var registryCache, defaultLogger, resolvePluginSdkAliasFile, resolvePluginSdkAlias;
|
|
100539
100927
|
var init_loader = __esmMin((() => {
|
|
100540
|
-
init_registry$
|
|
100928
|
+
init_registry$7();
|
|
100541
100929
|
init_subsystem();
|
|
100542
100930
|
init_utils$2();
|
|
100543
100931
|
init_version$1();
|
|
@@ -100547,7 +100935,7 @@ var init_loader = __esmMin((() => {
|
|
|
100547
100935
|
init_discovery();
|
|
100548
100936
|
init_hook_runner_global();
|
|
100549
100937
|
init_manifest_registry();
|
|
100550
|
-
init_registry$
|
|
100938
|
+
init_registry$6();
|
|
100551
100939
|
init_runtime$2();
|
|
100552
100940
|
init_runtime$1();
|
|
100553
100941
|
init_schema_validator();
|
|
@@ -111527,6 +111915,36 @@ async function prepareSessionManagerForRun(params) {
|
|
|
111527
111915
|
}
|
|
111528
111916
|
var init_session_manager_init = __esmMin((() => {}));
|
|
111529
111917
|
//#endregion
|
|
111918
|
+
//#region src/agents/pi-embedded-runner/tool-result-reduce.ts
|
|
111919
|
+
/** Pure text reducer for oversized/repetitive tool output. Never throws. */
|
|
111920
|
+
function reduceToolOutputText(text, opts) {
|
|
111921
|
+
let lines = text.split("\n");
|
|
111922
|
+
if (opts.collapseRuns) {
|
|
111923
|
+
const collapsed = [];
|
|
111924
|
+
let i = 0;
|
|
111925
|
+
while (i < lines.length) {
|
|
111926
|
+
let j = i + 1;
|
|
111927
|
+
while (j < lines.length && lines[j] === lines[i]) j += 1;
|
|
111928
|
+
const run = j - i;
|
|
111929
|
+
if (run >= 5) collapsed.push(`${lines[i]} (repeated ${run}×)`);
|
|
111930
|
+
else for (let k = i; k < j; k++) collapsed.push(lines[k]);
|
|
111931
|
+
i = j;
|
|
111932
|
+
}
|
|
111933
|
+
lines = collapsed;
|
|
111934
|
+
}
|
|
111935
|
+
if (lines.length <= opts.maxLines) return lines.join("\n");
|
|
111936
|
+
if (opts.headLines + opts.tailLines >= lines.length) return lines.join("\n");
|
|
111937
|
+
const head = lines.slice(0, opts.headLines);
|
|
111938
|
+
const tail = lines.slice(lines.length - opts.tailLines);
|
|
111939
|
+
const elided = lines.length - head.length - tail.length;
|
|
111940
|
+
return [
|
|
111941
|
+
...head,
|
|
111942
|
+
`… ${elided} lines elided …`,
|
|
111943
|
+
...tail
|
|
111944
|
+
].join("\n");
|
|
111945
|
+
}
|
|
111946
|
+
var init_tool_result_reduce = __esmMin((() => {}));
|
|
111947
|
+
//#endregion
|
|
111530
111948
|
//#region src/agents/pi-embedded-runner/tool-result-context-guard.ts
|
|
111531
111949
|
function isTextBlock(block) {
|
|
111532
111950
|
return !!block && typeof block === "object" && block.type === "text";
|
|
@@ -111661,8 +112079,28 @@ function applyMessageMutationInPlace(target, source) {
|
|
|
111661
112079
|
for (const key of Object.keys(targetRecord)) if (!(key in sourceRecord)) delete targetRecord[key];
|
|
111662
112080
|
Object.assign(targetRecord, sourceRecord);
|
|
111663
112081
|
}
|
|
112082
|
+
/**
|
|
112083
|
+
* Run the pure line-reducer over each tool-result message's text content,
|
|
112084
|
+
* mutating messages in place. Skips reductions that wouldn't shrink the text.
|
|
112085
|
+
*/
|
|
112086
|
+
function reduceToolResultOutputsInPlace(messages) {
|
|
112087
|
+
for (const message of messages) {
|
|
112088
|
+
if (!isToolResultMessage(message)) continue;
|
|
112089
|
+
const rawText = getToolResultText(message);
|
|
112090
|
+
if (!rawText) continue;
|
|
112091
|
+
const reduced = reduceToolOutputText(rawText, {
|
|
112092
|
+
maxLines: REDUCE_MAX_LINES,
|
|
112093
|
+
headLines: REDUCE_HEAD_LINES,
|
|
112094
|
+
tailLines: REDUCE_TAIL_LINES,
|
|
112095
|
+
collapseRuns: true
|
|
112096
|
+
});
|
|
112097
|
+
if (reduced === rawText) continue;
|
|
112098
|
+
applyMessageMutationInPlace(message, replaceToolResultText(message, reduced));
|
|
112099
|
+
}
|
|
112100
|
+
}
|
|
111664
112101
|
function enforceToolResultContextBudgetInPlace(params) {
|
|
111665
|
-
const { messages, contextBudgetChars, maxSingleToolResultChars } = params;
|
|
112102
|
+
const { messages, contextBudgetChars, maxSingleToolResultChars, reduceOutput } = params;
|
|
112103
|
+
if (reduceOutput) reduceToolResultOutputsInPlace(messages);
|
|
111666
112104
|
for (const message of messages) {
|
|
111667
112105
|
if (!isToolResultMessage(message)) continue;
|
|
111668
112106
|
applyMessageMutationInPlace(message, truncateToolResultToChars(message, maxSingleToolResultChars));
|
|
@@ -111684,6 +112122,7 @@ function enforceToolResultContextBudgetInPlace(params) {
|
|
|
111684
112122
|
* @returns An async function suitable for use as Agent's transformContext callback.
|
|
111685
112123
|
*/
|
|
111686
112124
|
function createToolResultContextGuardTransform(params) {
|
|
112125
|
+
const reduceOutput = params.reduceOutput !== false;
|
|
111687
112126
|
const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
|
|
111688
112127
|
const contextBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * CONTEXT_INPUT_HEADROOM_RATIO));
|
|
111689
112128
|
const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
|
|
@@ -111694,13 +112133,15 @@ function createToolResultContextGuardTransform(params) {
|
|
|
111694
112133
|
enforceToolResultContextBudgetInPlace({
|
|
111695
112134
|
messages: contextMessages,
|
|
111696
112135
|
contextBudgetChars,
|
|
111697
|
-
maxSingleToolResultChars
|
|
112136
|
+
maxSingleToolResultChars,
|
|
112137
|
+
reduceOutput
|
|
111698
112138
|
});
|
|
111699
112139
|
return contextMessages;
|
|
111700
112140
|
};
|
|
111701
112141
|
}
|
|
111702
|
-
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;
|
|
112142
|
+
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;
|
|
111703
112143
|
var init_tool_result_context_guard = __esmMin((() => {
|
|
112144
|
+
init_tool_result_reduce();
|
|
111704
112145
|
CHARS_PER_TOKEN_ESTIMATE = 4;
|
|
111705
112146
|
CONTEXT_INPUT_HEADROOM_RATIO = .75;
|
|
111706
112147
|
SINGLE_TOOL_RESULT_CONTEXT_SHARE = .5;
|
|
@@ -111709,6 +112150,9 @@ var init_tool_result_context_guard = __esmMin((() => {
|
|
|
111709
112150
|
CONTEXT_LIMIT_TRUNCATION_NOTICE = "[truncated: output exceeded context limit]";
|
|
111710
112151
|
CONTEXT_LIMIT_TRUNCATION_SUFFIX = `\n${CONTEXT_LIMIT_TRUNCATION_NOTICE}`;
|
|
111711
112152
|
PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER = "[compacted: tool output removed to free context]";
|
|
112153
|
+
REDUCE_MAX_LINES = 200;
|
|
112154
|
+
REDUCE_HEAD_LINES = 40;
|
|
112155
|
+
REDUCE_TAIL_LINES = 40;
|
|
111712
112156
|
}));
|
|
111713
112157
|
//#endregion
|
|
111714
112158
|
//#region src/agents/pi-embedded-runner/run/attempt-session.ts
|
|
@@ -111801,7 +112245,10 @@ async function createRunSession(params, env) {
|
|
|
111801
112245
|
applySystemPromptOverrideToSession(session, env.systemPromptText);
|
|
111802
112246
|
if (!session) throw new Error("Embedded agent session missing");
|
|
111803
112247
|
const activeSession = session;
|
|
111804
|
-
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
112248
|
+
const contextGuardTransform = createToolResultContextGuardTransform({
|
|
112249
|
+
contextWindowTokens: Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? 2e5)),
|
|
112250
|
+
reduceOutput: params.config?.tools?.outputReduce?.enabled !== false
|
|
112251
|
+
});
|
|
111805
112252
|
activeSession.agent.transformContext = contextGuardTransform;
|
|
111806
112253
|
const cacheTrace = createCacheTrace({
|
|
111807
112254
|
cfg: params.config,
|