prjct-cli 3.95.0 → 3.97.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-HCP5FF77.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-AVSX6SLY.mjs +7 -0
- package/dist/bin/core-chunks/agents-OAQXBGH3.mjs +10 -0
- package/dist/bin/core-chunks/ai-provider-RVXK7D7R.mjs +7 -0
- package/dist/bin/core-chunks/analysis-3A7ODSSI.mjs +41 -0
- package/dist/bin/core-chunks/auth-config-KWLVKHCY.mjs +7 -0
- package/dist/bin/core-chunks/auto-flush-EWSVMKQN.mjs +7 -0
- package/dist/bin/core-chunks/auto-updater-PKYQRBGQ.mjs +8 -0
- package/dist/bin/core-chunks/bin-commands-LLHG2NSY.mjs +21 -0
- package/dist/bin/core-chunks/capture-7LQ52T6L.mjs +7 -0
- package/dist/bin/core-chunks/capture-gate-M4HM7WAI.mjs +7 -0
- package/dist/bin/core-chunks/ceremonies-4OZ3FKRE.mjs +19 -0
- package/dist/bin/core-chunks/changelog-CUNVCEL5.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-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-2ZPM4Z6W.mjs +17 -0
- package/dist/bin/core-chunks/chunk-3FXNIJCS.mjs +8 -0
- package/dist/bin/core-chunks/chunk-3JD6KRNJ.mjs +8 -0
- package/dist/bin/core-chunks/chunk-3TRXQAU4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-3USVY66O.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-53ZPEZLU.mjs +8 -0
- package/dist/bin/core-chunks/chunk-56FW4P6U.mjs +10 -0
- package/dist/bin/core-chunks/chunk-5EF5EOCL.mjs +7 -0
- package/dist/bin/core-chunks/chunk-5MN22JFI.mjs +19 -0
- package/dist/bin/core-chunks/chunk-5ONMON5L.mjs +13 -0
- package/dist/bin/core-chunks/chunk-5UUITMRX.mjs +9 -0
- package/dist/bin/core-chunks/chunk-5YLI5V3Q.mjs +8 -0
- package/dist/bin/core-chunks/chunk-5YSPND5J.mjs +9 -0
- package/dist/bin/core-chunks/chunk-623SNKDH.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6AFXUX2M.mjs +9 -0
- package/dist/bin/core-chunks/chunk-6FFOWWH2.mjs +17 -0
- package/dist/bin/core-chunks/chunk-6FUCOGOW.mjs +7 -0
- package/dist/bin/core-chunks/chunk-6OYLZ4NM.mjs +10 -0
- package/dist/bin/core-chunks/chunk-6P4GMVUZ.mjs +18 -0
- package/dist/bin/core-chunks/chunk-6RT2P22O.mjs +7 -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-7CI4AMVO.mjs +7 -0
- package/dist/bin/core-chunks/chunk-7QMBIMEX.mjs +64 -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-AJTBFIH2.mjs +9 -0
- package/dist/bin/core-chunks/chunk-AJXELVNH.mjs +7 -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-B7AQHL7B.mjs +7 -0
- package/dist/bin/core-chunks/chunk-BQKDJ3U6.mjs +8 -0
- package/dist/bin/core-chunks/chunk-BSR3XUBD.mjs +24 -0
- package/dist/bin/core-chunks/chunk-BTCCUMKI.mjs +12 -0
- package/dist/bin/core-chunks/chunk-BTSHD3XJ.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-CDLZLTRY.mjs +10 -0
- package/dist/bin/core-chunks/chunk-CEOTHJIY.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-CNWEQUB7.mjs +7 -0
- package/dist/bin/core-chunks/chunk-CUIB6CTG.mjs +20 -0
- package/dist/bin/core-chunks/chunk-CWLGRKA7.mjs +6 -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-DCVPNFS4.mjs +8 -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-DN46DLU3.mjs +10 -0
- package/dist/bin/core-chunks/chunk-DOJPSIMG.mjs +7 -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-FOWTB762.mjs +7 -0
- package/dist/bin/core-chunks/chunk-GDLAQV3Q.mjs +14 -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-GOIBJ7PV.mjs +7 -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-HCPQZRR3.mjs +7 -0
- package/dist/bin/core-chunks/chunk-HEXSVBUP.mjs +8 -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-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-IFLBZKKK.mjs +14 -0
- package/dist/bin/core-chunks/chunk-IMQCXC3R.mjs +30 -0
- package/dist/bin/core-chunks/chunk-INJ5WT2D.mjs +7 -0
- package/dist/bin/core-chunks/chunk-INM5COWM.mjs +7 -0
- package/dist/bin/core-chunks/chunk-IOFCSTGM.mjs +7 -0
- package/dist/bin/core-chunks/chunk-IVGWOY3U.mjs +8 -0
- package/dist/bin/core-chunks/chunk-J7T5IEFJ.mjs +15 -0
- package/dist/bin/core-chunks/chunk-JCWA7NLM.mjs +7 -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-K25HGTC3.mjs +10 -0
- package/dist/bin/core-chunks/chunk-KIRU4QFX.mjs +7 -0
- package/dist/bin/core-chunks/chunk-KKIJAEYU.mjs +7 -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-KWC2PCPC.mjs +10 -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-LZC6NGB6.mjs +50 -0
- package/dist/bin/core-chunks/chunk-MCY7OXED.mjs +10 -0
- package/dist/bin/core-chunks/chunk-MDONTD7O.mjs +21 -0
- package/dist/bin/core-chunks/chunk-MG3YN3AI.mjs +7 -0
- package/dist/bin/core-chunks/chunk-MR5XXHRK.mjs +8 -0
- package/dist/bin/core-chunks/chunk-MTDCRYLP.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-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-OIE3AKKO.mjs +7 -0
- package/dist/bin/core-chunks/chunk-OYXQRBVM.mjs +10 -0
- package/dist/bin/core-chunks/chunk-P2KU4FFA.mjs +11 -0
- package/dist/bin/core-chunks/chunk-P53YMOKR.mjs +7 -0
- package/dist/bin/core-chunks/chunk-PIA26GWG.mjs +7 -0
- package/dist/bin/core-chunks/chunk-PPERWRFS.mjs +13 -0
- package/dist/bin/core-chunks/chunk-PPSVWUXC.mjs +15 -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-QAIEAOJF.mjs +7 -0
- package/dist/bin/core-chunks/chunk-QLMZW4K7.mjs +7 -0
- package/dist/bin/core-chunks/chunk-QZ7T2EYR.mjs +25 -0
- package/dist/bin/core-chunks/chunk-R7LLMJDP.mjs +7 -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-RXXXA7Z6.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-TDTPDVUM.mjs +8 -0
- package/dist/bin/core-chunks/chunk-TGNZI4KF.mjs +28 -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-TTN2CFZC.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-UE3XKXWM.mjs +7 -0
- package/dist/bin/core-chunks/chunk-UHXV7MDW.mjs +12 -0
- package/dist/bin/core-chunks/chunk-UNNY2IWZ.mjs +9 -0
- package/dist/bin/core-chunks/chunk-UT425KVX.mjs +10 -0
- package/dist/bin/core-chunks/chunk-UYMZ3NAF.mjs +8 -0
- package/dist/bin/core-chunks/chunk-V3Y3G2DE.mjs +8 -0
- package/dist/bin/core-chunks/chunk-V5VCXMKO.mjs +52 -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-VDXTMAMO.mjs +7 -0
- package/dist/bin/core-chunks/chunk-VILH3VYH.mjs +103 -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-WGDE3L33.mjs +7 -0
- package/dist/bin/core-chunks/chunk-WP5IU4W4.mjs +7 -0
- package/dist/bin/core-chunks/chunk-WSVMQYYU.mjs +12 -0
- package/dist/bin/core-chunks/chunk-WTDUJB4I.mjs +8 -0
- package/dist/bin/core-chunks/chunk-WZXUFSVT.mjs +25 -0
- package/dist/bin/core-chunks/chunk-X35YYOFE.mjs +18 -0
- package/dist/bin/core-chunks/chunk-X4FR5S7E.mjs +9 -0
- package/dist/bin/core-chunks/chunk-XC6YAP36.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XLFEWZRA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XPRLQIVQ.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XSZG3CBO.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XU3BQPBU.mjs +7 -0
- package/dist/bin/core-chunks/chunk-XYDLXF5A.mjs +8 -0
- package/dist/bin/core-chunks/chunk-Y5SEUYET.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-YQ6HM3YO.mjs +10 -0
- package/dist/bin/core-chunks/chunk-YZEO5DZA.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZBBNCCGV.mjs +12 -0
- package/dist/bin/core-chunks/chunk-ZHTYSYZC.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZK7BMUMR.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZKJZDOPT.mjs +14 -0
- package/dist/bin/core-chunks/chunk-ZQHSJ6FF.mjs +20 -0
- package/dist/bin/core-chunks/chunk-ZS7XJUPE.mjs +7 -0
- package/dist/bin/core-chunks/chunk-ZXTJLMVZ.mjs +7 -0
- package/dist/bin/core-chunks/cleanup-installs-WHXUGAHM.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-FFUJZLDV.mjs +14 -0
- package/dist/bin/core-chunks/code-SU7GCPH6.mjs +12 -0
- package/dist/bin/core-chunks/code-graph-cloud-G3WQBICY.mjs +7 -0
- package/dist/bin/core-chunks/codex-hooks-GOLMCL2Q.mjs +7 -0
- package/dist/bin/core-chunks/codex-mcp-K4X2UIQF.mjs +7 -0
- package/dist/bin/core-chunks/codex-skill-3HNVU4T4.mjs +7 -0
- package/dist/bin/core-chunks/command-installer-XIQK2G6W.mjs +7 -0
- package/dist/bin/core-chunks/config-W3RHV3GK.mjs +8 -0
- package/dist/bin/core-chunks/config-manager-QVFHXIKI.mjs +7 -0
- package/dist/bin/core-chunks/content-bound-stamp-2PJNI4JC.mjs +7 -0
- package/dist/bin/core-chunks/context-4KGTUAC4.mjs +38 -0
- package/dist/bin/core-chunks/context-DDHC7VIC.mjs +10 -0
- package/dist/bin/core-chunks/context-checkpoint-4CEUPEVG.mjs +27 -0
- package/dist/bin/core-chunks/context-pressure-5URQVNBC.mjs +7 -0
- package/dist/bin/core-chunks/context-tiers-4S6H22NP.mjs +7 -0
- package/dist/bin/core-chunks/context7-service-AZWDYK5Z.mjs +7 -0
- package/dist/bin/core-chunks/core-PR5WEQCS.mjs +70 -0
- package/dist/bin/core-chunks/crew-JQCG6NS3.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-ODKZVSPB.mjs +7 -0
- package/dist/bin/core-chunks/cycle-budget-card-H37XRAIX.mjs +7 -0
- package/dist/bin/core-chunks/daemon-2NQTBFVR.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-MRPBWL2K.mjs +7 -0
- package/dist/bin/core-chunks/discuss-lock-CWXKBBYJ.mjs +7 -0
- package/dist/bin/core-chunks/distill-MLDZG5RA.mjs +7 -0
- package/dist/bin/core-chunks/doctor-heal-ZUZ2RHGY.mjs +7 -0
- package/dist/bin/core-chunks/doctor-service-WXLB2FEE.mjs +8 -0
- package/dist/bin/core-chunks/drift-refresh-XPJAO2B3.mjs +7 -0
- package/dist/bin/core-chunks/dynasty-outcomes-H2O546OL.mjs +11 -0
- package/dist/bin/core-chunks/editors-config-ELAQA6RV.mjs +7 -0
- package/dist/bin/core-chunks/embeddings-7A5Z5I67.mjs +7 -0
- package/dist/bin/core-chunks/enriched-recall-YXK7EIKH.mjs +7 -0
- package/dist/bin/core-chunks/eval-4YFUBFLV.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-5V6GF6JJ.mjs +7 -0
- package/dist/bin/core-chunks/gemini-settings-ZTU3VQU3.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-F3SRFMCW.mjs +7 -0
- package/dist/bin/core-chunks/grok-plugin-4CE2WUYI.mjs +7 -0
- package/dist/bin/core-chunks/grok-skill-GLSBOOKW.mjs +7 -0
- package/dist/bin/core-chunks/guard-FJBJ6IAE.mjs +13 -0
- package/dist/bin/core-chunks/guards-LFUFKVVH.mjs +7 -0
- package/dist/bin/core-chunks/handoff-storage-NGUA4Y2L.mjs +7 -0
- package/dist/bin/core-chunks/harness-FN3HASSA.mjs +43 -0
- package/dist/bin/core-chunks/health-W2VWME7Z.mjs +11 -0
- package/dist/bin/core-chunks/help-I37I3V2R.mjs +14 -0
- package/dist/bin/core-chunks/hooks-service-C2P5DRCH.mjs +91 -0
- package/dist/bin/core-chunks/infer-memory-file-ATP7PSAQ.mjs +7 -0
- package/dist/bin/core-chunks/install-XP4S6HWQ.mjs +9 -0
- package/dist/bin/core-chunks/judgment-GJE332LF.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-WT4EMCAV.mjs +7 -0
- package/dist/bin/core-chunks/kimi-hooks-2UEUIKXV.mjs +7 -0
- package/dist/bin/core-chunks/kimi-mcp-DJCXZ2JY.mjs +7 -0
- package/dist/bin/core-chunks/land-cue-5USQ64MS.mjs +8 -0
- package/dist/bin/core-chunks/land-rho-ISNVEPVC.mjs +8 -0
- package/dist/bin/core-chunks/land-synthesis-CHARJMUP.mjs +7 -0
- package/dist/bin/core-chunks/lean-L53CKZNH.mjs +34 -0
- package/dist/bin/core-chunks/legacy-crew-sweep-2TLKJTHI.mjs +23 -0
- package/dist/bin/core-chunks/living-context-contract-HZIVBMXX.mjs +7 -0
- package/dist/bin/core-chunks/llm-XMH7WTHV.mjs +18 -0
- package/dist/bin/core-chunks/mcp-FLVIZBV2.mjs +17 -0
- package/dist/bin/core-chunks/memory-dream-EJWI4FJO.mjs +14 -0
- package/dist/bin/core-chunks/memory-export-27HTNNFI.mjs +13 -0
- package/dist/bin/core-chunks/memory-index-BRZDZ2BY.mjs +7 -0
- package/dist/bin/core-chunks/notification-KJ4FQJAW.mjs +7 -0
- package/dist/bin/core-chunks/notify-76B7AICZ.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-5YSIYDI3.mjs +7 -0
- package/dist/bin/core-chunks/output-D27IOQXR.mjs +7 -0
- package/dist/bin/core-chunks/pack-integrity-GXN67LJB.mjs +9 -0
- package/dist/bin/core-chunks/pack-manager-46SPIPPD.mjs +7 -0
- package/dist/bin/core-chunks/package-DCGCOAGQ.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-SDHTUK3V.mjs +7 -0
- package/dist/bin/core-chunks/planning-S3MYVWH6.mjs +8 -0
- package/dist/bin/core-chunks/post-edit-5YSNEMK7.mjs +7 -0
- package/dist/bin/core-chunks/pr-convention-37YHTUKM.mjs +7 -0
- package/dist/bin/core-chunks/pre-bash-GLDILCRF.mjs +10 -0
- package/dist/bin/core-chunks/pre-commit-U6HPPNIC.mjs +7 -0
- package/dist/bin/core-chunks/pre-edit-PEYQA6P6.mjs +8 -0
- package/dist/bin/core-chunks/pre-package-76JR5GLO.mjs +7 -0
- package/dist/bin/core-chunks/pre-search-5EHNUOP3.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-BTSYWYUM.mjs +31 -0
- package/dist/bin/core-chunks/primitives-IXAYLX7U.mjs +13 -0
- package/dist/bin/core-chunks/prjct-md-SUDFWDCS.mjs +7 -0
- package/dist/bin/core-chunks/product-KKGJ6MMF.mjs +68 -0
- package/dist/bin/core-chunks/project-agent-surfaces-I2CUZUIN.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-GYLYIJQD.mjs +7 -0
- package/dist/bin/core-chunks/project-style-evolution-5W25UPPN.mjs +7 -0
- package/dist/bin/core-chunks/prompt-SW5XDRMX.mjs +23 -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-5EPJV25P.mjs +7 -0
- package/dist/bin/core-chunks/queue-storage-BKH5XX2E.mjs +7 -0
- package/dist/bin/core-chunks/registry-LK6IQ5UX.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-S22T3SPT.mjs +7 -0
- package/dist/bin/core-chunks/retro-CLKOHAN6.mjs +13 -0
- package/dist/bin/core-chunks/review-risk-LLLBKUXT.mjs +12 -0
- package/dist/bin/core-chunks/run-recorder-EZQ32M55.mjs +7 -0
- package/dist/bin/core-chunks/safe-artifacts-RW5WQUUJ.mjs +9 -0
- package/dist/bin/core-chunks/sdd-HE7O6N5S.mjs +9 -0
- package/dist/bin/core-chunks/seed-JX7W53E5.mjs +10 -0
- package/dist/bin/core-chunks/self-heal-DFUEKNF3.mjs +7 -0
- package/dist/bin/core-chunks/session-continuity-BFSW4OL6.mjs +10 -0
- package/dist/bin/core-chunks/session-start-HVYUKJL2.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-GHS24ER5.mjs +140 -0
- package/dist/bin/core-chunks/setup-J4JFYT63.mjs +38 -0
- package/dist/bin/core-chunks/shipping-I4D4AVTE.mjs +12 -0
- package/dist/bin/core-chunks/signals-digest-V44KYN6Z.mjs +7 -0
- package/dist/bin/core-chunks/skill-adherence-MHY4BZL4.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-2XXPLHUZ.mjs +27 -0
- package/dist/bin/core-chunks/spec-context-inference-THFMXC7S.mjs +9 -0
- package/dist/bin/core-chunks/spec-inventory-2TT7BTFZ.mjs +9 -0
- package/dist/bin/core-chunks/spec-service-I23KJKKP.mjs +7 -0
- package/dist/bin/core-chunks/spec-task-breakdown-HTG6ME6G.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-2H57XCGZ.mjs +15 -0
- package/dist/bin/core-chunks/subagent-start-5LPASXOS.mjs +7 -0
- package/dist/bin/core-chunks/subagent-stop-ANLSG3KN.mjs +7 -0
- package/dist/bin/core-chunks/surface-attribution-WL7S53XX.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-FK7FC3PE.mjs +7 -0
- package/dist/bin/core-chunks/tdd-NQDHU62B.mjs +9 -0
- package/dist/bin/core-chunks/team-XZ4Q6UBV.mjs +42 -0
- package/dist/bin/core-chunks/template-loader-33OVJ4G5.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-6NFON7FO.mjs +13 -0
- package/dist/bin/core-chunks/update-4IE6SA6M.mjs +11 -0
- package/dist/bin/core-chunks/update-checker-FK7MWNWN.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-252QLBN2.mjs +7 -0
- package/dist/bin/core-chunks/watch-service-7ZERG7RC.mjs +9 -0
- package/dist/bin/core-chunks/weak-frontier-demo-5C4FR3OA.mjs +7 -0
- package/dist/bin/core-chunks/weak-model-mode-DH66XMD2.mjs +7 -0
- package/dist/bin/core-chunks/work-graph-JGJWE3AV.mjs +16 -0
- package/dist/bin/core-chunks/work-graph-WHMCFN6U.mjs +7 -0
- package/dist/bin/core-chunks/work-scope-3LXOEIUX.mjs +7 -0
- package/dist/bin/core-chunks/workflow-FGJVLRQ3.mjs +61 -0
- package/dist/bin/core-chunks/workflows-reference-UWKRZ6BJ.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-RH5WH2B3.mjs +7 -0
- package/dist/bin/hook-chunks/{agent-identity-45BYQBU2.mjs → agent-identity-DH6DX72X.mjs} +1 -1
- package/dist/bin/hook-chunks/{agent-switch-4ZJJWKMD.mjs → agent-switch-7GOGG4KG.mjs} +1 -1
- package/dist/bin/hook-chunks/{analysis-UGHAG2SK.mjs → analysis-UI2JRLJO.mjs} +3 -3
- package/dist/bin/hook-chunks/{auto-flush-CXWTU3RF.mjs → auto-flush-JKIXTI2I.mjs} +1 -1
- package/dist/bin/hook-chunks/{capture-gate-PS6QUXLX.mjs → capture-gate-DIPHPNIC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-YDBZO6I3.mjs → chunk-22GFTUER.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-25OGCQTR.mjs +69 -0
- package/dist/bin/hook-chunks/{chunk-DCSKTMDX.mjs → chunk-3CKNJ5RA.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ABJNOG2I.mjs → chunk-3FEXJUO2.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-22AXWLI6.mjs → chunk-3HGQPUKG.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-GLPKMG5A.mjs → chunk-63P5VOR6.mjs} +10 -10
- package/dist/bin/hook-chunks/{chunk-PP6DANGV.mjs → chunk-6LU777GI.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-6NMHVPAI.mjs +35 -0
- package/dist/bin/hook-chunks/{chunk-QL3NYJTW.mjs → chunk-6RS7PNAN.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PO3QDKTE.mjs → chunk-6WDRJ7J7.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-7PA4KPSR.mjs +51 -0
- package/dist/bin/hook-chunks/{chunk-QP5USCDX.mjs → chunk-7WO5CEH3.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-FW4MEPTB.mjs → chunk-A6LRNS6R.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-GCDLPKOH.mjs → chunk-AEDB75AK.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-AFGXKRRP.mjs +12 -0
- package/dist/bin/hook-chunks/{chunk-WGWE3CSC.mjs → chunk-ANSRNEEI.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-RTEEXGEA.mjs → chunk-AORD3YDQ.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-B2ZA5ZAO.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-BOBFTVAY.mjs → chunk-B7MHIUFA.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-Z6KVLCMK.mjs → chunk-BKJHD5JI.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-4NTVXJD7.mjs → chunk-BVK7ZDLX.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-IGHY4FGS.mjs → chunk-CPR4FPXG.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-5XA5RL5I.mjs → chunk-ETTDRXQ6.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-F3PNT2DQ.mjs +19 -0
- package/dist/bin/hook-chunks/{chunk-C4O243NG.mjs → chunk-FBEDUKMG.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-5H3KJWQS.mjs → chunk-GER6HFWV.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-IWJG7CZX.mjs → chunk-GSPDJSJ5.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-H5AVBDCH.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-HEDZA6KC.mjs → chunk-HGZQWYBL.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-GDESYWTD.mjs → chunk-HNZ24HIK.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-S5ISOGDB.mjs → chunk-IDPBMN3Q.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PTA7DMLM.mjs → chunk-IFIENAZU.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-IHEOOJJT.mjs +11 -0
- package/dist/bin/hook-chunks/{chunk-S5N2ZZDL.mjs → chunk-IL36ER4U.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-6GAFRIUQ.mjs → chunk-IWUF2LGO.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-OGIFB3OE.mjs → chunk-JF6DFOQK.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-Z4X7JIAP.mjs → chunk-JGZ3QGWX.mjs} +3 -3
- package/dist/bin/hook-chunks/chunk-KOLXYWOA.mjs +36 -0
- package/dist/bin/hook-chunks/{chunk-DVDZA63F.mjs → chunk-MIJZT4ZR.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-J5UQVJUW.mjs → chunk-NCLONKOT.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-QBYHZX33.mjs → chunk-NJ74RHNC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NLKPAJND.mjs → chunk-NMB6YSAH.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-MHNWIB7B.mjs → chunk-NSTXHVTH.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-N3L77UNM.mjs → chunk-ONGVBXBD.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-X5W2UYQK.mjs → chunk-PFORBQBF.mjs} +3 -3
- package/dist/bin/hook-chunks/{chunk-KSSRINDX.mjs → chunk-PPWPUEBH.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-76GDLA3Z.mjs → chunk-PQJ64L6U.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PGWFGRX4.mjs → chunk-QOQZHR3E.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-2UC4DTDO.mjs → chunk-QXCEBAIA.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-I26F7TLM.mjs → chunk-RLKYEL3F.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-BDOAQVIF.mjs → chunk-SQW2B7NW.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-4HAKTI36.mjs → chunk-TF6PN7IB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-UHVYBU7F.mjs → chunk-TKXOMN4K.mjs} +4 -4
- package/dist/bin/hook-chunks/{chunk-BX7VKYA7.mjs → chunk-UBWUQ64A.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-OUAVSD47.mjs → chunk-UI25YRTY.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-G7QQZMAO.mjs → chunk-UMJ5D5I6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZOX6OV6X.mjs → chunk-V6GGH6H5.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-WIA6ORIY.mjs +16 -0
- package/dist/bin/hook-chunks/chunk-WUOVBBPC.mjs +11 -0
- package/dist/bin/hook-chunks/{chunk-T6ELTQZM.mjs → chunk-XSJ7SPVR.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-UYQC63MC.mjs → chunk-XXVHUYL7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-RHKF7EJW.mjs → chunk-Y7MZA2G4.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-U4OON3S7.mjs → chunk-Y7RDBMNC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ROA2AJXY.mjs → chunk-YATXTHDL.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZFLIVOFX.mjs → chunk-ZF2EVMY7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-S6L3FECF.mjs → chunk-ZH2MF7H7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-3WQBTXUC.mjs → chunk-ZJW27EUC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-J5UVRZ44.mjs → chunk-ZXON2U5F.mjs} +3 -3
- package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +9 -0
- package/dist/bin/hook-chunks/{client-CRXA774S.mjs → client-K3ZA2BLB.mjs} +1 -1
- package/dist/bin/hook-chunks/{code-graph-cloud-GTSLO7CD.mjs → code-graph-cloud-XGQF7XYC.mjs} +1 -1
- package/dist/bin/hook-chunks/{codex-skill-NUBNPSMF.mjs → codex-skill-UZZCACMB.mjs} +1 -1
- package/dist/bin/hook-chunks/{command-installer-UHSXC3UG.mjs → command-installer-FJ73C2ZW.mjs} +1 -1
- package/dist/bin/hook-chunks/{config-manager-DX5OOPW5.mjs → config-manager-XDKOTIJM.mjs} +1 -1
- package/dist/bin/hook-chunks/{context7-service-GDJ3QICX.mjs → context7-service-NH4BMGSJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{custom-workflow-storage-FD47DPA3.mjs → custom-workflow-storage-VBMWLKA7.mjs} +1 -1
- package/dist/bin/hook-chunks/cwd-changed-STP3LH6Y.mjs +8 -0
- package/dist/bin/hook-chunks/{database-ZUC7OEZG.mjs → database-ZCP76LMM.mjs} +1 -1
- package/dist/bin/hook-chunks/{detect-changes-OJUBWWTU.mjs → detect-changes-5W6EGEZG.mjs} +1 -1
- package/dist/bin/hook-chunks/{developer-evolution-WNSTHDAA.mjs → developer-evolution-UTY3CWOK.mjs} +1 -1
- package/dist/bin/hook-chunks/{distill-GOGPFQFK.mjs → distill-63BHUJAC.mjs} +1 -1
- package/dist/bin/hook-chunks/{enriched-recall-QF22RIK7.mjs → enriched-recall-6F6LBYAB.mjs} +1 -1
- package/dist/bin/hook-chunks/{format-J3X3R225.mjs → format-VJ2YQ4XQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-ledger-storage-FE4HXTHM.mjs → judgment-ledger-storage-7Q7AEEY6.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-orchestrator-YDJTKNV2.mjs → judgment-orchestrator-AAON4ZJ4.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-receipt-7A2DXVJA.mjs → judgment-receipt-LSJCAYBT.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-cue-SZWJH6XP.mjs → land-cue-DEO2AZW4.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-synthesis-JLYUBKHR.mjs → land-synthesis-GTMFIGDM.mjs} +1 -1
- package/dist/bin/hook-chunks/{legacy-crew-sweep-JXYO62UE.mjs → legacy-crew-sweep-QPKU7ITU.mjs} +2 -2
- package/dist/bin/hook-chunks/{memory-index-CIYDXN2G.mjs → memory-index-KCMXQGKX.mjs} +1 -1
- package/dist/bin/hook-chunks/{notification-UA7RTVHG.mjs → notification-DX6ZHOUC.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-integrity-GZC5NGFN.mjs → pack-integrity-UMLIB5RQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-manager-AF5F7PRT.mjs → pack-manager-YXRK2TJ4.mjs} +1 -1
- package/dist/bin/hook-chunks/{planning-M3RAOZVB.mjs → planning-JR7O5MYW.mjs} +2 -2
- package/dist/bin/hook-chunks/{post-edit-QRDYPZLZ.mjs → post-edit-IPTVSRVG.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-bash-TWWFVNQ7.mjs → pre-bash-5WWTH36N.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-commit-PTFF7JIN.mjs → pre-commit-KZ5TNTPW.mjs} +1 -1
- package/dist/bin/hook-chunks/pre-edit-XHPYBXRU.mjs +11 -0
- package/dist/bin/hook-chunks/{pre-package-325ALZKD.mjs → pre-package-U3HDW3SX.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-search-GOHVFAFH.mjs → pre-search-R5CRK66E.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-secrets-MYNM5KI4.mjs → pre-secrets-MWPPZPWK.mjs} +1 -1
- package/dist/bin/hook-chunks/{prjct-md-RCB6FWD6.mjs → prjct-md-IBQTJBK7.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-agent-surfaces-V4P5RTUR.mjs → project-agent-surfaces-TPZO73ZV.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-file-inventory-OKIP4LBO.mjs → project-file-inventory-HHURZTMH.mjs} +1 -1
- package/dist/bin/hook-chunks/project-memory-YQLZX5RG.mjs +8 -0
- package/dist/bin/hook-chunks/{project-style-evolution-RPGATIYJ.mjs → project-style-evolution-NOFCIIZZ.mjs} +1 -1
- package/dist/bin/hook-chunks/prompt-DJWONMTZ.mjs +24 -0
- package/dist/bin/hook-chunks/{publish-helper-SX7HEV2L.mjs → publish-helper-ZSL27HSX.mjs} +1 -1
- package/dist/bin/hook-chunks/{purge-XKHUAB4H.mjs → purge-5W3K2MZL.mjs} +1 -1
- package/dist/bin/hook-chunks/retention-GWJ4AX7I.mjs +8 -0
- package/dist/bin/hook-chunks/{sdd-6PF7MBAY.mjs → sdd-GWBRD4KI.mjs} +1 -1
- package/dist/bin/hook-chunks/{session-continuity-UEXQDGZE.mjs → session-continuity-VH645RGR.mjs} +1 -1
- package/dist/bin/hook-chunks/session-start-4TYTI27B.mjs +8 -0
- package/dist/bin/hook-chunks/settings-installer-CQKMGMRG.mjs +9 -0
- package/dist/bin/hook-chunks/{setup-ZOHG6MGF.mjs → setup-VF4UHUBX.mjs} +3 -3
- package/dist/bin/hook-chunks/{shipping-QVGTOO6U.mjs → shipping-2ULWBGRX.mjs} +4 -4
- package/dist/bin/hook-chunks/{skill-index-FGDQVYHM.mjs → skill-index-55I3HLAI.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-context-inference-6Z52BT37.mjs → spec-context-inference-HVENYOIO.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-service-UAQ5AEXQ.mjs → spec-service-4XGQQPGP.mjs} +2 -2
- package/dist/bin/hook-chunks/{spec-task-breakdown-LAXGVLMY.mjs → spec-task-breakdown-JXF556UH.mjs} +1 -1
- package/dist/bin/hook-chunks/{state-storage-XU35ZYNA.mjs → state-storage-EMWLIFQJ.mjs} +1 -1
- package/dist/bin/hook-chunks/stop-NJDYIIXR.mjs +16 -0
- package/dist/bin/hook-chunks/subagent-start-2YMGD4SY.mjs +8 -0
- package/dist/bin/hook-chunks/{subagent-stop-OUG4PR7S.mjs → subagent-stop-4TZJ2NSJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{surface-attribution-A6GCGRFM.mjs → surface-attribution-UNK4J5W2.mjs} +1 -1
- package/dist/bin/hook-chunks/{symbol-graph-DMPBNBX7.mjs → symbol-graph-MH42JSPX.mjs} +1 -1
- package/dist/bin/hook-chunks/{sync-cursor-storage-VVLA3L2U.mjs → sync-cursor-storage-ZB7FGT6D.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-orchestration-HFZYWYLR.mjs → task-orchestration-7NGRIISS.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-overview-PCUZWL5Q.mjs → task-overview-P3VRH2FD.mjs} +1 -1
- package/dist/bin/hook-chunks/task-service-SPUES5DO.mjs +8 -0
- package/dist/bin/hook-chunks/{tdd-QZL4OSM7.mjs → tdd-MYF7I5FS.mjs} +1 -1
- package/dist/bin/hook-chunks/{template-loader-SKXILJLJ.mjs → template-loader-4SYVR2UB.mjs} +1 -1
- package/dist/bin/hook-chunks/{usefulness-SZLG6LVC.mjs → usefulness-TBD5EYAL.mjs} +1 -1
- package/dist/bin/hook-chunks/{vault-retire-notice-HOXPURNQ.mjs → vault-retire-notice-7XHVNHU6.mjs} +1 -1
- package/dist/bin/hook-chunks/{velocity-storage-5J6BAMCW.mjs → velocity-storage-IOCVK2LU.mjs} +1 -1
- package/dist/bin/hook-chunks/{weak-model-mode-ZRNKFTFF.mjs → weak-model-mode-TYJJT6JJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{work-graph-PGYHFLEL.mjs → work-graph-AVAOKY63.mjs} +1 -1
- package/dist/bin/hook-chunks/{work-scope-FIB6LBKE.mjs → work-scope-A6XPENFE.mjs} +1 -1
- package/dist/bin/hook-chunks/{workspace-occupancy-3D4OKQRB.mjs → workspace-occupancy-3NEAXILW.mjs} +1 -1
- package/dist/bin/hook-fast-darwin-arm64 +0 -0
- package/dist/bin/hook-fast-darwin-x64 +0 -0
- package/dist/bin/hook-fast-linux-x64 +0 -0
- package/dist/bin/prjct-core.mjs +9 -3311
- package/dist/bin/prjct-hooks.mjs +3 -3
- package/dist/bin/prjct.mjs +27 -8
- package/dist/daemon/entry.mjs +621 -606
- package/dist/mcp/server.mjs +317 -302
- package/package.json +5 -6
- package/scripts/install.sh +28 -496
- package/dist/bin/hook-chunks/chunk-4KXXDQYI.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-BU22R6JX.mjs +0 -9
- package/dist/bin/hook-chunks/chunk-CYZ7ST2P.mjs +0 -36
- package/dist/bin/hook-chunks/chunk-EWOK4VE7.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-FXFG6PV6.mjs +0 -69
- package/dist/bin/hook-chunks/chunk-GDECEHO5.mjs +0 -16
- package/dist/bin/hook-chunks/chunk-GPZP7NXL.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-KHLYWNHT.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-TRMBRDKH.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-TXSLON7M.mjs +0 -19
- package/dist/bin/hook-chunks/chunk-V2FR2NPL.mjs +0 -43
- package/dist/bin/hook-chunks/chunk-XXRAQZNC.mjs +0 -35
- package/dist/bin/hook-chunks/cwd-changed-EP3UIRK6.mjs +0 -8
- package/dist/bin/hook-chunks/pre-edit-PMMWDR2B.mjs +0 -11
- package/dist/bin/hook-chunks/project-memory-JK2MXRJB.mjs +0 -8
- package/dist/bin/hook-chunks/prompt-DOENKHLQ.mjs +0 -24
- package/dist/bin/hook-chunks/retention-C3NQT65W.mjs +0 -8
- package/dist/bin/hook-chunks/session-start-B4P7L33E.mjs +0 -8
- package/dist/bin/hook-chunks/settings-installer-QDM3GB6J.mjs +0 -9
- package/dist/bin/hook-chunks/stop-CFB2H3XC.mjs +0 -16
- package/dist/bin/hook-chunks/subagent-start-KFAZZUHS.mjs +0 -8
- package/dist/bin/hook-chunks/task-service-PXCDU55T.mjs +0 -8
|
@@ -0,0 +1,12 @@
|
|
|
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 m,d as g,e as E}from"./chunk-ROOCBUKH.mjs";import{c as l}from"./chunk-CFD6CW7T.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{f,i as h}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-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";h();import S from"node:fs/promises";import L from"node:os";import _ from"node:path";function O(r){let i=r.replace(/[/.]/g,"-");return _.join(L.homedir(),".claude","projects",i)}c(O,"transcriptDirFor");async function B(r,i){let t={transcriptsScanned:0,tasksBackfilled:0,tokensRecovered:0,tasksSkipped:0},d=f.query(r,`SELECT id, started_at, COALESCE(completed_at, shipped_at) AS completed_at
|
|
8
|
+
FROM tasks
|
|
9
|
+
WHERE status IN ('completed', 'shipped')
|
|
10
|
+
AND started_at IS NOT NULL
|
|
11
|
+
AND COALESCE(completed_at, shipped_at) IS NOT NULL
|
|
12
|
+
AND COALESCE(tokens_in, 0) + COALESCE(tokens_out, 0) = 0`);if(d.length===0)return t;let p=O(i),u=await S.readdir(p).then(e=>e.filter(s=>s.endsWith(".jsonl"))).catch(()=>null);if(!u)return t;let o=[];for(let e of u)try{let s=await S.readFile(_.join(p,e),"utf-8");o.push(...m(s)),t.transcriptsScanned++}catch{}if(o.length===0)return t;for(let e of d){let s={sinceIso:e.started_at,untilIso:e.completed_at},n=g(o,s);if(n.tokensIn+n.tokensOut<=0){t.tasksSkipped++;continue}l(r,e.id,n.tokensIn,n.tokensOut,{agent:"claude",source:"claude-transcript",isEstimated:!0});for(let[k,a]of E(o,s))a.tokensIn+a.tokensOut<=0||l(r,e.id,a.tokensIn,a.tokensOut,{model:k,agent:"claude",source:`claude-transcript:${k}`,isEstimated:!0});t.tasksBackfilled++,t.tokensRecovered+=n.tokensIn+n.tokensOut}return t}c(B,"backfillTaskTokens");export{B as backfillTaskTokens};
|
|
@@ -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-2TJRTFIS.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{a as buildTokenEconomics};
|
|
@@ -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-ROOCBUKH.mjs";import"./chunk-3TRXQAU4.mjs";export{a as identifyTranscriptModel,b as parseTranscriptJsonl,d as sumTranscriptUsage,e as sumTranscriptUsageByModel,c as sumTranscriptUsageDetailed};
|
|
@@ -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-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-3TRXQAU4.mjs";export{a as evaluateMemoryContent,c as evaluatePackageInstallTrust,b as evaluateToolInputSecrets,d as evaluateWorkflowRuleExecutable,e as isImportedWorkflowTrust};
|
|
@@ -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 $}from"./chunk-V5VCXMKO.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.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{b as R,c as E}from"./chunk-OYXQRBVM.mjs";import{F as f,G as I}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-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{l as u,p as P}from"./chunk-HYIT7MF5.mjs";import{e as h,g as N}from"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";I();import s from"chalk";import{execFileSync as S}from"node:child_process";import m from"node:fs/promises";import _ from"node:os";import b from"node:path";import G from"node:readline";I();N();P();import{execFileSync as C}from"node:child_process";import y from"node:fs/promises";import d from"node:path";I();P();var w="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",g="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";async function D(t){try{let e=await y.readdir(t,{withFileTypes:!0});return(await Promise.all(e.map(async o=>{let r=d.join(t,o.name);if(o.isDirectory())return D(r);try{return(await y.stat(r)).size}catch{return 0}}))).reduce((o,r)=>o+r,0)}catch{return 0}}c(D,"getDirectorySize");function x(t){if(t===0)return"0 B";let e=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));return`${(t/1024**n).toFixed(1)} ${e[n]}`}c(x,"formatSize");async function v(t){try{return(await y.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).length}catch{return 0}}c(v,"countDirectoryItems");function T(){let t={homebrew:!1,npm:!1};try{C("brew",["list","prjct-cli"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]})&&(t.homebrew=!0,t.homebrewFormula="prjct-cli")}catch{}try{C("npm",["list","-g","prjct-cli","--depth=0"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).includes("prjct-cli")&&(t.npm=!0)}catch{}return t}c(T,"detectInstallation");async function k(){let t=[],e=E(),n=f.getGlobalBasePath(),o=await u(n),r=o?await v(d.join(n,"projects")):0,i=o?await D(n):0;t.push({path:n,type:"directory",description:`All project data${r>0?`, ${r} project${r>1?"s":""}`:""}`,size:i,count:r,exists:o});let l=d.join(e.claude.config,"CLAUDE.md");t.push({path:l,type:"section",description:"prjct section in CLAUDE.md",exists:await M(l)}),t.push({path:e.claude.router,type:"file",description:"Claude router",exists:await u(e.claude.router)});let p=d.join(e.claude.config,"prjct-statusline.sh");t.push({path:p,type:"file",description:"Status line script",exists:await u(p)}),t.push({path:e.gemini.router,type:"file",description:"Gemini router",exists:await u(e.gemini.router)});let a=d.join(e.gemini.config,"GEMINI.md");return await M(a)&&t.push({path:a,type:"section",description:"prjct section in GEMINI.md",exists:!0}),t}c(k,"gatherUninstallItems");async function M(t){if(!await u(t))return!1;try{let e=await y.readFile(t,"utf-8");return e.includes(w)&&e.includes(g)}catch{return!1}}c(M,"hasMarkerSection");async function U(t,e){await m.mkdir(e,{recursive:!0});let n=await m.readdir(t,{withFileTypes:!0});for(let o of n){let r=b.join(t,o.name),i=b.join(e,o.name);o.isDirectory()?await U(r,i):await m.copyFile(r,i)}}c(U,"copyDirectory");async function F(){let t=_.homedir(),e=new Date().toISOString().replace(/[:.]/g,"-").substring(0,19),n=b.join(t,`.prjct-backup-${e}`);try{await m.mkdir(n,{recursive:!0});let o=f.getGlobalBasePath();return await u(o)&&await U(o,b.join(n,".prjct-cli")),n}catch{return null}}c(F,"createBackup");async function K(t){try{let e=await m.readFile(t,"utf-8");if(!e.includes(w)||!e.includes(g))return!1;let n=e.indexOf(w),o=e.indexOf(g)+g.length,r=(e.substring(0,n)+e.substring(o)).replace(/\n{3,}/g,`
|
|
8
|
+
|
|
9
|
+
`).trim();return!r||r.trim().length===0?await m.unlink(t):await m.writeFile(t,`${r}
|
|
10
|
+
`,"utf-8"),!0}catch{return!1}}c(K,"removePrjctSection");async function O(t,e,n){let o=[],r=[];for(let i of t)if(i.exists)try{i.type==="section"?await K(i.path)&&o.push(i.path):i.type==="directory"?(await m.rm(i.path,{recursive:!0,force:!0}),o.push(i.path)):i.type==="file"&&(await m.unlink(i.path),o.push(i.path))}catch(l){r.push(`${i.path}: ${h(l)}`)}try{await new R().cleanupLegacyCommands()}catch{}if(!n.keepPackage){if(e.homebrew&&e.homebrewFormula)try{n.dryRun||S("brew",["uninstall",e.homebrewFormula],{stdio:"pipe"}),o.push("Homebrew: prjct-cli")}catch(i){r.push(`Homebrew: ${h(i)}`)}if(e.npm)try{n.dryRun||S("npm",["uninstall","-g","prjct-cli"],{stdio:"pipe"}),o.push("npm: prjct-cli")}catch(i){r.push(`npm: ${h(i)}`)}}return{deleted:o,errors:r}}c(O,"performUninstall");async function z(t){let e=G.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{e.question(t,o=>{e.close(),n(o.toLowerCase()==="uninstall")})})}c(z,"promptConfirmation");async function L(t={},e=process.cwd()){let n=await k(),o=T(),r=n.filter(a=>a.exists);if(r.length===0&&!o.homebrew&&!o.npm)return console.log(s.yellow(`
|
|
11
|
+
No prjct installation found.`)),{success:!0,message:"Nothing to uninstall"};let i=r.reduce((a,j)=>a+(j.size||0),0);console.log(""),console.log(s.red.bold(" WARNING: This action is DANGEROUS and IRREVERSIBLE")),console.log(""),console.log(s.white("The following will be permanently deleted:")),console.log("");for(let a of r){let j=f.getDisplayPath(a.path),B=a.type==="section"?s.dim("(section only)"):a.size?s.dim(`(${x(a.size)})`):"";console.log(` ${s.cyan(j.padEnd(35))} ${B}`),console.log(` ${s.dim(a.description)}`),console.log("")}if(o.homebrew&&(console.log(` ${s.cyan("Homebrew".padEnd(35))} ${s.dim("prjct-cli formula")}`),console.log("")),o.npm&&(console.log(` ${s.cyan("npm global".padEnd(35))} ${s.dim("prjct-cli package")}`),console.log("")),i>0&&(console.log(s.dim(` Total size: ${x(i)}`)),console.log("")),t.dryRun)return console.log(s.yellow("Dry run - no changes made")),{success:!0,message:"Dry run complete",itemsFound:r.length};if(t.backup){console.log(s.blue("Creating backup..."));let a=await F();a?(console.log(s.green(`Backup created: ${f.getDisplayPath(a)}`)),console.log("")):console.log(s.yellow("Failed to create backup, continuing..."))}if(!t.force&&(console.log(s.yellow('Type "uninstall" to confirm:')),!await z("> ")))return console.log(s.yellow(`
|
|
12
|
+
Uninstall cancelled.`)),{success:!1,message:"Uninstall cancelled by user"};console.log(""),console.log(s.blue("Removing prjct..."));let{deleted:l,errors:p}=await O(n,o,t);if(console.log(""),l.length>0&&console.log(s.green(`Removed ${l.length} items`)),p.length>0){console.log(s.yellow(`
|
|
13
|
+
${p.length} errors:`));for(let a of p)console.log(s.red(` - ${a}`))}return console.log(""),console.log(s.green("prjct has been uninstalled.")),console.log(s.dim("Thanks for using prjct! We hope to see you again.")),console.log(""),{success:p.length===0,message:`Removed ${l.length} items`,deleted:l,errors:p.length>0?p:void 0}}c(L,"uninstall");var A=class extends ${static{c(this,"UninstallCommands")}async uninstall(e={},n=process.cwd()){return L(e,n)}};export{A as UninstallCommands,L as uninstall};
|
|
@@ -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 E,b as I,c as M,d as S,e as $,f as P,g as A,m as N}from"./chunk-HEXSVBUP.mjs";import{a as O}from"./chunk-3JD6KRNJ.mjs";import{a as D}from"./chunk-V5VCXMKO.mjs";import{f as v}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as m}from"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{a as k}from"./chunk-GGGDYL4P.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{b as R}from"./chunk-OYXQRBVM.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-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as h,g as B}from"./chunk-225DWS4D.mjs";import{a as b,b as L}from"./chunk-3TRXQAU4.mjs";import{execFileSync as G}from"node:child_process";import U from"node:fs/promises";import W from"node:path";B();import w from"chalk";function x(u,l){let e=u.phase1.success&&u.phase2.success,a=[...u.phase1.errors,...u.phase2.errors];console.log("");let s=[{label:"Package",result:u.phase1,fatal:!0},{label:"Cleanup",result:u.phase2,fatal:!0},{label:"Daemon",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?w.green("\u2713"):c?w.red("\u2717"):w.yellow("\u26A0");console.log(` ${i} ${w.bold(r)}`);for(let o of t.details)console.log(` ${w.dim(o)}`);for(let o of t.warnings??[])console.log(` ${w.yellow("\u26A0")} ${o}`);for(let o of t.errors)console.log(` ${w.yellow("\u26A0")} ${o}`)}return console.log(""),l?m.done("Dry run complete \u2014 no changes made"):e?m.done("System updated"):m.warn(`Updated with ${a.length} error(s)`),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(x,"formatTerminalOutput");function T(u,l){let e=u.phase1.success&&u.phase2.success,a=[];a.push(l?"# Update (Dry Run)":"# System Update"),a.push("");let s=[{label:"Package Update",result:u.phase1,fatal:!0},{label:"Global Cleanup",result:u.phase2,fatal:!0},{label:"Daemon Restart",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?"OK":c?"FAILED":"WARNING";a.push(`## ${r} (${i})`);for(let o of t.details)a.push(`- ${o}`);for(let o of t.warnings??[])a.push(`- WARNING: ${o}`);for(let o of t.errors)a.push(`- WARNING: ${o}`);a.push("")}return l||a.push(e?"**Status:** All phases completed successfully.":"**Status:** Completed with errors."),console.log(a.join(`
|
|
8
|
+
`)),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(T,"formatMdOutput");var H=class extends D{static{b(this,"UpdateCommands")}async update(l={},e=process.cwd()){let a=l["dry-run"]===!0,s=l.md===!0,r=l.cleanup===!1?"off":l.cleanup===!0?"force":"auto",t=l.yes===!0||l.y===!0,c={phase1:{success:!0,details:[],errors:[],warnings:[]},phase2:{success:!0,details:[],errors:[],warnings:[]},phase3:{success:!0,details:[],errors:[],warnings:[]}};try{if(!a)try{let{isDaemonRunning:i,stopDaemon:o,forceKillDaemon:f}=await import("./client-D43KKUYH.mjs");await i()&&(await o()||f())}catch{}if(s||m.step(1,3,"Updating package..."),c.phase1=await this.phasePackageUpdate(a),s||m.stop(),!a&&c.phase1.success&&A(),s||m.step(2,3,"Cleaning up all projects..."),c.phase2=await this.phaseGlobalCleanup(a,r,t),s||m.stop(),s||m.step(3,3,"Restarting daemon..."),c.phase3=await this.phaseDaemonRestart(a),s||m.stop(),!a){try{let i=P()[0]?.version;i&&await k.updateVersion(i)}catch{}try{await new O().writeCache({lastCheck:0,latestVersion:""})}catch{}}return s?T(c,a):x(c,a)}catch(i){return s||m.stop(),m.fail(h(i)),v(i)}}async phasePackageUpdate(l){let e={success:!0,details:[],errors:[],warnings:[]},a=P();if(l){if(M()){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push("Would uninstall homebrew formula"),e.details.push(`Would install via ${r}`)}else if(a.length===0){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push(`Would install via ${r}`)}else for(let{pm:r,version:t}of a)e.details.push(`Would reinstall via ${r.name} (currently v${t})`);return e}try{if(M())try{G("brew",["uninstall","prjct-cli"],{stdio:["pipe","pipe","ignore"]}),e.details.push("Uninstalled homebrew formula")}catch{e.details.push("Homebrew uninstall skipped (not found)")}let r=a.length>0?a.map(n=>n.pm):[$()],t=await new O().getLatestVersion().then(n=>n?.trim()??null).catch(n=>(e.errors.push(`npm registry unreachable \u2014 refuse to install from local tree: ${h(n)}`),null)),c=t&&/^\d+\.\d+\.\d+/.test(t)?`prjct-cli@${t}`:null;if(!c||!t)return e.success=!1,e.errors.push("npm registry did not return a valid prjct-cli version"),e;e.details.push(`registry.npmjs.org latest = ${t}`);let i=E();for(let n of r){if(!S(n.name)){e.errors.push(`${n.name} is not on PATH but has a prjct-cli install. Either install ${n.name} or remove that copy.`);continue}try{let p=I(n,c);G(n.name,p,{stdio:"pipe",cwd:i}),e.details.push(`${n.name} install complete (${c} from npm registry)`)}catch(p){e.errors.push(`${n.name}: ${h(p)}`)}}let o=P(),f=new Map(a.map(n=>[n.pm.name,n.version])),d=[];for(let{pm:n,version:p}of o){let y=f.get(n.name);y&&y!==p?d.push(`${n.name}: ${y} \u2192 ${p}`):y?d.push(`${n.name}: v${p} (matches registry)`):d.push(`${n.name}: installed v${p}`),p!==t&&e.errors.push(`${n.name} install is v${p} but registry latest is ${t} \u2014 global install did not apply npm package (check PATH / npm root -g)`)}for(let n of d)e.details.push(n);o.length===0&&e.errors.push("No global prjct-cli install found after registry install"),e.errors.length>0&&(e.success=!1)}catch(s){e.success=!1,e.errors.push(h(s))}return e}async phaseGlobalCleanup(l,e="auto",a=!1){let s={success:!0,details:[],errors:[],warnings:[]};if(l)s.details.push("Would clean all legacy artifacts"),s.details.push("Would reinstall editor commands"),s.details.push("Would reinstall global config (all providers)");else{try{let t=await new R().cleanupAllLegacy();t.cleaned.length>0&&s.details.push(`Cleaned ${t.cleaned.length} legacy artifact(s)`)}catch(r){s.errors.push(`Legacy cleanup: ${h(r)}`)}try{let t=await new R().installCommands();s.details.push(`Editor commands reinstalled (${t.installed?.length||0} providers)`)}catch(r){s.errors.push(`Commands: ${h(r)}`)}try{await new R().installGlobalConfig(),s.details.push("Global config updated (prjct section replaced)")}catch(r){s.errors.push(`Global config: ${h(r)}`)}try{let{detectAllProviders:r}=await import("./ai-provider-RVXK7D7R.mjs"),t=await r(),c=W.join(L("node:os").homedir());if(t.gemini.installed){let i=W.join(c,".gemini","GEMINI.md");try{let o=await U.readFile(i,"utf-8"),f="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",d="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";if(o.includes(f)&&o.includes(d)){let{getTemplateContent:n}=await import("./template-loader-33OVJ4G5.mjs"),p=n("global/GEMINI.md");if(p?.includes(f)&&p.includes(d)){let y=p.substring(p.indexOf(f),p.indexOf(d)+d.length),V=o.substring(0,o.indexOf(f)),K=o.substring(o.indexOf(d)+d.length),j="<!-- prjct-project:start - DO NOT REMOVE THIS MARKER -->",C="<!-- prjct-project:end - DO NOT REMOVE THIS MARKER -->",g=V+y+K,F=g.includes(j)&&g.includes(C)?`${(g.substring(0,g.indexOf(j))+g.substring(g.indexOf(C)+C.length)).replace(/\n{3,}/g,`
|
|
9
|
+
|
|
10
|
+
`).trim()}
|
|
11
|
+
`:g;await U.writeFile(i,F,"utf-8"),s.details.push("Gemini global config updated")}}}catch{}}}catch{}}try{let r=await N(e,l,a);s.details.push(...r.details),s.errors.push(...r.errors)}catch(r){s.errors.push(`install consolidation skipped: ${h(r)}`)}return s.errors.length>0&&(s.success=!1),s}async phaseDaemonRestart(l){let e={success:!0,details:[],errors:[],warnings:[]};if(l)return e.details.push("Would restart daemon"),e;try{let{isDaemonRunning:a,forceRestartDaemon:s}=await import("./client-D43KKUYH.mjs"),r=await a();e.details.push(r?"Daemon stopped":"No running daemon (cleaned stale files)");let t=await s();e.details.push(t?"Daemon restarted":"Daemon will start automatically on next use")}catch(a){e.success=!1,e.errors.push(h(a))}return e}};export{H as UpdateCommands};
|
|
@@ -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-3JD6KRNJ.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-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as default,b as getUpdateNotificationSync,c as triggerBackgroundRefreshIfStale};
|
|
@@ -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-F2FKQUYE.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{b as extractCorrectionIds,a as extractRefIds,c as usefulnessService};
|
|
@@ -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-DOJPSIMG.mjs";import"./chunk-3TRXQAU4.mjs";c();export{a as resolveUserHome,b as resolveUserPath};
|
|
@@ -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{g as t,i as a}from"./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{a as n}from"./chunk-3TRXQAU4.mjs";a();var r="vault-retire-notice-shown";async function c(o,e){try{return!(o?.vault?.mode==="export")||t.getDoc(e,r)?.shown?null:(t.setDoc(e,r,{shown:!0}),["> **prjct has removed the Obsidian/markdown vault feature.**","> Any files it previously generated are untouched on disk, but prjct no","> longer regenerates them. Agents read project knowledge through prjct","> tools (`prjct search`, `prjct context memory`, `prjct_analysis`, \u2026)."].join(`
|
|
8
|
+
`))}catch{return null}}n(c,"vaultRetirementNotice");export{c as vaultRetirementNotice};
|
|
@@ -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-CUIB6CTG.mjs";import"./chunk-E5QQDYBR.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-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 epochWeek,b as velocityStorage};
|
|
@@ -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-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-3TRXQAU4.mjs";export{b as BIN_COMMANDS_SET,a as REGISTERED_VERBS_SET};
|
|
@@ -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,g as f}from"./chunk-TTN2CFZC.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";f();export{e as PACKAGE_ROOT,d as VERSION,a as getPackageRoot,b as getVersion,c as resetPackageRoot};
|
|
@@ -0,0 +1,9 @@
|
|
|
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{f as l}from"./chunk-TGNZI4KF.mjs";import"./chunk-Y7XOKG4O.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-IVGWOY3U.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-P2KU4FFA.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-R7LLMJDP.mjs";import"./chunk-CNWEQUB7.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-X4FR5S7E.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.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-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as c}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-XSZG3CBO.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-DN46DLU3.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OYXQRBVM.mjs";import{e as a,l as p}from"./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-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as r,g as h}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";import d from"node:path";import t from"chalk";import g from"chokidar";h();p();var u=["package.json","package-lock.json","bun.lockb","pnpm-lock.yaml","yarn.lock","tsconfig.json","tsconfig.*.json",".env",".env.*","Cargo.toml","go.mod","pyproject.toml","requirements.txt","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","lib/**/*.ts","core/**/*.ts","app/**/*.ts","app/**/*.tsx","pages/**/*.ts","pages/**/*.tsx"],m=["**/node_modules/**","**/.git/**","**/dist/**","**/build/**","**/.next/**","**/.nuxt/**","**/coverage/**","**/*.log","**/*.tmp","**/CLAUDE.md","**/.cursorrules","**/.prjct/**","**/.prjct-cli/**"],n=class{static{o(this,"WatchService")}watcher=null;projectPath="";projectId=null;debounceTimer=null;lastSyncTime=0;pendingChanges=new Set;options={debounceMs:2e3,minIntervalMs:3e4,verbose:!1,quiet:!1};isRunning=!1;syncCount=0;sigintHandler=null;sigtermHandler=null;async start(s=process.cwd(),i={}){return this.projectPath=s,this.options={...this.options,...i},this.projectId=await c.getProjectId(s),this.projectId?this.isRunning?{success:!1,error:"Watch mode is already running"}:(this.isRunning=!0,this.options.quiet||this.printStartup(),this.watcher=g.watch(u,{cwd:this.projectPath,ignored:m,persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:500,pollInterval:100}}),this.watcher.on("add",e=>this.handleChange("add",e)).on("change",e=>this.handleChange("change",e)).on("unlink",e=>this.handleChange("unlink",e)).on("error",e=>this.handleError(e)),this.sigintHandler&&process.off("SIGINT",this.sigintHandler),this.sigtermHandler&&process.off("SIGTERM",this.sigtermHandler),this.sigintHandler=()=>this.stop(),this.sigtermHandler=()=>this.stop(),process.on("SIGINT",this.sigintHandler),process.on("SIGTERM",this.sigtermHandler),{success:!0}):{success:!1,error:'No prjct project. Run "prjct init" first.'}}async stop(){this.options.quiet||(console.log(""),console.log(t.dim(`
|
|
8
|
+
\u{1F44B} Stopped watching (${this.syncCount} syncs performed)`))),this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.watcher&&(await this.watcher.close(),this.watcher=null),this.sigintHandler&&(process.off("SIGINT",this.sigintHandler),this.sigintHandler=null),this.sigtermHandler&&(process.off("SIGTERM",this.sigtermHandler),this.sigtermHandler=null),this.pendingChanges.clear(),this.isRunning=!1,process.env.PRJCT_IN_DAEMON!=="1"&&process.exit(0)}handleChange(s,i){if(this.pendingChanges.add(i),this.options.verbose&&!this.options.quiet){let e=s==="add"?"\u2795":s==="unlink"?"\u2796":"\u{1F4DD}";console.log(t.dim(` ${e} ${i}`))}this.scheduleSyncIfNeeded()}scheduleSyncIfNeeded(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(async()=>{let i=Date.now()-this.lastSyncTime;if(i<this.options.minIntervalMs&&this.lastSyncTime>0){let e=this.options.minIntervalMs-i;this.options.verbose&&!this.options.quiet&&console.log(t.dim(` \u23F3 Rate limited, waiting ${Math.round(e/1e3)}s...`)),this.debounceTimer=setTimeout(()=>this.performSync(),e);return}await this.performSync()},this.options.debounceMs)}async performSync(){let s=Array.from(this.pendingChanges);if(this.pendingChanges.clear(),s.length===0)return;let i=a().split("T")[1].split(".")[0];if(!this.options.quiet){let e=s.length===1?s[0]:`${s.length} files`;console.log(`
|
|
9
|
+
${t.dim(`[${i}]`)} ${t.cyan("\u27F3")} ${e} changed \u2192 syncing...`)}try{let e=await l.sync(this.projectPath,{changedFiles:s});this.lastSyncTime=Date.now(),this.syncCount++,e.success?this.options.quiet||console.log(`${t.dim(`[${i}]`)} ${t.green("\u2713")} Synced`):console.error(`${t.dim(`[${i}]`)} ${t.red("\u2717")} Sync failed: ${e.error}`)}catch(e){console.error(`${t.dim(`[${i}]`)} ${t.red("\u2717")} Error: ${r(e)}`)}}handleError(s){console.error(t.red(`Watch error: ${s.message}`))}printStartup(){console.log(""),console.log(t.cyan("\u{1F441}\uFE0F Watching for changes...")),console.log(t.dim(` Project: ${d.basename(this.projectPath)}`)),console.log(t.dim(` Debounce: ${this.options.debounceMs}ms`)),console.log(t.dim(` Min interval: ${this.options.minIntervalMs/1e3}s`)),console.log(""),console.log(t.dim(" Press Ctrl+C to stop")),console.log("")}},$=new n;export{n as WatchService,$ as watchService};
|
|
@@ -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{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h}from"./chunk-VILH3VYH.mjs";import"./chunk-MR5XXHRK.mjs";import"./chunk-SRJEX6XF.mjs";import"./chunk-ZHTYSYZC.mjs";import"./chunk-EFSPBB4S.mjs";import"./chunk-7ZHWJSW5.mjs";import"./chunk-WGDE3L33.mjs";import"./chunk-V3Y3G2DE.mjs";import"./chunk-5ONMON5L.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-3FXNIJCS.mjs";import"./chunk-BTSHD3XJ.mjs";import"./chunk-CXNVDJNN.mjs";import"./chunk-ROOCBUKH.mjs";import"./chunk-5YSPND5J.mjs";import"./chunk-C35JQUWD.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-XU3BQPBU.mjs";import"./chunk-ZQHSJ6FF.mjs";import"./chunk-V7VA4EQX.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-MDONTD7O.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-P53YMOKR.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.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-Y5SEUYET.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.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-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.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-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-WZXUFSVT.mjs";import"./chunk-CDLZLTRY.mjs";import"./chunk-CEOTHJIY.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-KWC2PCPC.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-MTDCRYLP.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-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as DELTA_MIN_HARNESS_RATE,b as DELTA_MIN_INTENT_PP,g as buildDemoRows,e as computeHarnessDelta,h as formatDemoMarkdown,f as renderHarnessDeltaMd,c as routeIntent,d as routeIntentBare};
|
|
@@ -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-DCVPNFS4.mjs";import"./chunk-MDONTD7O.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-3USVY66O.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-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as conflictModeWithWeakModel,a as effectiveWeakModelMode,c as qualityFloorWithWeakModel,d as weakModelBanner,e as weakModelOneLiner};
|
|
@@ -0,0 +1,16 @@
|
|
|
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 b}from"./chunk-ZHTYSYZC.mjs";import{a as R,b as C}from"./chunk-PPERWRFS.mjs";import"./chunk-XC6YAP36.mjs";import"./chunk-J7T5IEFJ.mjs";import"./chunk-VRFYDYQY.mjs";import{d as j}from"./chunk-6XTLPAPZ.mjs";import"./chunk-L5LFLI4R.mjs";import{a as u}from"./chunk-24EN5Y62.mjs";import"./chunk-AS3LWTQ4.mjs";import{b as p}from"./chunk-KIRU4QFX.mjs";import{b as w}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as x}from"./chunk-V5VCXMKO.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-ESB4ALH2.mjs";import{c as P}from"./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-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.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-5YLI5V3Q.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import{a as k}from"./chunk-KUQLXY2P.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 i}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.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-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as v}from"./chunk-3TRXQAU4.mjs";var E=["blocks","parent","related","discovered-from"],_=class extends x{static{v(this,"WorkGraphCommands")}async ready(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=u.ready(t.value),e=b(t.value,o);if(e.length===0){let n="Nothing ready \u2014 the backlog is empty or fully blocked. `prjct phases --md` shows why.";return s.md?console.log(`> ${n}`):i.info(n),{success:!0,ready:0}}if(s.md){let n=[`# Ready frontier \u2014 ${e.length} unblocked item(s) (impact-ranked)`,"","| Id | Item | Priority | Unblocks | Score | Claimed |","|---|---|---|---:|---:|---|"];for(let r of e)n.push(`| \`${r.id.slice(0,8)}\` | ${r.description.slice(0,80)} | ${r.priority??"-"} | ${r.unblocks} | ${Math.round(r.impactScore)} | ${r.claimedBy??"\u2014"} |`);n.push("",`Top rationale: ${e[0]?.why??"\u2014"}`,"","Claim before working: `prjct claim <id>`. Full id via `prjct sync --md`."),console.log(n.join(`
|
|
8
|
+
`))}else{i.info(`${e.length} ready item(s) (impact-ranked):`);for(let n of e)i.info(` \u2022 [${n.id.slice(0,8)}] ${n.description.slice(0,80)}`);e[0]?.why&&i.info(` ${e[0].why}`)}return{success:!0,ready:e.length,items:e}}async next(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let e=b(t.value,u.ready(t.value,{unclaimedOnly:!0,limit:20}))[0]??null;if(!e){let l="No unclaimed ready work. `prjct ready --md` for the frontier.";return s.md?console.log(`> ${l}`):i.info(l),{success:!0,next:null}}let n=w(e.description),r=P(n);if(s.md){let l=[`# Next: ${e.description}`,"",`- Id: \`${e.id}\` \xB7 priority: ${e.priority??"-"} \xB7 unblocks ${e.unblocks} item(s) \xB7 impactScore ${Math.round(e.impactScore)}`,`- ${e.why}`,`- Orchestration: ${r.model}/${r.effort} \xB7 spec: ${r.spec} \xB7 tests: ${r.tests} \xB7 fan-out: ${r.fanout} \xB7 ~${r.expectedPoints} pt`,"",`Claim it: \`prjct claim ${e.id}\` \u2014 then \`prjct work "${e.description.slice(0,60)}"\``];console.log(l.join(`
|
|
9
|
+
`))}else i.info(`next: [${e.id.slice(0,8)}] ${e.description}`),i.info(` ${e.why}`);return{success:!0,next:e,orchestration:r,why:e.why}}async claim(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=await this.resolveId(t.value,(c??"").trim());if(!o)return this.fail("Usage: prjct claim <task-id>",s);let e=s.as??process.env.PRJCT_AGENT??await(async()=>{let{pickCodename:l}=await import("./agent-codenames-7N4DU62I.mjs"),m=u.ready(t.value,{limit:50}).map(d=>d.claimedBy).filter(d=>!!d);return l(`claim:${o}:${Date.now()}`,m)})(),n=u.claim(t.value,o,e),r=n?`claimed ${o.slice(0,8)} as ${e}`:`claim lost \u2014 ${o.slice(0,8)} is already taken`;return s.md?console.log(`${n?"\u2713":"\u2717"} ${r}`):n?i.done(r):i.fail(r),{success:n,id:o,claimant:e}}async depend(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim();if(!o||!s.on)return this.fail("Usage: prjct depend <id> --on <id> [--type blocks|parent|related|discovered-from]",s);let e=s.type??"blocks";if(!E.includes(e))return this.fail(`Unknown dep type '${s.type}'. Use: ${E.join(" | ")}`,s);let n=await this.resolveId(t.value,o),r=await this.resolveId(t.value,s.on.trim());if(!n||!r)return this.fail("Could not resolve one of the ids",s);try{u.addDependency(t.value,n,r,e)}catch(m){return this.fail(m instanceof Error?m.message:"dependency rejected",s)}let l=`${n.slice(0,8)} \u2014${e}\u2192 ${r.slice(0,8)}`;return s.md?console.log(`\u2713 ${l}`):i.done(l),{success:!0,fromId:n,toId:r,depType:e}}async phases(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=u.phases(t.value);if(o.length===0){let e="No open work in the graph.";return s.md?console.log(`> ${e}`):i.info(e),{success:!0,phases:0}}if(s.md){let e=["# Execution phases (topological)","","Items in the SAME phase have no dependency path between them \u2014 safe to fan out in parallel.",""];for(let r of o){e.push(`## Phase ${r.phase} \u2014 ${r.items.length} item(s), parallelizable`);for(let l of r.items.slice(0,12)){let m=w(l.description),d=P(m);e.push(`- \`${l.id.slice(0,8)}\` ${l.description.slice(0,80)} _(${d.model}/${d.effort}, ~${d.expectedPoints} pt)_`)}r.items.length>12&&e.push(`- _\u2026and ${r.items.length-12} more (full list in --json / prjct ready)_`),e.push("")}console.log(e.join(`
|
|
10
|
+
`))}else for(let e of o)i.info(`phase ${e.phase}: ${e.items.length} item(s)`);return{success:!0,phases:o.length,plan:o}}async expand(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim().split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/).map(d=>d.replace(/^"|"$/g,"")).filter(Boolean),e=o[0];if(!e)return this.fail('Usage: prjct expand <id> ["subtask 1" "subtask 2" ...]',s);let n=await this.resolveId(t.value,e);if(!n)return this.fail(`Unknown item '${e}'`,s);let r=o.slice(1);if(r.length===0){let h=(await k.getTasks(t.value)).find(g=>g.id===n)?.description??n,f=u.getComplexity(t.value,n)??(()=>{let g=w(h),$=P(g),y={score:$.expectedPoints,recommendedSubtasks:$.expectedPoints>=5?Math.min($.expectedPoints,6):0,expansionPrompt:`Decompose "${h}" into ${Math.min($.expectedPoints,6)} independent, testable subtasks; make dependencies explicit; each subtask \u2264 2 points.`,reasoning:`Triage level ${g.level}; ~${$.expectedPoints} points.`};return u.recordComplexity(t.value,n,{score:y.score,recommendedSubtasks:y.recommendedSubtasks,expansionPrompt:y.expansionPrompt??void 0,reasoning:y.reasoning??void 0}),y})();if(s.md){let g=[`# Expand \`${n.slice(0,8)}\` \u2014 ${h.slice(0,90)}`,"",`- Complexity: ${f.score} pt \xB7 recommended subtasks: ${f.recommendedSubtasks}`,...f.reasoning?[`- Reasoning: ${f.reasoning}`]:[],"",f.recommendedSubtasks>0?`${f.expansionPrompt}
|
|
11
|
+
|
|
12
|
+
Persist your decomposition: \`prjct expand ${n.slice(0,8)} "subtask 1" "subtask 2" ...\``:"Small enough \u2014 no decomposition needed. Work it directly."];console.log(g.join(`
|
|
13
|
+
`))}else i.info(`complexity ${f.score} pt, recommended subtasks: ${f.recommendedSubtasks}`);return{success:!0,id:n,complexity:f}}let l=[];for(let d of r){let h=await k.addTask(t.value,{description:d,section:"active",type:"feature",priority:"medium"});u.addDependency(t.value,n,h.id,"parent"),l.push(h.id)}let m=`expanded into ${l.length} subtask(s); parent is blocked until they complete`;return s.md?console.log(`\u2713 ${m}`):i.done(m),{success:!0,id:n,created:l}}async switch(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim().split(/\s+/).filter(Boolean)[0];if(!o)return this.fail('Usage: prjct switch <agent> [--reason "\u2026"] [--launch]',s);let e=await R(t.value,a,o,{reason:s.reason,launch:s.launch,md:s.md});if(!e.ok)return this.fail(e.error??"switch failed",s);let n=e.handoff;return s.md?(console.log(e.resumeCard??""),e.launched?console.log(`
|
|
14
|
+
_Launched target CLI (best-effort)._`):e.launchError&&console.log(`
|
|
15
|
+
_Launch skipped: ${e.launchError}_`)):(i.done(`Yielded ${n.taskId.slice(0,8)} \u2192 ${n.toAgent} (${n.id.slice(0,16)})`),i.info(`Reason: ${n.reason}`),i.info(`Accept: prjct accept ${n.id}`),e.launched?i.info("Launched target CLI (best-effort)"):e.launchError&&i.info(`Launch skipped: ${e.launchError}`)),{success:!0,handoffId:n.id,taskId:n.taskId,toAgent:n.toAgent,launched:e.launched??!1}}async accept(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim().split(/\s+/).filter(Boolean)[0]??null,e=await C(t.value,a,o);return e.ok?(s.md?console.log(e.brief??""):(i.done(`Accepted ${e.handoff.id.slice(0,16)} \u2014 cycle is yours`),i.info(`Task: ${e.handoff.taskId.slice(0,8)} \xB7 ${e.handoff.taskDescription}`),i.info(`Why yielded: ${e.handoff.reason}`),i.info("Next: prjct work --md (same cycle; do not restart)")),{success:!0,handoffId:e.handoff.id,taskId:e.handoff.taskId}):this.fail(e.error??"accept failed",s)}async handoffs(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=j(t.value,{limit:20});if(o.length===0){let e='No handoffs yet. Yield with `prjct switch <agent> --reason "\u2026"`.';return s.md?console.log(`> ${e}`):i.info(e),{success:!0,count:0}}if(s.md){let e=[`# Handoffs (${o.length})`,"","| Id | Status | From \u2192 To | Task | Reason |","|---|---|---|---|---|"];for(let n of o)e.push(`| \`${n.id.slice(0,14)}\` | ${n.status} | ${n.fromAgent} \u2192 ${n.toAgent} | \`${n.taskId.slice(0,8)}\` | ${n.reason.slice(0,60)} |`);e.push("","Accept: `prjct accept <id>`"),console.log(e.join(`
|
|
16
|
+
`))}else for(let e of o)i.info(`[${e.status}] ${e.id.slice(0,14)} ${e.fromAgent}\u2192${e.toAgent} ${e.taskId.slice(0,8)} \u2014 ${e.reason.slice(0,50)}`);return{success:!0,count:o.length,handoffs:o}}async resolveId(c,a){if(!a)return null;let s=await k.getTasks(c),t=s.find(e=>e.id===a);if(t)return t.id;let o=s.filter(e=>e.id.startsWith(a));return o.length===1?o[0].id:null}fail(c,a){return a.md?console.log(`> ${c}`):i.fail(c),{success:!1,error:c}}};export{_ as WorkGraphCommands};
|
|
@@ -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-24EN5Y62.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{a as workGraph};
|
|
@@ -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-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-3USVY66O.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-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as extractFilePathsFromEntries,d as formatWorkScopeBlock,f as isUsefulScopePath,b as resolveWorkScope,a as resolveWorkScopeSync,e as toLikelyFileHits};
|
|
@@ -0,0 +1,61 @@
|
|
|
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{i as we}from"./chunk-YQ6HM3YO.mjs";import{a as le,c as ae}from"./chunk-TDTPDVUM.mjs";import{a as de}from"./chunk-GTG67Z45.mjs";import{b as D,d as F}from"./chunk-KIRU4QFX.mjs";import{a as z,c as me,d as ue,e as fe}from"./chunk-7QMBIMEX.mjs";import{b as ce}from"./chunk-VDXTMAMO.mjs";import{a as $}from"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as h,b as se,d as g,e as b,f as K,g as y,i as S,l as ie}from"./chunk-5MN22JFI.mjs";import{a as pe}from"./chunk-V5VCXMKO.mjs";import{b as M,c as v,d as k,f as re}from"./chunk-FOWTB762.mjs";import{a as ne}from"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.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-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import{a as O}from"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import{b as oe}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as m}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.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-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{l as te,p as Ue}from"./chunk-HYIT7MF5.mjs";import{a as ee,e as T,g as q}from"./chunk-225DWS4D.mjs";import{a as u}from"./chunk-3TRXQAU4.mjs";q();var De=[{type:"help",patterns:/^help\b/i},{type:"add",patterns:/^add\b/i},{type:"gate",patterns:/^gate\b/i},{type:"instruction",patterns:/^instruction\b/i},{type:"remove",patterns:/^rm\b/i},{type:"reset",patterns:/^reset\b/i},{type:"init",patterns:/^init\b/i},{type:"create",patterns:/^(?:create|new)\b/i},{type:"list",patterns:/^list\b/i},{type:"delete",patterns:/^delete\b/i},{type:"run",patterns:/^run\b/i},{type:"disable",patterns:/^disable\b/i},{type:"view",patterns:/^(?:show|view)\b/i}];function ge(c){let n=c.trim();for(let{type:r,patterns:e}of De){let s=n.match(e);if(s){let t=s[0],o=n.slice(t.length).trim();return{type:r,args:o,confidence:"exact"}}}return{type:"view",args:n,confidence:"exact"}}u(ge,"detectIntent");function G(c){let n=c.trim();if(n.startsWith('"')){let e=n.indexOf('"',1);return e===-1?[n.slice(1),""]:[n.slice(1,e),n.slice(e+1).trim()]}if(n.startsWith("'")){let e=n.indexOf("'",1);return e===-1?[n.slice(1),""]:[n.slice(1,e),n.slice(e+1).trim()]}let r=n.match(/^(.+?)\s+(before|after)\s+/i);return r?[r[1].trim(),n.slice(r[1].length).trim()]:[n,""]}u(G,"parseAction");function he(c,n){let r=n.toLowerCase();return c.filter(e=>e.action.toLowerCase().includes(r)||(e.description?.toLowerCase().includes(r)??!1)||e.command.toLowerCase().includes(r)||String(e.id)===r)}u(he,"searchRules");var P={HOOK_DEFAULT_MS:6e4,GATE_DEFAULT_MS:6e4,GATE_QUICK_MS:5e3,STEP_LINT_MS:12e4,STEP_TEST_MS:3e5,INSTRUCTION_MS:0};var Q=["task","done","ship","sync"],ke=["before","after"];function H(){return{description:null,enabled:!0,sortOrder:0,createdAt:new Date().toISOString()}}u(H,"newRuleDefaults");function be(c,n){return c.slice(c.indexOf(n)+n.length).trim()}u(be,"restAfterWorkflowName");async function ye(c,n,r){let[e,s]=G(c);if(!e||!s)return k('Usage: prjct workflow add "command" before|after <task|done|ship|sync>',r);let t=s.split(/\s+/),o=t[0]?.toLowerCase(),d=t[1]?.toLowerCase();if(!o||!ke.includes(o))return k('Position must be "before" or "after"',r);let i=F(n,d,r);if(!i.ok)return i.result;let a=$.addRule(n,{type:"hook",command:i.value.name,position:o,action:e,timeoutMs:P.HOOK_DEFAULT_MS,...H()});return r.md?console.log(h(S("Rule Added",`#${a} [hook] ${o} ${i.value.name} \u2192 \`${e}\``),y([{label:"View all rules",command:"prjct workflow --md"},{label:"Remove this rule",command:`prjct workflow rm ${a} --md`}]))):v(`rule #${a} added: [hook] ${o} ${i.value.name} \u2192 ${e}`),{success:!0,ruleId:a}}u(ye,"workflowAdd");async function Re(c,n,r){let e=c.trim().split(/\s+/)[0]?.toLowerCase(),s=F(n,e,r);if(!s.ok)return s.result;let t=be(c,s.value.name),[o]=G(t);if(!o)return k('Usage: prjct workflow gate <command> "shell command"',r);let d=$.addRule(n,{type:"gate",command:s.value.name,position:"before",action:o,timeoutMs:P.GATE_DEFAULT_MS,...H()});return r.md?console.log(h(S("Gate Added",`#${d} [gate] before ${s.value.name} \u2192 \`${o}\``),y([{label:"View all rules",command:"prjct workflow --md"},{label:"Remove this gate",command:`prjct workflow rm ${d} --md`}]))):v(`gate #${d} added: before ${s.value.name} \u2192 ${o}`),{success:!0,ruleId:d}}u(Re,"workflowGate");async function Se(c,n,r){let e=c.trim().split(/\s+/)[0]?.toLowerCase(),s=F(n,e,r);if(!s.ok)return s.result;let t=be(c,s.value.name),o=t.match(/^(before|after)\s+/i);if(!o)return k('Usage: prjct workflow instruction <command> before|after "instruction text"',r);let d=o[1].toLowerCase(),i=t.slice(o[0].length).trim(),[a]=G(i);if(!a)return k('Usage: prjct workflow instruction <command> before|after "instruction text"',r);let l=$.addRule(n,{type:"instruction",command:s.value.name,position:d,action:a,timeoutMs:P.INSTRUCTION_MS,...H()});return r.md?console.log(h(S("Instruction Added",`#${l} [instruction] ${d} ${s.value.name} \u2192 \`${a}\``),y([{label:"View all rules",command:"prjct workflow --md"},{label:"Remove this rule",command:`prjct workflow rm ${l} --md`}]))):v(`instruction #${l} added: ${d} ${s.value.name} \u2192 ${a}`),{success:!0,ruleId:l}}u(Se,"workflowInstruction");async function ve(c,n,r){let e=parseInt(c.trim(),10);return Number.isNaN(e)?k("Usage: prjct workflow rm <rule-id>",r):$.removeRule(n,e)?(r.md?console.log(h(S("Rule Removed",`Removed rule #${e}`))):v(`removed rule #${e}`),{success:!0}):k(`Rule #${e} not found`,r)}u(ve,"workflowRm");async function je(c,n){let r=$.resetRules(c),e=`Removed ${r} rule${r!==1?"s":""}`;return n.md?console.log(h(S("Rules Reset",e))):v(`reset: ${e.toLowerCase()}`),{success:!0,count:r}}u(je,"workflowReset");async function xe(c,n,r){let e=c.trim(),s=parseInt(e,10);if(!Number.isNaN(s)){let l=$.getRuleById(n,s);if(!l)return k(`Rule #${s} not found`,r);if(!l.enabled){let f=`Rule #${s} is already disabled`;return r.md?console.log(`> ${f}`):M(f),{success:!0,message:f}}return $.updateRule(n,s,{enabled:!1}),r.md?console.log(h(S("Rule Disabled",`#${s} [${l.type}] ${l.action}`),y([{label:"Re-enable this rule",command:`prjct workflow enable ${s} --md`},{label:"View all rules",command:"prjct workflow --md"}]))):v(`disabled rule #${s}: ${l.action}`),{success:!0,ruleId:s}}let t=$.getAllRules(n),o=he(t,e);if(o.length===0)return k(`No rules matching "${e}"`,r);if(o.length===1){let l=o[0];return $.updateRule(n,l.id,{enabled:!1}),r.md?console.log(h(S("Rule Disabled",`#${l.id} [${l.type}] ${l.action}`))):v(`disabled rule #${l.id}: ${l.action}`),{success:!0,ruleId:l.id}}let d=o.slice(0,5),i=o.length-5,a=i>0?`...and ${i} more`:null;if(r.md){let l=d.map(f=>`#${f.id} [${f.type}] ${f.position} ${f.command} -> \`${f.action}\``);a&&l.push(a),console.log(h(g("Multiple matches",`${o.length} rules match "${e}"`),b(l),y(d.map(f=>({label:`Disable #${f.id}`,command:`prjct workflow disable ${f.id} --md`})))))}else{M(`${o.length} rules match "${e}" \u2014 specify an ID:`);for(let l of d)console.log(` #${l.id} [${l.type}] ${l.position} ${l.command} -> ${l.action}`);a&&console.log(` ${a}`)}return{success:!0,matches:o.map(l=>l.id)}}u(xe,"workflowDisable");function Te(c,n){let r=n.filter(p=>p.type==="gate"&&p.position==="before"),e=n.filter(p=>p.type==="instruction"&&p.position==="before"),s=n.filter(p=>p.type==="hook"&&p.position==="before"),t=n.filter(p=>p.type==="step"&&p.position==="before"),o=n.filter(p=>p.type==="instruction"&&p.position==="after"),d=n.filter(p=>p.type==="hook"&&p.position==="after"),i=n.filter(p=>p.type==="step"&&p.position==="after"),a=[],l=u((p,L,C)=>{let R=L.map(W=>` ${W.enabled?C:"o"} #${W.id} ${W.action}`),A=[p,...R],I=Math.max(...A.map(W=>W.length))+2;a.push(`+${"-".repeat(I)}+`);for(let W of A)a.push(`| ${W.padEnd(I-1)}|`);a.push(`+${"-".repeat(I)}+`)},"drawBox"),f=u(p=>{p.push(" |"),p.push(" v")},"arrow");return r.length>0&&(l("GATES (must pass)",r,"#"),f(a)),e.length>0&&(l("INSTRUCTIONS (before)",e,"\u{1F4CB}"),f(a)),s.length>0&&(l("HOOKS (before)",s,">"),f(a)),t.length>0&&(l("STEPS (before)",t,">"),f(a)),a.push(` [ ${c.toUpperCase()} ]`),o.length>0&&(f(a),l("INSTRUCTIONS (after)",o,"\u{1F4CB}")),d.length>0&&(f(a),l("HOOKS (after)",d,">")),i.length>0&&(f(a),l("STEPS (after)",i,">")),a.join(`
|
|
8
|
+
`)}u(Te,"buildFlowDiagram");async function Ae(c){return c.md?console.log(h(g("Workflow Help","Manage hooks, gates, and steps for your workflow"),g("Commands",b(["`prjct workflow` \u2014 View all rules","`prjct workflow ship` \u2014 View rules for a command",'`prjct workflow add "npm test" before ship` \u2014 Add a hook','`prjct workflow gate ship "npm test"` \u2014 Add a blocking gate','`prjct workflow instruction ship after "Post review in Linear"` \u2014 Add an agent instruction',"`prjct workflow disable 3` \u2014 Disable rule #3","`prjct workflow rm 3` \u2014 Remove rule #3","`prjct workflow reset` \u2014 Remove all rules","`prjct workflow init` \u2014 Seed defaults from project"])),g("Natural Language (EN/ES)",b(['`prjct workflow "show ship rules"` \u2014 muestra / show / list / ver','`prjct workflow "add npm test before ship"` \u2014 a\xF1ade / add / agrega / pon','`prjct workflow "remove 3"` \u2014 quita / remove / elimina / borra','`prjct workflow "disable lint"` \u2014 deshabilita / disable / apaga','`prjct workflow "gate ship npm test"` \u2014 gate / bloquea'])))):(console.log(""),console.log("WORKFLOW HELP"),console.log("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),console.log(""),console.log(" Commands:"),console.log(" prjct workflow View all rules"),console.log(" prjct workflow <command> View rules for command"),console.log(' prjct workflow add "cmd" before ship Add a hook'),console.log(' prjct workflow gate ship "cmd" Add a blocking gate'),console.log(' prjct workflow instruction ship after "text" Add an agent instruction'),console.log(" prjct workflow disable <id|query> Disable a rule"),console.log(" prjct workflow rm <id> Remove a rule"),console.log(" prjct workflow reset Remove all rules"),console.log(" prjct workflow init Seed defaults"),console.log(""),console.log(" Natural language (EN/ES):"),console.log(" show/muestra add/a\xF1ade remove/quita disable/deshabilita gate/bloquea"),console.log("")),{success:!0}}u(Ae,"workflowHelp");async function B(c,n,r){let e=c!==null&&Q.includes(c),s=e?$.getRulesForCommand(n,c):$.getAllRules(n);if(s.length===0)return r.md?console.log(h(g("Workflow Rules","No rules configured"),y([{label:"Add a hook",command:'prjct workflow add "npm test" before ship --md'},{label:"Add a gate",command:'prjct workflow gate ship "npm test" --md'}]))):(M("no workflow rules configured"),console.log(""),console.log(' Add a hook: prjct workflow add "npm test" before ship'),console.log(' Add a gate: prjct workflow gate ship "npm test"'),console.log(" Reset all: prjct workflow reset")),{success:!0,rules:[]};if(r.md){let t=e?[c]:Q,o=[];for(let a of t){let l=s.filter(f=>f.command===a);l.length!==0&&o.push(Te(a,l))}let d=e?`Workflow: ${c}`:"Workflow Rules",i=`${s.length} rule${s.length!==1?"s":""}`;console.log(h(g(d,i),o.length>0?se(o.join(`
|
|
9
|
+
|
|
10
|
+
`),""):null,y([{label:"Add a hook",command:'prjct workflow add "cmd" before ship --md'},{label:"Add a gate",command:'prjct workflow gate ship "cmd" --md'},{label:"Remove a rule",command:"prjct workflow rm <id> --md"}])))}else{let t=e?`WORKFLOW RULES: ${c.toUpperCase()}`:"WORKFLOW RULES";console.log(""),console.log(t),console.log("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");for(let o of s){let d=o.enabled?"":" (disabled)";console.log(` #${o.id} [${o.type}] ${o.position.padEnd(6)} ${o.command.padEnd(5)} \u2192 ${o.action}${d}`)}console.log(""),console.log("Commands: add | gate | rm | reset")}return{success:!0,rules:s}}u(B,"workflowShow");q();Ue();import X from"node:fs/promises";import Fe from"node:os";import V from"node:path";var Y=class{static{u(this,"TemplateGenerator")}commandsPath;constructor(){this.commandsPath=V.join(Fe.homedir(),".claude","commands","p")}async generateWorkflowTemplate(n,r){try{await X.mkdir(this.commandsPath,{recursive:!0});let e=V.join(this.commandsPath,`${n}.md`),s=this.buildTemplateContent(n,r);return await X.writeFile(e,s,"utf-8"),{success:!0,path:e}}catch(e){return{success:!1,error:T(e)}}}async deleteWorkflowTemplate(n){try{let r=V.join(this.commandsPath,`${n}.md`);return await X.unlink(r),{success:!0}}catch(r){return ee(r)?{success:!0}:{success:!1,error:T(r)}}}async templateExists(n){let r=V.join(this.commandsPath,`${n}.md`);return te(r)}buildTemplateContent(n,r){return`---
|
|
11
|
+
allowed-tools: [Bash, Read, Write, Edit, Glob, Grep, Task, AskUserQuestion]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# p. ${n} $ARGUMENTS
|
|
15
|
+
|
|
16
|
+
## Description
|
|
17
|
+
${r}
|
|
18
|
+
|
|
19
|
+
## Step 1: Get workflow context
|
|
20
|
+
|
|
21
|
+
Execute the workflow to get current configuration:
|
|
22
|
+
|
|
23
|
+
\`\`\`bash
|
|
24
|
+
prjct workflow run ${n} --md
|
|
25
|
+
\`\`\`
|
|
26
|
+
|
|
27
|
+
## Step 2: Execute workflow
|
|
28
|
+
|
|
29
|
+
The CLI will execute all configured rules for this workflow:
|
|
30
|
+
|
|
31
|
+
- **Gates** (before) - must pass to continue
|
|
32
|
+
- **Hooks** (before/after) - run but don't block
|
|
33
|
+
- **Steps** (before/after) - blocking execution
|
|
34
|
+
|
|
35
|
+
## Step 3: Review results
|
|
36
|
+
|
|
37
|
+
Present the workflow execution results to the user. If gates failed, explain which checks didn't pass and suggest next steps.
|
|
38
|
+
|
|
39
|
+
## Next Steps
|
|
40
|
+
|
|
41
|
+
Suggest relevant actions based on the workflow results:
|
|
42
|
+
|
|
43
|
+
- View rules: \`prjct workflow ${n} --md\`
|
|
44
|
+
- Add rules: \`prjct workflow add "command" before ${n} --md\`
|
|
45
|
+
- Run again: \`p. ${n}\`
|
|
46
|
+
`}},J=new Y;q();async function We(c,n,r){let e=$.getRulesForCommand(c,"ship").filter(i=>i.position==="before");if(e.length>0)return k(`Ship workflow already has ${e.length} rule${e.length!==1?"s":""}. Use 'prjct workflow reset' first if you want to reinitialize.`,r);let s=await ne(n),t=[],o=u(()=>new Date().toISOString(),"ts"),d=$.addRule(c,{type:"gate",command:"ship",position:"before",action:'git branch --show-current | grep -vE "^(main|master)$"',description:"Prevent shipping from main branch",enabled:!0,timeoutMs:P.GATE_QUICK_MS,sortOrder:0,createdAt:o()});if(t.push(`#${d} [gate] prevent main branch`),s.lint){let i=$.addRule(c,{type:"step",command:"ship",position:"before",action:`${s.lint.command} || true`,description:"Lint code",enabled:!0,timeoutMs:P.STEP_LINT_MS,sortOrder:1,createdAt:o()});t.push(`#${i} [step] lint \u2192 ${s.lint.command}`)}if(s.test){let i=$.addRule(c,{type:"step",command:"ship",position:"before",action:`${s.test.command} || true`,description:"Run tests",enabled:!0,timeoutMs:P.STEP_TEST_MS,sortOrder:s.lint?2:1,createdAt:o()});t.push(`#${i} [step] test \u2192 ${s.test.command}`)}if(r.md)console.log(h(S("Workflow Initialized",`Added ${t.length} default ship rules`),b(t),y([{label:"View all rules",command:"prjct workflow --md"},{label:"Ship your work",command:"prjct ship --md"}])));else{v(`initialized ${t.length} workflow rules for ship`);for(let i of t)console.log(` ${i}`)}return{success:!0,rulesAdded:t.length}}u(We,"workflowInit");async function Oe(c,n,r,e){let s=c.match(/^(\S+)\s+"([^"]+)"/);if(!s)return k('Usage: prjct workflow create <name> "description"',e);let[,t,o]=s;if(!O.isValidName(t))return k('Workflow name must be lowercase alphanumeric + hyphens (e.g., "qa", "deploy-prod")',e);if(O.isReservedName(t))return k(`Workflow name '${t}' is reserved`,e);if(O.getWorkflow(n,t))return k(`Workflow '${t}' already exists`,e);try{let d=O.createWorkflow(n,{name:t,description:o}),i=await J.generateWorkflowTemplate(t,o);return i.success?(e.md?console.log(h(S("Workflow Created",`Created workflow: ${t}`),g("Description",o),g("Template",`Installed at ${i.path}`),y([{label:"Add rules",command:`prjct workflow add "action" before ${t} --md`},{label:"View workflow",command:`prjct workflow ${t} --md`},{label:"Run workflow",command:`p. ${t}`}]))):(v(`created workflow: ${t}`),console.log(` ${o}`),console.log(` Template: ${i.path}`),console.log(`
|
|
47
|
+
Run with: p. ${t}`)),{success:!0,workflowId:d,name:t,templatePath:i.path}):(O.deleteWorkflow(n,t),k(`Failed to generate template: ${i.error}`,e))}catch(d){return k(T(d),e)}}u(Oe,"workflowCreate");async function Ce(c,n){let r=O.getAllWorkflows(c);if(r.length===0)return n.md?console.log("> No workflows found"):M("No workflows found"),{success:!0,workflows:[]};let e=r.filter(o=>o.isBuiltin),s=r.filter(o=>!o.isBuiltin),t=u(o=>`- **${o.name}** \u2014 ${o.description??""}`,"renderRow");if(n.md){let o=[];e.length>0&&o.push(g("Built-in Workflows",e.map(t).join(`
|
|
48
|
+
`))),s.length>0&&o.push(g("Custom Workflows",s.map(t).join(`
|
|
49
|
+
`))),console.log(h(...o,y([{label:"Create workflow",command:'prjct workflow create <name> "description" --md'},{label:"View workflow",command:"prjct workflow <name> --md"}])))}else{if(v(`${r.length} workflow${r.length!==1?"s":""}`),e.length>0){console.log(`
|
|
50
|
+
Built-in:`);for(let o of e)console.log(` ${o.name} \u2014 ${o.description}`)}if(s.length>0){console.log(`
|
|
51
|
+
Custom:`);for(let o of s)console.log(` ${o.name} \u2014 ${o.description}`)}}return{success:!0,workflows:r}}u(Ce,"workflowList");async function Ie(c,n,r){let e=c.trim();if(!e)return k("Usage: prjct workflow delete <name>",r);try{return O.deleteWorkflow(n,e)?(await J.deleteWorkflowTemplate(e),r.md?console.log(h(S("Workflow Deleted",`Deleted workflow: ${e}`))):v(`deleted workflow: ${e}`),{success:!0}):k(`Workflow '${e}' not found`,r)}catch(s){return k(T(s),r)}}u(Ie,"workflowDelete");var Ee=class extends pe{static{u(this,"WorkflowCommands")}async now(n=null,r=process.cwd(),e={}){try{let s=await D(r);if(!s.ok)return s.result;let t=s.value;if(e.extend){let w=await oe.acknowledgeTurnLimit(t,new Date().toISOString()),j=w?"Turn budget extended for the active cycle \u2014 the hard stop is lifted. Keep it honest: finish it, then `prjct status done`.":'No active cycle to extend. Start one with `prjct work "<intent>"`.';return e.md?console.log(`> ${j}`):m.done(j),{success:w,error:w?void 0:"no active cycle"}}if(!n)return this._showActiveTask(t,r,e);let o=e.geometry?.toLowerCase(),d=o==="direct"||o==="single"||o==="split"?o:void 0,i=await fe(t,r,n,{skipHooks:e.skipHooks,spec:e.spec,geometry:d});if(!i.ok)return{success:!1,error:i.blocked??"Task start blocked"};let a=i.description??n,l=i.taskId??"",f=i.linearId,p=i.branch??"",L=i.instructions??[],C=i.pipeline,R=i.harness,A=i.orchestration,_=(i.relatedContext??[]).slice(0,4),I=_.map(me),W=i.likelyFiles??[],N=W.map(ce),U=(i.risks??[]).map(ue),{buildAlignmentBrief:Pe}=await import("./project-alignment-ADKW3ZWQ.mjs"),Me=_.filter(w=>w.type==="pattern"||w.pattern),Le=_.filter(w=>w.type==="anti-pattern"||w.antiPattern),{stylePatterns:Ne,styleAntis:_e}=await(async()=>{try{let{getActiveProjectStyle:w}=await import("./project-style-evolution-5W25UPPN.mjs"),j=w(t);return j?{stylePatterns:[...j.payload.patterns.map(E=>({title:E.name,content:E.description})),...j.payload.conventions.map(E=>({title:E.category??"convention",content:E.rule}))],styleAntis:j.payload.antiPatterns.map(E=>({title:E.issue,content:E.suggestion}))}:{stylePatterns:[],styleAntis:[]}}catch{return{stylePatterns:[],styleAntis:[]}}})(),Z=Pe({patterns:[...Ne,...Me.map(w=>({title:w.title,content:w.pattern||w.detail}))],antiPatterns:[..._e,...Le.map(w=>({title:w.title,content:w.antiPattern||w.detail}))],neighborHint:W[0]?.path??null}),x=i.isolation;if(e.md){let w=h(K({description:a,status:"active"}),x?g("\u26A0 Isolated to worktree (foreign occupant)",b([x.reason,`Was: ${x.occupantSummary}`,`Worktree: \`${x.worktreePath}\``,`Branch: \`${x.branch}\``,`**Next:** \`cd ${x.worktreePath}\` and continue there`])):null,g("State",b([`Work cycle: \`${l}\``,p?`Branch: \`${p}\``:null,i.ownerAgent?`Owner: \`${i.ownerAgent}/${i.ownerIdentity??"?"}\``:null,f?`Linear: \`${f}\``:null,R?`Harness: ${R.level} ${R.kind}/${R.risk}`:null,R?.expectedEvidence.length?`Evidence: ${R.expectedEvidence.join(", ")}`:null,L.length>0?`Agent instructions: ${L.length}`:null].filter(j=>j!==null))),A?g("How to run this (orchestration)",[A.directive,A.cast&&A.cast.length>0?`
|
|
52
|
+
**Subagents:** ${A.cast.map(j=>`${j.name} (${j.role})`).join(" \xB7 ")}`:""].filter(Boolean).join("")):null,C?g("Task Pipeline",["> AUTHORITATIVE: this station state is computed from persisted pipeline data \u2014 follow `Next action` over your own phase inference.",b([`Classification: \`${C.classification}\``,`Station: \`${C.station}\``,`Requires spec: ${C.requiresSpec?"yes":"no"}`,`Tests first: ${C.requiresTestsFirst?"yes":"no"}`,`Next action: ${C.nextAction}`])].join(`
|
|
53
|
+
`)):null,L.length>0?g("Agent Instructions",b(L)):null,U.length>0?g("\u26A0 Risk \u2014 what bit us in this area before (read before you edit)",b(U)):null,g("Project alignment",Z.md),I.length>0?g("Living knowledge \u2014 SoT \xB7 tips (terminal \u2192 user)",["> **You are the tip channel** (no separate UI). On your next reply to the user, surface relevant lines as short terminal tips, then act.","> **SoT** = binding project truth \u2014 do not contradict without `prjct remember` superseding.","> **SUGGEST / tip** = propose the live modification in chat (files + action) and apply when editing.",b(I)].join(`
|
|
54
|
+
`)):null,N.length>0?g("Work scope \u2014 prjct (MUST before Grep/Glob)",["> Do NOT tree-walk. Open these first. Expand with `prjct guard <file>` or MCP `prjct_relevant_files` / `prjct_impact_analysis`. Memory+index+graph already ran.",b(N)].join(`
|
|
55
|
+
`)):g("Work scope \u2014 prjct","> No high-confidence files yet. MUST run `prjct context memory <topic>` + `prjct search` (and `prjct sync` if indexes cold) before Grep/Glob walks."),y([{label:"Synthesize context on close",command:'prjct remember context "..."'},{label:"Ship when done",command:"prjct ship --md"}]));console.log(we(w,2e3))}else{if(m.done(`Work: ${a}`),x&&(m.warn(x.reason),m.info(`Isolated \u2192 ${x.worktreePath} (${x.branch})`),m.info(`Next: cd ${x.worktreePath}`)),i.ownerAgent&&m.info(`Owner: ${i.ownerAgent}/${i.ownerIdentity??"?"}`),R&&(m.info(`Harness: ${R.level} ${R.kind}/${R.risk}`),R.expectedEvidence.length>0&&m.info(`Evidence: ${R.expectedEvidence.join(", ")}`)),A&&m.info(A.directive),m.info(Z.line),U.length>0){m.info("\u26A0 Risk \u2014 what bit us in this area before (read before you edit)");for(let w of U)m.info(` ${w}`)}if(I.length>0){m.info("Living knowledge \u2014 surface as terminal tips to the user (SoT binding \xB7 SUGGEST live mods)");for(let w of I)m.info(` ${w}`)}if(N.length>0){m.info("Work scope \u2014 prjct (MUST before Grep/Glob)");for(let w of N)m.info(` ${w}`)}else m.info("Work scope empty \u2014 run prjct context memory / search (or prjct sync) before Grep/Glob");ae("working"),le("task")}return{success:!0,task:a,taskId:l,harness:R}}catch(s){let t=T(s);return e.md?console.log(`> ${t}`):m.fail(t),{success:!1,error:t}}}async _showActiveTask(n,r,e){let s=await de(n,r),t=s.current,o=s.all.filter(i=>!i.isCurrent),d=await(async()=>{try{let{execFileAsync:i}=await import("./exec-34V6SJYO.mjs"),l=(await i("git",["status","--porcelain"],{cwd:r,timeout:2e3})).stdout.split(`
|
|
56
|
+
`).filter(Boolean).length,{renderDelegationTrigger:f}=await import("./task-orchestration-GS4J4KGS.mjs");return f(l)}catch{return null}})();if(!t){let i='no active work cycle. `prjct work "<intent>"` to start one.',a=o.length>0?`
|
|
57
|
+
${o.length} active in other workspace(s):
|
|
58
|
+
${o.map(f=>` ${f.label} ${f.description}`).join(`
|
|
59
|
+
`)}`:"",l=i+a;return e.md?console.log(`> ${l}`):m.info(l),{success:!0,message:"no active work cycle"}}if(e.md)console.log(h(K({description:t.description,status:"active"}),g("State",b([`Work cycle: \`${t.id}\``,`Workspace: \`${t.label}\``,t.branch?`Branch: \`${t.branch}\``:null,t.linearId?`Linear: \`${t.linearId}\``:null,`Started: ${t.startedAt}`,t.pipeline?`Pipeline: \`${t.pipeline.station}\``:null,t.harness?`Harness: ${t.harness.level} ${t.harness.kind}/${t.harness.risk}`:null,d,o.length>0?`Other active workspaces: ${o.length}`:null].filter(i=>i!==null))),t.pipeline?g("Next Action",b([t.pipeline.requiresTestsFirst?"Write tests before implementation for substantive work.":"Proceed directly for this trivial work."])):null,o.length>0?g("Other Active Workspaces",b(o.map(i=>`${i.label} \u2014 ${i.description}`))):null));else{m.info(`Active: ${t.description}`),m.info(`Workspace: ${t.label}`),t.pipeline&&m.info(`Pipeline: ${t.pipeline.station}`),t.harness&&m.info(`Harness: ${t.harness.level} ${t.harness.kind}/${t.harness.risk}`);for(let i of o)m.info(` other: ${i.label} \u2014 ${i.description}`)}return{success:!0,currentTask:t}}async workflow(n=null,r=process.cwd(),e={}){try{let s=await D(r,e);if(!s.ok)return s.result;let t=s.value,o=n?.trim()??"";if(!o)return B(null,t,e);if(o.toLowerCase()==="runs")return this.runs(t,e);let d=ge(o);switch(d.type){case"add":return ye(d.args,t,e);case"gate":return Re(d.args,t,e);case"instruction":return Se(d.args,t,e);case"remove":return ve(d.args,t,e);case"disable":return xe(d.args,t,e);case"reset":return je(t,e);case"init":return We(t,r,e);case"help":return Ae(e);case"create":return Oe(d.args,t,r,e);case"list":return Ce(t,e);case"delete":return Ie(d.args,t,e);case"run":return this.run(d.args,r,e);case"view":return B(d.args||null,t,e);default:return B(o.split(/\s+/)[0]?.toLowerCase()||null,t,e)}}catch(s){return e.md?console.log(`> Error: ${T(s)}`):m.fail(T(s)),re(s)}}async runs(n,r){let{getRecentWorkflowRuns:e}=await import("./run-recorder-EZQ32M55.mjs"),s=e(n,20);if(s.length===0){let o="No workflow runs recorded yet.";return r.md?console.log(`> ${o}`):m.info(o),{success:!0}}let t=s.map(o=>`- \`${o.command}\` \u2014 ${o.status} \xB7 ${o.steps} step(s) \xB7 gates ${o.gatesPassed}\u2713/${o.gatesFailed}\u2717`);return r.md?console.log(["## Workflow runs",...t].join(`
|
|
60
|
+
`)):m.info(["Workflow runs:",...t].join(`
|
|
61
|
+
`)),{success:!0}}async run(n,r=process.cwd(),e={}){try{let s=await D(r,e);if(!s.ok)return s.result;let t=s.value,o=n.trim();if(!o){let a="Usage: prjct workflow run <name>";return e.md?console.log(`> ${a}`):m.warn(a),{success:!1,error:a}}let d=O.getWorkflow(t,o);if(!d||!d.enabled){let a=`Workflow '${o}' not found`;return e.md?console.log(`> ${a}`):m.warn(a),{success:!1,error:a}}let i=await z(t,o,"before",{projectPath:r});if(!i.success){if(e.md)ie("failed","workflow_gates_failed",[{label:"View rules",command:`prjct workflow ${o} --md`}]);else if(m.fail("Workflow gates failed"),i.gatesFailed)for(let a of i.gatesFailed)console.log(` \u2717 ${a}`);return{success:!1,error:"Workflow gates failed",gatesFailed:i.gatesFailed}}return await z(t,o,"after",{projectPath:r}),e.md?console.log(h(S(`Workflow: ${o}`,d.description||""),y([{label:"View rules",command:`prjct workflow ${o} --md`},{label:"Run again",command:`p. ${o}`}]))):m.done(`${o} completed successfully`),{success:!0,workflow:o}}catch(s){let t=T(s);return e.md?console.log(`> Error: ${t}`):m.fail(t),{success:!1,error:t}}}};export{Ee as WorkflowCommands};
|
|
@@ -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 s}from"./chunk-V5VCXMKO.mjs";import"./chunk-7CI4AMVO.mjs";import{f as o,g as e}from"./chunk-4T7NGLNQ.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.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"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as t}from"./chunk-3TRXQAU4.mjs";e();var r=class extends s{static{t(this,"WorkflowsReferenceCommands")}async workflows(n=null,p=process.cwd(),i={}){return console.log(o()),{success:!0}}};export{r as WorkflowsReferenceCommands};
|
|
@@ -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 g}from"./chunk-GTG67Z45.mjs";import{c as u,d}from"./chunk-H2KNJUPN.mjs";import{c as w,e as k}from"./chunk-ESB4ALH2.mjs";import"./chunk-SO3ZPNWT.mjs";import{b as i}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.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-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as s}from"./chunk-3TRXQAU4.mjs";function b(e,o){return{taskId:e.id,description:e.description,ownerAgent:e.ownerAgent,ownerIdentity:e.ownerIdentity,startedAt:e.startedAt,workspaceId:o,branch:e.branch}}s(b,"asOwner");async function W(e,o,c){let t=c??w(o),r=await d(o),f=await g(e,o),p=r.isMain?await i.getCurrentTask(e):await i.getCurrentTaskForWorkspace(e,r.workspaceId),a=p?b(p,r.isMain?u:r.workspaceId):null,y=f.all.filter(n=>!n.isCurrent).map(n=>({taskId:n.id,description:n.description,startedAt:n.startedAt,workspaceId:n.workspaceId,branch:n.branch})),l=a!==null,I=l&&k(a,t);return{workspaceId:r.workspaceId,isMain:r.isMain,current:a,others:y,occupied:l,occupiedByMe:I}}s(W,"getOccupancy");function M(e,o,c){if(o==="off")return{isolate:!1,reason:"autoWorktree off"};if(!e.occupied||e.occupiedByMe)return{isolate:!1,reason:"workspace free or owned by caller"};let t=e.current,r=[t.ownerAgent,t.ownerIdentity].filter(Boolean).join("/")||"another agent";return e.isMain?o==="ask"?{isolate:!1,block:!0,occupant:t,reason:`Workspace owned by ${r} on "${t.description}" (${t.taskId.slice(0,8)}). Re-run with isolation (config multiAgent.autoWorktree=auto) or \`prjct switch <agent>\` to yield that cycle.`}:{isolate:!0,occupant:t,reason:`Branch/workspace owned by ${r} on "${t.description}" (${t.taskId.slice(0,8)}). Isolating to a sibling worktree.`}:{isolate:!1,block:!0,occupant:t,reason:`Workspace already owned by ${r} on "${t.description}" (${t.taskId.slice(0,8)}). Work elsewhere or \`prjct switch\` to take over.`}}s(M,"shouldIsolate");function $(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||`work-${Date.now().toString(36)}`}s($,"worktreeSlugFromIntent");export{W as getOccupancy,M as shouldIsolate,$ as worktreeSlugFromIntent};
|
|
@@ -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 s,p as b}from"./chunk-D62TAZG6.mjs";import{l as g,p as v}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as d}from"./chunk-3TRXQAU4.mjs";b();v();import l from"node:fs/promises";import n from"node:path";var k=".worktrees",f=class{static{d(this,"WorktreeService")}async create(t,e,r={}){let i=await this.getMainWorktree(t),a=n.join(i,k,e),h=r.branch||`feat/${e}`;await l.mkdir(n.join(i,k),{recursive:!0});let c=r.baseBranch?` ${r.baseBranch}`:"";await s(`git worktree add "${a}" -b "${h}"${c}`,{cwd:i});let{stdout:w}=await s("git rev-parse HEAD",{cwd:a});return{path:a,branch:h,commit:w.trim(),isMain:!1,slug:e}}async remove(t,e=!1){let r=await this.getMainWorktree(t),i=e?await s("git rev-parse --abbrev-ref HEAD",{cwd:t}).then(({stdout:a})=>a.trim()).catch(()=>{}):void 0;if(await s(`git worktree remove "${t}" --force`,{cwd:r}),e&&i&&i!=="main"&&i!=="master")try{await s(`git branch -D "${i}"`,{cwd:r})}catch{}}async list(t){let e=await this.getMainWorktree(t),{stdout:r}=await s("git worktree list --porcelain",{cwd:e});return this.parsePorcelainOutput(r,e)}async detect(t){try{let{stdout:e}=await s("git rev-parse --git-common-dir",{cwd:t}),{stdout:r}=await s("git rev-parse --git-dir",{cwd:t}),i=n.resolve(t,e.trim()),a=n.resolve(t,r.trim());if(i!==a){let{stdout:h}=await s("git rev-parse --abbrev-ref HEAD",{cwd:t}),{stdout:c}=await s("git rev-parse HEAD",{cwd:t}),{stdout:w}=await s("git rev-parse --show-toplevel",{cwd:t}),p=w.trim(),u=n.basename(p);return{path:p,branch:h.trim(),commit:c.trim(),isMain:!1,slug:u}}return null}catch{return null}}async getMainWorktree(t){try{let{stdout:r}=await s("git worktree list --porcelain",{cwd:t}),i=r.split(`
|
|
8
|
+
`)[0];if(i?.startsWith("worktree "))return i.replace("worktree ","").trim()}catch{}let{stdout:e}=await s("git rev-parse --show-toplevel",{cwd:t});return e.trim()}async setup(t,e){let r=n.join(e,".env");await g(r)&&await l.copyFile(r,n.join(t,".env"));let i=n.join(e,".prjct"),a=n.join(t,".prjct");await g(i)&&!await g(a)&&await l.symlink(i,a,"dir")}async teardown(t){}async clean(t){let e=await this.list(t),r=[],i=await this.getMainWorktree(t);await s("git worktree prune",{cwd:i});for(let a of e)a.isMain||await g(a.path)||r.push(a.slug);return r}parsePorcelainOutput(t,e){let r=[],i=t.trim().split(`
|
|
9
|
+
|
|
10
|
+
`);for(let a of i){if(!a.trim())continue;let h=a.trim().split(`
|
|
11
|
+
`),{wtPath:c,commit:w,branch:p,isBare:u}=h.reduce((o,m)=>(m.startsWith("worktree ")?o.wtPath=m.replace("worktree ","").trim():m.startsWith("HEAD ")?o.commit=m.replace("HEAD ","").trim():m.startsWith("branch ")?o.branch=m.replace("branch refs/heads/","").trim():m==="bare"?o.isBare=!0:m==="detached"&&(o.branch="(detached)"),o),{wtPath:"",commit:"",branch:"",isBare:!1});if(c){let o=c===e||u;r.push({path:c,branch:p,commit:w,isMain:o,slug:o?"main":n.basename(c)})}}return r}},M=new f;export{M as worktreeService};
|
|
@@ -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-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-3USVY66O.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-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as breakImpact,b as formatImpactMd};
|
|
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
5
5
|
const require = __createRequire(import.meta.url);
|
|
6
6
|
const __filename = __fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c,d,e}from"./chunk-
|
|
8
|
+
import{a,b,c,d,e}from"./chunk-H5AVBDCH.mjs";import"./chunk-TPESWBA7.mjs";import"./chunk-E66B27AL.mjs";export{a as KNOWN_AGENTS,b as detectRuntimeAgent,d as normalizeAgentName,c as resolveCallerIdentity,e as sameOwner};
|
|
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
5
5
|
const require = __createRequire(import.meta.url);
|
|
6
6
|
const __filename = __fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as E,b as I}from"./chunk-OWOPA2O7.mjs";import{a as P}from"./chunk-
|
|
8
|
+
import{a as E,b as I}from"./chunk-OWOPA2O7.mjs";import{a as P}from"./chunk-6RS7PNAN.mjs";import{a as O}from"./chunk-5WAONIPX.mjs";import{a as C}from"./chunk-5TBQNW2G.mjs";import"./chunk-HGZQWYBL.mjs";import{b as N,c as H,d as L}from"./chunk-H5AVBDCH.mjs";import{h as _}from"./chunk-25OGCQTR.mjs";import"./chunk-ANSRNEEI.mjs";import"./chunk-PPWPUEBH.mjs";import"./chunk-H4CA3XZ6.mjs";import"./chunk-NSTXHVTH.mjs";import{c as D,d as A}from"./chunk-XSJ7SPVR.mjs";import"./chunk-Y7MZA2G4.mjs";import"./chunk-TPESWBA7.mjs";import"./chunk-FEFP6JOL.mjs";import"./chunk-HNZ24HIK.mjs";import"./chunk-NCLONKOT.mjs";import"./chunk-22GFTUER.mjs";import"./chunk-YQ55MHKL.mjs";import"./chunk-QSAA6LZF.mjs";import"./chunk-KOGZCFBC.mjs";import"./chunk-BKJHD5JI.mjs";import"./chunk-CPR4FPXG.mjs";import"./chunk-3HGQPUKG.mjs";import"./chunk-ZJW27EUC.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-SJ75V4WG.mjs";import"./chunk-3CKNJ5RA.mjs";import"./chunk-R4ILCXKE.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3FBCOCPD.mjs";import{b as y}from"./chunk-6NMHVPAI.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import{a as x}from"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import{b as h}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import{d as f,g as v}from"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{b as m,h as V,l as S,n as Y,o as R,u as q}from"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a}from"./chunk-E66B27AL.mjs";q();import{spawn as X}from"node:child_process";v();V();v();function G(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}a(G,"parseEvidence");function $(t){return{id:t.id,projectId:t.project_id,taskId:t.task_id,taskDescription:t.task_description,fromAgent:t.from_agent,fromIdentity:t.from_identity,toAgent:t.to_agent,reason:t.reason,evidence:G(t.evidence),status:t.status,workspaceId:t.workspace_id,worktreePath:t.worktree_path,branch:t.branch,createdAt:t.created_at,acceptedAt:t.accepted_at,acceptedBy:t.accepted_by,expiresAt:t.expires_at}}a($,"toHandoff");function M(t){let e=new Date;return e.setTime(e.getTime()+Math.max(1,t)*36e5),e.toISOString()}a(M,"expiresAtIso");function W(t){let e=`hand_${x()}`,o=m(),n=t.ttlHours??24,r=t.evidence?JSON.stringify(t.evidence):null;return f.run(t.projectId,`INSERT INTO task_handoffs (
|
|
9
9
|
id, project_id, task_id, task_description, from_agent, from_identity,
|
|
10
10
|
to_agent, reason, evidence, status, workspace_id, worktree_path, branch,
|
|
11
11
|
created_at, accepted_at, accepted_by, expires_at
|