prjct-cli 3.97.0 → 3.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/bin/core-chunks/{agent-HCP5FF77.mjs → agent-3N2MSSGT.mjs} +1 -1
- package/dist/bin/core-chunks/{agent-switch-AVSX6SLY.mjs → agent-switch-4SE6GF7R.mjs} +1 -1
- package/dist/bin/core-chunks/{agents-OAQXBGH3.mjs → agents-ZPNNCOH7.mjs} +1 -1
- package/dist/bin/core-chunks/{analysis-3A7ODSSI.mjs → analysis-OARMM4AH.mjs} +2 -2
- package/dist/bin/core-chunks/{auto-flush-EWSVMKQN.mjs → auto-flush-XA3V7BJ6.mjs} +1 -1
- package/dist/bin/core-chunks/{bin-commands-LLHG2NSY.mjs → bin-commands-FYID6EYI.mjs} +5 -5
- package/dist/bin/core-chunks/{capture-7LQ52T6L.mjs → capture-3JJPWIF3.mjs} +1 -1
- package/dist/bin/core-chunks/{capture-gate-M4HM7WAI.mjs → capture-gate-G5LGVDME.mjs} +1 -1
- package/dist/bin/core-chunks/{ceremonies-4OZ3FKRE.mjs → ceremonies-B565WDCA.mjs} +4 -4
- package/dist/bin/core-chunks/{changelog-CUNVCEL5.mjs → changelog-LPJ4GKB6.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-DN46DLU3.mjs → chunk-2FRLIQKX.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-X4FR5S7E.mjs → chunk-2VRS5CUH.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-ZK7BMUMR.mjs → chunk-2VXPFULA.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-3OWKIRK6.mjs +7 -0
- package/dist/bin/core-chunks/{chunk-V5VCXMKO.mjs → chunk-5DZ2LTII.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-5ONMON5L.mjs → chunk-5OWPZWEU.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-KWC2PCPC.mjs → chunk-5TGZSK4C.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-5ZBACKED.mjs +14 -0
- package/dist/bin/core-chunks/{chunk-X35YYOFE.mjs → chunk-6KNMT46X.mjs} +2 -2
- package/dist/bin/core-chunks/{chunk-5MN22JFI.mjs → chunk-6POAOY5C.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-7CI4AMVO.mjs → chunk-6U3CYLY5.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-J7T5IEFJ.mjs → chunk-6U3MV7KZ.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-2ZPM4Z6W.mjs → chunk-7BU6SJBC.mjs} +4 -4
- package/dist/bin/core-chunks/{chunk-ZKJZDOPT.mjs → chunk-ACIOJQSI.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-UE3XKXWM.mjs → chunk-ALTQ3KL4.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-IVGWOY3U.mjs → chunk-ANBDOI53.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-LZC6NGB6.mjs → chunk-B2HY22OD.mjs} +2 -2
- package/dist/bin/core-chunks/{chunk-6AFXUX2M.mjs → chunk-BUD3R6LF.mjs} +2 -2
- package/dist/bin/core-chunks/{chunk-MDONTD7O.mjs → chunk-CA2VFWFP.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-56FW4P6U.mjs → chunk-CB3CNJTL.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-6FFOWWH2.mjs → chunk-CVKMV22J.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-5UUITMRX.mjs → chunk-CXKDKMYE.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-XSZG3CBO.mjs → chunk-DTMZBK4E.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-DW4QMD6J.mjs +10 -0
- package/dist/bin/core-chunks/{chunk-CDLZLTRY.mjs → chunk-DZDEBDAB.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-WGDE3L33.mjs → chunk-FOUBHU4X.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-CNWEQUB7.mjs → chunk-HA7Y76GF.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-MTDCRYLP.mjs → chunk-HVXWQ2XZ.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-OYXQRBVM.mjs → chunk-IJNKHQIS.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-KIRU4QFX.mjs → chunk-J6Y7IVFQ.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-3FXNIJCS.mjs → chunk-JGGQSMZC.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-6P4GMVUZ.mjs → chunk-KI4OY3UQ.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-BTCCUMKI.mjs → chunk-L3DJN3XD.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-CEOTHJIY.mjs → chunk-LFOQ7FCR.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-XU3BQPBU.mjs → chunk-LGX2GM45.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-LTKUTRRL.mjs +7 -0
- package/dist/bin/core-chunks/{chunk-BQKDJ3U6.mjs → chunk-LZILSE5H.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-MPU3VM6Z.mjs +7 -0
- package/dist/bin/core-chunks/{chunk-INM5COWM.mjs → chunk-MXJF3FA7.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-VDXTMAMO.mjs → chunk-NNILF7R3.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-WZXUFSVT.mjs → chunk-O5VCBMEK.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-XYDLXF5A.mjs → chunk-OE27RFLJ.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-HEXSVBUP.mjs → chunk-OGM34Z6W.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-KKIJAEYU.mjs → chunk-OXKGN3HG.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-QLMZW4K7.mjs → chunk-PQTR6XVW.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-53ZPEZLU.mjs → chunk-Q7GJIU6D.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-IFLBZKKK.mjs → chunk-QWRPJARA.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-TGNZI4KF.mjs → chunk-STFUT7R7.mjs} +2 -2
- package/dist/bin/core-chunks/{chunk-IMQCXC3R.mjs → chunk-SUXIKMTS.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-WP5IU4W4.mjs → chunk-TOORPP6K.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-7QMBIMEX.mjs → chunk-UAYTDSYG.mjs} +3 -3
- package/dist/bin/core-chunks/{chunk-PPERWRFS.mjs → chunk-UNIBFM6J.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-5YSPND5J.mjs → chunk-UX2ORID4.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-3JD6KRNJ.mjs → chunk-VJCTTFKP.mjs} +1 -1
- package/dist/bin/core-chunks/chunk-W23JLJJZ.mjs +109 -0
- package/dist/bin/core-chunks/{chunk-DCVPNFS4.mjs → chunk-WCTVZQBG.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-GOIBJ7PV.mjs → chunk-WZ6W5ZQ5.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-XPRLQIVQ.mjs → chunk-X433BB6F.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-ZHTYSYZC.mjs → chunk-XBR63NJA.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-ZS7XJUPE.mjs → chunk-XJTEPHLC.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-K25HGTC3.mjs → chunk-XLAGA5B7.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-3USVY66O.mjs → chunk-XSZOHNL4.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-TTN2CFZC.mjs → chunk-XWLTEAGN.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-V3Y3G2DE.mjs → chunk-YOWW4LHK.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-P53YMOKR.mjs → chunk-YPLFWN62.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-ZQHSJ6FF.mjs → chunk-ZAUJWUUN.mjs} +3 -3
- package/dist/bin/core-chunks/{chunk-WSVMQYYU.mjs → chunk-ZQ2XH76U.mjs} +2 -2
- package/dist/bin/core-chunks/{chunk-RXXXA7Z6.mjs → chunk-ZSANMA7K.mjs} +1 -1
- package/dist/bin/core-chunks/{chunk-AJTBFIH2.mjs → chunk-ZZR3LXCK.mjs} +1 -1
- package/dist/bin/core-chunks/{cleanup-installs-WHXUGAHM.mjs → cleanup-installs-LD43GI4K.mjs} +1 -1
- package/dist/bin/core-chunks/{cloud-FFUJZLDV.mjs → cloud-RXHFZ7MX.mjs} +1 -1
- package/dist/bin/core-chunks/{code-SU7GCPH6.mjs → code-IYK65A62.mjs} +1 -1
- package/dist/bin/core-chunks/{codex-hooks-GOLMCL2Q.mjs → codex-hooks-N5UHKK5B.mjs} +1 -1
- package/dist/bin/core-chunks/{codex-mcp-K4X2UIQF.mjs → codex-mcp-G7WNAT6T.mjs} +1 -1
- package/dist/bin/core-chunks/{codex-skill-3HNVU4T4.mjs → codex-skill-IZNP76BJ.mjs} +1 -1
- package/dist/bin/core-chunks/{command-installer-XIQK2G6W.mjs → command-installer-4ENM4GZR.mjs} +1 -1
- package/dist/bin/core-chunks/{config-W3RHV3GK.mjs → config-UVF7YOR6.mjs} +1 -1
- package/dist/bin/core-chunks/{config-manager-QVFHXIKI.mjs → config-manager-QY73WM5U.mjs} +1 -1
- package/dist/bin/core-chunks/{context-4KGTUAC4.mjs → context-4GB6ICXK.mjs} +1 -1
- package/dist/bin/core-chunks/{context-DDHC7VIC.mjs → context-MPHOQPXF.mjs} +2 -2
- package/dist/bin/core-chunks/{context-checkpoint-4CEUPEVG.mjs → context-checkpoint-NBI5HKPV.mjs} +1 -1
- package/dist/bin/core-chunks/{context-tiers-4S6H22NP.mjs → context-tiers-NOKJ75QP.mjs} +1 -1
- package/dist/bin/core-chunks/{context7-service-AZWDYK5Z.mjs → context7-service-2MYRUNKY.mjs} +1 -1
- package/dist/bin/core-chunks/{core-PR5WEQCS.mjs → core-WMEHDCOK.mjs} +1 -1
- package/dist/bin/core-chunks/{crew-JQCG6NS3.mjs → crew-EYVSIX4L.mjs} +1 -1
- package/dist/bin/core-chunks/{cwd-changed-ODKZVSPB.mjs → cwd-changed-EUJZOBIC.mjs} +1 -1
- package/dist/bin/core-chunks/{daemon-2NQTBFVR.mjs → daemon-QARP3RVX.mjs} +1 -1
- package/dist/bin/core-chunks/{developer-profile-MRPBWL2K.mjs → developer-profile-2VSFJGCU.mjs} +1 -1
- package/dist/bin/core-chunks/{distill-MLDZG5RA.mjs → distill-ZF7WHGCZ.mjs} +1 -1
- package/dist/bin/core-chunks/doctor-heal-XFSVPSEY.mjs +7 -0
- package/dist/bin/core-chunks/{doctor-service-WXLB2FEE.mjs → doctor-service-6ZJBWIXR.mjs} +1 -1
- package/dist/bin/core-chunks/{dynasty-outcomes-H2O546OL.mjs → dynasty-outcomes-KDWIEA4Y.mjs} +1 -1
- package/dist/bin/core-chunks/{embeddings-7A5Z5I67.mjs → embeddings-354ZYFKX.mjs} +1 -1
- package/dist/bin/core-chunks/{enriched-recall-YXK7EIKH.mjs → enriched-recall-MKBOXB7M.mjs} +1 -1
- package/dist/bin/core-chunks/{eval-4YFUBFLV.mjs → eval-O4YD6YOV.mjs} +2 -2
- package/dist/bin/core-chunks/{format-5V6GF6JJ.mjs → format-SYVL4CV5.mjs} +1 -1
- package/dist/bin/core-chunks/{gemini-settings-ZTU3VQU3.mjs → gemini-settings-RGD7JLSP.mjs} +1 -1
- package/dist/bin/core-chunks/{grok-mcp-F3SRFMCW.mjs → grok-mcp-IE2RRRRW.mjs} +1 -1
- package/dist/bin/core-chunks/{grok-plugin-4CE2WUYI.mjs → grok-plugin-SSANHBS7.mjs} +1 -1
- package/dist/bin/core-chunks/{grok-skill-GLSBOOKW.mjs → grok-skill-7ZP7R7KO.mjs} +1 -1
- package/dist/bin/core-chunks/{guard-FJBJ6IAE.mjs → guard-RT7U3LJX.mjs} +1 -1
- package/dist/bin/core-chunks/{guards-LFUFKVVH.mjs → guards-AXH6V2IJ.mjs} +1 -1
- package/dist/bin/core-chunks/{harness-FN3HASSA.mjs → harness-V7J7WIT2.mjs} +2 -2
- package/dist/bin/core-chunks/{health-W2VWME7Z.mjs → health-TNB5OC37.mjs} +1 -1
- package/dist/bin/core-chunks/{help-I37I3V2R.mjs → help-P7EYELVK.mjs} +1 -1
- package/dist/bin/core-chunks/{hooks-service-C2P5DRCH.mjs → hooks-service-REI56DDC.mjs} +1 -1
- package/dist/bin/core-chunks/{install-XP4S6HWQ.mjs → install-FZQJJWT5.mjs} +2 -2
- package/dist/bin/core-chunks/{judgment-GJE332LF.mjs → judgment-G5KH6QFC.mjs} +2 -2
- package/dist/bin/core-chunks/{judgment-receipt-WT4EMCAV.mjs → judgment-receipt-GO6QEZQC.mjs} +1 -1
- package/dist/bin/core-chunks/{kimi-hooks-2UEUIKXV.mjs → kimi-hooks-TR6J3OVG.mjs} +1 -1
- package/dist/bin/core-chunks/{kimi-mcp-DJCXZ2JY.mjs → kimi-mcp-ETG7O6O5.mjs} +1 -1
- package/dist/bin/core-chunks/{land-cue-5USQ64MS.mjs → land-cue-3BUD3KJJ.mjs} +1 -1
- package/dist/bin/core-chunks/{land-rho-ISNVEPVC.mjs → land-rho-MCTQDPRH.mjs} +1 -1
- package/dist/bin/core-chunks/{land-synthesis-CHARJMUP.mjs → land-synthesis-MU4EZEYL.mjs} +1 -1
- package/dist/bin/core-chunks/{lean-L53CKZNH.mjs → lean-26BWCUOR.mjs} +1 -1
- package/dist/bin/core-chunks/{legacy-crew-sweep-2TLKJTHI.mjs → legacy-crew-sweep-G5UJT2PM.mjs} +2 -2
- package/dist/bin/core-chunks/{llm-XMH7WTHV.mjs → llm-KMVXVBHG.mjs} +1 -1
- package/dist/bin/core-chunks/{mcp-FLVIZBV2.mjs → mcp-BD5TOTCK.mjs} +1 -1
- package/dist/bin/core-chunks/{memory-dream-EJWI4FJO.mjs → memory-dream-6GFV2GXN.mjs} +1 -1
- package/dist/bin/core-chunks/{memory-export-27HTNNFI.mjs → memory-export-WJ4H7CFV.mjs} +1 -1
- package/dist/bin/core-chunks/{memory-index-BRZDZ2BY.mjs → memory-index-7NIU34EI.mjs} +1 -1
- package/dist/bin/core-chunks/{notification-KJ4FQJAW.mjs → notification-G654IX3O.mjs} +1 -1
- package/dist/bin/core-chunks/{notify-76B7AICZ.mjs → notify-EWYUBKGO.mjs} +1 -1
- package/dist/bin/core-chunks/{opencode-mcp-5YSIYDI3.mjs → opencode-mcp-L7NC77JF.mjs} +1 -1
- package/dist/bin/core-chunks/{pack-integrity-GXN67LJB.mjs → pack-integrity-X277OVRB.mjs} +1 -1
- package/dist/bin/core-chunks/{pack-manager-46SPIPPD.mjs → pack-manager-VN7F6R47.mjs} +1 -1
- package/dist/bin/core-chunks/package-R4FUTGOE.mjs +7 -0
- package/dist/bin/core-chunks/{pi-skill-SDHTUK3V.mjs → pi-skill-IZQEUILZ.mjs} +1 -1
- package/dist/bin/core-chunks/{planning-S3MYVWH6.mjs → planning-NOWLKZDS.mjs} +2 -2
- package/dist/bin/core-chunks/{post-edit-5YSNEMK7.mjs → post-edit-GTBY32JU.mjs} +1 -1
- package/dist/bin/core-chunks/{pre-bash-GLDILCRF.mjs → pre-bash-32ZOGNSP.mjs} +1 -1
- package/dist/bin/core-chunks/{pre-commit-U6HPPNIC.mjs → pre-commit-7TU2A7H4.mjs} +1 -1
- package/dist/bin/core-chunks/{pre-edit-PEYQA6P6.mjs → pre-edit-ASEWA5TS.mjs} +1 -1
- package/dist/bin/core-chunks/{pre-package-76JR5GLO.mjs → pre-package-ZTZACEBB.mjs} +1 -1
- package/dist/bin/core-chunks/{pre-search-5EHNUOP3.mjs → pre-search-MKDRFJSE.mjs} +1 -1
- package/dist/bin/core-chunks/{preferences-BTSYWYUM.mjs → preferences-KO5U2ELK.mjs} +1 -1
- package/dist/bin/core-chunks/{primitives-IXAYLX7U.mjs → primitives-GNUMBYOK.mjs} +1 -1
- package/dist/bin/core-chunks/{prjct-md-SUDFWDCS.mjs → prjct-md-BSFV7OQQ.mjs} +1 -1
- package/dist/bin/core-chunks/{product-KKGJ6MMF.mjs → product-GUHSUNIH.mjs} +1 -1
- package/dist/bin/core-chunks/{project-agent-surfaces-I2CUZUIN.mjs → project-agent-surfaces-BXCJJXB7.mjs} +1 -1
- package/dist/bin/core-chunks/{project-memory-GYLYIJQD.mjs → project-memory-L5MDZYST.mjs} +1 -1
- package/dist/bin/core-chunks/{project-style-evolution-5W25UPPN.mjs → project-style-evolution-HIMSJQQB.mjs} +1 -1
- package/dist/bin/core-chunks/prompt-47YP5JIR.mjs +25 -0
- package/dist/bin/core-chunks/{purge-5EPJV25P.mjs → purge-6SJKHKIY.mjs} +1 -1
- package/dist/bin/core-chunks/{registry-LK6IQ5UX.mjs → registry-YM2EYUXY.mjs} +1 -1
- package/dist/bin/core-chunks/{retention-S22T3SPT.mjs → retention-QSXWKE4H.mjs} +1 -1
- package/dist/bin/core-chunks/{retro-CLKOHAN6.mjs → retro-B2EBN4TA.mjs} +1 -1
- package/dist/bin/core-chunks/{review-risk-LLLBKUXT.mjs → review-risk-LBPY5M3K.mjs} +1 -1
- package/dist/bin/core-chunks/{safe-artifacts-RW5WQUUJ.mjs → safe-artifacts-PE2TMEZQ.mjs} +1 -1
- package/dist/bin/core-chunks/{sdd-HE7O6N5S.mjs → sdd-3WNZJ6FU.mjs} +1 -1
- package/dist/bin/core-chunks/{seed-JX7W53E5.mjs → seed-MMDJE2UO.mjs} +2 -2
- package/dist/bin/core-chunks/{self-heal-DFUEKNF3.mjs → self-heal-R5FBXEVQ.mjs} +1 -1
- package/dist/bin/core-chunks/{session-continuity-BFSW4OL6.mjs → session-continuity-OQDB5UYI.mjs} +1 -1
- package/dist/bin/core-chunks/{session-start-HVYUKJL2.mjs → session-start-FM6UL7MT.mjs} +1 -1
- package/dist/bin/core-chunks/{setup-GHS24ER5.mjs → setup-BL36ZWPW.mjs} +2 -2
- package/dist/bin/core-chunks/{setup-J4JFYT63.mjs → setup-V75BWRHU.mjs} +2 -2
- package/dist/bin/core-chunks/{shipping-I4D4AVTE.mjs → shipping-NZVM57JJ.mjs} +4 -4
- package/dist/bin/core-chunks/{signals-digest-V44KYN6Z.mjs → signals-digest-P5BG6MZF.mjs} +1 -1
- package/dist/bin/core-chunks/{skill-adherence-MHY4BZL4.mjs → skill-adherence-JE3N3Y67.mjs} +1 -1
- package/dist/bin/core-chunks/{spec-2XXPLHUZ.mjs → spec-VC3VTUI3.mjs} +3 -3
- package/dist/bin/core-chunks/{spec-context-inference-THFMXC7S.mjs → spec-context-inference-KOINWBC7.mjs} +1 -1
- package/dist/bin/core-chunks/{spec-service-I23KJKKP.mjs → spec-service-UZ53XL6X.mjs} +1 -1
- package/dist/bin/core-chunks/{spec-task-breakdown-HTG6ME6G.mjs → spec-task-breakdown-3Y7YXCIQ.mjs} +1 -1
- package/dist/bin/core-chunks/{stop-2H57XCGZ.mjs → stop-6SH36ULT.mjs} +3 -3
- package/dist/bin/core-chunks/{subagent-start-5LPASXOS.mjs → subagent-start-TVGBV2V2.mjs} +1 -1
- package/dist/bin/core-chunks/{subagent-stop-ANLSG3KN.mjs → subagent-stop-APWY6KMX.mjs} +1 -1
- package/dist/bin/core-chunks/{surface-attribution-WL7S53XX.mjs → surface-attribution-CQVM2SWY.mjs} +1 -1
- package/dist/bin/core-chunks/{task-service-FK7FC3PE.mjs → task-service-KFYL5NT4.mjs} +1 -1
- package/dist/bin/core-chunks/{tdd-NQDHU62B.mjs → tdd-P2PP4RR4.mjs} +1 -1
- package/dist/bin/core-chunks/{team-XZ4Q6UBV.mjs → team-WKAAOEFE.mjs} +1 -1
- package/dist/bin/core-chunks/{template-loader-33OVJ4G5.mjs → template-loader-H4FE37HV.mjs} +1 -1
- package/dist/bin/core-chunks/{uninstall-6NFON7FO.mjs → uninstall-W6EAUS7N.mjs} +1 -1
- package/dist/bin/core-chunks/{update-4IE6SA6M.mjs → update-PSHEJJI5.mjs} +2 -2
- package/dist/bin/core-chunks/{update-checker-FK7MWNWN.mjs → update-checker-LZCUPWQB.mjs} +1 -1
- package/dist/bin/core-chunks/{version-252QLBN2.mjs → version-B5DBRVGQ.mjs} +1 -1
- package/dist/bin/core-chunks/{watch-service-7ZERG7RC.mjs → watch-service-7V3O52TW.mjs} +1 -1
- package/dist/bin/core-chunks/weak-frontier-demo-ZCDTMYRO.mjs +7 -0
- package/dist/bin/core-chunks/{weak-model-mode-DH66XMD2.mjs → weak-model-mode-LOAPFJPQ.mjs} +1 -1
- package/dist/bin/core-chunks/{work-graph-JGJWE3AV.mjs → work-graph-ZNV7S6EU.mjs} +1 -1
- package/dist/bin/core-chunks/{work-scope-3LXOEIUX.mjs → work-scope-XXPUH6TU.mjs} +1 -1
- package/dist/bin/core-chunks/{workflow-FGJVLRQ3.mjs → workflow-XM77QYRF.mjs} +2 -2
- package/dist/bin/core-chunks/{workflows-reference-UWKRZ6BJ.mjs → workflows-reference-T7RH7IGJ.mjs} +1 -1
- package/dist/bin/core-chunks/{world-model-impact-RH5WH2B3.mjs → world-model-impact-FAGGNUGN.mjs} +1 -1
- package/dist/bin/hook-chunks/{agent-switch-7GOGG4KG.mjs → agent-switch-TAJWH2ZD.mjs} +1 -1
- package/dist/bin/hook-chunks/{analysis-UI2JRLJO.mjs → analysis-34WDLUXK.mjs} +2 -2
- package/dist/bin/hook-chunks/{auto-flush-JKIXTI2I.mjs → auto-flush-7TIEBPPQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{capture-gate-DIPHPNIC.mjs → capture-gate-JFVGG7RB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-XXVHUYL7.mjs → chunk-22CBVTZ3.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZH2MF7H7.mjs → chunk-3JOZN7YJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-Y7RDBMNC.mjs → chunk-4X3KUIXK.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-6RS7PNAN.mjs → chunk-5ALQBNIZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-IL36ER4U.mjs → chunk-5VPZI2ZF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-FBEDUKMG.mjs → chunk-6EHYPQ5U.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-7H5UVM6X.mjs +9 -0
- package/dist/bin/hook-chunks/{chunk-IDPBMN3Q.mjs → chunk-A3R47SP6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-UI25YRTY.mjs → chunk-CGAKJDKT.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-6LU777GI.mjs → chunk-CJY4Y5SO.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-WIA6ORIY.mjs → chunk-FSFURDAE.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-6WDRJ7J7.mjs → chunk-FTBBQHI4.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-25OGCQTR.mjs → chunk-G4VJKPG7.mjs} +3 -3
- package/dist/bin/hook-chunks/{chunk-PFORBQBF.mjs → chunk-GAJOSSB4.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-KOLXYWOA.mjs → chunk-H3GIYI4Q.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-B7MHIUFA.mjs → chunk-HRU2KNEB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-JF6DFOQK.mjs → chunk-LCGWETJ6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PQJ64L6U.mjs → chunk-MG2DNP4Z.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-NGB6JNSB.mjs +18 -0
- package/dist/bin/hook-chunks/{chunk-AEDB75AK.mjs → chunk-OALZUWC6.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-IFIENAZU.mjs → chunk-PZMBZ6GE.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-F3PNT2DQ.mjs → chunk-QIB6Y6AH.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-ZXON2U5F.mjs → chunk-QMNZPNVY.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-B2ZA5ZAO.mjs → chunk-R4YDE3GU.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-UBWUQ64A.mjs → chunk-RFKRKUHB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NMB6YSAH.mjs → chunk-RGOTJCZU.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ANSRNEEI.mjs → chunk-T2KVL6PZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-HNZ24HIK.mjs → chunk-T7DRHVK3.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-IHEOOJJT.mjs → chunk-TWFLW6OJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ONGVBXBD.mjs → chunk-UJIOGFNP.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NSTXHVTH.mjs → chunk-UK24P7PV.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-63P5VOR6.mjs → chunk-ULNGKZB6.mjs} +4 -4
- package/dist/bin/hook-chunks/{chunk-UMJ5D5I6.mjs → chunk-UWHVPO6X.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-A6LRNS6R.mjs → chunk-XC2BSGWF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-7PA4KPSR.mjs → chunk-ZPAY2NSF.mjs} +2 -2
- package/dist/bin/hook-chunks/{codex-skill-UZZCACMB.mjs → codex-skill-BFRU5FTP.mjs} +1 -1
- package/dist/bin/hook-chunks/{command-installer-FJ73C2ZW.mjs → command-installer-3XOZGKOQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{config-manager-XDKOTIJM.mjs → config-manager-UPB7NEXF.mjs} +1 -1
- package/dist/bin/hook-chunks/{context7-service-NH4BMGSJ.mjs → context7-service-7VFXEQVN.mjs} +1 -1
- package/dist/bin/hook-chunks/{cwd-changed-STP3LH6Y.mjs → cwd-changed-USNJYUH7.mjs} +1 -1
- package/dist/bin/hook-chunks/{distill-63BHUJAC.mjs → distill-47YVL7IH.mjs} +1 -1
- package/dist/bin/hook-chunks/{enriched-recall-6F6LBYAB.mjs → enriched-recall-CVYI52NO.mjs} +1 -1
- package/dist/bin/hook-chunks/{format-VJ2YQ4XQ.mjs → format-DPIN45EG.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-receipt-LSJCAYBT.mjs → judgment-receipt-G2DKQR7U.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-cue-DEO2AZW4.mjs → land-cue-3JD2TXFP.mjs} +1 -1
- package/dist/bin/hook-chunks/{land-synthesis-GTMFIGDM.mjs → land-synthesis-5C4KGCTB.mjs} +1 -1
- package/dist/bin/hook-chunks/{legacy-crew-sweep-QPKU7ITU.mjs → legacy-crew-sweep-XQNXNZES.mjs} +2 -2
- package/dist/bin/hook-chunks/{memory-index-KCMXQGKX.mjs → memory-index-LL6SQJ2N.mjs} +1 -1
- package/dist/bin/hook-chunks/{notification-DX6ZHOUC.mjs → notification-ACQBRJG3.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-integrity-UMLIB5RQ.mjs → pack-integrity-DCXVRRJZ.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-manager-YXRK2TJ4.mjs → pack-manager-KYWKNYUY.mjs} +1 -1
- package/dist/bin/hook-chunks/{planning-JR7O5MYW.mjs → planning-KOU3XKWS.mjs} +2 -2
- package/dist/bin/hook-chunks/{post-edit-IPTVSRVG.mjs → post-edit-CK2MYQEN.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-bash-5WWTH36N.mjs → pre-bash-W5A5CTR3.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-commit-KZ5TNTPW.mjs → pre-commit-5Q24RM4S.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-edit-XHPYBXRU.mjs → pre-edit-YIJ4BCYL.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-package-U3HDW3SX.mjs → pre-package-O4RMVA4T.mjs} +1 -1
- package/dist/bin/hook-chunks/{pre-search-R5CRK66E.mjs → pre-search-WYOWC3D6.mjs} +1 -1
- package/dist/bin/hook-chunks/{prjct-md-IBQTJBK7.mjs → prjct-md-2UVHFYTJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-agent-surfaces-TPZO73ZV.mjs → project-agent-surfaces-BKFYUMRV.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-memory-YQLZX5RG.mjs → project-memory-OC5GTJPY.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-style-evolution-NOFCIIZZ.mjs → project-style-evolution-2IFJCACQ.mjs} +1 -1
- package/dist/bin/hook-chunks/prompt-JIWMP563.mjs +26 -0
- package/dist/bin/hook-chunks/{purge-5W3K2MZL.mjs → purge-FQK3Z4QS.mjs} +1 -1
- package/dist/bin/hook-chunks/{retention-GWJ4AX7I.mjs → retention-2FETBJFG.mjs} +1 -1
- package/dist/bin/hook-chunks/{sdd-GWBRD4KI.mjs → sdd-V43TSJ2P.mjs} +1 -1
- package/dist/bin/hook-chunks/{session-continuity-VH645RGR.mjs → session-continuity-RO2ACICF.mjs} +1 -1
- package/dist/bin/hook-chunks/{session-start-4TYTI27B.mjs → session-start-FKKFMKQ5.mjs} +1 -1
- package/dist/bin/hook-chunks/{setup-VF4UHUBX.mjs → setup-YV2DKG5L.mjs} +2 -2
- package/dist/bin/hook-chunks/{shipping-2ULWBGRX.mjs → shipping-SCNFEXBY.mjs} +4 -4
- package/dist/bin/hook-chunks/{spec-context-inference-HVENYOIO.mjs → spec-context-inference-BD3ANTXA.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-service-4XGQQPGP.mjs → spec-service-OWYOAGXS.mjs} +2 -2
- package/dist/bin/hook-chunks/{spec-task-breakdown-JXF556UH.mjs → spec-task-breakdown-HOTLUFDM.mjs} +1 -1
- package/dist/bin/hook-chunks/{stop-NJDYIIXR.mjs → stop-MIXT7WXA.mjs} +3 -3
- package/dist/bin/hook-chunks/{subagent-start-2YMGD4SY.mjs → subagent-start-NO3TN65K.mjs} +1 -1
- package/dist/bin/hook-chunks/{subagent-stop-4TZJ2NSJ.mjs → subagent-stop-CKWIXX7W.mjs} +1 -1
- package/dist/bin/hook-chunks/{surface-attribution-UNK4J5W2.mjs → surface-attribution-BYESPLXM.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-service-SPUES5DO.mjs → task-service-5ONSBKKP.mjs} +1 -1
- package/dist/bin/hook-chunks/{tdd-MYF7I5FS.mjs → tdd-SESB4IG3.mjs} +1 -1
- package/dist/bin/hook-chunks/{template-loader-4SYVR2UB.mjs → template-loader-KO67FVHO.mjs} +1 -1
- package/dist/bin/hook-chunks/{weak-model-mode-TYJJT6JJ.mjs → weak-model-mode-HPXBKXJT.mjs} +1 -1
- package/dist/bin/hook-chunks/{work-scope-A6XPENFE.mjs → work-scope-RNPGACPA.mjs} +1 -1
- package/dist/bin/prjct-core.mjs +3 -3
- package/dist/bin/prjct-hooks.mjs +1 -1
- package/dist/daemon/entry.mjs +591 -583
- package/dist/mcp/server.mjs +318 -312
- package/package.json +2 -1
- package/dist/bin/core-chunks/chunk-GDLAQV3Q.mjs +0 -14
- package/dist/bin/core-chunks/chunk-R7LLMJDP.mjs +0 -7
- package/dist/bin/core-chunks/chunk-UT425KVX.mjs +0 -10
- package/dist/bin/core-chunks/chunk-VILH3VYH.mjs +0 -103
- package/dist/bin/core-chunks/chunk-Y5SEUYET.mjs +0 -7
- package/dist/bin/core-chunks/doctor-heal-ZUZ2RHGY.mjs +0 -7
- package/dist/bin/core-chunks/package-DCGCOAGQ.mjs +0 -7
- package/dist/bin/core-chunks/prompt-SW5XDRMX.mjs +0 -23
- package/dist/bin/core-chunks/weak-frontier-demo-5C4FR3OA.mjs +0 -7
- package/dist/bin/hook-chunks/chunk-IWUF2LGO.mjs +0 -18
- package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +0 -9
- package/dist/bin/hook-chunks/prompt-DJWONMTZ.mjs +0 -24
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c,d,e}from"./chunk-
|
|
7
|
+
import{a,b,c,d,e}from"./chunk-L3DJN3XD.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-6KNMT46X.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as buildDistillContent,d as distillAndDiscardAllAutoSources,c as distillAndDiscardAutoSource,e as eliminateSoftDeletedNoValue,a as hardDeleteEntries};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
3
|
+
import { dirname as __pathDirname } from 'path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a,b}from"./chunk-FOUBHU4X.mjs";import"./chunk-YOWW4LHK.mjs";import"./chunk-5OWPZWEU.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-JGGQSMZC.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-O5VCBMEK.mjs";import"./chunk-DZDEBDAB.mjs";import"./chunk-LFOQ7FCR.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as applyDoctorHeal,a as planDoctorHeal};
|
|
@@ -4,5 +4,5 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{b as j}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as n}from"./chunk-ID2C2S33.mjs";import{b as C}from"./chunk-
|
|
7
|
+
import{b as j}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as n}from"./chunk-ID2C2S33.mjs";import{b as C}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{c as k}from"./chunk-DTMZBK4E.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import{d as v}from"./chunk-2FRLIQKX.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{F as w,G as P}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as g,g as R}from"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import{l as f,p as y}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as d}from"./chunk-3TRXQAU4.mjs";import{execFileSync as m}from"node:child_process";import x from"node:path";import u from"chalk";P();y();R();var h=class{static{d(this,"DoctorService")}projectPath="";projectId=null;globalPath="";async check(t=process.cwd()){this.projectPath=t,this.projectId=await C.getProjectId(t),this.projectId&&(this.globalPath=w.getGlobalProjectPath(this.projectId));let e=await this.checkTools(),s=await this.checkProject(),r=this.generateRecommendations(e,s),a=[...e,...s].some(i=>i.status==="error"&&!i.optional),c=[...e,...s].some(i=>i.status==="warn"||i.status==="error"&&i.optional);return{success:!a,tools:e,project:s,recommendations:r,hasErrors:a,hasWarnings:c}}async run(t=process.cwd()){let e=await this.check(t);return this.printHeader(),this.printSection("System Tools",e.tools),this.printSection("Project Status",e.project),e.recommendations.length>0&&this.printRecommendations(e.recommendations),this.printSummary(e),n.info("Heal dead hooks / multi-runtime gaps: prjct doctor --fix"),e.hasErrors?1:0}async heal(t=process.cwd()){this.printHeader(),n.info("Doctor heal \u2014 repairing harness wire\u2026");try{let{applyDoctorHeal:e}=await import("./doctor-heal-XFSVPSEY.mjs"),s=await e(t);if(n.done(s.line),s.applied.length&&n.info(`applied: ${s.applied.join(", ")}`),s.skipped.length&&n.info(`skipped: ${s.skipped.join(", ")}`),s.errors.length)for(let a of s.errors)n.fail(a);let r=await this.check(t);return this.printSection("System Tools",r.tools),this.printSection("Project Status",r.project),this.printSummary(r),s.errors.length>0||r.hasErrors?1:0}catch(e){return n.fail(`heal failed: ${e.message}`),1}}async checkTools(){let t=[];return t.push(this.checkCommand("git",["git","--version"],/git version ([\d.]+)/,!1)),t.push(this.checkCommand("node",["node","--version"],/v([\d.]+)/,!1)),t.push(this.checkCommand("bun",["bun","--version"],/([\d.]+)/,!0)),t.push(this.checkCommand("gh",["gh","--version"],/gh version ([\d.]+)/,!0,"needed for PR commands")),t.push(this.checkCommand("claude",["claude","--version"],/claude ([\d.]+)/,!0,"Anthropic Claude Code CLI")),t.push(this.checkCommand("gemini",["gemini","--version"],/gemini ([\d.]+)/,!0,"Google Gemini CLI")),t.push(this.checkCommand("codex",["codex","--version"],/([\d.]+)/,!0,"OpenAI Codex CLI")),t.push(await this.checkParallelInstalls()),t}async checkParallelInstalls(){try{let{planCleanup:t}=await import("./cleanup-installs-LD43GI4K.mjs"),e=t();if(e.removable.length===0)return{name:"prjct installs",status:"ok",message:e.winner?`single winner: ${e.winner}`:"one install (or PATH winner unresolved)",optional:!0};let s=e.removable.map(r=>`${r.pm}@${r.version}`).join(", ");return{name:"prjct installs",status:"warn",message:`${e.removable.length} parallel install(s) shadow winner ${e.winner??"?"}: ${s} \u2014 run \`prjct update\` to consolidate (or uninstall non-winners)`,optional:!0}}catch{return{name:"prjct installs",status:"ok",message:"could not scan (skipped)",optional:!0}}}checkCommand(t,e,s,r,a){try{let[c,...i]=e,l=m(c,i,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).match(s),o=l?l[1]:"unknown";return{name:t,status:"ok",version:o,optional:r}}catch{return{name:t,status:"error",message:a?`not found (${a})`:"not found",optional:r}}}async checkProject(){let t=[];return t.push(await this.checkPrjctConfig()),t.push(await this.checkGitRepo()),t.push(await this.checkStateFile()),t.push(await this.checkContext7()),t.push(await this.checkCodexPRouter()),t.push(await this.checkClaudeHooks()),t}async checkClaudeHooks(){try{let t=await import("./settings-installer-4XHM3HAZ.mjs"),{installed:e,expected:s}=await t.status();return e===s?{name:"claude hooks",status:"ok",message:`${e}/${s} installed`}:{name:"claude hooks",status:"warn",message:`${e}/${s} installed - run "prjct doctor --fix" to repair`}}catch{return{name:"claude hooks",status:"warn",message:"could not read ~/.claude/settings.json"}}}async checkPrjctConfig(){let t=x.join(this.projectPath,".prjct","prjct.config.json");return await f(t)?{name:"prjct config",status:"ok",message:"initialized"}:{name:"prjct config",status:"error",message:'not initialized - run "prjct init"'}}async checkGitRepo(){try{m("git",["rev-parse","--git-dir"],{cwd:this.projectPath,stdio:["pipe","pipe","pipe"]});let t=m("git",["status","--porcelain"],{cwd:this.projectPath,encoding:"utf-8",stdio:["pipe","pipe","pipe"]});if(t.trim().length>0){let s=t.trim().split(`
|
|
8
8
|
`).filter(Boolean);return{name:"git repo",status:"ok",message:`${s.length} uncommitted change${s.length>1?"s":""}`}}return{name:"git repo",status:"ok",message:"clean"}}catch{return{name:"git repo",status:"warn",message:"not a git repository"}}}async checkStateFile(){if(!this.globalPath||!this.projectId)return{name:"task state",status:"warn",message:"project not initialized"};try{let t=await j.read(this.projectId);return t.currentTask?{name:"task state",status:"ok",message:`active: ${t.currentTask.description?.slice(0,30)}...`}:{name:"task state",status:"ok",message:"no active task"}}catch{return{name:"task state",status:"ok",message:"no state data (normal for new projects)",optional:!0}}}async checkContext7(){try{let t=await k.verify();return t.installed?t.verified?{name:"context7 mcp",status:"ok",message:"ready"}:{name:"context7 mcp",status:"error",message:t.message||"configured but verification failed"}:{name:"context7 mcp",status:"error",message:'not configured - run "prjct start"'}}catch(t){return{name:"context7 mcp",status:"error",message:`check failed: ${t instanceof Error?t.message:"unknown error"}`}}}async checkCodexPRouter(){try{let t=await v({autoRepair:!0});return t.installed?t.verified?{name:"codex p-router",status:"ok",message:`ready (${t.templateSource||"local-dev"})`}:{name:"codex p-router",status:"error",message:t.message||"router verification failed"}:{name:"codex p-router",status:"ok",message:"codex not detected (check skipped)",optional:!0}}catch(t){return{name:"codex p-router",status:"error",message:`check failed: ${t instanceof Error?t.message:"unknown error"}`}}}generateRecommendations(t,e){let s=[];t.find(o=>o.name==="gh"&&o.status==="error")&&s.push("Install GitHub CLI (gh) for PR commands: https://cli.github.com");let a=e.find(o=>o.name==="CLAUDE.md");a?.status==="warn"&&a.message?.includes("stale")&&s.push('Run "prjct sync" to update context');let c=e.find(o=>o.name==="prjct config");c?.status==="error"&&s.push('Run "prjct init" to initialize this project'),e.find(o=>o.name==="CLAUDE.md"&&o.status==="error")&&!c?.status?.includes("error")&&s.push('Run "prjct sync" to generate context files');let p=e.find(o=>o.name==="context7 mcp");p&&p.status!=="ok"&&s.push('Run "prjct start" to install/repair Context7 MCP');let l=e.find(o=>o.name==="codex p-router");return l&&l.status==="error"&&s.push('Run "prjct start" or "prjct setup" to repair Codex p. router'),s}printHeader(){n.section(`prjct doctor v${g}`)}printSection(t,e){n.section(t);let s=e.map(r=>{let a=this.getStatusIcon(r.status,r.optional),c=r.name.padEnd(14),i=r.version||r.message||"",p=r.optional&&r.status==="error"?u.dim(" (optional)"):"";return`${a} ${c} ${u.dim(i)}${p}`});for(let r of s)console.log(` ${r}`)}printRecommendations(t){n.section("Recommendations"),n.list(t,{bullet:u.yellow("\u2022")})}printSummary(t){console.log(""),console.log(u.dim("\u2500".repeat(40))),t.hasErrors?n.fail("Some required checks failed"):t.hasWarnings?n.warn("All required checks passed (some warnings)"):n.done("All checks passed"),console.log("")}getStatusIcon(t,e){switch(t){case"ok":return u.green("\u2713");case"warn":return u.yellow("\u26A0");case"error":return e?u.dim("\u25CB"):u.red("\u2717")}}},z=new h;export{h as DoctorService,z as doctorService};
|
package/dist/bin/core-chunks/{dynasty-outcomes-H2O546OL.mjs → dynasty-outcomes-KDWIEA4Y.mjs}
RENAMED
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as p}from"./chunk-2TJRTFIS.mjs";import{i as u}from"./chunk-
|
|
7
|
+
import{a as p}from"./chunk-2TJRTFIS.mjs";import{i as u}from"./chunk-SUXIKMTS.mjs";import"./chunk-L5LFLI4R.mjs";import{g as d}from"./chunk-CA2VFWFP.mjs";import"./chunk-5YLI5V3Q.mjs";import{i as l}from"./chunk-6KNMT46X.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{f as a,i as m}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";m();m();function y(t){let o=Date.now()-6048e5,e=u(t,o),n=d(t,"warn",o),s=d(t,"deny",o),i=(()=>{try{return a.get(t,`SELECT COUNT(*) AS c FROM memory_entries
|
|
8
8
|
WHERE deleted_at IS NULL
|
|
9
9
|
AND created_at >= ?
|
|
10
10
|
AND type IN ('gotcha', 'anti-pattern', 'decision')`,o)?.c??0}catch{return 0}})(),c=`Closed-loop judgment (7d): receipts=${e} \xB7 conflict warn/deny=${n}/${s} \xB7 preventive memories=${i}`;return{receipts7d:e,conflictWarns7d:n,conflictDenies7d:s,preventiveSurfaces7d:i,line:c}}r(y,"buildClosedLoopHealth");function h(t){try{return a.get(t,"SELECT COALESCE(SUM(tokens_saved), 0) AS tokens FROM metrics_daily")?.tokens??0}catch{return 0}}r(h,"sumTokensSaved");function E(t){let o=y(t),e=l(t),n=p(t),s=h(t),i=e.live+e.softDeleted+e.archives,c=i>0?Math.round((e.softDeleted+e.archives)/i*1e3)/10:0,f=[{name:"Judgment receipts (7d)",measured:String(o.receipts7d),note:"land/Stop closed-loop stamps"},{name:"Conflict warn/deny (7d)",measured:`${o.conflictWarns7d}/${o.conflictDenies7d}`,note:"decision-conflict gate activity"},{name:"Preventive memories (7d)",measured:String(o.preventiveSurfaces7d),note:"gotcha \xB7 anti-pattern \xB7 decision"},{name:"Vault live / soft / archive",measured:`${e.live} / ${e.softDeleted} / ${e.archives}`,note:`hygiene mass ${c}% (Rho not grow-forever)`},{name:"Auto-source live",measured:String(e.autoSourceLive),note:"session noise capped by retention"},{name:"Tokens saved (lifetime sync)",measured:String(s),note:"metrics_daily compression"},{name:"Token economics (24h)",measured:`\u2248${n.tokens24h} \xB7 score ${n.score}/100`,note:"compound judgment > fresh-window thrash"}],v=`Dynasty outcomes: receipts7d=${o.receipts7d} \xB7 vault live=${e.live} soft=${e.softDeleted} \xB7 tokensSaved=${s} \xB7 tok24h\u2248${n.tokens24h}`;return{closedLoop:o,vault:e,tokens:n,tokensSavedTotal:s,hygieneRatio:c,line:v,rows:f}}r(E,"buildDynastyOutcomes");function T(t){return["## Dynasty outcomes (project)","","Compounding proof \u2014 not structural grade. Needs a live project DB.","","| Signal | Measured | Note |","|---|---|---|",...t.rows.map(e=>`| ${e.name} | ${e.measured} | ${e.note} |`),"",`**${t.line}**`,""].join(`
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a}from"./chunk-YZEO5DZA.mjs";import{a as u,d as o,h as m}from"./chunk-
|
|
7
|
+
import{a}from"./chunk-YZEO5DZA.mjs";import{a as u,d as o,h as m}from"./chunk-6POAOY5C.mjs";import{a as I}from"./chunk-5DZ2LTII.mjs";import{a as v,b as R,e as l}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import{a as $,b as H,c as q,d as x,e as L,f as C,g as G,h as N,j as P}from"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as r}from"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as k,g as K}from"./chunk-225DWS4D.mjs";import{a as f}from"./chunk-3TRXQAU4.mjs";K();function T(c){if(/\b401\b|invalid_api_key|incorrect api key|unauthor/i.test(c))return"The endpoint rejected the key (401). The base URL must match the key's provider \u2014 e.g. an OpenRouter key (sk-or-\u2026) needs `--base-url https://openrouter.ai/api/v1`, not OpenAI's. Re-set with: prjct embeddings set --key <api-key> --base-url <url>";if(/\b404\b|not found/i.test(c))return"No /embeddings route at that base URL (404). Check the base URL is the provider's OpenAI-compatible root (e.g. https://openrouter.ai/api/v1, https://api.openai.com/v1).";if(/ENOTFOUND|ECONNREFUSED|fetch failed|getaddrinfo|ETIMEDOUT/i.test(c))return"Could not reach the endpoint. Check the base URL and your network: prjct embeddings status"}f(T,"embeddingsFailureHint");function M(c){if(!c?.trim())return;let n={};for(let e of c.split(",")){let t=e.indexOf("=");if(t<=0)continue;let d=e.slice(0,t).trim(),i=e.slice(t+1).trim();d&&(n[d]=i)}return Object.keys(n).length?n:void 0}f(M,"parseHeaderPairs");var D=class extends I{static{f(this,"EmbeddingsCommands")}async embeddings(n=null,e=process.cwd(),t={}){let d=(n??"").trim().split(/\s+/).filter(Boolean),i=d[0]??"status";switch(i){case"set":return this.set(d.slice(1),t);case"status":return this.status(t);case"test":return this.test(t);case"clear":return this.clear(t);default:return l(`Unknown subcommand '${i}'. Use: set --key <K> [--model <M>] [--base-url <U>] | status | test | clear`,t)}}async set(n,e){let t=e.key??a(n,"key"),d=e.model??a(n,"model"),i=e.baseUrl??a(n,"base-url")??a(n,"baseUrl"),S=!i&&t?H(t):null,j=i??S?.baseUrl,b=S?.provider,E=e.authHeader??a(n,"auth-header"),g=e.authScheme??a(n,"auth-scheme"),U=g===void 0?void 0:/^none$/i.test(g)?"":g,w=M(e.headers??a(n,"headers")),O=e.query??a(n,"query");if(!t&&!d&&!j&&E===void 0&&U===void 0&&!w&&O===void 0)return l('Nothing to set. Usage: prjct embeddings set --key <api-key> [--model <id>] [--base-url <url>] [--auth-header <h>] [--auth-scheme <s|none>] [--headers "k=v,..."] [--query <qs>]');let y=t?await G(t).then(p=>({location:p})).catch(p=>({error:k(p)})):{};if(y.error)return l(`Could not store the key securely: ${y.error}`);let h=y.location,s=x({model:d,baseUrl:j,authHeader:E,authScheme:U,extraHeaders:w,query:O});return e.md?(console.log(u(o("Embeddings configured","Global embeddings now apply to all projects."),m({provider:s.provider,model:s.model,"base URL":s.baseUrl,detected:b,"auth header":s.authHeader,auth:s.authScheme===void 0?void 0:s.authScheme||"(raw key, no scheme)",query:s.query,headers:s.extraHeaders?Object.keys(s.extraHeaders).join(", "):void 0,"api key":h?`stored in ${h==="keychain"?"macOS Keychain":"~/.prjct-cli/config/embeddings.key (0600)"}`:void 0}),o("Next","Run `prjct embeddings test --md` to validate now."))),{success:!0}):(r.done("Global embeddings configured (applies to all projects)"),b&&r.info(`detected: ${b} (from key prefix)`),r.info(`provider: ${s.provider}`),r.info(`model: ${s.model}`),r.info(`base URL: ${s.baseUrl}`),s.authHeader&&r.info(`auth hdr: ${s.authHeader}`),s.authScheme!==void 0&&r.info(`auth: ${s.authScheme?s.authScheme:"(raw key, no scheme)"}`),s.query&&r.info(`query: ${s.query}`),s.extraHeaders&&r.info(`headers: ${Object.keys(s.extraHeaders).join(", ")}`),h&&r.info(`api key: stored in ${h==="keychain"?"macOS Keychain":"~/.prjct-cli/config/embeddings.key (0600)"}`),r.info("Each project re-vectorizes on its next session (Stop hook). Run `prjct embeddings test` to validate now."),{success:!0})}async status(n){let e=q(),t=await C();return e?n.md?(console.log(u(o("Embeddings","Global embeddings are configured."),m({provider:e.provider,model:e.model,"base URL":e.baseUrl,"auth header":e.authHeader,auth:e.authScheme===void 0?void 0:e.authScheme||"(raw key, no scheme)",query:e.query,headers:e.extraHeaders?Object.keys(e.extraHeaders).join(", "):void 0,"api key":t==="none"?"MISSING - set with `prjct embeddings set --key <api-key>`":`present (${t})`}))),{success:!0,configured:!0}):(r.done("Global embeddings: configured"),r.info(`provider: ${e.provider}`),r.info(`model: ${e.model}`),r.info(`base URL: ${e.baseUrl}`),e.authHeader&&r.info(`auth hdr: ${e.authHeader}`),e.authScheme!==void 0&&r.info(`auth: ${e.authScheme?e.authScheme:"(raw key, no scheme)"}`),e.query&&r.info(`query: ${e.query}`),e.extraHeaders&&r.info(`headers: ${Object.keys(e.extraHeaders).join(", ")}`),r.info(`api key: ${t==="none"?"MISSING \u2014 set with `prjct embeddings set --key <api-key>`":`present (${t})`}`),{success:!0,configured:!0}):n.md?(console.log(u(o("Embeddings","Global embeddings are not configured. Recall uses the built-in local subword embedder."),m({"api key":t==="none"?"none":`present (${t})`}),o("Next","Set one with `prjct embeddings set --key <api-key> --md`."))),{success:!0,configured:!1}):(r.info("Global embeddings: not configured \u2014 using the built-in local subword embedder."),r.info(`api key: ${t==="none"?"none":`present (${t})`}`),r.info("Set one with: prjct embeddings set --key <api-key>"),{success:!0,configured:!1})}async test(n){let e=P(null);try{let[t]=await e.embed(["prjct embeddings connectivity probe"]);return!t||t.length===0?l(`Provider '${e.model}' returned an empty vector.`,n):n.md?(console.log(u(o("Embeddings test",`Provider '${e.model}' returned a ${t.length}-dim vector.`),e.isLocal?o("Next","This is the local embedder. Set a key to upgrade: `prjct embeddings set --key <api-key> --md`."):null)),{success:!0,model:e.model,dims:t.length}):(r.done(`OK \u2014 '${e.model}' returned a ${t.length}-dim vector.`),e.isLocal&&r.info("This is the local embedder. Set a key to upgrade: prjct embeddings set --key <api-key>"),{success:!0,model:e.model,dims:t.length})}catch(t){let d=k(t);R(`Embedding test failed for '${e.model}'.`,n),v(d,n);let i=T(d);return i&&v(i,n),{success:!1,error:d}}}async clear(n){return await N(),L(),n.md?(console.log(u(o("Embeddings cleared","Semantic recall now falls back to the local embedder."),m({"default model":$}))),{success:!0}):(r.done("Cleared global embeddings \u2014 semantic recall falls back to the local embedder."),r.info(`(Default model when you reconfigure: ${$}.)`),{success:!0})}};export{D as EmbeddingsCommands};
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a}from"./chunk-
|
|
7
|
+
import{a}from"./chunk-YPLFWN62.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as enrichedRecall};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as g,d as y}from"./chunk-
|
|
7
|
+
import{a as g,d as y}from"./chunk-6POAOY5C.mjs";import{a as L}from"./chunk-5DZ2LTII.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as p}from"./chunk-ID2C2S33.mjs";import{b as N}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import{e as J}from"./chunk-7QTE6X4J.mjs";import{c as C}from"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import{a as V,b as ce}from"./chunk-U24YKPYX.mjs";import{b as M,p as le}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import{b as _,g as me}from"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as U,g as ue}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";ce();import W from"node:crypto";import m from"node:fs/promises";import l from"node:path";import{z as s}from"zod";var z=s.object({severity:s.enum(["info","warning","blocking"]),title:s.string(),recommendation:s.string(),files:s.array(s.string()).optional(),command:s.string().optional()}),de=s.object({id:s.string(),name:s.string(),status:s.enum(["pass","warn","fail"]),score:s.number().min(0).max(100),durationMs:s.number().nonnegative(),metrics:s.record(s.string(),s.union([s.string(),s.number(),s.boolean()])),actionables:s.array(z)}),H=s.object({jsonPath:s.string().optional(),reportPath:s.string().optional()}).optional(),B=s.object({schemaVersion:s.literal(1),runId:s.string(),createdAt:s.string(),runner:s.object({source:s.enum(["local","ci","agent"]),user:s.string().optional(),platform:s.string(),node:s.string(),bun:s.string().optional()}),project:s.object({repo:s.string(),branch:s.string().optional(),commit:s.string().optional(),dirty:s.boolean()}),versions:s.object({current:s.string(),baseline:s.string().optional(),candidate:s.string().optional()}),scenarios:s.array(de),summary:s.object({score:s.number().min(0).max(100),pass:s.number().nonnegative(),warn:s.number().nonnegative(),fail:s.number().nonnegative(),improvements:s.number().nonnegative(),regressions:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H}),G=s.object({schemaVersion:s.literal(1),comparisonId:s.string(),createdAt:s.string(),baselineRunId:s.string().optional(),candidateRunId:s.string().optional(),baselineVersion:s.string().optional(),candidateVersion:s.string().optional(),summary:s.object({baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),regressions:s.number().nonnegative(),improvements:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H,scenarios:s.array(s.object({id:s.string(),baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),status:s.enum(["improved","regressed","unchanged","missing-baseline","missing-candidate"]),actionables:s.array(z)}))});le();me();var O=1,q=-5,K=5;async function X(n,r={}){let t=new Date().toISOString(),e=await I(n),i=await ge({projectPath:n,git:e}),c=pe(i),d={schemaVersion:O,runId:Ie(t),createdAt:t,runner:{source:r.source??ke(),user:await Oe(n),platform:`${process.platform}-${process.arch}`,node:process.version,bun:await xe()},project:{repo:e.repo,branch:e.branch,commit:e.commit,dirty:e.dirty},versions:{current:_(),baseline:r.baseline,candidate:r.candidate??_()},scenarios:i,summary:c};return je(d)}o(X,"runEval");async function S(n){let r=l.join(x(await I(n)),"latest.json");return D(r)}o(S,"loadLatestEvalRun");async function Q(n,r){if(!r)return S(n);let t=l.join(x(await I(n)),"runs"),e=await m.readdir(t).catch(()=>null);return e?(await Promise.all(e.filter(i=>i.endsWith(".json")).map(i=>D(l.join(t,i))))).filter(i=>!!i).filter(i=>i.versions.current===r||i.versions.candidate===r).sort((i,c)=>c.createdAt.localeCompare(i.createdAt))[0]??null:null}o(Q,"loadEvalRunByVersion");async function Y(n,r={}){let t=await Q(n,r.baseline),e=r.candidate?await Q(n,r.candidate):await S(n),i=[...new Set([...t?.scenarios.map(u=>u.id)??[],...e?.scenarios.map(u=>u.id)??[]])].sort().map(u=>{let v=t?.scenarios.find(A=>A.id===u),w=e?.scenarios.find(A=>A.id===u),b=v&&w?Math.round((w.score-v.score)*10)/10:void 0,j=[],oe=v?w?(b??0)<=q?"regressed":(b??0)>=K?"improved":"unchanged":"missing-candidate":"missing-baseline";return v?w?(b??0)<=q?j.push({severity:"blocking",title:`${u} regressed by ${Math.abs(b??0)} points`,recommendation:Me(u)}):(b??0)>=K?j.push({severity:"info",title:`${u} improved by ${b} points`,recommendation:"Keep this scenario in PR checks so the improvement is protected."}):v&&w&&j.push({severity:"info",title:`${u} stayed within the regression threshold`,recommendation:"Keep collecting this scenario so future optimizations have a stable baseline."}):j.push({severity:"blocking",title:`No candidate result for ${u}`,recommendation:"Run `prjct eval run` for the candidate version before publishing a comparison."}):j.push({severity:"warning",title:`No baseline result for ${u}`,recommendation:"Run `prjct eval run --candidate <baseline-version>` before comparing releases."}),{id:u,baselineScore:v?.score,candidateScore:w?.score,delta:b,status:oe,actionables:j}}),c=i.filter(u=>u.status==="regressed").length,d=i.filter(u=>u.status==="improved").length,f=new Date().toISOString(),h=t?.versions.candidate??t?.versions.current??r.baseline,F=e?.versions.candidate??e?.versions.current??r.candidate,ie={schemaVersion:O,comparisonId:Ce(f,h,F),createdAt:f,baselineRunId:t?.runId,candidateRunId:e?.runId,baselineVersion:h,candidateVersion:F,summary:{baselineScore:t?.summary.score,candidateScore:e?.summary.score,delta:t&&e?Math.round((e.summary.score-t.summary.score)*10)/10:void 0,regressions:c,improvements:d,actionables:i.reduce((u,v)=>u+v.actionables.length,0)},scenarios:i};return Ee(n,ie)}o(Y,"compareEvalRuns");async function T(n,r={}){let t=te(r.target),e=r.file?await Re(r.file):await $e(n),a=await re(n,r.dryRun===!0),i={schemaVersion:O,artifactType:"run",artifactId:e.runId,repo:e.project.repo,createdAt:e.createdAt,run:e,reportMarkdown:R(e)};return se(a.projectId,t,r.dryRun===!0,i,{artifactType:"run",artifactId:e.runId,runId:e.runId})}o(T,"publishEvalRun");async function ee(n,r,t={}){let e=te(t.target),a=await re(n,t.dryRun===!0),i=await I(n),c={schemaVersion:O,artifactType:"comparison",artifactId:r.comparisonId,repo:i.repo,createdAt:r.createdAt,comparison:r,reportMarkdown:P(r)};return se(a.projectId,e,t.dryRun===!0,c,{artifactType:"comparison",artifactId:r.comparisonId,comparisonId:r.comparisonId})}o(ee,"publishEvalComparison");function R(n){let r=n.scenarios.flatMap(a=>a.actionables.map(i=>({scenario:a.id,actionable:i}))),t=n.scenarios.map(a=>`| \`${a.id}\` | ${a.status} | ${a.score} | ${a.actionables.length} |`).join(`
|
|
8
8
|
`),e=r.length===0?"_No actionables._":r.map(({scenario:a,actionable:i})=>`- **${i.severity}** \`${a}\`: ${i.title}. ${i.recommendation}`).join(`
|
|
9
9
|
`);return`# prjct eval run
|
|
10
10
|
|
|
@@ -60,7 +60,7 @@ ${r||"| _none_ | - | - | - | - |"}
|
|
|
60
60
|
|
|
61
61
|
${t.length>0?t.join(`
|
|
62
62
|
`):"_No actionables._"}
|
|
63
|
-
`}o(P,"formatEvalComparisonMarkdown");function pe(n){return{score:n.length===0?0:Math.round(n.reduce((t,e)=>t+e.score,0)/n.length),pass:n.filter(t=>t.status==="pass").length,warn:n.filter(t=>t.status==="warn").length,fail:n.filter(t=>t.status==="fail").length,improvements:0,regressions:n.filter(t=>t.status==="fail").length,actionables:n.reduce((t,e)=>t+e.actionables.length,0)}}o(pe,"summarizeScenarios");async function ge(n){return Promise.all([E("agent-surface-readiness","Agent surface readiness",()=>fe(n.projectPath)),E("project-sync-readiness","Project sync readiness",()=>he(n.projectPath)),E("stale-command-guidance","Stale command guidance",()=>ve(n.projectPath)),E("quality-command-readiness","Quality command readiness",()=>be(n.projectPath)),E("cloud-benchmark-readiness","Cloud benchmark readiness",()=>ye(n.projectPath)),E("project-facts-freshness","Project facts freshness",()=>we(n.projectPath))])}o(ge,"runScenarios");async function E(n,r,t){let e=Date.now(),a=await t();return{id:n,name:r,durationMs:Date.now()-e,...a}}o(E,"scenario");async function fe(n){let r=await k(l.join(n,"AGENTS.md")),t=await k(l.join(n,"CLAUDE.md")),e=r?100:t?70:20;return{status:e>=90?"pass":"warn",score:e,metrics:{agentsMd:r,claudeMd:t},actionables:e>=90?[{severity:"info",title:"Portable agent surface is present",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks.",command:"prjct agents doctor --fix"}]:[{severity:"warning",title:"Portable AGENTS.md surface is missing",recommendation:"Run `prjct agents doctor --fix` so future agents start with the same project contract.",command:"prjct agents doctor --fix"}]}}o(fe,"evalAgentSurface");async function he(n){let r=await k(l.join(n,".prjct","prjct.config.json"));return{status:r?"pass":"warn",score:r?100:40,metrics:{projectConfig:r},actionables:[r?{severity:"info",title:"Project has a prjct identity",recommendation:"Use `prjct sync --md` in eval smoke runs to keep generated context measurable.",command:"prjct sync --md"}:{severity:"warning",title:"Project is not registered with prjct",recommendation:"Run `prjct sync` before comparing eval runs so metrics map to a stable project id.",command:"prjct sync"}]}}o(he,"evalProjectSyncReadiness");async function ve(n){let r=await Ae(n,250),t=/\/p:\s*[a-z][a-z0-9-]*/i,e=[];return await Promise.all(r.map(async a=>{let i=await m.readFile(l.join(n,a),"utf-8").catch(()=>"");t.test(i)&&e.push(a)})),{status:e.length===0?"pass":"warn",score:e.length===0?100:Math.max(20,100-e.length*10),metrics:{scannedFiles:r.length,staleHits:e.length},actionables:e.length===0?[{severity:"info",title:"No stale `/p:` command guidance found",recommendation:"Keep this scan in evals to prevent user-facing command drift."}]:[{severity:"warning",title:`Found ${e.length} stale command guidance file(s)`,recommendation:"Replace stale `/p:` examples with `p. <verb>` or `prjct <verb>`.",files:e.slice(0,10)}]}}o(ve,"evalStaleCommandGuidance");async function be(n){let r=l.join(n,"package.json"),t=await(async()=>{try{return JSON.parse(await m.readFile(r,"utf-8")).scripts??{}}catch{return{}}})(),e=typeof t.test=="string",a=typeof t.check=="string"||typeof t.lint=="string",i=(e?50:0)+(a?50:0);return{status:i>=100?"pass":"warn",score:i,metrics:{hasTest:e,hasCheck:a},actionables:i>=100?[{severity:"info",title:"Quality commands are discoverable",recommendation:"Use these commands as eval scenario gates before publishing results."}]:[{severity:"warning",title:"Quality commands are incomplete",recommendation:"Expose `test` and `check`/`lint` scripts so eval reports can tie regressions to real verification.",files:["package.json"]}]}}o(be,"evalQualityCommandReadiness");async function ye(n){let r=await N.readConfig(n),t=await C.hasAuth(),e=!!r?.projectId,a=!!r?.cloud?.enabled,i=a&&!r?.cloud?.paused,c=(e?34:0)+(t?33:0)+(i?33:0);return{status:c>=100?"pass":"warn",score:c,metrics:{hasProject:e,authenticated:t,cloudLinked:a,cloudActive:i},actionables:c>=100?[{severity:"info",title:"Cloud benchmark publishing is active",recommendation:"Run `prjct eval publish --target cloud` after release evals to store shared benchmark history.",command:"prjct eval publish --target cloud"}]:[{severity:"warning",title:"Cloud benchmark publishing is not active",recommendation:"Run `prjct init`, `prjct login`, and `prjct cloud link` before publishing benchmark results.",command:"prjct cloud status"}]}}o(ye,"evalCloudBenchmarkReadiness");async function we(n){let r=l.join(n,"PRJCT.md");if(!await k(r))return{status:"warn",score:50,metrics:{prjctMd:!1},actionables:[{severity:"info",title:"PRJCT.md not opted into yet",recommendation:"Run `prjct agents doctor --fix` to generate the verified-facts hub (opt-in, clean-repo doctrine).",command:"prjct agents doctor --fix"}]};let{buildPrjctMdBody:e}=await import("./prjct-md-
|
|
63
|
+
`}o(P,"formatEvalComparisonMarkdown");function pe(n){return{score:n.length===0?0:Math.round(n.reduce((t,e)=>t+e.score,0)/n.length),pass:n.filter(t=>t.status==="pass").length,warn:n.filter(t=>t.status==="warn").length,fail:n.filter(t=>t.status==="fail").length,improvements:0,regressions:n.filter(t=>t.status==="fail").length,actionables:n.reduce((t,e)=>t+e.actionables.length,0)}}o(pe,"summarizeScenarios");async function ge(n){return Promise.all([E("agent-surface-readiness","Agent surface readiness",()=>fe(n.projectPath)),E("project-sync-readiness","Project sync readiness",()=>he(n.projectPath)),E("stale-command-guidance","Stale command guidance",()=>ve(n.projectPath)),E("quality-command-readiness","Quality command readiness",()=>be(n.projectPath)),E("cloud-benchmark-readiness","Cloud benchmark readiness",()=>ye(n.projectPath)),E("project-facts-freshness","Project facts freshness",()=>we(n.projectPath))])}o(ge,"runScenarios");async function E(n,r,t){let e=Date.now(),a=await t();return{id:n,name:r,durationMs:Date.now()-e,...a}}o(E,"scenario");async function fe(n){let r=await k(l.join(n,"AGENTS.md")),t=await k(l.join(n,"CLAUDE.md")),e=r?100:t?70:20;return{status:e>=90?"pass":"warn",score:e,metrics:{agentsMd:r,claudeMd:t},actionables:e>=90?[{severity:"info",title:"Portable agent surface is present",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks.",command:"prjct agents doctor --fix"}]:[{severity:"warning",title:"Portable AGENTS.md surface is missing",recommendation:"Run `prjct agents doctor --fix` so future agents start with the same project contract.",command:"prjct agents doctor --fix"}]}}o(fe,"evalAgentSurface");async function he(n){let r=await k(l.join(n,".prjct","prjct.config.json"));return{status:r?"pass":"warn",score:r?100:40,metrics:{projectConfig:r},actionables:[r?{severity:"info",title:"Project has a prjct identity",recommendation:"Use `prjct sync --md` in eval smoke runs to keep generated context measurable.",command:"prjct sync --md"}:{severity:"warning",title:"Project is not registered with prjct",recommendation:"Run `prjct sync` before comparing eval runs so metrics map to a stable project id.",command:"prjct sync"}]}}o(he,"evalProjectSyncReadiness");async function ve(n){let r=await Ae(n,250),t=/\/p:\s*[a-z][a-z0-9-]*/i,e=[];return await Promise.all(r.map(async a=>{let i=await m.readFile(l.join(n,a),"utf-8").catch(()=>"");t.test(i)&&e.push(a)})),{status:e.length===0?"pass":"warn",score:e.length===0?100:Math.max(20,100-e.length*10),metrics:{scannedFiles:r.length,staleHits:e.length},actionables:e.length===0?[{severity:"info",title:"No stale `/p:` command guidance found",recommendation:"Keep this scan in evals to prevent user-facing command drift."}]:[{severity:"warning",title:`Found ${e.length} stale command guidance file(s)`,recommendation:"Replace stale `/p:` examples with `p. <verb>` or `prjct <verb>`.",files:e.slice(0,10)}]}}o(ve,"evalStaleCommandGuidance");async function be(n){let r=l.join(n,"package.json"),t=await(async()=>{try{return JSON.parse(await m.readFile(r,"utf-8")).scripts??{}}catch{return{}}})(),e=typeof t.test=="string",a=typeof t.check=="string"||typeof t.lint=="string",i=(e?50:0)+(a?50:0);return{status:i>=100?"pass":"warn",score:i,metrics:{hasTest:e,hasCheck:a},actionables:i>=100?[{severity:"info",title:"Quality commands are discoverable",recommendation:"Use these commands as eval scenario gates before publishing results."}]:[{severity:"warning",title:"Quality commands are incomplete",recommendation:"Expose `test` and `check`/`lint` scripts so eval reports can tie regressions to real verification.",files:["package.json"]}]}}o(be,"evalQualityCommandReadiness");async function ye(n){let r=await N.readConfig(n),t=await C.hasAuth(),e=!!r?.projectId,a=!!r?.cloud?.enabled,i=a&&!r?.cloud?.paused,c=(e?34:0)+(t?33:0)+(i?33:0);return{status:c>=100?"pass":"warn",score:c,metrics:{hasProject:e,authenticated:t,cloudLinked:a,cloudActive:i},actionables:c>=100?[{severity:"info",title:"Cloud benchmark publishing is active",recommendation:"Run `prjct eval publish --target cloud` after release evals to store shared benchmark history.",command:"prjct eval publish --target cloud"}]:[{severity:"warning",title:"Cloud benchmark publishing is not active",recommendation:"Run `prjct init`, `prjct login`, and `prjct cloud link` before publishing benchmark results.",command:"prjct cloud status"}]}}o(ye,"evalCloudBenchmarkReadiness");async function we(n){let r=l.join(n,"PRJCT.md");if(!await k(r))return{status:"warn",score:50,metrics:{prjctMd:!1},actionables:[{severity:"info",title:"PRJCT.md not opted into yet",recommendation:"Run `prjct agents doctor --fix` to generate the verified-facts hub (opt-in, clean-repo doctrine).",command:"prjct agents doctor --fix"}]};let{buildPrjctMdBody:e}=await import("./prjct-md-BSFV7OQQ.mjs"),[a,i]=await Promise.all([m.readFile(r,"utf-8").catch(()=>""),e(n)]),c=!a.includes(i);return{status:c?"warn":"pass",score:c?40:100,metrics:{prjctMd:!0,stale:c},actionables:c?[{severity:"warning",title:"PRJCT.md is stale",recommendation:"Re-run `prjct agents doctor --fix` to refresh verified commands/stack after a manifest change (package.json / Cargo.toml / go.mod / pyproject.toml).",command:"prjct agents doctor --fix"}]:[{severity:"info",title:"PRJCT.md matches verified project facts",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks to catch drift early.",command:"prjct agents doctor --fix"}]}}o(we,"evalProjectFactsFreshness");async function je(n){let r=x({repo:n.project.repo}),t=l.join(r,"runs");await m.mkdir(t,{recursive:!0});let e=l.join(t,`${n.runId}.json`),a=l.join(t,`${n.runId}.md`),i={...n,artifacts:{jsonPath:e,reportPath:a}};return B.parse(i),await m.writeFile(e,`${JSON.stringify(i,null,2)}
|
|
64
64
|
`,"utf-8"),await m.writeFile(a,R(i),"utf-8"),await m.writeFile(l.join(r,"latest.json"),`${JSON.stringify(i,null,2)}
|
|
65
65
|
`,"utf-8"),i}o(je,"saveEvalRun");async function Ee(n,r){let t=x(await I(n)),e=l.join(t,"comparisons");await m.mkdir(e,{recursive:!0});let a=l.join(e,`${r.comparisonId}.json`),i=l.join(e,`${r.comparisonId}.md`),c={...r,artifacts:{jsonPath:a,reportPath:i}};return G.parse(c),await m.writeFile(a,`${JSON.stringify(c,null,2)}
|
|
66
66
|
`,"utf-8"),await m.writeFile(i,P(c),"utf-8"),await m.writeFile(l.join(t,"latest-comparison.json"),`${JSON.stringify(c,null,2)}
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{
|
|
7
|
+
import{d as a,e as b,f as c,g as d,h as e,i as f,j as g}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as MACHINE_TAG_KEYS,d as deriveTitle,c as flatDetail,e as formatMemoryDigestLine,g as formatMemoryMd,f as linkifyMemRefs,b as preventiveLabel};
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c,d,e,f}from"./chunk-
|
|
7
|
+
import{a,b,c,d,e,f}from"./chunk-JGGQSMZC.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as ensureGeminiMcpServer,b as geminiHookMaps,a as getGeminiSettingsPath,d as installGeminiHooks,e as installGeminiSettings,f as uninstallGeminiSettings};
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c}from"./chunk-
|
|
7
|
+
import{a,b,c}from"./chunk-HVXWQ2XZ.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as ensureGrokMcpServer,a as getGrokConfigTomlPath,c as grokHasPrjctMcpServer};
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c}from"./chunk-
|
|
7
|
+
import{a,b,c}from"./chunk-O5VCBMEK.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as getGrokPluginRoot,c as grokPluginInstalled,b as installGrokPlugin};
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c,d}from"./chunk-
|
|
7
|
+
import{a,b,c,d}from"./chunk-5TGZSK4C.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as buildGrokSkillContent,a as getGrokSkillInstallPath,b as getGrokSkillTemplate,d as installGrokSkill};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as h}from"./chunk-
|
|
7
|
+
import{a as h}from"./chunk-LGX2GM45.mjs";import{b as $}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as k}from"./chunk-5DZ2LTII.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import{e as g,f as p,g as u}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as y}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as s}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as w}from"./chunk-3TRXQAU4.mjs";var b=class extends k{static{w(this,"GuardCommands")}async guard(a=null,m=process.cwd(),r={}){if(r.diff)return this.guardDiff(r.diff,m,r);let n=(a??"").trim().split(/\s+/).filter(Boolean)[0];if(!n){let t="Usage: prjct guard <file> \u2014 surfaces preventive memory before you edit it. PR mode: prjct guard --diff <range> [--strict].";return r.md?console.log(`> ${t}`):s.fail(t),{success:!1,error:"Missing file argument"}}let o=await $(m,r);if(!o.ok)return o.result;let l=typeof r.limit=="number"&&r.limit>0?r.limit:3,c=(()=>{try{return y.recallForFile(o.value,n,l)}catch{return[]}})();h(o.value,m,c.map(t=>t.id));let i=n.split("/").pop()??n,{impactBlock:d,impactLine:e}=await import("./world-model-impact-FAGGNUGN.mjs").then(({breakImpact:t,formatImpactMd:f})=>{let v=t(o.value,[n],6);return{impactBlock:f(v),impactLine:v.line}}).catch(()=>({impactBlock:"",impactLine:""}));if(c.length===0){let t=`No preventive memory recorded against \`${i}\` \u2014 clear to edit.`;return r.md?console.log(d?`> ${t}
|
|
8
8
|
|
|
9
9
|
${d}`:`> ${t}`):(s.done(`No preventive memory for ${i} \u2014 clear to edit.`),e&&s.info(e)),{success:!0,file:n,hits:0,impact:e||void 0}}if(r.md){let t=[`# prjct: heads up before editing \`${i}\``,"","Preventive memory recorded against this file \u2014 check before you change it:",""];for(let f of c)t.push(`- **[${g(f)}] ${u(f)}** \u2014 ${p(f.content)} \`${f.id}\``);t.push("","> Surfaced as prevention. Apply if relevant; ignore if not."),d&&t.push("",d),console.log(t.join(`
|
|
10
10
|
`))}else{s.info(`\u26A0 ${c.length} preventive memory entr${c.length===1?"y":"ies"} for ${i}:`);for(let t of c)s.info(` \u2022 [${g(t)}] ${u(t)} \u2014 ${p(t.content,120)} (${t.id})`);e&&s.info(e)}return{success:!0,file:n,hits:c.length,impact:e||void 0}}async guardDiff(a,m,r){let n=await $(m,r);if(!n.ok)return n.result;let o=await(async()=>{try{let{execFileAsync:e}=await import("./exec-34V6SJYO.mjs");return{ok:!0,files:(await e("git",["diff","--name-only",a],{cwd:m,timeout:1e4})).stdout.split(`
|
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a,b,c,d,e}from"./chunk-
|
|
7
|
+
import{a,b,c,d,e}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as requireActiveTask,b as requireProject,a as requireProjectId,e as requireTrustedMemoryContent,d as requireWorkflow};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as j,b as I,g as k,h as S}from"./chunk-
|
|
7
|
+
import{a as j,b as I,g as k,h as S}from"./chunk-W23JLJJZ.mjs";import"./chunk-MR5XXHRK.mjs";import"./chunk-SRJEX6XF.mjs";import"./chunk-XBR63NJA.mjs";import"./chunk-EFSPBB4S.mjs";import"./chunk-7ZHWJSW5.mjs";import"./chunk-FOUBHU4X.mjs";import{a as $,b as R}from"./chunk-YOWW4LHK.mjs";import"./chunk-5OWPZWEU.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-JGGQSMZC.mjs";import"./chunk-BTSHD3XJ.mjs";import"./chunk-CXNVDJNN.mjs";import"./chunk-ROOCBUKH.mjs";import"./chunk-UX2ORID4.mjs";import"./chunk-3OWKIRK6.mjs";import"./chunk-C35JQUWD.mjs";import{a as y,b as g}from"./chunk-2JJM3YMW.mjs";import"./chunk-V6L5PLD7.mjs";import"./chunk-U55OPVYR.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-GTG67Z45.mjs";import"./chunk-4MR5XSLO.mjs";import"./chunk-LGX2GM45.mjs";import"./chunk-ZAUJWUUN.mjs";import"./chunk-V7VA4EQX.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as v}from"./chunk-5DZ2LTII.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-CA2VFWFP.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-ZBBNCCGV.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-YPLFWN62.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-MXJKULJY.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-MPU3VM6Z.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import{b as h}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as u}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-O5VCBMEK.mjs";import"./chunk-DZDEBDAB.mjs";import"./chunk-LFOQ7FCR.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-WTDUJB4I.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as d,g as N}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";import{existsSync as B}from"node:fs";import U from"node:path";function C(e){let r=e.activeCycle?`The flow you just performed: **${e.activeCycle}**.`:"The flow you just performed (read it from the sources below).",s=[e.hasGit?"- `git log --oneline -20` + `git diff` \u2014 the concrete edits you made.":null,"- `prjct work --md` \u2014 the work cycle + related context.",'- `prjct search "<topic>"` / `prjct context memory <topic>` \u2014 decisions/gotchas/learnings captured.'].filter(Boolean).join(`
|
|
8
8
|
`);return`${["# prjct harness \u2014 induction (learn from what you just did)","",r,"Read it from prjct (never assume \u2014 pull):",s,"","Then SYNTHESIZE the repeatable organs of the harness and PERSIST each through prjct (prjct owns the Body; you build + persist, it stores):","",'1. **Command / workflow** \u2014 the repeatable procedure. Register it: `prjct workflow create <name> "<what it does>"`, then add each step with `prjct workflow add "<status:<value>|script:<path>|git:commit>" before <task|ship|sync>`.','2. **Skill recipe** \u2014 the judgment/how-to that is NOT a fixed script. Capture it as durable knowledge: `prjct remember learning "<the recipe/heuristic>"` (and `prjct remember decision "<choice + why>"` for any fork resolved).','3. **Gates (Stop-Slop)** \u2014 what must be true before "done": add a blocking check with `prjct workflow gate ship "verify:auto"` (or `prjct workflow gate ship "<your test command>"`) so it runs every time.',"4. **Roster** \u2014 if the flow needed specialists, note which review lenses it raised (architecture + security/data/perf/design/strategic) so future runs compose them.","","Keep each organ MODEL-AGNOSTIC: name verbs and capabilities, never a specific model. Persist ONLY through prjct verbs \u2014 SQLite is the only surface."].join(`
|
|
9
9
|
`)}
|
|
10
10
|
`}i(C,"buildInductionDispatch");var p=[{name:"safe-agentic-workflow",description:"A cautious build\u2192review\u2192ship rig: intent brief, dynamic review specialists, and a verify gate before ship.",source:"https://github.com/safe-agentic-workflow",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 leader/implementer + review specialists composed per change."},{organ:"stop-slop",install:'prjct crew checkpoints set --content "<acceptance bar>" + `prjct workflow gate ship "verify:auto"`.'},{organ:"knowledge-base",install:`prjct remember framework "<the workflow's operating principles>".`}]},{name:"solo-sovereign",description:"A single-agent rig for non-Claude / local models: emulated crew (one agent plays the roles) + a KB + verify gate. Maximum portability.",source:"built-in",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 on a non-Claude rig this writes the emulated CREW.md protocol."},{organ:"knowledge-base",install:'prjct remember identity/voice/glossary "<who you are + terms>".'},{organ:"stop-slop",install:'prjct workflow gate ship "verify:auto".'}]},{name:"grok-build",description:"Grok as Brain, prjct as Body: multi-host skill/MCP projection, plan-mode approval gate, crew checkpoints, and SQLite memory (Grok memory is experimental). Steal patterns from the open Grok Build harness \u2014 not the Rust agent loop.",source:"https://github.com/xai-org/grok-build",organs:[{organ:"skills-commands",install:"prjct install \u2014 native ~/.grok/config.toml MCP + ~/.grok/skills/prjct + ~/.grok/plugins/prjct; hooks still via Claude compat. Keep AGENTS.md + MCP prjct_* as the portable contract."},{organ:"knowledge-base",install:"prjct remember decision/learning/gotcha \u2014 prjct SQLite is the durable memory plane; do not rely on Grok experimental memory alone."},{organ:"agent-catalog",install:"prjct crew install + `prjct plan` ceremony (draft read-only until `prjct plan approve`) before implementer edits on ambiguous work."},{organ:"stop-slop",install:'prjct crew checkpoints set + `prjct workflow gate ship "verify:auto"`; map delivery-geometry tier to host permission mode advice (default/dontAsk/acceptEdits) without owning OS sandbox.'}]}];function O(e){return p.find(r=>r.name===e.trim().toLowerCase())}i(O,"findRig");function M(){return`${["# prjct harness \u2014 rigs you can steal","","Adopt one as your Body's base: `prjct harness use <name>`.","",...p.map(e=>`- **${e.name}** \u2014 ${e.description}`)].join(`
|
|
@@ -33,7 +33,7 @@ ${s}
|
|
|
33
33
|
|
|
34
34
|
## Open cases
|
|
35
35
|
|
|
36
|
-
${n}`}i(_,"renderInstructionFailureReportMd");N();var D=class extends v{static{i(this,"HarnessCommands")}async instructionDisposition(r,s,n=process.cwd()){try{if(!r||!s)throw new Error("Usage: prjct harness instructions set <id> <open|resolved|false-positive>.");let t=y.parse(s==="false-positive"?"false_positive":s),o=await u.getProjectId(n);return o?g.setDisposition(o,r,t)?(console.log(`Instruction failure ${r}: ${t.replace("_","-")}`),{success:!0,id:r,disposition:t}):{success:!1,error:`Instruction failure not found: ${r}`}:{success:!1,error:"No prjct project found in the current directory."}}catch(t){return{success:!1,error:d(t)}}}async instructions(r=null,s=process.cwd(),n={}){try{let t=T(r),o=await u.getProjectId(s);if(!o)return{success:!1,error:"No prjct project found in the current directory."};let a=F(o,t);return n.md?console.log(_(a)):console.log(`Instruction failures (${t}): ${a.total}; attributed ${a.attributed} (${(a.attributionRate*100).toFixed(1)}%); open ${a.open}; false-trigger ${(a.falseTriggerRate*100).toFixed(1)}%`),{success:!0,...a}}catch(t){return{success:!1,error:d(t)}}}async score(r=process.cwd(),s={}){try{let n=await $(r),t=j(),o=k(),{outcomesMd:a,outcomesLine:w,weakLine:m}=await(async()=>{try{let c=await u.getProjectId(r);if(!c)return{outcomesMd:null,outcomesLine:null,weakLine:null};let{buildDynastyOutcomes:l,renderDynastyOutcomesMd:L}=await import("./dynasty-outcomes-
|
|
36
|
+
${n}`}i(_,"renderInstructionFailureReportMd");N();var D=class extends v{static{i(this,"HarnessCommands")}async instructionDisposition(r,s,n=process.cwd()){try{if(!r||!s)throw new Error("Usage: prjct harness instructions set <id> <open|resolved|false-positive>.");let t=y.parse(s==="false-positive"?"false_positive":s),o=await u.getProjectId(n);return o?g.setDisposition(o,r,t)?(console.log(`Instruction failure ${r}: ${t.replace("_","-")}`),{success:!0,id:r,disposition:t}):{success:!1,error:`Instruction failure not found: ${r}`}:{success:!1,error:"No prjct project found in the current directory."}}catch(t){return{success:!1,error:d(t)}}}async instructions(r=null,s=process.cwd(),n={}){try{let t=T(r),o=await u.getProjectId(s);if(!o)return{success:!1,error:"No prjct project found in the current directory."};let a=F(o,t);return n.md?console.log(_(a)):console.log(`Instruction failures (${t}): ${a.total}; attributed ${a.attributed} (${(a.attributionRate*100).toFixed(1)}%); open ${a.open}; false-trigger ${(a.falseTriggerRate*100).toFixed(1)}%`),{success:!0,...a}}catch(t){return{success:!1,error:d(t)}}}async score(r=process.cwd(),s={}){try{let n=await $(r),t=j(),o=k(),{outcomesMd:a,outcomesLine:w,weakLine:m}=await(async()=>{try{let c=await u.getProjectId(r);if(!c)return{outcomesMd:null,outcomesLine:null,weakLine:null};let{buildDynastyOutcomes:l,renderDynastyOutcomesMd:L}=await import("./dynasty-outcomes-KDWIEA4Y.mjs"),b=l(c),A=await u.readConfig(r),{effectiveWeakModelMode:W,weakModelOneLiner:G}=await import("./weak-model-mode-LOAPFJPQ.mjs");return{outcomesMd:L(b),outcomesLine:b.line,weakLine:W(A)==="on"?G():null}}catch{return{outcomesMd:null,outcomesLine:null,weakLine:null}}})();if(s.md){let c=I(t,{coverageMd:R(n),deltaMd:S(o),outcomesMd:a??void 0}),l=[m?`## Weak-model mode
|
|
37
37
|
|
|
38
38
|
${m}`:""].filter(Boolean).join(`
|
|
39
39
|
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as M}from"./chunk-
|
|
7
|
+
import{a as M}from"./chunk-5DZ2LTII.mjs";import{e as h}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as p,p as $}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import{f,l as g,p as D}from"./chunk-HYIT7MF5.mjs";import{e as d,g as k}from"./chunk-225DWS4D.mjs";import{a}from"./chunk-3TRXQAU4.mjs";k();$();D();import w from"node:path";var N=[{name:"typecheck",scriptName:"typecheck",description:"TypeScript types",weight:25},{name:"lint",scriptName:"lint",description:"Lint rules",weight:20},{name:"tests",scriptName:"test",description:"Test suite",weight:35},{name:"dead-code",scriptName:"knip",description:"Dead-code scan",weight:20}],y=class extends M{static{a(this,"HealthCommands")}async health(s=null,n=process.cwd(),t={}){try{let e=await this.ensureProjectInit(n);if(!e.success)return e;let o=await T(n),r=[];for(let u of o)r.push(await b(n,u));let c=E(r);return t.md?console.log(A(c,r)):console.log(x(c,r)),{success:r.every(u=>u.status!=="fail"),score:c,results:r.length}}catch(e){let o=d(e);return h(o)}}};async function T(i){let s=w.join(i,"package.json");if(!await g(s))return[];let t=(await f(s,null))?.scripts??{};return N.filter(e=>!!t[e.scriptName]).map(e=>({...e,command:t[e.scriptName]??null}))}a(T,"detectDimensions");var _=300*1e3;function R(){let i=process.env.PRJCT_HEALTH_DIM_TIMEOUT_MS,s=i?Number(i):Number.NaN;return Number.isFinite(s)&&s>0?s:_}a(R,"dimensionTimeoutMs");async function b(i,s){if(!s.command)return{dimension:s,status:"skipped",durationMs:0};let n=Date.now(),t=R(),e=w.join(i,"node_modules",".bin"),o={...process.env,PATH:`${e}:${process.env.PATH??""}`};try{return await p(s.command,{cwd:i,timeout:t,maxBuffer:16*1024*1024,env:o}),{dimension:s,status:"pass",durationMs:Date.now()-n}}catch(r){let c=r;if(c.killed)return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:`timed out after ${(t/1e3).toFixed(0)}s (raise via PRJCT_HEALTH_DIM_TIMEOUT_MS)`};let l=c.stderr??"",u=c.stdout??"",H=`${l}
|
|
8
8
|
${u}`.split(`
|
|
9
9
|
`).map(m=>m.trim()).find(m=>m.length>0);return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:H??d(r)}}}a(b,"runDimension");function E(i){if(i.length===0)return 0;let{pts:s,denom:n}=i.reduce((t,e)=>e.status==="skipped"?t:{pts:t.pts+(e.status==="pass"?e.dimension.weight:0),denom:t.denom+e.dimension.weight},{pts:0,denom:0});return n===0?0:Math.round(s/n*100)}a(E,"computeScore");function I(i){return i==="pass"?"\u2713":i==="fail"?"\u2717":"\xB7"}a(I,"statusIcon");function x(i,s){if(s.length===0)return"health: no quality dimensions detected (add typecheck/lint/test/knip scripts to package.json)";let n=[];n.push(`health: ${i}/100`);for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?` \u2014 ${t.diagnostic.slice(0,80)}`:"";n.push(` ${I(t.status)} ${t.dimension.name.padEnd(10)} ${e}${o}`)}return n.join(`
|
|
10
10
|
`)}a(x,"formatText");function A(i,s){if(s.length===0)return"## Health\n\n_No quality dimensions detected. Add `typecheck`, `lint`, `test`, or `knip` scripts to `package.json`._\n";let n=[];n.push(`## Health \u2014 ${i}/100`),n.push(""),n.push("| Dimension | Status | Duration | Notes |"),n.push("|---|---|---|---|");for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?t.diagnostic.slice(0,100).replaceAll("|","\\|"):"";n.push(`| ${t.dimension.name} | ${t.status} | ${e} | ${o} |`)}return n.join(`
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as u,b as i}from"./chunk-76YMLNLF.mjs";import{d as l,g as d}from"./chunk-
|
|
7
|
+
import{a as u,b as i}from"./chunk-76YMLNLF.mjs";import{d as l,g as d}from"./chunk-XWLTEAGN.mjs";import"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";import n from"chalk";d();function c(){return i.filter(e=>!!e.usage?.terminal&&(e.routingMode==="bin-only"||!e.usage?.claude)&&e.surface!=="legacy"&&e.surface!=="internal")}r(c,"terminalCommands");var f=[{flag:"-q, --quiet",description:"Suppress all output (errors to stderr only)"},{flag:"-v, --version",description:"Show version and provider status"},{flag:"-h, --help",description:"Show this help message"}];function g(){let e=[];e.push(""),e.push(`${n.cyan.bold("prjct")} v${l} - The agentic harness for AI coding agents`),e.push(n.dim("Intent \u2192 context \u2192 execution \u2192 learning \u2192 performance improvement.")),e.push(""),e.push(n.bold("QUICK START")),e.push(n.dim("\u2500".repeat(60))),e.push(` ${n.green("1.")} prjct start ${n.dim("# Configure AI providers")}`),e.push(` ${n.green("2.")} cd my-project && prjct init`),e.push(` ${n.green("3.")} Open in Claude Code / Gemini CLI / Cursor`),e.push(` ${n.green("4.")} p. work "improve auth" ${n.dim("# Start a work cycle")}`),e.push(n.dim(' p. = the in-agent command router; from a shell use `prjct work "\u2026"` instead')),e.push(""),e.push(n.bold("TERMINAL COMMANDS")),e.push(n.dim("\u2500".repeat(60)));for(let t of c()){let o=`prjct ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}e.push(""),e.push(`${n.bold("AI AGENT COMMANDS")} ${n.dim("(inside Claude/Gemini/Cursor)")}`),e.push(n.dim("\u2500".repeat(60))),e.push(` ${"Command".padEnd(22)} Description`),e.push(` ${n.dim("\u2500".repeat(56))}`);let s=i.filter(t=>t.surface==="ai-agile"&&t.usage?.claude);for(let t of s.slice(0,10)){let o=`p. ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}s.length>10&&e.push(` ${n.dim(`... and ${s.length-10} more (run 'prjct help commands')`)}`),e.push(n.dim(' These also run from the terminal (`prjct work "\u2026"`) \u2014 see prjct help <command>.')),e.push(""),e.push(n.bold("FLAGS")),e.push(n.dim("\u2500".repeat(60)));for(let t of f)e.push(` ${t.flag.padEnd(22)} ${t.description}`);return e.push(""),e.push(n.dim(" Short flags are per-command: -v is --version globally but verbose in `prjct watch`;")),e.push(n.dim(" -f is force (stop/uninstall), follow (daemon logs) or foreground (daemon start);")),e.push(n.dim(" -n is dry-run (uninstall) but line count (daemon logs).")),e.push(""),e.push(n.bold("MORE INFO")),e.push(n.dim("\u2500".repeat(60))),e.push(` Documentation: ${n.cyan("https://prjct.app")}`),e.push(` GitHub: ${n.cyan("https://github.com/prjct-app/cli")}`),e.push(" Per-command: prjct help <command> (or: prjct <command> --help)"),e.push(""),e.join(`
|
|
8
8
|
`)}r(g,"formatMainHelp");function $(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r($,"manifestHelpTitle");function C(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r(C,"manifestListLabel");function b(e){let s=[];if(s.push(""),s.push(`${n.cyan.bold($(e))} - ${e.description}`),s.push(""),s.push(n.bold("USAGE")),e.usage?.claude&&s.push(` Claude/Gemini: ${e.usage.claude}`),e.usage?.terminal&&s.push(` Terminal: ${e.usage.terminal}`),s.push(""),e.params&&(s.push(n.bold("PARAMETERS")),s.push(` ${e.params}`),s.push("")),e.features&&e.features.length>0){s.push(n.bold("FEATURES"));for(let o of e.features)s.push(` \u2022 ${o}`);s.push("")}e.blockingRules&&(s.push(n.bold("REQUIREMENTS")),s.push(` ${n.yellow("\u26A0")} ${e.blockingRules.check}`),s.push(""));let t=u[e.group];return t&&(s.push(n.dim(`Category: ${t.title}`)),e.isOptional&&s.push(n.dim("This is an optional command.")),s.push("")),s.join(`
|
|
9
9
|
`)}r(b,"formatManifestCommandHelp");function y(e){let s=i.find(t=>t.name===e);return s?b(s):`
|
|
10
10
|
${n.yellow(`Command '${e}' not found.`)}
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{h as u}from"./chunk-ID2C2S33.mjs";import{b as d}from"./chunk-
|
|
7
|
+
import{h as u}from"./chunk-ID2C2S33.mjs";import{b as d}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as m,i as L}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import{l as a,p as x}from"./chunk-HYIT7MF5.mjs";import{e as w,g as B}from"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";import j from"node:fs/promises";import g from"node:path";import k from"chalk";L();B();x();x();import f from"node:fs/promises";import l from"node:path";function v(){return`# prjct sync --quiet --yes
|
|
8
8
|
if command -v node >/dev/null 2>&1; then
|
|
9
9
|
node <<'NODE' >/dev/null 2>&1 || true
|
|
10
10
|
const crypto = require('node:crypto')
|
|
@@ -4,6 +4,6 @@ import { dirname as __pathDirname } from 'path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
|
-
import{c as ae,d as re}from"./chunk-
|
|
8
|
-
`));else{if(o.done(y.line),o.info(le),o.info(`settings: ${t.settingsPath}`),n){o.info(`AGENTS.md: ${n.agentsMd.action}`);for(let e of n.ideRules)o.info(`adapter: ${e}`)}else o.info("project surface: skipped (not inside an initialized prjct project)");if(i){let e=i.skipped==="user-managed"?"user-managed MCP preserved":i.changed?"updated":"already ready";o.info(`Codex MCP: ${e}`),o.info(`Codex status line: ${i.statusLineChanged?"installed":"already configured"}`)}if(a&&(o.info(`Codex hooks: ${a.hooksWritten} new, ${a.alreadyPresent} present \u2192 ${a.hooksPath}`),o.info(`Codex features.hooks: ${a.featuresChanged?"enabled":"already on"}`)),r&&(o.info(`Gemini MCP: ${r.mcpChanged?"updated":"already ready"}`),o.info(`Gemini hooks: ${r.hooksWritten} new, ${r.alreadyPresent} present \u2192 ${r.settingsPath}`)),d&&o.info(`Cursor hooks: ${d.hooksWritten} new, ${d.alreadyPresent} present \u2192 ${d.hooksPath}`),v&&o.info(`Kimi config: ${v.changed?"updated":"already ready"}`),l&&o.info(`Kimi hooks: ${l.hooksWritten} new, ${l.alreadyPresent} present \u2192 ${l.configPath} (apply on next Kimi session or after /reload)`),c){let e=c.skipped==="user-managed"?"user-managed MCP preserved":c.changed?"updated":"already ready";o.info(`Grok MCP: ${e} \u2192 ${c.path}`)}u?.success&&o.info(`Grok skill: ${u.action??"ready"}${u.path?` \u2192 ${u.path}`:""}`),p?.success&&o.info(`Grok plugin: ${p.changed?"updated":"already ready"} \u2192 ${p.path}`),P&&o.info(`OpenCode MCP: ${P.changed?"updated":"already ready"} \u2192 ${P.path}`),k?.success&&o.info(`Pi skill: ${k.action??"ready"}${k.path?` \u2192 ${k.path}`:""}`),o.info(`Organic board: ${g.liveCount}/${g.detectedCount} live (${g.organicPct}%)`),M&&o.info(M),y.organicOk||o.info("Organic gaps remain \u2014 run `prjct doctor --fix`");try{let{planCleanup:e}=await import("./cleanup-installs-
|
|
7
|
+
import{c as ae,d as re}from"./chunk-CVKMV22J.mjs";import{a as ne,b as se}from"./chunk-YOWW4LHK.mjs";import{e as X,f as Y}from"./chunk-5OWPZWEU.mjs";import{c as Z,d as ee}from"./chunk-SLYLGDX7.mjs";import{e as oe,f as te}from"./chunk-JGGQSMZC.mjs";import{a as V}from"./chunk-5DZ2LTII.mjs";import{e as S,f as F}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import{a as I}from"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import{c as Q,d as q}from"./chunk-LTKUTRRL.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as o}from"./chunk-ID2C2S33.mjs";import{b as N}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import{c as T,d as z,e as J,f as U}from"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{e as A}from"./chunk-JPMUJY42.mjs";import{b as _}from"./chunk-O5VCBMEK.mjs";import{d as B}from"./chunk-DZDEBDAB.mjs";import{c as E}from"./chunk-LFOQ7FCR.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{d as L}from"./chunk-5TGZSK4C.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import{b}from"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import{e as D}from"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as H,g as pe}from"./chunk-225DWS4D.mjs";import{a as K}from"./chunk-3TRXQAU4.mjs";pe();var ie=class extends V{static{K(this,"InstallCommands")}async install(W=null,C=process.cwd(),$={}){try{let t=await z(),m=await N.readConfig(C).catch(()=>null),s=(await A(C)).filter(e=>e.detected),f=[...new Set(["claude",...s.map(e=>e.runtime.id)])],n=m?.projectId?await I(C,{explicit:!0,agents:f}):null,R=s.some(e=>e.runtime.id==="codex"),i=R?await D():null,a=R?await X():null,r=s.some(e=>e.runtime.id==="gemini")?await oe():null,d=s.some(e=>e.runtime.id==="cursor")?await Z():null,j=s.some(e=>e.runtime.id==="kimi-cli"),v=j?await Q():null,l=j?await ae():null,w=s.some(e=>e.runtime.id==="grok"),c=w?await b():null,u=w?await L():null,p=w?await _():null,P=s.some(e=>e.runtime.id==="opencode")?await B():null,k=s.some(e=>e.runtime.id==="pi")?await E():null,g=await ne(C),G=T.length,de=t.hooksPruned>0?`, ${t.hooksPruned} retired removed`:"",le=`installed Claude hooks adapter: ${t.hooksWritten} new, ${t.alreadyPresent} already present${de} (total ${G} hooks)`,ce=[a||i?"codex":null,r?"gemini":null,d?"cursor":null,v?"kimi":null,c||u?.success||p?.success?"grok":null,P?"opencode":null,k?.success?"pi":null,"claude"].filter(e=>!!e),M=await import("./weak-frontier-demo-ZCDTMYRO.mjs").then(({computeHarnessDelta:e})=>e().line).catch(()=>null),{buildOneBreathReport:me}=await import("./one-breath-install-LVNIVN6S.mjs"),y=me({claudeHooksNew:t.hooksWritten,claudeHooksPresent:t.alreadyPresent,projectSurface:!!n,runtimesWired:[...new Set(ce)],liveCount:g.liveCount,detectedCount:g.detectedCount,organicPct:g.organicPct,deltaLine:M});if($.md)console.log([y.md,"## Universal project surface",n?`- PRJCT.md: ${n.prjctMd.action}`:"- skipped: not inside an initialized prjct project",...n?[`- AGENTS.md: ${n.agentsMd.action}`]:[],...n?.claudeMd&&n.claudeMd.action!=="unchanged"?[`- CLAUDE.md adapter: ${n.claudeMd.action}`]:[],...n?.ideRules.length?n.ideRules.map(e=>`- project rule adapter: \`${e}\``):[],...i?[`- Codex MCP: ${i.skipped==="user-managed"?"user-managed preserved":i.changed?"updated":"already ready"}`,`- Codex status line: ${i.statusLineChanged?"installed":"already configured"}`]:[],...a?[`- Codex hooks: ${a.hooksWritten} new, ${a.alreadyPresent} present, ${a.hooksPruned} pruned \u2192 \`${a.hooksPath}\``,`- Codex features.hooks: ${a.featuresChanged?"enabled":"already on"}`]:[],...r?[`- Gemini MCP: ${r.mcpChanged?"updated":"already ready"}`,`- Gemini hooks: ${r.hooksWritten} new, ${r.alreadyPresent} present, ${r.hooksPruned} pruned \u2192 \`${r.settingsPath}\``]:[],...d?[`- Cursor hooks: ${d.hooksWritten} new, ${d.alreadyPresent} present, ${d.hooksPruned} pruned \u2192 \`${d.hooksPath}\``]:[],...v?[`- Kimi config: ${v.changed?"updated":"already ready"}`]:[],...l?[`- Kimi hooks: ${l.hooksWritten} new, ${l.alreadyPresent} present, ${l.hooksPruned} pruned \u2192 \`${l.configPath}\` (apply on next Kimi session or after \`/reload\`)`]:[],...c?[`- Grok MCP: ${c.skipped==="user-managed"?"user-managed preserved":c.changed?"updated":"already ready"} \u2192 \`${c.path}\``]:[],...u?.success?[`- Grok skill: ${u.action??"ready"}${u.path?` \u2192 \`${u.path}\``:""}`]:[],...p?.success?[`- Grok plugin: ${p.changed?`updated (${p.files.join(", ")||"files"})`:"already ready"} \u2192 \`${p.path}\``]:[],...P?[`- OpenCode MCP: ${P.changed?"updated":"already ready"} \u2192 \`${P.path}\``]:[],...k?.success?[`- Pi skill: ${k.action??"ready"}${k.path?` \u2192 \`${k.path}\``:""}`]:[],"","## Claude hooks adapter",`Wrote to \`${t.settingsPath}\`.`,"",`- new: ${t.hooksWritten}`,`- already present: ${t.alreadyPresent}`,`- retired removed: ${t.hooksPruned}`,`- total expected: ${G}`,"","## Runtime detection",...s.map(e=>`- ${e.runtime.displayName}: ${e.supportLevel}`),"",se(g),"> One install \xB7 one SQLite brain \xB7 every agent surface. That is the moat \u2014 not more skills.","> OpenCode: native MCP. Pi: native skill (no MCP). Grok: MCP+skill; hooks via Claude compat. Codex/Gemini/Cursor: native adapters.","> Gaps? `prjct doctor --fix`. Only managed entries were touched."].join(`
|
|
8
|
+
`));else{if(o.done(y.line),o.info(le),o.info(`settings: ${t.settingsPath}`),n){o.info(`AGENTS.md: ${n.agentsMd.action}`);for(let e of n.ideRules)o.info(`adapter: ${e}`)}else o.info("project surface: skipped (not inside an initialized prjct project)");if(i){let e=i.skipped==="user-managed"?"user-managed MCP preserved":i.changed?"updated":"already ready";o.info(`Codex MCP: ${e}`),o.info(`Codex status line: ${i.statusLineChanged?"installed":"already configured"}`)}if(a&&(o.info(`Codex hooks: ${a.hooksWritten} new, ${a.alreadyPresent} present \u2192 ${a.hooksPath}`),o.info(`Codex features.hooks: ${a.featuresChanged?"enabled":"already on"}`)),r&&(o.info(`Gemini MCP: ${r.mcpChanged?"updated":"already ready"}`),o.info(`Gemini hooks: ${r.hooksWritten} new, ${r.alreadyPresent} present \u2192 ${r.settingsPath}`)),d&&o.info(`Cursor hooks: ${d.hooksWritten} new, ${d.alreadyPresent} present \u2192 ${d.hooksPath}`),v&&o.info(`Kimi config: ${v.changed?"updated":"already ready"}`),l&&o.info(`Kimi hooks: ${l.hooksWritten} new, ${l.alreadyPresent} present \u2192 ${l.configPath} (apply on next Kimi session or after /reload)`),c){let e=c.skipped==="user-managed"?"user-managed MCP preserved":c.changed?"updated":"already ready";o.info(`Grok MCP: ${e} \u2192 ${c.path}`)}u?.success&&o.info(`Grok skill: ${u.action??"ready"}${u.path?` \u2192 ${u.path}`:""}`),p?.success&&o.info(`Grok plugin: ${p.changed?"updated":"already ready"} \u2192 ${p.path}`),P&&o.info(`OpenCode MCP: ${P.changed?"updated":"already ready"} \u2192 ${P.path}`),k?.success&&o.info(`Pi skill: ${k.action??"ready"}${k.path?` \u2192 ${k.path}`:""}`),o.info(`Organic board: ${g.liveCount}/${g.detectedCount} live (${g.organicPct}%)`),M&&o.info(M),y.organicOk||o.info("Organic gaps remain \u2014 run `prjct doctor --fix`");try{let{planCleanup:e}=await import("./cleanup-installs-LD43GI4K.mjs"),x=e();if(x.removable.length>0){let ue=x.removable.map(O=>`${O.pm}@${O.version}`).join(", ");o.info(`Parallel installs detected (winner=${x.winner??"?"}): ${ue} \u2014 run \`prjct update\` to consolidate`)}}catch{}}return{success:!0,hooksWritten:t.hooksWritten,projectSurface:n?.agentsMd.action??"skipped",detectedRuntimes:s.length,organicPct:g.organicPct,liveRuntimes:g.liveCount,oneBreath:y.line,organicOk:y.organicOk,codexConfig:i?{path:i.path,changed:i.changed,skipped:i.skipped,statusLineChanged:i.statusLineChanged??!1}:null,codexHooks:a?{path:a.hooksPath,hooksWritten:a.hooksWritten,alreadyPresent:a.alreadyPresent,featuresChanged:a.featuresChanged}:null,geminiConfig:r?{path:r.settingsPath,mcpChanged:r.mcpChanged,hooksWritten:r.hooksWritten,alreadyPresent:r.alreadyPresent}:null,cursorHooks:d?{path:d.hooksPath,hooksWritten:d.hooksWritten,alreadyPresent:d.alreadyPresent}:null,kimiConfig:v?{path:v.path,changed:v.changed}:null,kimiHooks:l?{path:l.configPath,hooksWritten:l.hooksWritten,alreadyPresent:l.alreadyPresent,hooksPruned:l.hooksPruned}:null,grokConfig:c?{path:c.path,changed:c.changed,skipped:c.skipped}:null,grokSkill:u?.success?{action:u.action,path:u.path}:null,grokPlugin:p?.success?{path:p.path,changed:p.changed,files:p.files}:null}}catch(t){let m=H(t);return S(m)}}async uninstall(W=null,C=process.cwd(),$={}){try{let t=await J(),m=await Y().catch(()=>({hooksPath:"",hooksRemoved:0})),h=await te().catch(()=>({settingsPath:"",hooksRemoved:0,mcpRemoved:!1})),s=await ee().catch(()=>({hooksPath:"",hooksRemoved:0})),f=await q().catch(()=>({paths:[],serversRemoved:0})),n=await re().catch(()=>({configPath:"",hooksRemoved:0})),R=`removed ${t.hooksRemoved} Claude prjct hook(s)${m.hooksRemoved>0?`, ${m.hooksRemoved} Codex hook(s)`:""}${h.hooksRemoved>0||h.mcpRemoved?", Gemini cleaned":""}${s.hooksRemoved>0?`, ${s.hooksRemoved} Cursor hook(s)`:""}${f.serversRemoved>0?`, ${f.serversRemoved} Kimi MCP server(s)`:""}${n.hooksRemoved>0?`, ${n.hooksRemoved} Kimi hook(s)`:""}`;return $.md?console.log(["# prjct hooks removed","",`- Claude: ${t.hooksRemoved} (\`${t.settingsPath}\`)`,...m.hooksRemoved>0?[`- Codex: ${m.hooksRemoved} (\`${m.hooksPath}\`)`]:[],...h.hooksRemoved>0||h.mcpRemoved?[`- Gemini: ${h.hooksRemoved} hook(s)${h.mcpRemoved?", MCP removed":""} (\`${h.settingsPath}\`)`]:[],...s.hooksRemoved>0?[`- Cursor: ${s.hooksRemoved} (\`${s.hooksPath}\`)`]:[],...f.serversRemoved>0?[`- Kimi: ${f.serversRemoved} MCP server(s) (${f.paths.map(i=>`\`${i}\``).join(", ")})`]:[],...n.hooksRemoved>0?[`- Kimi: ${n.hooksRemoved} hook(s) (\`${n.configPath}\`)`]:[],""].join(`
|
|
9
9
|
`)):o.done(R),{success:!0,hooksRemoved:t.hooksRemoved,codexHooksRemoved:m.hooksRemoved,geminiHooksRemoved:h.hooksRemoved,geminiMcpRemoved:h.mcpRemoved,cursorHooksRemoved:s.hooksRemoved,kimiMcpServersRemoved:f.serversRemoved,kimiHooksRemoved:n.hooksRemoved}}catch(t){let m=H(t);return S(m)}}async status(W=null,C=process.cwd()){try{let $=await U();return{success:!0,installed:$.installed,expected:$.expected}}catch($){return F($)}}};export{ie as InstallCommands};
|