@visorcraft/idlehands 4.4.0 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-BDVs8LTu.js → accounts-B8cGzkjD.js} +1 -1
- package/dist/{accounts-Dk8mJIrQ.js → accounts-BQC_GRUB.js} +6 -6
- package/dist/{accounts-CIvVRRHb.js → accounts-D5tB_lO0.js} +1 -1
- package/dist/{agent-scope-DyP_tr7s.js → agent-scope-Bxq1eWbA.js} +4 -4
- package/dist/{agent-via-gateway-DvLTdMBj.js → agent-via-gateway-B82avysM.js} +1 -1
- package/dist/{agent-via-gateway-CPvgY5VA.js → agent-via-gateway-BLv_oSL5.js} +1 -1
- package/dist/{agent-via-gateway-OzQZlQpB.js → agent-via-gateway-BZBYIS74.js} +2 -2
- package/dist/{agent-via-gateway-CTti0dK7.js → agent-via-gateway-spHKNacF.js} +60 -60
- package/dist/{agents-BEuHL8Zr.js → agents-DFsifqti.js} +4 -4
- package/dist/{agents.config-BjMP6yqX.js → agents.config-B-HneNqt.js} +1 -1
- package/dist/{agents.config-BDQ4Bu0B.js → agents.config-LJG8mKGJ.js} +1 -1
- package/dist/{anton-Dwp3KlQs.js → anton-BHVfJEmp.js} +1 -1
- package/dist/{anton-C8SARtai.js → anton-CH-O1fKX.js} +5 -5
- package/dist/{anton-DCJl8crN.js → anton-DDY9C7_9.js} +1 -1
- package/dist/{anton-F-OwKPyb.js → anton-DYkdgFjS.js} +1 -1
- package/dist/{audio-preflight-DdYPJah_.js → audio-preflight-CwOVlM_o.js} +35 -35
- package/dist/{auth-choice-BHISFUGz.js → auth-choice-BwuBROMy.js} +1 -1
- package/dist/{auth-choice-Dam79K-y.js → auth-choice-tTRqUPHJ.js} +1 -1
- package/dist/{auth-store-DXT-l7fO.js → auth-store-Bb4aajHu.js} +12 -12
- package/dist/{banner-ascZEgmt.js → banner-DUYqUnZh.js} +1 -1
- package/dist/{bindings-D3b5Fmc9.js → bindings-CLZIJ0Eo.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +60 -60
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +3 -3
- package/dist/bundled/session-memory/handler.js +60 -60
- package/dist/{plugin-sdk/channel-activity-loOg1DRw.js → channel-activity-DdL3RAv_.js} +3 -3
- package/dist/{channel-options-CAfv1NVr.js → channel-options-DgE4bKnZ.js} +1 -1
- package/dist/{channel-options-BdjtX9_O.js → channel-options-w859WR9f.js} +1 -1
- package/dist/{channel-web-BZe8v7Di.js → channel-web-6DakWPLw.js} +2 -2
- package/dist/{channel-web-B23k1s4A.js → channel-web-DRFHkK-t.js} +2 -2
- package/dist/{channels-cli-v8qMY1yM.js → channels-cli-3a9CzVGj.js} +7 -7
- package/dist/{channels-cli-Bfz9P0IR.js → channels-cli-DTM2c23f.js} +7 -7
- package/dist/{chrome-RZ6-DZcL.js → chrome-CrBtckYY.js} +17 -17
- package/dist/{chunk-CMpX7Jaz.js → chunk-Djk-9JeT.js} +1 -1
- package/dist/{cli-HkluaDt1.js → cli-BYiKVK4i.js} +2 -2
- package/dist/{cli-DyId4irC.js → cli-C7BI3Wn6.js} +2 -2
- package/dist/{command-registry-Bs5y1F2v.js → command-registry-BtbFeRGU.js} +10 -10
- package/dist/{commands-registry-C_zNi-Ou.js → commands-registry-Cy_UQS_3.js} +5 -5
- package/dist/{completion-cli-CGXtQf6t.js → completion-cli-BB2Y8nfx.js} +1 -1
- package/dist/{completion-cli-BmHAqqY4.js → completion-cli-BGz3hkuH.js} +2 -2
- package/dist/{config-cli-BdJDJv0a.js → config-cli-DOmnPiGC.js} +1 -1
- package/dist/{config-cli-CEehCZa0.js → config-cli-b1s6P-RG.js} +1 -1
- package/dist/{configure-C5087mSP.js → configure-BQsgmT59.js} +3 -3
- package/dist/{configure-C44gmCt3.js → configure-D4tLHdxZ.js} +3 -3
- package/dist/daemon-cli.js +6 -6
- package/dist/{deliver-BQeDhZSa.js → deliver-DReSDWa4.js} +20 -20
- package/dist/{deps-CchkM1ea.js → deps-1S6DoURA.js} +1 -1
- package/dist/{deps-SgroTRjf.js → deps-BZOU70bs.js} +1 -1
- package/dist/{deps-UTcCCmJ6.js → deps-D0XOoTym.js} +6 -6
- package/dist/{deps-CfQJK6WP.js → deps-D3ku734-.js} +1 -1
- package/dist/{diagnostic-4owMk4vH.js → diagnostic-BvlZ0Sot.js} +1 -1
- package/dist/{dock-BgOmHcbh.js → dock-ejUetwTC.js} +6 -6
- package/dist/{doctor-completion-DsaJMlSu.js → doctor-completion-BfAWZyFl.js} +1 -1
- package/dist/{doctor-completion-Cgl5S3K0.js → doctor-completion-DOFXmBLZ.js} +1 -1
- package/dist/{emergency-stop-B2KUQyt8.js → emergency-stop-3LJcS7w-.js} +2 -2
- package/dist/emergency-stop-BXmSbO38.js +113 -0
- package/dist/{emergency-stop-DjURYr3Z.js → emergency-stop-DXwma2EI.js} +2 -2
- package/dist/{emergency-stop-BCRW03p2.js → emergency-stop-Dpdosd7y.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{env-B5G1qwGc.js → env-q-PhWbb_.js} +1 -1
- package/dist/{plugin-sdk/errors-CMcD8Lhh.js → errors-C4SHjIZK.js} +1 -1
- package/dist/extensionAPI.js +2 -2
- package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-CcfDZXe9.js} +1 -1
- package/dist/{frontmatter-BOudmHMS.js → frontmatter-pTUG4Sx_.js} +2 -2
- package/dist/{fs-safe-CYUaAFO9.js → fs-safe-2l05hI1Y.js} +2 -2
- package/dist/{gateway-cli-BmwR5tHy.js → gateway-cli-B2CLa9rg.js} +9 -9
- package/dist/{gateway-cli-Cx3sGYvO.js → gateway-cli-CzXEYocw.js} +9 -9
- package/dist/{gemini-auth-DwwgHLvI.js → gemini-auth-DnP8lfQK.js} +2 -2
- package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-BjmEQcmi.js} +7 -7
- package/dist/{health-DXbufVL-.js → health-C2A5ilGU.js} +1 -1
- package/dist/{health-F0lUmHT3.js → health-Dn7CVhrN.js} +1 -1
- package/dist/{hooks-cli-6t3DpWin.js → hooks-cli-BxGuMBUi.js} +3 -3
- package/dist/{hooks-cli-CsWYWkar.js → hooks-cli-CT8pLj_8.js} +3 -3
- package/dist/{image-4HTajysw.js → image-DBhgEUm0.js} +6 -6
- package/dist/{image-ops-D1KtygWz.js → image-ops-J8P5zOFm.js} +1 -1
- package/dist/index.js +7 -7
- package/dist/{ir-B7IBoKLy.js → ir-BT5aAdU9.js} +5 -5
- package/dist/llm-slug-generator.js +60 -60
- package/dist/{local-roots-KN4Hp1yZ.js → local-roots-d4y0lvs2.js} +5 -5
- package/dist/{login-B8EuUm6R.js → login-CtL3gtbh.js} +6 -6
- package/dist/{login-qr-DS_9MrMo.js → login-qr-D090cMcd.js} +11 -11
- package/dist/{manager-CaFxh6F8.js → manager-1TS0xG0C.js} +15 -15
- package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-R8VTpfE9.js} +1 -1
- package/dist/{message-channel-C8QtrwEU.js → message-channel-ZdI1-uUh.js} +1 -1
- package/dist/{model-selection-D5g8tXIY.js → model-selection-C5BhfuPa.js} +41 -41
- package/dist/{models-awPyoUpk.js → models-CGtrW3AC.js} +2 -2
- package/dist/{models-cli-D_PfTekq.js → models-cli-0TPj_c8R.js} +4 -4
- package/dist/{models-cli-CsA9GN5G.js → models-cli-BvUKtS_w.js} +3 -3
- package/dist/{npm-resolution-BKPKKKLt.js → npm-resolution-Anabxb6_.js} +1 -1
- package/dist/{npm-resolution-BpQ2o-Eh.js → npm-resolution-Ox7X74-Z.js} +1 -1
- package/dist/{onboard-C9KRYbrH.js → onboard-B3m0Seri.js} +2 -2
- package/dist/{onboard-BiT3YReS.js → onboard-DsqTjPex.js} +2 -2
- package/dist/{onboard-channels-C6b-o1TK.js → onboard-channels-14qYfbpr.js} +1 -1
- package/dist/{onboard-channels-_XLjSBKm.js → onboard-channels-DFXKCp3G.js} +1 -1
- package/dist/{onboarding-BfAhtIYl.js → onboarding-BJYyNWSX.js} +3 -3
- package/dist/{onboarding-By12Oyni.js → onboarding-nIZFJ6yX.js} +3 -3
- package/dist/{onboarding.finalize-yL217Gdr.js → onboarding.finalize-B1qxBzUX.js} +6 -6
- package/dist/{onboarding.finalize-CAgcobAs.js → onboarding.finalize-Bi1nDMyy.js} +7 -7
- package/dist/{outbound-Dq9yoBDJ.js → outbound-D3dHUVkO.js} +6 -6
- package/dist/{outbound-attachment-3I6GzwDe.js → outbound-attachment-IfeZJAKk.js} +2 -2
- package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BZmt6hFb.js} +1 -1
- package/dist/{paths-D_qUel1T.js → paths-D3p7ZvM6.js} +3 -3
- package/dist/{paths-BYNVLNi_.js → paths-DQpv9a3Q.js} +5 -5
- package/dist/{pi-embedded-BfPWx2YM.js → pi-embedded-D-vbVu50.js} +67 -37
- package/dist/{pi-embedded-helpers-DBkYJKhY.js → pi-embedded-helpers-BcRw0T_g.js} +24 -24
- package/dist/{pi-embedded-tWfE4dVB.js → pi-embedded-wUyn4Zjf.js} +235 -205
- package/dist/{pi-model-discovery-BMRRgVlz.js → pi-model-discovery-DMEzBdm5.js} +7 -7
- package/dist/{plugin-registry-ZgC7HA0z.js → plugin-registry-DHavGgu-.js} +1 -1
- package/dist/{plugin-registry-7DC8-ZZJ.js → plugin-registry-ReGTT2Qn.js} +1 -1
- package/dist/plugin-sdk/{accounts-CBVAw5_G.js → accounts-B9nfRzyn.js} +1 -1
- package/dist/plugin-sdk/{accounts-BLYMokxV.js → accounts-Kt6ygPsC.js} +2 -2
- package/dist/plugin-sdk/{accounts-C5tHm1UI.js → accounts-mjFAny5F.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-jl80I5G9.js → agent-scope-CU41EMlR.js} +2 -2
- package/dist/plugin-sdk/{agent-via-gateway-C9v2r0O2.js → agent-via-gateway-BaZViUVq.js} +55 -55
- package/dist/plugin-sdk/agents/tool-stubs.d.ts +2 -1
- package/dist/plugin-sdk/{anton-7I_gkw4v.js → anton-y9DWQk_X.js} +4 -4
- package/dist/plugin-sdk/{api-key-rotation-BUIqfXnG.js → api-key-rotation-DPA6ftN7.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-URcQAxhH.js → audio-preflight-DL4zZ6SH.js} +30 -30
- package/dist/plugin-sdk/{auth-store-DaPWgQTx.js → auth-store-DycBvVqL.js} +1 -1
- package/dist/plugin-sdk/{bindings-xXgmJGxj.js → bindings-BDKKHGv-.js} +2 -2
- package/dist/{channel-activity-D_TMOGQ0.js → plugin-sdk/channel-activity-TcS_VfJk.js} +3 -3
- package/dist/plugin-sdk/{channel-web-B7qyJbrs.js → channel-web-CLQ55z3e.js} +24 -24
- package/dist/plugin-sdk/{chrome-CPVAOm0b.js → chrome-CaJve-Gp.js} +6 -6
- package/dist/plugin-sdk/{chunk-PW4MBmaN.js → chunk-DZr5xuqv.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-DQCQbF8W.js → commands-registry-DWTMC5Bl.js} +5 -5
- package/dist/plugin-sdk/{config-04otsq-i.js → config-DXRuYZaI.js} +10 -10
- package/dist/plugin-sdk/{deliver-DfopPK17.js → deliver-DbtR2D87.js} +10 -10
- package/dist/plugin-sdk/{deps-Gj9jRY77.js → deps-DNbYvt5g.js} +6 -6
- package/dist/plugin-sdk/{diagnostic-ByA6zvzu.js → diagnostic-B8VzcqLf.js} +1 -1
- package/dist/plugin-sdk/{dock-DKQYtT6-.js → dock-CMURqoee.js} +6 -6
- package/dist/plugin-sdk/{emergency-stop-B7_VgSkO.js → emergency-stop-DQXrdDYX.js} +55 -55
- package/dist/plugin-sdk/{env-5XecRTLs.js → env-qurSiOO2.js} +1 -1
- package/dist/{errors-C_0nm4TJ.js → plugin-sdk/errors-UqLewZJL.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-DwdUEdmT.js → fetch-guard-C174s8ZV.js} +1 -1
- package/dist/plugin-sdk/{fs-safe-qsx2_8-o.js → fs-safe-CCXTOK7j.js} +2 -2
- package/dist/plugin-sdk/{image-B-gM6mxU.js → image-D-9PH0zg.js} +6 -6
- package/dist/plugin-sdk/{image-ops-CXSUo-AM.js → image-ops-BRYGGDwL.js} +1 -1
- package/dist/plugin-sdk/index.js +60 -60
- package/dist/plugin-sdk/{ir-kdDGpPMq.js → ir-Bv0Zbp2E.js} +5 -5
- package/dist/plugin-sdk/{local-roots-DjB6DYeI.js → local-roots-bHCsSVt_.js} +4 -4
- package/dist/plugin-sdk/{login-Bpe2s20d.js → login-B8HpBurd.js} +6 -6
- package/dist/plugin-sdk/{login-qr-C9ndp3tg.js → login-qr-DQnS-xlm.js} +8 -8
- package/dist/plugin-sdk/{manager-CBBlTnh3.js → manager-CKed0ZZE.js} +10 -10
- package/dist/plugin-sdk/{markdown-tables-Drtwd4J5.js → markdown-tables-DfUQHRZY.js} +1 -1
- package/dist/plugin-sdk/{message-channel-CQ0qkGHj.js → message-channel-DiMXmQeQ.js} +1 -1
- package/dist/plugin-sdk/{outbound-D6g6crrp.js → outbound-DNK06gip.js} +6 -6
- package/dist/plugin-sdk/{outbound-attachment-BisU5Vji.js → outbound-attachment-Bs7fNaqv.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-C_uBEYb4.js → path-alias-guards-yyy61qHh.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-D48bhP-9.js → pi-embedded-helpers-BoeRlyoL.js} +16 -16
- package/dist/plugin-sdk/{pi-model-discovery-DCBTaRzI.js → pi-model-discovery-BLPN0Tzs.js} +1 -1
- package/dist/plugin-sdk/{plugins-NTjIvHYk.js → plugins-DRPlVBr_.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-YGZXROMl.js → pw-ai-V3n0xLn-.js} +10 -10
- package/dist/plugin-sdk/{qmd-manager-juzrnopq.js → qmd-manager-BckPBwZX.js} +5 -5
- package/dist/plugin-sdk/{query-expansion-xBXvzdkL.js → query-expansion-CPqK-tTR.js} +2 -2
- package/dist/plugin-sdk/{redact-B6VQH3UQ.js → redact-Ub8sMBBC.js} +1 -1
- package/dist/plugin-sdk/{replies-DXdzWcMN.js → replies-CzsaFa8u.js} +3 -3
- package/dist/plugin-sdk/{reply-nvcQV3Q_.js → reply-DWcAkFIT.js} +151 -121
- package/dist/plugin-sdk/{reply-prefix--mxmTL7A.js → reply-prefix-BqV0o7_7.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-CnUtsDch.js → resolve-outbound-target-DAdNGEqG.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-BZABUE4J.js → resolve-route-C5mAwY-o.js} +3 -3
- package/dist/{retry-BeB9WenR.js → plugin-sdk/retry-2OVzZJMZ.js} +1 -1
- package/dist/plugin-sdk/{runner-C2xaoYAR.js → runner-C_iZbSwz.js} +10 -10
- package/dist/plugin-sdk/{send-CKQ89Lq9.js → send-BUYJmPie.js} +6 -6
- package/dist/plugin-sdk/{send-CFkuTXvq.js → send-BsxSmaWa.js} +7 -7
- package/dist/plugin-sdk/{send-BgTqMJLI.js → send-CBYbDScb.js} +10 -10
- package/dist/plugin-sdk/{send-dmYAtUT5.js → send-D-cZm1Y5.js} +7 -7
- package/dist/plugin-sdk/{send-CRhcec-_.js → send-Dt8bXHE8.js} +13 -13
- package/dist/plugin-sdk/{session-OpE6SSAs.js → session-C9uqVmuk.js} +3 -3
- package/dist/plugin-sdk/{sessions-CG-k8Acv.js → sessions-B4ApxPY1.js} +6 -6
- package/dist/plugin-sdk/{skill-commands-BHBpmuX9.js → skill-commands-B8suoqwn.js} +5 -5
- package/dist/plugin-sdk/{skills-33Wy6_4b.js → skills-Dl2nq6QI.js} +8 -8
- package/dist/plugin-sdk/{store-CCCXwngh.js → store-BI3rLJdW.js} +2 -2
- package/dist/plugin-sdk/{subsystem-DWPzKeZ0.js → subsystem-lJo9gqAK.js} +1 -1
- package/dist/plugin-sdk/{tables-CF9W23Rd.js → tables-C4X_nAUQ.js} +1 -1
- package/dist/plugin-sdk/{target-errors-DaH0qYtL.js → target-errors-CXh6e9ZE.js} +2 -2
- package/dist/plugin-sdk/{tokens-Y97UKh4C.js → tokens-CU9S3S7t.js} +1 -1
- package/dist/{tool-images-CcGZpzmq.js → plugin-sdk/tool-images-Cf9aWlVu.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-Cv8wyfAi.js → tool-loop-detection-DuwkSqZL.js} +2 -2
- package/dist/plugin-sdk/{utils-Dyj2wV4e.js → utils-dP-FpIgu.js} +2 -2
- package/dist/plugin-sdk/web-CNw6-P_B.js +71 -0
- package/dist/plugin-sdk/{whatsapp-actions-Cp6vXAA8.js → whatsapp-actions-CEAXpexT.js} +23 -23
- package/dist/{plugins-CRB60mCJ.js → plugins-DYr-HHj0.js} +10 -10
- package/dist/{plugins-cli-DACLE21S.js → plugins-cli-C13WMPnF.js} +3 -3
- package/dist/{plugins-cli-kePQvJ9L.js → plugins-cli-CO4FVaiO.js} +3 -3
- package/dist/{program-VV9u5uPU.js → program-B_vfCOU2.js} +8 -8
- package/dist/{program-context-j94K3IXR.js → program-context-BmSQ_Sf4.js} +18 -18
- package/dist/{prompt-select-styled-BSqCn36X.js → prompt-select-styled-B5ZwrfX0.js} +4 -4
- package/dist/{prompt-select-styled-BH51ROGD.js → prompt-select-styled-BC7OSZ1q.js} +4 -4
- package/dist/{provider-auth-helpers-BAB3PaaB.js → provider-auth-helpers-CDu8gosd.js} +1 -1
- package/dist/{provider-auth-helpers-DMSF8Mhq.js → provider-auth-helpers-D0A6E5jr.js} +1 -1
- package/dist/{push-apns-Cou7KeCj.js → push-apns-BofP21zS.js} +1 -1
- package/dist/{push-apns-CGUwMKT-.js → push-apns-Dc8RVDXC.js} +1 -1
- package/dist/{pw-ai-5GRjEp4v.js → pw-ai-D3GtQQoU.js} +13 -13
- package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-BRvg3Rx2.js} +8 -8
- package/dist/{query-expansion-DEq020GG.js → query-expansion-DHuNyU-_.js} +5 -5
- package/dist/{redact-Bvpf-ATQ.js → redact-1Y0KPNtr.js} +1 -1
- package/dist/{register.agent-YCGBKv-d.js → register.agent-CMlS5uBQ.js} +9 -9
- package/dist/{register.agent-ColbJEk3.js → register.agent-CV7M3tu9.js} +8 -8
- package/dist/{register.configure-C5g7670Q.js → register.configure-BnNziB2G.js} +8 -8
- package/dist/{register.configure-CfUo6nvs.js → register.configure-CMB0aDJp.js} +8 -8
- package/dist/{register.maintenance-53FGiO0K.js → register.maintenance-BdWGNtkz.js} +8 -8
- package/dist/{register.maintenance-CBNoQia-.js → register.maintenance-X6asZwHw.js} +9 -9
- package/dist/{register.message-0nKlUSrH.js → register.message-BuggdGjG.js} +3 -3
- package/dist/{register.message-CaFp4DAP.js → register.message-DnOPNIGk.js} +3 -3
- package/dist/{register.onboard-B3NgvEwe.js → register.onboard-BDhpm8TD.js} +2 -2
- package/dist/{register.onboard-B9IJ3wUe.js → register.onboard-CHHu9Skd.js} +2 -2
- package/dist/{register.orchestrator-anton-Cxnh52UP.js → register.orchestrator-anton-B-tuZR0z.js} +2 -2
- package/dist/{register.orchestrator-anton-HIi6nBvo.js → register.orchestrator-anton-SlFmmH1n.js} +2 -2
- package/dist/{register.setup-y7C2w79N.js → register.setup-A8U_6S1I.js} +2 -2
- package/dist/{register.setup-DyxAeyO2.js → register.setup-D7mmwdPD.js} +2 -2
- package/dist/{register.status-health-sessions-5wREP3Tq.js → register.status-health-sessions-DVocz8ib.js} +4 -4
- package/dist/{register.status-health-sessions-DbzCxLhd.js → register.status-health-sessions-haba-O-6.js} +4 -4
- package/dist/{register.subclis-BEDdoF6M.js → register.subclis-B-zDlWeV.js} +9 -9
- package/dist/{replies-uBXwI7WM.js → replies-BxRl_2Nq.js} +3 -3
- package/dist/{reply-vDM22Gez.js → reply-7AXQ38dZ.js} +67 -37
- package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-DCljZiIB.js} +1 -1
- package/dist/{resolve-route-DuttYY7A.js → resolve-route-ClcifpKn.js} +4 -4
- package/dist/{plugin-sdk/retry-Bh7jveNm.js → retry-CG6cMRDQ.js} +1 -1
- package/dist/{run-main-BKjpcqq8.js → run-main-Cy6gYOh3.js} +15 -15
- package/dist/{runner-Cy6GWdoL.js → runner-BZBK277H.js} +11 -11
- package/dist/{send-Ce_lAnef.js → send-B7Fzlmlo.js} +7 -7
- package/dist/{send-BskvGZej.js → send-BGyVbnFP.js} +7 -7
- package/dist/{send-DvjrOg1z.js → send-DcN-QeVO.js} +6 -6
- package/dist/{send-rp8dzIy4.js → send-n1vT5TEb.js} +24 -24
- package/dist/{send-C4z2HAbE.js → send-qNmymshG.js} +10 -10
- package/dist/{server-node-events-B7IQ1nzZ.js → server-node-events-ChBhFPg3.js} +3 -3
- package/dist/{server-node-events-CraqSZJR.js → server-node-events-Dbr2WR-0.js} +3 -3
- package/dist/{session-BbwP0jac.js → session-BMqBZ_fq.js} +7 -7
- package/dist/{sessions-DA2oWrdb.js → sessions-BA3_G98W.js} +41 -41
- package/dist/{skill-commands-AySApC-2.js → skill-commands-DnTjl_m1.js} +9 -9
- package/dist/{skills-B3wf7ZnA.js → skills-DRGt1G_o.js} +22 -22
- package/dist/{status-ZUnD4Pgf.js → status-BompBfRg.js} +2 -2
- package/dist/{status-D9fTji6b.js → status-Cy7Zcfzv.js} +2 -2
- package/dist/{store-CvMgrKWx.js → store-D-ZicQeo.js} +2 -2
- package/dist/{subagent-registry-l7V3IoLe.js → subagent-registry-DDIoRVFV.js} +67 -37
- package/dist/{subsystem-tzu-rIAJ.js → subsystem-D7ZepYT1.js} +1 -1
- package/dist/{tables-5k-zOZ-s.js → tables-Co_R_WKs.js} +1 -1
- package/dist/{target-errors-BPfQrPim.js → target-errors-B1mcM4WR.js} +2 -2
- package/dist/{tokens-BRLyURxW.js → tokens-DGajj8M9.js} +1 -1
- package/dist/{plugin-sdk/tool-images-BMRkn_yk.js → tool-images-Duuqr4bN.js} +2 -2
- package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-CjWRg_4q.js} +3 -3
- package/dist/{update-cli-CMn89gww.js → update-cli-1s_O26hF.js} +8 -8
- package/dist/{update-cli-D02DhEE9.js → update-cli-DywvLvxF.js} +9 -9
- package/dist/{update-runner-C44em-38.js → update-runner-2yf_p333.js} +1 -1
- package/dist/{update-runner-BSsZSlwa.js → update-runner-DfTjwukX.js} +1 -1
- package/dist/{utils-CTFLl_ji.js → utils-D9wGoiU9.js} +18 -18
- package/dist/{web-CiVRDtta.js → web-59hB8x7z.js} +3 -3
- package/dist/{web-DLIXLq_L.js → web-C4vEw_Lp.js} +3 -3
- package/dist/{web-Dkl33QN0.js → web-DxQjSHSJ.js} +66 -66
- package/dist/{web-bCfwH31U.js → web-WBETd448.js} +3 -3
- package/dist/{whatsapp-actions-C_BWc4tJ.js → whatsapp-actions-DmI59VQd.js} +25 -25
- package/dist/{workspace-DBFSzT6O.js → workspace-tAtkoD_r.js} +18 -18
- package/package.json +1 -1
- package/dist/emergency-stop-CjVqAFw-.js +0 -113
- package/dist/plugin-sdk/web-BzOC1x6m.js +0 -71
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { m as resolveRequiredHomeDir } from "./paths-
|
|
3
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
4
|
-
import { d as normalizeE164 } from "./utils-
|
|
2
|
+
import { m as resolveRequiredHomeDir } from "./paths-DQpv9a3Q.js";
|
|
3
|
+
import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
|
|
4
|
+
import { d as normalizeE164 } from "./utils-D9wGoiU9.js";
|
|
5
5
|
import { c as normalizeMainKey, l as resolveAgentIdFromSessionKey, m as normalizeOptionalAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-CuLPSMu_.js";
|
|
6
|
-
import { R as loadConfig, et as parseDurationMs, mn as isPidAlive, pn as resolveProcessScopedMap, tt as parseByteSize } from "./model-selection-
|
|
7
|
-
import { c as normalizeHyphenSlug, t as getChannelDock } from "./dock-
|
|
8
|
-
import { r as normalizeChannelId } from "./plugins-
|
|
6
|
+
import { R as loadConfig, et as parseDurationMs, mn as isPidAlive, pn as resolveProcessScopedMap, tt as parseByteSize } from "./model-selection-C5BhfuPa.js";
|
|
7
|
+
import { c as normalizeHyphenSlug, t as getChannelDock } from "./dock-ejUetwTC.js";
|
|
8
|
+
import { r as normalizeChannelId } from "./plugins-DYr-HHj0.js";
|
|
9
9
|
import { t as normalizeChatType } from "./chat-type-BPBtOjer.js";
|
|
10
|
-
import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-
|
|
10
|
+
import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-ZdI1-uUh.js";
|
|
11
11
|
import { n as resolveConversationLabel } from "./conversation-label-1Wad2kXc.js";
|
|
12
|
-
import { a as resolveSessionFilePathOptions, c as resolveSessionTranscriptsDir, d as validateSessionId, i as resolveSessionFilePath, l as resolveSessionTranscriptsDirForAgent, o as resolveSessionTranscriptPath, r as resolveDefaultSessionStorePath, s as resolveSessionTranscriptPathInDir, t as SAFE_SESSION_ID_RE, u as resolveStorePath } from "./paths-
|
|
12
|
+
import { a as resolveSessionFilePathOptions, c as resolveSessionTranscriptsDir, d as validateSessionId, i as resolveSessionFilePath, l as resolveSessionTranscriptsDirForAgent, o as resolveSessionTranscriptPath, r as resolveDefaultSessionStorePath, s as resolveSessionTranscriptPathInDir, t as SAFE_SESSION_ID_RE, u as resolveStorePath } from "./paths-D3p7ZvM6.js";
|
|
13
13
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-_OimdA_2.js";
|
|
14
14
|
import fs from "node:fs/promises";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import path from "node:path";
|
|
17
|
-
import
|
|
17
|
+
import fs$1 from "node:fs";
|
|
18
18
|
import crypto from "node:crypto";
|
|
19
19
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
20
20
|
|
|
@@ -100,7 +100,7 @@ function releaseAllLocksSync() {
|
|
|
100
100
|
if (typeof held.handle.close === "function") held.handle.close().catch(() => {});
|
|
101
101
|
} catch {}
|
|
102
102
|
try {
|
|
103
|
-
|
|
103
|
+
fs$1.rmSync(held.lockPath, { force: true });
|
|
104
104
|
} catch {}
|
|
105
105
|
HELD_LOCKS.delete(sessionFile);
|
|
106
106
|
}
|
|
@@ -876,14 +876,14 @@ function resolveSessionTranscriptCandidates(sessionId, storePath, sessionFile, a
|
|
|
876
876
|
function canonicalizePathForComparison$1(filePath) {
|
|
877
877
|
const resolved = path.resolve(filePath);
|
|
878
878
|
try {
|
|
879
|
-
return
|
|
879
|
+
return fs$1.realpathSync(resolved);
|
|
880
880
|
} catch {
|
|
881
881
|
return resolved;
|
|
882
882
|
}
|
|
883
883
|
}
|
|
884
884
|
function archiveFileOnDisk(filePath, reason) {
|
|
885
885
|
const archived = `${filePath}.${reason}.${formatSessionArchiveTimestamp()}`;
|
|
886
|
-
|
|
886
|
+
fs$1.renameSync(filePath, archived);
|
|
887
887
|
return archived;
|
|
888
888
|
}
|
|
889
889
|
/**
|
|
@@ -899,7 +899,7 @@ function archiveSessionTranscripts(opts) {
|
|
|
899
899
|
const relative = path.relative(storeDir, candidatePath);
|
|
900
900
|
if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) continue;
|
|
901
901
|
}
|
|
902
|
-
if (!
|
|
902
|
+
if (!fs$1.existsSync(candidatePath)) continue;
|
|
903
903
|
try {
|
|
904
904
|
archived.push(archiveFileOnDisk(candidatePath, opts.reason));
|
|
905
905
|
} catch {}
|
|
@@ -917,15 +917,15 @@ async function cleanupArchivedSessionTranscripts(opts) {
|
|
|
917
917
|
let removed = 0;
|
|
918
918
|
let scanned = 0;
|
|
919
919
|
for (const dir of directories) {
|
|
920
|
-
const entries = await
|
|
920
|
+
const entries = await fs$1.promises.readdir(dir).catch(() => []);
|
|
921
921
|
for (const entry of entries) {
|
|
922
922
|
const timestamp = parseSessionArchiveTimestamp(entry, reason);
|
|
923
923
|
if (timestamp == null) continue;
|
|
924
924
|
scanned += 1;
|
|
925
925
|
if (now - timestamp <= opts.olderThanMs) continue;
|
|
926
926
|
const fullPath = path.join(dir, entry);
|
|
927
|
-
if (!(await
|
|
928
|
-
await
|
|
927
|
+
if (!(await fs$1.promises.stat(fullPath).catch(() => null))?.isFile()) continue;
|
|
928
|
+
await fs$1.promises.rm(fullPath).catch(() => void 0);
|
|
929
929
|
removed += 1;
|
|
930
930
|
}
|
|
931
931
|
}
|
|
@@ -1061,7 +1061,7 @@ function isCacheEnabled(ttlMs) {
|
|
|
1061
1061
|
}
|
|
1062
1062
|
function getFileMtimeMs(filePath) {
|
|
1063
1063
|
try {
|
|
1064
|
-
return
|
|
1064
|
+
return fs$1.statSync(filePath).mtimeMs;
|
|
1065
1065
|
} catch {
|
|
1066
1066
|
return;
|
|
1067
1067
|
}
|
|
@@ -1076,7 +1076,7 @@ const NOOP_LOGGER = {
|
|
|
1076
1076
|
function canonicalizePathForComparison(filePath) {
|
|
1077
1077
|
const resolved = path.resolve(filePath);
|
|
1078
1078
|
try {
|
|
1079
|
-
return
|
|
1079
|
+
return fs$1.realpathSync(resolved);
|
|
1080
1080
|
} catch {
|
|
1081
1081
|
return resolved;
|
|
1082
1082
|
}
|
|
@@ -1134,12 +1134,12 @@ function resolveReferencedSessionTranscriptPaths(params) {
|
|
|
1134
1134
|
return referenced;
|
|
1135
1135
|
}
|
|
1136
1136
|
async function readSessionsDirFiles(sessionsDir) {
|
|
1137
|
-
const dirEntries = await
|
|
1137
|
+
const dirEntries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
1138
1138
|
const files = [];
|
|
1139
1139
|
for (const dirent of dirEntries) {
|
|
1140
1140
|
if (!dirent.isFile()) continue;
|
|
1141
1141
|
const filePath = path.join(sessionsDir, dirent.name);
|
|
1142
|
-
const stat = await
|
|
1142
|
+
const stat = await fs$1.promises.stat(filePath).catch(() => null);
|
|
1143
1143
|
if (!stat?.isFile()) continue;
|
|
1144
1144
|
files.push({
|
|
1145
1145
|
path: filePath,
|
|
@@ -1152,9 +1152,9 @@ async function readSessionsDirFiles(sessionsDir) {
|
|
|
1152
1152
|
return files;
|
|
1153
1153
|
}
|
|
1154
1154
|
async function removeFileIfExists(filePath) {
|
|
1155
|
-
const stat = await
|
|
1155
|
+
const stat = await fs$1.promises.stat(filePath).catch(() => null);
|
|
1156
1156
|
if (!stat?.isFile()) return 0;
|
|
1157
|
-
await
|
|
1157
|
+
await fs$1.promises.rm(filePath, { force: true }).catch(() => void 0);
|
|
1158
1158
|
return stat.size;
|
|
1159
1159
|
}
|
|
1160
1160
|
async function removeFileForBudget(params) {
|
|
@@ -1438,7 +1438,7 @@ function loadSessionStore(storePath, opts = {}) {
|
|
|
1438
1438
|
const maxReadAttempts = process.platform === "win32" ? 3 : 1;
|
|
1439
1439
|
const retryBuf = maxReadAttempts > 1 ? new Int32Array(new SharedArrayBuffer(4)) : void 0;
|
|
1440
1440
|
for (let attempt = 0; attempt < maxReadAttempts; attempt++) try {
|
|
1441
|
-
const raw =
|
|
1441
|
+
const raw = fs$1.readFileSync(storePath, "utf-8");
|
|
1442
1442
|
if (raw.length === 0 && attempt < maxReadAttempts - 1) {
|
|
1443
1443
|
Atomics.wait(retryBuf, 0, 0, 50);
|
|
1444
1444
|
continue;
|
|
@@ -1641,7 +1641,7 @@ function capEntryCount(store, overrideMax, opts = {}) {
|
|
|
1641
1641
|
}
|
|
1642
1642
|
async function getSessionFileSize(storePath) {
|
|
1643
1643
|
try {
|
|
1644
|
-
return (await
|
|
1644
|
+
return (await fs$1.promises.stat(storePath)).size;
|
|
1645
1645
|
} catch {
|
|
1646
1646
|
return null;
|
|
1647
1647
|
}
|
|
@@ -1658,7 +1658,7 @@ async function rotateSessionFile(storePath, overrideBytes) {
|
|
|
1658
1658
|
if (fileSize <= maxBytes) return false;
|
|
1659
1659
|
const backupPath = `${storePath}.bak.${Date.now()}`;
|
|
1660
1660
|
try {
|
|
1661
|
-
await
|
|
1661
|
+
await fs$1.promises.rename(storePath, backupPath);
|
|
1662
1662
|
log.info("rotated session store file", {
|
|
1663
1663
|
backupPath: path.basename(backupPath),
|
|
1664
1664
|
sizeBytes: fileSize
|
|
@@ -1669,11 +1669,11 @@ async function rotateSessionFile(storePath, overrideBytes) {
|
|
|
1669
1669
|
try {
|
|
1670
1670
|
const dir = path.dirname(storePath);
|
|
1671
1671
|
const baseName = path.basename(storePath);
|
|
1672
|
-
const backups = (await
|
|
1672
|
+
const backups = (await fs$1.promises.readdir(dir)).filter((f) => f.startsWith(`${baseName}.bak.`)).toSorted().toReversed();
|
|
1673
1673
|
const maxBackups = 3;
|
|
1674
1674
|
if (backups.length > maxBackups) {
|
|
1675
1675
|
const toDelete = backups.slice(maxBackups);
|
|
1676
|
-
for (const old of toDelete) await
|
|
1676
|
+
for (const old of toDelete) await fs$1.promises.unlink(path.join(dir, old)).catch(() => void 0);
|
|
1677
1677
|
log.info("cleaned up old session store backups", { deleted: toDelete.length });
|
|
1678
1678
|
}
|
|
1679
1679
|
} catch {}
|
|
@@ -1778,14 +1778,14 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
|
|
|
1778
1778
|
});
|
|
1779
1779
|
}
|
|
1780
1780
|
}
|
|
1781
|
-
await
|
|
1781
|
+
await fs$1.promises.mkdir(path.dirname(storePath), { recursive: true });
|
|
1782
1782
|
const json = JSON.stringify(store, null, 2);
|
|
1783
1783
|
if (process.platform === "win32") {
|
|
1784
1784
|
const tmp = `${storePath}.${process.pid}.${crypto.randomUUID()}.tmp`;
|
|
1785
1785
|
try {
|
|
1786
|
-
await
|
|
1786
|
+
await fs$1.promises.writeFile(tmp, json, "utf-8");
|
|
1787
1787
|
for (let i = 0; i < 5; i++) try {
|
|
1788
|
-
await
|
|
1788
|
+
await fs$1.promises.rename(tmp, storePath);
|
|
1789
1789
|
break;
|
|
1790
1790
|
} catch {
|
|
1791
1791
|
if (i < 4) await new Promise((r) => setTimeout(r, 50 * (i + 1)));
|
|
@@ -1795,27 +1795,27 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
|
|
|
1795
1795
|
if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) === "ENOENT") return;
|
|
1796
1796
|
throw err;
|
|
1797
1797
|
} finally {
|
|
1798
|
-
await
|
|
1798
|
+
await fs$1.promises.rm(tmp, { force: true }).catch(() => void 0);
|
|
1799
1799
|
}
|
|
1800
1800
|
return;
|
|
1801
1801
|
}
|
|
1802
1802
|
const tmp = `${storePath}.${process.pid}.${crypto.randomUUID()}.tmp`;
|
|
1803
1803
|
try {
|
|
1804
|
-
await
|
|
1804
|
+
await fs$1.promises.writeFile(tmp, json, {
|
|
1805
1805
|
mode: 384,
|
|
1806
1806
|
encoding: "utf-8"
|
|
1807
1807
|
});
|
|
1808
|
-
await
|
|
1809
|
-
await
|
|
1808
|
+
await fs$1.promises.rename(tmp, storePath);
|
|
1809
|
+
await fs$1.promises.chmod(storePath, 384);
|
|
1810
1810
|
} catch (err) {
|
|
1811
1811
|
if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) === "ENOENT") {
|
|
1812
1812
|
try {
|
|
1813
|
-
await
|
|
1814
|
-
await
|
|
1813
|
+
await fs$1.promises.mkdir(path.dirname(storePath), { recursive: true });
|
|
1814
|
+
await fs$1.promises.writeFile(storePath, json, {
|
|
1815
1815
|
mode: 384,
|
|
1816
1816
|
encoding: "utf-8"
|
|
1817
1817
|
});
|
|
1818
|
-
await
|
|
1818
|
+
await fs$1.promises.chmod(storePath, 384);
|
|
1819
1819
|
} catch (err2) {
|
|
1820
1820
|
if ((err2 && typeof err2 === "object" && "code" in err2 ? String(err2.code) : null) === "ENOENT") return;
|
|
1821
1821
|
throw err2;
|
|
@@ -1824,7 +1824,7 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
throw err;
|
|
1826
1826
|
} finally {
|
|
1827
|
-
await
|
|
1827
|
+
await fs$1.promises.rm(tmp, { force: true });
|
|
1828
1828
|
}
|
|
1829
1829
|
}
|
|
1830
1830
|
async function saveSessionStore(storePath, store, opts) {
|
|
@@ -2095,8 +2095,8 @@ function resolveMirroredTranscriptText(params) {
|
|
|
2095
2095
|
return trimmed ? trimmed : null;
|
|
2096
2096
|
}
|
|
2097
2097
|
async function ensureSessionHeader(params) {
|
|
2098
|
-
if (
|
|
2099
|
-
await
|
|
2098
|
+
if (fs$1.existsSync(params.sessionFile)) return;
|
|
2099
|
+
await fs$1.promises.mkdir(path.dirname(params.sessionFile), { recursive: true });
|
|
2100
2100
|
const header = {
|
|
2101
2101
|
type: "session",
|
|
2102
2102
|
version: CURRENT_SESSION_VERSION,
|
|
@@ -2104,7 +2104,7 @@ async function ensureSessionHeader(params) {
|
|
|
2104
2104
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2105
2105
|
cwd: process.cwd()
|
|
2106
2106
|
};
|
|
2107
|
-
await
|
|
2107
|
+
await fs$1.promises.writeFile(params.sessionFile, `${JSON.stringify(header)}\n`, {
|
|
2108
2108
|
encoding: "utf-8",
|
|
2109
2109
|
mode: 384
|
|
2110
2110
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { n as listAgentIds, s as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
3
|
-
import { d as resolveStateDir } from "./paths-
|
|
4
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
5
|
-
import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-
|
|
6
|
-
import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-
|
|
7
|
-
import { a as listChatCommands } from "./commands-registry-
|
|
2
|
+
import { n as listAgentIds, s as resolveAgentWorkspaceDir } from "./agent-scope-Bxq1eWbA.js";
|
|
3
|
+
import { d as resolveStateDir } from "./paths-DQpv9a3Q.js";
|
|
4
|
+
import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
|
|
5
|
+
import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-D9wGoiU9.js";
|
|
6
|
+
import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-DRGt1G_o.js";
|
|
7
|
+
import { a as listChatCommands } from "./commands-registry-Cy_UQS_3.js";
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
import os from "node:os";
|
|
10
10
|
import path from "node:path";
|
|
11
|
-
import
|
|
11
|
+
import fs$1 from "node:fs";
|
|
12
12
|
import { randomUUID } from "node:crypto";
|
|
13
13
|
import chokidar from "chokidar";
|
|
14
14
|
|
|
@@ -283,8 +283,8 @@ function listSkillCommandsForAgents(params) {
|
|
|
283
283
|
const visitedDirs = /* @__PURE__ */ new Set();
|
|
284
284
|
for (const agentId of agentIds) {
|
|
285
285
|
const workspaceDir = resolveAgentWorkspaceDir(params.cfg, agentId);
|
|
286
|
-
if (!
|
|
287
|
-
const canonicalDir =
|
|
286
|
+
if (!fs$1.existsSync(workspaceDir)) continue;
|
|
287
|
+
const canonicalDir = fs$1.realpathSync(workspaceDir);
|
|
288
288
|
if (visitedDirs.has(canonicalDir)) continue;
|
|
289
289
|
visitedDirs.add(canonicalDir);
|
|
290
290
|
const commands = buildWorkspaceSkillCommandSpecs(workspaceDir, {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { p as normalizeSkillFilter } from "./agent-scope-
|
|
2
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
3
|
-
import { K as resolvePreferredIdleHandsTmpDir, h as resolveUserPath, t as CONFIG_DIR } from "./utils-
|
|
4
|
-
import { h as resolveIdleHandsPackageRootSync, j as isPathInside } from "./workspace-
|
|
5
|
-
import { ct as loadPluginManifestRegistry, ht as resolveMemorySlotDecision, in as isDangerousHostEnvVarName, mt as resolveEffectiveEnableState, pt as normalizePluginsConfig } from "./model-selection-
|
|
6
|
-
import { a as resolveIdleHandsManifestBlock, c as resolveIdleHandsManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseIdleHandsManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveIdleHandsManifestInstall, r as parseFrontmatterBool, s as resolveIdleHandsManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-
|
|
7
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
1
|
+
import { p as normalizeSkillFilter } from "./agent-scope-Bxq1eWbA.js";
|
|
2
|
+
import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
|
|
3
|
+
import { K as resolvePreferredIdleHandsTmpDir, h as resolveUserPath, t as CONFIG_DIR } from "./utils-D9wGoiU9.js";
|
|
4
|
+
import { h as resolveIdleHandsPackageRootSync, j as isPathInside } from "./workspace-tAtkoD_r.js";
|
|
5
|
+
import { ct as loadPluginManifestRegistry, ht as resolveMemorySlotDecision, in as isDangerousHostEnvVarName, mt as resolveEffectiveEnableState, pt as normalizePluginsConfig } from "./model-selection-C5BhfuPa.js";
|
|
6
|
+
import { a as resolveIdleHandsManifestBlock, c as resolveIdleHandsManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseIdleHandsManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveIdleHandsManifestInstall, r as parseFrontmatterBool, s as resolveIdleHandsManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-pTUG4Sx_.js";
|
|
7
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-BZmt6hFb.js";
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
import path from "node:path";
|
|
10
|
-
import
|
|
10
|
+
import fs from "node:fs";
|
|
11
11
|
import { URL, fileURLToPath } from "node:url";
|
|
12
12
|
import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
|
|
13
13
|
|
|
@@ -463,13 +463,13 @@ function shortPath(value) {
|
|
|
463
463
|
//#region src/agents/skills/bundled-dir.ts
|
|
464
464
|
function looksLikeSkillsDir(dir) {
|
|
465
465
|
try {
|
|
466
|
-
const entries =
|
|
466
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
467
467
|
for (const entry of entries) {
|
|
468
468
|
if (entry.name.startsWith(".")) continue;
|
|
469
469
|
const fullPath = path.join(dir, entry.name);
|
|
470
470
|
if (entry.isFile() && entry.name.endsWith(".md")) return true;
|
|
471
471
|
if (entry.isDirectory()) {
|
|
472
|
-
if (
|
|
472
|
+
if (fs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
475
|
} catch {
|
|
@@ -484,7 +484,7 @@ function resolveBundledSkillsDir(opts = {}) {
|
|
|
484
484
|
const execPath = opts.execPath ?? process.execPath;
|
|
485
485
|
const execDir = path.dirname(execPath);
|
|
486
486
|
const sibling = path.join(execDir, "skills");
|
|
487
|
-
if (
|
|
487
|
+
if (fs.existsSync(sibling)) return sibling;
|
|
488
488
|
} catch {}
|
|
489
489
|
try {
|
|
490
490
|
const moduleUrl = opts.moduleUrl ?? import.meta.url;
|
|
@@ -547,7 +547,7 @@ function resolvePluginSkillDirs(params) {
|
|
|
547
547
|
const trimmed = raw.trim();
|
|
548
548
|
if (!trimmed) continue;
|
|
549
549
|
const candidate = path.resolve(record.rootDir, trimmed);
|
|
550
|
-
if (!
|
|
550
|
+
if (!fs.existsSync(candidate)) {
|
|
551
551
|
log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
|
|
552
552
|
continue;
|
|
553
553
|
}
|
|
@@ -574,7 +574,7 @@ async function serializeByKey(key, task) {
|
|
|
574
574
|
|
|
575
575
|
//#endregion
|
|
576
576
|
//#region src/agents/skills/workspace.ts
|
|
577
|
-
const fsp =
|
|
577
|
+
const fsp = fs.promises;
|
|
578
578
|
const skillsLogger = createSubsystemLogger("skills");
|
|
579
579
|
const skillCommandDebugOnce = /* @__PURE__ */ new Set();
|
|
580
580
|
/**
|
|
@@ -651,7 +651,7 @@ function resolveSkillsLimits(config) {
|
|
|
651
651
|
}
|
|
652
652
|
function listChildDirectories(dir) {
|
|
653
653
|
try {
|
|
654
|
-
const entries =
|
|
654
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
655
655
|
const dirs = [];
|
|
656
656
|
for (const entry of entries) {
|
|
657
657
|
if (entry.name.startsWith(".")) continue;
|
|
@@ -662,7 +662,7 @@ function listChildDirectories(dir) {
|
|
|
662
662
|
continue;
|
|
663
663
|
}
|
|
664
664
|
if (entry.isSymbolicLink()) try {
|
|
665
|
-
if (
|
|
665
|
+
if (fs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
|
|
666
666
|
} catch {}
|
|
667
667
|
}
|
|
668
668
|
return dirs;
|
|
@@ -673,7 +673,7 @@ function listChildDirectories(dir) {
|
|
|
673
673
|
function resolveNestedSkillsRoot(dir, opts) {
|
|
674
674
|
const nested = path.join(dir, "skills");
|
|
675
675
|
try {
|
|
676
|
-
if (!
|
|
676
|
+
if (!fs.existsSync(nested) || !fs.statSync(nested).isDirectory()) return { baseDir: dir };
|
|
677
677
|
} catch {
|
|
678
678
|
return { baseDir: dir };
|
|
679
679
|
}
|
|
@@ -682,7 +682,7 @@ function resolveNestedSkillsRoot(dir, opts) {
|
|
|
682
682
|
const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
|
|
683
683
|
for (const name of toScan) {
|
|
684
684
|
const skillMd = path.join(nested, name, "SKILL.md");
|
|
685
|
-
if (
|
|
685
|
+
if (fs.existsSync(skillMd)) return {
|
|
686
686
|
baseDir: nested,
|
|
687
687
|
note: `Detected nested skills root at ${nested}`
|
|
688
688
|
};
|
|
@@ -702,9 +702,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
702
702
|
const loadSkills = (params) => {
|
|
703
703
|
const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
|
|
704
704
|
const rootSkillMd = path.join(baseDir, "SKILL.md");
|
|
705
|
-
if (
|
|
705
|
+
if (fs.existsSync(rootSkillMd)) {
|
|
706
706
|
try {
|
|
707
|
-
const size =
|
|
707
|
+
const size = fs.statSync(rootSkillMd).size;
|
|
708
708
|
if (size > limits.maxSkillFileBytes) {
|
|
709
709
|
skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
|
|
710
710
|
dir: baseDir,
|
|
@@ -743,9 +743,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
743
743
|
for (const name of limitedChildren) {
|
|
744
744
|
const skillDir = path.join(baseDir, name);
|
|
745
745
|
const skillMd = path.join(skillDir, "SKILL.md");
|
|
746
|
-
if (!
|
|
746
|
+
if (!fs.existsSync(skillMd)) continue;
|
|
747
747
|
try {
|
|
748
|
-
const size =
|
|
748
|
+
const size = fs.statSync(skillMd).size;
|
|
749
749
|
if (size > limits.maxSkillFileBytes) {
|
|
750
750
|
skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
|
|
751
751
|
skill: name,
|
|
@@ -813,7 +813,7 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
813
813
|
return Array.from(merged.values()).map((skill) => {
|
|
814
814
|
let frontmatter = {};
|
|
815
815
|
try {
|
|
816
|
-
frontmatter = parseFrontmatter(
|
|
816
|
+
frontmatter = parseFrontmatter(fs.readFileSync(skill.filePath, "utf-8"));
|
|
817
817
|
} catch {}
|
|
818
818
|
return {
|
|
819
819
|
skill,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-Cn44w-EB.js";
|
|
2
2
|
import { B as theme, k as info, z as isRich } from "./utils-CXzXXV2o.js";
|
|
3
|
-
import { D as resolveSessionModelRef, Er as peekSystemEvents, G as readRestartSentinel, K as summarizeRestartSentinel, Zt as resolveContextTokensForModel, b as classifySessionKey, bt as formatUsageReportLines, c as buildChannelSummary, l as buildChannelAccountSnapshot, u as formatChannelAllowFrom, x as listAgentsForGateway, yt as loadProviderUsageSummary } from "./reply-
|
|
3
|
+
import { D as resolveSessionModelRef, Er as peekSystemEvents, G as readRestartSentinel, K as summarizeRestartSentinel, Zt as resolveContextTokensForModel, b as classifySessionKey, bt as formatUsageReportLines, c as buildChannelSummary, l as buildChannelAccountSnapshot, u as formatChannelAllowFrom, x as listAgentsForGateway, yt as loadProviderUsageSummary } from "./reply-7AXQ38dZ.js";
|
|
4
4
|
import { u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
|
|
5
5
|
import { w as parseAgentSessionKey } from "./session-key-Cuihcz_O.js";
|
|
6
6
|
import { t as resolveIdleHandsPackageRoot } from "./idlehands-root-B8cUs-5M.js";
|
|
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D7pLXkNs.j
|
|
|
29
29
|
import { t as readLastGatewayErrorLine } from "./diagnostics-DmZbQ8Nc.js";
|
|
30
30
|
import { t as renderTable } from "./table-B9AmL3M1.js";
|
|
31
31
|
import { i as resolveGatewayProbeAuth$1, s as probeGateway, t as runSecurityAudit } from "./audit-k9xjNToB.js";
|
|
32
|
-
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
32
|
+
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-C2A5ilGU.js";
|
|
33
33
|
import { _ as resolveUpdateChannelDisplay, a as formatGitInstallLabel, h as normalizeUpdateChannel, n as checkUpdateStatus, t as resolveDefaultChannelAccountContext } from "./channel-account-context-CDbY5AIr.js";
|
|
34
34
|
import { t as resolveNodeService } from "./node-service-C3vyxHLA.js";
|
|
35
35
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-BK5XIv_A.js";
|
|
@@ -10,7 +10,7 @@ import { r as VERSION } from "./env-vars-I4LX5XSX.js";
|
|
|
10
10
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-DEWCCZdI.js";
|
|
11
11
|
import { Z as resolveFreshSessionTotalTokens, c as loadSessionStore, nt as resolveMainSessionKey } from "./sessions-C1PbgPkg.js";
|
|
12
12
|
import { n as listChannelPlugins } from "./plugins-CCrfZ49T.js";
|
|
13
|
-
import { Cn as buildChannelAccountSnapshot, Dt as summarizeRestartSentinel, Et as readRestartSentinel, Sn as buildChannelSummary, gn as formatUsageReportLines, hn as loadProviderUsageSummary, kn as peekSystemEvents, wn as formatChannelAllowFrom } from "./subagent-registry-
|
|
13
|
+
import { Cn as buildChannelAccountSnapshot, Dt as summarizeRestartSentinel, Et as readRestartSentinel, Sn as buildChannelSummary, gn as formatUsageReportLines, hn as loadProviderUsageSummary, kn as peekSystemEvents, wn as formatChannelAllowFrom } from "./subagent-registry-DDIoRVFV.js";
|
|
14
14
|
import { u as resolveStorePath } from "./paths-CC17i2eK.js";
|
|
15
15
|
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-B9uIa0hd.js";
|
|
16
16
|
import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CQwGqfET.js";
|
|
@@ -30,7 +30,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-Om381vyM.j
|
|
|
30
30
|
import { t as readLastGatewayErrorLine } from "./diagnostics-BzCL1AMI.js";
|
|
31
31
|
import { t as renderTable } from "./table-aJzHv5Oe.js";
|
|
32
32
|
import { i as resolveGatewayProbeAuth$1, s as probeGateway, t as runSecurityAudit } from "./audit-CdwW3NUX.js";
|
|
33
|
-
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
33
|
+
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Dn7CVhrN.js";
|
|
34
34
|
import { _ as resolveUpdateChannelDisplay, a as formatGitInstallLabel, h as normalizeUpdateChannel, n as checkUpdateStatus, t as resolveDefaultChannelAccountContext } from "./channel-account-context-ofowt_yq.js";
|
|
35
35
|
import { t as resolveNodeService } from "./node-service-v7Nz7h4D.js";
|
|
36
36
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-oh9Nicqr.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as resolveConfigDir } from "./utils-
|
|
2
|
-
import { c as detectMime, l as extensionForMime } from "./image-ops-
|
|
1
|
+
import { p as resolveConfigDir } from "./utils-D9wGoiU9.js";
|
|
2
|
+
import { c as detectMime, l as extensionForMime } from "./image-ops-J8P5zOFm.js";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import crypto from "node:crypto";
|