prjct-cli 3.96.0 → 3.98.0
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 +10 -0
- package/bin/prjct.cjs +14 -0
- package/dist/bin/core-chunks/agent-3N2MSSGT.mjs +31 -0
- package/dist/bin/core-chunks/agent-codenames-7N4DU62I.mjs +7 -0
- package/dist/bin/core-chunks/agent-identity-4KFRR5OU.mjs +7 -0
- package/dist/bin/core-chunks/agent-runtime-registry-3RMVBEV2.mjs +7 -0
- package/dist/bin/core-chunks/agent-switch-4SE6GF7R.mjs +7 -0
- package/dist/bin/core-chunks/agents-ZPNNCOH7.mjs +10 -0
- package/dist/bin/core-chunks/ai-provider-RVXK7D7R.mjs +7 -0
- package/dist/bin/core-chunks/analysis-OARMM4AH.mjs +41 -0
- package/dist/bin/core-chunks/auth-config-KWLVKHCY.mjs +7 -0
- package/dist/bin/core-chunks/auto-flush-XA3V7BJ6.mjs +7 -0
- package/dist/bin/core-chunks/auto-updater-PKYQRBGQ.mjs +8 -0
- package/dist/bin/core-chunks/bin-commands-FYID6EYI.mjs +21 -0
- package/dist/bin/core-chunks/capture-3JJPWIF3.mjs +7 -0
- package/dist/bin/core-chunks/capture-gate-G5LGVDME.mjs +7 -0
- package/dist/bin/core-chunks/ceremonies-B565WDCA.mjs +19 -0
- package/dist/bin/core-chunks/changelog-LPJ4GKB6.mjs +10 -0
- package/dist/bin/core-chunks/chunk-225DWS4D.mjs +7 -0
- package/dist/bin/core-chunks/chunk-24EN5Y62.mjs +48 -0
- package/dist/bin/core-chunks/chunk-2EEMQV7N.mjs +9 -0
- package/dist/bin/core-chunks/chunk-2FRLIQKX.mjs +10 -0
- package/dist/bin/core-chunks/chunk-2I5PUQWY.mjs +7 -0
- package/dist/bin/core-chunks/chunk-2JJM3YMW.mjs +44 -0
- package/dist/bin/core-chunks/chunk-2NI4EEK2.mjs +8 -0
- package/dist/bin/core-chunks/chunk-2TJRTFIS.mjs +9 -0
- package/dist/bin/core-chunks/chunk-2VRS5CUH.mjs +9 -0
- package/dist/bin/core-chunks/chunk-2VXPFULA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-3OWKIRK6.mjs +7 -0
- package/dist/bin/core-chunks/chunk-3TRXQAU4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-45LKWJ5D.mjs +7 -0
- package/dist/bin/core-chunks/chunk-4IE7LRH3.mjs +7 -0
- package/dist/bin/core-chunks/chunk-4MR5XSLO.mjs +8 -0
- package/dist/bin/core-chunks/chunk-4PPIE6GA.mjs +102 -0
- package/dist/bin/core-chunks/chunk-4PRD4EU2.mjs +7 -0
- package/dist/bin/core-chunks/chunk-4T7NGLNQ.mjs +16 -0
- package/dist/bin/core-chunks/chunk-5DZ2LTII.mjs +52 -0
- package/dist/bin/core-chunks/chunk-5EF5EOCL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-5OWPZWEU.mjs +13 -0
- package/dist/bin/core-chunks/chunk-5TGZSK4C.mjs +10 -0
- package/dist/bin/core-chunks/chunk-5YLI5V3Q.mjs +8 -0
- package/dist/bin/core-chunks/chunk-5ZBACKED.mjs +14 -0
- package/dist/bin/core-chunks/chunk-623SNKDH.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6FUCOGOW.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6KNMT46X.mjs +18 -0
- package/dist/bin/core-chunks/chunk-6OYLZ4NM.mjs +10 -0
- package/dist/bin/core-chunks/chunk-6POAOY5C.mjs +19 -0
- package/dist/bin/core-chunks/chunk-6RT2P22O.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6U3CYLY5.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6U3MV7KZ.mjs +15 -0
- package/dist/bin/core-chunks/chunk-6XTLPAPZ.mjs +15 -0
- package/dist/bin/core-chunks/chunk-76YMLNLF.mjs +7 -0
- package/dist/bin/core-chunks/chunk-7BU6SJBC.mjs +17 -0
- package/dist/bin/core-chunks/chunk-7QTE6X4J.mjs +7 -0
- package/dist/bin/core-chunks/chunk-7ZHWJSW5.mjs +8 -0
- package/dist/bin/core-chunks/chunk-ACIOJQSI.mjs +14 -0
- package/dist/bin/core-chunks/chunk-AJXELVNH.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ALTQ3KL4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ANBDOI53.mjs +8 -0
- package/dist/bin/core-chunks/chunk-ANVCA6LF.mjs +7 -0
- package/dist/bin/core-chunks/chunk-AS3LWTQ4.mjs +16 -0
- package/dist/bin/core-chunks/chunk-B2HY22OD.mjs +50 -0
- package/dist/bin/core-chunks/chunk-B7AQHL7B.mjs +7 -0
- package/dist/bin/core-chunks/chunk-BSR3XUBD.mjs +24 -0
- package/dist/bin/core-chunks/chunk-BTSHD3XJ.mjs +9 -0
- package/dist/bin/core-chunks/chunk-BUD3R6LF.mjs +9 -0
- package/dist/bin/core-chunks/chunk-C35JQUWD.mjs +8 -0
- package/dist/bin/core-chunks/chunk-C7YBUD4K.mjs +10 -0
- package/dist/bin/core-chunks/chunk-CA2VFWFP.mjs +21 -0
- package/dist/bin/core-chunks/chunk-CB3CNJTL.mjs +10 -0
- package/dist/bin/core-chunks/chunk-CFD6CW7T.mjs +46 -0
- package/dist/bin/core-chunks/chunk-CKYBGRCF.mjs +8 -0
- package/dist/bin/core-chunks/chunk-CUIB6CTG.mjs +20 -0
- package/dist/bin/core-chunks/chunk-CVKMV22J.mjs +17 -0
- package/dist/bin/core-chunks/chunk-CWLGRKA7.mjs +6 -0
- package/dist/bin/core-chunks/chunk-CXKDKMYE.mjs +9 -0
- package/dist/bin/core-chunks/chunk-CXNVDJNN.mjs +7 -0
- package/dist/bin/core-chunks/chunk-D62TAZG6.mjs +9 -0
- package/dist/bin/core-chunks/chunk-DEYAQEF5.mjs +7 -0
- package/dist/bin/core-chunks/chunk-DIEPWXJJ.mjs +7 -0
- package/dist/bin/core-chunks/chunk-DMO3ZFUG.mjs +1259 -0
- package/dist/bin/core-chunks/chunk-DOJPSIMG.mjs +7 -0
- package/dist/bin/core-chunks/chunk-DTMZBK4E.mjs +7 -0
- package/dist/bin/core-chunks/chunk-DW4QMD6J.mjs +10 -0
- package/dist/bin/core-chunks/chunk-DZDEBDAB.mjs +10 -0
- package/dist/bin/core-chunks/chunk-DZVOFEM5.mjs +7 -0
- package/dist/bin/core-chunks/chunk-E5QQDYBR.mjs +7 -0
- package/dist/bin/core-chunks/chunk-E73HSXCX.mjs +7 -0
- package/dist/bin/core-chunks/chunk-EFSPBB4S.mjs +8 -0
- package/dist/bin/core-chunks/chunk-EHVU2SMR.mjs +34 -0
- package/dist/bin/core-chunks/chunk-ESB4ALH2.mjs +7 -0
- package/dist/bin/core-chunks/chunk-EZRNQXCC.mjs +7 -0
- package/dist/bin/core-chunks/chunk-F2FKQUYE.mjs +19 -0
- package/dist/bin/core-chunks/chunk-F7OOBAJO.mjs +30 -0
- package/dist/bin/core-chunks/chunk-FATYLG3L.mjs +14 -0
- package/dist/bin/core-chunks/chunk-FOUBHU4X.mjs +7 -0
- package/dist/bin/core-chunks/chunk-FOWTB762.mjs +7 -0
- package/dist/bin/core-chunks/chunk-GGGDYL4P.mjs +7 -0
- package/dist/bin/core-chunks/chunk-GHSRH4GL.mjs +8 -0
- package/dist/bin/core-chunks/chunk-GSNQKBHZ.mjs +11 -0
- package/dist/bin/core-chunks/chunk-GTG67Z45.mjs +11 -0
- package/dist/bin/core-chunks/chunk-H2KNJUPN.mjs +23 -0
- package/dist/bin/core-chunks/chunk-HA7Y76GF.mjs +7 -0
- package/dist/bin/core-chunks/chunk-HCPQZRR3.mjs +7 -0
- package/dist/bin/core-chunks/chunk-HPCSSJXH.mjs +7 -0
- package/dist/bin/core-chunks/chunk-HU5ERAAV.mjs +8 -0
- package/dist/bin/core-chunks/chunk-HVXWQ2XZ.mjs +7 -0
- package/dist/bin/core-chunks/chunk-HYIT7MF5.mjs +8 -0
- package/dist/bin/core-chunks/chunk-HYMJVHAX.mjs +13 -0
- package/dist/bin/core-chunks/chunk-ID2C2S33.mjs +18 -0
- package/dist/bin/core-chunks/chunk-ID5KE74L.mjs +7 -0
- package/dist/bin/core-chunks/chunk-IJNKHQIS.mjs +10 -0
- package/dist/bin/core-chunks/chunk-INJ5WT2D.mjs +7 -0
- package/dist/bin/core-chunks/chunk-IOFCSTGM.mjs +7 -0
- package/dist/bin/core-chunks/chunk-J6Y7IVFQ.mjs +7 -0
- package/dist/bin/core-chunks/chunk-JCWA7NLM.mjs +7 -0
- package/dist/bin/core-chunks/chunk-JGGQSMZC.mjs +8 -0
- package/dist/bin/core-chunks/chunk-JPMUJY42.mjs +7 -0
- package/dist/bin/core-chunks/chunk-JT4RNQ67.mjs +15 -0
- package/dist/bin/core-chunks/chunk-KI4OY3UQ.mjs +18 -0
- package/dist/bin/core-chunks/chunk-KPR5TWSN.mjs +7 -0
- package/dist/bin/core-chunks/chunk-KUQLXY2P.mjs +11 -0
- package/dist/bin/core-chunks/chunk-L3DJN3XD.mjs +12 -0
- package/dist/bin/core-chunks/chunk-L4TUXFCL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-L5LFLI4R.mjs +7 -0
- package/dist/bin/core-chunks/chunk-LFOQ7FCR.mjs +10 -0
- package/dist/bin/core-chunks/chunk-LGX2GM45.mjs +7 -0
- package/dist/bin/core-chunks/chunk-LTKUTRRL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-LZILSE5H.mjs +8 -0
- package/dist/bin/core-chunks/chunk-MCY7OXED.mjs +10 -0
- package/dist/bin/core-chunks/chunk-MG3YN3AI.mjs +7 -0
- package/dist/bin/core-chunks/chunk-MPU3VM6Z.mjs +7 -0
- package/dist/bin/core-chunks/chunk-MR5XXHRK.mjs +8 -0
- package/dist/bin/core-chunks/chunk-MXJF3FA7.mjs +7 -0
- package/dist/bin/core-chunks/chunk-MXJKULJY.mjs +9 -0
- package/dist/bin/core-chunks/chunk-NINFE7GS.mjs +9 -0
- package/dist/bin/core-chunks/chunk-NNILF7R3.mjs +7 -0
- package/dist/bin/core-chunks/chunk-NNOX3UU4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-NOHSLOLL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-NXUIMC22.mjs +13 -0
- package/dist/bin/core-chunks/chunk-NZKUCQZK.mjs +8 -0
- package/dist/bin/core-chunks/chunk-O5N6XYPU.mjs +8 -0
- package/dist/bin/core-chunks/chunk-O5VCBMEK.mjs +25 -0
- package/dist/bin/core-chunks/chunk-OE27RFLJ.mjs +8 -0
- package/dist/bin/core-chunks/chunk-OGM34Z6W.mjs +8 -0
- package/dist/bin/core-chunks/chunk-OIE3AKKO.mjs +7 -0
- package/dist/bin/core-chunks/chunk-OXKGN3HG.mjs +7 -0
- package/dist/bin/core-chunks/chunk-P2KU4FFA.mjs +11 -0
- package/dist/bin/core-chunks/chunk-PIA26GWG.mjs +7 -0
- package/dist/bin/core-chunks/chunk-PPSVWUXC.mjs +15 -0
- package/dist/bin/core-chunks/chunk-PQTR6XVW.mjs +7 -0
- package/dist/bin/core-chunks/chunk-PWL3KS7Y.mjs +7 -0
- package/dist/bin/core-chunks/chunk-Q3LUL6LL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-Q6C27OL7.mjs +7 -0
- package/dist/bin/core-chunks/chunk-Q7GJIU6D.mjs +8 -0
- package/dist/bin/core-chunks/chunk-QAIEAOJF.mjs +7 -0
- package/dist/bin/core-chunks/chunk-QWRPJARA.mjs +14 -0
- package/dist/bin/core-chunks/chunk-QZ7T2EYR.mjs +25 -0
- package/dist/bin/core-chunks/chunk-RACISWUV.mjs +10 -0
- package/dist/bin/core-chunks/chunk-RCIWCKL7.mjs +9 -0
- package/dist/bin/core-chunks/chunk-ROOCBUKH.mjs +8 -0
- package/dist/bin/core-chunks/chunk-RP7F67ZT.mjs +7 -0
- package/dist/bin/core-chunks/chunk-RXZJB43D.mjs +7 -0
- package/dist/bin/core-chunks/chunk-S6FBPXQL.mjs +9 -0
- package/dist/bin/core-chunks/chunk-SLYLGDX7.mjs +8 -0
- package/dist/bin/core-chunks/chunk-SO3ZPNWT.mjs +7 -0
- package/dist/bin/core-chunks/chunk-SRJEX6XF.mjs +12 -0
- package/dist/bin/core-chunks/chunk-SROBBOJB.mjs +11 -0
- package/dist/bin/core-chunks/chunk-STFUT7R7.mjs +28 -0
- package/dist/bin/core-chunks/chunk-SUXIKMTS.mjs +30 -0
- package/dist/bin/core-chunks/chunk-TDTPDVUM.mjs +8 -0
- package/dist/bin/core-chunks/chunk-TIBYHZFA.mjs +8 -0
- package/dist/bin/core-chunks/chunk-TILUQF6L.mjs +8 -0
- package/dist/bin/core-chunks/chunk-TOORPP6K.mjs +7 -0
- package/dist/bin/core-chunks/chunk-U24YKPYX.mjs +7 -0
- package/dist/bin/core-chunks/chunk-U55OPVYR.mjs +9 -0
- package/dist/bin/core-chunks/chunk-UAYTDSYG.mjs +64 -0
- package/dist/bin/core-chunks/chunk-UHXV7MDW.mjs +12 -0
- package/dist/bin/core-chunks/chunk-UNIBFM6J.mjs +13 -0
- package/dist/bin/core-chunks/chunk-UNNY2IWZ.mjs +9 -0
- package/dist/bin/core-chunks/chunk-UX2ORID4.mjs +9 -0
- package/dist/bin/core-chunks/chunk-UYMZ3NAF.mjs +8 -0
- package/dist/bin/core-chunks/chunk-V6L5PLD7.mjs +18 -0
- package/dist/bin/core-chunks/chunk-V7R3L54M.mjs +7 -0
- package/dist/bin/core-chunks/chunk-V7VA4EQX.mjs +7 -0
- package/dist/bin/core-chunks/chunk-VCSESVZ4.mjs +9 -0
- package/dist/bin/core-chunks/chunk-VCYVYFWE.mjs +9 -0
- package/dist/bin/core-chunks/chunk-VJCTTFKP.mjs +8 -0
- package/dist/bin/core-chunks/chunk-VRFYDYQY.mjs +7 -0
- package/dist/bin/core-chunks/chunk-VWFVSNQT.mjs +7 -0
- package/dist/bin/core-chunks/chunk-W23JLJJZ.mjs +109 -0
- package/dist/bin/core-chunks/chunk-WCTVZQBG.mjs +8 -0
- package/dist/bin/core-chunks/chunk-WTDUJB4I.mjs +8 -0
- package/dist/bin/core-chunks/chunk-WZ6W5ZQ5.mjs +7 -0
- package/dist/bin/core-chunks/chunk-X433BB6F.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XBR63NJA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XC6YAP36.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XJTEPHLC.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XLAGA5B7.mjs +10 -0
- package/dist/bin/core-chunks/chunk-XLFEWZRA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XSZOHNL4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XWLTEAGN.mjs +7 -0
- package/dist/bin/core-chunks/chunk-Y7XOKG4O.mjs +7 -0
- package/dist/bin/core-chunks/chunk-YEALP3WX.mjs +7 -0
- package/dist/bin/core-chunks/chunk-YJOC2JJK.mjs +12 -0
- package/dist/bin/core-chunks/chunk-YLYAYRSJ.mjs +8 -0
- package/dist/bin/core-chunks/chunk-YOGI4WE6.mjs +8 -0
- package/dist/bin/core-chunks/chunk-YOWW4LHK.mjs +8 -0
- package/dist/bin/core-chunks/chunk-YPLFWN62.mjs +7 -0
- package/dist/bin/core-chunks/chunk-YQ6HM3YO.mjs +10 -0
- package/dist/bin/core-chunks/chunk-YZEO5DZA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZAUJWUUN.mjs +20 -0
- package/dist/bin/core-chunks/chunk-ZBBNCCGV.mjs +12 -0
- package/dist/bin/core-chunks/chunk-ZQ2XH76U.mjs +12 -0
- package/dist/bin/core-chunks/chunk-ZSANMA7K.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZXTJLMVZ.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZZR3LXCK.mjs +9 -0
- package/dist/bin/core-chunks/cleanup-installs-LD43GI4K.mjs +7 -0
- package/dist/bin/core-chunks/client-D43KKUYH.mjs +8 -0
- package/dist/bin/core-chunks/closest-command-YYNABM7V.mjs +7 -0
- package/dist/bin/core-chunks/cloud-RXHFZ7MX.mjs +14 -0
- package/dist/bin/core-chunks/code-IYK65A62.mjs +12 -0
- package/dist/bin/core-chunks/code-graph-cloud-G3WQBICY.mjs +7 -0
- package/dist/bin/core-chunks/codex-hooks-N5UHKK5B.mjs +7 -0
- package/dist/bin/core-chunks/codex-mcp-G7WNAT6T.mjs +7 -0
- package/dist/bin/core-chunks/codex-skill-IZNP76BJ.mjs +7 -0
- package/dist/bin/core-chunks/command-installer-4ENM4GZR.mjs +7 -0
- package/dist/bin/core-chunks/config-UVF7YOR6.mjs +8 -0
- package/dist/bin/core-chunks/config-manager-QY73WM5U.mjs +7 -0
- package/dist/bin/core-chunks/content-bound-stamp-2PJNI4JC.mjs +7 -0
- package/dist/bin/core-chunks/context-4GB6ICXK.mjs +38 -0
- package/dist/bin/core-chunks/context-MPHOQPXF.mjs +10 -0
- package/dist/bin/core-chunks/context-checkpoint-NBI5HKPV.mjs +27 -0
- package/dist/bin/core-chunks/context-pressure-5URQVNBC.mjs +7 -0
- package/dist/bin/core-chunks/context-tiers-NOKJ75QP.mjs +7 -0
- package/dist/bin/core-chunks/context7-service-2MYRUNKY.mjs +7 -0
- package/dist/bin/core-chunks/core-WMEHDCOK.mjs +70 -0
- package/dist/bin/core-chunks/crew-EYVSIX4L.mjs +24 -0
- package/dist/bin/core-chunks/cursor-hooks-DGDJVAI6.mjs +7 -0
- package/dist/bin/core-chunks/custom-workflow-storage-EBEIG54R.mjs +7 -0
- package/dist/bin/core-chunks/cwd-changed-EUJZOBIC.mjs +7 -0
- package/dist/bin/core-chunks/cycle-budget-card-H37XRAIX.mjs +7 -0
- package/dist/bin/core-chunks/daemon-QARP3RVX.mjs +13 -0
- package/dist/bin/core-chunks/database-UU2ZXSD4.mjs +7 -0
- package/dist/bin/core-chunks/delivery-geometry-GSJ6LXUC.mjs +7 -0
- package/dist/bin/core-chunks/detect-changes-2YIEX7AY.mjs +7 -0
- package/dist/bin/core-chunks/detection-KKDZYWVD.mjs +7 -0
- package/dist/bin/core-chunks/developer-evolution-AVAXGDKQ.mjs +11 -0
- package/dist/bin/core-chunks/developer-profile-2VSFJGCU.mjs +7 -0
- package/dist/bin/core-chunks/discuss-lock-CWXKBBYJ.mjs +7 -0
- package/dist/bin/core-chunks/distill-ZF7WHGCZ.mjs +7 -0
- package/dist/bin/core-chunks/doctor-heal-XFSVPSEY.mjs +7 -0
- package/dist/bin/core-chunks/doctor-service-6ZJBWIXR.mjs +8 -0
- package/dist/bin/core-chunks/drift-refresh-XPJAO2B3.mjs +7 -0
- package/dist/bin/core-chunks/dynasty-outcomes-KDWIEA4Y.mjs +11 -0
- package/dist/bin/core-chunks/editors-config-ELAQA6RV.mjs +7 -0
- package/dist/bin/core-chunks/embeddings-354ZYFKX.mjs +7 -0
- package/dist/bin/core-chunks/enriched-recall-MKBOXB7M.mjs +7 -0
- package/dist/bin/core-chunks/eval-O4YD6YOV.mjs +76 -0
- package/dist/bin/core-chunks/exec-34V6SJYO.mjs +7 -0
- package/dist/bin/core-chunks/file-helper-LLQKU6YF.mjs +7 -0
- package/dist/bin/core-chunks/format-SYVL4CV5.mjs +7 -0
- package/dist/bin/core-chunks/gemini-settings-RGD7JLSP.mjs +7 -0
- package/dist/bin/core-chunks/git-context-ZSWE3KWM.mjs +8 -0
- package/dist/bin/core-chunks/git-helpers-UC53D4FT.mjs +7 -0
- package/dist/bin/core-chunks/grok-mcp-IE2RRRRW.mjs +7 -0
- package/dist/bin/core-chunks/grok-plugin-SSANHBS7.mjs +7 -0
- package/dist/bin/core-chunks/grok-skill-7ZP7R7KO.mjs +7 -0
- package/dist/bin/core-chunks/guard-RT7U3LJX.mjs +13 -0
- package/dist/bin/core-chunks/guards-AXH6V2IJ.mjs +7 -0
- package/dist/bin/core-chunks/handoff-storage-NGUA4Y2L.mjs +7 -0
- package/dist/bin/core-chunks/harness-V7J7WIT2.mjs +43 -0
- package/dist/bin/core-chunks/health-TNB5OC37.mjs +11 -0
- package/dist/bin/core-chunks/help-P7EYELVK.mjs +14 -0
- package/dist/bin/core-chunks/hooks-service-REI56DDC.mjs +91 -0
- package/dist/bin/core-chunks/infer-memory-file-ATP7PSAQ.mjs +7 -0
- package/dist/bin/core-chunks/install-FZQJJWT5.mjs +9 -0
- package/dist/bin/core-chunks/judgment-G5KH6QFC.mjs +21 -0
- package/dist/bin/core-chunks/judgment-ledger-storage-ZTYXPMM4.mjs +7 -0
- package/dist/bin/core-chunks/judgment-orchestrator-E3SO3NVE.mjs +7 -0
- package/dist/bin/core-chunks/judgment-receipt-GO6QEZQC.mjs +7 -0
- package/dist/bin/core-chunks/kimi-hooks-TR6J3OVG.mjs +7 -0
- package/dist/bin/core-chunks/kimi-mcp-ETG7O6O5.mjs +7 -0
- package/dist/bin/core-chunks/land-cue-3BUD3KJJ.mjs +8 -0
- package/dist/bin/core-chunks/land-rho-MCTQDPRH.mjs +8 -0
- package/dist/bin/core-chunks/land-synthesis-MU4EZEYL.mjs +7 -0
- package/dist/bin/core-chunks/lean-26BWCUOR.mjs +34 -0
- package/dist/bin/core-chunks/legacy-crew-sweep-G5UJT2PM.mjs +23 -0
- package/dist/bin/core-chunks/living-context-contract-HZIVBMXX.mjs +7 -0
- package/dist/bin/core-chunks/llm-KMVXVBHG.mjs +18 -0
- package/dist/bin/core-chunks/mcp-BD5TOTCK.mjs +17 -0
- package/dist/bin/core-chunks/memory-dream-6GFV2GXN.mjs +14 -0
- package/dist/bin/core-chunks/memory-export-WJ4H7CFV.mjs +13 -0
- package/dist/bin/core-chunks/memory-index-7NIU34EI.mjs +7 -0
- package/dist/bin/core-chunks/notification-G654IX3O.mjs +7 -0
- package/dist/bin/core-chunks/notify-EWYUBKGO.mjs +9 -0
- package/dist/bin/core-chunks/nyquist-lite-A23B7G4B.mjs +9 -0
- package/dist/bin/core-chunks/one-breath-install-LVNIVN6S.mjs +7 -0
- package/dist/bin/core-chunks/opencode-mcp-L7NC77JF.mjs +7 -0
- package/dist/bin/core-chunks/output-D27IOQXR.mjs +7 -0
- package/dist/bin/core-chunks/pack-integrity-X277OVRB.mjs +9 -0
- package/dist/bin/core-chunks/pack-manager-VN7F6R47.mjs +7 -0
- package/dist/bin/core-chunks/package-R4FUTGOE.mjs +7 -0
- package/dist/bin/core-chunks/package-legitimacy-VHHGI4P7.mjs +7 -0
- package/dist/bin/core-chunks/path-manager-E5DCU5LP.mjs +7 -0
- package/dist/bin/core-chunks/performance-tracker-BFBNR3LY.mjs +7 -0
- package/dist/bin/core-chunks/pi-skill-IZQEUILZ.mjs +7 -0
- package/dist/bin/core-chunks/planning-NOWLKZDS.mjs +8 -0
- package/dist/bin/core-chunks/post-edit-GTBY32JU.mjs +7 -0
- package/dist/bin/core-chunks/pr-convention-37YHTUKM.mjs +7 -0
- package/dist/bin/core-chunks/pre-bash-32ZOGNSP.mjs +10 -0
- package/dist/bin/core-chunks/pre-commit-7TU2A7H4.mjs +7 -0
- package/dist/bin/core-chunks/pre-edit-ASEWA5TS.mjs +8 -0
- package/dist/bin/core-chunks/pre-package-ZTZACEBB.mjs +7 -0
- package/dist/bin/core-chunks/pre-search-MKDRFJSE.mjs +8 -0
- package/dist/bin/core-chunks/pre-secrets-RJELPDFY.mjs +7 -0
- package/dist/bin/core-chunks/precision-classifier-AV75OEVA.mjs +7 -0
- package/dist/bin/core-chunks/precision-judgment-MCX4MIIG.mjs +7 -0
- package/dist/bin/core-chunks/preferences-KO5U2ELK.mjs +31 -0
- package/dist/bin/core-chunks/primitives-GNUMBYOK.mjs +13 -0
- package/dist/bin/core-chunks/prjct-md-BSFV7OQQ.mjs +7 -0
- package/dist/bin/core-chunks/product-GUHSUNIH.mjs +68 -0
- package/dist/bin/core-chunks/project-agent-surfaces-BXCJJXB7.mjs +7 -0
- package/dist/bin/core-chunks/project-alignment-ADKW3ZWQ.mjs +17 -0
- package/dist/bin/core-chunks/project-file-inventory-XIHHJZUP.mjs +7 -0
- package/dist/bin/core-chunks/project-memory-L5MDZYST.mjs +7 -0
- package/dist/bin/core-chunks/project-style-evolution-HIMSJQQB.mjs +7 -0
- package/dist/bin/core-chunks/prompt-47YP5JIR.mjs +25 -0
- package/dist/bin/core-chunks/protocol-4AJ4J5SI.mjs +7 -0
- package/dist/bin/core-chunks/provider-cache-IWVTFLGT.mjs +7 -0
- package/dist/bin/core-chunks/provider-status-HQUBKMH5.mjs +7 -0
- package/dist/bin/core-chunks/publish-helper-2T2EHM3V.mjs +7 -0
- package/dist/bin/core-chunks/purge-6SJKHKIY.mjs +7 -0
- package/dist/bin/core-chunks/queue-storage-BKH5XX2E.mjs +7 -0
- package/dist/bin/core-chunks/registry-YM2EYUXY.mjs +7 -0
- package/dist/bin/core-chunks/reliability-repair-JMPZWDD4.mjs +20 -0
- package/dist/bin/core-chunks/removed-verbs-EU3WPRNK.mjs +7 -0
- package/dist/bin/core-chunks/retention-QSXWKE4H.mjs +7 -0
- package/dist/bin/core-chunks/retro-B2EBN4TA.mjs +13 -0
- package/dist/bin/core-chunks/review-risk-LBPY5M3K.mjs +12 -0
- package/dist/bin/core-chunks/run-recorder-EZQ32M55.mjs +7 -0
- package/dist/bin/core-chunks/safe-artifacts-PE2TMEZQ.mjs +9 -0
- package/dist/bin/core-chunks/sdd-3WNZJ6FU.mjs +9 -0
- package/dist/bin/core-chunks/seed-MMDJE2UO.mjs +10 -0
- package/dist/bin/core-chunks/self-heal-R5FBXEVQ.mjs +7 -0
- package/dist/bin/core-chunks/session-continuity-OQDB5UYI.mjs +10 -0
- package/dist/bin/core-chunks/session-start-FM6UL7MT.mjs +7 -0
- package/dist/bin/core-chunks/session-tracker-RG2FBWMS.mjs +7 -0
- package/dist/bin/core-chunks/settings-installer-4XHM3HAZ.mjs +7 -0
- package/dist/bin/core-chunks/setup-BL36ZWPW.mjs +140 -0
- package/dist/bin/core-chunks/setup-V75BWRHU.mjs +38 -0
- package/dist/bin/core-chunks/shipping-NZVM57JJ.mjs +12 -0
- package/dist/bin/core-chunks/signals-digest-P5BG6MZF.mjs +7 -0
- package/dist/bin/core-chunks/skill-adherence-JE3N3Y67.mjs +13 -0
- package/dist/bin/core-chunks/skill-generator-LKS5BNMY.mjs +7 -0
- package/dist/bin/core-chunks/skill-index-L4UWQCQE.mjs +11 -0
- package/dist/bin/core-chunks/spec-VC3VTUI3.mjs +27 -0
- package/dist/bin/core-chunks/spec-context-inference-KOINWBC7.mjs +9 -0
- package/dist/bin/core-chunks/spec-inventory-2TT7BTFZ.mjs +9 -0
- package/dist/bin/core-chunks/spec-service-UZ53XL6X.mjs +7 -0
- package/dist/bin/core-chunks/spec-task-breakdown-3Y7YXCIQ.mjs +7 -0
- package/dist/bin/core-chunks/state-storage-6CGFWW5D.mjs +7 -0
- package/dist/bin/core-chunks/stdin-spill-Y2A6WOOW.mjs +7 -0
- package/dist/bin/core-chunks/stop-6SH36ULT.mjs +15 -0
- package/dist/bin/core-chunks/subagent-start-TVGBV2V2.mjs +7 -0
- package/dist/bin/core-chunks/subagent-stop-APWY6KMX.mjs +7 -0
- package/dist/bin/core-chunks/surface-attribution-CQVM2SWY.mjs +7 -0
- package/dist/bin/core-chunks/symbol-graph-PCS43SHZ.mjs +7 -0
- package/dist/bin/core-chunks/sync-analyzer-M37Q4LE4.mjs +7 -0
- package/dist/bin/core-chunks/sync-client-6TAOTJWR.mjs +7 -0
- package/dist/bin/core-chunks/sync-cursor-storage-GKO4X2QN.mjs +18 -0
- package/dist/bin/core-chunks/task-orchestration-GS4J4KGS.mjs +7 -0
- package/dist/bin/core-chunks/task-overview-XSMK7YEN.mjs +7 -0
- package/dist/bin/core-chunks/task-service-KFYL5NT4.mjs +7 -0
- package/dist/bin/core-chunks/tdd-P2PP4RR4.mjs +9 -0
- package/dist/bin/core-chunks/team-WKAAOEFE.mjs +42 -0
- package/dist/bin/core-chunks/template-loader-H4FE37HV.mjs +7 -0
- package/dist/bin/core-chunks/token-backfill-WPXXD5MP.mjs +12 -0
- package/dist/bin/core-chunks/token-economics-JZAQJUET.mjs +7 -0
- package/dist/bin/core-chunks/transcript-jsonl-OC7TH4Q3.mjs +7 -0
- package/dist/bin/core-chunks/trust-boundary-24F662RM.mjs +7 -0
- package/dist/bin/core-chunks/uninstall-W6EAUS7N.mjs +13 -0
- package/dist/bin/core-chunks/update-PSHEJJI5.mjs +11 -0
- package/dist/bin/core-chunks/update-checker-LZCUPWQB.mjs +7 -0
- package/dist/bin/core-chunks/usefulness-A3GRKFL3.mjs +7 -0
- package/dist/bin/core-chunks/user-home-BODIAXR4.mjs +7 -0
- package/dist/bin/core-chunks/vault-retire-notice-FDRT7BJG.mjs +8 -0
- package/dist/bin/core-chunks/velocity-storage-5T7RYOWH.mjs +7 -0
- package/dist/bin/core-chunks/verb-names-QWGYABFH.mjs +7 -0
- package/dist/bin/core-chunks/version-B5DBRVGQ.mjs +7 -0
- package/dist/bin/core-chunks/watch-service-7V3O52TW.mjs +9 -0
- package/dist/bin/core-chunks/weak-frontier-demo-ZCDTMYRO.mjs +7 -0
- package/dist/bin/core-chunks/weak-model-mode-LOAPFJPQ.mjs +7 -0
- package/dist/bin/core-chunks/work-graph-WHMCFN6U.mjs +7 -0
- package/dist/bin/core-chunks/work-graph-ZNV7S6EU.mjs +16 -0
- package/dist/bin/core-chunks/work-scope-XXPUH6TU.mjs +7 -0
- package/dist/bin/core-chunks/workflow-XM77QYRF.mjs +61 -0
- package/dist/bin/core-chunks/workflows-reference-T7RH7IGJ.mjs +7 -0
- package/dist/bin/core-chunks/workspace-occupancy-JUXKZBUZ.mjs +7 -0
- package/dist/bin/core-chunks/worktree-service-YRRPFU57.mjs +11 -0
- package/dist/bin/core-chunks/world-model-impact-FAGGNUGN.mjs +7 -0
- package/dist/bin/hook-chunks/{agent-switch-I4MTVE56.mjs → agent-switch-TAJWH2ZD.mjs} +1 -1
- package/dist/bin/hook-chunks/{analysis-VN7APBHR.mjs → analysis-34WDLUXK.mjs} +2 -2
- package/dist/bin/hook-chunks/{auto-flush-DX3FVSQE.mjs → auto-flush-7TIEBPPQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{capture-gate-MEIQD7ZS.mjs → capture-gate-JFVGG7RB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-UVATSTRF.mjs → chunk-22CBVTZ3.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-MW54MTLB.mjs → chunk-3JOZN7YJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-E7NA34VQ.mjs → chunk-4X3KUIXK.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-3AHW4XQH.mjs → chunk-5ALQBNIZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-H2DGDAQP.mjs → chunk-5VPZI2ZF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-XYKVWO23.mjs → chunk-6EHYPQ5U.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-6NMHVPAI.mjs +35 -0
- package/dist/bin/hook-chunks/chunk-7H5UVM6X.mjs +9 -0
- package/dist/bin/hook-chunks/{chunk-LR24AIEW.mjs → chunk-A3R47SP6.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-AFGXKRRP.mjs +12 -0
- package/dist/bin/hook-chunks/{chunk-64ZEBHDX.mjs → chunk-CGAKJDKT.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-EI6VQZOX.mjs → chunk-CJY4Y5SO.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-FSFURDAE.mjs +16 -0
- package/dist/bin/hook-chunks/{chunk-ZZBNFNMG.mjs → chunk-FTBBQHI4.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-G4VJKPG7.mjs +69 -0
- package/dist/bin/hook-chunks/{chunk-7PBWIO4K.mjs → chunk-GAJOSSB4.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-DB226JIV.mjs → chunk-GER6HFWV.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-LQLCYBFF.mjs → chunk-H3GIYI4Q.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-KDNUQPAK.mjs → chunk-HRU2KNEB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-33BHU4OM.mjs → chunk-LCGWETJ6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-WL6PKX3U.mjs → chunk-MG2DNP4Z.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-XV2LJVYB.mjs → chunk-MIJZT4ZR.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-NGB6JNSB.mjs +18 -0
- package/dist/bin/hook-chunks/{chunk-IJ523YO2.mjs → chunk-OALZUWC6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-EGCYDLSO.mjs → chunk-PZMBZ6GE.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-RT2DFIWF.mjs → chunk-QIB6Y6AH.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-ZQI4TJ5C.mjs → chunk-QMNZPNVY.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-YLOK4WRR.mjs → chunk-R4YDE3GU.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-WJV24WE6.mjs → chunk-RFKRKUHB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-SWJ7TLBD.mjs → chunk-RGOTJCZU.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-FZS3XGEA.mjs → chunk-RLKYEL3F.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-LF3S3MYE.mjs → chunk-T2KVL6PZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NLL5AV2G.mjs → chunk-T7DRHVK3.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-KV4NXLPT.mjs → chunk-TWFLW6OJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ADYTBOCZ.mjs → chunk-UJIOGFNP.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-Y3RHBU2R.mjs → chunk-UK24P7PV.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-OLQAMCYV.mjs → chunk-ULNGKZB6.mjs} +5 -5
- package/dist/bin/hook-chunks/{chunk-UMJ5D5I6.mjs → chunk-UWHVPO6X.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-YHOZTAZH.mjs → chunk-V6GGH6H5.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-EXVL2OFE.mjs → chunk-XC2BSGWF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-JZDZH6IV.mjs → chunk-YATXTHDL.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-DCHIPMOG.mjs → chunk-ZF2EVMY7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PVCEWFHS.mjs → chunk-ZPAY2NSF.mjs} +2 -2
- package/dist/bin/hook-chunks/{codex-skill-6CRFUF3A.mjs → codex-skill-BFRU5FTP.mjs} +1 -1
- package/dist/bin/hook-chunks/{command-installer-MUHZWDZA.mjs → command-installer-3XOZGKOQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{config-manager-2JJPCLKC.mjs → config-manager-UPB7NEXF.mjs} +1 -1
- package/dist/bin/hook-chunks/{context7-service-NH4BMGSJ.mjs → context7-service-7VFXEQVN.mjs} +1 -1
- package/dist/bin/hook-chunks/{cwd-changed-UTD6Y4MS.mjs → cwd-changed-USNJYUH7.mjs} +1 -1
- package/dist/bin/hook-chunks/{distill-5TNAM3LY.mjs → distill-47YVL7IH.mjs} +1 -1
- package/dist/bin/hook-chunks/{enriched-recall-6VOIUNLN.mjs → enriched-recall-CVYI52NO.mjs} +1 -1
- package/dist/bin/hook-chunks/{format-IIOFTSBF.mjs → format-DPIN45EG.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-receipt-QLV3MYFT.mjs → judgment-receipt-G2DKQR7U.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-cue-57B23PEL.mjs → land-cue-3JD2TXFP.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-synthesis-ZVPFJERV.mjs → land-synthesis-5C4KGCTB.mjs} +1 -1
- package/dist/bin/hook-chunks/{legacy-crew-sweep-GR6HRSHX.mjs → legacy-crew-sweep-XQNXNZES.mjs} +2 -2
- package/dist/bin/hook-chunks/{memory-index-XE2MWKQS.mjs → memory-index-LL6SQJ2N.mjs} +1 -1
- package/dist/bin/hook-chunks/{notification-GU2ZJP5K.mjs → notification-ACQBRJG3.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-integrity-WV5U3AFF.mjs → pack-integrity-DCXVRRJZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-manager-QLFQKP24.mjs → pack-manager-KYWKNYUY.mjs} +1 -1
- package/dist/bin/hook-chunks/{planning-VPAX5DZL.mjs → planning-KOU3XKWS.mjs} +2 -2
- package/dist/bin/hook-chunks/{post-edit-UXCFSR3Y.mjs → post-edit-CK2MYQEN.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-bash-MB4JNNYG.mjs → pre-bash-W5A5CTR3.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-commit-U7TRFKWX.mjs → pre-commit-5Q24RM4S.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-edit-MDCQXI5F.mjs → pre-edit-YIJ4BCYL.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-package-A6ZI5R64.mjs → pre-package-O4RMVA4T.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-search-ZZO3LGXJ.mjs → pre-search-WYOWC3D6.mjs} +1 -1
- package/dist/bin/hook-chunks/{prjct-md-MS52YLI2.mjs → prjct-md-2UVHFYTJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-agent-surfaces-6AIW7KL6.mjs → project-agent-surfaces-BKFYUMRV.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-memory-UDH56VFP.mjs → project-memory-OC5GTJPY.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-style-evolution-IJXT2MCP.mjs → project-style-evolution-2IFJCACQ.mjs} +1 -1
- package/dist/bin/hook-chunks/prompt-JIWMP563.mjs +26 -0
- package/dist/bin/hook-chunks/{purge-N2WN6NDB.mjs → purge-FQK3Z4QS.mjs} +1 -1
- package/dist/bin/hook-chunks/{retention-RET4P2RO.mjs → retention-2FETBJFG.mjs} +1 -1
- package/dist/bin/hook-chunks/{sdd-PB6WKSLE.mjs → sdd-V43TSJ2P.mjs} +1 -1
- package/dist/bin/hook-chunks/{session-continuity-BIJXMN44.mjs → session-continuity-RO2ACICF.mjs} +1 -1
- package/dist/bin/hook-chunks/{session-start-R2VMKW2L.mjs → session-start-FKKFMKQ5.mjs} +1 -1
- package/dist/bin/hook-chunks/{setup-PPIZHVXS.mjs → setup-YV2DKG5L.mjs} +2 -2
- package/dist/bin/hook-chunks/{shipping-C637PCOF.mjs → shipping-SCNFEXBY.mjs} +4 -4
- package/dist/bin/hook-chunks/{spec-context-inference-RTTDOZZO.mjs → spec-context-inference-BD3ANTXA.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-service-ENLAAMVL.mjs → spec-service-OWYOAGXS.mjs} +2 -2
- package/dist/bin/hook-chunks/{spec-task-breakdown-RUDEP3AY.mjs → spec-task-breakdown-HOTLUFDM.mjs} +1 -1
- package/dist/bin/hook-chunks/{state-storage-AJUPG7J5.mjs → state-storage-EMWLIFQJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{stop-DPXAWJFN.mjs → stop-MIXT7WXA.mjs} +3 -3
- package/dist/bin/hook-chunks/{subagent-start-AFHPXL2S.mjs → subagent-start-NO3TN65K.mjs} +1 -1
- package/dist/bin/hook-chunks/{subagent-stop-5BMV63ML.mjs → subagent-stop-CKWIXX7W.mjs} +1 -1
- package/dist/bin/hook-chunks/{surface-attribution-EGIKCVMF.mjs → surface-attribution-BYESPLXM.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-overview-F3GB77OA.mjs → task-overview-P3VRH2FD.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-service-FZABHPFV.mjs → task-service-5ONSBKKP.mjs} +1 -1
- package/dist/bin/hook-chunks/{tdd-TAMBOPN3.mjs → tdd-SESB4IG3.mjs} +1 -1
- package/dist/bin/hook-chunks/{template-loader-MXOMU4XH.mjs → template-loader-KO67FVHO.mjs} +1 -1
- package/dist/bin/hook-chunks/{weak-model-mode-BMSPGEQY.mjs → weak-model-mode-HPXBKXJT.mjs} +1 -1
- package/dist/bin/hook-chunks/{work-scope-YCS4GTXW.mjs → work-scope-RNPGACPA.mjs} +1 -1
- package/dist/bin/hook-chunks/{workspace-occupancy-JOBYNNXV.mjs → workspace-occupancy-3NEAXILW.mjs} +1 -1
- package/dist/bin/prjct-core.mjs +9 -3323
- package/dist/bin/prjct-hooks.mjs +1 -1
- package/dist/bin/prjct.mjs +7 -1
- package/dist/daemon/entry.mjs +591 -582
- package/dist/mcp/server.mjs +320 -313
- package/package.json +4 -2
- package/dist/bin/hook-chunks/chunk-3UB6SFRA.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-D7DQABWO.mjs +0 -35
- package/dist/bin/hook-chunks/chunk-IWUF2LGO.mjs +0 -18
- package/dist/bin/hook-chunks/chunk-M4YM7Z3F.mjs +0 -69
- package/dist/bin/hook-chunks/chunk-TB57OYGW.mjs +0 -16
- package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +0 -9
- package/dist/bin/hook-chunks/prompt-7VZLYONO.mjs +0 -24
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{b as j}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as n}from"./chunk-ID2C2S33.mjs";import{b as C}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{c as k}from"./chunk-DTMZBK4E.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import{d as v}from"./chunk-2FRLIQKX.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{F as w,G as P}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as g,g as R}from"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import{l as f,p as y}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as d}from"./chunk-3TRXQAU4.mjs";import{execFileSync as m}from"node:child_process";import x from"node:path";import u from"chalk";P();y();R();var h=class{static{d(this,"DoctorService")}projectPath="";projectId=null;globalPath="";async check(t=process.cwd()){this.projectPath=t,this.projectId=await C.getProjectId(t),this.projectId&&(this.globalPath=w.getGlobalProjectPath(this.projectId));let e=await this.checkTools(),s=await this.checkProject(),r=this.generateRecommendations(e,s),a=[...e,...s].some(i=>i.status==="error"&&!i.optional),c=[...e,...s].some(i=>i.status==="warn"||i.status==="error"&&i.optional);return{success:!a,tools:e,project:s,recommendations:r,hasErrors:a,hasWarnings:c}}async run(t=process.cwd()){let e=await this.check(t);return this.printHeader(),this.printSection("System Tools",e.tools),this.printSection("Project Status",e.project),e.recommendations.length>0&&this.printRecommendations(e.recommendations),this.printSummary(e),n.info("Heal dead hooks / multi-runtime gaps: prjct doctor --fix"),e.hasErrors?1:0}async heal(t=process.cwd()){this.printHeader(),n.info("Doctor heal \u2014 repairing harness wire\u2026");try{let{applyDoctorHeal:e}=await import("./doctor-heal-XFSVPSEY.mjs"),s=await e(t);if(n.done(s.line),s.applied.length&&n.info(`applied: ${s.applied.join(", ")}`),s.skipped.length&&n.info(`skipped: ${s.skipped.join(", ")}`),s.errors.length)for(let a of s.errors)n.fail(a);let r=await this.check(t);return this.printSection("System Tools",r.tools),this.printSection("Project Status",r.project),this.printSummary(r),s.errors.length>0||r.hasErrors?1:0}catch(e){return n.fail(`heal failed: ${e.message}`),1}}async checkTools(){let t=[];return t.push(this.checkCommand("git",["git","--version"],/git version ([\d.]+)/,!1)),t.push(this.checkCommand("node",["node","--version"],/v([\d.]+)/,!1)),t.push(this.checkCommand("bun",["bun","--version"],/([\d.]+)/,!0)),t.push(this.checkCommand("gh",["gh","--version"],/gh version ([\d.]+)/,!0,"needed for PR commands")),t.push(this.checkCommand("claude",["claude","--version"],/claude ([\d.]+)/,!0,"Anthropic Claude Code CLI")),t.push(this.checkCommand("gemini",["gemini","--version"],/gemini ([\d.]+)/,!0,"Google Gemini CLI")),t.push(this.checkCommand("codex",["codex","--version"],/([\d.]+)/,!0,"OpenAI Codex CLI")),t.push(await this.checkParallelInstalls()),t}async checkParallelInstalls(){try{let{planCleanup:t}=await import("./cleanup-installs-LD43GI4K.mjs"),e=t();if(e.removable.length===0)return{name:"prjct installs",status:"ok",message:e.winner?`single winner: ${e.winner}`:"one install (or PATH winner unresolved)",optional:!0};let s=e.removable.map(r=>`${r.pm}@${r.version}`).join(", ");return{name:"prjct installs",status:"warn",message:`${e.removable.length} parallel install(s) shadow winner ${e.winner??"?"}: ${s} \u2014 run \`prjct update\` to consolidate (or uninstall non-winners)`,optional:!0}}catch{return{name:"prjct installs",status:"ok",message:"could not scan (skipped)",optional:!0}}}checkCommand(t,e,s,r,a){try{let[c,...i]=e,l=m(c,i,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).match(s),o=l?l[1]:"unknown";return{name:t,status:"ok",version:o,optional:r}}catch{return{name:t,status:"error",message:a?`not found (${a})`:"not found",optional:r}}}async checkProject(){let t=[];return t.push(await this.checkPrjctConfig()),t.push(await this.checkGitRepo()),t.push(await this.checkStateFile()),t.push(await this.checkContext7()),t.push(await this.checkCodexPRouter()),t.push(await this.checkClaudeHooks()),t}async checkClaudeHooks(){try{let t=await import("./settings-installer-4XHM3HAZ.mjs"),{installed:e,expected:s}=await t.status();return e===s?{name:"claude hooks",status:"ok",message:`${e}/${s} installed`}:{name:"claude hooks",status:"warn",message:`${e}/${s} installed - run "prjct doctor --fix" to repair`}}catch{return{name:"claude hooks",status:"warn",message:"could not read ~/.claude/settings.json"}}}async checkPrjctConfig(){let t=x.join(this.projectPath,".prjct","prjct.config.json");return await f(t)?{name:"prjct config",status:"ok",message:"initialized"}:{name:"prjct config",status:"error",message:'not initialized - run "prjct init"'}}async checkGitRepo(){try{m("git",["rev-parse","--git-dir"],{cwd:this.projectPath,stdio:["pipe","pipe","pipe"]});let t=m("git",["status","--porcelain"],{cwd:this.projectPath,encoding:"utf-8",stdio:["pipe","pipe","pipe"]});if(t.trim().length>0){let s=t.trim().split(`
|
|
8
|
+
`).filter(Boolean);return{name:"git repo",status:"ok",message:`${s.length} uncommitted change${s.length>1?"s":""}`}}return{name:"git repo",status:"ok",message:"clean"}}catch{return{name:"git repo",status:"warn",message:"not a git repository"}}}async checkStateFile(){if(!this.globalPath||!this.projectId)return{name:"task state",status:"warn",message:"project not initialized"};try{let t=await j.read(this.projectId);return t.currentTask?{name:"task state",status:"ok",message:`active: ${t.currentTask.description?.slice(0,30)}...`}:{name:"task state",status:"ok",message:"no active task"}}catch{return{name:"task state",status:"ok",message:"no state data (normal for new projects)",optional:!0}}}async checkContext7(){try{let t=await k.verify();return t.installed?t.verified?{name:"context7 mcp",status:"ok",message:"ready"}:{name:"context7 mcp",status:"error",message:t.message||"configured but verification failed"}:{name:"context7 mcp",status:"error",message:'not configured - run "prjct start"'}}catch(t){return{name:"context7 mcp",status:"error",message:`check failed: ${t instanceof Error?t.message:"unknown error"}`}}}async checkCodexPRouter(){try{let t=await v({autoRepair:!0});return t.installed?t.verified?{name:"codex p-router",status:"ok",message:`ready (${t.templateSource||"local-dev"})`}:{name:"codex p-router",status:"error",message:t.message||"router verification failed"}:{name:"codex p-router",status:"ok",message:"codex not detected (check skipped)",optional:!0}}catch(t){return{name:"codex p-router",status:"error",message:`check failed: ${t instanceof Error?t.message:"unknown error"}`}}}generateRecommendations(t,e){let s=[];t.find(o=>o.name==="gh"&&o.status==="error")&&s.push("Install GitHub CLI (gh) for PR commands: https://cli.github.com");let a=e.find(o=>o.name==="CLAUDE.md");a?.status==="warn"&&a.message?.includes("stale")&&s.push('Run "prjct sync" to update context');let c=e.find(o=>o.name==="prjct config");c?.status==="error"&&s.push('Run "prjct init" to initialize this project'),e.find(o=>o.name==="CLAUDE.md"&&o.status==="error")&&!c?.status?.includes("error")&&s.push('Run "prjct sync" to generate context files');let p=e.find(o=>o.name==="context7 mcp");p&&p.status!=="ok"&&s.push('Run "prjct start" to install/repair Context7 MCP');let l=e.find(o=>o.name==="codex p-router");return l&&l.status==="error"&&s.push('Run "prjct start" or "prjct setup" to repair Codex p. router'),s}printHeader(){n.section(`prjct doctor v${g}`)}printSection(t,e){n.section(t);let s=e.map(r=>{let a=this.getStatusIcon(r.status,r.optional),c=r.name.padEnd(14),i=r.version||r.message||"",p=r.optional&&r.status==="error"?u.dim(" (optional)"):"";return`${a} ${c} ${u.dim(i)}${p}`});for(let r of s)console.log(` ${r}`)}printRecommendations(t){n.section("Recommendations"),n.list(t,{bullet:u.yellow("\u2022")})}printSummary(t){console.log(""),console.log(u.dim("\u2500".repeat(40))),t.hasErrors?n.fail("Some required checks failed"):t.hasWarnings?n.warn("All required checks passed (some warnings)"):n.done("All checks passed"),console.log("")}getStatusIcon(t,e){switch(t){case"ok":return u.green("\u2713");case"warn":return u.yellow("\u26A0");case"error":return e?u.dim("\u25CB"):u.red("\u2717")}}},z=new h;export{h as DoctorService,z as doctorService};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as t}from"./chunk-3TRXQAU4.mjs";import{spawn as s}from"node:child_process";import{existsSync as d,mkdirSync as l,readFileSync as h,writeFileSync as u}from"node:fs";import i from"node:path";var m="drift-refresh-last.json";function o(e){return i.join(e,"state",m)}t(o,"stampPath");function a(e){try{let r=o(e);return d(r)?JSON.parse(h(r,"utf-8")):{}}catch{return{}}}t(a,"readDriftStamp");function f(e,r){try{let n=i.join(e,"state");l(n,{recursive:!0});let c=a(e);u(o(e),JSON.stringify({...c,...r}),"utf-8")}catch{}}t(f,"writeDriftStamp");function p(e,r){if(r<=0||r<3)return!1;try{let n=a(e),c=n.scheduledAt??n.at;return c?Date.now()-c>3600*1e3:!0}catch{return!0}}t(p,"shouldRefreshDrift");function b(e){f(e,{appliedAt:Date.now()})}t(b,"markDriftRefreshApplied");function S(e,r=Date.now()){return!e.appliedAt||!e.scheduledAt||e.appliedAt<e.scheduledAt?!1:r-e.appliedAt<3600*1e3}t(S,"driftStaleResolved");function R(e){return S(e.stamp)?`**World model refreshed:** drift was ${e.commitsSinceSync}+ commits; architecture/risk/work-scope sync applied. Stale banner cleared.`:e.refreshScheduled?`**Understanding may be stale:** ${e.warning} \u2014 background world-model refresh scheduled (BM25 + import graph + architecture). Prefer \`prjct sync\` if this persists after ~1 min.`:`**Understanding may be stale:** ${e.warning} \u2014 run \`prjct sync\` before big calls to refresh architecture/risk/work-scope.`}t(R,"formatDriftNotice");function j(e){if(!p(e.cliHome,e.commitsSinceSync))return!1;f(e.cliHome,{scheduledAt:Date.now(),commitsAtSchedule:e.commitsSinceSync});let r=e.prjctBin??process.argv[1]??"prjct",n={...process.env,PRJCT_DRIFT_REFRESH:"1",PRJCT_WORLD_MODEL_REFRESH:"1"};try{return s(process.execPath,[r,"sync","--project",e.projectPath],{detached:!0,stdio:"ignore",cwd:e.projectPath,env:n,shell:!1}).unref(),!0}catch{try{return s("prjct",["sync","--project",e.projectPath],{detached:!0,stdio:"ignore",cwd:e.projectPath,env:n,shell:!1}).unref(),!0}catch{return!1}}}t(j,"maybeDetachDriftRefresh");export{S as driftStaleResolved,R as formatDriftNotice,b as markDriftRefreshApplied,j as maybeDetachDriftRefresh,a as readDriftStamp,p as shouldRefreshDrift};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as p}from"./chunk-2TJRTFIS.mjs";import{i as u}from"./chunk-SUXIKMTS.mjs";import"./chunk-L5LFLI4R.mjs";import{g as d}from"./chunk-CA2VFWFP.mjs";import"./chunk-5YLI5V3Q.mjs";import{i as l}from"./chunk-6KNMT46X.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{f as a,i as m}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";m();m();function y(t){let o=Date.now()-6048e5,e=u(t,o),n=d(t,"warn",o),s=d(t,"deny",o),i=(()=>{try{return a.get(t,`SELECT COUNT(*) AS c FROM memory_entries
|
|
8
|
+
WHERE deleted_at IS NULL
|
|
9
|
+
AND created_at >= ?
|
|
10
|
+
AND type IN ('gotcha', 'anti-pattern', 'decision')`,o)?.c??0}catch{return 0}})(),c=`Closed-loop judgment (7d): receipts=${e} \xB7 conflict warn/deny=${n}/${s} \xB7 preventive memories=${i}`;return{receipts7d:e,conflictWarns7d:n,conflictDenies7d:s,preventiveSurfaces7d:i,line:c}}r(y,"buildClosedLoopHealth");function h(t){try{return a.get(t,"SELECT COALESCE(SUM(tokens_saved), 0) AS tokens FROM metrics_daily")?.tokens??0}catch{return 0}}r(h,"sumTokensSaved");function E(t){let o=y(t),e=l(t),n=p(t),s=h(t),i=e.live+e.softDeleted+e.archives,c=i>0?Math.round((e.softDeleted+e.archives)/i*1e3)/10:0,f=[{name:"Judgment receipts (7d)",measured:String(o.receipts7d),note:"land/Stop closed-loop stamps"},{name:"Conflict warn/deny (7d)",measured:`${o.conflictWarns7d}/${o.conflictDenies7d}`,note:"decision-conflict gate activity"},{name:"Preventive memories (7d)",measured:String(o.preventiveSurfaces7d),note:"gotcha \xB7 anti-pattern \xB7 decision"},{name:"Vault live / soft / archive",measured:`${e.live} / ${e.softDeleted} / ${e.archives}`,note:`hygiene mass ${c}% (Rho not grow-forever)`},{name:"Auto-source live",measured:String(e.autoSourceLive),note:"session noise capped by retention"},{name:"Tokens saved (lifetime sync)",measured:String(s),note:"metrics_daily compression"},{name:"Token economics (24h)",measured:`\u2248${n.tokens24h} \xB7 score ${n.score}/100`,note:"compound judgment > fresh-window thrash"}],v=`Dynasty outcomes: receipts7d=${o.receipts7d} \xB7 vault live=${e.live} soft=${e.softDeleted} \xB7 tokensSaved=${s} \xB7 tok24h\u2248${n.tokens24h}`;return{closedLoop:o,vault:e,tokens:n,tokensSavedTotal:s,hygieneRatio:c,line:v,rows:f}}r(E,"buildDynastyOutcomes");function T(t){return["## Dynasty outcomes (project)","","Compounding proof \u2014 not structural grade. Needs a live project DB.","","| Signal | Measured | Note |","|---|---|---|",...t.rows.map(e=>`| ${e.name} | ${e.measured} | ${e.note} |`),"",`**${t.line}**`,""].join(`
|
|
11
|
+
`)}r(T,"renderDynastyOutcomesMd");export{E as buildDynastyOutcomes,T as renderDynastyOutcomesMd};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a}from"./chunk-GGGDYL4P.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a}from"./chunk-YZEO5DZA.mjs";import{a as u,d as o,h as m}from"./chunk-6POAOY5C.mjs";import{a as I}from"./chunk-5DZ2LTII.mjs";import{a as v,b as R,e as l}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import{a as $,b as H,c as q,d as x,e as L,f as C,g as G,h as N,j as P}from"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as r}from"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as k,g as K}from"./chunk-225DWS4D.mjs";import{a as f}from"./chunk-3TRXQAU4.mjs";K();function T(c){if(/\b401\b|invalid_api_key|incorrect api key|unauthor/i.test(c))return"The endpoint rejected the key (401). The base URL must match the key's provider \u2014 e.g. an OpenRouter key (sk-or-\u2026) needs `--base-url https://openrouter.ai/api/v1`, not OpenAI's. Re-set with: prjct embeddings set --key <api-key> --base-url <url>";if(/\b404\b|not found/i.test(c))return"No /embeddings route at that base URL (404). Check the base URL is the provider's OpenAI-compatible root (e.g. https://openrouter.ai/api/v1, https://api.openai.com/v1).";if(/ENOTFOUND|ECONNREFUSED|fetch failed|getaddrinfo|ETIMEDOUT/i.test(c))return"Could not reach the endpoint. Check the base URL and your network: prjct embeddings status"}f(T,"embeddingsFailureHint");function M(c){if(!c?.trim())return;let n={};for(let e of c.split(",")){let t=e.indexOf("=");if(t<=0)continue;let d=e.slice(0,t).trim(),i=e.slice(t+1).trim();d&&(n[d]=i)}return Object.keys(n).length?n:void 0}f(M,"parseHeaderPairs");var D=class extends I{static{f(this,"EmbeddingsCommands")}async embeddings(n=null,e=process.cwd(),t={}){let d=(n??"").trim().split(/\s+/).filter(Boolean),i=d[0]??"status";switch(i){case"set":return this.set(d.slice(1),t);case"status":return this.status(t);case"test":return this.test(t);case"clear":return this.clear(t);default:return l(`Unknown subcommand '${i}'. Use: set --key <K> [--model <M>] [--base-url <U>] | status | test | clear`,t)}}async set(n,e){let t=e.key??a(n,"key"),d=e.model??a(n,"model"),i=e.baseUrl??a(n,"base-url")??a(n,"baseUrl"),S=!i&&t?H(t):null,j=i??S?.baseUrl,b=S?.provider,E=e.authHeader??a(n,"auth-header"),g=e.authScheme??a(n,"auth-scheme"),U=g===void 0?void 0:/^none$/i.test(g)?"":g,w=M(e.headers??a(n,"headers")),O=e.query??a(n,"query");if(!t&&!d&&!j&&E===void 0&&U===void 0&&!w&&O===void 0)return l('Nothing to set. Usage: prjct embeddings set --key <api-key> [--model <id>] [--base-url <url>] [--auth-header <h>] [--auth-scheme <s|none>] [--headers "k=v,..."] [--query <qs>]');let y=t?await G(t).then(p=>({location:p})).catch(p=>({error:k(p)})):{};if(y.error)return l(`Could not store the key securely: ${y.error}`);let h=y.location,s=x({model:d,baseUrl:j,authHeader:E,authScheme:U,extraHeaders:w,query:O});return e.md?(console.log(u(o("Embeddings configured","Global embeddings now apply to all projects."),m({provider:s.provider,model:s.model,"base URL":s.baseUrl,detected:b,"auth header":s.authHeader,auth:s.authScheme===void 0?void 0:s.authScheme||"(raw key, no scheme)",query:s.query,headers:s.extraHeaders?Object.keys(s.extraHeaders).join(", "):void 0,"api key":h?`stored in ${h==="keychain"?"macOS Keychain":"~/.prjct-cli/config/embeddings.key (0600)"}`:void 0}),o("Next","Run `prjct embeddings test --md` to validate now."))),{success:!0}):(r.done("Global embeddings configured (applies to all projects)"),b&&r.info(`detected: ${b} (from key prefix)`),r.info(`provider: ${s.provider}`),r.info(`model: ${s.model}`),r.info(`base URL: ${s.baseUrl}`),s.authHeader&&r.info(`auth hdr: ${s.authHeader}`),s.authScheme!==void 0&&r.info(`auth: ${s.authScheme?s.authScheme:"(raw key, no scheme)"}`),s.query&&r.info(`query: ${s.query}`),s.extraHeaders&&r.info(`headers: ${Object.keys(s.extraHeaders).join(", ")}`),h&&r.info(`api key: stored in ${h==="keychain"?"macOS Keychain":"~/.prjct-cli/config/embeddings.key (0600)"}`),r.info("Each project re-vectorizes on its next session (Stop hook). Run `prjct embeddings test` to validate now."),{success:!0})}async status(n){let e=q(),t=await C();return e?n.md?(console.log(u(o("Embeddings","Global embeddings are configured."),m({provider:e.provider,model:e.model,"base URL":e.baseUrl,"auth header":e.authHeader,auth:e.authScheme===void 0?void 0:e.authScheme||"(raw key, no scheme)",query:e.query,headers:e.extraHeaders?Object.keys(e.extraHeaders).join(", "):void 0,"api key":t==="none"?"MISSING - set with `prjct embeddings set --key <api-key>`":`present (${t})`}))),{success:!0,configured:!0}):(r.done("Global embeddings: configured"),r.info(`provider: ${e.provider}`),r.info(`model: ${e.model}`),r.info(`base URL: ${e.baseUrl}`),e.authHeader&&r.info(`auth hdr: ${e.authHeader}`),e.authScheme!==void 0&&r.info(`auth: ${e.authScheme?e.authScheme:"(raw key, no scheme)"}`),e.query&&r.info(`query: ${e.query}`),e.extraHeaders&&r.info(`headers: ${Object.keys(e.extraHeaders).join(", ")}`),r.info(`api key: ${t==="none"?"MISSING \u2014 set with `prjct embeddings set --key <api-key>`":`present (${t})`}`),{success:!0,configured:!0}):n.md?(console.log(u(o("Embeddings","Global embeddings are not configured. Recall uses the built-in local subword embedder."),m({"api key":t==="none"?"none":`present (${t})`}),o("Next","Set one with `prjct embeddings set --key <api-key> --md`."))),{success:!0,configured:!1}):(r.info("Global embeddings: not configured \u2014 using the built-in local subword embedder."),r.info(`api key: ${t==="none"?"none":`present (${t})`}`),r.info("Set one with: prjct embeddings set --key <api-key>"),{success:!0,configured:!1})}async test(n){let e=P(null);try{let[t]=await e.embed(["prjct embeddings connectivity probe"]);return!t||t.length===0?l(`Provider '${e.model}' returned an empty vector.`,n):n.md?(console.log(u(o("Embeddings test",`Provider '${e.model}' returned a ${t.length}-dim vector.`),e.isLocal?o("Next","This is the local embedder. Set a key to upgrade: `prjct embeddings set --key <api-key> --md`."):null)),{success:!0,model:e.model,dims:t.length}):(r.done(`OK \u2014 '${e.model}' returned a ${t.length}-dim vector.`),e.isLocal&&r.info("This is the local embedder. Set a key to upgrade: prjct embeddings set --key <api-key>"),{success:!0,model:e.model,dims:t.length})}catch(t){let d=k(t);R(`Embedding test failed for '${e.model}'.`,n),v(d,n);let i=T(d);return i&&v(i,n),{success:!1,error:d}}}async clear(n){return await N(),L(),n.md?(console.log(u(o("Embeddings cleared","Semantic recall now falls back to the local embedder."),m({"default model":$}))),{success:!0}):(r.done("Cleared global embeddings \u2014 semantic recall falls back to the local embedder."),r.info(`(Default model when you reconfigure: ${$}.)`),{success:!0})}};export{D as EmbeddingsCommands};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a}from"./chunk-YPLFWN62.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as enrichedRecall};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as g,d as y}from"./chunk-6POAOY5C.mjs";import{a as L}from"./chunk-5DZ2LTII.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as p}from"./chunk-ID2C2S33.mjs";import{b as N}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import{e as J}from"./chunk-7QTE6X4J.mjs";import{c as C}from"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import{a as V,b as ce}from"./chunk-U24YKPYX.mjs";import{b as M,p as le}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import{b as _,g as me}from"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as U,g as ue}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";ce();import W from"node:crypto";import m from"node:fs/promises";import l from"node:path";import{z as s}from"zod";var z=s.object({severity:s.enum(["info","warning","blocking"]),title:s.string(),recommendation:s.string(),files:s.array(s.string()).optional(),command:s.string().optional()}),de=s.object({id:s.string(),name:s.string(),status:s.enum(["pass","warn","fail"]),score:s.number().min(0).max(100),durationMs:s.number().nonnegative(),metrics:s.record(s.string(),s.union([s.string(),s.number(),s.boolean()])),actionables:s.array(z)}),H=s.object({jsonPath:s.string().optional(),reportPath:s.string().optional()}).optional(),B=s.object({schemaVersion:s.literal(1),runId:s.string(),createdAt:s.string(),runner:s.object({source:s.enum(["local","ci","agent"]),user:s.string().optional(),platform:s.string(),node:s.string(),bun:s.string().optional()}),project:s.object({repo:s.string(),branch:s.string().optional(),commit:s.string().optional(),dirty:s.boolean()}),versions:s.object({current:s.string(),baseline:s.string().optional(),candidate:s.string().optional()}),scenarios:s.array(de),summary:s.object({score:s.number().min(0).max(100),pass:s.number().nonnegative(),warn:s.number().nonnegative(),fail:s.number().nonnegative(),improvements:s.number().nonnegative(),regressions:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H}),G=s.object({schemaVersion:s.literal(1),comparisonId:s.string(),createdAt:s.string(),baselineRunId:s.string().optional(),candidateRunId:s.string().optional(),baselineVersion:s.string().optional(),candidateVersion:s.string().optional(),summary:s.object({baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),regressions:s.number().nonnegative(),improvements:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H,scenarios:s.array(s.object({id:s.string(),baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),status:s.enum(["improved","regressed","unchanged","missing-baseline","missing-candidate"]),actionables:s.array(z)}))});le();me();var O=1,q=-5,K=5;async function X(n,r={}){let t=new Date().toISOString(),e=await I(n),i=await ge({projectPath:n,git:e}),c=pe(i),d={schemaVersion:O,runId:Ie(t),createdAt:t,runner:{source:r.source??ke(),user:await Oe(n),platform:`${process.platform}-${process.arch}`,node:process.version,bun:await xe()},project:{repo:e.repo,branch:e.branch,commit:e.commit,dirty:e.dirty},versions:{current:_(),baseline:r.baseline,candidate:r.candidate??_()},scenarios:i,summary:c};return je(d)}o(X,"runEval");async function S(n){let r=l.join(x(await I(n)),"latest.json");return D(r)}o(S,"loadLatestEvalRun");async function Q(n,r){if(!r)return S(n);let t=l.join(x(await I(n)),"runs"),e=await m.readdir(t).catch(()=>null);return e?(await Promise.all(e.filter(i=>i.endsWith(".json")).map(i=>D(l.join(t,i))))).filter(i=>!!i).filter(i=>i.versions.current===r||i.versions.candidate===r).sort((i,c)=>c.createdAt.localeCompare(i.createdAt))[0]??null:null}o(Q,"loadEvalRunByVersion");async function Y(n,r={}){let t=await Q(n,r.baseline),e=r.candidate?await Q(n,r.candidate):await S(n),i=[...new Set([...t?.scenarios.map(u=>u.id)??[],...e?.scenarios.map(u=>u.id)??[]])].sort().map(u=>{let v=t?.scenarios.find(A=>A.id===u),w=e?.scenarios.find(A=>A.id===u),b=v&&w?Math.round((w.score-v.score)*10)/10:void 0,j=[],oe=v?w?(b??0)<=q?"regressed":(b??0)>=K?"improved":"unchanged":"missing-candidate":"missing-baseline";return v?w?(b??0)<=q?j.push({severity:"blocking",title:`${u} regressed by ${Math.abs(b??0)} points`,recommendation:Me(u)}):(b??0)>=K?j.push({severity:"info",title:`${u} improved by ${b} points`,recommendation:"Keep this scenario in PR checks so the improvement is protected."}):v&&w&&j.push({severity:"info",title:`${u} stayed within the regression threshold`,recommendation:"Keep collecting this scenario so future optimizations have a stable baseline."}):j.push({severity:"blocking",title:`No candidate result for ${u}`,recommendation:"Run `prjct eval run` for the candidate version before publishing a comparison."}):j.push({severity:"warning",title:`No baseline result for ${u}`,recommendation:"Run `prjct eval run --candidate <baseline-version>` before comparing releases."}),{id:u,baselineScore:v?.score,candidateScore:w?.score,delta:b,status:oe,actionables:j}}),c=i.filter(u=>u.status==="regressed").length,d=i.filter(u=>u.status==="improved").length,f=new Date().toISOString(),h=t?.versions.candidate??t?.versions.current??r.baseline,F=e?.versions.candidate??e?.versions.current??r.candidate,ie={schemaVersion:O,comparisonId:Ce(f,h,F),createdAt:f,baselineRunId:t?.runId,candidateRunId:e?.runId,baselineVersion:h,candidateVersion:F,summary:{baselineScore:t?.summary.score,candidateScore:e?.summary.score,delta:t&&e?Math.round((e.summary.score-t.summary.score)*10)/10:void 0,regressions:c,improvements:d,actionables:i.reduce((u,v)=>u+v.actionables.length,0)},scenarios:i};return Ee(n,ie)}o(Y,"compareEvalRuns");async function T(n,r={}){let t=te(r.target),e=r.file?await Re(r.file):await $e(n),a=await re(n,r.dryRun===!0),i={schemaVersion:O,artifactType:"run",artifactId:e.runId,repo:e.project.repo,createdAt:e.createdAt,run:e,reportMarkdown:R(e)};return se(a.projectId,t,r.dryRun===!0,i,{artifactType:"run",artifactId:e.runId,runId:e.runId})}o(T,"publishEvalRun");async function ee(n,r,t={}){let e=te(t.target),a=await re(n,t.dryRun===!0),i=await I(n),c={schemaVersion:O,artifactType:"comparison",artifactId:r.comparisonId,repo:i.repo,createdAt:r.createdAt,comparison:r,reportMarkdown:P(r)};return se(a.projectId,e,t.dryRun===!0,c,{artifactType:"comparison",artifactId:r.comparisonId,comparisonId:r.comparisonId})}o(ee,"publishEvalComparison");function R(n){let r=n.scenarios.flatMap(a=>a.actionables.map(i=>({scenario:a.id,actionable:i}))),t=n.scenarios.map(a=>`| \`${a.id}\` | ${a.status} | ${a.score} | ${a.actionables.length} |`).join(`
|
|
8
|
+
`),e=r.length===0?"_No actionables._":r.map(({scenario:a,actionable:i})=>`- **${i.severity}** \`${a}\`: ${i.title}. ${i.recommendation}`).join(`
|
|
9
|
+
`);return`# prjct eval run
|
|
10
|
+
|
|
11
|
+
Run: \`${n.runId}\`
|
|
12
|
+
Version: \`${n.versions.current}\`
|
|
13
|
+
Repo: \`${n.project.repo}\`
|
|
14
|
+
Commit: \`${n.project.commit??"unknown"}\`
|
|
15
|
+
|
|
16
|
+
## Summary
|
|
17
|
+
|
|
18
|
+
| Metric | Value |
|
|
19
|
+
|---|---:|
|
|
20
|
+
| Score | ${n.summary.score} |
|
|
21
|
+
| Pass | ${n.summary.pass} |
|
|
22
|
+
| Warn | ${n.summary.warn} |
|
|
23
|
+
| Fail | ${n.summary.fail} |
|
|
24
|
+
| Actionables | ${n.summary.actionables} |
|
|
25
|
+
|
|
26
|
+
## Scenarios
|
|
27
|
+
|
|
28
|
+
| Scenario | Status | Score | Actionables |
|
|
29
|
+
|---|---|---:|---:|
|
|
30
|
+
${t}
|
|
31
|
+
|
|
32
|
+
## Actionables
|
|
33
|
+
|
|
34
|
+
${e}
|
|
35
|
+
`}o(R,"formatEvalRunMarkdown");function P(n){let r=n.scenarios.map(e=>`| \`${e.id}\` | ${e.status} | ${e.baselineScore??"-"} | ${e.candidateScore??"-"} | ${e.delta??"-"} |`).join(`
|
|
36
|
+
`),t=n.scenarios.flatMap(e=>e.actionables.map(a=>`- **${a.severity}** \`${e.id}\`: ${a.title}. ${a.recommendation}`));return`# prjct eval comparison
|
|
37
|
+
|
|
38
|
+
Comparison: \`${n.comparisonId}\`
|
|
39
|
+
Baseline: \`${n.baselineVersion??"missing"}\`
|
|
40
|
+
Candidate: \`${n.candidateVersion??"missing"}\`
|
|
41
|
+
|
|
42
|
+
## Summary
|
|
43
|
+
|
|
44
|
+
| Metric | Value |
|
|
45
|
+
|---|---:|
|
|
46
|
+
| Baseline score | ${n.summary.baselineScore??"-"} |
|
|
47
|
+
| Candidate score | ${n.summary.candidateScore??"-"} |
|
|
48
|
+
| Delta | ${n.summary.delta??"-"} |
|
|
49
|
+
| Improvements | ${n.summary.improvements} |
|
|
50
|
+
| Regressions | ${n.summary.regressions} |
|
|
51
|
+
| Actionables | ${n.summary.actionables} |
|
|
52
|
+
|
|
53
|
+
## Scenarios
|
|
54
|
+
|
|
55
|
+
| Scenario | Status | Baseline | Candidate | Delta |
|
|
56
|
+
|---|---|---:|---:|---:|
|
|
57
|
+
${r||"| _none_ | - | - | - | - |"}
|
|
58
|
+
|
|
59
|
+
## Actionables
|
|
60
|
+
|
|
61
|
+
${t.length>0?t.join(`
|
|
62
|
+
`):"_No actionables._"}
|
|
63
|
+
`}o(P,"formatEvalComparisonMarkdown");function pe(n){return{score:n.length===0?0:Math.round(n.reduce((t,e)=>t+e.score,0)/n.length),pass:n.filter(t=>t.status==="pass").length,warn:n.filter(t=>t.status==="warn").length,fail:n.filter(t=>t.status==="fail").length,improvements:0,regressions:n.filter(t=>t.status==="fail").length,actionables:n.reduce((t,e)=>t+e.actionables.length,0)}}o(pe,"summarizeScenarios");async function ge(n){return Promise.all([E("agent-surface-readiness","Agent surface readiness",()=>fe(n.projectPath)),E("project-sync-readiness","Project sync readiness",()=>he(n.projectPath)),E("stale-command-guidance","Stale command guidance",()=>ve(n.projectPath)),E("quality-command-readiness","Quality command readiness",()=>be(n.projectPath)),E("cloud-benchmark-readiness","Cloud benchmark readiness",()=>ye(n.projectPath)),E("project-facts-freshness","Project facts freshness",()=>we(n.projectPath))])}o(ge,"runScenarios");async function E(n,r,t){let e=Date.now(),a=await t();return{id:n,name:r,durationMs:Date.now()-e,...a}}o(E,"scenario");async function fe(n){let r=await k(l.join(n,"AGENTS.md")),t=await k(l.join(n,"CLAUDE.md")),e=r?100:t?70:20;return{status:e>=90?"pass":"warn",score:e,metrics:{agentsMd:r,claudeMd:t},actionables:e>=90?[{severity:"info",title:"Portable agent surface is present",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks.",command:"prjct agents doctor --fix"}]:[{severity:"warning",title:"Portable AGENTS.md surface is missing",recommendation:"Run `prjct agents doctor --fix` so future agents start with the same project contract.",command:"prjct agents doctor --fix"}]}}o(fe,"evalAgentSurface");async function he(n){let r=await k(l.join(n,".prjct","prjct.config.json"));return{status:r?"pass":"warn",score:r?100:40,metrics:{projectConfig:r},actionables:[r?{severity:"info",title:"Project has a prjct identity",recommendation:"Use `prjct sync --md` in eval smoke runs to keep generated context measurable.",command:"prjct sync --md"}:{severity:"warning",title:"Project is not registered with prjct",recommendation:"Run `prjct sync` before comparing eval runs so metrics map to a stable project id.",command:"prjct sync"}]}}o(he,"evalProjectSyncReadiness");async function ve(n){let r=await Ae(n,250),t=/\/p:\s*[a-z][a-z0-9-]*/i,e=[];return await Promise.all(r.map(async a=>{let i=await m.readFile(l.join(n,a),"utf-8").catch(()=>"");t.test(i)&&e.push(a)})),{status:e.length===0?"pass":"warn",score:e.length===0?100:Math.max(20,100-e.length*10),metrics:{scannedFiles:r.length,staleHits:e.length},actionables:e.length===0?[{severity:"info",title:"No stale `/p:` command guidance found",recommendation:"Keep this scan in evals to prevent user-facing command drift."}]:[{severity:"warning",title:`Found ${e.length} stale command guidance file(s)`,recommendation:"Replace stale `/p:` examples with `p. <verb>` or `prjct <verb>`.",files:e.slice(0,10)}]}}o(ve,"evalStaleCommandGuidance");async function be(n){let r=l.join(n,"package.json"),t=await(async()=>{try{return JSON.parse(await m.readFile(r,"utf-8")).scripts??{}}catch{return{}}})(),e=typeof t.test=="string",a=typeof t.check=="string"||typeof t.lint=="string",i=(e?50:0)+(a?50:0);return{status:i>=100?"pass":"warn",score:i,metrics:{hasTest:e,hasCheck:a},actionables:i>=100?[{severity:"info",title:"Quality commands are discoverable",recommendation:"Use these commands as eval scenario gates before publishing results."}]:[{severity:"warning",title:"Quality commands are incomplete",recommendation:"Expose `test` and `check`/`lint` scripts so eval reports can tie regressions to real verification.",files:["package.json"]}]}}o(be,"evalQualityCommandReadiness");async function ye(n){let r=await N.readConfig(n),t=await C.hasAuth(),e=!!r?.projectId,a=!!r?.cloud?.enabled,i=a&&!r?.cloud?.paused,c=(e?34:0)+(t?33:0)+(i?33:0);return{status:c>=100?"pass":"warn",score:c,metrics:{hasProject:e,authenticated:t,cloudLinked:a,cloudActive:i},actionables:c>=100?[{severity:"info",title:"Cloud benchmark publishing is active",recommendation:"Run `prjct eval publish --target cloud` after release evals to store shared benchmark history.",command:"prjct eval publish --target cloud"}]:[{severity:"warning",title:"Cloud benchmark publishing is not active",recommendation:"Run `prjct init`, `prjct login`, and `prjct cloud link` before publishing benchmark results.",command:"prjct cloud status"}]}}o(ye,"evalCloudBenchmarkReadiness");async function we(n){let r=l.join(n,"PRJCT.md");if(!await k(r))return{status:"warn",score:50,metrics:{prjctMd:!1},actionables:[{severity:"info",title:"PRJCT.md not opted into yet",recommendation:"Run `prjct agents doctor --fix` to generate the verified-facts hub (opt-in, clean-repo doctrine).",command:"prjct agents doctor --fix"}]};let{buildPrjctMdBody:e}=await import("./prjct-md-BSFV7OQQ.mjs"),[a,i]=await Promise.all([m.readFile(r,"utf-8").catch(()=>""),e(n)]),c=!a.includes(i);return{status:c?"warn":"pass",score:c?40:100,metrics:{prjctMd:!0,stale:c},actionables:c?[{severity:"warning",title:"PRJCT.md is stale",recommendation:"Re-run `prjct agents doctor --fix` to refresh verified commands/stack after a manifest change (package.json / Cargo.toml / go.mod / pyproject.toml).",command:"prjct agents doctor --fix"}]:[{severity:"info",title:"PRJCT.md matches verified project facts",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks to catch drift early.",command:"prjct agents doctor --fix"}]}}o(we,"evalProjectFactsFreshness");async function je(n){let r=x({repo:n.project.repo}),t=l.join(r,"runs");await m.mkdir(t,{recursive:!0});let e=l.join(t,`${n.runId}.json`),a=l.join(t,`${n.runId}.md`),i={...n,artifacts:{jsonPath:e,reportPath:a}};return B.parse(i),await m.writeFile(e,`${JSON.stringify(i,null,2)}
|
|
64
|
+
`,"utf-8"),await m.writeFile(a,R(i),"utf-8"),await m.writeFile(l.join(r,"latest.json"),`${JSON.stringify(i,null,2)}
|
|
65
|
+
`,"utf-8"),i}o(je,"saveEvalRun");async function Ee(n,r){let t=x(await I(n)),e=l.join(t,"comparisons");await m.mkdir(e,{recursive:!0});let a=l.join(e,`${r.comparisonId}.json`),i=l.join(e,`${r.comparisonId}.md`),c={...r,artifacts:{jsonPath:a,reportPath:i}};return G.parse(c),await m.writeFile(a,`${JSON.stringify(c,null,2)}
|
|
66
|
+
`,"utf-8"),await m.writeFile(i,P(c),"utf-8"),await m.writeFile(l.join(t,"latest-comparison.json"),`${JSON.stringify(c,null,2)}
|
|
67
|
+
`,"utf-8"),c}o(Ee,"saveEvalComparison");function x(n){let r=n.repo.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown";return l.join(V(),"evals",r)}o(x,"evalProjectDir");async function D(n){try{return B.parse(JSON.parse(await m.readFile(n,"utf-8")))}catch{return null}}o(D,"readRunFile");async function Re(n){let r=await D(n);if(!r)throw new Error(`Invalid or missing eval run file: ${n}`);return r}o(Re,"readRequiredRunFile");async function $e(n){let r=await S(n);if(!r)throw new Error("No eval run found. Run `prjct eval run` first.");return r}o($e,"loadLatestRequired");async function I(n){let[r,t,e,a]=await Promise.all([$(n,["branch","--show-current"]),$(n,["rev-parse","HEAD"]),$(n,["config","--get","remote.origin.url"]),$(n,["status","--porcelain"])]),i=Se(e);return{repo:i??Pe(n),ownerRepo:i,branch:r||void 0,commit:t||void 0,dirty:a.trim().length>0}}o(I,"detectGit");async function $(n,r){try{let{stdout:t}=await M("git",r,{cwd:n});return String(t).trim()}catch{return""}}o($,"git");function Se(n){let t=n.trim().match(/github\.com[:/]([^/\s]+)\/([^/\s]+?)(?:\.git)?$/);if(t)return`${t[1]}/${t[2]}`}o(Se,"parseGitHubOwnerRepo");function Pe(n){return`local-${W.createHash("sha256").update(l.resolve(n)).digest("hex").slice(0,12)}`}o(Pe,"hashedRepo");function Ie(n){return`eval_${n.replace(/[-:.TZ]/g,"").slice(0,14)}_${W.randomBytes(4).toString("hex")}`}o(Ie,"runId");function Ce(n,r,t){let e=n.replace(/[-:.TZ]/g,"").slice(0,14),a=Z(r??"missing-baseline"),i=Z(t??"missing-candidate");return`comparison_${e}_${a}_to_${i}`}o(Ce,"comparisonId");function Z(n){return n.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"unknown"}o(Z,"slugPart");function ke(){return process.env.GITHUB_ACTIONS==="true"||process.env.CI==="true"?"ci":process.env.CODEX_SANDBOX||process.env.CLAUDECODE?"agent":"local"}o(ke,"detectSource");async function Oe(n){let r=await ne("gh",["api","user","--jq",".login"],n);if(r)return`github:${r}`;let t=await $(n,["config","user.email"]);return t?`git:${t}`:void 0}o(Oe,"detectRunnerUser");async function xe(){return ne("bun",["--version"],process.cwd())}o(xe,"detectBunVersion");async function ne(n,r,t){try{let{stdout:e}=await M(n,r,{cwd:t});return String(e).trim()||void 0}catch{return}}o(ne,"execFileMaybe");async function k(n){try{return await m.access(n),!0}catch{return!1}}o(k,"exists");async function Ae(n,r){let t=[],e=new Set([".git","node_modules","dist","build","coverage",".prjct","__tests__","__fixtures__","fixtures"]);async function a(i){if(t.length>=r)return;let c=await m.readdir(i,{withFileTypes:!0}).catch(()=>[]);for(let d of c){if(t.length>=r)break;if(e.has(d.name))continue;let f=l.join(i,d.name);d.isDirectory()?await a(f):d.isFile()&&!d.name.includes(".test.")&&!d.name.includes(".spec.")&&/\.(md|mdc|txt|toml|json|ya?ml|sh|ts|tsx|js|jsx)$/.test(d.name)&&t.push(l.relative(n,f))}}return o(a,"walk"),await a(n),t}o(Ae,"collectTextFiles");function Me(n){return n.includes("sync")?"Inspect sync incrementality and generated context freshness before shipping.":n.includes("cloud")?"Check cloud auth/link status and benchmark publisher setup.":n.includes("command")?"Audit user-facing command copy and generated templates for stale instructions.":"Open the latest eval report, inspect scenario metrics, and add a focused regression test."}o(Me,"regressionRecommendation");function te(n){let r=n??"cloud";if(r==="github")throw new Error("GitHub eval publishing was removed. Use `prjct eval publish --target cloud` after `prjct login` and `prjct cloud link`.");if(r!=="cloud")throw new Error(`Unsupported eval publish target: ${r}. Use --target cloud.`);return"cloud"}o(te,"normalizePublishTarget");async function re(n,r){let t=await N.readConfig(n);if(!t?.projectId)throw new Error("Cloud benchmark publish requires a prjct project. Run `prjct init` first.");if(r)return{projectId:t.projectId};if(!await C.hasAuth())throw new Error("Cloud benchmark publish requires authentication. Run `prjct login`, then `prjct cloud link`.");if(!t.cloud?.enabled)throw new Error("Cloud benchmark publish requires cloud to be active. Run `prjct cloud link`.");if(t.cloud.paused)throw new Error("Cloud sync is paused. Run `prjct cloud resume` before publishing benchmarks.");return{projectId:t.projectId}}o(re,"resolveBenchmarkProject");async function se(n,r,t,e,a){let c=`${await C.getApiUrl()}/benchmarks/evals`,d={projectId:n,...e},f=Buffer.byteLength(JSON.stringify(d),"utf-8");if(t)return{target:r,dryRun:t,...a,projectId:n,repo:e.repo,endpoint:c,payloadBytes:f};try{let h=await J.publishBenchmark(n,e);return{target:r,dryRun:t,...a,projectId:n,repo:e.repo,endpoint:c,payloadBytes:f,remoteId:h.benchmarkId,publishedAt:h.publishedAt??new Date().toISOString(),url:h.url}}catch(h){throw new Error(_e(h))}}o(se,"publishBenchmarkPayload");function _e(n){if(n instanceof Error)return n.message;if(n&&typeof n=="object"&&"message"in n){let r=n;return r.code==="PAYMENT_REQUIRED"?`${r.message} Run \`prjct cloud status\` for account details.`:r.message}return"Cloud benchmark publish failed."}o(_e,"cloudPublishErrorMessage");ue();var ae=class extends L{static{o(this,"EvalCommands")}async eval(r=null,t=process.cwd(),e={}){let[a="run"]=(r??"").trim().split(/\s+/).filter(Boolean);try{switch(a){case"run":return this.run(t,e);case"compare":return this.compare(t,e);case"report":return this.report(t,e);case"publish":return this.publish(t,e);default:return this.unknown(a,e)}}catch(i){let c=U(i);return e.md?console.log(g(y("Eval failed",c))):p.fail(c),{success:!1,error:c}}}async run(r,t){let e=await X(r,t);if(t.publish){let a=await T(r,{target:t.target,dryRun:t.dryRun,file:e.artifacts?.jsonPath});return t.json?console.log(JSON.stringify({run:e,publish:a},null,2)):t.md?console.log(g(R(e),y("Published",`Target: \`${a.target}\`
|
|
68
|
+
Project: \`${a.projectId}\`
|
|
69
|
+
URL: ${a.url??"-"}`))):p.done(`eval run ${e.runId} saved and published to ${a.target}`),{success:!0,runId:e.runId,score:e.summary.score,publish:a}}return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(R(e))):p.done(`eval run ${e.runId} saved \u2014 score ${e.summary.score}/100`),{success:!0,runId:e.runId,score:e.summary.score}}async compare(r,t){let e=await Y(r,t);if(t.publish){let a=await ee(r,e,{target:t.target,dryRun:t.dryRun});if(t.json)console.log(JSON.stringify({comparison:e,publish:a},null,2));else if(t.md)console.log(g(P(e),y("Published",`Target: \`${a.target}\`
|
|
70
|
+
Project: \`${a.projectId}\`
|
|
71
|
+
URL: ${a.url??"-"}`)));else{let i=e.summary.delta??"n/a";p.done(`eval comparison ${e.comparisonId} saved and published \u2014 delta ${i}`)}return{success:!0,comparisonId:e.comparisonId,publish:a,...e.summary}}if(t.json)console.log(JSON.stringify(e,null,2));else if(t.md)console.log(g(P(e)));else{let a=e.summary.delta??"n/a";p.done(`eval comparison complete \u2014 delta ${a}`)}return{success:!0,comparisonId:e.comparisonId,...e.summary}}async report(r,t){let e=await S(r);if(!e){let a="No eval run found. Run `prjct eval run` first.";return t.md?console.log(g(y("No eval report",a))):p.fail(a),{success:!1,error:a}}return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(R(e))):p.done(`latest eval ${e.runId} \u2014 score ${e.summary.score}/100`),{success:!0,runId:e.runId,score:e.summary.score}}async publish(r,t){let e=await T(r,t);return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(y(e.dryRun?"Eval publish dry run":"Eval published",`Target: \`${e.target}\`
|
|
72
|
+
Project: \`${e.projectId}\`
|
|
73
|
+
Repo: \`${e.repo}\`
|
|
74
|
+
Endpoint: \`${e.endpoint}\`
|
|
75
|
+
Payload: ${e.payloadBytes} bytes
|
|
76
|
+
URL: ${e.url??"-"}`))):p.done(e.dryRun?`eval publish dry run prepared cloud benchmark payload (${e.payloadBytes} bytes)`:`eval benchmark ${e.artifactId} published to cloud`),{success:!0,...e}}unknown(r,t){let e=`Unknown eval subcommand: ${r}. Use run, compare, report, publish.`;return t.md?console.log(g(y("Unknown eval subcommand",e))):p.fail(e),{success:!1,error:e}}};export{ae as EvalCommands};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-D62TAZG6.mjs";import"./chunk-3TRXQAU4.mjs";p();export{i as GitInfraError,c as PROC_ENVELOPE_MAX,a as execAsync,b as execFileAsync,g as exitCodeMeans,j as gitInfraErrorOf,n as gitStdout,f as isProcInfra,o as listChangedFiles,m as matchProc,k as procErrorOf,e as runGit,d as runProc,h as sanitizeProcEnvelope,l as throwProc};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{d as a,e as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j,n as k,o as l,p as m}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";m();export{b as batchProcess,j as dirExists,k as ensureDir,i as fileExists,l as listFiles,f as readExistingFileOrEmpty,e as readFile,c as readJson,a as walkDir,g as writeFile,h as writeFileAtomic,d as writeJson};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{d as a,e as b,f as c,g as d,h as e,i as f,j as g}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as MACHINE_TAG_KEYS,d as deriveTitle,c as flatDetail,e as formatMemoryDigestLine,g as formatMemoryMd,f as linkifyMemRefs,b as preventiveLabel};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c,d,e,f}from"./chunk-JGGQSMZC.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as ensureGeminiMcpServer,b as geminiHookMaps,a as getGeminiSettingsPath,d as installGeminiHooks,e as installGeminiSettings,f as uninstallGeminiSettings};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{e as m,p as d}from"./chunk-D62TAZG6.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";d();var g=5e3;async function i(t,e){let n=await m(e,{cwd:t,timeoutMs:g});if(n.ok)return n.stdout.trim()||void 0}o(i,"git");async function x(t){let[e,n,a,u]=await Promise.all([i(t,["rev-parse","--short","HEAD"]),i(t,["config","user.name"]),i(t,["diff","--name-only","HEAD"]),i(t,["show","--name-only","--pretty=format:","HEAD"])]),r=new Set;for(let f of[a,u])if(f)for(let c of f.split(`
|
|
8
|
+
`).map(l=>l.trim()).filter(Boolean))r.add(c);let s=[...r].slice(0,12);return{commit:e,author:n,files:s.length>0?s:void 0}}o(x,"deriveGitContext");export{x as deriveGitContext};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b}from"./chunk-O5N6XYPU.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-3TRXQAU4.mjs";export{a as getGitBranch,b as getModifiedFiles};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c}from"./chunk-HVXWQ2XZ.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as ensureGrokMcpServer,a as getGrokConfigTomlPath,c as grokHasPrjctMcpServer};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c}from"./chunk-O5VCBMEK.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as getGrokPluginRoot,c as grokPluginInstalled,b as installGrokPlugin};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c,d}from"./chunk-5TGZSK4C.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as buildGrokSkillContent,a as getGrokSkillInstallPath,b as getGrokSkillTemplate,d as installGrokSkill};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as h}from"./chunk-LGX2GM45.mjs";import{b as $}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as k}from"./chunk-5DZ2LTII.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import{e as g,f as p,g as u}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as y}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as s}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as w}from"./chunk-3TRXQAU4.mjs";var b=class extends k{static{w(this,"GuardCommands")}async guard(a=null,m=process.cwd(),r={}){if(r.diff)return this.guardDiff(r.diff,m,r);let n=(a??"").trim().split(/\s+/).filter(Boolean)[0];if(!n){let t="Usage: prjct guard <file> \u2014 surfaces preventive memory before you edit it. PR mode: prjct guard --diff <range> [--strict].";return r.md?console.log(`> ${t}`):s.fail(t),{success:!1,error:"Missing file argument"}}let o=await $(m,r);if(!o.ok)return o.result;let l=typeof r.limit=="number"&&r.limit>0?r.limit:3,c=(()=>{try{return y.recallForFile(o.value,n,l)}catch{return[]}})();h(o.value,m,c.map(t=>t.id));let i=n.split("/").pop()??n,{impactBlock:d,impactLine:e}=await import("./world-model-impact-FAGGNUGN.mjs").then(({breakImpact:t,formatImpactMd:f})=>{let v=t(o.value,[n],6);return{impactBlock:f(v),impactLine:v.line}}).catch(()=>({impactBlock:"",impactLine:""}));if(c.length===0){let t=`No preventive memory recorded against \`${i}\` \u2014 clear to edit.`;return r.md?console.log(d?`> ${t}
|
|
8
|
+
|
|
9
|
+
${d}`:`> ${t}`):(s.done(`No preventive memory for ${i} \u2014 clear to edit.`),e&&s.info(e)),{success:!0,file:n,hits:0,impact:e||void 0}}if(r.md){let t=[`# prjct: heads up before editing \`${i}\``,"","Preventive memory recorded against this file \u2014 check before you change it:",""];for(let f of c)t.push(`- **[${g(f)}] ${u(f)}** \u2014 ${p(f.content)} \`${f.id}\``);t.push("","> Surfaced as prevention. Apply if relevant; ignore if not."),d&&t.push("",d),console.log(t.join(`
|
|
10
|
+
`))}else{s.info(`\u26A0 ${c.length} preventive memory entr${c.length===1?"y":"ies"} for ${i}:`);for(let t of c)s.info(` \u2022 [${g(t)}] ${u(t)} \u2014 ${p(t.content,120)} (${t.id})`);e&&s.info(e)}return{success:!0,file:n,hits:c.length,impact:e||void 0}}async guardDiff(a,m,r){let n=await $(m,r);if(!n.ok)return n.result;let o=await(async()=>{try{let{execFileAsync:e}=await import("./exec-34V6SJYO.mjs");return{ok:!0,files:(await e("git",["diff","--name-only",a],{cwd:m,timeout:1e4})).stdout.split(`
|
|
11
|
+
`).filter(Boolean)}}catch(e){return{ok:!1,error:e}}})();if(!o.ok){let e=`Could not diff \`${a}\`: ${o.error instanceof Error?o.error.message.split(`
|
|
12
|
+
`)[0]:"git error"}`;return r.md?console.log(`> ${e}`):s.fail(e),{success:!1,error:"git diff failed"}}let{files:l}=o;if(l.length===0){let e=`No files changed in \`${a}\` \u2014 nothing to guard.`;return r.md?console.log(`> ${e}`):s.done(e),{success:!0,files:0,hits:0}}let c=typeof r.limit=="number"&&r.limit>0?r.limit:2,i=[],d=[];for(let e of l){let t=(()=>{try{return y.recallForFile(n.value,e,c,{preventiveOnly:!0})}catch{return[]}})();for(let f of t)i.push({file:e,entry:f}),d.push(f.id)}if(h(n.value,m,d),i.length===0){let e=`Swept ${l.length} changed file(s) in \`${a}\` \u2014 no known traps. Clear.`;return r.md?console.log(`> \u2705 ${e}`):s.done(e),{success:!0,files:l.length,hits:0}}if(r.md){let e=[`# prjct guard \u2014 ${i.length} known trap(s) in \`${a}\``,"",`Preventive memory matched ${new Set(i.map(t=>t.file)).size} of ${l.length} changed file(s):`,""];for(let t of i)e.push(`- \`${t.file}\` \u2014 [${g(t.entry)}] ${u(t.entry)} \u2014 ${p(t.entry.content,140)} (\`${t.entry.id}\`)`);e.push("","Resolve any id with `prjct search <id>`."),console.log(e.join(`
|
|
13
|
+
`))}else{s.info(`\u26A0 ${i.length} known trap(s) across ${l.length} changed file(s):`);for(let e of i)s.info(` \u2022 ${e.file} \u2014 ${u(e.entry)} (${e.entry.id})`)}return{success:!r.strict,...r.strict?{error:`${i.length} known trap(s) matched the diff`}:{},files:l.length,hits:i.length}}};export{b as GuardCommands};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c,d,e}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as requireActiveTask,b as requireProject,a as requireProjectId,e as requireTrustedMemoryContent,d as requireWorkflow};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b,c,d,e,f}from"./chunk-6XTLPAPZ.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{f as acceptHandoff,a as createHandoff,c as expireStaleHandoffs,b as getHandoff,d as listHandoffs,e as listPendingForAgent};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as j,b as I,g as k,h as S}from"./chunk-W23JLJJZ.mjs";import"./chunk-MR5XXHRK.mjs";import"./chunk-SRJEX6XF.mjs";import"./chunk-XBR63NJA.mjs";import"./chunk-EFSPBB4S.mjs";import"./chunk-7ZHWJSW5.mjs";import"./chunk-FOUBHU4X.mjs";import{a as $,b as R}from"./chunk-YOWW4LHK.mjs";import"./chunk-5OWPZWEU.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-JGGQSMZC.mjs";import"./chunk-BTSHD3XJ.mjs";import"./chunk-CXNVDJNN.mjs";import"./chunk-ROOCBUKH.mjs";import"./chunk-UX2ORID4.mjs";import"./chunk-3OWKIRK6.mjs";import"./chunk-C35JQUWD.mjs";import{a as y,b as g}from"./chunk-2JJM3YMW.mjs";import"./chunk-V6L5PLD7.mjs";import"./chunk-U55OPVYR.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-GTG67Z45.mjs";import"./chunk-4MR5XSLO.mjs";import"./chunk-LGX2GM45.mjs";import"./chunk-ZAUJWUUN.mjs";import"./chunk-V7VA4EQX.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as v}from"./chunk-5DZ2LTII.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-CA2VFWFP.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-ZBBNCCGV.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-YPLFWN62.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-MXJKULJY.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-MPU3VM6Z.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import{b as h}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as u}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-O5VCBMEK.mjs";import"./chunk-DZDEBDAB.mjs";import"./chunk-LFOQ7FCR.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-WTDUJB4I.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as d,g as N}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";import{existsSync as B}from"node:fs";import U from"node:path";function C(e){let r=e.activeCycle?`The flow you just performed: **${e.activeCycle}**.`:"The flow you just performed (read it from the sources below).",s=[e.hasGit?"- `git log --oneline -20` + `git diff` \u2014 the concrete edits you made.":null,"- `prjct work --md` \u2014 the work cycle + related context.",'- `prjct search "<topic>"` / `prjct context memory <topic>` \u2014 decisions/gotchas/learnings captured.'].filter(Boolean).join(`
|
|
8
|
+
`);return`${["# prjct harness \u2014 induction (learn from what you just did)","",r,"Read it from prjct (never assume \u2014 pull):",s,"","Then SYNTHESIZE the repeatable organs of the harness and PERSIST each through prjct (prjct owns the Body; you build + persist, it stores):","",'1. **Command / workflow** \u2014 the repeatable procedure. Register it: `prjct workflow create <name> "<what it does>"`, then add each step with `prjct workflow add "<status:<value>|script:<path>|git:commit>" before <task|ship|sync>`.','2. **Skill recipe** \u2014 the judgment/how-to that is NOT a fixed script. Capture it as durable knowledge: `prjct remember learning "<the recipe/heuristic>"` (and `prjct remember decision "<choice + why>"` for any fork resolved).','3. **Gates (Stop-Slop)** \u2014 what must be true before "done": add a blocking check with `prjct workflow gate ship "verify:auto"` (or `prjct workflow gate ship "<your test command>"`) so it runs every time.',"4. **Roster** \u2014 if the flow needed specialists, note which review lenses it raised (architecture + security/data/perf/design/strategic) so future runs compose them.","","Keep each organ MODEL-AGNOSTIC: name verbs and capabilities, never a specific model. Persist ONLY through prjct verbs \u2014 SQLite is the only surface."].join(`
|
|
9
|
+
`)}
|
|
10
|
+
`}i(C,"buildInductionDispatch");var p=[{name:"safe-agentic-workflow",description:"A cautious build\u2192review\u2192ship rig: intent brief, dynamic review specialists, and a verify gate before ship.",source:"https://github.com/safe-agentic-workflow",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 leader/implementer + review specialists composed per change."},{organ:"stop-slop",install:'prjct crew checkpoints set --content "<acceptance bar>" + `prjct workflow gate ship "verify:auto"`.'},{organ:"knowledge-base",install:`prjct remember framework "<the workflow's operating principles>".`}]},{name:"solo-sovereign",description:"A single-agent rig for non-Claude / local models: emulated crew (one agent plays the roles) + a KB + verify gate. Maximum portability.",source:"built-in",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 on a non-Claude rig this writes the emulated CREW.md protocol."},{organ:"knowledge-base",install:'prjct remember identity/voice/glossary "<who you are + terms>".'},{organ:"stop-slop",install:'prjct workflow gate ship "verify:auto".'}]},{name:"grok-build",description:"Grok as Brain, prjct as Body: multi-host skill/MCP projection, plan-mode approval gate, crew checkpoints, and SQLite memory (Grok memory is experimental). Steal patterns from the open Grok Build harness \u2014 not the Rust agent loop.",source:"https://github.com/xai-org/grok-build",organs:[{organ:"skills-commands",install:"prjct install \u2014 native ~/.grok/config.toml MCP + ~/.grok/skills/prjct + ~/.grok/plugins/prjct; hooks still via Claude compat. Keep AGENTS.md + MCP prjct_* as the portable contract."},{organ:"knowledge-base",install:"prjct remember decision/learning/gotcha \u2014 prjct SQLite is the durable memory plane; do not rely on Grok experimental memory alone."},{organ:"agent-catalog",install:"prjct crew install + `prjct plan` ceremony (draft read-only until `prjct plan approve`) before implementer edits on ambiguous work."},{organ:"stop-slop",install:'prjct crew checkpoints set + `prjct workflow gate ship "verify:auto"`; map delivery-geometry tier to host permission mode advice (default/dontAsk/acceptEdits) without owning OS sandbox.'}]}];function O(e){return p.find(r=>r.name===e.trim().toLowerCase())}i(O,"findRig");function M(){return`${["# prjct harness \u2014 rigs you can steal","","Adopt one as your Body's base: `prjct harness use <name>`.","",...p.map(e=>`- **${e.name}** \u2014 ${e.description}`)].join(`
|
|
11
|
+
`)}
|
|
12
|
+
`}i(M,"renderRigList");function x(e){return`${[`# prjct harness \u2014 adopt rig: ${e.name}`,"",e.description,`Source: ${e.source}`,"","Install its organs into prjct (owned in SQLite, then projected to your host):","",...e.organs.map(r=>`- **${r.organ}** \u2014 ${r.install}`),"","After adopting, the rig is YOURS: model-agnostic, owned in prjct, re-projected when you swap the Brain."].join(`
|
|
13
|
+
`)}
|
|
14
|
+
`}i(x,"renderRigAdoption");var P=["24h","7d","14d","30d"],E={"24h":864e5,"7d":7*864e5,"14d":14*864e5,"30d":30*864e5};function T(e){let r=e??"7d";if(P.some(s=>s===r))return r;throw new Error(`Invalid instruction window: ${r}. Use ${P.join("|")}.`)}i(T,"parseInstructionReportWindow");function F(e,r,s={}){let n=s.now??new Date,t=new Date(n.getTime()-E[r]),o=g.getWindowStats(e,t),a=o.total>0?"failures-observed":o.observedSessions>0?"zero-failures":"no-observability";return{window:r,since:t.toISOString(),state:a,total:o.total,attributed:o.attributed,attributionRate:o.total>0?o.attributed/o.total:0,open:o.open,resolved:o.resolved,falsePositive:o.falsePositive,falseTriggerRate:o.total>0?o.falsePositive/o.total:0,observedSessions:o.observedSessions,attributedSessions:o.attributedSessions,sessionAttributionRate:o.observedSessions>0?o.attributedSessions/o.observedSessions:0,legacyUnattributedInputs:o.legacyUnattributedInputs,guidanceActivations:o.guidanceActivations,groups:o.groups,unresolved:o.unresolved}}i(F,"buildInstructionFailureReport");var f=i(e=>`${(e*100).toFixed(1)}%`,"pct");function _(e){let r=e.state==="no-observability"?"No observed sessions in this window; zero failures would not be meaningful yet.":e.state==="zero-failures"?`Observed ${e.observedSessions} session(s) and found 0 instruction failures.`:`Found ${e.total} instruction failure(s) across ${e.observedSessions} observed session(s).`,s=e.groups.length===0?"_No grouped failures._":["| Runtime | Model | Category | Total | Open | Resolved | False positive |","|---|---|---|---:|---:|---:|---:|",...e.groups.map(t=>`| ${t.runtime} | ${t.model} | ${t.category} | ${t.total} | ${t.open} | ${t.resolved} | ${t.falsePositive} |`)].join(`
|
|
15
|
+
`),n=e.unresolved.length===0?"_No unresolved cases._":e.unresolved.map(t=>`- \`${t.id}\` ${t.runtime}/${t.model} \xB7 ${t.category}${t.relatedRuleId?` \xB7 rule \`${t.relatedRuleId}\``:""}: ${t.observedBehavior}`).join(`
|
|
16
|
+
`);return`# Instruction guidance report (${e.window})
|
|
17
|
+
|
|
18
|
+
${r}
|
|
19
|
+
|
|
20
|
+
- Total: ${e.total}
|
|
21
|
+
- Attributed: ${e.attributed} (${f(e.attributionRate)})
|
|
22
|
+
- Session attribution: ${e.attributedSessions}/${e.observedSessions} (${f(e.sessionAttributionRate)})
|
|
23
|
+
- Open: ${e.open}
|
|
24
|
+
- Resolved: ${e.resolved}
|
|
25
|
+
- False positive: ${e.falsePositive}
|
|
26
|
+
- Guidance activations: ${e.guidanceActivations}
|
|
27
|
+
- False-trigger rate: ${f(e.falseTriggerRate)}
|
|
28
|
+
- Legacy unattributed inputs: ${e.legacyUnattributedInputs}
|
|
29
|
+
|
|
30
|
+
## Groups
|
|
31
|
+
|
|
32
|
+
${s}
|
|
33
|
+
|
|
34
|
+
## Open cases
|
|
35
|
+
|
|
36
|
+
${n}`}i(_,"renderInstructionFailureReportMd");N();var D=class extends v{static{i(this,"HarnessCommands")}async instructionDisposition(r,s,n=process.cwd()){try{if(!r||!s)throw new Error("Usage: prjct harness instructions set <id> <open|resolved|false-positive>.");let t=y.parse(s==="false-positive"?"false_positive":s),o=await u.getProjectId(n);return o?g.setDisposition(o,r,t)?(console.log(`Instruction failure ${r}: ${t.replace("_","-")}`),{success:!0,id:r,disposition:t}):{success:!1,error:`Instruction failure not found: ${r}`}:{success:!1,error:"No prjct project found in the current directory."}}catch(t){return{success:!1,error:d(t)}}}async instructions(r=null,s=process.cwd(),n={}){try{let t=T(r),o=await u.getProjectId(s);if(!o)return{success:!1,error:"No prjct project found in the current directory."};let a=F(o,t);return n.md?console.log(_(a)):console.log(`Instruction failures (${t}): ${a.total}; attributed ${a.attributed} (${(a.attributionRate*100).toFixed(1)}%); open ${a.open}; false-trigger ${(a.falseTriggerRate*100).toFixed(1)}%`),{success:!0,...a}}catch(t){return{success:!1,error:d(t)}}}async score(r=process.cwd(),s={}){try{let n=await $(r),t=j(),o=k(),{outcomesMd:a,outcomesLine:w,weakLine:m}=await(async()=>{try{let c=await u.getProjectId(r);if(!c)return{outcomesMd:null,outcomesLine:null,weakLine:null};let{buildDynastyOutcomes:l,renderDynastyOutcomesMd:L}=await import("./dynasty-outcomes-KDWIEA4Y.mjs"),b=l(c),A=await u.readConfig(r),{effectiveWeakModelMode:W,weakModelOneLiner:G}=await import("./weak-model-mode-LOAPFJPQ.mjs");return{outcomesMd:L(b),outcomesLine:b.line,weakLine:W(A)==="on"?G():null}}catch{return{outcomesMd:null,outcomesLine:null,weakLine:null}}})();if(s.md){let c=I(t,{coverageMd:R(n),deltaMd:S(o),outcomesMd:a??void 0}),l=[m?`## Weak-model mode
|
|
37
|
+
|
|
38
|
+
${m}`:""].filter(Boolean).join(`
|
|
39
|
+
|
|
40
|
+
`);console.log(l?`${c}
|
|
41
|
+
|
|
42
|
+
${l}
|
|
43
|
+
`:c)}else{console.log(`Harness grade: ${t.grade}/5${t.programDone?" (done)":""}`),console.log(t.summary);for(let c of t.criteria){let l=c.status==="green"?"\u2713":c.status==="amber"?"\u25B3":"\u2717";console.log(` ${l} ${c.name}: ${c.score} \u2014 ${c.measured}`)}console.log(o.line),console.log(`Organic board: ${n.liveCount}/${n.detectedCount} live (${n.organicPct}%) \u2014 advisory`),w&&console.log(w),m&&console.log(m)}return{success:!0,grade:t.grade,programDone:t.programDone,criteria:t.criteria,organicPct:n.organicPct,liveRuntimes:n.liveCount,harnessDeltaPass:o.allGreen,intentDeltaPp:o.intentDeltaPp}}catch(n){return{success:!1,error:d(n)}}}async learnFrom(r=process.cwd(),s={}){try{let n=await u.getProjectId(r).then(o=>o?h.getCurrentTask(o):null).then(o=>o?.description??null).catch(()=>null),t=B(U.join(r,".git"));return console.log(C({activeCycle:n,hasGit:t})),{success:!0}}catch(n){return{success:!1,error:d(n)}}}async list(r={}){return console.log(M()),{success:!0}}async use(r,s=process.cwd(),n={}){if(!r)return console.error(`Usage: prjct harness use <rig>. Available: ${p.map(o=>o.name).join(", ")}.`),{success:!1,error:"missing rig name"};let t=O(r);return t?(console.log(x(t)),{success:!0}):(console.error(`Unknown rig: ${r}. Available: ${p.map(o=>o.name).join(", ")}.`),{success:!1,error:`unknown rig: ${r}`})}};export{D as HarnessCommands};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as M}from"./chunk-5DZ2LTII.mjs";import{e as h}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as p,p as $}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import{f,l as g,p as D}from"./chunk-HYIT7MF5.mjs";import{e as d,g as k}from"./chunk-225DWS4D.mjs";import{a}from"./chunk-3TRXQAU4.mjs";k();$();D();import w from"node:path";var N=[{name:"typecheck",scriptName:"typecheck",description:"TypeScript types",weight:25},{name:"lint",scriptName:"lint",description:"Lint rules",weight:20},{name:"tests",scriptName:"test",description:"Test suite",weight:35},{name:"dead-code",scriptName:"knip",description:"Dead-code scan",weight:20}],y=class extends M{static{a(this,"HealthCommands")}async health(s=null,n=process.cwd(),t={}){try{let e=await this.ensureProjectInit(n);if(!e.success)return e;let o=await T(n),r=[];for(let u of o)r.push(await b(n,u));let c=E(r);return t.md?console.log(A(c,r)):console.log(x(c,r)),{success:r.every(u=>u.status!=="fail"),score:c,results:r.length}}catch(e){let o=d(e);return h(o)}}};async function T(i){let s=w.join(i,"package.json");if(!await g(s))return[];let t=(await f(s,null))?.scripts??{};return N.filter(e=>!!t[e.scriptName]).map(e=>({...e,command:t[e.scriptName]??null}))}a(T,"detectDimensions");var _=300*1e3;function R(){let i=process.env.PRJCT_HEALTH_DIM_TIMEOUT_MS,s=i?Number(i):Number.NaN;return Number.isFinite(s)&&s>0?s:_}a(R,"dimensionTimeoutMs");async function b(i,s){if(!s.command)return{dimension:s,status:"skipped",durationMs:0};let n=Date.now(),t=R(),e=w.join(i,"node_modules",".bin"),o={...process.env,PATH:`${e}:${process.env.PATH??""}`};try{return await p(s.command,{cwd:i,timeout:t,maxBuffer:16*1024*1024,env:o}),{dimension:s,status:"pass",durationMs:Date.now()-n}}catch(r){let c=r;if(c.killed)return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:`timed out after ${(t/1e3).toFixed(0)}s (raise via PRJCT_HEALTH_DIM_TIMEOUT_MS)`};let l=c.stderr??"",u=c.stdout??"",H=`${l}
|
|
8
|
+
${u}`.split(`
|
|
9
|
+
`).map(m=>m.trim()).find(m=>m.length>0);return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:H??d(r)}}}a(b,"runDimension");function E(i){if(i.length===0)return 0;let{pts:s,denom:n}=i.reduce((t,e)=>e.status==="skipped"?t:{pts:t.pts+(e.status==="pass"?e.dimension.weight:0),denom:t.denom+e.dimension.weight},{pts:0,denom:0});return n===0?0:Math.round(s/n*100)}a(E,"computeScore");function I(i){return i==="pass"?"\u2713":i==="fail"?"\u2717":"\xB7"}a(I,"statusIcon");function x(i,s){if(s.length===0)return"health: no quality dimensions detected (add typecheck/lint/test/knip scripts to package.json)";let n=[];n.push(`health: ${i}/100`);for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?` \u2014 ${t.diagnostic.slice(0,80)}`:"";n.push(` ${I(t.status)} ${t.dimension.name.padEnd(10)} ${e}${o}`)}return n.join(`
|
|
10
|
+
`)}a(x,"formatText");function A(i,s){if(s.length===0)return"## Health\n\n_No quality dimensions detected. Add `typecheck`, `lint`, `test`, or `knip` scripts to `package.json`._\n";let n=[];n.push(`## Health \u2014 ${i}/100`),n.push(""),n.push("| Dimension | Status | Duration | Notes |"),n.push("|---|---|---|---|");for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?t.diagnostic.slice(0,100).replaceAll("|","\\|"):"";n.push(`| ${t.dimension.name} | ${t.status} | ${e} | ${o} |`)}return n.join(`
|
|
11
|
+
`)}a(A,"formatMarkdown");export{y as HealthCommands};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as u,b as i}from"./chunk-76YMLNLF.mjs";import{d as l,g as d}from"./chunk-XWLTEAGN.mjs";import"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";import n from"chalk";d();function c(){return i.filter(e=>!!e.usage?.terminal&&(e.routingMode==="bin-only"||!e.usage?.claude)&&e.surface!=="legacy"&&e.surface!=="internal")}r(c,"terminalCommands");var f=[{flag:"-q, --quiet",description:"Suppress all output (errors to stderr only)"},{flag:"-v, --version",description:"Show version and provider status"},{flag:"-h, --help",description:"Show this help message"}];function g(){let e=[];e.push(""),e.push(`${n.cyan.bold("prjct")} v${l} - The agentic harness for AI coding agents`),e.push(n.dim("Intent \u2192 context \u2192 execution \u2192 learning \u2192 performance improvement.")),e.push(""),e.push(n.bold("QUICK START")),e.push(n.dim("\u2500".repeat(60))),e.push(` ${n.green("1.")} prjct start ${n.dim("# Configure AI providers")}`),e.push(` ${n.green("2.")} cd my-project && prjct init`),e.push(` ${n.green("3.")} Open in Claude Code / Gemini CLI / Cursor`),e.push(` ${n.green("4.")} p. work "improve auth" ${n.dim("# Start a work cycle")}`),e.push(n.dim(' p. = the in-agent command router; from a shell use `prjct work "\u2026"` instead')),e.push(""),e.push(n.bold("TERMINAL COMMANDS")),e.push(n.dim("\u2500".repeat(60)));for(let t of c()){let o=`prjct ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}e.push(""),e.push(`${n.bold("AI AGENT COMMANDS")} ${n.dim("(inside Claude/Gemini/Cursor)")}`),e.push(n.dim("\u2500".repeat(60))),e.push(` ${"Command".padEnd(22)} Description`),e.push(` ${n.dim("\u2500".repeat(56))}`);let s=i.filter(t=>t.surface==="ai-agile"&&t.usage?.claude);for(let t of s.slice(0,10)){let o=`p. ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}s.length>10&&e.push(` ${n.dim(`... and ${s.length-10} more (run 'prjct help commands')`)}`),e.push(n.dim(' These also run from the terminal (`prjct work "\u2026"`) \u2014 see prjct help <command>.')),e.push(""),e.push(n.bold("FLAGS")),e.push(n.dim("\u2500".repeat(60)));for(let t of f)e.push(` ${t.flag.padEnd(22)} ${t.description}`);return e.push(""),e.push(n.dim(" Short flags are per-command: -v is --version globally but verbose in `prjct watch`;")),e.push(n.dim(" -f is force (stop/uninstall), follow (daemon logs) or foreground (daemon start);")),e.push(n.dim(" -n is dry-run (uninstall) but line count (daemon logs).")),e.push(""),e.push(n.bold("MORE INFO")),e.push(n.dim("\u2500".repeat(60))),e.push(` Documentation: ${n.cyan("https://prjct.app")}`),e.push(` GitHub: ${n.cyan("https://github.com/prjct-app/cli")}`),e.push(" Per-command: prjct help <command> (or: prjct <command> --help)"),e.push(""),e.join(`
|
|
8
|
+
`)}r(g,"formatMainHelp");function $(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r($,"manifestHelpTitle");function C(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r(C,"manifestListLabel");function b(e){let s=[];if(s.push(""),s.push(`${n.cyan.bold($(e))} - ${e.description}`),s.push(""),s.push(n.bold("USAGE")),e.usage?.claude&&s.push(` Claude/Gemini: ${e.usage.claude}`),e.usage?.terminal&&s.push(` Terminal: ${e.usage.terminal}`),s.push(""),e.params&&(s.push(n.bold("PARAMETERS")),s.push(` ${e.params}`),s.push("")),e.features&&e.features.length>0){s.push(n.bold("FEATURES"));for(let o of e.features)s.push(` \u2022 ${o}`);s.push("")}e.blockingRules&&(s.push(n.bold("REQUIREMENTS")),s.push(` ${n.yellow("\u26A0")} ${e.blockingRules.check}`),s.push(""));let t=u[e.group];return t&&(s.push(n.dim(`Category: ${t.title}`)),e.isOptional&&s.push(n.dim("This is an optional command.")),s.push("")),s.join(`
|
|
9
|
+
`)}r(b,"formatManifestCommandHelp");function y(e){let s=i.find(t=>t.name===e);return s?b(s):`
|
|
10
|
+
${n.yellow(`Command '${e}' not found.`)}
|
|
11
|
+
|
|
12
|
+
Run 'prjct help' to see all available commands.
|
|
13
|
+
`}r(y,"formatCommandHelp");function j(){let e=[];e.push(""),e.push(n.cyan.bold("Harness Commands")),e.push("");let s=Object.entries(u).sort((t,o)=>t[1].order-o[1].order);for(let[t,o]of s){let p=i.filter(a=>a.group===t&&a.surface!=="legacy"&&a.surface!=="internal");if(p.length!==0){e.push(`${n.bold(o.title)} ${n.dim(`(${p.length} commands)`)}`),e.push(n.dim(o.description)),e.push("");for(let a of p){let m=C(a).padEnd(18),h=a.description.length>45?`${a.description.slice(0,42)}...`:a.description;e.push(` ${m} ${h}`)}e.push("")}}return e.push(n.dim("Run 'prjct help <command>' for detailed help on a specific command.")),e.push(""),e.join(`
|
|
14
|
+
`)}r(j,"formatCommandList");function S(e){return e?e==="commands"||e==="all"?j():y(e):g()}r(S,"getHelp");export{S as getHelp};
|