@visorcraft/idlehands 4.1.0 → 4.2.1
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/CHANGELOG.md +6 -0
- package/dist/{accounts-DsVN0UNw.js → accounts-3HS_UAhJ.js} +1 -1
- package/dist/{accounts-B8cGzkjD.js → accounts-BDVs8LTu.js} +1 -1
- package/dist/{accounts-D5tB_lO0.js → accounts-CIvVRRHb.js} +1 -1
- package/dist/{accounts-D-hQsUw-.js → accounts-DLTODa_Z.js} +1 -1
- package/dist/{accounts-D87a1Y_K.js → accounts-DgbTKQoW.js} +1 -1
- package/dist/{accounts-BQC_GRUB.js → accounts-Dk8mJIrQ.js} +6 -6
- package/dist/{acp-cli-BEHYc8ty.js → acp-cli-BEpWQbqb.js} +7 -7
- package/dist/{agent-scope-Bxq1eWbA.js → agent-scope-DyP_tr7s.js} +4 -4
- package/dist/{agent-scope-Bn39ugK4.js → agent-scope-RA0zXRpu.js} +18 -18
- package/dist/{agent-via-gateway-igDg7ko6.js → agent-via-gateway-C42kkKZI.js} +2 -2
- package/dist/{agent-via-gateway-CM7X6sKJ.js → agent-via-gateway-CUtzJXBE.js} +60 -60
- package/dist/{agent-via-gateway-B03q92bw.js → agent-via-gateway-CldlRczJ.js} +1 -1
- package/dist/{agent-via-gateway-bS6seBwg.js → agent-via-gateway-oMn0WfUq.js} +4 -4
- package/dist/{agents-DdTECKDf.js → agents-BfnnMO1i.js} +4 -4
- package/dist/{agents.config-D2EbQiOx.js → agents.config-BFfVBZMA.js} +1 -1
- package/dist/{agents.config-CPUPtcKt.js → agents.config-bWtpv0jP.js} +2 -2
- package/dist/{anton-ONYQUE8F.js → anton-CgpWkf5P.js} +32 -17
- package/dist/{anton-C7-Qxyij.js → anton-CoGaJdTU.js} +36 -21
- package/dist/{anton-D4vpCj_q.js → anton-DSS3RNo7.js} +32 -17
- package/dist/anton-DXL8jrY_.js +792 -0
- package/dist/{api-key-rotation-nXQVJErE.js → api-key-rotation-B-FTJm5p.js} +1 -1
- package/dist/{audio-preflight-qkU2lsDn.js → audio-preflight-CW8IH1lU.js} +35 -35
- package/dist/{audio-preflight-DzjXupNO.js → audio-preflight-Dl1TO10w.js} +31 -31
- package/dist/{audit-C5VPFgbJ.js → audit-CKeZnjft.js} +22 -22
- package/dist/{auth-choice-DVoPuwEs.js → auth-choice-BNofPyTK.js} +1 -1
- package/dist/{auth-choice-BDndThZZ.js → auth-choice-D12Wsf7w.js} +12 -12
- package/dist/{auth-choice-CQqV1VIf.js → auth-choice-Z7nPFxhP.js} +10 -10
- package/dist/{auth-choice.apply-helpers-pTqMTYmi.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
- package/dist/{auth-store-CMyrmmSF.js → auth-store-DDzIMy8_.js} +7 -7
- package/dist/{auth-store-Bb4aajHu.js → auth-store-DXT-l7fO.js} +12 -12
- package/dist/{auth-token-fKt_cHOj.js → auth-token-BJq87X3o.js} +1 -1
- package/dist/{banner-CFKoGAzN.js → banner-B1-kj-GW.js} +1 -1
- package/dist/{bindings-DZjkLUU_.js → bindings-B59Q7nsk.js} +1 -1
- package/dist/{bindings-CLZIJ0Eo.js → bindings-D3b5Fmc9.js} +2 -2
- package/dist/{browser-cli-qU0I-Gla.js → browser-cli-Ci6DpTnS.js} +11 -11
- 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/{call-Du-oBD99.js → call-BpWhjuOg.js} +9 -9
- package/dist/{channel-account-context-B4nJPU2N.js → channel-account-context-CDbY5AIr.js} +5 -5
- package/dist/{channel-activity-DdL3RAv_.js → channel-activity-D_TMOGQ0.js} +3 -3
- package/dist/{channel-options-BU0E7BdU.js → channel-options-C5Iz9bes.js} +1 -1
- package/dist/{channel-options-B1cfZ5uQ.js → channel-options-CUP3A4VX.js} +3 -3
- package/dist/{channel-selection-3jUl-PyW.js → channel-selection-ZxRkxpuF.js} +1 -1
- package/dist/{channel-web-BDytDCrG.js → channel-web-CGXl1PnB.js} +2 -2
- package/dist/{channel-web-CzrJ-6X4.js → channel-web-CsUiKxQo.js} +22 -22
- package/dist/{channels-cli-DWaQsKP8.js → channels-cli-DK7TRLqX.js} +7 -7
- package/dist/{channels-cli-B4o-qohk.js → channels-cli-DmHSajZy.js} +88 -88
- package/dist/{channels-status-issues-hgASw9UA.js → channels-status-issues-CDpWjdI3.js} +1 -1
- package/dist/{chrome-CT_a9OgI.js → chrome-BcJB6PcM.js} +17 -17
- package/dist/{chrome-YguTEaLx.js → chrome-VBsQfIrt.js} +2 -2
- package/dist/{chunk-Djk-9JeT.js → chunk-CMpX7Jaz.js} +1 -1
- package/dist/{clawbot-cli-C5cDal-5.js → clawbot-cli-uFgYrysW.js} +5 -5
- package/dist/{cli-Hplv9sD1.js → cli-6eMKeewY.js} +2 -2
- package/dist/{cli-DXyOlvH2.js → cli-DEE_ketW.js} +70 -70
- package/dist/{client-Dl5EAvfO.js → client-DtnD-ee9.js} +1 -1
- package/dist/{command-registry-esizscE2.js → command-registry-BFTlzx6d.js} +10 -10
- package/dist/{commands-D3BU_t7G.js → commands-Dj5LalLo.js} +1 -1
- package/dist/{commands-registry-Cj4D_1tw.js → commands-registry-CURlRZQJ.js} +3 -3
- package/dist/{commands-registry-_TBHHpvt.js → commands-registry-j4vAzcF2.js} +5 -5
- package/dist/{completion-cli-c4blaZPQ.js → completion-cli-BbXgtvGY.js} +2 -2
- package/dist/{completion-cli-CXDILt8-.js → completion-cli-PBfCNWhv.js} +12 -12
- package/dist/{config-cli-D_mH5-FH.js → config-cli-BVJRkNhX.js} +6 -6
- package/dist/{config-cli-98ASrAou.js → config-cli-Q934shK6.js} +1 -1
- package/dist/{config-guard-DnAyuF6T.js → config-guard-BdsOumqh.js} +17 -17
- package/dist/{config-validation-DIomLMwH.js → config-validation-BvKX6fPw.js} +2 -2
- package/dist/{configure-PKG58EzI.js → configure-85ttW_lD.js} +16 -16
- package/dist/{configure-CKspMrI1.js → configure-BGAvA5a4.js} +3 -3
- package/dist/{control-ui-assets-CiaCDBvZ.js → control-ui-assets-C7ZpN9hN.js} +1 -1
- package/dist/{cron-cli-BIfVPc5K.js → cron-cli-DQsnGQKs.js} +12 -12
- package/dist/{daemon-cli-DpyQu0Dp.js → daemon-cli-DUg-s4LG.js} +11 -11
- package/dist/{daemon-install-DeqQiAad.js → daemon-install-CYPo4M1M.js} +4 -4
- package/dist/{daemon-install-helpers-Bug_GYuy.js → daemon-install-helpers-BZY9-jNW.js} +9 -9
- package/dist/{deliver-yTpXc5sv.js → deliver--kttnrER.js} +7 -7
- package/dist/{deliver-Db2xqgLg.js → deliver-BUiQ-9fE.js} +20 -20
- package/dist/{deps-CjWcQwlX.js → deps-AEDT3iDX.js} +1 -1
- package/dist/{deps-CC5E5LXB.js → deps-B4J8H6nI.js} +6 -6
- package/dist/{deps-BotXja4Z.js → deps-Bq7jJLyN.js} +6 -6
- package/dist/{deps-DR1eh_L_.js → deps-Ch6bZ8PI.js} +1 -1
- package/dist/{devices-cli-B7fkQKei.js → devices-cli-DKK65S9Z.js} +7 -7
- package/dist/{diagnostic-BvlZ0Sot.js → diagnostic-4owMk4vH.js} +1 -1
- package/dist/{diagnostics-CdUgLS0N.js → diagnostics-DmZbQ8Nc.js} +5 -5
- package/dist/{directory-cli-BAMS8f9U.js → directory-cli-Dz9iXeut.js} +9 -9
- package/dist/{dns-cli-BdxBk-k_.js → dns-cli-DD6hWsdc.js} +4 -4
- package/dist/{dock-ejUetwTC.js → dock-BgOmHcbh.js} +6 -6
- package/dist/{dock-CzF5XYGd.js → dock-Y96MzKuM.js} +4 -4
- package/dist/{docs-cli-SF7es4Zs.js → docs-cli-cHkrTB2e.js} +4 -4
- package/dist/{doctor-completion-Co_xszXC.js → doctor-completion-CN5Zujsa.js} +2 -2
- package/dist/{doctor-completion-DFr8_h-z.js → doctor-completion-Clh5CNUd.js} +1 -1
- package/dist/{doctor-config-flow-8qXzBx09.js → doctor-config-flow-Ck4oCjfl.js} +14 -14
- package/dist/{emergency-stop-ChBe32HN.js → emergency-stop-2v4bhRCE.js} +2 -2
- package/dist/{emergency-stop-DtVFxCO1.js → emergency-stop-BtasjDnU.js} +70 -70
- package/dist/emergency-stop-CVO75pTD.js +113 -0
- package/dist/{emergency-stop-CDozqde9.js → emergency-stop-D_bTOufu.js} +2 -2
- package/dist/{enable-DaA_orGN.js → enable-o_s6PBsC.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{env-q-PhWbb_.js → env-B5G1qwGc.js} +1 -1
- package/dist/{errors-C4SHjIZK.js → errors-C_0nm4TJ.js} +1 -1
- package/dist/{exec-approvals-allowlist-8AkOwwIr.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
- package/dist/{exec-approvals-cli-CbcJzCt0.js → exec-approvals-cli-D6XUzs4j.js} +15 -15
- package/dist/{exec-safe-bin-runtime-policy-DYXuBKqH.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
- package/dist/extensionAPI.js +2 -2
- package/dist/{fetch-guard-CcfDZXe9.js → fetch-guard-iuQsIjqN.js} +1 -1
- package/dist/{frontmatter-pTUG4Sx_.js → frontmatter-BOudmHMS.js} +2 -2
- package/dist/{fs-safe-2l05hI1Y.js → fs-safe-CYUaAFO9.js} +2 -2
- package/dist/{fs-safe-DNFrxDS-.js → fs-safe-_JQUGpZf.js} +15 -15
- package/dist/{gateway-cli-DjCBMnUT.js → gateway-cli-Cl7cEsHE.js} +9 -9
- package/dist/{gateway-cli-poVGdgAz.js → gateway-cli-DJm73Wou.js} +148 -148
- package/dist/{gateway-rpc-IpZymG6F.js → gateway-rpc-BBFG1T-M.js} +1 -1
- package/dist/{gemini-auth-DLSGffQK.js → gemini-auth-CIyaa44H.js} +2 -2
- package/dist/{github-copilot-token-BjmEQcmi.js → github-copilot-token-Dgt6cnsM.js} +7 -7
- package/dist/{health-lZsCLX6p.js → health-C6_Sa_ef.js} +13 -13
- package/dist/{health-HEN6Wk9G.js → health-D-b3jdnU.js} +1 -1
- package/dist/{hooks-cli-DFrttZGb.js → hooks-cli-BB25FyuN.js} +3 -3
- package/dist/{hooks-cli-EbzkZ1Xh.js → hooks-cli-BC3n8UYQ.js} +84 -84
- package/dist/{hooks-status-CPIWc_bx.js → hooks-status-DNGo2G8Q.js} +1 -1
- package/dist/{idlehands-root-DFL2GrNW.js → idlehands-root-B8cUs-5M.js} +8 -8
- package/dist/{image-Dlu13Ebx.js → image-D8b_rlQC.js} +6 -6
- package/dist/{image-C2JZiK-6.js → image-DSDEbSiO.js} +5 -5
- package/dist/{image-ops-J8P5zOFm.js → image-ops-BU-VdLZu.js} +2 -2
- package/dist/{image-ops-BkoEFRYH.js → image-ops-D1KtygWz.js} +11 -11
- package/dist/index.js +80 -80
- package/dist/{inspect-Dg16DMLn.js → inspect-ISQZuNM5.js} +4 -4
- package/dist/{install-safe-path-CNNMzJl9.js → install-safe-path-ChNR9pl6.js} +19 -19
- package/dist/{installs-ST3UaUVJ.js → installs-CNubze2L.js} +9 -9
- package/dist/{ir-BT5aAdU9.js → ir-B7IBoKLy.js} +5 -5
- package/dist/{ir-DV0Hszc8.js → ir-VncGpwA1.js} +6 -6
- package/dist/{lifecycle-core-DOScNyOv.js → lifecycle-core-B6UoqYTJ.js} +5 -5
- package/dist/llm-slug-generator.js +60 -60
- package/dist/{local-roots-d4y0lvs2.js → local-roots-KN4Hp1yZ.js} +5 -5
- package/dist/{local-roots-Cco87A2_.js → local-roots-q0xbefkf.js} +2 -2
- package/dist/{login-C2X0In6m.js → login-CFr5vJmR.js} +6 -6
- package/dist/{login-Dl_lsEHS.js → login-CfUhrgWT.js} +4 -4
- package/dist/{login-qr-C17PY0rr.js → login-qr-CFFFOjOl.js} +11 -11
- package/dist/{login-qr-B68cBRH0.js → login-qr-DBMsUxgL.js} +7 -7
- package/dist/{logs-cli-DHCG25JA.js → logs-cli-4VQ9Iwiw.js} +8 -8
- package/dist/{manager-CgzA1hKo.js → manager-BE_76jWB.js} +15 -15
- package/dist/{manager-BBeTPO2h.js → manager-BMAFgXyU.js} +13 -13
- package/dist/{manifest-registry-RfRn8HJx.js → manifest-registry-Bak1x76G.js} +1 -1
- package/dist/{markdown-tables-R8VTpfE9.js → markdown-tables-CzsockiZ.js} +1 -1
- package/dist/{markdown-tables-C5hTDqNm.js → markdown-tables-DZClqsNo.js} +1 -1
- package/dist/{memory-cli-4wfelGdK.js → memory-cli-CUGwnVIY.js} +12 -12
- package/dist/{message-channel-ZdI1-uUh.js → message-channel-C8QtrwEU.js} +1 -1
- package/dist/{model-Bd-05WpB.js → model-C-icShH2.js} +2 -2
- package/dist/{model-catalog-BCsDrrvq.js → model-catalog-D9no0CH2.js} +3 -3
- package/dist/{model-picker-D3U0wJCO.js → model-picker-BkXoTOiA.js} +4 -4
- package/dist/{model-selection-CSn9tUuH.js → model-selection-0dGxYGp8.js} +16 -16
- package/dist/{model-selection-C5hI1dum.js → model-selection-1MMYqY6M.js} +41 -41
- package/dist/{models-tZYpgts_.js → models-C1_Tdc1Q.js} +2 -2
- package/dist/{models-cli-umEUn4Xu.js → models-cli-B9yw60gV.js} +79 -79
- package/dist/{models-cli-DVAyIZ63.js → models-cli-Bs5ZNSbk.js} +4 -4
- package/dist/{models-config-lQpqp472.js → models-config-C5A1wDWh.js} +6 -6
- package/dist/{node-cli-7gQ7xfOh.js → node-cli-BYzjxmUY.js} +32 -32
- package/dist/{node-service-GpI0jzKr.js → node-service-C3vyxHLA.js} +1 -1
- package/dist/{nodes-cli-CDXLGCox.js → nodes-cli-kNOtp0U0.js} +14 -14
- package/dist/{nodes-screen-CIAn0wXq.js → nodes-screen-CcpPaFxa.js} +4 -4
- package/dist/{npm-registry-spec-BfeHLbIQ.js → npm-registry-spec-BCbbfIhX.js} +16 -16
- package/dist/{npm-resolution-By6en78P.js → npm-resolution-BMDipaRX.js} +3 -3
- package/dist/{npm-resolution-By6bZkA-.js → npm-resolution-yXJbqHHn.js} +1 -1
- package/dist/{onboard-Dw-URWpt.js → onboard-CYRoDnOI.js} +2 -2
- package/dist/{onboard-BmDmDXYf.js → onboard-DjbHK18p.js} +6 -6
- package/dist/{onboard-channels-DCDhpz9s.js → onboard-channels-CNQt2jFU.js} +20 -20
- package/dist/{onboard-channels-JPltbNGL.js → onboard-channels-CkxvodmR.js} +1 -1
- package/dist/{onboard-custom-D2sCP3_S.js → onboard-custom-DUbzMMu7.js} +4 -4
- package/dist/{onboard-helpers-CdzbIhrm.js → onboard-helpers-mzy38DiC.js} +8 -8
- package/dist/{onboard-hooks-_1Jgimeu.js → onboard-hooks-D9teGxfH.js} +4 -4
- package/dist/{onboard-remote-pCRaL_Ey.js → onboard-remote-LCBHijVE.js} +1 -1
- package/dist/{onboard-skills-DvwRvBvj.js → onboard-skills-jFY9gaOu.js} +4 -4
- package/dist/{onboarding-DIorhVOJ.js → onboarding-BEDOWI9h.js} +3 -3
- package/dist/{onboarding-Cf3JxJxY.js → onboarding-D9AZJlDK.js} +13 -13
- package/dist/{onboarding.finalize-BCmAqhLV.js → onboarding.finalize-D4hW1yTd.js} +7 -7
- package/dist/{onboarding.finalize-BH4WHo75.js → onboarding.finalize-DJxMkD2g.js} +82 -82
- package/dist/{onboarding.gateway-config-Sj7zQKsE.js → onboarding.gateway-config-Btu2gzgr.js} +16 -16
- package/dist/{openai-model-default-OPCCNNS0.js → openai-model-default-7J6cw1rA.js} +2 -2
- package/dist/{outbound-CdY_AskB.js → outbound-BNh6PpQb.js} +6 -6
- package/dist/{outbound-CG19kl0w.js → outbound-DPTxwchq.js} +4 -4
- package/dist/{outbound-attachment-jYdMgCml.js → outbound-attachment-3I6GzwDe.js} +2 -2
- package/dist/{outbound-attachment-IfeZJAKk.js → outbound-attachment-Bot3bRnK.js} +2 -2
- package/dist/{pairing-cli-QJYYDcIK.js → pairing-cli-jwx6hMsM.js} +10 -10
- package/dist/{pairing-labels-DuZ7ih-T.js → pairing-labels-ChQJzbS9.js} +1 -1
- package/dist/{pairing-store-qvpPoWL_.js → pairing-store-CPpEEQJO.js} +2 -2
- package/dist/{pairing-token-3hoCgQqp.js → pairing-token-lKXTMQ_M.js} +7 -7
- package/dist/{path-alias-guards-BZmt6hFb.js → path-alias-guards-Cu1nXNMM.js} +1 -1
- package/dist/{path-alias-guards-BCskHdfJ.js → path-alias-guards-FXBVVTLw.js} +3 -3
- package/dist/{path-safety-C1Y004P_.js → path-safety-DwibX65n.js} +1 -1
- package/dist/{paths-Bt0fZexW.js → paths-B-CLQ5RT.js} +9 -9
- package/dist/{paths-DQpv9a3Q.js → paths-BYNVLNi_.js} +5 -5
- package/dist/{paths-D3p7ZvM6.js → paths-D_qUel1T.js} +3 -3
- package/dist/{pi-embedded-mKozULng.js → pi-embedded-C6RDRgJM.js} +179 -179
- package/dist/{pi-embedded-helpers-BkzrQ5bZ.js → pi-embedded-helpers-BCsfqpDt.js} +6 -6
- package/dist/{pi-embedded-helpers-B3ceCcxm.js → pi-embedded-helpers-CghCLoPo.js} +24 -24
- package/dist/{pi-embedded-DMx6rHVL.js → pi-embedded-o6Xj8V4C.js} +11 -11
- package/dist/{pi-model-discovery-Bt79ifyi.js → pi-model-discovery-BIP3RjXl.js} +1 -1
- package/dist/{pi-model-discovery-Dlx4RLWo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
- package/dist/{pi-tools.policy-B_ME3yF6.js → pi-tools.policy-DfITIKZj.js} +5 -5
- package/dist/{plugin-auto-enable-BMuSi4aV.js → plugin-auto-enable-7DUxMy6A.js} +3 -3
- package/dist/{plugin-registry-BY85d-vE.js → plugin-registry-6C1sgAm1.js} +1 -1
- package/dist/{plugin-registry-BIoGoN5y.js → plugin-registry-DIK-5KI9.js} +3 -3
- package/dist/plugin-sdk/{agent-via-gateway-CXtWg-qx.js → agent-via-gateway-DmQMFWNE.js} +2 -2
- package/dist/plugin-sdk/{anton-CGYTy9vy.js → anton-CrjFisFZ.js} +32 -17
- package/dist/plugin-sdk/{channel-web-EFRSObCG.js → channel-web-vQgHbtCG.js} +2 -2
- package/dist/plugin-sdk/{deps-qZxPlSgp.js → deps-DfyALwFG.js} +1 -1
- package/dist/plugin-sdk/{emergency-stop-CxcBz-aQ.js → emergency-stop-0ZrbH3D4.js} +2 -2
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{reply-nUO1aM3T.js → reply-BfdVf3fw.js} +11 -11
- package/dist/plugin-sdk/{web-CEtAvhaI.js → web-DwDLI7GP.js} +3 -3
- package/dist/{plugins-DYr-HHj0.js → plugins-CRB60mCJ.js} +10 -10
- package/dist/{plugins-B4hASNc2.js → plugins-D46VZh7u.js} +2 -2
- package/dist/{plugins-cli-Dlb8QO-K.js → plugins-cli-B1kN2Xze.js} +80 -80
- package/dist/{plugins-cli-RFXGkaxP.js → plugins-cli-DFUxLQbB.js} +3 -3
- package/dist/{ports-B07M55Gr.js → ports-B2o0FSFD.js} +1 -1
- package/dist/{ports-DWJO5S52.js → ports-SQy1d-RL.js} +2 -2
- package/dist/{program-context-B_byBfwR.js → program-context-CjyGlgVG.js} +43 -43
- package/dist/{program-Do2-I4y3.js → program-mmjp27H4.js} +8 -8
- package/dist/{prompt-select-styled-VWGHu3e1.js → prompt-select-styled-04TKk_r3.js} +4 -4
- package/dist/{prompt-select-styled-CBF_I30O.js → prompt-select-styled-FskTiqWw.js} +37 -37
- package/dist/{provider-auth-helpers-BCc5UtUa.js → provider-auth-helpers-9IcvdTst.js} +1 -1
- package/dist/{provider-auth-helpers-BGGSUXOH.js → provider-auth-helpers-BI7MVWjD.js} +5 -5
- package/dist/{push-apns-CHmvuoMu.js → push-apns-Bh0u21Bh.js} +1 -1
- package/dist/{push-apns-CuwLAoXk.js → push-apns-DvSYSWvk.js} +5 -5
- package/dist/{pw-ai-BGALvhDi.js → pw-ai-7i9eGnLh.js} +11 -11
- package/dist/{pw-ai-DIV4PcIo.js → pw-ai-CfYaR1K2.js} +13 -13
- package/dist/{qmd-manager-CVcPfkhL.js → qmd-manager-B-qeywfQ.js} +19 -19
- package/dist/{qmd-manager-BRvg3Rx2.js → qmd-manager-B_GgyQQ0.js} +8 -8
- package/dist/{qr-cli-D2Oh8f0U.js → qr-cli-CSt5ihwG.js} +1 -1
- package/dist/{query-expansion-i5I3yavb.js → query-expansion-Clts_AGz.js} +12 -12
- package/dist/{query-expansion-DHuNyU-_.js → query-expansion-DEq020GG.js} +5 -5
- package/dist/{redact-1Y0KPNtr.js → redact-Bvpf-ATQ.js} +1 -1
- package/dist/{redact-snapshot-KMo22a85.js → redact-snapshot-BbEVKv0k.js} +1 -1
- package/dist/{register.agent-Dx7ULz49.js → register.agent-B3zUfhl9.js} +9 -9
- package/dist/{register.agent-CDcuj79y.js → register.agent-BSe92Zxh.js} +95 -95
- package/dist/register.configure-DZ9OCp0V.js +168 -0
- package/dist/{register.configure-BctHAiWh.js → register.configure-N4JG5hVe.js} +8 -8
- package/dist/{register.maintenance-BcFR1fGQ.js → register.maintenance-BjhkxF3o.js} +9 -9
- package/dist/{register.maintenance-wv8PzmVy.js → register.maintenance-DxauQqK_.js} +90 -90
- package/dist/{register.message-DUAiI9J7.js → register.message-BsMpRFVr.js} +71 -71
- package/dist/{register.message-BLScF2fV.js → register.message-DoZ5i1Pn.js} +3 -3
- package/dist/{register.onboard-BMNBXD29.js → register.onboard-Cw3wNQRm.js} +2 -2
- package/dist/{register.onboard-F09brfSb.js → register.onboard-Hxi3l9IA.js} +18 -18
- package/dist/{register.orchestrator-anton-CGhKIDjJ.js → register.orchestrator-anton-BqQfw2JX.js} +14 -14
- package/dist/{register.orchestrator-anton-Tn_RaMLq.js → register.orchestrator-anton-DOByOKzU.js} +2 -2
- package/dist/{register.setup-jzek547p.js → register.setup-dazD7bl3.js} +21 -21
- package/dist/{register.setup-DqbGSLoJ.js → register.setup-r5Xy4nv4.js} +2 -2
- package/dist/{register.status-health-sessions-ByfydR_f.js → register.status-health-sessions-3zjBM0m6.js} +82 -82
- package/dist/{register.status-health-sessions-wbopjGL-.js → register.status-health-sessions-DobZ2G2u.js} +4 -4
- package/dist/{register.subclis-CuNL7Zgu.js → register.subclis-CGJxYP3h.js} +9 -9
- package/dist/{replies-2C16fnBP.js → replies-6_GxvQYe.js} +3 -3
- package/dist/{replies-Czp4hvpS.js → replies-hSFVxL4h.js} +1 -1
- package/dist/{reply-CdFdL9nL.js → reply-BDr-UY9O.js} +153 -153
- package/dist/{reply-prefix-DCljZiIB.js → reply-prefix-BUgeSN2R.js} +1 -1
- package/dist/{reply-prefix-BMEdvSpA.js → reply-prefix-C3y4zpTl.js} +1 -1
- package/dist/{resolve-route-Ef_Yt2Dw.js → resolve-route-D_AbcmD6.js} +2 -2
- package/dist/{resolve-route-ClcifpKn.js → resolve-route-DuttYY7A.js} +4 -4
- package/dist/{retry-CG6cMRDQ.js → retry-BeB9WenR.js} +1 -1
- package/dist/{rpc-CNqnw2FL.js → rpc-Cf9OK5Yk.js} +1 -1
- package/dist/{run-main-9A7FdIR1.js → run-main-BDEztzfx.js} +15 -15
- package/dist/{runner-BFG54hnb.js → runner-DzszLzI4.js} +20 -20
- package/dist/{runner-BkCU-kqs.js → runner-PgRFPYUj.js} +11 -11
- package/dist/{runtime-DEmy759r.js → runtime-XmXLaHNk.js} +2 -2
- package/dist/{sandbox-CfPbhDY_.js → sandbox-DcUw5h3p.js} +20 -20
- package/dist/{sandbox-cli-B4wLJr21.js → sandbox-cli-DGvJ7Eeq.js} +22 -22
- package/dist/{secrets-cli-DP718vNZ.js → secrets-cli-CR3h2TBy.js} +9 -9
- package/dist/{security-cli-CG2_SV7b.js → security-cli-B9_LV2po.js} +39 -39
- package/dist/{send-DDMaLJAQ.js → send--lzpNy4f.js} +7 -7
- package/dist/{send-DZa8fWSm.js → send-BeIZJuy4.js} +7 -7
- package/dist/{send-Y1hD4tQ1.js → send-C1hvd3bt.js} +6 -6
- package/dist/{send-BCPkAE2k.js → send-C4v0Leny.js} +6 -6
- package/dist/{send-BOxJ4QXF.js → send-D4bMycQu.js} +7 -7
- package/dist/{send-CEavqqEz.js → send-DQiw_nGD.js} +6 -6
- package/dist/{send-FLdrx-oF.js → send-Dfa3sn6r.js} +24 -24
- package/dist/{send-IlPMLAH-.js → send-DmLC7aEF.js} +10 -10
- package/dist/{send-BPwTl4-K.js → send-DuwdEkLw.js} +4 -4
- package/dist/{send-CVIXqubC.js → send-DwdHiC7_.js} +13 -13
- package/dist/{server-BpSbZAwg.js → server-D6MltJIF.js} +14 -14
- package/dist/{server-context-BxNSTpH6.js → server-context-DI0W_H7R.js} +10 -10
- package/dist/{server-lifecycle-CGKrGrhM.js → server-lifecycle-B5PlrlbG.js} +2 -2
- package/dist/{server-node-events-CbVkqOtV.js → server-node-events-BL1dTBEr.js} +3 -3
- package/dist/{server-node-events-BSPxvn7O.js → server-node-events-C69TPlKW.js} +71 -71
- package/dist/{service-Bj2oSfpw.js → service-C8NMS3m_.js} +15 -15
- package/dist/{session-BKVySI8q.js → session-CdnrRhb4.js} +1 -1
- package/dist/{session-nUPBXeEa.js → session-F_YDS_1V.js} +7 -7
- package/dist/{sessions-DRA4oaxz.js → sessions-3ioSeOA1.js} +41 -41
- package/dist/{sessions-BqWocozB.js → sessions-BtPXimXQ.js} +14 -14
- package/dist/{shared-DnQ4iyXk.js → shared-CpDPo3hJ.js} +2 -2
- package/dist/{shared-Jzrx8DfN.js → shared-DpLSpJIl.js} +1 -1
- package/dist/{skill-commands-BwIRWSCI.js → skill-commands-BFzmZAfo.js} +5 -5
- package/dist/{skill-commands-BHTBXXVn.js → skill-commands-Ck3flWX7.js} +9 -9
- package/dist/{skill-scanner-B4Ftsbd2.js → skill-scanner-D7mzXRXd.js} +5 -5
- package/dist/{skills-umlGvChF.js → skills-CnAPWfca.js} +22 -22
- package/dist/{skills-TIyQDZx7.js → skills-DlvDyK8L.js} +3 -3
- package/dist/{skills-cli-5lbXi4Lh.js → skills-cli-BhKGhjbO.js} +5 -5
- package/dist/{skills-install-D0JHP5uM.js → skills-install-tr6wRWZj.js} +4 -4
- package/dist/{skills-status-Q9skQExW.js → skills-status-qjQ8XP0h.js} +1 -1
- package/dist/{status-ClMOrHdT.js → status-AEwcpHsu.js} +2 -2
- package/dist/{status-YWasgjym.js → status-B8z0RCPf.js} +24 -24
- package/dist/{status.update-C3uRz7W6.js → status.update-CTi6vuWj.js} +2 -2
- package/dist/{store-D-ZicQeo.js → store-CvMgrKWx.js} +2 -2
- package/dist/{store-CLNuI8-G.js → store-kH9wHHbO.js} +5 -5
- package/dist/{subagent-registry-BH5O1rxK.js → subagent-registry-Dclk-Ews.js} +11 -11
- package/dist/{subsystem-D7ZepYT1.js → subsystem-tzu-rIAJ.js} +1 -1
- package/dist/{system-cli-BfjZ6QvH.js → system-cli-DyVZ5udc.js} +8 -8
- package/dist/{system-run-approval-context-xZVoE4nS.js → system-run-approval-context-CISBXlNw.js} +1 -1
- package/dist/{system-run-command-BIhrK3OI.js → system-run-command-qJdgzxLp.js} +1 -1
- package/dist/{systemd-DyrVLTI0.js → systemd-CaCR5CyM.js} +9 -9
- package/dist/{systemd-hints-BoKKzRI_.js → systemd-hints-DHu-HVFx.js} +6 -6
- package/dist/{systemd-linger-DrhGd61G.js → systemd-linger-B7XlUHk_.js} +1 -1
- package/dist/{tables-Co_R_WKs.js → tables-5k-zOZ-s.js} +1 -1
- package/dist/{tables-CZSD889r.js → tables-g9xkflht.js} +1 -1
- package/dist/{target-errors-B1mcM4WR.js → target-errors-BPfQrPim.js} +2 -2
- package/dist/{target-errors-BYuWhuLU.js → target-errors-bLIVFsbF.js} +4 -4
- package/dist/{tokens-DGajj8M9.js → tokens-BRLyURxW.js} +1 -1
- package/dist/{tool-images-DZHrc4pq.js → tool-images-CHqepyF_.js} +1 -1
- package/dist/{tool-images-Duuqr4bN.js → tool-images-CcGZpzmq.js} +2 -2
- package/dist/{tool-loop-detection-CjWRg_4q.js → tool-loop-detection-BNGetx3Z.js} +3 -3
- package/dist/{tui-B2bAseIB.js → tui-Bne3YNiw.js} +6 -6
- package/dist/{tui-cli-cewAjqAk.js → tui-cli-D0Z-rcUe.js} +30 -30
- package/dist/{update-la2AdLf3.js → update-D79ppbMQ.js} +3 -3
- package/dist/{update-cli-D7gDHoEE.js → update-cli-8Tk6PCmD.js} +99 -99
- package/dist/{update-cli-Cxp_mYOH.js → update-cli-Bobm67f-.js} +9 -9
- package/dist/{update-runner-DRglQgXe.js → update-runner-B4xzPa4-.js} +15 -15
- package/dist/{update-runner-tu2Aiphu.js → update-runner-C4NjVy9-.js} +1 -1
- package/dist/{upgrade-command-28wRHZZ2.js → upgrade-command-909a7QUc.js} +3 -3
- package/dist/{utils-D9wGoiU9.js → utils-CTFLl_ji.js} +18 -18
- package/dist/{web-aRaB-CvF.js → web-9J12F46d.js} +3 -3
- package/dist/{web-BxegDO-S.js → web-DPSpgc_K.js} +3 -3
- package/dist/web-Dqy4kqC9.js +123 -0
- package/dist/{web-BuIXrrsp.js → web-NzOJcvWO.js} +66 -66
- package/dist/{webhooks-cli-BnmVPYkU.js → webhooks-cli-2N03q0iY.js} +6 -6
- package/dist/{whatsapp-actions-D2mBFzmK.js → whatsapp-actions-Cms8wQM1.js} +18 -18
- package/dist/{whatsapp-actions-BJ6kVDXi.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
- package/dist/{with-timeout-BodPmGCY.js → with-timeout-DEdycYxq.js} +3 -3
- package/dist/{workspace-CDw87aZG.js → workspace-D3pARwoB.js} +1 -1
- package/dist/{workspace-tAtkoD_r.js → workspace-DBFSzT6O.js} +18 -18
- package/dist/{workspace-dirs-D3bousoX.js → workspace-dirs-SsExQ3Bz.js} +1 -1
- package/dist/{wsl-CgXDjE09.js → wsl-BJW8nTyL.js} +2 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/hand/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/anton-D9tZAGaj.js +0 -777
- package/dist/emergency-stop-DyQna_P0.js +0 -113
- package/dist/register.configure-CxwdWRSG.js +0 -168
- package/dist/web-DESq0zCM.js +0 -123
|
@@ -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-BYNVLNi_.js";
|
|
3
|
+
import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
|
|
4
|
+
import { d as normalizeE164 } from "./utils-CTFLl_ji.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-1MMYqY6M.js";
|
|
7
|
+
import { c as normalizeHyphenSlug, t as getChannelDock } from "./dock-BgOmHcbh.js";
|
|
8
|
+
import { r as normalizeChannelId } from "./plugins-CRB60mCJ.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-C8QtrwEU.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-D_qUel1T.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 syncFs 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
|
+
syncFs.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 syncFs.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
|
+
syncFs.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 (!syncFs.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 syncFs.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 syncFs.promises.stat(fullPath).catch(() => null))?.isFile()) continue;
|
|
928
|
+
await syncFs.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 syncFs.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 syncFs.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 syncFs.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 syncFs.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 syncFs.promises.stat(filePath).catch(() => null);
|
|
1156
1156
|
if (!stat?.isFile()) return 0;
|
|
1157
|
-
await
|
|
1157
|
+
await syncFs.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 = syncFs.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 syncFs.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 syncFs.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 syncFs.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 syncFs.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 syncFs.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 syncFs.promises.writeFile(tmp, json, "utf-8");
|
|
1787
1787
|
for (let i = 0; i < 5; i++) try {
|
|
1788
|
-
await
|
|
1788
|
+
await syncFs.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 syncFs.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 syncFs.promises.writeFile(tmp, json, {
|
|
1805
1805
|
mode: 384,
|
|
1806
1806
|
encoding: "utf-8"
|
|
1807
1807
|
});
|
|
1808
|
-
await
|
|
1809
|
-
await
|
|
1808
|
+
await syncFs.promises.rename(tmp, storePath);
|
|
1809
|
+
await syncFs.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 syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
|
|
1814
|
+
await syncFs.promises.writeFile(storePath, json, {
|
|
1815
1815
|
mode: 384,
|
|
1816
1816
|
encoding: "utf-8"
|
|
1817
1817
|
});
|
|
1818
|
-
await
|
|
1818
|
+
await syncFs.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 syncFs.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 (syncFs.existsSync(params.sessionFile)) return;
|
|
2099
|
+
await syncFs.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 syncFs.promises.writeFile(params.sessionFile, `${JSON.stringify(header)}\n`, {
|
|
2108
2108
|
encoding: "utf-8",
|
|
2109
2109
|
mode: 384
|
|
2110
2110
|
});
|
|
@@ -3,12 +3,12 @@ import { y as resolveRequiredHomeDir } from "./paths-Cn44w-EB.js";
|
|
|
3
3
|
import { m as normalizeE164 } from "./utils-CXzXXV2o.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
|
|
5
5
|
import { c as normalizeMainKey, g as normalizeOptionalAccountId, l as resolveAgentIdFromSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-Cuihcz_O.js";
|
|
6
|
-
import { It as loadConfig, Rr as resolveProcessScopedMap, cn as parseDurationMs, ln as parseByteSize, zr as isPidAlive } from "./model-selection-
|
|
7
|
-
import { c as normalizeHyphenSlug, t as getChannelDock } from "./dock-
|
|
6
|
+
import { It as loadConfig, Rr as resolveProcessScopedMap, cn as parseDurationMs, ln as parseByteSize, zr as isPidAlive } from "./model-selection-0dGxYGp8.js";
|
|
7
|
+
import { c as normalizeHyphenSlug, t as getChannelDock } from "./dock-Y96MzKuM.js";
|
|
8
8
|
import { c as listDeliverableMessageChannels, l as normalizeMessageChannel } from "./message-channel-DVauVtrg.js";
|
|
9
9
|
import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
|
|
10
10
|
import { n as resolveConversationLabel } from "./conversation-label-Onz2hiJh.js";
|
|
11
|
-
import { r as normalizeChannelId } from "./plugins-
|
|
11
|
+
import { r as normalizeChannelId } from "./plugins-D46VZh7u.js";
|
|
12
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-DRz46q00.js";
|
|
13
13
|
import { r as hasInterSessionUserProvenance } from "./input-provenance-CTnwu8Ge.js";
|
|
14
14
|
import { n as stripMessageIdHints, o as extractToolCallNames, r as stripInboundMetadata, s as hasToolCall, t as stripEnvelope } from "./chat-envelope-Bebo3vwl.js";
|
|
@@ -16,7 +16,7 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-DvLx8VNH.j
|
|
|
16
16
|
import fs from "node:fs";
|
|
17
17
|
import os from "node:os";
|
|
18
18
|
import path from "node:path";
|
|
19
|
-
import
|
|
19
|
+
import fs$1 from "node:fs/promises";
|
|
20
20
|
import crypto from "node:crypto";
|
|
21
21
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
22
22
|
|
|
@@ -82,7 +82,7 @@ async function releaseHeldLock(normalizedSessionFile, held, opts = {}) {
|
|
|
82
82
|
await held.handle.close();
|
|
83
83
|
} catch {}
|
|
84
84
|
try {
|
|
85
|
-
await
|
|
85
|
+
await fs$1.rm(held.lockPath, { force: true });
|
|
86
86
|
} catch {}
|
|
87
87
|
})();
|
|
88
88
|
try {
|
|
@@ -161,7 +161,7 @@ function registerCleanupHandlers() {
|
|
|
161
161
|
}
|
|
162
162
|
async function readLockPayload(lockPath) {
|
|
163
163
|
try {
|
|
164
|
-
const raw = await
|
|
164
|
+
const raw = await fs$1.readFile(lockPath, "utf8");
|
|
165
165
|
const parsed = JSON.parse(raw);
|
|
166
166
|
const payload = {};
|
|
167
167
|
if (typeof parsed.pid === "number") payload.pid = parsed.pid;
|
|
@@ -198,7 +198,7 @@ async function shouldReclaimContendedLockFile(lockPath, details, staleMs, nowMs)
|
|
|
198
198
|
if (!details.stale) return false;
|
|
199
199
|
if (!lockInspectionNeedsMtimeStaleFallback(details)) return true;
|
|
200
200
|
try {
|
|
201
|
-
const stat = await
|
|
201
|
+
const stat = await fs$1.stat(lockPath);
|
|
202
202
|
return Math.max(0, nowMs - stat.mtimeMs) > staleMs;
|
|
203
203
|
} catch (error) {
|
|
204
204
|
return error?.code !== "ENOENT";
|
|
@@ -211,7 +211,7 @@ async function cleanStaleLockFiles(params) {
|
|
|
211
211
|
const nowMs = params.nowMs ?? Date.now();
|
|
212
212
|
let entries = [];
|
|
213
213
|
try {
|
|
214
|
-
entries = await
|
|
214
|
+
entries = await fs$1.readdir(sessionsDir, { withFileTypes: true });
|
|
215
215
|
} catch (err) {
|
|
216
216
|
if (err.code === "ENOENT") return {
|
|
217
217
|
locks: [],
|
|
@@ -230,7 +230,7 @@ async function cleanStaleLockFiles(params) {
|
|
|
230
230
|
removed: false
|
|
231
231
|
};
|
|
232
232
|
if (lockInfo.stale && removeStale) {
|
|
233
|
-
await
|
|
233
|
+
await fs$1.rm(lockPath, { force: true });
|
|
234
234
|
lockInfo.removed = true;
|
|
235
235
|
cleaned.push(lockInfo);
|
|
236
236
|
params.log?.warn?.(`removed stale session lock: ${lockPath} (${lockInfo.staleReasons.join(", ") || "unknown"})`);
|
|
@@ -249,10 +249,10 @@ async function acquireSessionWriteLock(params) {
|
|
|
249
249
|
const maxHoldMs = resolvePositiveMs(params.maxHoldMs, DEFAULT_MAX_HOLD_MS);
|
|
250
250
|
const sessionFile = path.resolve(params.sessionFile);
|
|
251
251
|
const sessionDir = path.dirname(sessionFile);
|
|
252
|
-
await
|
|
252
|
+
await fs$1.mkdir(sessionDir, { recursive: true });
|
|
253
253
|
let normalizedDir = sessionDir;
|
|
254
254
|
try {
|
|
255
|
-
normalizedDir = await
|
|
255
|
+
normalizedDir = await fs$1.realpath(sessionDir);
|
|
256
256
|
} catch {}
|
|
257
257
|
const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
|
|
258
258
|
const lockPath = `${normalizedSessionFile}.lock`;
|
|
@@ -270,7 +270,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
270
270
|
attempt += 1;
|
|
271
271
|
let handle = null;
|
|
272
272
|
try {
|
|
273
|
-
handle = await
|
|
273
|
+
handle = await fs$1.open(lockPath, "wx");
|
|
274
274
|
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
275
275
|
await handle.writeFile(JSON.stringify({
|
|
276
276
|
pid: process.pid,
|
|
@@ -293,14 +293,14 @@ async function acquireSessionWriteLock(params) {
|
|
|
293
293
|
await handle.close();
|
|
294
294
|
} catch {}
|
|
295
295
|
try {
|
|
296
|
-
await
|
|
296
|
+
await fs$1.rm(lockPath, { force: true });
|
|
297
297
|
} catch {}
|
|
298
298
|
}
|
|
299
299
|
if (err.code !== "EEXIST") throw err;
|
|
300
300
|
const payload = await readLockPayload(lockPath);
|
|
301
301
|
const nowMs = Date.now();
|
|
302
302
|
if (await shouldReclaimContendedLockFile(lockPath, inspectLockPayload(payload, staleMs, nowMs), staleMs, nowMs)) {
|
|
303
|
-
await
|
|
303
|
+
await fs$1.rm(lockPath, { force: true });
|
|
304
304
|
continue;
|
|
305
305
|
}
|
|
306
306
|
const delay = Math.min(1e3, 50 * attempt);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { P as toAgentModelListLike, r as listAgentIds } from "./agent-scope-
|
|
1
|
+
import { P as toAgentModelListLike, r as listAgentIds } from "./agent-scope-RA0zXRpu.js";
|
|
2
2
|
import { s as normalizeAgentId } from "./session-key-Cuihcz_O.js";
|
|
3
|
-
import { $r as DEFAULT_PROVIDER, Ht as writeConfigFile, Rt as readConfigFileSnapshot, _ as resolveModelRefFromString, c as modelKey, r as buildModelAliasIndex } from "./model-selection-
|
|
3
|
+
import { $r as DEFAULT_PROVIDER, Ht as writeConfigFile, Rt as readConfigFileSnapshot, _ as resolveModelRefFromString, c as modelKey, r as buildModelAliasIndex } from "./model-selection-0dGxYGp8.js";
|
|
4
4
|
import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
|
|
5
5
|
|
|
6
6
|
//#region src/commands/models/shared.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
|
|
2
2
|
import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
|
|
3
3
|
import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel, p as resolveGatewayWindowsTaskName } from "./constants-Z_TnY4pX.js";
|
|
4
|
-
import { t as resolveGatewayService } from "./service-
|
|
4
|
+
import { t as resolveGatewayService } from "./service-C8NMS3m_.js";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/gateway-cli/shared.ts
|
|
7
7
|
const toOptionString = (value) => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { t as CONFIG_DIR, y as resolveUserPath } from "./utils-CXzXXV2o.js";
|
|
3
|
-
import { r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
3
|
+
import { r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
|
|
5
|
-
import { i as loadWorkspaceSkillEntries, n as buildWorkspaceSkillCommandSpecs, s as resolvePluginSkillDirs } from "./skills-
|
|
6
|
-
import { a as listChatCommands } from "./commands-registry-
|
|
7
|
-
import { a as resolvePairingPaths, c as readJsonFile, i as pruneExpiredPending, l as writeJsonAtomic, n as verifyPairingToken, o as upsertPendingPairingRequest, r as rejectPendingPairingRequest, s as createAsyncLock, t as generatePairingToken } from "./pairing-token-
|
|
8
|
-
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
5
|
+
import { i as loadWorkspaceSkillEntries, n as buildWorkspaceSkillCommandSpecs, s as resolvePluginSkillDirs } from "./skills-DlvDyK8L.js";
|
|
6
|
+
import { a as listChatCommands } from "./commands-registry-CURlRZQJ.js";
|
|
7
|
+
import { a as resolvePairingPaths, c as readJsonFile, i as pruneExpiredPending, l as writeJsonAtomic, n as verifyPairingToken, o as upsertPendingPairingRequest, r as rejectPendingPairingRequest, s as createAsyncLock, t as generatePairingToken } from "./pairing-token-lKXTMQ_M.js";
|
|
8
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-SsExQ3Bz.js";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import os from "node:os";
|
|
11
11
|
import path from "node:path";
|
|
@@ -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-DyP_tr7s.js";
|
|
3
|
+
import { d as resolveStateDir } from "./paths-BYNVLNi_.js";
|
|
4
|
+
import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
|
|
5
|
+
import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-CTFLl_ji.js";
|
|
6
|
+
import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-CnAPWfca.js";
|
|
7
|
+
import { a as listChatCommands } from "./commands-registry-j4vAzcF2.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 syncFs 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 (!syncFs.existsSync(workspaceDir)) continue;
|
|
287
|
+
const canonicalDir = syncFs.realpathSync(workspaceDir);
|
|
288
288
|
if (visitedDirs.has(canonicalDir)) continue;
|
|
289
289
|
visitedDirs.add(canonicalDir);
|
|
290
290
|
const commands = buildWorkspaceSkillCommandSpecs(workspaceDir, {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as isPathInside } from "./scan-paths-DE00o1Lk.js";
|
|
2
2
|
import { i as hasErrnoCode } from "./errors-DZDuPc3M.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs/promises";
|
|
5
5
|
|
|
6
6
|
//#region src/security/skill-scanner.ts
|
|
7
7
|
const SCANNABLE_EXTENSIONS = new Set([
|
|
@@ -154,7 +154,7 @@ async function walkDirWithLimit(dirPath, maxFiles) {
|
|
|
154
154
|
while (stack.length > 0 && files.length < maxFiles) {
|
|
155
155
|
const currentDir = stack.pop();
|
|
156
156
|
if (!currentDir) break;
|
|
157
|
-
const entries = await
|
|
157
|
+
const entries = await fs.readdir(currentDir, { withFileTypes: true });
|
|
158
158
|
for (const entry of entries) {
|
|
159
159
|
if (files.length >= maxFiles) break;
|
|
160
160
|
if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
|
|
@@ -176,7 +176,7 @@ async function resolveForcedFiles(params) {
|
|
|
176
176
|
if (seen.has(includePath)) continue;
|
|
177
177
|
let st = null;
|
|
178
178
|
try {
|
|
179
|
-
st = await
|
|
179
|
+
st = await fs.stat(includePath);
|
|
180
180
|
} catch (err) {
|
|
181
181
|
if (hasErrnoCode(err, "ENOENT")) continue;
|
|
182
182
|
throw err;
|
|
@@ -208,14 +208,14 @@ async function collectScannableFiles(dirPath, opts) {
|
|
|
208
208
|
async function readScannableSource(filePath, maxFileBytes) {
|
|
209
209
|
let st = null;
|
|
210
210
|
try {
|
|
211
|
-
st = await
|
|
211
|
+
st = await fs.stat(filePath);
|
|
212
212
|
} catch (err) {
|
|
213
213
|
if (hasErrnoCode(err, "ENOENT")) return null;
|
|
214
214
|
throw err;
|
|
215
215
|
}
|
|
216
216
|
if (!st?.isFile() || st.size > maxFileBytes) return null;
|
|
217
217
|
try {
|
|
218
|
-
return await
|
|
218
|
+
return await fs.readFile(filePath, "utf-8");
|
|
219
219
|
} catch (err) {
|
|
220
220
|
if (hasErrnoCode(err, "ENOENT")) return null;
|
|
221
221
|
throw err;
|
|
@@ -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-DyP_tr7s.js";
|
|
2
|
+
import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
|
|
3
|
+
import { K as resolvePreferredIdleHandsTmpDir, h as resolveUserPath, t as CONFIG_DIR } from "./utils-CTFLl_ji.js";
|
|
4
|
+
import { h as resolveIdleHandsPackageRootSync, j as isPathInside } from "./workspace-DBFSzT6O.js";
|
|
5
|
+
import { ct as loadPluginManifestRegistry, ht as resolveMemorySlotDecision, in as isDangerousHostEnvVarName, mt as resolveEffectiveEnableState, pt as normalizePluginsConfig } from "./model-selection-1MMYqY6M.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-BOudmHMS.js";
|
|
7
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-Cu1nXNMM.js";
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
import path from "node:path";
|
|
10
|
-
import
|
|
10
|
+
import syncFs 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 = syncFs.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 (syncFs.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 (syncFs.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 (!syncFs.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 = syncFs.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 = syncFs.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 (syncFs.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 (!syncFs.existsSync(nested) || !syncFs.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 (syncFs.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 (syncFs.existsSync(rootSkillMd)) {
|
|
706
706
|
try {
|
|
707
|
-
const size =
|
|
707
|
+
const size = syncFs.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 (!syncFs.existsSync(skillMd)) continue;
|
|
747
747
|
try {
|
|
748
|
-
const size =
|
|
748
|
+
const size = syncFs.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(syncFs.readFileSync(skill.filePath, "utf-8"));
|
|
817
817
|
} catch {}
|
|
818
818
|
return {
|
|
819
819
|
skill,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { et as resolvePreferredIdleHandsTmpDir, t as CONFIG_DIR, y as resolveUserPath } from "./utils-CXzXXV2o.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
|
|
3
|
-
import { f as isPathInside, h as normalizeSkillFilter, n as resolveIdleHandsPackageRootSync } from "./idlehands-root-
|
|
3
|
+
import { f as isPathInside, h as normalizeSkillFilter, n as resolveIdleHandsPackageRootSync } from "./idlehands-root-B8cUs-5M.js";
|
|
4
4
|
import { n as isDangerousHostEnvVarName } from "./host-env-security-DkAVVuaw.js";
|
|
5
|
-
import { d as resolveEffectiveEnableState, f as resolveMemorySlotDecision, n as loadPluginManifestRegistry, u as normalizePluginsConfig } from "./manifest-registry-
|
|
5
|
+
import { d as resolveEffectiveEnableState, f as resolveMemorySlotDecision, n as loadPluginManifestRegistry, u as normalizePluginsConfig } from "./manifest-registry-Bak1x76G.js";
|
|
6
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-D-sQ_Hqk.js";
|
|
7
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
7
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-FXBVVTLw.js";
|
|
8
8
|
import { URL, fileURLToPath } from "node:url";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import os from "node:os";
|