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,18 @@
|
|
|
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 y}from"./chunk-DZVOFEM5.mjs";import{b as l}from"./chunk-5EF5EOCL.mjs";import{E as x,y as h}from"./chunk-HU5ERAAV.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";import n from"chalk";x();import f from"chalk";var M=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],E=80,v={name:"prjct",icon:"\u26A1",signature:"\u26A1 prjct",spinner:{frames:M,speed:E},cli:{header:c(()=>`${f.cyan.bold("\u26A1")} ${f.cyan("prjct")}`,"header"),footer:c(()=>f.dim("\u26A1 prjct"),"footer"),spin:c((t,r)=>`${f.cyan("\u26A1")} ${f.cyan("prjct")} ${f.cyan(M[t%10])} ${f.dim(r||"")}`,"spin")},template:{header:"\u26A1 prjct",footer:"\u26A1 prjct"},commitFooter:"Generated with [p/](https://www.prjct.app/)",urls:{website:"https://prjct.app",docs:"https://prjct.app/docs"},getCommitFooter:c((t="claude")=>h(t).commitFooter,"getCommitFooter"),getSignature:c((t="claude")=>h(t).signature,"getSignature")},d=v;var $=d.spinner.speed,L={silent:{maxLines:0,maxCharsPerLine:0,showMetrics:!1},minimal:{maxLines:1,maxCharsPerLine:65,showMetrics:!1},compact:{maxLines:4,maxCharsPerLine:80,showMetrics:!0},verbose:{maxLines:1/0,maxCharsPerLine:1/0,showMetrics:!0}},s={currentTier:"compact",interval:null,frame:0,quietMode:!1};function _(t){s.currentTier=t}c(_,"setOutputTier");function F(){return s.currentTier}c(F,"getOutputTier");function b(){return L[s.currentTier]}c(b,"getTierConfig");var g={success:n.green("\u2713"),fail:n.red("\u2717"),warn:n.yellow("\u26A0"),info:n.blue("\u2139"),debug:n.dim("\u{1F527}"),bullet:n.dim("\u2022"),arrow:n.dim("\u2192"),check:n.green("\u2713"),cross:n.red("\u2717"),spinner:n.cyan("\u25D0")};function G(t){s.quietMode=t}c(G,"setQuietMode");var a=c((t,r)=>{if(!process.stdout.isTTY&&!process.stderr.isTTY)return t||"";let e=r??(b().maxCharsPerLine||l.FALLBACK_TRUNCATE);return t&&t.length>e?`${t.slice(0,e-1)}\u2026`:t||""},"truncate");function T(t,r){let e=r??b().maxLines;if(e===1/0||e===0)return t;let o=t.split(`
|
|
8
|
+
`);if(o.length<=e)return t;let u=o.slice(0,e),i=o.length-e;return`${u.join(`
|
|
9
|
+
`)}
|
|
10
|
+
${n.dim(`...${i} more lines`)}`}c(T,"limitLines");function k(t){let r=b();if(s.currentTier==="silent")return"";if(s.currentTier==="verbose")return JSON.stringify(t,null,2);if(typeof t!="object"||t===null)return a(String(t),r.maxCharsPerLine);let e=t;if("identifier"in e&&"title"in e){let i=[];return i.push(`${e.identifier}: ${a(String(e.title),r.maxCharsPerLine-10)}`),e.status&&i.push(`Status: ${e.status}`),e.priority&&e.priority!=="none"&&i.push(`Priority: ${e.priority}`),e.url&&s.currentTier==="compact"&&i.push(n.dim(String(e.url))),T(i.join(`
|
|
11
|
+
`),r.maxLines)}if("issues"in e&&Array.isArray(e.issues)){let i=e.issues,p=i.slice(0,r.maxLines).map(m=>{let S=m.priority&&m.priority!=="none"?` [${m.priority}]`:"";return`${m.identifier} ${a(String(m.title),l.ISSUE_TITLE)}${S}`});return i.length>r.maxLines&&p.push(n.dim(`...${i.length-r.maxLines} more`)),p.join(`
|
|
12
|
+
`)}let u=["id","name","title","status","message","success","error"].filter(i=>i in e);return u.length>0?T(u.map(i=>`${i}: ${a(String(e[i]),r.maxCharsPerLine-i.length-2)}`).join(`
|
|
13
|
+
`),r.maxLines):T(JSON.stringify(t,null,2),r.maxLines)}c(k,"formatForHuman");var w=c(()=>process.stdout.isTTY?process.stdout.write(`\r${" ".repeat(l.CLEAR_WIDTH)}\r`):!0,"clear"),P={start(){return s.quietMode||console.log(d.cli.header()),this},end(){return s.quietMode||console.log(d.cli.footer()),this},spin(t){return s.quietMode?this:(this.stop(),process.stdout.isTTY?(s.interval=setInterval(()=>{process.stdout.write(`\r${d.cli.spin(s.frame++,a(t,l.SPINNER_MSG))}`)},$),this):(process.stdout.write(`${d.cli.spin(0,a(t,l.SPINNER_MSG))}
|
|
14
|
+
`),this))},done(t,r){if(this.stop(),!s.quietMode){let e=[];r?.agents!==void 0&&e.push(`${r.agents}a`),r?.reduction!==void 0&&e.push(`${r.reduction}%`),r?.tokens!==void 0&&e.push(`${Math.round(r.tokens)}K`);let o=e.length>0?n.dim(` [${e.join(" | ")}]`):"";console.log(`${g.success} ${a(t,l.DONE_MSG)}${o}`)}return this},fail(t){return this.stop(),console.error(`${g.fail} ${a(t,l.FAIL_MSG)}`),this},failWithHint(t){this.stop();let r=typeof t=="string"?y(t):t;return console.error(),console.error(`${g.fail} ${r.message}`),r.file&&console.error(n.dim(` File: ${r.file}`)),r.hint&&console.error(n.yellow(` \u{1F4A1} ${r.hint}`)),r.docs&&console.error(n.dim(` Docs: ${r.docs}`)),console.error(),this},warn(t){return this.stop(),s.quietMode||console.log(`${g.warn} ${a(t,l.WARN_MSG)}`),this},info(t){return this.stop(),s.quietMode||console.log(`${g.info} ${t}`),this},debug(t){this.stop();let r=process.env.DEBUG==="1"||process.env.DEBUG==="true";return!s.quietMode&&r&&console.log(`${g.debug} ${n.dim(t)}`),this},success(t,r){return this.done(t,r)},list(t,r={}){if(this.stop(),s.quietMode)return this;let e=r.bullet||g.bullet,o=" ".repeat(r.indent||0);for(let u of t)console.log(`${o}${e} ${u}`);return this},table(t,r={}){if(this.stop(),s.quietMode||t.length===0)return this;let e=Object.keys(t[0]),o={};for(let u of e){o[u]=u.length;for(let i of t){let p=String(i[u]??"");p.length>o[u]&&(o[u]=p.length)}}if(r.header!==!1){let u=e.map(i=>i.padEnd(o[i])).join(" ");console.log(n.dim(u)),console.log(n.dim("\u2500".repeat(u.length)))}for(let u of t){let i=e.map(p=>String(u[p]??"").padEnd(o[p])).join(" ");console.log(i)}return this},box(t,r){if(this.stop(),s.quietMode)return this;let e=r.split(`
|
|
15
|
+
`),o=Math.max(t.length,...e.map(i=>i.length)),u="\u2500".repeat(o+2);console.log(n.dim(`\u250C${u}\u2510`)),console.log(`${n.dim("\u2502")} ${n.bold(t.padEnd(o))} ${n.dim("\u2502")}`),console.log(n.dim(`\u251C${u}\u2524`));for(let i of e)console.log(`${n.dim("\u2502")} ${i.padEnd(o)} ${n.dim("\u2502")}`);return console.log(n.dim(`\u2514${u}\u2518`)),this},section(t){return this.stop(),s.quietMode?this:(console.log(`
|
|
16
|
+
${n.bold(t)}`),console.log(n.dim("\u2500".repeat(t.length))),this)},stop(){return s.interval&&(clearInterval(s.interval),s.interval=null,w()),this},step(t,r,e){if(s.quietMode)return this;this.stop();let o=n.dim(`[${t}/${r}]`);return process.stdout.isTTY?(s.interval=setInterval(()=>{process.stdout.write(`\r${d.cli.spin(s.frame++,`${o} ${a(e,l.STEP_MSG)}`)}`)},$),this):(process.stdout.write(`${d.cli.spin(0,`${o} ${a(e,l.STEP_MSG)}`)}
|
|
17
|
+
`),this)},progress(t,r,e){if(s.quietMode)return this;this.stop();let o=Math.round(t/r*100),u=Math.round(o/10),i=10-u,p=n.cyan("\u2588".repeat(u))+n.dim("\u2591".repeat(i)),m=e?` ${a(e,l.PROGRESS_TEXT)}`:"";return process.stdout.isTTY?(s.interval=setInterval(()=>{process.stdout.write(`\r${d.cli.spin(s.frame++,`[${p}] ${o}%${m}`)}`)},$),this):(process.stdout.write(`${d.cli.spin(0,`[${p}] ${o}%${m}`)}
|
|
18
|
+
`),this)}},U=P;export{L as a,_ as b,F as c,b as d,G as e,T as f,k as g,U as h};
|
|
@@ -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{b as r,p as o}from"./chunk-D62TAZG6.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";o();import{existsSync as u}from"node:fs";import a from"node:path";var l=[".github/pull_request_template.md",".github/PULL_REQUEST_TEMPLATE.md",".github/PULL_REQUEST_TEMPLATE/default.md","docs/pull_request_template.md",".gitlab/merge_request_templates/default.md"];function m(t){for(let n of l)if(u(a.join(t,n)))return n;return null}i(m,"findPrTemplate");async function g(t){try{let{stdout:n}=await r("git",["remote","get-url","origin"],{cwd:t,timeout:3e3}),e=n.toString().trim();return e?/(^|[./@])github\.com([/:]|$)/.test(e)?"github":"other":null}catch{return null}}i(g,"getRemoteHost");async function f(t){let n=m(t);if(n)return{kind:"template",templatePath:n};let e=await g(t);return e==="github"?{kind:"github-ambiguous"}:e==="other"?{kind:"non-github"}:{kind:"no-remote"}}i(f,"detectPrConventionSignal");function h(t){return t.kind==="non-github"||t.kind==="no-remote"?"manual":"auto"}i(h,"defaultPrConventionFor");export{f as a,h as b};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{c as P}from"./chunk-ZKJZDOPT.mjs";import{d as w}from"./chunk-JPMUJY42.mjs";import{b as M,f as N}from"./chunk-XYDLXF5A.mjs";import{c,d as u,e as g,f as d,g as p}from"./chunk-2EEMQV7N.mjs";import{e as A,g as I}from"./chunk-TTN2CFZC.mjs";import{l as o,p as T}from"./chunk-HYIT7MF5.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";T();import a from"node:path";p();var O=`${g}
|
|
8
|
+
- project facts (stack/commands): see \`PRJCT.md\``,y=`${c}
|
|
9
|
+
${O}
|
|
10
|
+
${u}
|
|
11
|
+
`;async function _(t){return d(t,"AGENTS.md",y)}r(_,"writeProjectAgentsMd");p();var D="@PRJCT.md",U=`${c}
|
|
12
|
+
${D}
|
|
13
|
+
${u}
|
|
14
|
+
`;async function E(t){return d(t,"CLAUDE.md",U)}r(E,"writeProjectClaudeMd");N();import R from"node:fs/promises";import l from"node:path";T();I();async function K(t){let e=M(t);return e||R.readFile(l.join(A,"templates",t),"utf-8")}r(K,"loadTemplate");async function L(t,e,s){let i=l.join(t,e);await R.mkdir(l.dirname(i),{recursive:!0}),await R.writeFile(i,await K(s),"utf-8")}r(L,"writeRule");async function j(t,e={}){let s=new Set(e.agents??[]),i=[];for(let n of w())(s.has(n.relativePath.split("/")[0].replace(/^\./,""))||n.detectPath&&await o(l.join(t,n.detectPath)))&&(await L(t,n.relativePath,n.templateKey),i.push(n.relativePath));return{written:i}}r(j,"writeProjectIdeRules");async function W(t){let[e,s,i]=await Promise.all([o(a.join(t,"PRJCT.md")),o(a.join(t,"AGENTS.md")),o(a.join(t,"CLAUDE.md"))]);return e||s||i}r(W,"hasAdoptedSurfaces");async function it(t,e={}){if(!(e.explicit||e.refreshIfAdopted&&await W(t)))return{prjctMd:{action:"unchanged",path:a.join(t,"PRJCT.md")},agentsMd:{action:"unchanged",path:a.join(t,"AGENTS.md")},ideRules:[]};let i=new Set(e.agents??[]),n=await o(a.join(t,"CLAUDE.md")),m=i.has("claude")||n,[x,S,f,C]=await Promise.all([P(t),_(t),m?E(t):void 0,j(t,e)]);return{prjctMd:x,agentsMd:S,...f?{claudeMd:f}:{},ideRules:C.written}}r(it,"writeProjectAgentSurfaces");export{it as a};
|
|
@@ -0,0 +1,30 @@
|
|
|
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 R}from"./chunk-L5LFLI4R.mjs";import{a}from"./chunk-5YLI5V3Q.mjs";import{b as h}from"./chunk-LZC6NGB6.mjs";import{f as l,i as E}from"./chunk-DMO3ZFUG.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";E();var _="land-receipt",k="judgment-receipt",g="receipt-v1";function D(e){let s=e.trapsSurfaced??[],t=e.decisions??[],n=(e.journal??[]).filter(r=>r.trim()),o=(e.openRisksNext??[]).filter(r=>r.trim()),u=e.cycleDescription?.trim()||null,y=e.tokensIn!=null||e.tokensOut!=null||!!e.model;if(!u&&s.length===0&&t.length===0&&n.length===0&&o.length===0&&!y)return null;let i=["# Judgment Receipt",""],m=[];if(u&&m.push(`cycle: "${a(u,100)}"`),n.length>0&&m.push(`journal: ${n.slice(0,4).map(r=>a(r,70)).join(" \xB7 ")}`),m.length>0&&i.push("## Applied judgment",...m.map(r=>`- ${r}`),""),s.length>0&&i.push("## Traps re-surfaced",...s.slice(0,8).map(r=>`- **[${r.type}]** ${a(r.title,100)} \`${r.id}\``),""),t.length>0&&i.push("## Decisions contested or honored",...t.slice(0,8).map(r=>`- **${r.status}** [${r.type}] ${a(r.title,100)} \`${r.id}\``),""),o.length>0||u){let r=o.length>0?o.slice(0,5).map(d=>`- ${a(d,120)}`):["- Finish or pause open cycle; next agent: `prjct prime` / `prjct work --md`."];i.push("## Open risks / next",...r,"")}if(y){let r=[];if(e.tokensIn!=null||e.tokensOut!=null){let d=e.tokensIn??0,f=e.tokensOut??0;r.push(`tokens in=${d} out=${f} total=${d+f}`)}e.model&&r.push(`model=${e.model}`),e.author&&r.push(`author=${e.author}`),i.push("## Session economics",`- ${r.join(" \xB7 ")}`,"")}return i.push("_Closed-loop judgment continuity \u2014 not bulk memory. Proof of traps prevented and decisions applied._"),i.join(`
|
|
8
|
+
`).trim()}c(D,"buildJudgmentReceipt");function I(e){if(!e)return null;let s=(e.match(/## Traps re-surfaced/g)||[]).length,t=p(e,"Traps re-surfaced"),n=p(e,"Decisions contested or honored"),o=[];return t>0&&o.push(`${t} trap(s) re-surfaced`),n>0&&o.push(`${n} decision(s) tracked`),o.length===0&&o.push("session judgment landed"),`Judgment receipt: ${o.join(", ")}`}c(I,"summarizeJudgmentReceipt");function p(e,s){let t=new RegExp(`## ${s}\\n([\\s\\S]*?)(?=\\n## |\\n_|$)`),n=e.match(t);return n?(n[1].match(/^- /gm)||[]).length:0}c(p,"countSectionBullets");async function S(e,s,t){let n=D(t);if(!n)return{wrote:!1,content:null,summary:null,reason:"nothing-to-receipt"};try{return await h.remember(e,{type:"context",content:n,tags:{source:_,topic:k,capture:g,synthesis:"deterministic"},provenance:"extracted",projectId:s}),{wrote:!0,content:n,summary:I(n)}}catch(o){return{wrote:!1,content:n,summary:I(n),reason:`remember-failed: ${o.message}`}}}c(S,"persistJudgmentReceipt");async function b(e){let s=R(e.projectId,e.cycleId),t=O(e.projectId),n=j(e.projectId);return S(e.projectPath,e.projectId,{cycleDescription:e.cycleDescription,cycleId:e.cycleId,journal:s,trapsSurfaced:t,decisions:n,tokensIn:e.tokensIn,tokensOut:e.tokensOut,model:e.model,author:e.author,openRisksNext:e.cycleDescription?["Open cycle still needs finish or pause before context dies."]:[]})}c(b,"synthesizeJudgmentReceipt");function C(e){try{let s=Date.now()-864e5,n=l.query(e,`SELECT me.id, me.content
|
|
9
|
+
FROM memory_entries me
|
|
10
|
+
JOIN memory_entry_tags t ON t.entry_id = me.id
|
|
11
|
+
WHERE me.deleted_at IS NULL
|
|
12
|
+
AND me.created_at >= ?
|
|
13
|
+
AND t.key = 'capture' AND t.value = ?
|
|
14
|
+
ORDER BY me.created_at DESC
|
|
15
|
+
LIMIT 1`,s,g)[0];return n?{id:n.id,content:n.content,trapCount:p(n.content,"Traps re-surfaced")}:null}catch{return null}}c(C,"latestJudgmentReceipt24h");function T(e,s){try{let t=s??0;return l.get(e,`SELECT COUNT(*) AS c
|
|
16
|
+
FROM memory_entries me
|
|
17
|
+
JOIN memory_entry_tags t ON t.entry_id = me.id
|
|
18
|
+
WHERE me.deleted_at IS NULL
|
|
19
|
+
AND me.created_at >= ?
|
|
20
|
+
AND t.key = 'capture' AND t.value = ?`,t,g)?.c??0}catch{return 0}}c(T,"countReceiptsWritten");function O(e){try{return l.query(e,`SELECT id, type, content FROM memory_entries
|
|
21
|
+
WHERE deleted_at IS NULL
|
|
22
|
+
AND type IN ('gotcha', 'anti-pattern')
|
|
23
|
+
ORDER BY created_at DESC
|
|
24
|
+
LIMIT 5`).map(t=>({id:t.id,type:t.type,title:t.content.replace(/\s+/g," ").trim().slice(0,120)}))}catch{return[]}}c(O,"recentSurfacedTraps");function j(e){try{return l.query(e,`SELECT me.id, me.type, me.content, t.value AS action
|
|
25
|
+
FROM memory_entries me
|
|
26
|
+
JOIN memory_entry_tags t ON t.entry_id = me.id AND t.key = 'conflict_action'
|
|
27
|
+
WHERE me.deleted_at IS NULL
|
|
28
|
+
AND me.created_at >= ?
|
|
29
|
+
ORDER BY me.created_at DESC
|
|
30
|
+
LIMIT 8`,Date.now()-864e5).map(t=>({id:t.id,type:t.type,title:t.content.replace(/\s+/g," ").trim().slice(0,120),status:t.action==="deny"||t.action==="warn"?"contested":"honored"}))}catch{return[]}}c(j,"recentConflictDecisions");export{_ as a,k as b,g as c,D as d,I as e,S as f,b as g,C as h,T as i};
|
|
@@ -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 r}from"./chunk-3TRXQAU4.mjs";import{createHash as s}from"node:crypto";function e(n){return s("sha256").update(n).digest("hex")}r(e,"sha256");function c(n){return e(n).slice(0,16)}r(c,"sha256Short");function f(n){return s("md5").update(n).digest("hex")}r(f,"md5");function g(n){let t=n&&typeof n=="object"&&!Array.isArray(n)?JSON.stringify(i(n)):JSON.stringify(n);return e(t)}r(g,"hashPayload");function i(n){let t={};for(let o of Object.keys(n).sort())t[o]=n[o];return t}r(i,"sortKeys");export{e as a,c as b,f as c,g as d};
|
|
@@ -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 P,b as v}from"./chunk-76YMLNLF.mjs";import{b as y}from"./chunk-3USVY66O.mjs";import{F as f,G as S,e as g,l as M}from"./chunk-HU5ERAAV.mjs";import{e as h,g as k}from"./chunk-225DWS4D.mjs";import{a as l}from"./chunk-3TRXQAU4.mjs";var b=class{static{l(this,"PrjctCommands")}_workflow;workflowG(){return this._workflow??=import("./workflow-FGJVLRQ3.mjs").then(e=>new e.WorkflowCommands).catch(e=>{throw this._workflow=void 0,e})}_planning;planningG(){return this._planning??=import("./planning-S3MYVWH6.mjs").then(e=>new e.PlanningCommands).catch(e=>{throw this._planning=void 0,e})}_shipping;shippingG(){return this._shipping??=import("./shipping-I4D4AVTE.mjs").then(e=>new e.ShippingCommands).catch(e=>{throw this._shipping=void 0,e})}_analysis;analysisG(){return this._analysis??=import("./analysis-3A7ODSSI.mjs").then(e=>new e.AnalysisCommands).catch(e=>{throw this._analysis=void 0,e})}_setupCmds;setupCmdsG(){return this._setupCmds??=import("./setup-GHS24ER5.mjs").then(e=>new e.SetupCommands).catch(e=>{throw this._setupCmds=void 0,e})}_updateCmds;updateCmdsG(){return this._updateCmds??=import("./update-4IE6SA6M.mjs").then(e=>new e.UpdateCommands).catch(e=>{throw this._updateCmds=void 0,e})}_contextCmds;contextCmdsG(){return this._contextCmds??=import("./context-DDHC7VIC.mjs").then(e=>new e.ContextCommands).catch(e=>{throw this._contextCmds=void 0,e})}_primitivesCmds;primitivesCmdsG(){return this._primitivesCmds??=import("./primitives-IXAYLX7U.mjs").then(e=>new e.PrimitiveCommands).catch(e=>{throw this._primitivesCmds=void 0,e})}_seedCmds;seedCmdsG(){return this._seedCmds??=import("./seed-JX7W53E5.mjs").then(e=>new e.SeedCommands).catch(e=>{throw this._seedCmds=void 0,e})}_installCmds;installCmdsG(){return this._installCmds??=import("./install-XP4S6HWQ.mjs").then(e=>new e.InstallCommands).catch(e=>{throw this._installCmds=void 0,e})}_captureCmds;captureCmdsG(){return this._captureCmds??=import("./capture-7LQ52T6L.mjs").then(e=>new e.CaptureCommands).catch(e=>{throw this._captureCmds=void 0,e})}_mcpCmds;mcpCmdsG(){return this._mcpCmds??=import("./mcp-FLVIZBV2.mjs").then(e=>new e.McpCommands).catch(e=>{throw this._mcpCmds=void 0,e})}_teamCmds;teamCmdsG(){return this._teamCmds??=import("./team-XZ4Q6UBV.mjs").then(e=>new e.TeamCommands).catch(e=>{throw this._teamCmds=void 0,e})}_configCmds;configCmdsG(){return this._configCmds??=import("./config-W3RHV3GK.mjs").then(e=>new e.ConfigCommands).catch(e=>{throw this._configCmds=void 0,e})}_embeddingsCmds;embeddingsCmdsG(){return this._embeddingsCmds??=import("./embeddings-7A5Z5I67.mjs").then(e=>new e.EmbeddingsCommands).catch(e=>{throw this._embeddingsCmds=void 0,e})}_guardCmds;guardCmdsG(){return this._guardCmds??=import("./guard-FJBJ6IAE.mjs").then(e=>new e.GuardCommands).catch(e=>{throw this._guardCmds=void 0,e})}_specCmds;specCmdsG(){return this._specCmds??=import("./spec-2XXPLHUZ.mjs").then(e=>new e.SpecCommands).catch(e=>{throw this._specCmds=void 0,e})}agent;agentInfo;currentAuthor;prjctDir;constructor(){this.agent=null,this.agentInfo=null,this.currentAuthor=null,this.prjctDir=".prjct"}async task(e=null,t=process.cwd(),n={}){return(await this.workflowG()).now(e,t,n)}async workflowPrefs(e=null,t=process.cwd(),n={}){return(await this.workflowG()).workflow(e,t,n)}async init(e=null,t=process.cwd()){return(await this.planningG()).init(e,t)}async ship(e,t=process.cwd(),n={}){return(await this.shippingG()).ship(e,t,{...n})}async analyze(e={},t=process.cwd()){return(await this.analysisG()).analyze(e,t)}async sync(e=process.cwd(),t={}){return(await this.analysisG()).sync(e,t)}async saveLlmAnalysis(e,t=process.cwd(),n={}){return(await this.analysisG()).saveLlmAnalysis(e,t,n)}async context(e=null,t=process.cwd(),n={}){return(await this.contextCmdsG()).context(e,t,n)}async search(e=null,t=process.cwd(),n={}){return(await this.contextCmdsG()).search(e,t,n)}async status(e=null,t=process.cwd(),n={}){return(await this.primitivesCmdsG()).status(e,t,n)}async tag(e=null,t=process.cwd(),n={}){return(await this.primitivesCmdsG()).tag(e,t,n)}async remember(e=null,t=process.cwd(),n={}){return(await this.primitivesCmdsG()).remember(e,t,n)}async forget(e=null,t=process.cwd(),n={}){return(await this.primitivesCmdsG()).forget(e,t,n)}async close(e=null,t=process.cwd(),n={}){return(await this.primitivesCmdsG()).close(e,t,n)}async seed(e=null,t=process.cwd(),n={}){return(await this.seedCmdsG()).seed(e,t,n)}async install(e=null,t=process.cwd(),n={}){return(await this.installCmdsG()).install(null,t,n)}async capture(e=null,t=process.cwd(),n={}){return(await this.captureCmdsG()).capture(e,t,n)}async mcp(e=null,t=process.cwd(),n={}){return(await this.mcpCmdsG()).mcp(e,t,n)}async team(e=null,t=process.cwd(),n={}){return(await this.teamCmdsG()).team(e,t,n)}async config(e=null,t=process.cwd(),n={}){return(await this.configCmdsG()).config(e,t,n)}async embeddings(e=null,t=process.cwd(),n={}){return(await this.embeddingsCmdsG()).embeddings(e,t,n)}async guard(e=null,t=process.cwd(),n={}){return(await this.guardCmdsG()).guard(e,t,n)}async auth(e=null,t={}){return(await this.setupCmdsG()).auth(e,t)}async login(e={}){return(await this.setupCmdsG()).login(e)}async logout(){return(await this.setupCmdsG()).logout()}async start(){return(await this.setupCmdsG()).start()}async setup(e={}){return(await this.setupCmdsG()).setup(e)}async update(e={},t=process.cwd()){return(await this.updateCmdsG()).update(e,t)}async installStatusLine(){return(await this.setupCmdsG()).installStatusLine()}async initializeAgent(){return(await this.workflowG()).initializeAgent()}async ensureProjectInit(e){return(await this.workflowG()).ensureProjectInit(e)}async ensureAuthor(){return(await this.workflowG()).ensureAuthor()}async getGlobalProjectPath(e){return(await this.workflowG()).getGlobalProjectPath(e)}async logToMemory(e,t,n){return(await this.workflowG()).logToMemory(e,t,n)}async spec(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).draft(e,t,n)}async specList(e=process.cwd(),t={}){return(await this.specCmdsG()).list(null,e,t)}async specShow(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).show(e,t,n)}async specUpdate(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).update(e,t,n)}async specApplyDelta(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).applyDelta(e,t,n)}async specSetStatus(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).setStatus(e,t,n)}async specRecordReview(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).recordReview(e,t,n)}async specLinkTask(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).linkTask(e,t,n)}async specShip(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).ship(e,t,n)}async specAudit(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).audit(e,t,n)}async specValidate(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).validate(e,t,n)}async specBreakdown(e=null,t=process.cwd(),n={}){return(await this.specCmdsG()).breakdown(e,t,n)}async specInventory(e=process.cwd(),t={}){return(await this.specCmdsG()).inventory(null,e,t)}};S();k();M();var w=class{static{l(this,"CommandRegistry")}handlers=new Map;handlerFns=new Map;optionFns=new Map;lazyResetters=[];metadata=new Map;categories=new Map;noProjectCommands=new Set(["init","setup","start","migrateAll"]);register(e,t){this.handlers.set(e.name,e),this.setMeta(e.name,t)}registerFn(e,t,n){this.handlerFns.set(e,t),this.setMeta(e,n)}setMeta(e,t){let n=t?.requiresProject??!this.noProjectCommands.has(e);this.metadata.set(e,{name:e,group:t?.group??"unknown",surface:t?.surface,description:t?.description??"",requiresProject:n,usage:t?.usage??{claude:null,terminal:null},implemented:t?.implemented??!0,hasTemplate:t?.hasTemplate??!1,params:t?.params,blockingRules:t?.blockingRules,features:t?.features,isOptional:t?.isOptional,deprecated:t?.deprecated,replacedBy:t?.replacedBy,routingMode:t?.routingMode,optionSchema:t?.optionSchema})}registerCategory(e,t){this.categories.set(e,t)}registerLazyMethod(e,t,n,s){let i=[];this.lazyResetters.push(()=>{i.length=0});let o=l(async()=>{let d=i.at(-1);if(d)return d;let u=await t(),c=u[n];if(typeof c!="function")throw new Error(`${n} is not a function`);let p={instance:u,method:c};return i.push(p),p},"resolve"),m=l(async(d,u)=>{let{instance:c,method:p}=await o();return d!=null?p.call(c,d,u.projectPath):p.call(c,u.projectPath)},"wrapper");this.handlerFns.set(e,m),this.optionFns.set(e,async(d,u,c)=>{let{instance:p,method:G}=await o();return G.call(p,d,u,c)}),this.setMeta(e,s)}resetLazyResolutions(){for(let e of this.lazyResetters)e()}has(e){return this.handlers.has(e)||this.handlerFns.has(e)}list(){return[...this.handlers.keys(),...this.handlerFns.keys()]}listByGroup(e){return Array.from(this.metadata.entries()).filter(([,t])=>t.group===e).map(([t])=>t)}getGroups(){let e=new Set;for(let t of this.metadata.values())e.add(t.group);return Array.from(e)}getMeta(e){return this.metadata.get(e)}getAll(){return Array.from(this.metadata.values())}getByName(e){return this.metadata.get(e)}getByCategory(e){return this.getAll().filter(t=>t.group===e)}getAllImplemented(){return this.getAll().filter(e=>e.implemented)}getAllWithTemplates(){return this.getAll().filter(e=>e.hasTemplate)}getClaudeCommands(){return this.getAll().filter(e=>e.usage.claude!==null)}getTerminalCommands(){return this.getAll().filter(e=>e.usage.terminal!==null)}getAllCategories(){return new Map(this.categories)}getCategory(e){return this.categories.get(e)}getRequiresInit(){return this.getAll().filter(e=>e.requiresProject)}getWithBlockingRules(){return this.getAll().filter(e=>e.blockingRules!==void 0)}getOptionalCommands(){return this.getAll().filter(e=>e.isOptional)}getDeprecatedCommands(){return this.getAll().filter(e=>e.deprecated)}getStats(){let e=this.getAll(),t={};for(let n of this.categories.keys())t[n]=e.filter(s=>s.group===n).length;return{total:e.length,implemented:e.filter(n=>n.implemented).length,withTemplates:e.filter(n=>n.hasTemplate).length,claudeOnly:e.filter(n=>n.usage.claude&&!n.usage.terminal).length,terminalOnly:e.filter(n=>!n.usage.claude&&n.usage.terminal).length,both:e.filter(n=>n.usage.claude&&n.usage.terminal).length,requiresInit:e.filter(n=>n.requiresProject).length,byCategory:t}}validate(){let e=[],t=this.getAll(),n=t.map(m=>m.name),s=n.filter((m,d)=>n.indexOf(m)!==d);s.length>0&&e.push(`Duplicate command names: ${s.join(", ")}`);let i=t.filter(m=>m.hasTemplate&&!m.implemented);i.length>0&&e.push(`Commands with templates but not implemented: ${i.map(m=>m.name).join(", ")}`);let o=Array.from(this.categories.keys());if(o.length>0){let m=t.filter(d=>!o.includes(d.group));m.length>0&&e.push(`Invalid categories: ${m.map(d=>`${d.name}:${d.group}`).join(", ")}`)}return{valid:e.length===0,issues:e}}async buildContext(e){let t=await y.getProjectId(e);if(!t)throw new Error("No prjct project found. Run p. init first.");return{projectId:t,projectPath:e,globalPath:f.getGlobalProjectPath(t),timestamp:g()}}async execute(e,t,n=process.cwd()){let s=this.metadata.get(e),i=await(async()=>{if(s?.requiresProject===!1)return{projectId:"",projectPath:n,globalPath:"",timestamp:g()};try{return await this.buildContext(n)}catch(d){return{success:!1,error:h(d)}}})();if("success"in i)return i;let o=this.handlers.get(e);if(o)return o.execute(t,i);let m=this.handlerFns.get(e);return m?m(t,i):{success:!1,error:`Command not found: ${e}`}}async executeWithOptions(e,t,n,s){let i=this.optionFns.get(e);if(!i)return{success:!1,error:`Command not found: ${e}`};if(this.metadata.get(e)?.requiresProject!==!1)try{await this.buildContext(n)}catch(m){return{success:!1,error:h(m)}}return i(t,n,s)}async executeWithoutProject(e,t,n=process.cwd()){let s=this.handlers.get(e);if(s){let o={projectId:"",projectPath:n,globalPath:"",timestamp:g()};return s.execute(t,o)}let i=this.handlerFns.get(e);if(i){let o={projectId:"",projectPath:n,globalPath:"",timestamp:g()};return i(t,o)}return{success:!1,error:`Command not found: ${e}`}}clear(){this.handlers.clear(),this.handlerFns.clear(),this.metadata.clear(),this.categories.clear()}},C=new w;var R=[];function B(){for(let r of R)r()}l(B,"resetGroupLoaders");function a(r){let e={};return R.push(()=>{delete e.promise}),()=>(e.promise||(e.promise=r().catch(t=>{throw delete e.promise,t})),e.promise)}l(a,"lazy");var A={workflow:a(async()=>new(await import("./workflow-FGJVLRQ3.mjs")).WorkflowCommands),planning:a(async()=>new(await import("./planning-S3MYVWH6.mjs")).PlanningCommands),shipping:a(async()=>new(await import("./shipping-I4D4AVTE.mjs")).ShippingCommands),analysis:a(async()=>new(await import("./analysis-3A7ODSSI.mjs")).AnalysisCommands),setup:a(async()=>new(await import("./setup-GHS24ER5.mjs")).SetupCommands),context:a(async()=>new(await import("./context-DDHC7VIC.mjs")).ContextCommands),primitives:a(async()=>new(await import("./primitives-IXAYLX7U.mjs")).PrimitiveCommands),seed:a(async()=>new(await import("./seed-JX7W53E5.mjs")).SeedCommands),install:a(async()=>new(await import("./install-XP4S6HWQ.mjs")).InstallCommands),capture:a(async()=>new(await import("./capture-7LQ52T6L.mjs")).CaptureCommands),mcp:a(async()=>new(await import("./mcp-FLVIZBV2.mjs")).McpCommands),team:a(async()=>new(await import("./team-XZ4Q6UBV.mjs")).TeamCommands),config:a(async()=>new(await import("./config-W3RHV3GK.mjs")).ConfigCommands),uninstall:a(async()=>new(await import("./uninstall-6NFON7FO.mjs")).UninstallCommands),update:a(async()=>new(await import("./update-4IE6SA6M.mjs")).UpdateCommands),spec:a(async()=>new(await import("./spec-2XXPLHUZ.mjs")).SpecCommands),embeddings:a(async()=>new(await import("./embeddings-7A5Z5I67.mjs")).EmbeddingsCommands),llm:a(async()=>new(await import("./llm-XMH7WTHV.mjs")).LlmCommands),agent:a(async()=>new(await import("./agent-HCP5FF77.mjs")).AgentCommands),guard:a(async()=>new(await import("./guard-FJBJ6IAE.mjs")).GuardCommands),memoryExport:a(async()=>new(await import("./memory-export-27HTNNFI.mjs")).MemoryExportCommands),workflowsReference:a(async()=>new(await import("./workflows-reference-UWKRZ6BJ.mjs")).WorkflowsReferenceCommands),changelog:a(async()=>new(await import("./changelog-CUNVCEL5.mjs")).ChangelogCommands),workGraph:a(async()=>new(await import("./work-graph-JGJWE3AV.mjs")).WorkGraphCommands),ceremonies:a(async()=>new(await import("./ceremonies-4OZ3FKRE.mjs")).CeremonyCommands),lean:a(async()=>new(await import("./lean-L53CKZNH.mjs")).LeanCommands),cloud:a(async()=>new(await import("./cloud-FFUJZLDV.mjs")).CloudCommands),tdd:a(async()=>new(await import("./tdd-NQDHU62B.mjs")).TddCommands),sdd:a(async()=>new(await import("./sdd-HE7O6N5S.mjs")).SddCommands),notify:a(async()=>new(await import("./notify-76B7AICZ.mjs")).NotifyCommands),agents:a(async()=>new(await import("./agents-OAQXBGH3.mjs")).AgentsCommands),product:a(async()=>new(await import("./product-KKGJ6MMF.mjs")).ProductCommands),eval:a(async()=>new(await import("./eval-4YFUBFLV.mjs")).EvalCommands),judgment:a(async()=>new(await import("./judgment-GJE332LF.mjs")).JudgmentCommands),code:a(async()=>new(await import("./code-SU7GCPH6.mjs")).CodeCommands)};function _(){for(let[r,e]of Object.entries(P))C.registerCategory(r,e)}l(_,"registerCategories");function j(){if(!C.has("work")){_();for(let r of v)r.routing&&C.registerLazyMethod(r.name,A[r.routing.group],r.routing.method,r)}}l(j,"registerAllCommands");j();function x(r){return r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}l(x,"kebab");function V(r,e){let t=l(s=>r[s]!==void 0?r[s]:r[x(s)],"pick"),n={md:r.md===!0};for(let s of e.booleans??[])n[s]=t(s)===!0;for(let s of e.strings??[]){let i=t(s);n[s]=i!=null&&i!==!1&&i!==""?String(i):void 0}for(let s of e.numbers??[]){let i=t(s),o=i!=null&&i!==!1&&i!==""?Number(i):Number.NaN;n[s]=Number.isNaN(o)?void 0:o}return n}l(V,"mapOptions");var O=new Set(["list","show","update","apply-delta","set-status","record-review","link-task","ship","audit","validate","breakdown","inventory"]),I=new Set(["draft","new","create"]);async function K(r,e,t,n){let s=t.md===!0,i=e[0],o=e.slice(1).join(" ")||null,m=e.join(" ")||null,d={md:s,goal:t.goal?String(t.goal):void 0,tags:t.tags?String(t.tags):void 0};if(i&&I.has(i))return r.spec(o,n,d);if(!i||!O.has(i))return r.spec(m,n,d);switch(i){case"list":return r.specList(n,{md:s,status:t.status?String(t.status):void 0});case"show":return r.specShow(o,n,{md:s});case"update":return r.specUpdate(o,n,{md:s,json:t.json?String(t.json):void 0});case"apply-delta":return r.specApplyDelta(o,n,{md:t.md,file:t.file?String(t.file):void 0});case"set-status":return r.specSetStatus(o,n,{md:s,status:t.status?String(t.status):void 0});case"record-review":return r.specRecordReview(o,n,{md:s,reviewer:t.reviewer?String(t.reviewer):void 0,verdict:t.verdict?String(t.verdict):void 0,notes:t.notes?String(t.notes):void 0});case"link-task":return r.specLinkTask(o,n,{md:s,taskId:t["task-id"]?String(t["task-id"]):void 0});case"ship":return r.specShip(o,n,{md:s,pr:t.pr?String(t.pr):void 0});case"audit":return r.specAudit(o,n,{md:s,lenses:t.lenses?String(t.lenses):void 0,strict:t.strict===!0});case"validate":return r.specValidate(o,n,{md:s,strict:t.strict===!0});case"breakdown":return r.specBreakdown(o,n,{md:s,force:t.force===!0});case"inventory":return r.specInventory(n,{md:s,json:t.json===!0});default:return{success:!1,error:`unknown spec subverb: ${i}`}}}l(K,"routeSpec");export{b as a,C as b,B as c,V as d,K as e};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{d as r,e as d}from"./chunk-NOHSLOLL.mjs";import{g as o,i as p}from"./chunk-DMO3ZFUG.mjs";import{e as n,l as m}from"./chunk-HU5ERAAV.mjs";import{a}from"./chunk-3TRXQAU4.mjs";m();p();var u="judgment:active",c="judgment:ghosts",g=class{static{a(this,"JudgmentLedgerStorage")}get(s){let t=o.getDoc(s,u);if(t===null)return null;let e=r.safeParse(t);return e.success?e.data:null}set(s,t){let e=t.updatedAt||n();return o.updateDoc(s,u,()=>r.parse({...t,updatedAt:e}),()=>r.parse({...t,updatedAt:e}))}clear(s){o.deleteDoc(s,u)}getGhosts(s){let t=o.getDoc(s,c);if(t===null)return{ghosts:[],updatedAt:n()};let e=d.safeParse(t);return e.success?e.data:{ghosts:[],updatedAt:n()}}setGhosts(s,t){let e=d.parse(t);return o.setDoc(s,c,e),e}},w=new g;export{u as a,c as b,w as c};
|
|
@@ -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{c as p}from"./chunk-R7LLMJDP.mjs";import{c as a}from"./chunk-XSZG3CBO.mjs";import{A as u,B as m,E as x}from"./chunk-HU5ERAAV.mjs";import{e as f,f as g}from"./chunk-GDLAQV3Q.mjs";import{a as c,b as l,c as s,d}from"./chunk-UT425KVX.mjs";import{e as r,g as y}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";x();y();var v=[{name:"prjct",ready:"\u2705 prjct MCP already configured",added:"\u2705 prjct MCP added to mcp.json",failed:"prjct MCP setup failed",manual:" Run `prjct start` again to retry."}];async function R(o={}){o.silent||console.log(`
|
|
8
|
+
\u{1F50C} Configuring MCP servers...`);try{await a.install();let e=o.verifyContext7===!1?null:await a.verify();o.silent||(e?.verified?console.log("\u2705 Context7 MCP ready (framework API lookups)"):(console.log(`\u26A0\uFE0F Context7 configured but not yet verified: ${e?.message||""}`),console.log(" It will activate on the next time you open your AI client.")))}catch(e){o.silent||(console.log(`\u26A0\uFE0F Context7 MCP setup failed: ${r(e)}`),console.log(" Run `prjct start` again to retry."))}for(let e of v)try{let t=l(),n=await d(e.name,t),C=await s(e.name,c[e.name],t);n&&!C.changed?o.silent||console.log(e.ready):o.silent||console.log(e.added)}catch(t){o.silent||(console.log(`\u26A0\uFE0F ${e.failed}: ${r(t)}`),console.log(e.manual))}try{if((await u()).installed){let t=await f(),n=await g();o.silent||(t.skipped==="user-managed"?console.log("\u2705 prjct Codex config ready (MCP user-managed)"):t.changed||n.changed?console.log("\u2705 prjct Codex config updated in ~/.codex/config.toml"):console.log("\u2705 prjct Codex config already ready"))}}catch(e){o.silent||(console.log(`\u26A0\uFE0F Codex config setup failed: ${r(e)}`),console.log(" Run `prjct start` again to retry."))}try{if((await m()).installed){let t=await p();o.silent||console.log(t.changed?`\u2705 prjct Kimi config updated in ${t.path}`:"\u2705 prjct Kimi config already ready")}}catch(e){o.silent||(console.log(`\u26A0\uFE0F Kimi config setup failed: ${r(e)}`),console.log(" Run `prjct start` again to retry."))}}i(R,"setupMcpServers");export{R as a};
|
|
@@ -0,0 +1,15 @@
|
|
|
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 f}from"./chunk-L5LFLI4R.mjs";import{a as i}from"./chunk-5YLI5V3Q.mjs";import{b as y}from"./chunk-LZC6NGB6.mjs";import{f as g,i as x}from"./chunk-DMO3ZFUG.mjs";import{a}from"./chunk-3TRXQAU4.mjs";import{execFileSync as S}from"node:child_process";x();var j="land-auto",$="session-close";async function N(t){let o=L(t);if(!o)return{wrote:!1,content:null,reason:"nothing-to-land"};try{return await y.remember(t.projectPath,{type:"context",content:o,tags:{source:j,topic:$,capture:"land-v2",context_schema:"living-v2",synthesis:"deterministic"},provenance:"extracted",projectId:t.projectId}),{wrote:!0,content:o}}catch(r){return{wrote:!1,content:o,reason:`remember-failed: ${r.message}`}}}a(N,"synthesizeLandHandoff");function L(t){let o=t.cycleDescription?.trim()||null,r=f(t.projectId,t.cycleId),u=k(t.projectPath),c=b(t.projectId);if(!o&&r.length===0&&u.length===0&&c.length===0)return null;let e=[];o?e.push(`Session close: Work cycle "${i(o,120)}" still open or just closed.`):e.push("Session close: no open work cycle \u2014 landed repo + capture signals only."),e.push("Context synthesis: Passive land hand-off from durable signals (cycle, journal, commits, auto-captures). Not a model essay."),e.push(`Key data: source=${j}; topic=${$}; capture=land-v2`);let l=[];if(o&&l.push(`cycle="${i(o,100)}"`),r.length>0&&l.push(`journal: ${r.map(s=>i(s,70)).join(" \xB7 ")}`),l.length>0&&e.push(`What happened: ${l.join("; ")}`),r.length>0&&e.push(`Why it mattered: Journal trail shows progression \u2014 ${r.slice(0,2).map(s=>i(s,80)).join(" \xB7 ")}`),c.length>0){let s=c.filter(n=>n.type==="learning"||n.type==="decision"||n.type==="fact").slice(0,4),p=c.filter(n=>n.type==="gotcha"||n.type==="anti-pattern").slice(0,3);s.length>0&&e.push(`Learned this session: ${s.map(n=>`[${n.type}] ${i(n.content,100)}`).join(" \xB7 ")}`),p.length>0&&e.push(`Decision/trap: ${p.map(n=>`[${n.type}] ${i(n.content,100)}`).join(" \xB7 ")}`);let I=new Set([...s,...p]),d=c.filter(n=>!I.has(n)).slice(0,3);d.length>0&&s.length===0&&p.length===0&&e.push(`Decision/trap: ${d.map(n=>`[${n.type}] ${i(n.content,100)}`).join(" \xB7 ")}`)}u.length>0&&e.push(`Outcome: Recent commits: ${u.join("; ")}`),t.author&&e.push(`Who/author: ${t.author}`),t.model&&e.push(`Model: ${t.model}`);let m=t.tokensIn,h=t.tokensOut;if(m!=null||h!=null){let s=(m??0)+(h??0);e.push(`Token usage: in=${m??0} out=${h??0} total=${s} (compound judgment \u2014 not a fresh-window thrash loop)`)}e.push("Feature/domain: session-close"),e.push("Pattern: land auto-synthesis without agent remember"),e.push("Anti-pattern: relying on the model to remember to remember at session end"),e.push("Competitive: next window must `prjct prime` \u2014 act as this developer with SQLite judgment, not re-research from zero (GSD tax).");let w=o!=null?"Finish or pause the open cycle (`prjct status done` / `prjct pause`); next agent should `prjct work --md` or `prjct prime`.":"Next agent: `prjct prime` then pick from `prjct next --md`.";return e.push(`Next implication: ${w}`),e.join(" \xB7 ")}a(L,"buildLandHandoffContent");function k(t){try{return S("git",["log","-5","--oneline","--no-decorate"],{cwd:t,encoding:"utf-8",timeout:3e3,stdio:["ignore","pipe","ignore"]}).split(`
|
|
8
|
+
`).map(r=>r.trim()).filter(Boolean)}catch{return[]}}a(k,"recentCommits");function b(t){try{return g.query(t,`SELECT me.type, me.content
|
|
9
|
+
FROM memory_entries me
|
|
10
|
+
JOIN memory_entry_tags t ON t.entry_id = me.id
|
|
11
|
+
WHERE me.deleted_at IS NULL
|
|
12
|
+
AND t.key = 'source'
|
|
13
|
+
AND t.value IN ('transcript-auto', 'land-auto')
|
|
14
|
+
ORDER BY me.created_at DESC
|
|
15
|
+
LIMIT 8`).map(r=>({type:r.type,content:r.content}))}catch{return[]}}a(b,"recentAutoCaptures");export{N as a,L as b};
|
|
@@ -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{b as l}from"./chunk-YEALP3WX.mjs";import{a as n}from"./chunk-3TRXQAU4.mjs";function g(d,s){let t=[...d.added,...d.modified],e=new Set(t),i=new Set,c=l(s);if(c)for(let u of t){let r=c.reverse[u];if(r)for(let a of r)e.has(a)||i.add(a)}let o=Array.from(i),f=[...t,...o];return{directlyChanged:t,affectedByImports:o,deleted:d.deleted,allAffected:f}}n(g,"propagateChanges");function h(d){let s=new Set;for(let t of d){let e=t.toLowerCase();(e.endsWith(".tsx")||e.endsWith(".jsx")||e.endsWith(".css")||e.endsWith(".scss")||e.endsWith(".vue")||e.endsWith(".svelte")||e.includes("/components/")||e.includes("/pages/")||e.includes("/app/"))&&(s.add("frontend"),s.add("uxui")),(e.includes(".test.")||e.includes(".spec.")||e.includes("__tests__")||e.includes("/test/"))&&s.add("testing"),(e.includes("dockerfile")||e.includes("docker-compose")||e.includes(".dockerignore")||e.includes(".github/")||e.includes("ci/")||e.includes("cd/"))&&s.add("devops"),(e.endsWith(".sql")||e.includes("prisma")||e.includes("drizzle")||e.includes("migration")||e.includes("/db/"))&&s.add("database"),(e.endsWith(".ts")||e.endsWith(".js"))&&!e.includes(".test.")&&!e.includes(".spec.")&&!e.endsWith(".d.ts")&&s.add("backend")}return s}n(h,"affectedDomains");export{g as a,h as b};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{d as l,e as m}from"./chunk-6RT2P22O.mjs";import{a as c,c as p}from"./chunk-DOJPSIMG.mjs";import{l as d,m as n,p as u}from"./chunk-HYIT7MF5.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";u();m();p();import a from"node:path";var r=[{id:"agents-md",displayName:"AGENTS.md-compatible agents",kind:"standard",status:"stable",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Universal project instruction surface shared by current and future coding agents."},{id:"mcp",displayName:"Model Context Protocol clients",kind:"standard",status:"stable",contextFiles:[],supports:{agentsMd:!1,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Universal tool surface for prjct memory, workflow, files, and code intelligence."},{id:"acp",displayName:"Agent Client Protocol clients",kind:"standard",status:"emerging",contextFiles:[],supports:{agentsMd:!1,mcp:!1,skills:!1,hooks:!1,acp:!0,projectRules:!1},notes:"Editor/agent transport for clients such as Zed and other ACP-compatible tools."},{id:"claude",displayName:"Claude Code",kind:"cli",status:"stable",detectsBy:{homeDirs:[".claude"],commands:["claude"]},contextFiles:["CLAUDE.md","AGENTS.md"],mcpTargets:[{format:"claude-json",pathHint:"~/.claude/mcp.json",writable:!0}],supports:{agentsMd:!1,mcp:!0,skills:!0,hooks:!0,acp:!1,projectRules:!0},notes:"Benchmark-tier CLI (2026-07): Claude Code + Opus frontier. CLAUDE.md, skills, hooks, MCP JSON."},{id:"codex",displayName:"OpenAI Codex",kind:"cli",status:"stable",detectsBy:{homeDirs:[".codex"],commands:["codex"]},contextFiles:["AGENTS.md"],mcpTargets:[{format:"codex-toml",pathHint:"~/.codex/config.toml",writable:!0}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!0,acp:!1,projectRules:!1},notes:"Benchmark-tier CLI (2026-07): Codex + GPT-5.x (TB leader). AGENTS.md, config.toml MCP (native), hooks opt-in (planned installer)."},{id:"gemini",displayName:"Gemini CLI",kind:"cli",status:"stable",detectsBy:{homeDirs:[".gemini"],commands:["gemini"]},contextFiles:["GEMINI.md","AGENTS.md"],mcpTargets:[{format:"claude-json",pathHint:"~/.gemini/settings.json mcpServers",writable:!0}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!0,acp:!1,projectRules:!0},notes:"Benchmark-tier CLI (2026-07): Gemini CLI + Pro/Flash. GEMINI.md; prjct install writes MCP+hooks to ~/.gemini/settings.json."},{id:"antigravity",displayName:"Google Antigravity",kind:"ide",status:"emerging",detectsBy:{homeDirs:[a.join(".gemini","antigravity")]},contextFiles:["ANTIGRAVITY.md","AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!1,acp:!1,projectRules:!0},notes:"Uses Antigravity skills under the Gemini config tree."},{id:"opencode",displayName:"OpenCode",kind:"cli",status:"stable",detectsBy:{homeDirs:[".config/opencode"],projectDirs:[".opencode"],commands:["opencode"]},contextFiles:["AGENTS.md","opencode.json","opencode.jsonc"],mcpTargets:[{format:"opencode-json",pathHint:"~/.config/opencode/opencode.json mcp.prjct",writable:!0}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!1,acp:!1,projectRules:!0},notes:"Benchmark-tier open-source CLI (2026-07): most-starred multi-provider agent. AGENTS.md + prjct install writes mcp.prjct; Claude skill/CLAUDE.md compat."},{id:"pi",displayName:"Pi",kind:"cli",status:"stable",detectsBy:{homeDirs:[".pi",a.join(".pi","agent")],projectDirs:[".pi"],commands:["pi"]},contextFiles:["AGENTS.md","CLAUDE.md","SYSTEM.md","APPEND_SYSTEM.md"],supports:{agentsMd:!0,mcp:!1,skills:!0,hooks:!1,acp:!1,projectRules:!1},notes:"Benchmark-tier minimal harness (2026-07): AGENTS.md + prjct skill at ~/.pi/agent/skills/prjct. MCP only via optional extensions \u2014 do not require it."},{id:"qwen-code",displayName:"Qwen Code",kind:"model-runtime",status:"emerging",detectsBy:{homeDirs:[".qwen"],projectDirs:[".qwen"],commands:["qwen"]},contextFiles:["AGENTS.md","GEMINI.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"Qwen-family coding runtime; treat model/provider choice as separate from runtime setup."},{id:"kimi-cli",displayName:"Kimi Code CLI",kind:"model-runtime",status:"emerging",detectsBy:{homeDirs:[".kimi-code",".kimi"],projectDirs:[".kimi"],commands:["kimi"]},contextFiles:["AGENTS.md"],mcpTargets:[{format:"claude-json",pathHint:"~/.kimi-code/mcp.json",writable:!0},{format:"claude-json",pathHint:"~/.kimi/mcp.json (legacy Kimi CLI fallback)",writable:!1}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!0,acp:!1,projectRules:!1},notes:"Kimi Code CLI (~/.kimi-code; legacy ~/.kimi is fallback-only): native MCP + hooks ([[hooks]] in config.toml) + compact skill at ~/.agents/skills/prjct via prjct install. See harness-surfaces."},{id:"grok",displayName:"xAI Grok Build",kind:"cli",status:"stable",detectsBy:{homeDirs:[".grok"],commands:["grok"]},contextFiles:["AGENTS.md","CLAUDE.md"],mcpTargets:[{format:"codex-toml",pathHint:"~/.grok/config.toml",writable:!0},{format:"claude-json",pathHint:"~/.claude/mcp.json (Grok Claude-compat fallback)",writable:!0}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!0,acp:!1,projectRules:!1},notes:"Benchmark-tier CLI (2026-07): Grok Build. Native MCP + skill via prjct install (~/.grok/config.toml + ~/.grok/skills/prjct). Hooks still Claude-compat. See harness-surfaces."},{id:"goose",displayName:"Goose",kind:"cli",status:"stable",detectsBy:{homeDirs:[".config/goose"],projectDirs:[".goose"],commands:["goose"]},contextFiles:["AGENTS.md"],mcpTargets:[{format:"generic",pathHint:"Goose extensions",writable:!1}],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Open-source coding agent with extension/MCP-style tool configuration."},{id:"aider",displayName:"Aider",kind:"cli",status:"stable",detectsBy:{projectFiles:[".aider.conf.yml",".aider.conf.yaml"],commands:["aider"]},contextFiles:["AGENTS.md","CONVENTIONS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"CLI pair-programming agent; AGENTS.md provides durable repo instructions."},{id:"cursor",displayName:"Cursor",kind:"ide",status:"stable",detectsBy:{projectDirs:[".cursor"],projectFiles:[".cursorrules"]},contextFiles:["AGENTS.md",".cursor/rules/prjct.mdc"],mcpTargets:[{format:"claude-json",pathHint:"~/.cursor/mcp.json (configured in-app; prjct does not write it)",writable:!1}],projectRuleTargets:[{relativePath:".cursor/rules/prjct.mdc",templateKey:"global/CURSOR.mdc",detectPath:".cursor"}],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!0,acp:!1,projectRules:!0},notes:"Benchmark-tier AI IDE (2026-07): agent mode + CLI. Rules under .cursor/rules; prjct install writes ~/.cursor/hooks.json."},{id:"cline",displayName:"Cline",kind:"ide",status:"stable",detectsBy:{projectDirs:[".cline",".clinerules"],projectFiles:[".clinerules"]},contextFiles:["AGENTS.md",".clinerules/"],mcpTargets:[{format:"generic",pathHint:"Cline MCP settings (VS Code extension; configured in-app)",writable:!1}],supports:{agentsMd:!0,mcp:!0,skills:!0,hooks:!0,acp:!0,projectRules:!0},notes:"Benchmark-tier open agent (2026-07): VS Code + multi-model. AGENTS.md, rules, skills, hooks, MCP, ACP."},{id:"roo-code",displayName:"Roo Code",kind:"ide",status:"stable",detectsBy:{projectDirs:[".roo"]},contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"VS Code agent with MCP and project rule surfaces."},{id:"continue",displayName:"Continue",kind:"ide",status:"stable",detectsBy:{projectDirs:[".continue"]},contextFiles:["AGENTS.md"],mcpTargets:[{format:"continue-yaml",pathHint:".continue/mcpServers/",writable:!1}],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"IDE assistant with dedicated MCP server config directory."},{id:"kiro",displayName:"Kiro",kind:"ide",status:"stable",detectsBy:{homeDirs:[".kiro"],projectDirs:[".kiro"]},contextFiles:["AGENTS.md",".kiro/steering/"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!0,acp:!1,projectRules:!0},notes:"Agentic IDE with steering docs and MCP."},{id:"copilot",displayName:"GitHub Copilot coding agent",kind:"hosted",status:"hosted",detectsBy:{projectFiles:[a.join(".github","copilot-instructions.md")]},contextFiles:["AGENTS.md",".github/copilot-instructions.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"GitHub Copilot coding agent / Copilot CLI (2026-07 benchmark field). Repo AGENTS.md + .github instructions + MCP."},{id:"devin",displayName:"Devin",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Hosted coding agent; repo-level AGENTS.md is the safest portable surface."},{id:"jules",displayName:"Google Jules",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Hosted coding agent; AGENTS.md carries repo-level prjct instructions."},{id:"zed",displayName:"Zed Agent Panel",kind:"ide",status:"stable",detectsBy:{projectDirs:[".zed"]},contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!0,projectRules:!0},notes:"Editor agent surface with ACP support; AGENTS.md remains the repo contract."},{id:"warp",displayName:"Warp",kind:"ide",status:"stable",detectsBy:{homeDirs:[".warp"]},contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Terminal agent surface; AGENTS.md plus MCP covers portable prjct usage."},{id:"amp",displayName:"Amp",kind:"cli",status:"stable",detectsBy:{homeDirs:[".config/amp"],commands:["amp"]},contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Coding agent runtime; AGENTS.md and MCP are the portable contract."},{id:"factory",displayName:"Factory",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Hosted/agentic development platform; repo instructions are the stable surface."},{id:"augment",displayName:"Augment",kind:"ide",status:"stable",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"IDE agent; universal project instructions avoid model-specific coupling."},{id:"kilo-code",displayName:"Kilo Code",kind:"ide",status:"stable",detectsBy:{projectDirs:[".kilocode"]},contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!0,skills:!1,hooks:!1,acp:!1,projectRules:!0},notes:"Agent runtime in the Cline/Roo family; AGENTS.md and MCP keep it compatible."},{id:"phoenix",displayName:"Phoenix",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Hosted coding agent; AGENTS.md is the repo-level bridge."},{id:"ona",displayName:"Ona",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Hosted coding agent; AGENTS.md is the repo-level bridge."},{id:"semgrep",displayName:"Semgrep assistant",kind:"hosted",status:"hosted",contextFiles:["AGENTS.md"],supports:{agentsMd:!0,mcp:!1,skills:!1,hooks:!1,acp:!1,projectRules:!1},notes:"Security/review agent surface; AGENTS.md carries project workflow guidance."}];function R(e){let s=r.find(o=>o.id===e);if(!s)throw new Error(`Unknown agent runtime: ${e}`);return s}i(R,"getAgentRuntime");function T(){return r}i(T,"listAgentRuntimes");function S(){return r.flatMap(e=>e.projectRuleTargets??[])}i(S,"listProjectRuleTargets");async function E(e){return Promise.all(r.map(async s=>{let o=await g(s,e);return{runtime:s,detected:o.length>0||s.id==="agents-md"||s.id==="mcp",reason:o[0],detectedSignals:o,writableMcpTargets:(s.mcpTargets??[]).filter(t=>t.writable),supportLevel:h(s)}}))}i(E,"detectAgentRuntimes");async function g(e,s){let o=[];for(let t of e.detectsBy?.projectFiles??[])await d(a.join(s,t))&&o.push(t);for(let t of e.detectsBy?.projectDirs??[])await n(a.join(s,t))&&o.push(`${t}/`);for(let t of e.detectsBy?.homeDirs??[])await n(a.join(c(),t))&&o.push(`~/${t}/`);for(let t of e.detectsBy?.commands??[])await f(t)&&o.push(`command:${t}`);return o}i(g,"detectRuntimeSignals");async function f(e){return!!(await l(e)||process.platform==="win32"&&await l(`${e}.cmd`))}i(f,"commandExists");var k=new Set(["claude","codex","gemini","opencode","pi","cursor","cline","grok","kimi-cli"]);function h(e){return e.status==="hosted"?"hosted":k.has(e.id)?"full":e.supports.agentsMd&&e.supports.mcp?"good":e.supports.agentsMd?"baseline":"manual"}i(h,"supportLevelFor");export{r as a,R as b,T as c,S as d,E as e};
|
|
@@ -0,0 +1,15 @@
|
|
|
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}from"./chunk-E5QQDYBR.mjs";import{a as l,b as y}from"./chunk-B7AQHL7B.mjs";import{a as m}from"./chunk-L4TUXFCL.mjs";import{f as s,i as v}from"./chunk-DMO3ZFUG.mjs";import{e as u,f as p,l as S}from"./chunk-HU5ERAAV.mjs";import{a as d}from"./chunk-3TRXQAU4.mjs";import{z as t}from"zod";var T=t.enum(["low","medium","high"]),R=t.enum(["pending","converted","completed","archived","dormant"]),I=t.enum(["high","medium","low"]),P=t.object({impact:I,effort:I}),f=t.object({frontend:t.string().optional(),backend:t.string().optional(),payments:t.string().optional(),ai:t.string().optional(),deploy:t.string().optional(),other:t.array(t.string()).optional()}),A=t.object({name:t.string(),description:t.string()}),D=t.object({name:t.string(),description:t.string().optional()}),O=t.object({id:t.string(),text:t.string(),details:t.string().optional(),priority:T,status:R,tags:t.array(t.string()),addedAt:t.string(),completedAt:t.string().optional(),convertedTo:t.string().optional(),source:t.string().optional(),sourceFiles:t.array(t.string()).optional(),painPoints:t.array(t.string()).optional(),solutions:t.array(t.string()).optional(),filesAffected:t.array(t.string()).optional(),impactEffort:P.optional(),implementationNotes:t.string().optional(),stack:f.optional(),modules:t.array(A).optional(),roles:t.array(D).optional(),risks:t.array(t.string()).optional(),risksCount:t.number().optional()}),h=t.object({ideas:t.array(O),lastUpdated:t.string()});S();v();function o(n){let e=(()=>{if(!n.tags)return[];try{let i=JSON.parse(n.tags);return Array.isArray(i)?i:[]}catch{return[]}})(),r={...(()=>{if(!n.data)return{};try{return JSON.parse(n.data)}catch{return{}}})(),id:n.id,text:n.text,status:n.status,priority:n.priority,tags:e,addedAt:n.added_at};return n.converted_to!=null&&(r.convertedTo=n.converted_to),n.details!=null&&(r.details=n.details),r}d(o,"rowToIdea");var g=class extends E{static{d(this,"IdeasStorage")}constructor(){super("ideas.json",h)}getDefault(){return{ideas:[],lastUpdated:""}}getEventType(e){return`ideas.${e}d`}async getAll(e){return s.query(e,"SELECT * FROM ideas ORDER BY added_at DESC").map(o)}async getPending(e){return s.query(e,"SELECT * FROM ideas WHERE status = 'pending' ORDER BY added_at DESC").map(o)}async addIdea(e,a,r={}){let i={id:m(),text:a,status:"pending",priority:r.priority||"medium",tags:r.tags||[],addedAt:u()};return s.run(e,`INSERT INTO ideas (id, text, status, priority, tags, added_at, converted_to, details, data)
|
|
8
|
+
VALUES (?, ?, ?, ?, ?, ?, NULL, NULL, NULL)`,i.id,i.text,i.status,i.priority,i.tags.length?JSON.stringify(i.tags):null,i.addedAt),await this.publishEvent(e,"idea.created",{ideaId:i.id,text:i.text,priority:i.priority}),i}async upsertIdea(e,a){s.run(e,`INSERT INTO ideas (id, text, status, priority, tags, added_at)
|
|
9
|
+
VALUES (?, ?, ?, ?, NULL, ?)
|
|
10
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
11
|
+
text = excluded.text,
|
|
12
|
+
status = excluded.status,
|
|
13
|
+
priority = excluded.priority`,a.id,a.text,a.status,a.priority,a.addedAt)}async getById(e,a){let r=s.get(e,"SELECT * FROM ideas WHERE id = ?",a);return r?o(r):void 0}async convertToFeature(e,a,r){s.run(e,"UPDATE ideas SET status = 'converted', converted_to = ? WHERE id = ?",r,a),await this.publishEvent(e,"idea.converted",{ideaId:a,featureId:r})}async archive(e,a){s.run(e,"UPDATE ideas SET status = 'archived' WHERE id = ?",a),await this.publishEvent(e,"idea.archived",{ideaId:a})}async setPriority(e,a,r){s.run(e,"UPDATE ideas SET priority = ? WHERE id = ?",r,a)}async addTags(e,a,r){let i=await this.getById(e,a);if(!i)return;let c=[...new Set([...i.tags,...r])];s.run(e,"UPDATE ideas SET tags = ? WHERE id = ?",c.length?JSON.stringify(c):null,a)}async removeIdea(e,a){s.run(e,"DELETE FROM ideas WHERE id = ?",a)}async getCounts(e){let a=s.query(e,"SELECT status, COUNT(*) AS c FROM ideas GROUP BY status"),r=new Map(a.map(i=>[i.status,i.c]));return{pending:r.get("pending")??0,converted:r.get("converted")??0,archived:r.get("archived")??0}}async cleanup(e){return{removed:s.run(e,`DELETE FROM ideas WHERE status = 'archived' AND id NOT IN (
|
|
14
|
+
SELECT id FROM ideas WHERE status = 'archived' ORDER BY added_at DESC LIMIT 50
|
|
15
|
+
)`).changes}}async markDormantIdeas(e){let a=p(l.IDEA_DORMANT_DAYS).toISOString(),r=s.query(e,"SELECT * FROM ideas WHERE status = 'pending' AND added_at < ?",a).map(o);return r.length===0?0:(y.archiveMany(e,r.map(i=>({entityType:"idea",entityId:i.id,entityData:i,summary:i.text,reason:"dormant"}))),s.run(e,"UPDATE ideas SET status = 'dormant' WHERE status = 'pending' AND added_at < ?",a),await this.publishEvent(e,"ideas.dormant",{count:r.length}),r.length)}},M=new g;export{M as a};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as h,b as a}from"./chunk-5YLI5V3Q.mjs";import{f as p}from"./chunk-6AFXUX2M.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";var k=25,$=15,g=10,m=6;function E(n){return h(n.replace(/\s+/g," ").trim(),200)}o(E,"teaser");function b(n){return a(n,240)}o(b,"frictionLine");function x(n,s=m){let r=[],i=new Set,c=o((e,t,f)=>{let u=d(e);if(!u||u.length<12)return;let l=u.toLowerCase();i.has(l)||(i.add(l),r.push({rule:u,sourceId:t,kind:f}))},"push");for(let e of n.filter(t=>t.type==="feedback")){if(r.length>=s)break;c(e.content,e.id,"preference")}for(let e of n.filter(t=>t.type==="improvement-signal"&&t.tags?.source==="friction-detector")){if(r.length>=s)break;let t=y(e.content)??v(e.content);t&&c(t,e.id,"friction")}return r}o(x,"extractDeveloperRules");function d(n){return n.replace(/\s+/g," ").trim().replace(/^[-*•]\s+/,"")}o(d,"normalizeRule");function y(n){return n.match(/^Next action:\s*(.+)$/im)?.[1]?.trim()||null}o(y,"extractNextAction");function v(n){let s=n.split(`
|
|
8
|
+
`).map(i=>i.trim())[0]??"",r=s.match(/^\[[^\]]+\]\s+Lesson:\s*(.+)$/i);return r?.[1]?r[1].trim():/^\[[^\]]+\]/.test(s)&&s.length>20?s:null}o(v,"extractLesson");function w(n,s=g){let r=[],i=new Set;for(let c of n.filter(e=>e.type==="improvement-signal"&&e.tags?.source==="friction-detector")){let e=y(c.content);if(!e)continue;let t=d(e),f=t.toLowerCase();if(!(i.has(f)||t.length<12)&&(i.add(f),r.push(t),r.length>=s))break}return r}o(w,"extractWorkingPrinciples");function R(n){let s=n.filter(t=>t.type==="feedback").slice(0,k),r=n.filter(t=>t.type==="improvement-signal"&&t.tags?.source==="friction-detector").slice(0,$);if(s.length===0&&r.length===0)return null;let i=x(n,m),c=w(n,g),e=["# Developer profile",""];if(e.push("> Synthesized from the developer\u2019s stated feedback and their pushback.","> Read this to act as they would \u2014 match these preferences without being asked.",""),i.length>0){e.push("## Act as this developer \u2014 rules in force","");for(let t of i){let f=t.kind==="preference"?"said":"showed";e.push(`- ${t.rule} \`${t.sourceId}\` _(${f})_`)}e.push("")}if(s.length>0){e.push("## Preferences & guidance \u2014 the rules to follow","");for(let t of s)e.push(`- **${p(t)}** \u2014 ${E(t.content)} \`${t.id}\``);e.push("")}if(c.length>0){e.push("## Working principles \u2014 from their pushback (do this instead)","");for(let t of c)e.push(`- ${t}`);e.push("")}if(r.length>0){e.push("## Friction history \u2014 what frustrated them, do not repeat","");for(let t of r)e.push(`- ${b(t.content)} \`${t.id}\``);e.push("")}return`${e.join(`
|
|
9
|
+
`)}
|
|
10
|
+
`}o(R,"buildDeveloperProfile");export{x as a,R as b};
|
|
@@ -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{i as c}from"./chunk-7QMBIMEX.mjs";import{d as s}from"./chunk-FOWTB762.mjs";import{a as m}from"./chunk-7CI4AMVO.mjs";import{a as u}from"./chunk-UYMZ3NAF.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import{a as f}from"./chunk-RACISWUV.mjs";import{b as l}from"./chunk-3USVY66O.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";async function k(t,r={}){let e=await l.getProjectId(t);return e?{ok:!0,value:e}:(r.md?console.log("> No project ID found. Run `prjct init` first."):i.failWithHint("NO_PROJECT_ID"),{ok:!1,result:{success:!1,error:"No project ID found"}})}o(k,"requireProjectId");async function C(t,r={}){let e=await m.ensureInit(t);return e.success?k(t,r):{ok:!1,result:e}}o(C,"requireProject");async function T(t,r={},e=process.cwd()){let n=await c(t,e);return n?{ok:!0,value:n}:{ok:!1,result:s('No active work cycle \u2014 start one with `prjct work "<intent>"`',r)}}o(T,"requireActiveTask");function O(t,r,e={}){if(r&&u.getWorkflow(t,r)?.enabled)return{ok:!0,value:{name:r}};let p=u.getAllWorkflows(t).map(a=>a.name).join(", ");return{ok:!1,result:s(`Workflow '${r??""}' not found. Available: ${p}`,e)}}o(O,"requireWorkflow");function P(t,r={}){let e=f(t,{force:r.force});return e.allow?{ok:!0}:(i.fail(e.denyMessage),{ok:!1,result:{success:!1,error:e.kind==="secrets"?"Secret-like content detected":e.kind==="prompt_injection"?"Prompt-injection-like content detected":e.reason}})}o(P,"requireTrustedMemoryContent");export{k as a,C as b,T as c,O as d,P as e};
|
|
@@ -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{i as x,l as h}from"./chunk-WSVMQYYU.mjs";import{e as b}from"./chunk-X35YYOFE.mjs";import{b as S}from"./chunk-LZC6NGB6.mjs";import{a as M,h as I}from"./chunk-UNNY2IWZ.mjs";import{a as l,b as F}from"./chunk-DMO3ZFUG.mjs";import{d as R,j as D}from"./chunk-KPR5TWSN.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";F();var $=.92,v=.18;function d(e){let r=new Map,n=[];for(let s of e){r.set(l(s.content),s.id);let o=x(s.content);n.push(Float64Array.from(o))}return{entries:e,fingerprints:r,vectors:n}}c(d,"buildReferenceIndex");function g(e,r,n){if(!r||r.entries.length===0)return{excess:1,maxSim:0,nearestId:null,exactDup:!1,nearDup:!1};let s=l(e),o=r.fingerprints.get(s);if(o&&o!==n)return{excess:0,maxSim:1,nearestId:o,exactDup:!0,nearDup:!0};let f=x(e),a=r.entries.reduce((t,m,_)=>{if(n&&m.id===n)return t;let E=h(f,r.vectors[_]);return E>t.maxSim?{maxSim:E,nearestId:m.id}:t},{maxSim:0,nearestId:null}),i=Math.max(0,Math.min(1,a.maxSim)),u=a.nearestId,p=i>=$;return{excess:p?0:Math.max(0,Math.min(1,1-i)),maxSim:i,nearestId:u,exactDup:!1,nearDup:p}}c(g,"excessAgainstIndex");function O(e,r,n){return g(e,d(r),n)}c(O,"computeExcess");D();var k=new Set(["decision","gotcha","learning","fact","feedback","pattern","anti-pattern","identity","voice","glossary","framework","spec","context"]),N=150,T={declared:3,extracted:2,ambiguous:1,inferred:0};function w(e){return e.tags?.context_schema==="living-v2"||e.tags?.synthesis==="model-authored"||e.tags?.synthesis==="deterministic"||e.tags?.source==="land-auto"||e.tags?.capture==="land-v2"}c(w,"isLivingV2");function P(e){return!(!R(e)||e.content.trim().length<40||!k.has(e.type)||e.type==="context"&&!w(e)||e.type==="inbox"||e.type==="todo"||e.type==="idea")}c(P,"isReferenceEligible");function A(e){let r=T[e.provenance]??1,n=e.type==="decision"||e.type==="gotcha"?100:e.type==="learning"||e.type==="fact"?50:e.type==="context"?30:20,s=Date.parse(e.rememberedAt),o=Number.isFinite(s)?s/1e13:0;return n*10+r*3+o}c(A,"referenceRank");function C(e){let r=e.filter(P);return r.sort((n,s)=>A(s)-A(n)),r.slice(0,N)}c(C,"buildReferenceModel");var j=new Set(["decision","gotcha","red-herring","learning","fact","feedback","pattern","anti-pattern","identity","voice","glossary","framework","spec","shipped"]),U=.28;function Z(e,r,n,s){let o=n.trim();if(o.length===0)return{accept:!1,reason:"empty content"};let f=M(o,r);if(f.junk)return{accept:!1,reason:`junk capture: ${f.reason}`};let a=I(o,r,{force:s?.force==="true"||s?.["precision:force"]==="true"});if(a.action==="refuse")return{accept:!1,reason:`precision: ${a.reason}`};if(a.action==="demote")return{accept:!1,reason:`precision demote\u2192${a.demoteTo??"context"}: ${a.reason}`};let i=b(s?.source);if(j.has(r)&&!i)return{accept:!0,reason:"judgment type \u2014 always accept novel content"};let u=(()=>{try{return S.allEntriesForIndex(e)}catch{return null}})();if(!u)return{accept:!0,reason:"gate skipped (read failure)"};if(u.length===0)return{accept:!0,reason:"empty vault \u2014 seed accepted"};let p=C(u);if(p.length===0)return{accept:!0,reason:"empty reference \u2014 accept"};let y=d(p),t=g(o,y),m=i?U:v;return t.exactDup||t.nearDup||t.excess<m?{accept:!1,reason:t.exactDup?`redundant exact match of ${t.nearestId}`:i?`auto-source low excess ${t.excess.toFixed(2)} (floor ${m}) vs R nearest ${t.nearestId}`:`low excess ${t.excess.toFixed(2)} vs reference (nearest ${t.nearestId}, sim ${t.maxSim.toFixed(2)})`,excess:t.excess,nearestId:t.nearestId}:{accept:!0,reason:i?`auto-source excess ${t.excess.toFixed(2)} above floor`:`excess ${t.excess.toFixed(2)} above capture floor`,excess:t.excess,nearestId:t.nearestId}}c(Z,"captureGate");export{N as a,P as b,C as c,$ as d,v as e,d as f,g,O as h,Z as i};
|
|
@@ -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 o,c as a}from"./chunk-3TRXQAU4.mjs";function f(e){return!(e.type==="improvement-signal"||e.tags?.pattern==="hot-file")}function d(e,t){try{return JSON.parse(e)}catch{return t}}function m(e){let t=e.data?d(e.data,{}):{},r=t.tags??{};return e.type&&(r.type=e.type),{id:`ship_${e.id}`,type:"shipped",content:e.name,tags:r,rememberedAt:e.shipped_at,source:t.taskId,provenance:"extracted"}}function l(e,t){let r=t.toLowerCase();if(e.content.toLowerCase().includes(r))return!0;for(let n of Object.values(e.tags))if(n.toLowerCase().includes(r))return!0;return!1}function M(e,t){for(let[r,n]of Object.entries(t))if(e.tags[r]!==n)return!1;return!0}function E(e){let t=new Set,r=[];for(let n of e){let s=n.tags.key;if(!s){r.push(n);continue}let i=`${n.type}::${s}`;t.has(i)||(t.add(i),r.push(n))}return r}function h(e){let t=new Set;for(let r of e){r.tags["superseded-by"]&&t.add(r.id);for(let n of["supersedes","duplicates"]){let s=r.tags[n];if(s)for(let i of String(s).matchAll(g))t.add(`mem_${i[1]}`)}}return t}var c,p,y,g,u=a(()=>{"use strict";c=["identity","voice","glossary","framework"],p=["fact","decision","learning","gotcha","red-herring","pattern","anti-pattern","shipped","example",...c,"context","inbox","todo","idea","insight","question","source","person","spec"],y=p;o(f,"isModelMemory");o(d,"safeJson");o(m,"shippedRowToEntry");o(l,"matchesTopic");o(M,"matchesTags");o(E,"dedupeLatestByKey");g=/\bmem[_-](\d+)\b/g;o(h,"collectSupersededIds")});export{c as a,p as b,y as c,f as d,m as e,l as f,M as g,E as h,h as i,u as j};
|
|
@@ -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 f}from"./chunk-HCPQZRR3.mjs";import{c as _}from"./chunk-HPCSSJXH.mjs";import{a as k}from"./chunk-E5QQDYBR.mjs";import{a as E,b as y}from"./chunk-B7AQHL7B.mjs";import{a as d}from"./chunk-L4TUXFCL.mjs";import{f as r,i as R}from"./chunk-DMO3ZFUG.mjs";import{e as a,f as T,l as A}from"./chunk-HU5ERAAV.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";A();R();function o(s){let e={id:s.id,description:s.description,priority:s.priority??"medium",type:s.type??"feature",section:s.section??"backlog",completed:s.completed===1,createdAt:s.created_at};return s.completed_at!=null&&(e.completedAt=s.completed_at),s.feature_id!=null&&(e.featureId=s.feature_id),s.feature_name!=null&&(e.originFeature=s.feature_name),s.body!=null&&(e.body=s.body),s.agent!=null&&(e.agent=s.agent),s.group_name!=null&&(e.groupName=s.group_name),s.group_id!=null&&(e.groupId=s.group_id),e}c(o,"rowToTask");var p=`INSERT INTO queue_tasks
|
|
8
|
+
(id, description, type, priority, section, created_at, completed, completed_at,
|
|
9
|
+
feature_id, feature_name, body, agent, group_name, group_id)
|
|
10
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;function m(s){return[s.id,s.description,s.type??null,s.priority??null,s.section??"backlog",s.createdAt,s.completed?1:0,s.completedAt??null,s.featureId??null,s.originFeature??null,s.body??null,s.agent??null,s.groupName??null,s.groupId??null]}c(m,"insertParams");var g=class extends k{static{c(this,"QueueStorage")}constructor(){super("queue.json",_)}getDefault(){return{tasks:[],lastUpdated:""}}getEventType(e){return`queue.${e}d`}async getTasks(e){return r.query(e,"SELECT * FROM queue_tasks ORDER BY created_at ASC").map(o)}async getActiveTasks(e){return r.query(e,"SELECT * FROM queue_tasks WHERE section = 'active' AND completed = 0 ORDER BY created_at ASC").map(o)}async getBacklog(e){return r.query(e,"SELECT * FROM queue_tasks WHERE section = 'backlog' AND completed = 0 ORDER BY created_at ASC").map(o)}async getNextTask(e){let t=await this.getActiveTasks(e);return f(t)[0]||null}async addTask(e,t){let i={...t,id:d(),createdAt:a(),completed:!1};return r.run(e,p,...m(i)),await this.publishEvent(e,"queue.task_added",{taskId:i.id,description:i.description,priority:i.priority,section:i.section,created_at:i.createdAt}),i}async addTasks(e,t){let i=a(),u=t.map(n=>({...n,id:d(),createdAt:i,completed:!1}));for(let n of u)r.run(e,p,...m(n));return await this.publishEvent(e,"queue.tasks_added",{count:u.length,tasks:u.map(n=>({id:n.id,description:n.description,created_at:n.createdAt}))}),u}async upsertTask(e,t){let i=await this.getTask(e,t.id);if(i){let n={...i};for(let l of["description","type","priority","section"])t[l]!==void 0&&(n[l]=t[l]);r.run(e,`UPDATE queue_tasks SET description = ?, type = ?, priority = ?, section = ?
|
|
11
|
+
WHERE id = ?`,n.description,n.type??null,n.priority??null,n.section??"backlog",t.id);return}let u={...t,id:t.id,description:t.description,priority:t.priority??"medium",type:t.type??"feature",section:t.section??"backlog",completed:t.completed??!1,createdAt:t.createdAt??a()};r.run(e,p,...m(u))}async removeTask(e,t){r.run(e,"DELETE FROM queue_tasks WHERE id = ?",t),await this.publishEvent(e,"queue.task_removed",{taskId:t})}async deleteByFeatureId(e,t){let u=r.run(e,"DELETE FROM queue_tasks WHERE feature_id = ?",t).changes;return u>0&&await this.publishEvent(e,"queue.tasks_removed_by_feature",{featureId:t,count:u}),u}async completeTask(e,t){let i=a();if(r.run(e,"UPDATE queue_tasks SET completed = 1, completed_at = ? WHERE id = ? AND completed = 0",i,t).changes===0)return null;let n=await this.getTask(e,t);return n&&await this.publishEvent(e,"queue.task_completed",{taskId:t,description:n.description,completedAt:n.completedAt}),n}async moveToSection(e,t,i){r.run(e,"UPDATE queue_tasks SET section = ? WHERE id = ?",i,t)}async setPriority(e,t,i){r.run(e,"UPDATE queue_tasks SET priority = ? WHERE id = ?",i,t)}async getTask(e,t){let i=r.get(e,"SELECT * FROM queue_tasks WHERE id = ?",t);return i?o(i):null}async updateTask(e,t,i){let u=await this.getTask(e,t);if(!u)return null;let n={...u,...i};return r.run(e,"UPDATE queue_tasks SET description = ?, body = ?, type = ?, priority = ?, section = ? WHERE id = ?",n.description,n.body??null,n.type??null,n.priority??null,n.section??"backlog",t),await this.publishEvent(e,"queue.task_updated",{taskId:t}),n}async clearCompleted(e){return r.run(e,"DELETE FROM queue_tasks WHERE completed = 1").changes}async removeStaleCompleted(e){let t=T(E.QUEUE_COMPLETED_DAYS).toISOString(),i=r.query(e,"SELECT * FROM queue_tasks WHERE completed = 1 AND completed_at IS NOT NULL AND completed_at < ?",t).map(o);return i.length===0?0:(y.archiveMany(e,i.map(u=>({entityType:"queue_task",entityId:u.id,entityData:u,summary:u.description,reason:"age"}))),r.run(e,"DELETE FROM queue_tasks WHERE completed = 1 AND completed_at IS NOT NULL AND completed_at < ?",t),await this.publishEvent(e,"queue.stale_removed",{count:i.length}),i.length)}},D=new g;export{D as a};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as u}from"./chunk-PIA26GWG.mjs";import{a as e,b as G}from"./chunk-RP7F67ZT.mjs";import{a as m}from"./chunk-INJ5WT2D.mjs";import{b as a,f as S}from"./chunk-XYDLXF5A.mjs";import{d as l,g as d}from"./chunk-TTN2CFZC.mjs";import{b as i,c as h}from"./chunk-DOJPSIMG.mjs";import{l as c,p as L}from"./chunk-HYIT7MF5.mjs";import{e as s,g as k}from"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";S();k();L();import E from"node:fs/promises";import g from"node:path";G();d();h();var I="prjct-grok-skill";function p(){return process.env.PRJCT_TEST_MODE==="1"?g.join(i(".prjct-tests"),"grok","skills","prjct","SKILL.md"):i(".grok","skills","prjct","SKILL.md")}r(p,"getGrokSkillPath");function y(){return p()}r(y,"getGrokSkillInstallPath");function w(t){return`<!-- ${I}: ${JSON.stringify({v:l,h:t})} -->`}r(w,"getGrokSkillMetadata");function x(t){return m(t).slice(0,12)}r(x,"hashContent");function K(){return a("codex/SKILL.md")}r(K,"getGrokSkillTemplate");function C(t){let o=t.trimEnd(),n=x(o),f=w(n);return{content:`${o}
|
|
8
|
+
|
|
9
|
+
${f}
|
|
10
|
+
`,templateHash:n}}r(C,"buildGrokSkillContent");async function A(){try{let t=p();await E.mkdir(g.dirname(t),{recursive:!0});let o=await c(t),n=K();return n?await u({skillMdPath:t,skillExists:o,templateContent:n,build:C,logLabel:"Grok"}):(e.warn("Grok SKILL.md template not found"),{success:!1,action:null})}catch(t){return e.warn(`Grok skill warning: ${s(t)}`),{success:!1,action:null}}}r(A,"installGrokSkill");export{y as a,K as b,C as c,A as d};
|
|
@@ -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 r}from"./chunk-3TRXQAU4.mjs";import t from"node:crypto";function o(){return t.randomUUID()}r(o,"generateUUID");export{o as a};
|
|
@@ -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{f as n,i as o}from"./chunk-DMO3ZFUG.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";o();function u(r,e){try{return e?n.query(r,"SELECT content FROM task_log WHERE task_id = ? ORDER BY id DESC LIMIT 5",e).map(t=>t.content):n.query(r,"SELECT content FROM task_log ORDER BY id DESC LIMIT 5").map(t=>t.content)}catch{return[]}}i(u,"recentJournal");export{u as a};
|
|
@@ -0,0 +1,50 @@
|
|
|
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 v}from"./chunk-XLFEWZRA.mjs";import{a as N}from"./chunk-XPRLQIVQ.mjs";import{a as O,b as A,h as U}from"./chunk-EZRNQXCC.mjs";import{a as w,b as x,g as u,i as B}from"./chunk-DMO3ZFUG.mjs";import{e as S,f as T,g as D,h as C,i as M,j as k}from"./chunk-KPR5TWSN.mjs";import{a as _}from"./chunk-3TRXQAU4.mjs";B();x();k();U();function H(r){let e=u.get(r,`SELECT
|
|
8
|
+
(SELECT COUNT(*) FROM memory_entries) AS memCount,
|
|
9
|
+
(SELECT MAX(rowid) FROM memory_entries) AS memMaxRowid,
|
|
10
|
+
(SELECT COUNT(deleted_at) FROM memory_entries) AS memDeleted,
|
|
11
|
+
(SELECT MAX(deleted_at) FROM memory_entries) AS memMaxDeleted,
|
|
12
|
+
(SELECT COUNT(*) FROM memory_entry_tags) AS tagCount,
|
|
13
|
+
(SELECT MAX(rowid) FROM memory_entry_tags) AS tagMaxRowid,
|
|
14
|
+
(SELECT COUNT(*) FROM shipped_features) AS shipCount,
|
|
15
|
+
(SELECT MAX(rowid) FROM shipped_features) AS shipMaxRowid`);return e?[e.memCount,e.memMaxRowid??0,e.memDeleted,e.memMaxDeleted??0,e.tagCount,e.tagMaxRowid??0,e.shipCount,e.shipMaxRowid??0].join(":"):"empty"}_(H,"memoryVaultStamp");var L=new Map,$=25,q=4,V=100,I=["supersedes","duplicates","superseded-by"];function b(r,e,t){let n=r.get(e);if(n!==void 0)return n;let i=t();return r.set(e,i),i}_(b,"getOrCreateMapValue");function Y(r){try{let e=I.map(()=>"?").join(","),t=u.query(r,`SELECT t.entry_id, t.key, t.value
|
|
16
|
+
FROM memory_entry_tags t
|
|
17
|
+
JOIN memory_entries m ON m.id = t.entry_id
|
|
18
|
+
WHERE m.deleted_at IS NULL
|
|
19
|
+
AND t.is_machine = 0
|
|
20
|
+
AND t.key IN (${e})`,...I),n=new Map;for(let s of t){let c=b(n,s.entry_id,()=>({}));c[s.key]=s.value}let i=[...n.entries()].map(([s,c])=>({id:s,tags:c}));return M(i)}catch{return new Set}}_(Y,"collectMirrorSupersededIds");function F(r,e){let t=new Map;if(e.length===0)return t;let n=e.map(()=>"?").join(","),i=u.query(r,`SELECT entry_id, key, value FROM memory_entry_tags WHERE entry_id IN (${n})`,...e);for(let s of i){let c=b(t,s.entry_id,()=>({}));c[s.key]=s.value}return t}_(F,"batchTagsByEntryId");function R(r,e,...t){let n=u.query(r,`SELECT id, type, content, provenance, created_at
|
|
21
|
+
FROM memory_entries
|
|
22
|
+
WHERE deleted_at IS NULL ${e}`,...t);if(n.length===0)return[];let i=F(r,n.map(s=>s.id));return n.map(s=>({id:s.id,type:s.type,content:s.content,tags:i.get(s.id)??{},rememberedAt:new Date(s.created_at).toISOString(),provenance:s.provenance??"declared"}))}_(R,"loadV2Entries");function P(r,e,t){if(t&&t.length>0){let n=t.map(()=>"?").join(",");return R(r,`AND type IN (${n}) ORDER BY created_at DESC, rowid DESC LIMIT ?`,...t,e)}return R(r,"ORDER BY created_at DESC, rowid DESC LIMIT ?",e)}_(P,"recallEntriesFromV2");var K={applyTopicSupersession(r,e,t,n){try{let i=u.get(r,`SELECT COUNT(*) AS c FROM memory_entries
|
|
23
|
+
WHERE project_id = ? AND type = ? AND content_hash != ?
|
|
24
|
+
AND (topic_key = ? OR id IN (
|
|
25
|
+
SELECT entry_id FROM memory_entry_tags WHERE key IN ('topic', 'key') AND value = ?
|
|
26
|
+
))`,r,e,t,n,n)?.c??0;u.run(r,`UPDATE memory_entries SET topic_key = ?, revision_count = ?
|
|
27
|
+
WHERE project_id = ? AND type = ? AND content_hash = ? AND deleted_at IS NULL`,n,i,r,e,t),u.run(r,`UPDATE memory_entries SET deleted_at = ?
|
|
28
|
+
WHERE project_id = ? AND type = ? AND deleted_at IS NULL AND content_hash != ?
|
|
29
|
+
AND (topic_key = ? OR id IN (
|
|
30
|
+
SELECT entry_id FROM memory_entry_tags WHERE key IN ('topic', 'key') AND value = ?
|
|
31
|
+
))`,Date.now(),r,e,t,n,n)}catch{}},async remember(r,e){let t={...e.tags??{}},n=e.provenance??"declared",i=w(e.content);{let a=await import("./trust-boundary-24F662RM.mjs").then(l=>l.evaluateMemoryContent).catch(()=>null);if(a){let l=a(e.content,{force:e.force});if(!l.allow){if(e.requireWrite)throw new Error(l.denyMessage);return}}}let{classifyCapturePrecision:s}=await import("./precision-classifier-AV75OEVA.mjs"),c=s(e.content,e.type,{force:e.force===!0});if(c.action==="refuse"){if(e.requireWrite)throw new Error(`precision refuse (${c.reasonCode}): ${c.reason}`);return}c.action==="demote"&&c.demoteTo&&(t.shape_demoted="true",t.original_type=e.type,t.precision_reason=c.reasonCode),e.force&&(t["precision:force"]="true");let d=c.action==="demote"&&c.demoteTo?c.demoteTo:e.type,m=e.projectId??await(async()=>{try{let{default:a}=await import("./config-manager-QVFHXIKI.mjs");return(await a.readConfig(r))?.projectId}catch{return}})();if(!t.file)try{let{inferMemoryFileTag:a}=await import("./infer-memory-file-ATP7PSAQ.mjs"),l=m?await(async()=>{try{let{stateStorage:E}=await import("./state-storage-6CGFWW5D.mjs"),p=(await E.getCurrentTask(m))?.likelyFiles;return Array.isArray(p)?p.map(f=>typeof f=="string"?f:f?.path).filter(f=>typeof f=="string"&&f.length>0):null}catch{return null}})():null,h=a({content:e.content,tags:t,projectPath:r,cycleFiles:l});h&&(t.file=h,t.file_source="inferred")}catch{}let y=t.topic??t.key;if(m){try{if(u.get(m,"SELECT id FROM memory_entries WHERE content_hash = ? AND type = ? AND deleted_at IS NULL LIMIT 1",i,d)){y&&this.applyTopicSupersession(m,d,i,y);return}}catch{}try{let{captureGate:a}=await import("./capture-gate-M4HM7WAI.mjs"),l=a(m,d,e.content,t);if(!l.accept){if(e.requireWrite)throw new Error(`capture refused: ${l.reason}`);return}}catch(a){if(e.requireWrite&&a instanceof Error&&a.message.startsWith("capture refused"))throw a}}let o=await N.log(r,`${O}${d}`,{content:e.content,tags:t,source:e.source,provenance:n,content_hash:i,...m?{project_id:m}:{}},void 0,m||e.requireWrite?{...m?{projectId:m}:{},required:e.requireWrite}:void 0),g=m??o?.projectId;if(g&&y&&o?.eventId!=null&&this.applyTopicSupersession(g,d,i,y),o?.projectId)try{let{usefulnessService:a}=await import("./usefulness-A3GRKFL3.mjs");a.recordReferences(o.projectId,e.content,t),a.recordCorrection(o.projectId,t)}catch{}if(g)try{let{publishCRUD:a}=await import("./publish-helper-2T2EHM3V.mjs"),l=t.spec_id??t.task_id??t.id??e.source??`mem-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await a({projectId:g,entityType:"memories",entityId:l,eventType:"upsert",data:{id:l,type:d,content:e.content,tags:t,source:e.source??null,provenance:n,created_at:new Date().toISOString(),rememberedAt:new Date().toISOString()}})}catch{}},searchFts(r,e,t){if(e.length===0||t<=0)return[];let n=e.map(o=>v(o).replace(/[^a-z0-9-]/gi,"")).filter(o=>o.length>=2);if(n.length===0)return[];let i=n.map(o=>`"${o}"*`).join(" OR "),s=(()=>{try{return u.query(r,`SELECT m.id, m.content, m.type, m.provenance, m.created_at
|
|
32
|
+
FROM memory_entries_fts ft
|
|
33
|
+
JOIN memory_entries m ON m.rowid = ft.rowid
|
|
34
|
+
WHERE memory_entries_fts MATCH ?
|
|
35
|
+
AND m.deleted_at IS NULL
|
|
36
|
+
ORDER BY bm25(memory_entries_fts) ASC, m.created_at DESC
|
|
37
|
+
LIMIT ?`,i,t*2)}catch{return[]}})();if(s.length===0)return[];let c=F(r,s.map(o=>o.id)),d=s.map(o=>({id:o.id,type:o.type??"fact",content:o.content,tags:c.get(o.id)??{},rememberedAt:new Date(o.created_at).toISOString(),provenance:o.provenance??"declared"})),m=Y(r);return(m.size>0?d.filter(o=>!m.has(o.id)):d).slice(0,t)},recall(r,e={}){let t=e.limit??$,n=Math.max(t*q,V),i=e.types&&e.types.length>0?new Set(e.types):null,s=i?i.has("shipped"):!0,c=i?[...i].some(p=>p!=="shipped"):!0,d=i?[...i].filter(p=>p!=="shipped"):void 0,m=c?P(r,n,d):[],y=s?u.query(r,"SELECT id, name, type, shipped_at, data FROM shipped_features ORDER BY shipped_at DESC LIMIT ?",n):[],o=[...m,...y.map(S)],g=i?o.filter(p=>i.has(p.type)):o,a=e.tags?g.filter(p=>D(p,e.tags??{})):g,h=[...e.topic?a.filter(p=>T(p,e.topic)):a].sort((p,f)=>f.rememberedAt.localeCompare(p.rememberedAt)),E=e.dedupeByKey!==!1?C(h):h;return(()=>{if(e.pruneSuperseded===!1)return E;let p=M(E);return p.size>0?E.filter(f=>!p.has(f.id)):E})().slice(0,t)},recallForFile(r,e,t=3,n={}){if(!e)return[];let i=e.split("/").pop()??e,s=_(a=>a.type==="gotcha"||a.type==="red-herring"||a.type==="anti-pattern"||a.tags?.pattern==="recurring-bug","isPreventive"),c=Math.max(t*5,15),d=(()=>{try{return R(r,`AND file IS NOT NULL
|
|
38
|
+
AND (file = ? OR ? LIKE '%/' || file OR file = ? OR file LIKE '%/' || ?)
|
|
39
|
+
ORDER BY created_at DESC, rowid DESC
|
|
40
|
+
LIMIT ?`,e,e,i,i,c).filter(s)}catch{return[]}})(),m=n.preventiveOnly?[]:(()=>{try{return R(r,"AND type = ? ORDER BY created_at DESC, rowid DESC LIMIT 200","context").filter(l=>(l.tags?.files??"").split(",").map(E=>E.trim()).some(E=>E===e||E===i||E.endsWith(`/${i}`)))}catch{return[]}})(),y=[...d,...m],o=M(y);return(o.size>0?y.filter(a=>!o.has(a.id)):y).slice(0,t)},getById(r,e){let t=String(e).trim().match(/^(?:mem[_-])?(\d+)$/i);if(!t)return null;try{return R(r,"AND id = ?",`mem_${t[1]}`)[0]??null}catch{return null}},countByType(r,e){try{return u.get(r,"SELECT COUNT(*) AS n FROM memory_entries WHERE project_id IN (?, 'local') AND type = ? AND deleted_at IS NULL",r,e)?.n??0}catch{return 0}},recallByType(r,e,t){if(t<=0)return[];try{return R(r,"AND type = ? ORDER BY created_at DESC, rowid DESC LIMIT ?",e,t)}catch{return[]}},forget(r,e){let t=String(e).trim().match(/^(?:mem[_-])?(\d+)$/i);if(!t)return!1;let n=Number(t[1]),i=`mem_${n}`,s=(()=>{try{return u.get(r,"SELECT id FROM events WHERE id = ? AND type LIKE ?",n,`${A}%`)?(u.run(r,"DELETE FROM events WHERE id = ?",n),!0):!1}catch{return!1}})();try{u.run(r,"DELETE FROM memory_embeddings WHERE memory_id = ?",i)}catch{}let c=(()=>{try{return u.run(r,"UPDATE memory_entries SET deleted_at = ? WHERE id = ? AND deleted_at IS NULL",Date.now(),i).changes>0}catch{return!1}})();return s||c},expandWithLinks(r,e,t=5){if(e.length===0||t<=0)return[];let n=/\bmem[_-](\d+)\b/g,i=["resolves","relates","supersedes","superseded-by","duplicates","spec"],s=new Set(e.map(d=>d.id)),c=[];for(let d of e){if(c.length>=t)break;let m=new Set;for(let y of i){let o=d.tags?.[y];if(o)for(let g of String(o).matchAll(n))m.add(`mem_${g[1]}`)}for(let y of d.content.matchAll(n))m.add(`mem_${y[1]}`);for(let y of m){if(c.length>=t)break;if(s.has(y))continue;s.add(y);let o=K.getById(r,y);o&&c.push(o)}}return c},unembeddedEntriesForIndex(r,e){try{let t=R(r,`AND type != ?
|
|
41
|
+
AND NOT EXISTS (
|
|
42
|
+
SELECT 1 FROM memory_embeddings me
|
|
43
|
+
WHERE me.memory_id = memory_entries.id AND me.model = ?
|
|
44
|
+
)
|
|
45
|
+
ORDER BY created_at DESC, rowid DESC`,"improvement-signal",e),n=u.query(r,`SELECT s.id, s.name, s.type, s.shipped_at, s.data FROM shipped_features s
|
|
46
|
+
WHERE NOT EXISTS (
|
|
47
|
+
SELECT 1 FROM memory_embeddings me
|
|
48
|
+
WHERE me.memory_id = 'ship_' || s.id AND me.model = ?
|
|
49
|
+
)
|
|
50
|
+
ORDER BY s.shipped_at DESC`,e);return[...t,...n.map(S)]}catch{return[]}},allEntriesForIndex(r){try{let e=H(r),t=L.get(r);if(t&&t.stamp===e)return[...t.entries];let n=R(r,"ORDER BY created_at DESC, rowid DESC"),i=u.query(r,"SELECT id, name, type, shipped_at, data FROM shipped_features ORDER BY shipped_at DESC"),s=[...n,...i.map(S)];return L.set(r,{stamp:e,entries:s}),[...s]}catch{return[]}}};export{H as a,K as b};
|
|
@@ -0,0 +1,10 @@
|
|
|
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 c,c as u,d,e as k,f as s,g as l,j as f}from"./chunk-YQ6HM3YO.mjs";import{a}from"./chunk-3TRXQAU4.mjs";function m(t){return typeof t=="string"?`${t}
|
|
8
|
+
`:`${JSON.stringify(t)}
|
|
9
|
+
`}a(m,"payloadLine");async function g(t,n){let e=t.projectPath??process.cwd();if(n){try{let i=n.hookHost??u(),r=n.input;if(n.afterEmitOnly){t.afterEmit&&n.detachAfterEmit(()=>t.afterEmit(r,e,i));return}let o=t.decide?await t.decide(r,e):null;if(o){n.sink(m(d(c(t.event,o.deny),i)));return}let H=t.build?await t.build(r,e,i):null;n.sink(m(d(f(t.event,H),i))),t.afterEmit&&n.detachAfterEmit(()=>t.afterEmit(r,e,i))}catch{n.sink(`{}
|
|
10
|
+
`)}return}await l(async()=>{let i=k(),r=t.decide?await t.decide(i,e):null;if(r){s(c(t.event,r.deny));return}let o=t.build?await t.build(i,e,u()):null;s(f(t.event,o)),t.afterEmit&&await t.afterEmit(i,e,u())})}a(g,"runHook");export{g as a};
|
|
@@ -0,0 +1,21 @@
|
|
|
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 p}from"./chunk-LZC6NGB6.mjs";import{f as m,i as v}from"./chunk-DMO3ZFUG.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";v();var C=300,N=3;function b(t){let e=t?.judgment?.conflictMode;if(e==="off"||e==="advisory"||e==="strict")return e;let n=t?.persona?.packs??[];return n.includes("code-strict")?"strict":n.includes("code")?"advisory":"off"}c(b,"effectiveConflictMode");function E(t){let e={action:"none",memoryIds:[],reason:"",recovery:"",message:""};if(t.mode==="off")return e;let n=new Set(t.overriddenIds??[]),r=t.candidates.filter(i=>i.id&&!n.has(i.id));if(r.length===0)return e;let o=r.filter(i=>i.confidence==="high"),l=r.filter(i=>i.confidence==="low"),s=o[0]??l[0];if(!s)return e;let f=r.map(i=>i.id),y=t.fileLabel?` on \`${t.fileLabel}\``:"",d=`Edit may contradict [${s.type}] ${g(s.content,80)} (\`${s.id}\`)${y}`,a='To supersede: `prjct remember decision "\u2026why supersede\u2026" --tags supersedes:'+s.id+'`. To lift deny for this memory: `prjct remember feedback "override conflict '+s.id+': <why>" --tags conflict:override,memory:'+s.id+"`.";return o.length===0?{action:"warn",memoryIds:f,reason:`Low-confidence preventive signal${y}: ${g(s.content,80)}`,recovery:a,message:u(d,a,f,!1)}:t.mode==="strict"?{action:"deny",memoryIds:o.map(i=>i.id),reason:d,recovery:a,message:h(d,a,o.map(i=>i.id))}:{action:"warn",memoryIds:f,reason:d,recovery:a,message:u(d,a,f,!0)}}c(E,"decisionConflictVerdict");function u(t,e,n,r){return[r?"# prjct: CONFLICT \u2014 decision/gotcha may block this path":"# prjct: heads-up \u2014 weak preventive signal","",t,"",`Memory: ${n.map(l=>`\`${l}\``).join(", ")}`,"",e,"",r?"> Not a soft nudge. Revise the edit or supersede the decision with rationale before proceeding.":"> Apply if it still holds; proceed if not."].join(`
|
|
8
|
+
`)}c(u,"formatWarnMessage");function h(t,e,n){return[`\u26D4 prjct conflict deny: ${t}`,`Memories: ${n.join(", ")}`,e,"Host will block Edit|Write until override or supersede. Fail-open only on hook errors, not on intentional deny."].join(" ")}c(h,"formatDenyMessage");function A(t){let e=new Set;try{let n=Date.now()-6048e5,r=m.query(t,`SELECT t.value AS value
|
|
9
|
+
FROM memory_entry_tags t
|
|
10
|
+
JOIN memory_entries me ON me.id = t.entry_id
|
|
11
|
+
WHERE me.deleted_at IS NULL
|
|
12
|
+
AND me.created_at >= ?
|
|
13
|
+
AND t.key = 'memory'
|
|
14
|
+
AND EXISTS (
|
|
15
|
+
SELECT 1 FROM memory_entry_tags t2
|
|
16
|
+
WHERE t2.entry_id = me.id AND t2.key = 'conflict' AND t2.value = 'override'
|
|
17
|
+
)`,n);for(let o of r)o.value&&e.add(o.value.startsWith("mem_")?o.value:`mem_${o.value}`)}catch{}return e}c(A,"loadConflictOverrides");async function I(t,e,n,r,o){if(n==="deny")try{await p.remember(t,{type:"fact",content:`conflict-gate ${n}: ${g(o,200)}`,tags:{source:"conflict-gate",conflict_action:n,memory:r[0]??""},provenance:"extracted",projectId:e})}catch{}}c(I,"recordConflictEvent");function L(t,e,n=0){try{return m.get(t,`SELECT COUNT(*) AS c
|
|
18
|
+
FROM memory_entries me
|
|
19
|
+
JOIN memory_entry_tags t ON t.entry_id = me.id AND t.key = 'conflict_action' AND t.value = ?
|
|
20
|
+
JOIN memory_entry_tags t2 ON t2.entry_id = me.id AND t2.key = 'source' AND t2.value = 'conflict-gate'
|
|
21
|
+
WHERE me.deleted_at IS NULL AND me.created_at >= ?`,e,n)?.c??0}catch{return 0}}c(L,"countConflictEvents");function x(t){return t.map(e=>{let n=e.type==="gotcha"||e.type==="anti-pattern"||e.type==="decision"||e.tags?.pattern==="recurring-bug",r=(e.content?.trim().length??0)>=20;return{id:e.id,type:e.type,content:e.content,confidence:n&&r?"high":"low"}})}c(x,"candidatesFromPreventive");function D(t,e=C){return Date.now()-t>e}c(D,"budgetExceeded");function g(t,e){let n=t.replace(/\s+/g," ").trim();return n.length>e?`${n.slice(0,e-1)}\u2026`:n}c(g,"truncate");export{C as a,N as b,b as c,E as d,A as e,I as f,L as g,x as h,D as i};
|
|
@@ -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 r}from"./chunk-3TRXQAU4.mjs";function o(e,t,d){let a=e.filter(n=>n.type==="added").length,m=e.filter(n=>n.type==="removed").length,l=e.filter(n=>n.type==="changed").length;return{hasChanges:e.length>0,items:e,summary:{added:a,removed:m,changed:l},beforeCommit:t,afterCommit:d}}r(o,"summarizeDiffItems");export{o as a};
|
|
@@ -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{a as n}from"./chunk-3TRXQAU4.mjs";var a=[{runtimeId:"claude",displayName:"Claude Code",product:"Anthropic Claude Code",instructions:{files:["CLAUDE.md","AGENTS.md","~/.claude/CLAUDE.md"],loadOrder:"user global \u2192 project CLAUDE.md \u2192 nested CLAUDE.md",prjct:"native"},mcp:{configPaths:["~/.claude/mcp.json","project .mcp.json"],format:"JSON mcpServers",prjct:"native",notes:"prjct MCP + Context7 installable via prjct install / context7-service"},skills:{paths:["~/.claude/skills/",".claude/skills/","project skills via skill-generator"],prjct:"native"},hooks:{configPaths:["~/.claude/settings.json"],events:["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStart","SubagentStop","Notification","CwdChanged"],format:"settings.json hooks[] with type:command",prjct:"native",contract:"Passive inject via additionalContext; PreToolUse deny only for explicit loop-guard. Fail-soft {}.",notes:"prjct install writes _prjctManaged hooks (PRJCT_HOOKS)"},plugins:{paths:["Claude Code plugins / marketplaces"],prjct:"none"},legibility:"Deepest native wire: hooks + MCP + skill + CLAUDE.md. Reference implementation for all other rigs."},{runtimeId:"codex",displayName:"OpenAI Codex",product:"OpenAI Codex CLI",instructions:{files:["AGENTS.md","nested AGENTS.md"],loadOrder:"cwd \u2192 repo root AGENTS.md (Codex priority rules)",prjct:"portable"},mcp:{configPaths:["~/.codex/config.toml [mcp_servers.*]"],format:"TOML mcp_servers tables",prjct:"native",notes:"ensureCodexMcpServer writes # prjct:mcp markers; status line optional"},skills:{paths:["~/.codex/skills/",".agents/skills/","plugins"],prjct:"portable",notes:"Codex skill description hard ~1024 byte limit (gotcha mem_3723)"},hooks:{configPaths:["~/.codex/hooks.json","~/.codex/config.toml [[hooks.*]]",".codex/hooks.json"],events:["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStart","SubagentStop","PermissionRequest","PreCompact","PostCompact"],format:"hooks.json (+ [features] hooks = true); trust via Codex /hooks once",prjct:"native",contract:"PRJCT_HOOKS mapped to hooks.json (skips Notification/CwdChanged). Fail-soft command wrapper. User must trust hooks once in TUI.",notes:"prjct install \u2192 installCodexHooks(); commandWindows for win32; features.hooks enabled when missing"},legibility:"MCP + hooks both native on install when Codex is detected. Trust new hooks once via `/hooks`. AGENTS.md portable."},{runtimeId:"gemini",displayName:"Gemini CLI",product:"Google Gemini CLI",instructions:{files:["GEMINI.md","AGENTS.md (if context.fileName includes it)","~/.gemini/GEMINI.md"],loadOrder:"global GEMINI.md \u2192 project \u2192 nested; fileName configurable",prjct:"portable"},mcp:{configPaths:["~/.gemini/settings.json mcpServers","mcp_config.json"],format:"JSON mcpServers in settings",prjct:"native",notes:"prjct install \u2192 ensureGeminiMcpServer (mcpServers.prjct)"},skills:{paths:["Agent Skills standard dirs under Gemini config"],prjct:"portable"},hooks:{configPaths:[".gemini/settings.json","~/.gemini/settings.json","/etc/gemini-cli/settings.json"],events:["BeforeTool","AfterTool","BeforeAgent","AfterAgent","SessionStart","SessionEnd","Notification"],format:"settings.json hooks.*[] with type:command; timeout ms",prjct:"native",contract:"PRJCT_HOOK_HOST=gemini remaps deny\u2192{decision:deny} and event names. Matchers: run_shell_command, write_file|replace.",notes:"installGeminiSettings maps Claude events \u2192 Gemini BeforeTool/BeforeAgent/AfterAgent"},legibility:"MCP + hooks native on install when Gemini is detected. GEMINI.md/AGENTS.md remain portable context."},{runtimeId:"grok",displayName:"xAI Grok Build",product:"xAI Grok Build CLI",instructions:{files:["AGENTS.md / Agents.md / AGENT.md","CLAUDE.md (native Claude compat)",".claude/rules/","~/.grok + project walk"],loadOrder:"AGENTS.md cwd\u2192root; also auto-reads Claude instruction files",prjct:"inherits-claude"},mcp:{configPaths:["~/.grok/config.toml [mcp_servers.prjct]","~/.claude/mcp.json (Claude compat fallback)","plugins .mcp.json"],format:"TOML mcp_servers (same shape as Codex) + Claude MCP JSON (compat)",prjct:"native",notes:"prjct install \u2192 ensureGrokMcpServer() writes managed [mcp_servers.prjct] into ~/.grok/config.toml; Claude MCP remains a fallback"},skills:{paths:["./.grok/skills/","~/.grok/skills/prjct/SKILL.md","~/.agents/skills/",".claude/skills/ (compat)","plugin skills/"],prjct:"native",notes:"prjct install \u2192 installGrokSkill() at ~/.grok/skills/prjct/SKILL.md"},hooks:{configPaths:["~/.grok/hooks/*.json",".grok/hooks/*.json (needs /hooks-trust)","~/.claude/settings.json (compat)",".cursor/hooks.json (compat)"],events:["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PostToolUse","PostToolUseFailure","PermissionDenied","Stop","StopFailure","Notification","SubagentStart","SubagentStop","PreCompact","PostCompact"],format:"JSON hook files; Claude settings.json + Cursor hooks.json also loaded",prjct:"inherits-claude",contract:"PreToolUse is the only blocking event (decision deny or exit 2). Fail-open on errors. Project hooks need trust.",notes:"Hooks still via Claude/Cursor compat (no second Grok hook writer yet). MCP + skill are native."},plugins:{paths:["./.grok/plugins/","~/.grok/plugins/prjct/","marketplaces"],prjct:"native",notes:"prjct install \u2192 installGrokPlugin() at ~/.grok/plugins/prjct (skill + /plan command; MCP stays in config.toml)"},legibility:"Native MCP + skill + user plugin on prjct install when Grok is detected; PreToolUse/Session hooks still fire via Claude-compat settings. Plan ceremony: `prjct plan`. Grok is Brain; prjct SQLite is Body."},{runtimeId:"opencode",displayName:"OpenCode",product:"OpenCode (OSS multi-provider)",instructions:{files:["AGENTS.md","opencode.json(c)","CLAUDE.md (compat)"],loadOrder:"project AGENTS.md \u2192 global ~/.config/opencode/AGENTS.md; Claude fallbacks",prjct:"portable"},mcp:{configPaths:["~/.config/opencode/opencode.json mcp.prjct","~/.config/opencode/opencode.jsonc","project opencode.json(c)"],format:"JSONC mcp.<name> = { type:local, command:[...], enabled }",prjct:"native",notes:"prjct install \u2192 ensureOpenCodeMcpServer() upserts mcp.prjct (jsonc-safe merge)"},skills:{paths:[".opencode/skills/","~/.claude/skills/ (Claude Code compat)"],prjct:"inherits-claude",notes:"Claude skill install covers OpenCode when Claude compat is enabled"},hooks:{configPaths:[],events:[],format:"plugin/extension dependent",prjct:"none",contract:"No Claude-parity hook pack; MCP + AGENTS.md is the organic wire"},legibility:"Native MCP on prjct install when OpenCode is detected. AGENTS.md portable; Claude skills/CLAUDE.md as fallback."},{runtimeId:"pi",displayName:"Pi",product:"Pi coding agent (minimal harness)",instructions:{files:["AGENTS.md","CLAUDE.md","~/.pi/agent/AGENTS.md","SYSTEM.md / APPEND_SYSTEM.md"],loadOrder:"~/.pi/agent \u2192 parents \u2192 cwd",prjct:"portable"},mcp:{configPaths:[],format:"none built-in (extension-only)",prjct:"none",notes:"Pi intentionally has no native MCP; do not require it for full wire"},skills:{paths:["~/.pi/agent/skills/prjct/SKILL.md","pi packages"],prjct:"native",notes:"prjct install \u2192 installPiSkill() at ~/.pi/agent/skills/prjct/SKILL.md"},hooks:{configPaths:[],events:[],format:"extension event hooks only",prjct:"none",contract:"Skill + AGENTS.md + prjct CLI --md; no lifecycle hook pack"},legibility:"Native skill on prjct install when Pi is detected. AGENTS.md portable. MCP is optional via community extensions only."},{runtimeId:"kimi-cli",displayName:"Kimi Code CLI",product:"Moonshot Kimi Code CLI",instructions:{files:["AGENTS.md"],loadOrder:"project AGENTS.md routing block",prjct:"portable"},mcp:{configPaths:["~/.kimi-code/mcp.json","~/.kimi/mcp.json (legacy fallback)"],format:"JSON mcpServers (claude-json shape)",prjct:"native",notes:"ensureKimiMcpServer prefers ~/.kimi-code, writes legacy only when it is the sole Kimi home; uninstall strips prjct-managed servers from both"},skills:{paths:["~/.agents/skills/prjct/SKILL.md","$KIMI_CODE_HOME/skills/ (~/.kimi-code/skills/)"],prjct:"native",notes:"Compact skill via skill-generator fan-out into the shared user tier ~/.agents/skills (canonical Kimi scan dir, verified live)"},hooks:{configPaths:["~/.kimi-code/config.toml [[hooks]]"],events:["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStart","SubagentStop","Notification"],format:"TOML [[hooks]] (event/matcher/command/timeout only \u2014 extra fields break config load); # prjct-managed comment marks our entries",prjct:"native",contract:"stdin JSON snake_case (hook_event_name/session_id/cwd/tool_input); exit 0 stdout text appended to context; deny via hookSpecificOutput.permissionDecision JSON or exit 2 + stderr; fail-open on error/timeout. No CwdChanged (cwd rides every payload).",notes:"PRJCT_HOOK_HOST=kimi adapts output to raw stdout text; forwarded to the daemon as hookHost. kimi-hooks.ts patches config.toml textually \u2014 user entries and orca-managed blocks stay byte-identical."},legibility:"Full native wire: TOML hooks + claude-json MCP + shared-tier skill + AGENTS.md. First-class since the ~/.kimi-code path fix."},{runtimeId:"cursor",displayName:"Cursor",product:"Cursor IDE",instructions:{files:["AGENTS.md",".cursor/rules/*.mdc"],loadOrder:"project rules + AGENTS.md; model pick in-app",prjct:"portable"},mcp:{configPaths:["Cursor MCP settings (app)"],format:"IDE MCP UI / json",prjct:"portable"},skills:{paths:[],prjct:"none",notes:"Skills are CLI-agent concept; Cursor uses rules + MCP"},hooks:{configPaths:["~/.cursor/hooks.json","project .cursor/hooks.json"],events:["sessionStart","beforeSubmitPrompt","preToolUse","postToolUse","stop","subagentStart","subagentStop"],format:"version:1 flat handlers; camelCase events; timeout seconds",prjct:"native",contract:"User-level install (clean-repo). PRJCT_HOOK_HOST=cursor emits camelCase + additional_context. Grok also reads this file.",notes:"installCursorHooks on prjct install when .cursor detected; matchers Write|StrReplace|Edit, Shell|Bash"},legibility:"Hooks native at ~/.cursor/hooks.json on install. AGENTS.md + optional .cursor/rules. MCP still IDE UI."},{runtimeId:"cline",displayName:"Cline",product:"Cline (VS Code agent)",instructions:{files:["AGENTS.md",".clinerules/"],loadOrder:"rules + AGENTS.md",prjct:"portable"},mcp:{configPaths:["Cline MCP settings"],format:"IDE MCP",prjct:"portable"},skills:{paths:["Cline skills / custom instructions"],prjct:"portable"},hooks:{configPaths:["Cline hooks (when enabled)"],events:["varies by version"],format:"extension-defined",prjct:"planned",contract:"Multi-model VS Code agent; ACP support for some hosts"},legibility:"AGENTS.md + MCP portable; deep native wire planned if hook schema stabilizes."}];function c(o){let s=o?.only?new Set(o.only):null,i=a.filter(e=>!s||s.has(e.runtimeId)),t=["## Harness surfaces (benchmark tier)","","| Runtime | Instructions | MCP | Skills | Hooks | prjct wire |","|---|---|---|---|---|---|"];for(let e of i){let r=l(e);t.push(`| ${e.displayName} | ${e.instructions.prjct} | ${e.mcp.prjct} | ${e.skills.prjct} | ${e.hooks.prjct} | ${r} |`)}if(t.push("","Wire legend: `native` = prjct installs; `inherits-claude` = covered by Claude install; `portable` = AGENTS.md/MCP/CLI; `planned` = surface exists, installer next.",""),o?.detail){t.push("### Integration notes","");for(let e of i)t.push(`#### ${e.displayName}`,"",e.legibility,""),e.hooks.notes&&t.push(`- Hooks: ${e.hooks.notes}`),e.mcp.notes&&t.push(`- MCP: ${e.mcp.notes}`),e.skills.notes&&t.push(`- Skills: ${e.skills.notes}`),t.push(`- Hook events: ${e.hooks.events.slice(0,8).join(", ")||"(none)"}`),t.push(`- MCP paths: ${e.mcp.configPaths.join("; ")}`),t.push("")}return t.join(`
|
|
8
|
+
`)}n(c,"formatHarnessSurfacesMarkdown");function l(o){let s=[o.hooks.prjct,o.mcp.prjct,o.instructions.prjct,o.skills.prjct];return s.includes("native")?"native+":s.includes("inherits-claude")?"via Claude":s.includes("planned")?"partial/planned":s.includes("portable")?"portable":"none"}n(l,"summarizeWire");export{c as a};
|