prjct-cli 3.92.0 → 3.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/bin/hook-chunks/{agent-switch-XMFUTNNV.mjs → agent-switch-2U2LOBGR.mjs} +1 -1
- package/dist/bin/hook-chunks/analysis-N4NYGIG3.mjs +42 -0
- package/dist/bin/hook-chunks/{auth-config-WNUARXTJ.mjs → auth-config-SP4PBALR.mjs} +1 -1
- package/dist/bin/hook-chunks/auto-flush-BN6L6QHO.mjs +8 -0
- package/dist/bin/hook-chunks/{auto-updater-EHRRMCYY.mjs → auto-updater-4TIXYSEX.mjs} +1 -1
- package/dist/bin/hook-chunks/capture-gate-FRF2G3IG.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-DGBDMUBL.mjs → chunk-27XFSCOE.mjs} +4 -4
- package/dist/bin/hook-chunks/chunk-2HB2JHQE.mjs +69 -0
- package/dist/bin/hook-chunks/{chunk-MAHTF6JG.mjs → chunk-3VWBNLBC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-V37VTXDW.mjs → chunk-4KVPAHFV.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-2HTDCLZD.mjs → chunk-4O4D6DV7.mjs} +2 -2
- package/dist/bin/hook-chunks/chunk-4SKJWNKE.mjs +11 -0
- package/dist/bin/hook-chunks/{chunk-3LG3ACQV.mjs → chunk-5EQLQ7GF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-HZIORCPO.mjs → chunk-66GE3IHX.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-MEQS4VPO.mjs → chunk-6RLCUGGG.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-BISPGBNN.mjs → chunk-6UH244CC.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-7GNWHWOO.mjs +26 -0
- package/dist/bin/hook-chunks/chunk-7JEKBJAP.mjs +9 -0
- package/dist/bin/hook-chunks/{chunk-LLQUB6YR.mjs → chunk-7O6OMD4X.mjs} +2 -2
- package/dist/bin/hook-chunks/chunk-7YT2FGO7.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-XHDNPEAN.mjs → chunk-AVRNHROK.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-AZHE4VOM.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-7OZDWT6C.mjs → chunk-AZYQFRPJ.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-BCAHWZH7.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-Q5I2UPD6.mjs → chunk-C3W2HLJT.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZX2KFQV5.mjs → chunk-D6IONKRA.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-DRGI5UHQ.mjs +10 -0
- package/dist/bin/hook-chunks/{chunk-7SI6X3Z7.mjs → chunk-EHEQOF6Z.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZX6BC2EB.mjs → chunk-EMTCZG5I.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZNQXFWSI.mjs → chunk-EQ5KNMLG.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-S4TB2OFJ.mjs → chunk-F4T7IAA7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ODWWIFSN.mjs → chunk-FEFP6JOL.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-2OU2MKNS.mjs → chunk-FX6VHIKB.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-2WPR5GFT.mjs → chunk-GFY4GY3Z.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-PSSR7LSW.mjs → chunk-H4CA3XZ6.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-HHIGNKDO.mjs +8 -0
- package/dist/bin/hook-chunks/chunk-HNEKXKOI.mjs +16 -0
- package/dist/bin/hook-chunks/{chunk-45I2C2UB.mjs → chunk-HRWXMF7P.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-AWD2AQVJ.mjs → chunk-IHECXD2M.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-IKIB42F7.mjs +31 -0
- package/dist/bin/hook-chunks/chunk-INXNK57E.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-WDGDFXSB.mjs → chunk-J6TAD3OZ.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-JAMSIKDE.mjs +9 -0
- package/dist/bin/hook-chunks/{chunk-CREPUNOS.mjs → chunk-JCYXFHQZ.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-JMCMTX6U.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-D7TRY3CO.mjs → chunk-JPSJWCFD.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-QDQ7DTDV.mjs → chunk-JR542RI2.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-JUZ5LNDI.mjs +14 -0
- package/dist/bin/hook-chunks/{chunk-HDHVBB6Q.mjs → chunk-KG7Z6OMK.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-OGOCHZ3S.mjs → chunk-KOCROTRM.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-75UJIVMO.mjs → chunk-KOGZCFBC.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-ZTZTVBAZ.mjs → chunk-LNB2GLYI.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-M5E2YOZ4.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-BZ5UR7G3.mjs → chunk-MHQTGU45.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-OL6ITIAZ.mjs → chunk-MI3JEFON.mjs} +2 -2
- package/dist/bin/hook-chunks/chunk-NBKEOLDH.mjs +18 -0
- package/dist/bin/hook-chunks/{chunk-EM6ZDJAK.mjs → chunk-NCOOKPXX.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-NHIWYDQD.mjs +8 -0
- package/dist/bin/hook-chunks/chunk-NUJASVHN.mjs +18 -0
- package/dist/bin/hook-chunks/chunk-NWIQNII6.mjs +11 -0
- package/dist/bin/hook-chunks/{chunk-OP467HW6.mjs → chunk-NWZEBCTC.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-6EWGHM32.mjs → chunk-OENWCYLF.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-3JUE6MNF.mjs → chunk-OIU4Y5WL.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-OUAS3LZ3.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-X5RDLFPM.mjs → chunk-OWOPA2O7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NLG2EW6M.mjs → chunk-OZJ6UKKP.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-PUHX3ECX.mjs +11 -0
- package/dist/bin/hook-chunks/chunk-Q3EYM4GJ.mjs +19 -0
- package/dist/bin/hook-chunks/{chunk-I5BDN25C.mjs → chunk-Q3Z53QTH.mjs} +3 -3
- package/dist/bin/hook-chunks/{chunk-ZZ65CN5F.mjs → chunk-QPRNRLG6.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-QWQFF2UG.mjs +10 -0
- package/dist/bin/hook-chunks/{chunk-DMXFGLZE.mjs → chunk-QYEASMFV.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-R4ILCXKE.mjs +8 -0
- package/dist/bin/hook-chunks/{chunk-4WHS7CO7.mjs → chunk-S7HQQILD.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-SDUS2AT7.mjs +8 -0
- package/dist/bin/hook-chunks/chunk-T2FCU3ZS.mjs +12 -0
- package/dist/bin/hook-chunks/{chunk-A5RNWWTH.mjs → chunk-TFCLMTJ5.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-AUUWQH3S.mjs → chunk-TG5CQJD5.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-CQUG6SO2.mjs → chunk-TKWAFYF7.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-YUOTOCKK.mjs → chunk-TYEAIX3X.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-AOPJ4Z6O.mjs → chunk-UA4Z5TGG.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-UH4MD3F3.mjs +9 -0
- package/dist/bin/hook-chunks/chunk-V2BSS7HW.mjs +36 -0
- package/dist/bin/hook-chunks/{chunk-MQVVNX63.mjs → chunk-VWOIUTAX.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-NLDL3N6R.mjs → chunk-X2AGNDGD.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-5PEHJEFE.mjs → chunk-XE4MJNBQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-2NMSEZTQ.mjs → chunk-XFQ7NNLN.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-SOPRYWUY.mjs → chunk-XS45K7ZQ.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-Y3J7UUMR.mjs +47 -0
- package/dist/bin/hook-chunks/{chunk-HIFIDMH5.mjs → chunk-Y4DUB7UN.mjs} +2 -2
- package/dist/bin/hook-chunks/{chunk-6IKHMK2U.mjs → chunk-YQ55MHKL.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-DVBBB5BS.mjs → chunk-YUKGWWL7.mjs} +1 -1
- package/dist/bin/hook-chunks/chunk-ZJXH76Q5.mjs +11 -0
- package/dist/bin/hook-chunks/{chunk-TBM7736J.mjs → chunk-ZMKTR2IO.mjs} +1 -1
- package/dist/bin/hook-chunks/{chunk-54LH63LM.mjs → chunk-ZMLA5SKR.mjs} +1 -0
- package/dist/bin/hook-chunks/client-ERZ5CM3D.mjs +10 -0
- package/dist/bin/hook-chunks/code-graph-cloud-4GRWQSUK.mjs +8 -0
- package/dist/bin/hook-chunks/{codex-skill-2N6656SR.mjs → codex-skill-6DYQMPDJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{command-installer-XSKQS3IS.mjs → command-installer-MF4KUM3X.mjs} +1 -1
- package/dist/bin/hook-chunks/{config-manager-YZANYLPV.mjs → config-manager-2VZPHUDG.mjs} +1 -1
- package/dist/bin/hook-chunks/{content-bound-stamp-72EQVZLP.mjs → content-bound-stamp-OG2KKN3L.mjs} +1 -1
- package/dist/bin/hook-chunks/{context7-service-4C6VNJUS.mjs → context7-service-V7CIDF3Q.mjs} +1 -1
- package/dist/bin/hook-chunks/custom-workflow-storage-UOBQXY42.mjs +8 -0
- package/dist/bin/hook-chunks/cwd-changed-J6O46KS7.mjs +8 -0
- package/dist/bin/hook-chunks/{database-SLDTQXWG.mjs → database-XYKQF3KR.mjs} +1 -1
- package/dist/bin/hook-chunks/{delivery-geometry-VHCURJ7E.mjs → delivery-geometry-WYOEMKMO.mjs} +1 -1
- package/dist/bin/hook-chunks/detect-changes-DFRJOOB3.mjs +19 -0
- package/dist/bin/hook-chunks/{detection-MEYHME4X.mjs → detection-QRVSNMKL.mjs} +1 -1
- package/dist/bin/hook-chunks/developer-evolution-SLC34HUU.mjs +12 -0
- package/dist/bin/hook-chunks/distill-U2LJGUG3.mjs +8 -0
- package/dist/bin/hook-chunks/{editors-config-3N6VREZR.mjs → editors-config-6XFYIOE6.mjs} +1 -1
- package/dist/bin/hook-chunks/enriched-recall-X6RDNNIE.mjs +8 -0
- package/dist/bin/hook-chunks/exec-2P5VOBHM.mjs +8 -0
- package/dist/bin/hook-chunks/format-ALUX4QSI.mjs +8 -0
- package/dist/bin/hook-chunks/{git-helpers-6JLP2OJZ.mjs → git-helpers-HELM6DXJ.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-ledger-storage-UKROWRVA.mjs → judgment-ledger-storage-SCGU3URM.mjs} +1 -1
- package/dist/bin/hook-chunks/{judgment-orchestrator-UFGNBTEK.mjs → judgment-orchestrator-BYPG65RS.mjs} +1 -1
- package/dist/bin/hook-chunks/judgment-receipt-GWSSCLAB.mjs +8 -0
- package/dist/bin/hook-chunks/land-cue-MMISX2BI.mjs +9 -0
- package/dist/bin/hook-chunks/land-synthesis-WG5JAS7B.mjs +8 -0
- package/dist/bin/hook-chunks/legacy-crew-sweep-2WSO5KEB.mjs +24 -0
- package/dist/bin/hook-chunks/memory-index-QK5QJOFJ.mjs +8 -0
- package/dist/bin/hook-chunks/notification-MPVWVV52.mjs +8 -0
- package/dist/bin/hook-chunks/{pack-integrity-BKLDNYE5.mjs → pack-integrity-XRYOROK5.mjs} +1 -1
- package/dist/bin/hook-chunks/{pack-manager-ASWLKYGP.mjs → pack-manager-WWGQNJDQ.mjs} +1 -1
- package/dist/bin/hook-chunks/{package-legitimacy-HXC4L73B.mjs → package-legitimacy-MIR3VZSF.mjs} +1 -1
- package/dist/bin/hook-chunks/{path-manager-F2HE2GGK.mjs → path-manager-ZR5RAKTK.mjs} +1 -1
- package/dist/bin/hook-chunks/{planning-QBSY272P.mjs → planning-S55KBPN2.mjs} +2 -2
- package/dist/bin/hook-chunks/post-edit-QMHSZHDN.mjs +8 -0
- package/dist/bin/hook-chunks/{pr-convention-7UGI7TFA.mjs → pr-convention-5NPXQJ2R.mjs} +1 -1
- package/dist/bin/hook-chunks/pre-bash-RAM6L3G4.mjs +11 -0
- package/dist/bin/hook-chunks/pre-commit-736ZLMDL.mjs +8 -0
- package/dist/bin/hook-chunks/pre-edit-GZ4QJ2MU.mjs +11 -0
- package/dist/bin/hook-chunks/pre-package-LCIAWWGK.mjs +8 -0
- package/dist/bin/hook-chunks/pre-search-J5EOFMYN.mjs +9 -0
- package/dist/bin/hook-chunks/pre-secrets-TSUMTXHH.mjs +8 -0
- package/dist/bin/hook-chunks/{precision-judgment-WPTCNTGV.mjs → precision-judgment-TT3DRNAX.mjs} +1 -1
- package/dist/bin/hook-chunks/{prjct-md-WE6WFVL3.mjs → prjct-md-T2DG236Y.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-agent-surfaces-A6HGZPAL.mjs → project-agent-surfaces-VRY22I66.mjs} +1 -1
- package/dist/bin/hook-chunks/{project-file-inventory-ZAPKPKY6.mjs → project-file-inventory-5DEN5VLF.mjs} +1 -1
- package/dist/bin/hook-chunks/project-memory-KKEMTEMP.mjs +8 -0
- package/dist/bin/hook-chunks/project-style-evolution-7MAUSED2.mjs +8 -0
- package/dist/bin/hook-chunks/{prompt-JIOMJCGV.mjs → prompt-DVF6V2X2.mjs} +7 -7
- package/dist/bin/hook-chunks/{velocity-storage-UPW6TLK6.mjs → publish-helper-G54XQV5K.mjs} +1 -1
- package/dist/bin/hook-chunks/purge-MC5LFSAO.mjs +8 -0
- package/dist/bin/hook-chunks/retention-LWETHQX3.mjs +8 -0
- package/dist/bin/hook-chunks/sdd-5UCVX43H.mjs +10 -0
- package/dist/bin/hook-chunks/session-continuity-RKNAJJHR.mjs +11 -0
- package/dist/bin/hook-chunks/session-start-MFMFKUPK.mjs +8 -0
- package/dist/bin/hook-chunks/setup-WQRJ6TQL.mjs +141 -0
- package/dist/bin/hook-chunks/{shipping-LVTFVSWJ.mjs → shipping-5D5LTJ3P.mjs} +5 -5
- package/dist/bin/hook-chunks/{skill-index-OOVAXHYJ.mjs → skill-index-RAVJMC4P.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-context-inference-U6BGGB2Q.mjs → spec-context-inference-7DDSTRTV.mjs} +1 -1
- package/dist/bin/hook-chunks/{spec-service-2DVDFOR7.mjs → spec-service-LAO5Z2M5.mjs} +2 -2
- package/dist/bin/hook-chunks/spec-task-breakdown-K3GMQKGH.mjs +8 -0
- package/dist/bin/hook-chunks/state-storage-EIFGUO7X.mjs +8 -0
- package/dist/bin/hook-chunks/stop-RYLI4FGF.mjs +16 -0
- package/dist/bin/hook-chunks/subagent-start-CCUPSANT.mjs +8 -0
- package/dist/bin/hook-chunks/subagent-stop-RBD2OILE.mjs +8 -0
- package/dist/bin/hook-chunks/{surface-attribution-BDKFYUOJ.mjs → surface-attribution-K37N2NK7.mjs} +1 -1
- package/dist/bin/hook-chunks/symbol-graph-BKQIMFRG.mjs +8 -0
- package/dist/bin/hook-chunks/{sync-analyzer-FKC57RTV.mjs → sync-analyzer-6U5GHYV3.mjs} +1 -1
- package/dist/bin/hook-chunks/{sync-client-DJWOG2ZQ.mjs → sync-client-EGBMWF3J.mjs} +1 -1
- package/dist/bin/hook-chunks/{sync-cursor-storage-2VKG757H.mjs → sync-cursor-storage-E3LMZISA.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-orchestration-MLOCR7GA.mjs → task-orchestration-2ZYE5M6J.mjs} +1 -1
- package/dist/bin/hook-chunks/{task-overview-6ZQKJGSH.mjs → task-overview-ITY5OSHX.mjs} +1 -1
- package/dist/bin/hook-chunks/task-service-XREJLWEF.mjs +8 -0
- package/dist/bin/hook-chunks/tdd-7S55S5C3.mjs +10 -0
- package/dist/bin/hook-chunks/{template-loader-BFTLPG2W.mjs → template-loader-SCM4C2A3.mjs} +1 -1
- package/dist/bin/hook-chunks/{trust-boundary-ERMDF2C5.mjs → trust-boundary-EX65SUYR.mjs} +1 -1
- package/dist/bin/hook-chunks/{usefulness-253CZLNY.mjs → usefulness-SCH5ARGV.mjs} +1 -1
- package/dist/bin/hook-chunks/{vault-retire-notice-GRT3QRLZ.mjs → vault-retire-notice-HT756AND.mjs} +1 -1
- package/dist/bin/hook-chunks/velocity-storage-47CF3XWZ.mjs +8 -0
- package/dist/bin/hook-chunks/weak-model-mode-FLCEQ2BV.mjs +8 -0
- package/dist/bin/hook-chunks/work-graph-JQHVVXIZ.mjs +49 -0
- package/dist/bin/hook-chunks/work-scope-CDLSZ4U5.mjs +8 -0
- package/dist/bin/hook-chunks/{workspace-occupancy-UVIRHY5Z.mjs → workspace-occupancy-UUW4UGGB.mjs} +1 -1
- package/dist/bin/hook-chunks/{worktree-service-XGRN5TTE.mjs → worktree-service-AS7JVBK5.mjs} +1 -1
- package/dist/bin/prjct-core.mjs +736 -746
- package/dist/bin/prjct-hooks.mjs +2 -2
- package/dist/daemon/entry.mjs +625 -632
- package/dist/mcp/server.mjs +323 -323
- package/package.json +1 -1
- package/dist/bin/hook-chunks/analysis-PFGKPYWQ.mjs +0 -42
- package/dist/bin/hook-chunks/auto-flush-QZ3YIQP6.mjs +0 -8
- package/dist/bin/hook-chunks/capture-gate-2FXYVHNF.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-3X7TBM4A.mjs +0 -19
- package/dist/bin/hook-chunks/chunk-4DDCWMI6.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-4KY2EHXS.mjs +0 -9
- package/dist/bin/hook-chunks/chunk-7JE6VTLN.mjs +0 -71
- package/dist/bin/hook-chunks/chunk-AKIN5WSQ.mjs +0 -9
- package/dist/bin/hook-chunks/chunk-CDCCAU22.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-CPHUFXD2.mjs +0 -14
- package/dist/bin/hook-chunks/chunk-CQHPIYNM.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-CTWZQ7YI.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-FGQZ62ZP.mjs +0 -47
- package/dist/bin/hook-chunks/chunk-GELCZWKW.mjs +0 -11
- package/dist/bin/hook-chunks/chunk-HJ4HEI45.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-HX42HFII.mjs +0 -18
- package/dist/bin/hook-chunks/chunk-J6JZ4PQA.mjs +0 -18
- package/dist/bin/hook-chunks/chunk-KB3P6XTL.mjs +0 -38
- package/dist/bin/hook-chunks/chunk-L4COZ7ZH.mjs +0 -13
- package/dist/bin/hook-chunks/chunk-LT5WSSQO.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-N5WOHG36.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-NJAMZSHM.mjs +0 -26
- package/dist/bin/hook-chunks/chunk-NWY5M34K.mjs +0 -12
- package/dist/bin/hook-chunks/chunk-OLKNK2HB.mjs +0 -8
- package/dist/bin/hook-chunks/chunk-SVZHJZ5T.mjs +0 -9
- package/dist/bin/hook-chunks/chunk-SY2FRLJF.mjs +0 -31
- package/dist/bin/hook-chunks/chunk-WSFHSXBZ.mjs +0 -9
- package/dist/bin/hook-chunks/chunk-Y7CKMFNW.mjs +0 -16
- package/dist/bin/hook-chunks/chunk-YJMWY4Y6.mjs +0 -8
- package/dist/bin/hook-chunks/client-SKFMAUI5.mjs +0 -10
- package/dist/bin/hook-chunks/code-graph-cloud-65GCWNII.mjs +0 -8
- package/dist/bin/hook-chunks/custom-workflow-storage-M77INP6Z.mjs +0 -8
- package/dist/bin/hook-chunks/cwd-changed-NJ6RYVOJ.mjs +0 -8
- package/dist/bin/hook-chunks/detect-changes-6N4DCWXQ.mjs +0 -17
- package/dist/bin/hook-chunks/developer-evolution-R5BXQH6G.mjs +0 -12
- package/dist/bin/hook-chunks/distill-IABVRW2U.mjs +0 -8
- package/dist/bin/hook-chunks/enriched-recall-NDASPZXZ.mjs +0 -8
- package/dist/bin/hook-chunks/exec-I7XE7NMD.mjs +0 -8
- package/dist/bin/hook-chunks/format-NIBVWBGR.mjs +0 -8
- package/dist/bin/hook-chunks/judgment-receipt-HTNEOJLT.mjs +0 -8
- package/dist/bin/hook-chunks/land-cue-FNLP4IAB.mjs +0 -9
- package/dist/bin/hook-chunks/land-synthesis-HBPIXP5S.mjs +0 -8
- package/dist/bin/hook-chunks/legacy-crew-sweep-2MLYPNQR.mjs +0 -24
- package/dist/bin/hook-chunks/memory-index-MQCHZFUE.mjs +0 -10
- package/dist/bin/hook-chunks/notification-VQM2AMNS.mjs +0 -8
- package/dist/bin/hook-chunks/post-edit-VTLDHWI3.mjs +0 -8
- package/dist/bin/hook-chunks/pre-bash-JR6257XO.mjs +0 -11
- package/dist/bin/hook-chunks/pre-commit-BYUFDN2N.mjs +0 -8
- package/dist/bin/hook-chunks/pre-edit-MHROFDS3.mjs +0 -11
- package/dist/bin/hook-chunks/pre-package-P7CLTJJV.mjs +0 -8
- package/dist/bin/hook-chunks/pre-search-BCQHPE46.mjs +0 -9
- package/dist/bin/hook-chunks/pre-secrets-IE5NX5X5.mjs +0 -8
- package/dist/bin/hook-chunks/project-memory-ON54KZEM.mjs +0 -8
- package/dist/bin/hook-chunks/project-style-evolution-T27I5N65.mjs +0 -8
- package/dist/bin/hook-chunks/publish-helper-I37V4L7U.mjs +0 -8
- package/dist/bin/hook-chunks/purge-QQ6XILZD.mjs +0 -8
- package/dist/bin/hook-chunks/retention-E7WGFL47.mjs +0 -8
- package/dist/bin/hook-chunks/sdd-PV6KWXE4.mjs +0 -10
- package/dist/bin/hook-chunks/session-continuity-5CLT5YBL.mjs +0 -11
- package/dist/bin/hook-chunks/session-start-ATYLOUKB.mjs +0 -8
- package/dist/bin/hook-chunks/setup-VL7YXVE5.mjs +0 -142
- package/dist/bin/hook-chunks/spec-task-breakdown-MPNRRTNZ.mjs +0 -8
- package/dist/bin/hook-chunks/state-storage-KNGP2CQV.mjs +0 -8
- package/dist/bin/hook-chunks/stop-GBUGB5OE.mjs +0 -17
- package/dist/bin/hook-chunks/subagent-start-HURF2GI7.mjs +0 -8
- package/dist/bin/hook-chunks/subagent-stop-WJECHEXI.mjs +0 -8
- package/dist/bin/hook-chunks/symbol-graph-LZM4RZXZ.mjs +0 -8
- package/dist/bin/hook-chunks/task-service-BM2JQXMS.mjs +0 -8
- package/dist/bin/hook-chunks/tdd-UJDJUJ3E.mjs +0 -10
- package/dist/bin/hook-chunks/weak-model-mode-GLXXHG32.mjs +0 -8
- package/dist/bin/hook-chunks/work-graph-QJGNBVIP.mjs +0 -49
- package/dist/bin/hook-chunks/work-scope-VTF6SKLY.mjs +0 -8
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as L}from"./chunk-4KY2EHXS.mjs";import"./chunk-54LH63LM.mjs";import{c as v}from"./chunk-ZZ65CN5F.mjs";import{d as b}from"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import{a}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import{d as g,g as D}from"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import{b as M,e as k}from"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import{b as h}from"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";D();k();var E="memory:l0-index",$=4e3,R=1440*60*1e3,j=3,A=4,T=2,S=["decision","gotcha","anti-pattern","learning","fact","feedback"];function F(t){try{let r=C(t);return r?(g.setDoc(t.projectId,E,r),r):null}catch{return null}}l(F,"buildAndStoreMemoryL0Index");function C(t){let r=a.allEntriesForIndex(t.projectId).filter(e=>h(e)||e.type==="inbox"||e.type==="improvement-signal");if(r.length===0)return null;let n={};for(let e of r)n[e.type]=(n[e.type]??0)+1;if(r.filter(e=>e.type!=="improvement-signal"&&h(e)).length===0&&(n.inbox??0)===0)return null;let o=["## What this project already knows","","> Carried across sessions and model updates \u2014 this survived even if your conversation context did not. Apply these; do not re-derive from source.","",`_L0 index \xB7 live=${r.length} \xB7 pull L2: \`prjct search\` / \`prjct context memory <topic>\` / \`prjct guard <file>\`_`,""],m=new Set;try{let e=a.recall(t.projectId,{types:["feedback","improvement-signal"],limit:40,dedupeByKey:!1}),d=L(e,A);if(d.length>0){o.push("**How this developer works (act as them):**");for(let u of d){let w=u.rule.length>140?`${u.rule.slice(0,139)}\u2026`:u.rule;o.push(`- ${w} \`${u.sourceId}\``)}o.push("")}}catch{}let f=[{title:"Traps to avoid",types:["gotcha","anti-pattern"],suppressMiss:!0},{title:"Decisions in force",types:["decision"],suppressMiss:!0},{title:"Learnings",types:["learning"]},{title:"Facts",types:["fact"]}];for(let e of f){let d=v.rerank(t.projectId,a.recall(t.projectId,{types:e.types,limit:j*4})).slice(0,j);if(d.length!==0){o.push(`**${e.title}:**`);for(let u of d)o.push(`- ${I(u)}`),e.suppressMiss&&m.add(u.id);o.push("")}}let p=P(t.projectId,m);p&&o.push("**Keeps being missed:**",`- ${I(p.entry)} \u2014 flagged relevant-but-unused ${p.count}\xD7. Apply it or supersede it.`,"");let c=r.filter(e=>e.type==="inbox").slice(0,3),i=n.inbox??0;if(i>0){o.push(`**Inbox (${i}):**`);for(let e of c)o.push(`- ${I(e)}`);i>c.length&&o.push(`- \u2026 +${i-c.length} more`),o.push("",'> Close resolved: `prjct close <id> --reason "\u2026"`. Forget noise: `prjct forget <id>`.',"")}let x=S.filter(e=>(n[e]??0)>0).map(e=>`${e}=${n[e]}`).concat(Object.keys(n).filter(e=>!S.includes(e)&&(n[e]??0)>0).sort().slice(0,8).map(e=>`${e}=${n[e]}`));x.length>0&&o.push(`_Counts: ${x.join(" \xB7 ")}_`,""),o.push("> Resolve any `mem_id` with `prjct search <id>`. Full developer model: MCP `prjct_developer`. Consolidate: `prjct dream`. Never stuff L2 into L0.");let y=o.join(`
|
|
9
|
-
`),_=y.length>$?`${y.slice(0,$-20).trimEnd()}
|
|
10
|
-
\u2026(truncated)`:y;return{version:1,builtAt:M(),projectId:t.projectId,live:r.length,byType:n,markdown:_,source:t.source??"manual"}}l(C,"buildMemoryL0Index");function N(t){try{let r=g.getDoc(t,E);return!r||r.version!==1||!r.markdown?null:r}catch{return null}}l(N,"loadMemoryL0Index");function B(t,r=Date.now()){if(!t?.builtAt)return!1;let n=Date.parse(t.builtAt);return Number.isFinite(n)?r-n<=R:!1}l(B,"isMemoryL0IndexFresh");function W(t,r={}){try{let n=N(t),s=(!n||!B(n))&&r.rebuildIfStale!==!1?F({projectId:t,source:"session-start"}):n;return s?.markdown?.trim()?s.markdown.trim():null}catch{return null}}l(W,"memoryL0IndexForSession");function I(t){let r=b(t),n=(t.content??"").replace(/\s+/g," ").trim();if(n.length<=r.length+8)return`${r} \`${t.id}\``;let s=n.slice(r.length).replace(/^[\s.:;—-]+/,"").trim();if(s.length<20)return`${r} \`${t.id}\``;let o=s.length>80?`${s.slice(0,79)}\u2026`:s;return`${r} \u2014 ${o} \`${t.id}\``}l(I,"indexLine");function P(t,r){try{let n=a.recall(t,{types:["improvement-signal"],tags:{kind:"skill-miss"},limit:50,dedupeByKey:!1}),s=new Map;for(let c of n){let i=c.tags?.relates;i&&s.set(i,(s.get(i)??0)+1)}let o=[...s].sort((c,i)=>i[1]-c[1])[0];if(!o||o[1]<T||r.has(o[0]))return null;let[m,f]=o,p=a.getById(t,m);return p?{entry:p,count:f}:null}catch{return null}}l(P,"findRepeatMissedEntry");export{R as L0_INDEX_FRESH_MS,$ as L0_INDEX_MAX_CHARS,E as MEMORY_L0_INDEX_KEY,F as buildAndStoreMemoryL0Index,C as buildMemoryL0Index,B as isMemoryL0IndexFresh,N as loadMemoryL0Index,W as memoryL0IndexForSession};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b as f}from"./chunk-X5RDLFPM.mjs";import{c}from"./chunk-L4COZ7ZH.mjs";import{a as e}from"./chunk-ZX2KFQV5.mjs";import"./chunk-CREPUNOS.mjs";import"./chunk-QDQ7DTDV.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-BISPGBNN.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import{b as n}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as t}from"./chunk-E66B27AL.mjs";function l(u=process.cwd(),p){return c({event:"Notification",projectPath:u,afterEmit:t(async(d,i)=>{let o=await n.readConfig(i).catch(()=>null);if(!o?.projectId||a(o)==="off")return;let s=await e(o.projectId,i).then(r=>r.current?`Waiting \u2014 active: ${r.current.description}`:"Waiting for your input").catch(()=>"Waiting for your input");await f("prjct \u2014 Claude needs you",s)},"afterEmit")},p)}t(l,"runNotificationHook");export{l as runNotificationHook};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{c as a}from"./chunk-L4COZ7ZH.mjs";import"./chunk-GAOQHD5S.mjs";import{a as e}from"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import{b as n}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";function u(f=process.cwd(),c){return a({event:"PostToolUse",projectPath:f,afterEmit:o(async(t,r)=>{let i=t.tool_input?.file_path;if(!(!i||!(await n.readConfig(r))?.projectId))try{await e.log(r,"post_edit",{file:i,tool:t.tool_name??"unknown"})}catch{}},"afterEmit")},c)}o(u,"runPostEditHook");export{u as runPostEditHook};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as d}from"./chunk-XHDNPEAN.mjs";import{a as k}from"./chunk-4WHS7CO7.mjs";import{c as l}from"./chunk-MXHX44WF.mjs";import{a as m,c as p}from"./chunk-I5BDN25C.mjs";import{c as u}from"./chunk-L4COZ7ZH.mjs";import"./chunk-KEJ5RMAI.mjs";import"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-SOPRYWUY.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-V37VTXDW.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as r}from"./chunk-E66B27AL.mjs";var s=new WeakMap;function f(e){let o=e.tool_input??e.toolInput;return o&&typeof o.command=="string"?o.command:typeof e.command=="string"?e.command:o&&typeof o.command_line=="string"?o.command_line:""}r(f,"extractCommand");function y(e){let o=f(e),t=o?l(o):null;return t?{deny:t}:null}r(y,"decideBroadProcessTermination");function g(e,o){let t=o,n=s.get(t);if(n)return n;let a=d(e,o);return s.set(t,a),a}r(g,"evaluatePackageOnce");function x(e=process.cwd(),o){return u({event:"PreToolUse",projectPath:e,decide:r(async(t,n)=>{try{let a=k(t);if(a)return a;let c=y(t);if(c)return c;let i=await g(n,t);return i?.strict?{deny:i.message}:null}catch{return null}},"decide"),build:r(async(t,n)=>{try{let[a,c]=await Promise.all([p(t)?m(n):null,g(n,t)]),i=c&&!c.strict?`# prjct: package legitimacy (advisory)
|
|
9
|
-
${c.message}`:null;return[a,i].filter(Boolean).join(`
|
|
10
|
-
|
|
11
|
-
`)||null}catch{return null}finally{s.delete(t)}},"build")},o)}r(x,"runPreBashHook");export{y as decideBroadProcessTermination,x as runPreBashHook};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c}from"./chunk-I5BDN25C.mjs";import"./chunk-L4COZ7ZH.mjs";import"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as buildPreCommitContext,c as isCommitInput,b as runPreCommitHook};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as R}from"./chunk-4WHS7CO7.mjs";import{a as E}from"./chunk-5WAONIPX.mjs";import{b as m,c as A}from"./chunk-L4COZ7ZH.mjs";import{a as x}from"./chunk-MAHTF6JG.mjs";import{a as b,b as M,c as T,d as C,e as g,f as k,g as p,i as w}from"./chunk-TBM7736J.mjs";import"./chunk-ZZ65CN5F.mjs";import{b as I,c as S,d as $}from"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import{a as L}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import{b as v}from"./chunk-BISPGBNN.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-SOPRYWUY.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-V37VTXDW.mjs";import{b as h}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as i}from"./chunk-E66B27AL.mjs";var O=new Set(["decision","gotcha","fact","spec","identity","voice","glossary"]);function N(r){return O.has(r)}i(N,"isSotBindType");function V(r,o){let n=new Set(o??[]);return r.filter(e=>N(e.type)&&e.confidence==="high"&&e.id&&!n.has(e.id))}i(V,"filterSotCandidates");function H(r){let o=V(r.candidates,r.overriddenIds);if(o.length===0)return{action:"none",reason:"no-sot",memoryIds:[],message:""};let n=r.harnessLevel??null,e=r.fileLabel?` on \`${r.fileLabel}\``:"",t=o[0],a=o.map(s=>s.id),l='To supersede: `prjct remember decision "\u2026why\u2026" --tags supersedes:'+t.id+'`. To lift for this memory: `prjct remember feedback "override conflict '+t.id+': <why>" --tags conflict:override,memory:'+t.id+"`.";if(n==="H2"||n==="H3"){let s=`SoT hard-bind (${n})${e}: must not contradict [${t.type}] ${B(t.content,80)} (\`${t.id}\`)`;return{action:"deny",reason:"h2-sot-deny",memoryIds:a,message:[`\u26D4 prjct SoT bind: ${s}`,`Memories: ${a.join(", ")}`,l,"H2+ work is bound to living Source-of-Truth. Supersede or override before Edit|Write."].join(" ")}}return n==="H1"?{action:"warn",reason:"h1-sot-warn",memoryIds:a,message:["# prjct: SoT soft-bind (H1)","",`High-confidence SoT on this file${e}:`,...o.slice(0,3).map(s=>`- **[${s.type}]** ${B(s.content,100)} \`${s.id}\``),"",l,"","> H2+ would hard-block. On H1 this is advisory \u2014 supersede if intentional."].join(`
|
|
9
|
-
`)}:{action:"none",reason:"none",memoryIds:a,message:""}}i(H,"sotBindVerdict");function B(r,o){let n=r.replace(/\s+/g," ").trim();return n.length>o?`${n.slice(0,o-1)}\u2026`:n}i(B,"truncate");function F(r,o){if(o.length===0)return null;let n=[`# prjct: heads-up before editing \`${r}\``,"",`${o.length} preventive trap(s) recorded against this file:`,""];for(let e of o)n.push(`- **[${e.type}]** ${e.title} \`${e.id}\``);return n.push(""),n.push("> Dynasty trap-before-edit: surface is mandatory. Apply if it still holds; supersede if not."),n.join(`
|
|
10
|
-
`)}i(F,"formatTrapSurfaceMessage");var y=1200,_=new Map;function D(r,o){let n=`${r}\0${o}`,e=_.get(n);if(e)return e;let t=(()=>{try{return L.recallForFile(r,o,M,{preventiveOnly:!0})}catch{return[]}})();return _.set(n,t),t}i(D,"recallPreventiveOnce");function P(){_.clear()}i(P,"clearPreventiveCache");function U(r,o){let n=F(o,r.map(t=>({id:t.id,type:I(t),title:`${$(t)} \u2014 ${S(t.content)}`})));if(n)return m(n,y);let e=[`# prjct: heads-up before editing \`${o}\``,""];e.push(`${r.length} preventive memory entr${r.length===1?"y":"ies"} recorded against this file:`),e.push("");for(let t of r)e.push(`- **[${I(t)}] ${$(t)}** \u2014 ${S(t.content)} \`${t.id}\``);return e.push(""),e.push("> Nudge, not block. Apply if it still holds; proceed if not."),m(e.join(`
|
|
11
|
-
`),y)}i(U,"headsUpMessage");async function W(r,o){let n=Date.now(),e=await h.readConfig(r);if(!e?.projectId)return null;let t=D(e.projectId,o);if(p(n)||t.length===0)return null;x(e.projectId,r,t.map(f=>f.id));let a=w(e),l=C(e.projectId),s=k(t),u=o.split("/").pop()??o,d=T({mode:a,candidates:s,overriddenIds:l,fileLabel:u});if(p(n))return null;try{let f=await v.getCurrentTask(e.projectId),c=H({harnessLevel:f?.harness?.level??null,candidates:s,overriddenIds:l,fileLabel:u});if(c.action==="warn"&&c.message)return m(c.message,y)}catch{}return d.action==="warn"&&d.message?(g(r,e.projectId,"warn",d.memoryIds,d.reason),m(d.message,y)):a==="off"||d.action==="none"||t.length>0?U(t,u):null}i(W,"buildPreEditContext");async function G(r,o){let n=Date.now();try{let e=await h.readConfig(r);if(!e?.projectId)return null;let t=await v.getCurrentTask(e.projectId);if(e.maxTurnsPerCycle){let j=E(e,t);if(j.stopped)return{deny:j.message}}if(!o||p(n,b))return null;let a=D(e.projectId,o);if(a.length===0||p(n,b))return null;let l=C(e.projectId),s=o.split("/").pop()??o,u=k(a),d=H({harnessLevel:t?.harness?.level??null,candidates:u,overriddenIds:l,fileLabel:s});if(d.action==="deny"&&d.message)return g(r,e.projectId,"deny",d.memoryIds,d.reason),{deny:d.message};let f=w(e);if(f!=="strict")return null;let c=T({mode:f,candidates:u,overriddenIds:l,fileLabel:s});return c.action==="deny"&&c.message?(g(r,e.projectId,"deny",c.memoryIds,c.reason),{deny:c.message}):null}catch{return null}}i(G,"decideHardStop");function ce(r=process.cwd(),o){return A({event:"PreToolUse",projectPath:r,decide:i(async(n,e)=>{P();let t=R(n);return t||G(e,n.tool_input?.file_path?.trim())},"decide"),build:i(async(n,e)=>{try{let t=n.tool_input?.file_path?.trim();return t?W(e,t):null}finally{P()}},"build")},o)}i(ce,"runPreEditHook");export{ce as runPreEditHook};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b}from"./chunk-XHDNPEAN.mjs";import"./chunk-L4COZ7ZH.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-SOPRYWUY.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-V37VTXDW.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as evaluatePrePackageInput,b as runPrePackageHook};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{b as g,c as d}from"./chunk-L4COZ7ZH.mjs";import{e as f,h as p}from"./chunk-NJAMZSHM.mjs";import"./chunk-GAOQHD5S.mjs";import{b as u}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";var _=900,h=80,b=8;function m(e){let o=e.tool_input?.pattern??e.tool_input?.query??e.tool_input?.glob??"";if(!o||typeof o!="string")return null;let t=o.match(/[A-Za-z_][A-Za-z0-9_]{2,}/g);if(!t||t.length===0)return null;t.sort((n,s)=>s.length-n.length);let r=new Set(["the","and","for","from","import","export","function","class","const","type","interface","return","async","await","true","false","null","undefined","test","describe","src","core","node","modules"]);for(let n of t)if(!r.has(n.toLowerCase()))return n;return t[0]??null}l(m,"extractToken");async function k(e,o){let t=Date.now();try{let r=(o.tool_name??"").toLowerCase();if(r&&!/grep|glob|search/i.test(r))return null;let n=m(o);if(!n)return null;let s=await u.readConfig(e);if(!s?.projectId||!f(s.projectId)||Date.now()-t>h)return null;let a=p(s.projectId,n,{limit:b});if(a.length===0||Date.now()-t>h)return null;let c=["# prjct code graph (non-blocking)","",`Grep/Glob token \`${n}\` matches indexed symbols \u2014 prefer these before more tree walks:`,""];for(let i of a)c.push(`- **${i.name}** (${i.kind}${i.exported?", exported":""}) \u2014 \`${i.file}:${i.startLine}\``);return c.push(""),c.push(`> Expand: \`prjct code trace ${n}\` or MCP \`prjct_trace_path\`. This inject never blocks the tool.`),g(c.join(`
|
|
9
|
-
`),_)}catch{return null}}l(k,"buildSearchAugment");async function x(e,o){await d({event:"PreToolUse",projectPath:e,build:l((t,r)=>k(r,t),"build")},o)}l(x,"runPreSearchHook");var j={extractToken:m,buildSearchAugment:k};export{j as _internal,x as runPreSearchHook};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c}from"./chunk-4WHS7CO7.mjs";import"./chunk-L4COZ7ZH.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-SOPRYWUY.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-V37VTXDW.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-E66B27AL.mjs";export{c as _internal,a as decideSecrets,b as runPreSecretsHook};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as projectMemory};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c,d,e,f,g}from"./chunk-3X7TBM4A.mjs";import"./chunk-7OZDWT6C.mjs";import"./chunk-YJMWY4Y6.mjs";import"./chunk-NJAMZSHM.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{f as bridgeStyleToMemory,g as formatProjectStyleForSync,a as getActiveProjectStyle,b as getProjectEvolution,d as persistProjectStyleSnapshot,e as recomputeProjectStyle,c as renderProjectEvolution};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c}from"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as hashPayload,b as publishCRUD,c as publishCRUDSync};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c,d,e,f,g,h,i,j}from"./chunk-OP467HW6.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{d as AUTO_SOURCE_PREFIXES,b as DEFAULT_ARCHIVE_PRUNE_DAYS,c as DEFAULT_AUTO_SOURCE_MAX_LIVE,a as DEFAULT_SOFT_DELETED_PURGE_DAYS,e as isAutoSource,g as purgeOrphanRememberEvents,f as purgeSoftDeleted,j as runVaultPurge,h as trimAutoSourceCap,i as vaultHealth};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{b as k}from"./chunk-2WPR5GFT.mjs";import"./chunk-54LH63LM.mjs";import"./chunk-SJ75V4WG.mjs";import{b as P}from"./chunk-4DDCWMI6.mjs";import{b as O,c as U}from"./chunk-ZZ65CN5F.mjs";import{a as Y}from"./chunk-CQUG6SO2.mjs";import"./chunk-WSFHSXBZ.mjs";import{a as Z,b as j,c as S,d as ee,e as te,f as C,g as T,h as ne,i as re}from"./chunk-BZ5UR7G3.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import{a as I,h as L}from"./chunk-DXQMKW2B.mjs";import{a as H,e as G,f as z,g as J,h as q,i as K,j as Q}from"./chunk-OP467HW6.mjs";import{a as x}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import{c as A}from"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import{a as w,b as V,e as D,g as B}from"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import{b as M,g as F}from"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as p}from"./chunk-E66B27AL.mjs";V();B();var W=new Set(["decision","gotcha","learning","feedback","fact","shipped","spec"]),se=30,oe=50,ie=20,ce=45,ae=25,de=15,ue=180,$=90,le=25,pe=.12,me=40,fe=40,he=30,ge=20,xe=35,Ee=.12,ye=864e5,Re=100,ve=50,be=25,_e=15,De=/\b[\w.-]+(?:\/[\w.-]+)+\.(?:ts|tsx|js|jsx|mjs|cjs|json|md|sh|toml|yml|yaml)\b/g;function Ae(e,t){let o=x.allEntriesForIndex(e),r=new Set;for(let c of o)for(let l of O(c.tags))r.add(l);let n=(()=>{try{let c=P(e);return c?new Set(Object.keys(c.documents)):null}catch{return null}})(),a=S(o),i=C(a);return{entries:o,usefulness:U.decayedScores(e,t),supersededIds:F(o),correctedIds:r,indexedPaths:n,nowMs:t,refIndex:i}}p(Ae,"collectRetentionInputs");function Se(e){let t=new Map,o=new Set,r=[...e].sort((n,a)=>a.rememberedAt.localeCompare(n.rememberedAt));for(let n of r){let a=w(n.content);t.has(a)?o.add(n.id):t.set(a,n)}return o}p(Se,"collectDuplicateIds");function Me(e,t){let o=e.content.match(De);return!o||o.length===0?!1:!o.some(r=>t.has(r))}p(Me,"isUngrounded");function Ie(e,t,o){let r=[],n=T(e.content,t.refIndex,e.id),a=o.has(e.id);a&&!n.exactDup&&r.push("duplicate of newer entry"),r.push(`excess ${n.excess.toFixed(2)} (sim ${n.maxSim.toFixed(2)})`);let i=n.exactDup||n.nearDup||n.excess<Ee;i&&r.push(n.exactDup?`exact dup of ${n.nearestId}`:n.nearDup?`near-dup of ${n.nearestId}`:"low excess vs reference");let c=t.usefulness.get(e.id)??0,l=Math.min(ae,Math.max(0,c*8));c>0&&r.push(`used (+${Math.round(l)})`);let u=Math.max(0,(t.nowMs-Date.parse(e.rememberedAt))/ye),h=Number.isFinite(u)?Math.max(0,de*(1-u/ue)):0,s=c<=0&&Number.isFinite(u)&&u>$?Math.min(le,(u-$)*pe):0;s>0&&r.push(`idle ${Math.round(u)}d`);let f=t.supersededIds.has(e.id);f&&r.push("superseded");let m=t.correctedIds.has(e.id);m&&r.push("corrected");let b=!M(e)||k(e);b&&r.push("generated noise");let E=!!(t.indexedPaths&&Me(e,t.indexedPaths));E&&r.push("cites files missing at HEAD");let g=Math.max(0,Math.min(100,n.excess*ce+l+h-(i?xe:0)-s-(f?me:0)-(m?fe:0)-(b?he:0)-(E?ge:0)-(a?20:0))),R=g>=oe?"active":g>=ie?"archive":"delete",_=a||n.exactDup||n.nearDup||f,y=R!=="active"&&u<se&&!_?"active":R;y!==R&&r.push("grace period");let d=y==="delete"&&W.has(e.type)?"archive":y;return d!==y&&r.push("protected type"),{id:e.id,type:e.type,verdict:d,score:Math.round(g),reasons:r,excess:n.excess,maxSim:n.maxSim,nearestId:n.nearestId}}p(Ie,"scoreEntry");function X(e,t){let o=Ae(e,t),r=Se(o.entries),n={evaluated:o.entries.length,active:0,archive:0,delete:0,referenceSize:o.refIndex.entries.length,flagged:[],byId:new Map};for(let a of o.entries){let i=Ie(a,o,r);n[i.verdict]++,n.byId.set(i.id,i),i.verdict!=="active"&&n.flagged.push(i)}return n.flagged.sort((a,i)=>a.score-i.score),n}p(X,"evaluateRetention");function Be(e,t){return!(!M(e)||e.content.trim().length===0||t&&t.verdict!=="active"||t&&t.excess!==void 0&&t.excess<.05)}p(Be,"shouldEmbedEntry");function v(e,t){if(t.startsWith("ship_"))return Ce(e,t);if(x.forget(e,t))return!0;try{return(D.run(e,"UPDATE memory_entries SET deleted_at = ? WHERE id = ? AND deleted_at IS NULL",Date.now(),t).changes??0)>0}catch{return!1}}p(v,"forgetEntry");function N(e){return e.startsWith("mem_")||e.startsWith("ship_")||/^\d+$/.test(e)}p(N,"isRetentionRemovableId");function Ce(e,t){let o=t.startsWith("ship_")?t.slice(5):t;if(!o)return!1;try{let r=D.get(e,"SELECT * FROM shipped_features WHERE id = ?",o);if(!r)return!1;try{A.archive(e,{entityType:"shipped",entityId:o,entityData:r,summary:`retention archive shipped [${r.name}]`,reason:"retention-archive"})}catch{}return(D.run(e,"DELETE FROM shipped_features WHERE id = ?",o).changes??0)>0}catch{return!1}}p(Ce,"forgetShippedFeature");function Te(e,t={}){let o=t.dryRun===!0,r=t.nowMs??Date.now(),n=t.maxArchive??Re,a=t.maxDelete??ve,i=X(e,r),c=i.flagged.filter(s=>s.verdict==="archive"&&N(s.id)),l=i.flagged.filter(s=>s.verdict==="delete"&&N(s.id)),u=i.flagged.filter(s=>(s.verdict==="archive"||s.verdict==="delete")&&!N(s.id)).length,h=o?{archived:0,deleted:0,skipped:u}:(()=>{let s=c.slice(0,n),f=s.map(d=>{if(!d.id.startsWith("ship_"))try{A.archive(e,{entityType:"memory_entry",entityId:d.id,entityData:{id:d.id,type:d.type,score:d.score,excess:d.excess,reasons:d.reasons,verdict:d.verdict},summary:`retention archive [${d.type}] excess=${d.excess?.toFixed(2)??"?"} score=${d.score}`,reason:"retention-archive"})}catch{}return v(e,d.id)}),m=f.filter(Boolean).length,b=Math.max(0,c.length-s.length)+f.filter(d=>!d).length,E=l.slice(0,a),g=E.filter(d=>!W.has(d.type)).map(d=>d.id),R=E.length-g.length,_=g.length>0?Y(e,g):0,y=Math.max(0,l.length-E.length)+R+g.length-_;return{archived:m,deleted:_,skipped:u+b+y}})();return{evaluated:i.evaluated,active:i.active,wouldArchive:c.length,wouldDelete:l.length,archived:h.archived,deleted:h.deleted,skipped:h.skipped,dryRun:o,samples:i.flagged.slice(0,10),referenceSize:i.referenceSize}}p(Te,"applyRetention");function He(e){return Te(e,{maxArchive:be,maxDelete:_e})}p(He,"applyRetentionIncremental");function Ge(e,t={}){let o=t.max??50,r=t.types??["inbox","context","idea","todo","question","gotcha","spec"],n=[],a=[];try{let i=x.allEntriesForIndex(e);for(let c of i){if(n.length>=o)break;if(!r.includes(c.type))continue;let l=I(c.content,c.type),u=L(c.content,c.type);(l.junk||u.action==="refuse"||c.type==="gotcha"&&u.action==="demote")&&v(e,c.id)&&(n.push(c),a.length<8&&a.push(`${c.id}:${l.junk?l.reason:u.reasonCode}`))}}catch{return{forgotten:0,samples:[]}}return{forgotten:n.length,samples:a}}p(Ge,"forgetJunkCaptures");function ze(e,t=Date.now()){let r=x.allEntriesForIndex(e).filter(s=>s.type==="inbox");if(r.length===0)return{merged:0,archived:0,junkForgotten:0};let n=r.filter(s=>I(s.content,s.type).junk&&v(e,s.id)).length,a=x.allEntriesForIndex(e).filter(s=>s.type==="inbox");if(a.length===0)return{merged:0,archived:0,junkForgotten:n};let i=S(x.allEntriesForIndex(e)),c=C(i),l=X(e,t),u=[],h=[];for(let s of a){let f=T(s.content,c);if(f.exactDup||f.nearDup||f.excess<.15){v(e,s.id)&&u.push(s.id);continue}let m=l.byId.get(s.id);if(m&&m.verdict!=="active"){try{A.archive(e,{entityType:"memory_entry",entityId:s.id,entityData:{id:s.id,type:"inbox",score:m.score,excess:m.excess,reasons:m.reasons},summary:`inbox triage excess=${m.excess?.toFixed(2)??"?"}`,reason:"retention-inbox"})}catch{}v(e,s.id)&&h.push(s.id)}}return{merged:u.length,archived:h.length,junkForgotten:n}}p(ze,"triageInbox");export{te as CAPTURE_MIN_EXCESS,H as DEFAULT_SOFT_DELETED_PURGE_DAYS,ee as NEAR_DUP_SIM,W as PROTECTED_TYPES,Z as REFERENCE_CAP,Te as applyRetention,He as applyRetentionIncremental,S as buildReferenceModel,re as captureGate,Se as collectDuplicateIds,Ae as collectRetentionInputs,ne as computeExcess,X as evaluateRetention,Ge as forgetJunkCaptures,Ce as forgetShippedFeature,G as isAutoSource,j as isReferenceEligible,N as isRetentionRemovableId,J as purgeOrphanRememberEvents,z as purgeSoftDeleted,Q as runVaultPurge,Ie as scoreEntry,Be as shouldEmbedEntry,ze as triageInbox,q as trimAutoSourceCap,K as vaultHealth};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{h as v}from"./chunk-7JE6VTLN.mjs";import"./chunk-5PEHJEFE.mjs";import"./chunk-Q5I2UPD6.mjs";import{a as u}from"./chunk-NLDL3N6R.mjs";import{a as g,b as f,d as w}from"./chunk-S4TB2OFJ.mjs";import"./chunk-PSSR7LSW.mjs";import{a as l}from"./chunk-2HTDCLZD.mjs";import"./chunk-CREPUNOS.mjs";import"./chunk-D7TRY3CO.mjs";import"./chunk-TPESWBA7.mjs";import"./chunk-ODWWIFSN.mjs";import"./chunk-CPHUFXD2.mjs";import"./chunk-LLQUB6YR.mjs";import"./chunk-NLG2EW6M.mjs";import"./chunk-6IKHMK2U.mjs";import"./chunk-QSAA6LZF.mjs";import"./chunk-75UJIVMO.mjs";import"./chunk-QDQ7DTDV.mjs";import"./chunk-2OU2MKNS.mjs";import"./chunk-YJMWY4Y6.mjs";import"./chunk-NJAMZSHM.mjs";import"./chunk-6EWGHM32.mjs";import"./chunk-SJ75V4WG.mjs";import"./chunk-4DDCWMI6.mjs";import"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3FBCOCPD.mjs";import"./chunk-BISPGBNN.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-GVNMXVVA.mjs";import{b as d}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as n}from"./chunk-E66B27AL.mjs";var c=["off","advisory","strict"],D=[{key:"spec drafted",reached:n(()=>!0,"reached")},{key:"audit-spec passed (reviewed)",reached:n(r=>r!=="draft","reached")},{key:"task linked",reached:n(r=>r==="in_progress"||r==="shipped","reached")},{key:"shipped",reached:n(r=>r==="shipped","reached")}],k=class extends w{static{n(this,"SddCommands")}async sdd(e=null,t=process.cwd(),o={}){let s=((e??"").trim().split(/\s+/).filter(Boolean)[0]??"").toLowerCase();return!s||s==="status"||s==="show"?this.showStatus(t,o):c.includes(s)?this.setMode(s,t,o):g(`Unknown sdd subcommand "${s}". Use: ${c.join("|")}.`,o)}async showStatus(e,t){let o=await d.readConfig(e).catch(()=>null);if(!o?.projectId)return f("No prjct project here \u2014 run `prjct init` first.",t);let i=S(o),s=await(async()=>{try{let p=await v(o.projectId,e);if(p?.linkedSpecId){let{specService:h}=await import("./spec-service-2DVDFOR7.mjs"),a=await h.get(e,p.linkedSpecId);if(a)return{specLine:`Active spec: \`${a.title}\` (${a.status})`,station:D.map(y=>`${y.reached(a.status)?"\u2713":"\u25CB"} ${y.key}`).join(" ")}}else if(p)return{specLine:"Active work cycle has NO linked spec",station:"no active work cycle"};return{specLine:"Active spec: none",station:"no active work cycle"}}catch{return{specLine:"Active spec: none",station:"no active work cycle"}}})(),m=[`Mode: ${i}${i==="off"?" (pipeline stays escalate-only)":""}`,s.specLine,`Pipeline: ${s.station}`,"Set: prjct sdd off|advisory|strict"];return t.md?console.log(u("## SDD",`> **Mode**: \`${i}\``,m.slice(1).join(`
|
|
9
|
-
`))):l.info(`SDD \u2014 ${m.join(`
|
|
10
|
-
`)}`),{success:!0,mode:i}}async setMode(e,t,o){let i=await d.readConfig(t).catch(()=>null);if(!i?.projectId)return f("No prjct project here \u2014 run `prjct init` first.",o);i.sdd={mode:e},await d.writeConfig(t,i);let s=e==="off"?"SDD mode off \u2014 the spec pipeline stays escalate-only (no gating).":e==="advisory"?"SDD mode \u2192 advisory. The skill nudges toward a spec for complex work; `ship` surfaces acceptance criteria.":"SDD mode \u2192 strict. Every `prjct work` cycle must link a REVIEWED intent/spec, and `ship` blocks unspecced work (override: `prjct ship --no-spec-gate`).";return o.md?console.log(u("## SDD",`> ${s}`)):l.done(s),{success:!0,mode:e}}};function S(r){let e=r?.sdd?.mode;if(e&&c.includes(e))return e;let t=process.env.PRJCT_SDD_MODE?.toLowerCase();return t&&c.includes(t)?t:"off"}n(S,"effectiveSddMode");var A={effectiveSddMode:S,SDD_MODES:c};export{k as SddCommands,A as _internal,S as effectiveSddMode};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as d}from"./chunk-5TBQNW2G.mjs";import"./chunk-TXJT3G53.mjs";import{a as u}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import{d as l,g as y}from"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import{b as p,e as g}from"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as r}from"./chunk-E66B27AL.mjs";y();g();function c(){return"Context tiers: L0 always \xB7 L1 session/prime \xB7 L2 pull (search/guard/MCP) \xB7 L3 cold \u2014 never stuff L2 into L0."}r(c,"contextTiersOneLiner");var a="session:continuity",f="session-close",x=10080*60*1e3;function R(e){let t=d(e.config??null,{turnCount:e.turns??void 0,tokensIn:e.tokensIn??void 0,tokensOut:e.tokensOut??void 0,description:e.cycleDescription??void 0}),n=[];e.cycleId||e.cycleDescription?(n.push("Resume open cycle with `prjct prime` then continue work (or `prjct status done` if finished)."),n.push('Journal progress: `prjct log "what you tried"`.')):n.push('No open cycle \u2014 `prjct work "<intent>"` or `prjct next --md` for frontier.'),n.push("Pull L2 on demand: `prjct search` / `prjct guard` / MCP \u2014 never stuff into L0."),n.push("Audit gates: `prjct context artifacts --md`.");let o=e.handoffContent?.trim()?e.handoffContent.trim().slice(0,280):null,s={version:1,landedAt:p(),projectId:e.projectId,cycleId:e.cycleId??null,cycleDescription:e.cycleDescription??null,turns:e.turns??null,tokensIn:e.tokensIn??null,tokensOut:e.tokensOut??null,pressureLevel:t.level==="ok"?e.turns?"ok":null:t.level,handoffWrote:!!e.handoffWrote,receiptWrote:!!e.receiptWrote,nextActions:n,handoffPreview:o};return l.setDoc(e.projectId,a,s),s}r(R,"stampSessionContinuity");function E(e){try{let t=l.getDoc(e,a);return!t||t.version!==1||!t.landedAt?null:t}catch{return null}}r(E,"loadSessionContinuity");function m(e,t=Date.now()){if(!e?.landedAt)return!1;let n=Date.parse(e.landedAt);return Number.isFinite(n)?t-n<=x:!1}r(m,"isContinuityFresh");function B(e){try{let t=u.searchFts(e,["session","close","land-auto"],12);for(let o of t){if(o.type!=="context")continue;let s=o.tags??{};if(s.topic===f||s.source==="land-auto"||o.content.startsWith("Session close:"))return o.content}let n=u.recall(e,{types:["context"],limit:8});for(let o of n){let s=o.tags??{};if(s.topic===f||s.source==="land-auto"||o.content.startsWith("Session close:"))return o.content}}catch{}return null}r(B,"loadLastSessionCloseContent");function W(e){let t=["# Managed session resume","","_Local continuity (Claude Managed Agents pattern without hosting the model). Land stamps SoT; prime restores it._",""],n=e.stamp;if(n&&m(n)){let i=h(n.landedAt);t.push(`**Last land:** ${n.landedAt.slice(0,19)} (${i})`),t.push(`- Hand-off: ${n.handoffWrote?"written":"none"} \xB7 Receipt: ${n.receiptWrote?"written":"none"}`),n.turns!=null&&t.push(`- Last cycle budget signal: turns=${n.turns}`+(n.tokensIn!=null||n.tokensOut!=null?` \xB7 tokens in=${n.tokensIn??0} out=${n.tokensOut??0}`:"")+(n.pressureLevel?` \xB7 pressure=${n.pressureLevel}`:"")),t.push("")}else n?(t.push(`**Last land:** ${n.landedAt.slice(0,19)} (stale >7d) \u2014 treat as historical; re-land after work.`),t.push("")):(t.push("**No land stamp yet.** After meaningful work run `prjct land` so the next window resumes cleanly."),t.push(""));let o=e.liveCycleDescription??n?.cycleDescription;if(o){if(t.push(`**Active / last cycle:** ${o}`),e.liveCycleId&&t.push(`- id: \`${e.liveCycleId.slice(0,8)}\``),e.journal&&e.journal.length>0){t.push("**Journal (recent):**");for(let i of e.journal)t.push(`- ${i.slice(0,120)}`)}t.push("")}else t.push("**No open cycle** on this workspace."),t.push("");let s=e.sessionCloseContent??n?.handoffPreview;if(s){t.push("## Last session hand-off"),t.push("");let i=s.length>900?`${s.slice(0,897)}\u2026`:s;t.push(i),t.push(""),t.push("_Full entry: `prjct context memory session-close` / topic `session-close`._"),t.push("")}if(e.pendingHandoffCue&&(t.push("## Multi-agent handoff"),t.push(""),t.push(e.pendingHandoffCue),t.push("")),n?.nextActions?.length){t.push("## Next actions"),t.push("");for(let i of n.nextActions)t.push(`- ${i}`);t.push("")}return t.push("## Context diet"),t.push(""),t.push(c()),t.push(""),t.push("Default surface: `work` + `ship` (user text confirm). Deeper: `prjct brief` \xB7 `prjct search` \xB7 `prjct guard` \xB7 `prjct context artifacts --md`."),t.join(`
|
|
9
|
-
`)}r(W,"formatSessionResumeCard");function F(e){if(!e||!m(e))return null;let t=h(e.landedAt),n=e.cycleDescription?` \xB7 cycle "${e.cycleDescription.slice(0,50)}${e.cycleDescription.length>50?"\u2026":""}"`:"";return["# prjct: managed session continuity",`Last land ${t}${n}. Restore full state: \`prjct prime --md\` (work graph + hand-off + next actions).`,e.handoffWrote?"Hand-off is in SQLite (`topic:session-close`) \u2014 do not re-discover from chat history.":"No hand-off body last land \u2014 prime still restores cycle/frontier if open."].join(`
|
|
10
|
-
`)}r(F,"formatContinuitySessionCue");function H(e){return["","## Managed session continuity","",`- Stamped at \`${e.landedAt.slice(0,19)}\` (SoT key \`${a}\`).`,"- **Next window / machine:** `prjct prime --md` restores cycle + last hand-off + next actions.","- Cross-device: same project DB / cloud sync of memory \u2014 no hosted model session required.",`- Context diet: ${c()}`].join(`
|
|
11
|
-
`)}r(H,"formatLandContinuityFooter");function h(e){let t=Date.parse(e);if(!Number.isFinite(t))return e;let n=Math.max(0,Math.floor((Date.now()-t)/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}r(h,"formatRelativeIso");export{x as CONTINUITY_FRESH_MS,f as SESSION_CLOSE_TOPIC,a as SESSION_CONTINUITY_KEY,F as formatContinuitySessionCue,H as formatLandContinuityFooter,W as formatSessionResumeCard,m as isContinuityFresh,B as loadLastSessionCloseContent,E as loadSessionContinuity,R as stampSessionContinuity};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a,b,c,d}from"./chunk-HX42HFII.mjs";import"./chunk-45I2C2UB.mjs";import"./chunk-L4COZ7ZH.mjs";import"./chunk-4KY2EHXS.mjs";import"./chunk-3X7TBM4A.mjs";import"./chunk-7OZDWT6C.mjs";import"./chunk-YJMWY4Y6.mjs";import"./chunk-NJAMZSHM.mjs";import"./chunk-54LH63LM.mjs";import"./chunk-ZZ65CN5F.mjs";import"./chunk-WSFHSXBZ.mjs";import"./chunk-OL6ITIAZ.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{c as buildProjectIdentityLine,a as buildSessionContext,b as buildSubagentDigest,d as runSessionStartHook};
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{a as H}from"./chunk-HIFIDMH5.mjs";import{a as J}from"./chunk-A5RNWWTH.mjs";import"./chunk-HZIORCPO.mjs";import"./chunk-WDGDFXSB.mjs";import"./chunk-NWY5M34K.mjs";import"./chunk-OGOCHZ3S.mjs";import{c as z,d as G}from"./chunk-S4TB2OFJ.mjs";import{a as i}from"./chunk-2HTDCLZD.mjs";import"./chunk-DYHYDHCW.mjs";import"./chunk-J6JZ4PQA.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import{c as B}from"./chunk-3JUE6MNF.mjs";import"./chunk-3FBCOCPD.mjs";import{a as K,b as F,c as g}from"./chunk-YUOTOCKK.mjs";import"./chunk-BISPGBNN.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import{b as E}from"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import{d as v}from"./chunk-CDCCAU22.mjs";import{q as O,r as N,s as $,t as se}from"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import{f as D,g as U,j as T,n as ae}from"./chunk-SVZHJZ5T.mjs";import{a as _,o as oe}from"./chunk-CTWZQ7YI.mjs";import"./chunk-ZNQXFWSI.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import{b as P,e as ie}from"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import{e as k,f as ne}from"./chunk-BUDZL4DW.mjs";import{a as m,e as M}from"./chunk-E66B27AL.mjs";import j from"node:fs/promises";import ce from"node:http";import R from"node:path";import a from"chalk";se();import{createHash as re,randomBytes as V}from"node:crypto";var q="pkce-v1",W=32;function L(r){return r.toString("base64url")}m(L,"base64Url");function Y(){let r=L(V(W)),e=L(V(W)),t=L(re("sha256").update(r,"ascii").digest());return{state:e,codeVerifier:r,codeChallenge:t,codeChallengeMethod:"S256"}}m(Y,"generatePkceMaterial");function Q(r){return new URLSearchParams({flow:q,port:String(r.port),device_id:r.deviceId,hostname:r.hostname,state:r.state,code_challenge:r.codeChallenge,code_challenge_method:"S256"})}m(Q,"buildCliLoginSearchParams");function X(r,e){if(r.get("key"))return{ok:!1,reason:"legacy-bearer",message:"This CLI requires PKCE login. Update the web app or set flow=pkce-v1; bearer tokens in the callback URL are no longer accepted."};let o=r.get("code"),n=r.get("state");return!o||!n?{ok:!1,reason:"missing",message:"Missing authorization code or state in callback"}:n!==e?{ok:!1,reason:"mismatch",message:"Login state mismatch \u2014 try `prjct login` again"}:{ok:!0,code:o,state:n}}m(X,"parsePkceCallback");function Z(r){return{flow:q,code:r.code,state:r.state,code_verifier:r.codeVerifier,device_id:r.deviceId,redirect_uri:`http://127.0.0.1:${r.port}/callback`}}m(Z,"buildExchangeBody");function ee(r){if(!r||typeof r!="object")return null;let e=r,t=e.apiKey??e.api_key,o=e.userId??e.user_id,n=e.email,s=e.deviceId??e.device_id;return!t||!o||!n||!s?null:{apiKey:t,userId:o,email:n,deviceId:s}}m(ee,"parseMintedKeyResponse");ne();oe();ae();ie();var te=class extends G{static{m(this,"SetupCommands")}async auth(e=null,t={}){switch(e?.split(" ")[0]||"status"){case"login":return t.md||i.fail("Manual token login is not supported. Run prjct login."),{success:!1,message:t.md?"## Error\nManual token login is not supported. Run `prjct login`.":""};case"logout":return await g.clearAuth(),await this.refreshDaemonAuth(),t.md||i.done("Logged out. Auth credentials cleared"),{success:!0,message:t.md?`## Auth
|
|
9
|
-
- **Status**: Logged out`:""};default:{let n=await g.getStatus();return t.md?{success:!0,message:n.authenticated?`## Auth Status
|
|
10
|
-
- **Authenticated**: Yes
|
|
11
|
-
- **Email**: ${n.email||"N/A"}
|
|
12
|
-
- **Token**: stored securely
|
|
13
|
-
- **Last auth**: ${n.lastAuth||"N/A"}`:"## Auth Status\n- **Authenticated**: No\n- Run `prjct login` to connect"}:(n.authenticated?i.box("Auth Status",`Email: ${n.email||"N/A"}
|
|
14
|
-
Token: stored securely
|
|
15
|
-
Since: ${n.lastAuth||"N/A"}`):(i.info("Not authenticated"),i.info(`Run ${a.cyan("prjct login")} to connect`)),{success:!0,message:""})}}}async login(e={}){let t=await g.getStatus();if(t.authenticated)return e.md||(i.box("Already Authenticated",`Email: ${t.email}
|
|
16
|
-
Token: stored securely`),i.info(`Run ${a.cyan("prjct logout")} first to re-authenticate`)),{success:!0,message:e.md?`## Already Authenticated
|
|
17
|
-
- **Email**: ${t.email}
|
|
18
|
-
- **Token**: stored securely
|
|
19
|
-
|
|
20
|
-
Run \`prjct logout\` first to re-authenticate.`:""};let o=process.env.PRJCT_WEB_URL||F,n=process.env.PRJCT_API_URL||K,s=Y(),l={settled:!1,listenPort:0};return new Promise(h=>{let c=m(p=>{l.settled||(l.settled=!0,h(p))},"finish"),d=ce.createServer(async(p,u)=>{let x=new URL(p.url||"/","http://127.0.0.1"),w={"Content-Type":"text/html","Cache-Control":"no-store","Referrer-Policy":"no-referrer"};if(x.pathname==="/callback"){let f=X(x.searchParams,s.state);if(!f.ok){let S=(f.reason==="legacy-bearer",400);u.writeHead(S,w),u.end(this.buildErrorPage(f.message)),f.reason==="legacy-bearer"&&(e.md||(i.warn(f.message),i.info("Update prjct-cli-app or open the login URL with flow=pkce-v1")));return}let{verified:y,failureMessage:b,email:A}=await(async()=>{try{let S=Z({code:f.code,state:f.state,codeVerifier:s.codeVerifier,deviceId:await g.getDeviceId(),port:l.listenPort}),I=await fetch(`${n}/auth/cli/exchange`,{method:"POST",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify(S)});if(!I.ok)return{verified:!1,failureMessage:`Exchange failed (${I.status})`,email:""};let C=ee(await I.json());return C?(await g.saveAuth(C.apiKey,C.userId,C.email),await g.write({apiUrl:n}),await B.testConnection()?{verified:!0,failureMessage:"",email:C.email}:(await g.clearAuth(),{verified:!1,failureMessage:"Could not verify credentials with prjct Cloud",email:C.email})):{verified:!1,failureMessage:"Malformed exchange response",email:""}}catch(S){return await g.clearAuth(),{verified:!1,failureMessage:S instanceof Error?S.message:"Could not store credentials securely",email:""}}})();y?(u.writeHead(200,w),u.end(this.buildSuccessPage(A))):(u.writeHead(401,w),u.end(this.buildErrorPage(b))),d.close(),y?(e.md||(i.step(3,3,"Connected"),i.stop(),i.box("Authentication Complete",`Email: ${A}
|
|
21
|
-
Token: stored securely
|
|
22
|
-
Status: Connected`)),await this.refreshDaemonAuth(),await this.autoSync(),c({success:!0,message:e.md?`## Authenticated
|
|
23
|
-
- **Email**: ${A}
|
|
24
|
-
- **Token**: stored securely`:""})):(e.md||i.fail(`Authentication failed: ${b}`),c({success:!1,message:e.md?`## Error
|
|
25
|
-
Authentication failed: ${b}`:""}));return}u.writeHead(404,w),u.end("Not found")});d.listen(0,"127.0.0.1",async()=>{let p=d.address();if(!p||typeof p=="string"){d.close(),e.md||i.fail("Failed to start callback server"),c({success:!1,message:e.md?`## Error
|
|
26
|
-
Failed to start callback server`:""});return}l.listenPort=p.port;let u=await g.getDeviceId(),x=await g.getHostname(),w=Q({port:l.listenPort,deviceId:u,hostname:x,state:s.state,codeChallenge:s.codeChallenge}),f=`${o}/auth/cli?flow=pkce-v1&port=${l.listenPort}`,y=`${o}/auth/cli?${w.toString()}`;i.step(1,3,"Opening browser..."),i.stop(),i.info(a.dim(f));let b=process.platform,A=b==="darwin"?`open "${y}"`:b==="win32"?`start "" "${y}"`:`xdg-open "${y}"`;try{await _(A)}catch{i.warn("Could not open browser automatically"),i.info("Visit the URL printed by your terminal session (full URL not echoed for safety)"),i.info(y)}i.step(2,3,"Waiting for authentication...")}),setTimeout(()=>{l.settled||(d.close(),i.stop(),e.md||(i.fail("Authentication timed out"),i.info(`Run ${a.cyan("prjct login")} to try again`)),c({success:!1,message:e.md?"## Error\nAuthentication timed out. Run `prjct login` to try again.":""}))},300*1e3)})}async logout(){return await g.clearAuth(),i.done("Logged out"),{success:!0,message:""}}async refreshDaemonAuth(){try{let{restartDaemon:e}=await import("./client-SKFMAUI5.mjs");await e()}catch{}}async autoSync(){try{let e=await E.readConfig(process.cwd()).catch(()=>null),t=e?.projectId;if(!t||!e.cloud?.enabled||e.cloud.paused)return;i.spin("Syncing project...");let o=await H.sync(t,{include:e.cloud.include??{}});if(i.stop(),o.success&&!o.skipped){let n=o.pushed?.count||0,s=o.pulled?.count||0;n>0||s>0?i.done(`Synced (${n} pushed, ${s} pulled)`):i.done("Synced \u2014 everything up to date")}}catch{i.stop()}}buildSuccessPage(e){return`<!DOCTYPE html>
|
|
27
|
-
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
28
|
-
<title>prjct CLI Connected</title>
|
|
29
|
-
<style>
|
|
30
|
-
*{margin:0;padding:0;box-sizing:border-box}
|
|
31
|
-
body{font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',sans-serif;
|
|
32
|
-
background:#0a0a0a;color:#e5e5e5;display:flex;justify-content:center;align-items:center;min-height:100vh}
|
|
33
|
-
.card{text-align:center;max-width:420px;padding:2.5rem}
|
|
34
|
-
.logo{font-size:.875rem;letter-spacing:.05em;color:#a3a3a3;margin-bottom:2rem;font-family:ui-monospace,monospace}
|
|
35
|
-
.logo span{color:#e5e5e5}
|
|
36
|
-
.icon{width:64px;height:64px;border-radius:50%;background:rgba(34,211,238,.12);
|
|
37
|
-
display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}
|
|
38
|
-
.icon svg{width:32px;height:32px;color:#22d3ee}
|
|
39
|
-
h1{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}
|
|
40
|
-
.details{background:#141414;border:1px solid #262626;border-radius:8px;padding:1rem 1.25rem;
|
|
41
|
-
margin:1.25rem 0;text-align:left;font-size:.875rem;line-height:1.75}
|
|
42
|
-
.details .label{color:#888}
|
|
43
|
-
.details .value{color:#e5e5e5}
|
|
44
|
-
.hint{color:#666;font-size:.8125rem;margin-top:1rem}
|
|
45
|
-
</style></head>
|
|
46
|
-
<body><div class="card">
|
|
47
|
-
<div class="logo"><span>prjct</span>/cli</div>
|
|
48
|
-
<div class="icon"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
|
|
49
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></div>
|
|
50
|
-
<h1>CLI Connected</h1>
|
|
51
|
-
<div class="details">
|
|
52
|
-
<span class="label">Account:</span> <span class="value">${e}</span><br>
|
|
53
|
-
<span class="label">Token:</span> <span class="value">stored securely</span>
|
|
54
|
-
</div>
|
|
55
|
-
<p class="hint">Return to your terminal to continue.</p>
|
|
56
|
-
</div></body></html>`}buildErrorPage(e){return`<!DOCTYPE html>
|
|
57
|
-
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
58
|
-
<title>prjct CLI \u2014 Error</title>
|
|
59
|
-
<style>
|
|
60
|
-
*{margin:0;padding:0;box-sizing:border-box}
|
|
61
|
-
body{font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',sans-serif;
|
|
62
|
-
background:#0a0a0a;color:#e5e5e5;display:flex;justify-content:center;align-items:center;min-height:100vh}
|
|
63
|
-
.card{text-align:center;max-width:420px;padding:2.5rem}
|
|
64
|
-
.logo{font-size:.875rem;letter-spacing:.05em;color:#a3a3a3;margin-bottom:2rem;font-family:ui-monospace,monospace}
|
|
65
|
-
.logo span{color:#e5e5e5}
|
|
66
|
-
.icon{width:64px;height:64px;border-radius:50%;background:rgba(239,68,68,.12);
|
|
67
|
-
display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}
|
|
68
|
-
.icon svg{width:32px;height:32px;color:#ef4444}
|
|
69
|
-
h1{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}
|
|
70
|
-
.msg{background:#141414;border:1px solid #262626;border-radius:8px;padding:1rem 1.25rem;
|
|
71
|
-
margin:1.25rem 0;font-size:.875rem;color:#f87171}
|
|
72
|
-
.hint{color:#666;font-size:.8125rem;margin-top:1rem}
|
|
73
|
-
</style></head>
|
|
74
|
-
<body><div class="card">
|
|
75
|
-
<div class="logo"><span>prjct</span>/cli</div>
|
|
76
|
-
<div class="icon"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
|
|
77
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/></svg></div>
|
|
78
|
-
<h1>Authentication Failed</h1>
|
|
79
|
-
<div class="msg">${e}</div>
|
|
80
|
-
<p class="hint">Return to your terminal and try again.</p>
|
|
81
|
-
</div></body></html>`}async start(){let e=await v.checkInstallation(),t=(N(),M(O)),o=await t.detectCodex(),n=await t.detectAntigravity(),s=e.providerDetected,l=s?await t.getActiveProvider():null,h=s?l.displayName:o.installed?"OpenAI Codex":"AI agents";if(console.log(`\u{1F680} Setting up prjct for ${h}...
|
|
82
|
-
`),!s&&!o.installed&&!n.installed&&(console.log("\u2139\uFE0F No local CLI runtime detected."),console.log(" prjct will still use AGENTS.md + MCP-compatible surfaces after init.")),s){console.log("\u{1F4E6} Installing p. command router...");let c=await v.installCommands();if(!c.success)return{success:!1,message:`\u274C Installation failed: ${c.error}`};if(console.log(`
|
|
83
|
-
\u2705 Installed ${c.installed?.length??0} commands to:
|
|
84
|
-
${$.getDisplayPath(c.path||"")}`),(c.errors?.length??0)>0){console.log(`
|
|
85
|
-
\u26A0\uFE0F ${c.errors?.length??0} errors:`);for(let d of c.errors??[])console.log(` - ${d.file}: ${d.error}`)}}return await this.installCodexSurface(o.installed,"Installed Codex skill"),await this.installAntigravitySurface(n.installed),await this.setupMcpServers(),await this.installProjectAgentSurfacesIfConfigured(),await this.saveSetupStamp(l?.name??(o.installed?"codex":n.installed?"antigravity":"claude")),console.log(`
|
|
86
|
-
\u{1F389} Setup complete!`),console.log(`
|
|
87
|
-
Next steps:`),console.log(` 1. Open ${h}`),console.log(" 2. Navigate to your project"),console.log(" 3. Run: prjct init"),{success:!0,message:""}}async setup(e={}){console.log(`\u{1F527} Reconfiguring prjct...
|
|
88
|
-
`);let t=(N(),M(O)),o=await t.detectCodex(),n=await t.detectAntigravity(),l=(await v.checkInstallation()).providerDetected;if(e.force&&(console.log("\u{1F5D1}\uFE0F Removing existing installation..."),await v.uninstallCommands()),!l&&!o.installed&&!n.installed&&(console.log("\u2139\uFE0F No local CLI runtime detected."),console.log(" Continuing with universal AGENTS.md/MCP-compatible setup.")),l){console.log("\u{1F4E6} Installing p. command router...");let c=await v.installCommands();if(!c.success)return{success:!1,message:`\u274C Setup failed: ${c.error}`};if(console.log(`
|
|
89
|
-
\u2705 Installed ${c.installed?.length??0} commands`),(c.errors?.length??0)>0){console.log(`
|
|
90
|
-
\u26A0\uFE0F ${c.errors?.length??0} errors:`);for(let u of c.errors??[])console.log(` - ${u.file}: ${u.error}`)}console.log(`
|
|
91
|
-
\u{1F4DD} Installing global configuration...`);let d=await v.installGlobalConfig(),p=d.path?$.getDisplayPath(d.path):"global config";d.success?d.action==="created"?console.log(`\u2705 Created ${p}`):d.action==="updated"?console.log(`\u2705 Updated ${p}`):d.action==="appended"&&console.log(`\u2705 Added prjct config to ${p}`):console.log(`\u26A0\uFE0F ${d.error}`)}else console.log("\u2139\uFE0F No Claude/Gemini global command surface detected; skipping CLI router cleanup.");let h=l?await t.getActiveProvider():null;if(h?.name==="claude"){console.log(`
|
|
92
|
-
\u26A1 Installing status line...`);let c=await this.installStatusLine();c.success?console.log("\u2705 Status line configured"):console.log(`\u26A0\uFE0F ${c.error}`)}return await this.installCodexSurface(o.installed,"Codex skill installed"),await this.installAntigravitySurface(n.installed),await this.setupMcpServers(),await this.installProjectAgentSurfacesIfConfigured(),await this.saveSetupStamp(h?.name??(o.installed?"codex":n.installed?"antigravity":"claude")),console.log(`
|
|
93
|
-
\u{1F389} Setup complete!
|
|
94
|
-
`),this.showAsciiArt(),{success:!0,message:""}}async setupMcpServers(){await J()}async saveSetupStamp(e){try{let t=(await import("./editors-config-3N6VREZR.mjs")).default,o=R.join($.globalConfigDir,"runtime-surfaces");await t.saveConfig(P,o,e)}catch(t){console.log(`\u26A0\uFE0F Setup stamp failed (non-blocking): ${k(t)}`)}}async installProjectAgentSurfacesIfConfigured(){try{let e=process.cwd();if(!await E.isConfigured(e))return;let{writeProjectAgentSurfaces:o}=await import("./project-agent-surfaces-A6HGZPAL.mjs"),{detectInstalledAgents:n}=await import("./detection-MEYHME4X.mjs"),s=await o(e,{agents:await n(e),explicit:!0});s.prjctMd.action!=="unchanged"&&console.log("\u2705 Project PRJCT.md ready"),s.agentsMd.action!=="unchanged"&&console.log("\u2705 Project AGENTS.md ready"),s.claudeMd&&s.claudeMd.action!=="unchanged"&&console.log("\u2705 Project CLAUDE.md ready"),s.ideRules.length>0&&console.log(`\u2705 Project IDE rules ready: ${s.ideRules.join(", ")}`)}catch(e){console.log(`\u26A0\uFE0F Project agent surface setup failed (non-blocking): ${k(e)}`)}}async installCodexSurface(e,t){if(e)try{let{installCodexSkill:o,verifyCodexPRouterReady:n}=await import("./codex-skill-2N6656SR.mjs");await o();let s=await n({autoRepair:!0});s.verified?(console.log(`\u2705 ${t}`),console.log("\u2705 Codex p. router ready")):(console.log(`\u26A0\uFE0F Codex skill setup incomplete: ${s.message||"router verification failed"}`),console.log(" Run `prjct setup` to retry Codex configuration."))}catch(o){console.log(`\u26A0\uFE0F Codex skill setup failed (non-blocking): ${k(o)}`)}}async installAntigravitySurface(e){if(e)try{let t=await import("node:os"),{getTemplateContent:o}=await import("./template-loader-BFTLPG2W.mjs"),n=R.join(t.homedir(),".gemini","antigravity","skills","prjct"),s=R.join(n,"SKILL.md"),l=o("antigravity/SKILL.md");if(!l)throw new Error("Antigravity SKILL.md template not found");await j.mkdir(n,{recursive:!0}),await j.writeFile(s,l,"utf-8"),console.log("\u2705 Antigravity skill installed")}catch(t){console.log(`\u26A0\uFE0F Antigravity skill setup failed (non-blocking): ${k(t)}`)}}async installStatusLine(){try{let e=$.getClaudeDir(),t=$.getClaudeSettingsPath(),o=R.join(e,"prjct-statusline.sh");if(await T(o)&&(await j.readFile(o,"utf-8")).includes("build_statusline"))return{success:!0};let n=`#!/bin/bash
|
|
95
|
-
# prjct Status Line for Claude Code
|
|
96
|
-
# Shows version update notifications and current task
|
|
97
|
-
|
|
98
|
-
# Current CLI version (embedded at install time)
|
|
99
|
-
CLI_VERSION="${P}"
|
|
100
|
-
|
|
101
|
-
# Read JSON context from stdin (provided by Claude Code)
|
|
102
|
-
read -r json
|
|
103
|
-
|
|
104
|
-
# Extract cwd from JSON
|
|
105
|
-
CWD=$(echo "$json" | grep -o '"cwd"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"cwd"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
|
|
106
|
-
|
|
107
|
-
# Check if this is a prjct project
|
|
108
|
-
CONFIG="$CWD/.prjct/prjct.config.json"
|
|
109
|
-
if [[ -f "$CONFIG" ]]; then
|
|
110
|
-
# Extract projectId
|
|
111
|
-
PROJECT_ID=$(grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' "$CONFIG" | sed 's/.*"projectId"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
|
|
112
|
-
|
|
113
|
-
if [[ -n "$PROJECT_ID" ]]; then
|
|
114
|
-
# Upgrade notice \u2014 the daemon checks npm and writes this GLOBAL flag.
|
|
115
|
-
# The statusline only READS it; it does no version comparison itself.
|
|
116
|
-
UPDATE_STATUS="$HOME/.prjct-cli/state/update-status.json"
|
|
117
|
-
if [[ -f "$UPDATE_STATUS" ]] && grep -q '"updateAvailable"[[:space:]]*:[[:space:]]*true' "$UPDATE_STATUS"; then
|
|
118
|
-
LATEST=$(grep -o '"latest"[[:space:]]*:[[:space:]]*"[^"]*"' "$UPDATE_STATUS" | sed 's/.*"latest"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
|
|
119
|
-
echo "\u26A0\uFE0F prjct v$LATEST available! Run p. upgrade"
|
|
120
|
-
exit 0
|
|
121
|
-
fi
|
|
122
|
-
|
|
123
|
-
# Show current task if exists
|
|
124
|
-
STATE="$HOME/.prjct-cli/projects/$PROJECT_ID/storage/state.json"
|
|
125
|
-
if [[ -f "$STATE" ]]; then
|
|
126
|
-
TASK=$(grep -o '"description"[[:space:]]*:[[:space:]]*"[^"]*"' "$STATE" | head -1 | sed 's/.*"description"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
|
|
127
|
-
STATUS=$(grep -o '"status"[[:space:]]*:[[:space:]]*"[^"]*"' "$STATE" | head -1 | sed 's/.*"status"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
|
|
128
|
-
|
|
129
|
-
if [[ -n "$TASK" ]] && [[ "$STATUS" == "active" ]]; then
|
|
130
|
-
# Truncate task to 40 chars
|
|
131
|
-
TASK_SHORT="\${TASK:0:40}"
|
|
132
|
-
[[ \${#TASK} -gt 40 ]] && TASK_SHORT="$TASK_SHORT..."
|
|
133
|
-
echo "\u{1F3AF} $TASK_SHORT"
|
|
134
|
-
exit 0
|
|
135
|
-
fi
|
|
136
|
-
fi
|
|
137
|
-
fi
|
|
138
|
-
fi
|
|
139
|
-
|
|
140
|
-
# Default: show prjct branding
|
|
141
|
-
echo "\u26A1 prjct"
|
|
142
|
-
`;await j.writeFile(o,n,{mode:493});let s=await T(t)?await D(t).catch(()=>null).then(l=>l??{}):{};return s.statusLine={type:"command",command:o},await U(t,s),{success:!0}}catch(e){return z(e)}}showAsciiArt(){console.log(a.cyan("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501")),console.log(""),console.log(a.bold.cyan(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")),console.log(a.bold.cyan(" \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D")),console.log(a.bold.cyan(" \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551")),console.log(a.bold.cyan(" \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551")),console.log(a.bold.cyan(" \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551")),console.log(a.bold.cyan(" \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D")),console.log(""),console.log(` ${a.bold.cyan("prjct")}${a.magenta("/")}${a.green("cli")} ${a.dim.white(`v${P} installed`)}`),console.log(""),console.log(` ${a.yellow("\u26A1")} Improve developer + agent performance`),console.log(` ${a.green("\u{1F9E0}")} Rich project context without context bloat`),console.log(` ${a.cyan("\u{1F916}")} Human-in-the-loop work cycles`),console.log(""),console.log(a.cyan("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501")),console.log(""),console.log(a.bold.cyan("\u{1F680} Quick Start")),console.log(a.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(""),console.log(` ${a.bold("1.")} Initialize your project:`),console.log(` ${a.green("cd your-project && prjct init")}`),console.log(""),console.log(` ${a.bold("2.")} Start your first work cycle:`),console.log(` ${a.green('prjct work "build auth"')}`),console.log(""),console.log(` ${a.bold("3.")} Ship & celebrate:`),console.log(` ${a.green('prjct ship "user login"')}`),console.log(""),console.log(a.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(""),console.log(` ${a.dim("Documentation:")} ${a.cyan("https://prjct.app")}`),console.log(` ${a.dim("Report issues:")} ${a.cyan("https://github.com/prjct-app/cli/issues")}`),console.log(""),console.log(a.bold.magenta("Ship with better context.")),console.log("")}};export{te as SetupCommands};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{b as m}from"./chunk-NWY5M34K.mjs";import{c as s}from"./chunk-OGOCHZ3S.mjs";import"./chunk-DYHYDHCW.mjs";import{a as w}from"./chunk-DGBDMUBL.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-DVBBB5BS.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-OLKNK2HB.mjs";import"./chunk-MEQS4VPO.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import{b as h,e as S}from"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-ZX6BC2EB.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as p}from"./chunk-E66B27AL.mjs";S();async function x(r,a,e){let o=e.content.acceptance_criteria;if(o.length===0)return{taskIds:[],skippedReason:"no_acceptance_criteria"};if(e.content.tasks_created_at!==null)return{taskIds:[],skippedReason:"already_broken_down"};let d=e.content.linked_tasks.length>0,y=(await m.getTasks(r)).filter(t=>t.featureId===e.id),g=new Set,u=o.map(t=>{let n=y.find(_=>_.body===t&&!g.has(_.id));return n&&g.add(n.id),n??null}),c=o.map((t,n)=>({ac:t,i:n})).filter(({i:t})=>u[t]===null),l=c.length>0?await m.addTasks(r,c.map(({ac:t})=>({description:I(t),body:t,priority:"medium",type:"feature",section:"backlog",featureId:e.id,groupId:e.id,groupName:e.title}))):[],b=new Map(c.map(({i:t},n)=>[t,l[n].id])),i=o.map((t,n)=>u[n]?.id??b.get(n));for(let t of i)s.linkTask(r,e.id,t);let k=s.get(r,e.id);if(k){let t={...k.content,tasks_created_at:h()};s.updateContent(r,e.id,t)}let f=i.length-l.length;return await w.remember(a,{type:"spec",content:`Auto-breakdown: ${l.length} tasks created${f>0?`, ${f} adopted`:""} from ${e.title}${d?" (recovered from partial)":""}`,tags:{spec_id:e.id,event:"auto_breakdown",task_count:String(i.length),...d?{recovered:"partial"}:{}},source:e.id}),{taskIds:i,...d?{recoveredFromPartial:!0}:{}}}p(x,"breakdownSpecToTasks");function I(r){let a=r.replace(/\s+/g," ").trim();return a.length<=140?a:`${a.slice(0,137)}\u2026`}p(I,"truncateForDescription");export{x as breakdownSpecToTasks};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __pathDirname } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __pathDirname(__filename);
|
|
8
|
-
import{b as a}from"./chunk-BISPGBNN.mjs";import"./chunk-LT5WSSQO.mjs";import"./chunk-HJ4HEI45.mjs";import"./chunk-3LG3ACQV.mjs";import"./chunk-AOPJ4Z6O.mjs";import"./chunk-AUUWQH3S.mjs";import"./chunk-HDHVBB6Q.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-AKIN5WSQ.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-SVZHJZ5T.mjs";import"./chunk-CTWZQ7YI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as stateStorage};
|