prjct-cli 3.97.0 → 3.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/bin/core-chunks/{agent-HCP5FF77.mjs → agent-3N2MSSGT.mjs} +1 -1
  3. package/dist/bin/core-chunks/{agent-switch-AVSX6SLY.mjs → agent-switch-4SE6GF7R.mjs} +1 -1
  4. package/dist/bin/core-chunks/{agents-OAQXBGH3.mjs → agents-ZPNNCOH7.mjs} +1 -1
  5. package/dist/bin/core-chunks/{analysis-3A7ODSSI.mjs → analysis-OARMM4AH.mjs} +2 -2
  6. package/dist/bin/core-chunks/{auto-flush-EWSVMKQN.mjs → auto-flush-XA3V7BJ6.mjs} +1 -1
  7. package/dist/bin/core-chunks/{bin-commands-LLHG2NSY.mjs → bin-commands-FYID6EYI.mjs} +5 -5
  8. package/dist/bin/core-chunks/{capture-7LQ52T6L.mjs → capture-3JJPWIF3.mjs} +1 -1
  9. package/dist/bin/core-chunks/{capture-gate-M4HM7WAI.mjs → capture-gate-G5LGVDME.mjs} +1 -1
  10. package/dist/bin/core-chunks/{ceremonies-4OZ3FKRE.mjs → ceremonies-B565WDCA.mjs} +4 -4
  11. package/dist/bin/core-chunks/{changelog-CUNVCEL5.mjs → changelog-LPJ4GKB6.mjs} +1 -1
  12. package/dist/bin/core-chunks/{chunk-DN46DLU3.mjs → chunk-2FRLIQKX.mjs} +1 -1
  13. package/dist/bin/core-chunks/{chunk-X4FR5S7E.mjs → chunk-2VRS5CUH.mjs} +1 -1
  14. package/dist/bin/core-chunks/{chunk-ZK7BMUMR.mjs → chunk-2VXPFULA.mjs} +1 -1
  15. package/dist/bin/core-chunks/chunk-3OWKIRK6.mjs +7 -0
  16. package/dist/bin/core-chunks/{chunk-V5VCXMKO.mjs → chunk-5DZ2LTII.mjs} +1 -1
  17. package/dist/bin/core-chunks/{chunk-5ONMON5L.mjs → chunk-5OWPZWEU.mjs} +1 -1
  18. package/dist/bin/core-chunks/{chunk-KWC2PCPC.mjs → chunk-5TGZSK4C.mjs} +1 -1
  19. package/dist/bin/core-chunks/chunk-5ZBACKED.mjs +14 -0
  20. package/dist/bin/core-chunks/{chunk-X35YYOFE.mjs → chunk-6KNMT46X.mjs} +2 -2
  21. package/dist/bin/core-chunks/{chunk-5MN22JFI.mjs → chunk-6POAOY5C.mjs} +1 -1
  22. package/dist/bin/core-chunks/{chunk-7CI4AMVO.mjs → chunk-6U3CYLY5.mjs} +1 -1
  23. package/dist/bin/core-chunks/{chunk-J7T5IEFJ.mjs → chunk-6U3MV7KZ.mjs} +1 -1
  24. package/dist/bin/core-chunks/{chunk-2ZPM4Z6W.mjs → chunk-7BU6SJBC.mjs} +4 -4
  25. package/dist/bin/core-chunks/{chunk-ZKJZDOPT.mjs → chunk-ACIOJQSI.mjs} +1 -1
  26. package/dist/bin/core-chunks/{chunk-UE3XKXWM.mjs → chunk-ALTQ3KL4.mjs} +1 -1
  27. package/dist/bin/core-chunks/{chunk-IVGWOY3U.mjs → chunk-ANBDOI53.mjs} +1 -1
  28. package/dist/bin/core-chunks/{chunk-LZC6NGB6.mjs → chunk-B2HY22OD.mjs} +2 -2
  29. package/dist/bin/core-chunks/{chunk-6AFXUX2M.mjs → chunk-BUD3R6LF.mjs} +2 -2
  30. package/dist/bin/core-chunks/{chunk-MDONTD7O.mjs → chunk-CA2VFWFP.mjs} +1 -1
  31. package/dist/bin/core-chunks/{chunk-56FW4P6U.mjs → chunk-CB3CNJTL.mjs} +1 -1
  32. package/dist/bin/core-chunks/{chunk-6FFOWWH2.mjs → chunk-CVKMV22J.mjs} +1 -1
  33. package/dist/bin/core-chunks/{chunk-5UUITMRX.mjs → chunk-CXKDKMYE.mjs} +1 -1
  34. package/dist/bin/core-chunks/{chunk-XSZG3CBO.mjs → chunk-DTMZBK4E.mjs} +1 -1
  35. package/dist/bin/core-chunks/chunk-DW4QMD6J.mjs +10 -0
  36. package/dist/bin/core-chunks/{chunk-CDLZLTRY.mjs → chunk-DZDEBDAB.mjs} +1 -1
  37. package/dist/bin/core-chunks/{chunk-WGDE3L33.mjs → chunk-FOUBHU4X.mjs} +1 -1
  38. package/dist/bin/core-chunks/{chunk-CNWEQUB7.mjs → chunk-HA7Y76GF.mjs} +1 -1
  39. package/dist/bin/core-chunks/{chunk-MTDCRYLP.mjs → chunk-HVXWQ2XZ.mjs} +1 -1
  40. package/dist/bin/core-chunks/{chunk-OYXQRBVM.mjs → chunk-IJNKHQIS.mjs} +1 -1
  41. package/dist/bin/core-chunks/{chunk-KIRU4QFX.mjs → chunk-J6Y7IVFQ.mjs} +1 -1
  42. package/dist/bin/core-chunks/{chunk-3FXNIJCS.mjs → chunk-JGGQSMZC.mjs} +1 -1
  43. package/dist/bin/core-chunks/{chunk-6P4GMVUZ.mjs → chunk-KI4OY3UQ.mjs} +1 -1
  44. package/dist/bin/core-chunks/{chunk-BTCCUMKI.mjs → chunk-L3DJN3XD.mjs} +1 -1
  45. package/dist/bin/core-chunks/{chunk-CEOTHJIY.mjs → chunk-LFOQ7FCR.mjs} +1 -1
  46. package/dist/bin/core-chunks/{chunk-XU3BQPBU.mjs → chunk-LGX2GM45.mjs} +1 -1
  47. package/dist/bin/core-chunks/chunk-LTKUTRRL.mjs +7 -0
  48. package/dist/bin/core-chunks/{chunk-BQKDJ3U6.mjs → chunk-LZILSE5H.mjs} +1 -1
  49. package/dist/bin/core-chunks/chunk-MPU3VM6Z.mjs +7 -0
  50. package/dist/bin/core-chunks/{chunk-INM5COWM.mjs → chunk-MXJF3FA7.mjs} +1 -1
  51. package/dist/bin/core-chunks/{chunk-VDXTMAMO.mjs → chunk-NNILF7R3.mjs} +1 -1
  52. package/dist/bin/core-chunks/{chunk-WZXUFSVT.mjs → chunk-O5VCBMEK.mjs} +1 -1
  53. package/dist/bin/core-chunks/{chunk-XYDLXF5A.mjs → chunk-OE27RFLJ.mjs} +1 -1
  54. package/dist/bin/core-chunks/{chunk-HEXSVBUP.mjs → chunk-OGM34Z6W.mjs} +1 -1
  55. package/dist/bin/core-chunks/{chunk-KKIJAEYU.mjs → chunk-OXKGN3HG.mjs} +1 -1
  56. package/dist/bin/core-chunks/{chunk-QLMZW4K7.mjs → chunk-PQTR6XVW.mjs} +1 -1
  57. package/dist/bin/core-chunks/{chunk-53ZPEZLU.mjs → chunk-Q7GJIU6D.mjs} +1 -1
  58. package/dist/bin/core-chunks/{chunk-IFLBZKKK.mjs → chunk-QWRPJARA.mjs} +1 -1
  59. package/dist/bin/core-chunks/{chunk-TGNZI4KF.mjs → chunk-STFUT7R7.mjs} +2 -2
  60. package/dist/bin/core-chunks/{chunk-IMQCXC3R.mjs → chunk-SUXIKMTS.mjs} +1 -1
  61. package/dist/bin/core-chunks/{chunk-WP5IU4W4.mjs → chunk-TOORPP6K.mjs} +1 -1
  62. package/dist/bin/core-chunks/{chunk-7QMBIMEX.mjs → chunk-UAYTDSYG.mjs} +3 -3
  63. package/dist/bin/core-chunks/{chunk-PPERWRFS.mjs → chunk-UNIBFM6J.mjs} +1 -1
  64. package/dist/bin/core-chunks/{chunk-5YSPND5J.mjs → chunk-UX2ORID4.mjs} +1 -1
  65. package/dist/bin/core-chunks/{chunk-3JD6KRNJ.mjs → chunk-VJCTTFKP.mjs} +1 -1
  66. package/dist/bin/core-chunks/chunk-W23JLJJZ.mjs +109 -0
  67. package/dist/bin/core-chunks/{chunk-DCVPNFS4.mjs → chunk-WCTVZQBG.mjs} +1 -1
  68. package/dist/bin/core-chunks/{chunk-GOIBJ7PV.mjs → chunk-WZ6W5ZQ5.mjs} +1 -1
  69. package/dist/bin/core-chunks/{chunk-XPRLQIVQ.mjs → chunk-X433BB6F.mjs} +1 -1
  70. package/dist/bin/core-chunks/{chunk-ZHTYSYZC.mjs → chunk-XBR63NJA.mjs} +1 -1
  71. package/dist/bin/core-chunks/{chunk-ZS7XJUPE.mjs → chunk-XJTEPHLC.mjs} +1 -1
  72. package/dist/bin/core-chunks/{chunk-K25HGTC3.mjs → chunk-XLAGA5B7.mjs} +1 -1
  73. package/dist/bin/core-chunks/{chunk-3USVY66O.mjs → chunk-XSZOHNL4.mjs} +1 -1
  74. package/dist/bin/core-chunks/{chunk-TTN2CFZC.mjs → chunk-XWLTEAGN.mjs} +1 -1
  75. package/dist/bin/core-chunks/{chunk-V3Y3G2DE.mjs → chunk-YOWW4LHK.mjs} +1 -1
  76. package/dist/bin/core-chunks/{chunk-P53YMOKR.mjs → chunk-YPLFWN62.mjs} +1 -1
  77. package/dist/bin/core-chunks/{chunk-ZQHSJ6FF.mjs → chunk-ZAUJWUUN.mjs} +3 -3
  78. package/dist/bin/core-chunks/{chunk-WSVMQYYU.mjs → chunk-ZQ2XH76U.mjs} +2 -2
  79. package/dist/bin/core-chunks/{chunk-RXXXA7Z6.mjs → chunk-ZSANMA7K.mjs} +1 -1
  80. package/dist/bin/core-chunks/{chunk-AJTBFIH2.mjs → chunk-ZZR3LXCK.mjs} +1 -1
  81. package/dist/bin/core-chunks/{cleanup-installs-WHXUGAHM.mjs → cleanup-installs-LD43GI4K.mjs} +1 -1
  82. package/dist/bin/core-chunks/{cloud-FFUJZLDV.mjs → cloud-RXHFZ7MX.mjs} +1 -1
  83. package/dist/bin/core-chunks/{code-SU7GCPH6.mjs → code-IYK65A62.mjs} +1 -1
  84. package/dist/bin/core-chunks/{codex-hooks-GOLMCL2Q.mjs → codex-hooks-N5UHKK5B.mjs} +1 -1
  85. package/dist/bin/core-chunks/{codex-mcp-K4X2UIQF.mjs → codex-mcp-G7WNAT6T.mjs} +1 -1
  86. package/dist/bin/core-chunks/{codex-skill-3HNVU4T4.mjs → codex-skill-IZNP76BJ.mjs} +1 -1
  87. package/dist/bin/core-chunks/{command-installer-XIQK2G6W.mjs → command-installer-4ENM4GZR.mjs} +1 -1
  88. package/dist/bin/core-chunks/{config-W3RHV3GK.mjs → config-UVF7YOR6.mjs} +1 -1
  89. package/dist/bin/core-chunks/{config-manager-QVFHXIKI.mjs → config-manager-QY73WM5U.mjs} +1 -1
  90. package/dist/bin/core-chunks/{context-4KGTUAC4.mjs → context-4GB6ICXK.mjs} +1 -1
  91. package/dist/bin/core-chunks/{context-DDHC7VIC.mjs → context-MPHOQPXF.mjs} +2 -2
  92. package/dist/bin/core-chunks/{context-checkpoint-4CEUPEVG.mjs → context-checkpoint-NBI5HKPV.mjs} +1 -1
  93. package/dist/bin/core-chunks/{context-tiers-4S6H22NP.mjs → context-tiers-NOKJ75QP.mjs} +1 -1
  94. package/dist/bin/core-chunks/{context7-service-AZWDYK5Z.mjs → context7-service-2MYRUNKY.mjs} +1 -1
  95. package/dist/bin/core-chunks/{core-PR5WEQCS.mjs → core-WMEHDCOK.mjs} +1 -1
  96. package/dist/bin/core-chunks/{crew-JQCG6NS3.mjs → crew-EYVSIX4L.mjs} +1 -1
  97. package/dist/bin/core-chunks/{cwd-changed-ODKZVSPB.mjs → cwd-changed-EUJZOBIC.mjs} +1 -1
  98. package/dist/bin/core-chunks/{daemon-2NQTBFVR.mjs → daemon-QARP3RVX.mjs} +1 -1
  99. package/dist/bin/core-chunks/{developer-profile-MRPBWL2K.mjs → developer-profile-2VSFJGCU.mjs} +1 -1
  100. package/dist/bin/core-chunks/{distill-MLDZG5RA.mjs → distill-ZF7WHGCZ.mjs} +1 -1
  101. package/dist/bin/core-chunks/doctor-heal-XFSVPSEY.mjs +7 -0
  102. package/dist/bin/core-chunks/{doctor-service-WXLB2FEE.mjs → doctor-service-6ZJBWIXR.mjs} +1 -1
  103. package/dist/bin/core-chunks/{dynasty-outcomes-H2O546OL.mjs → dynasty-outcomes-KDWIEA4Y.mjs} +1 -1
  104. package/dist/bin/core-chunks/{embeddings-7A5Z5I67.mjs → embeddings-354ZYFKX.mjs} +1 -1
  105. package/dist/bin/core-chunks/{enriched-recall-YXK7EIKH.mjs → enriched-recall-MKBOXB7M.mjs} +1 -1
  106. package/dist/bin/core-chunks/{eval-4YFUBFLV.mjs → eval-O4YD6YOV.mjs} +2 -2
  107. package/dist/bin/core-chunks/{format-5V6GF6JJ.mjs → format-SYVL4CV5.mjs} +1 -1
  108. package/dist/bin/core-chunks/{gemini-settings-ZTU3VQU3.mjs → gemini-settings-RGD7JLSP.mjs} +1 -1
  109. package/dist/bin/core-chunks/{grok-mcp-F3SRFMCW.mjs → grok-mcp-IE2RRRRW.mjs} +1 -1
  110. package/dist/bin/core-chunks/{grok-plugin-4CE2WUYI.mjs → grok-plugin-SSANHBS7.mjs} +1 -1
  111. package/dist/bin/core-chunks/{grok-skill-GLSBOOKW.mjs → grok-skill-7ZP7R7KO.mjs} +1 -1
  112. package/dist/bin/core-chunks/{guard-FJBJ6IAE.mjs → guard-RT7U3LJX.mjs} +1 -1
  113. package/dist/bin/core-chunks/{guards-LFUFKVVH.mjs → guards-AXH6V2IJ.mjs} +1 -1
  114. package/dist/bin/core-chunks/{harness-FN3HASSA.mjs → harness-V7J7WIT2.mjs} +2 -2
  115. package/dist/bin/core-chunks/{health-W2VWME7Z.mjs → health-TNB5OC37.mjs} +1 -1
  116. package/dist/bin/core-chunks/{help-I37I3V2R.mjs → help-P7EYELVK.mjs} +1 -1
  117. package/dist/bin/core-chunks/{hooks-service-C2P5DRCH.mjs → hooks-service-REI56DDC.mjs} +1 -1
  118. package/dist/bin/core-chunks/{install-XP4S6HWQ.mjs → install-FZQJJWT5.mjs} +2 -2
  119. package/dist/bin/core-chunks/{judgment-GJE332LF.mjs → judgment-G5KH6QFC.mjs} +2 -2
  120. package/dist/bin/core-chunks/{judgment-receipt-WT4EMCAV.mjs → judgment-receipt-GO6QEZQC.mjs} +1 -1
  121. package/dist/bin/core-chunks/{kimi-hooks-2UEUIKXV.mjs → kimi-hooks-TR6J3OVG.mjs} +1 -1
  122. package/dist/bin/core-chunks/{kimi-mcp-DJCXZ2JY.mjs → kimi-mcp-ETG7O6O5.mjs} +1 -1
  123. package/dist/bin/core-chunks/{land-cue-5USQ64MS.mjs → land-cue-3BUD3KJJ.mjs} +1 -1
  124. package/dist/bin/core-chunks/{land-rho-ISNVEPVC.mjs → land-rho-MCTQDPRH.mjs} +1 -1
  125. package/dist/bin/core-chunks/{land-synthesis-CHARJMUP.mjs → land-synthesis-MU4EZEYL.mjs} +1 -1
  126. package/dist/bin/core-chunks/{lean-L53CKZNH.mjs → lean-26BWCUOR.mjs} +1 -1
  127. package/dist/bin/core-chunks/{legacy-crew-sweep-2TLKJTHI.mjs → legacy-crew-sweep-G5UJT2PM.mjs} +2 -2
  128. package/dist/bin/core-chunks/{llm-XMH7WTHV.mjs → llm-KMVXVBHG.mjs} +1 -1
  129. package/dist/bin/core-chunks/{mcp-FLVIZBV2.mjs → mcp-BD5TOTCK.mjs} +1 -1
  130. package/dist/bin/core-chunks/{memory-dream-EJWI4FJO.mjs → memory-dream-6GFV2GXN.mjs} +1 -1
  131. package/dist/bin/core-chunks/{memory-export-27HTNNFI.mjs → memory-export-WJ4H7CFV.mjs} +1 -1
  132. package/dist/bin/core-chunks/{memory-index-BRZDZ2BY.mjs → memory-index-7NIU34EI.mjs} +1 -1
  133. package/dist/bin/core-chunks/{notification-KJ4FQJAW.mjs → notification-G654IX3O.mjs} +1 -1
  134. package/dist/bin/core-chunks/{notify-76B7AICZ.mjs → notify-EWYUBKGO.mjs} +1 -1
  135. package/dist/bin/core-chunks/{opencode-mcp-5YSIYDI3.mjs → opencode-mcp-L7NC77JF.mjs} +1 -1
  136. package/dist/bin/core-chunks/{pack-integrity-GXN67LJB.mjs → pack-integrity-X277OVRB.mjs} +1 -1
  137. package/dist/bin/core-chunks/{pack-manager-46SPIPPD.mjs → pack-manager-VN7F6R47.mjs} +1 -1
  138. package/dist/bin/core-chunks/package-R4FUTGOE.mjs +7 -0
  139. package/dist/bin/core-chunks/{pi-skill-SDHTUK3V.mjs → pi-skill-IZQEUILZ.mjs} +1 -1
  140. package/dist/bin/core-chunks/{planning-S3MYVWH6.mjs → planning-NOWLKZDS.mjs} +2 -2
  141. package/dist/bin/core-chunks/{post-edit-5YSNEMK7.mjs → post-edit-GTBY32JU.mjs} +1 -1
  142. package/dist/bin/core-chunks/{pre-bash-GLDILCRF.mjs → pre-bash-32ZOGNSP.mjs} +1 -1
  143. package/dist/bin/core-chunks/{pre-commit-U6HPPNIC.mjs → pre-commit-7TU2A7H4.mjs} +1 -1
  144. package/dist/bin/core-chunks/{pre-edit-PEYQA6P6.mjs → pre-edit-ASEWA5TS.mjs} +1 -1
  145. package/dist/bin/core-chunks/{pre-package-76JR5GLO.mjs → pre-package-ZTZACEBB.mjs} +1 -1
  146. package/dist/bin/core-chunks/{pre-search-5EHNUOP3.mjs → pre-search-MKDRFJSE.mjs} +1 -1
  147. package/dist/bin/core-chunks/{preferences-BTSYWYUM.mjs → preferences-KO5U2ELK.mjs} +1 -1
  148. package/dist/bin/core-chunks/{primitives-IXAYLX7U.mjs → primitives-GNUMBYOK.mjs} +1 -1
  149. package/dist/bin/core-chunks/{prjct-md-SUDFWDCS.mjs → prjct-md-BSFV7OQQ.mjs} +1 -1
  150. package/dist/bin/core-chunks/{product-KKGJ6MMF.mjs → product-GUHSUNIH.mjs} +1 -1
  151. package/dist/bin/core-chunks/{project-agent-surfaces-I2CUZUIN.mjs → project-agent-surfaces-BXCJJXB7.mjs} +1 -1
  152. package/dist/bin/core-chunks/{project-memory-GYLYIJQD.mjs → project-memory-L5MDZYST.mjs} +1 -1
  153. package/dist/bin/core-chunks/{project-style-evolution-5W25UPPN.mjs → project-style-evolution-HIMSJQQB.mjs} +1 -1
  154. package/dist/bin/core-chunks/prompt-47YP5JIR.mjs +25 -0
  155. package/dist/bin/core-chunks/{purge-5EPJV25P.mjs → purge-6SJKHKIY.mjs} +1 -1
  156. package/dist/bin/core-chunks/{registry-LK6IQ5UX.mjs → registry-YM2EYUXY.mjs} +1 -1
  157. package/dist/bin/core-chunks/{retention-S22T3SPT.mjs → retention-QSXWKE4H.mjs} +1 -1
  158. package/dist/bin/core-chunks/{retro-CLKOHAN6.mjs → retro-B2EBN4TA.mjs} +1 -1
  159. package/dist/bin/core-chunks/{review-risk-LLLBKUXT.mjs → review-risk-LBPY5M3K.mjs} +1 -1
  160. package/dist/bin/core-chunks/{safe-artifacts-RW5WQUUJ.mjs → safe-artifacts-PE2TMEZQ.mjs} +1 -1
  161. package/dist/bin/core-chunks/{sdd-HE7O6N5S.mjs → sdd-3WNZJ6FU.mjs} +1 -1
  162. package/dist/bin/core-chunks/{seed-JX7W53E5.mjs → seed-MMDJE2UO.mjs} +2 -2
  163. package/dist/bin/core-chunks/{self-heal-DFUEKNF3.mjs → self-heal-R5FBXEVQ.mjs} +1 -1
  164. package/dist/bin/core-chunks/{session-continuity-BFSW4OL6.mjs → session-continuity-OQDB5UYI.mjs} +1 -1
  165. package/dist/bin/core-chunks/{session-start-HVYUKJL2.mjs → session-start-FM6UL7MT.mjs} +1 -1
  166. package/dist/bin/core-chunks/{setup-GHS24ER5.mjs → setup-BL36ZWPW.mjs} +2 -2
  167. package/dist/bin/core-chunks/{setup-J4JFYT63.mjs → setup-V75BWRHU.mjs} +2 -2
  168. package/dist/bin/core-chunks/{shipping-I4D4AVTE.mjs → shipping-NZVM57JJ.mjs} +4 -4
  169. package/dist/bin/core-chunks/{signals-digest-V44KYN6Z.mjs → signals-digest-P5BG6MZF.mjs} +1 -1
  170. package/dist/bin/core-chunks/{skill-adherence-MHY4BZL4.mjs → skill-adherence-JE3N3Y67.mjs} +1 -1
  171. package/dist/bin/core-chunks/{spec-2XXPLHUZ.mjs → spec-VC3VTUI3.mjs} +3 -3
  172. package/dist/bin/core-chunks/{spec-context-inference-THFMXC7S.mjs → spec-context-inference-KOINWBC7.mjs} +1 -1
  173. package/dist/bin/core-chunks/{spec-service-I23KJKKP.mjs → spec-service-UZ53XL6X.mjs} +1 -1
  174. package/dist/bin/core-chunks/{spec-task-breakdown-HTG6ME6G.mjs → spec-task-breakdown-3Y7YXCIQ.mjs} +1 -1
  175. package/dist/bin/core-chunks/{stop-2H57XCGZ.mjs → stop-6SH36ULT.mjs} +3 -3
  176. package/dist/bin/core-chunks/{subagent-start-5LPASXOS.mjs → subagent-start-TVGBV2V2.mjs} +1 -1
  177. package/dist/bin/core-chunks/{subagent-stop-ANLSG3KN.mjs → subagent-stop-APWY6KMX.mjs} +1 -1
  178. package/dist/bin/core-chunks/{surface-attribution-WL7S53XX.mjs → surface-attribution-CQVM2SWY.mjs} +1 -1
  179. package/dist/bin/core-chunks/{task-service-FK7FC3PE.mjs → task-service-KFYL5NT4.mjs} +1 -1
  180. package/dist/bin/core-chunks/{tdd-NQDHU62B.mjs → tdd-P2PP4RR4.mjs} +1 -1
  181. package/dist/bin/core-chunks/{team-XZ4Q6UBV.mjs → team-WKAAOEFE.mjs} +1 -1
  182. package/dist/bin/core-chunks/{template-loader-33OVJ4G5.mjs → template-loader-H4FE37HV.mjs} +1 -1
  183. package/dist/bin/core-chunks/{uninstall-6NFON7FO.mjs → uninstall-W6EAUS7N.mjs} +1 -1
  184. package/dist/bin/core-chunks/{update-4IE6SA6M.mjs → update-PSHEJJI5.mjs} +2 -2
  185. package/dist/bin/core-chunks/{update-checker-FK7MWNWN.mjs → update-checker-LZCUPWQB.mjs} +1 -1
  186. package/dist/bin/core-chunks/{version-252QLBN2.mjs → version-B5DBRVGQ.mjs} +1 -1
  187. package/dist/bin/core-chunks/{watch-service-7ZERG7RC.mjs → watch-service-7V3O52TW.mjs} +1 -1
  188. package/dist/bin/core-chunks/weak-frontier-demo-ZCDTMYRO.mjs +7 -0
  189. package/dist/bin/core-chunks/{weak-model-mode-DH66XMD2.mjs → weak-model-mode-LOAPFJPQ.mjs} +1 -1
  190. package/dist/bin/core-chunks/{work-graph-JGJWE3AV.mjs → work-graph-ZNV7S6EU.mjs} +1 -1
  191. package/dist/bin/core-chunks/{work-scope-3LXOEIUX.mjs → work-scope-XXPUH6TU.mjs} +1 -1
  192. package/dist/bin/core-chunks/{workflow-FGJVLRQ3.mjs → workflow-XM77QYRF.mjs} +2 -2
  193. package/dist/bin/core-chunks/{workflows-reference-UWKRZ6BJ.mjs → workflows-reference-T7RH7IGJ.mjs} +1 -1
  194. package/dist/bin/core-chunks/{world-model-impact-RH5WH2B3.mjs → world-model-impact-FAGGNUGN.mjs} +1 -1
  195. package/dist/bin/hook-chunks/{agent-switch-7GOGG4KG.mjs → agent-switch-TAJWH2ZD.mjs} +1 -1
  196. package/dist/bin/hook-chunks/{analysis-UI2JRLJO.mjs → analysis-34WDLUXK.mjs} +2 -2
  197. package/dist/bin/hook-chunks/{auto-flush-JKIXTI2I.mjs → auto-flush-7TIEBPPQ.mjs} +1 -1
  198. package/dist/bin/hook-chunks/{capture-gate-DIPHPNIC.mjs → capture-gate-JFVGG7RB.mjs} +1 -1
  199. package/dist/bin/hook-chunks/{chunk-XXVHUYL7.mjs → chunk-22CBVTZ3.mjs} +1 -1
  200. package/dist/bin/hook-chunks/{chunk-ZH2MF7H7.mjs → chunk-3JOZN7YJ.mjs} +1 -1
  201. package/dist/bin/hook-chunks/{chunk-Y7RDBMNC.mjs → chunk-4X3KUIXK.mjs} +1 -1
  202. package/dist/bin/hook-chunks/{chunk-6RS7PNAN.mjs → chunk-5ALQBNIZ.mjs} +1 -1
  203. package/dist/bin/hook-chunks/{chunk-IL36ER4U.mjs → chunk-5VPZI2ZF.mjs} +1 -1
  204. package/dist/bin/hook-chunks/{chunk-FBEDUKMG.mjs → chunk-6EHYPQ5U.mjs} +1 -1
  205. package/dist/bin/hook-chunks/chunk-7H5UVM6X.mjs +9 -0
  206. package/dist/bin/hook-chunks/{chunk-IDPBMN3Q.mjs → chunk-A3R47SP6.mjs} +1 -1
  207. package/dist/bin/hook-chunks/{chunk-UI25YRTY.mjs → chunk-CGAKJDKT.mjs} +1 -1
  208. package/dist/bin/hook-chunks/{chunk-6LU777GI.mjs → chunk-CJY4Y5SO.mjs} +1 -1
  209. package/dist/bin/hook-chunks/{chunk-WIA6ORIY.mjs → chunk-FSFURDAE.mjs} +1 -1
  210. package/dist/bin/hook-chunks/{chunk-6WDRJ7J7.mjs → chunk-FTBBQHI4.mjs} +1 -1
  211. package/dist/bin/hook-chunks/{chunk-25OGCQTR.mjs → chunk-G4VJKPG7.mjs} +3 -3
  212. package/dist/bin/hook-chunks/{chunk-PFORBQBF.mjs → chunk-GAJOSSB4.mjs} +2 -2
  213. package/dist/bin/hook-chunks/{chunk-KOLXYWOA.mjs → chunk-H3GIYI4Q.mjs} +2 -2
  214. package/dist/bin/hook-chunks/{chunk-B7MHIUFA.mjs → chunk-HRU2KNEB.mjs} +1 -1
  215. package/dist/bin/hook-chunks/{chunk-JF6DFOQK.mjs → chunk-LCGWETJ6.mjs} +1 -1
  216. package/dist/bin/hook-chunks/{chunk-PQJ64L6U.mjs → chunk-MG2DNP4Z.mjs} +1 -1
  217. package/dist/bin/hook-chunks/chunk-NGB6JNSB.mjs +18 -0
  218. package/dist/bin/hook-chunks/{chunk-AEDB75AK.mjs → chunk-OALZUWC6.mjs} +1 -1
  219. package/dist/bin/hook-chunks/{chunk-IFIENAZU.mjs → chunk-PZMBZ6GE.mjs} +1 -1
  220. package/dist/bin/hook-chunks/{chunk-F3PNT2DQ.mjs → chunk-QIB6Y6AH.mjs} +2 -2
  221. package/dist/bin/hook-chunks/{chunk-ZXON2U5F.mjs → chunk-QMNZPNVY.mjs} +1 -1
  222. package/dist/bin/hook-chunks/{chunk-B2ZA5ZAO.mjs → chunk-R4YDE3GU.mjs} +1 -1
  223. package/dist/bin/hook-chunks/{chunk-UBWUQ64A.mjs → chunk-RFKRKUHB.mjs} +1 -1
  224. package/dist/bin/hook-chunks/{chunk-NMB6YSAH.mjs → chunk-RGOTJCZU.mjs} +1 -1
  225. package/dist/bin/hook-chunks/{chunk-ANSRNEEI.mjs → chunk-T2KVL6PZ.mjs} +1 -1
  226. package/dist/bin/hook-chunks/{chunk-HNZ24HIK.mjs → chunk-T7DRHVK3.mjs} +2 -2
  227. package/dist/bin/hook-chunks/{chunk-IHEOOJJT.mjs → chunk-TWFLW6OJ.mjs} +1 -1
  228. package/dist/bin/hook-chunks/{chunk-ONGVBXBD.mjs → chunk-UJIOGFNP.mjs} +1 -1
  229. package/dist/bin/hook-chunks/{chunk-NSTXHVTH.mjs → chunk-UK24P7PV.mjs} +2 -2
  230. package/dist/bin/hook-chunks/{chunk-63P5VOR6.mjs → chunk-ULNGKZB6.mjs} +4 -4
  231. package/dist/bin/hook-chunks/{chunk-UMJ5D5I6.mjs → chunk-UWHVPO6X.mjs} +2 -2
  232. package/dist/bin/hook-chunks/{chunk-A6LRNS6R.mjs → chunk-XC2BSGWF.mjs} +1 -1
  233. package/dist/bin/hook-chunks/{chunk-7PA4KPSR.mjs → chunk-ZPAY2NSF.mjs} +2 -2
  234. package/dist/bin/hook-chunks/{codex-skill-UZZCACMB.mjs → codex-skill-BFRU5FTP.mjs} +1 -1
  235. package/dist/bin/hook-chunks/{command-installer-FJ73C2ZW.mjs → command-installer-3XOZGKOQ.mjs} +1 -1
  236. package/dist/bin/hook-chunks/{config-manager-XDKOTIJM.mjs → config-manager-UPB7NEXF.mjs} +1 -1
  237. package/dist/bin/hook-chunks/{context7-service-NH4BMGSJ.mjs → context7-service-7VFXEQVN.mjs} +1 -1
  238. package/dist/bin/hook-chunks/{cwd-changed-STP3LH6Y.mjs → cwd-changed-USNJYUH7.mjs} +1 -1
  239. package/dist/bin/hook-chunks/{distill-63BHUJAC.mjs → distill-47YVL7IH.mjs} +1 -1
  240. package/dist/bin/hook-chunks/{enriched-recall-6F6LBYAB.mjs → enriched-recall-CVYI52NO.mjs} +1 -1
  241. package/dist/bin/hook-chunks/{format-VJ2YQ4XQ.mjs → format-DPIN45EG.mjs} +1 -1
  242. package/dist/bin/hook-chunks/{judgment-receipt-LSJCAYBT.mjs → judgment-receipt-G2DKQR7U.mjs} +1 -1
  243. package/dist/bin/hook-chunks/{land-cue-DEO2AZW4.mjs → land-cue-3JD2TXFP.mjs} +1 -1
  244. package/dist/bin/hook-chunks/{land-synthesis-GTMFIGDM.mjs → land-synthesis-5C4KGCTB.mjs} +1 -1
  245. package/dist/bin/hook-chunks/{legacy-crew-sweep-QPKU7ITU.mjs → legacy-crew-sweep-XQNXNZES.mjs} +2 -2
  246. package/dist/bin/hook-chunks/{memory-index-KCMXQGKX.mjs → memory-index-LL6SQJ2N.mjs} +1 -1
  247. package/dist/bin/hook-chunks/{notification-DX6ZHOUC.mjs → notification-ACQBRJG3.mjs} +1 -1
  248. package/dist/bin/hook-chunks/{pack-integrity-UMLIB5RQ.mjs → pack-integrity-DCXVRRJZ.mjs} +1 -1
  249. package/dist/bin/hook-chunks/{pack-manager-YXRK2TJ4.mjs → pack-manager-KYWKNYUY.mjs} +1 -1
  250. package/dist/bin/hook-chunks/{planning-JR7O5MYW.mjs → planning-KOU3XKWS.mjs} +2 -2
  251. package/dist/bin/hook-chunks/{post-edit-IPTVSRVG.mjs → post-edit-CK2MYQEN.mjs} +1 -1
  252. package/dist/bin/hook-chunks/{pre-bash-5WWTH36N.mjs → pre-bash-W5A5CTR3.mjs} +1 -1
  253. package/dist/bin/hook-chunks/{pre-commit-KZ5TNTPW.mjs → pre-commit-5Q24RM4S.mjs} +1 -1
  254. package/dist/bin/hook-chunks/{pre-edit-XHPYBXRU.mjs → pre-edit-YIJ4BCYL.mjs} +1 -1
  255. package/dist/bin/hook-chunks/{pre-package-U3HDW3SX.mjs → pre-package-O4RMVA4T.mjs} +1 -1
  256. package/dist/bin/hook-chunks/{pre-search-R5CRK66E.mjs → pre-search-WYOWC3D6.mjs} +1 -1
  257. package/dist/bin/hook-chunks/{prjct-md-IBQTJBK7.mjs → prjct-md-2UVHFYTJ.mjs} +1 -1
  258. package/dist/bin/hook-chunks/{project-agent-surfaces-TPZO73ZV.mjs → project-agent-surfaces-BKFYUMRV.mjs} +1 -1
  259. package/dist/bin/hook-chunks/{project-memory-YQLZX5RG.mjs → project-memory-OC5GTJPY.mjs} +1 -1
  260. package/dist/bin/hook-chunks/{project-style-evolution-NOFCIIZZ.mjs → project-style-evolution-2IFJCACQ.mjs} +1 -1
  261. package/dist/bin/hook-chunks/prompt-JIWMP563.mjs +26 -0
  262. package/dist/bin/hook-chunks/{purge-5W3K2MZL.mjs → purge-FQK3Z4QS.mjs} +1 -1
  263. package/dist/bin/hook-chunks/{retention-GWJ4AX7I.mjs → retention-2FETBJFG.mjs} +1 -1
  264. package/dist/bin/hook-chunks/{sdd-GWBRD4KI.mjs → sdd-V43TSJ2P.mjs} +1 -1
  265. package/dist/bin/hook-chunks/{session-continuity-VH645RGR.mjs → session-continuity-RO2ACICF.mjs} +1 -1
  266. package/dist/bin/hook-chunks/{session-start-4TYTI27B.mjs → session-start-FKKFMKQ5.mjs} +1 -1
  267. package/dist/bin/hook-chunks/{setup-VF4UHUBX.mjs → setup-YV2DKG5L.mjs} +2 -2
  268. package/dist/bin/hook-chunks/{shipping-2ULWBGRX.mjs → shipping-SCNFEXBY.mjs} +4 -4
  269. package/dist/bin/hook-chunks/{spec-context-inference-HVENYOIO.mjs → spec-context-inference-BD3ANTXA.mjs} +1 -1
  270. package/dist/bin/hook-chunks/{spec-service-4XGQQPGP.mjs → spec-service-OWYOAGXS.mjs} +2 -2
  271. package/dist/bin/hook-chunks/{spec-task-breakdown-JXF556UH.mjs → spec-task-breakdown-HOTLUFDM.mjs} +1 -1
  272. package/dist/bin/hook-chunks/{stop-NJDYIIXR.mjs → stop-MIXT7WXA.mjs} +3 -3
  273. package/dist/bin/hook-chunks/{subagent-start-2YMGD4SY.mjs → subagent-start-NO3TN65K.mjs} +1 -1
  274. package/dist/bin/hook-chunks/{subagent-stop-4TZJ2NSJ.mjs → subagent-stop-CKWIXX7W.mjs} +1 -1
  275. package/dist/bin/hook-chunks/{surface-attribution-UNK4J5W2.mjs → surface-attribution-BYESPLXM.mjs} +1 -1
  276. package/dist/bin/hook-chunks/{task-service-SPUES5DO.mjs → task-service-5ONSBKKP.mjs} +1 -1
  277. package/dist/bin/hook-chunks/{tdd-MYF7I5FS.mjs → tdd-SESB4IG3.mjs} +1 -1
  278. package/dist/bin/hook-chunks/{template-loader-4SYVR2UB.mjs → template-loader-KO67FVHO.mjs} +1 -1
  279. package/dist/bin/hook-chunks/{weak-model-mode-TYJJT6JJ.mjs → weak-model-mode-HPXBKXJT.mjs} +1 -1
  280. package/dist/bin/hook-chunks/{work-scope-A6XPENFE.mjs → work-scope-RNPGACPA.mjs} +1 -1
  281. package/dist/bin/prjct-core.mjs +3 -3
  282. package/dist/bin/prjct-hooks.mjs +1 -1
  283. package/dist/daemon/entry.mjs +591 -583
  284. package/dist/mcp/server.mjs +318 -312
  285. package/package.json +2 -1
  286. package/dist/bin/core-chunks/chunk-GDLAQV3Q.mjs +0 -14
  287. package/dist/bin/core-chunks/chunk-R7LLMJDP.mjs +0 -7
  288. package/dist/bin/core-chunks/chunk-UT425KVX.mjs +0 -10
  289. package/dist/bin/core-chunks/chunk-VILH3VYH.mjs +0 -103
  290. package/dist/bin/core-chunks/chunk-Y5SEUYET.mjs +0 -7
  291. package/dist/bin/core-chunks/doctor-heal-ZUZ2RHGY.mjs +0 -7
  292. package/dist/bin/core-chunks/package-DCGCOAGQ.mjs +0 -7
  293. package/dist/bin/core-chunks/prompt-SW5XDRMX.mjs +0 -23
  294. package/dist/bin/core-chunks/weak-frontier-demo-5C4FR3OA.mjs +0 -7
  295. package/dist/bin/hook-chunks/chunk-IWUF2LGO.mjs +0 -18
  296. package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +0 -9
  297. package/dist/bin/hook-chunks/prompt-DJWONMTZ.mjs +0 -24
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [3.98.0] - 2026-08-19
6
+
7
+ ### Added
8
+ - Reduce prjct token consumption for non-caching hosts (Kimi/Codex): session context cache, lean MCP tier, delta hook emission — target: usage windows last >=50% longer
9
+
5
10
  ## [3.97.0] - 2026-08-17
6
11
 
7
12
  ### Added
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{e as K,g as V,j as X,o as J,u as Q}from"./chunk-PPSVWUXC.mjs";import{c as N}from"./chunk-CFD6CW7T.mjs";import{e as Y}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as U,d as H,h as G}from"./chunk-5MN22JFI.mjs";import{a as z}from"./chunk-V5VCXMKO.mjs";import{e as b}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import{i as I}from"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import{b as P}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import{b as D}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as k}from"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as C}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as _,g as gt}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";import It from"node:path";import{execFile as kt}from"node:child_process";import $ from"node:fs";import{promisify as bt}from"node:util";import Z from"node:fs";import f from"node:path";var yt=/^(?:\.env(?:\..+)?|.*\.(?:pem|key|p12|pfx)|id_rsa|id_ed25519|credentials\.json|auth\.json)$/i,ht=/(?:^|\/)(?:\.ssh|\.gnupg|\.aws|\.config\/gcloud)(?:\/|$)/i,x=class extends Error{static{i(this,"PathDeniedError")}constructor(e){super(e),this.name="PathDeniedError"}};function T(t,e){if(!e||typeof e!="string")throw new x("path is required");let o=f.resolve(t),r=f.isAbsolute(e)?f.resolve(e):f.resolve(o,e),n=f.relative(o,r);if(n.startsWith("..")||f.isAbsolute(n))throw new x(`path escapes project root: ${e}`);let s=f.basename(r);if(yt.test(s))throw new x(`path blocked (secret-like name): ${s}`);let a=r.split(f.sep).join("/");if(ht.test(a))throw new x(`path blocked (sensitive directory): ${e}`);return r}i(T,"resolveSafePath");function tt(t){Z.mkdirSync(f.dirname(t),{recursive:!0})}i(tt,"ensureParentDir");function E(t){try{return Z.accessSync(t),!0}catch{return!1}}i(E,"fileExists");function w(t){return{ok:!0,content:t}}i(w,"ok");function A(t){return{ok:!1,content:t}}i(A,"fail");function j(t,e){if(typeof t!="string"||!t.trim())throw new Error(`${e} must be a non-empty string`);return t.trim()}i(j,"asString");async function S(t){try{return await C.getProjectId(t)||null}catch{return null}}i(S,"resolveProjectId");async function et(t,e,o=3){let r=await S(t);if(!r)return null;try{let n=P.recallForFile(r,e,o);return n.length===0?null:I(n,{boundary:"llm",compact:!0})}catch{return null}}i(et,"fetchGuardHits");var ot={name:"prjct_search",description:"Search durable project memory (decisions, gotchas, learnings). Prefer this before broad codebase exploration.",parameters:{type:"object",properties:{query:{type:"string",description:"Keyword / topic to search"},limit:{type:"number",description:"Max entries (default 10)"}},required:["query"]},async execute(t,e){try{let o=j(t.query,"query"),r=typeof t.limit=="number"&&t.limit>0?Math.min(t.limit,25):10,n=await S(e.root);if(!n)return w("(not a prjct project \u2014 no memory index)");let{enrichedRecall:s}=await import("./enriched-recall-YXK7EIKH.mjs"),a=await s(e.root,n,{topic:o,limit:r,expandLinks:!1});return a.length===0?w("No matching memories."):w(I(a,{boundary:"llm",compact:!0}))}catch(o){return A(o instanceof Error?o.message:String(o))}}},rt={name:"prjct_guard",description:"Anticipation: preventive memory for a file (gotchas/anti-patterns) before edit. Empty means clear to edit.",parameters:{type:"object",properties:{path:{type:"string",description:"Repo-relative file path"},limit:{type:"number",description:"Max traps (default 3)"}},required:["path"]},async execute(t,e){try{let o=j(t.path,"path"),r=typeof t.limit=="number"&&t.limit>0?t.limit:3,n=await S(e.root);if(!n)return w("clear to edit (no prjct project)");let s=P.recallForFile(n,o,r);return s.length===0?w(`No preventive memory for ${o} \u2014 clear to edit.`):w(I(s,{boundary:"llm",compact:!0}))}catch(o){return A(o instanceof Error?o.message:String(o))}}},nt={name:"prjct_remember",description:"Persist a durable memory in ENGLISH (decision|learning|gotcha|fact|\u2026). Use after resolving something non-obvious.",parameters:{type:"object",properties:{type:{type:"string",description:"Memory type e.g. decision, learning, gotcha, fact"},content:{type:"string",description:"Memory body in English"},tags:{type:"object",description:"Optional key:value tags",additionalProperties:{type:"string"}}},required:["type","content"]},async execute(t,e){try{let o=j(t.type,"type"),r=j(t.content,"content"),n=t.tags&&typeof t.tags=="object"&&!Array.isArray(t.tags)?t.tags:void 0,s=await S(e.root);return s?(await P.remember(e.root,{type:o,content:r,tags:n,projectId:s,requireWrite:!0}),w(`Saved ${o}: ${r.slice(0,100)}`)):A("Not a prjct project \u2014 cannot remember")}catch(o){return A(o instanceof Error?o.message:String(o))}}},st={name:"prjct_work",description:"Start a tracked prjct work cycle for an intent (same gates as `prjct work`). Prefer once at the beginning if none is active. Pass a real task description, not a bare CLI verb.",parameters:{type:"object",properties:{description:{type:"string",description:'Work intent (e.g. "fix null guard in auth login")'}},required:["description"]},async execute(t,e){try{let o=j(t.description,"description"),r=await S(e.root);if(!r)return A("Not a prjct project \u2014 cannot start work");let{startTask:n}=await import("./task-service-FK7FC3PE.mjs"),s=await n(r,e.root,o,{});if(!s.ok)return A(s.blocked??"Work start blocked");let a=[`Work started: ${s.taskId}`,s.description?`Description: ${s.description}`:"",s.branch?`Branch: ${s.branch}`:"",s.isolation?.worktreePath?`Worktree: ${s.isolation.worktreePath} (cd there for further edits)`:""].filter(Boolean);if(s.risks?.length){a.push("Risks:");for(let p of s.risks.slice(0,5))a.push(`- [${p.file}] ${p.title}`)}return w(a.join(`
7
+ import{e as K,g as V,j as X,o as J,u as Q}from"./chunk-PPSVWUXC.mjs";import{c as N}from"./chunk-CFD6CW7T.mjs";import{e as Y}from"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as U,d as H,h as G}from"./chunk-6POAOY5C.mjs";import{a as z}from"./chunk-5DZ2LTII.mjs";import{e as b}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import{j as I}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as P}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import{b as D}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as k}from"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as C}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as _,g as gt}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";import It from"node:path";import{execFile as kt}from"node:child_process";import $ from"node:fs";import{promisify as bt}from"node:util";import Z from"node:fs";import f from"node:path";var yt=/^(?:\.env(?:\..+)?|.*\.(?:pem|key|p12|pfx)|id_rsa|id_ed25519|credentials\.json|auth\.json)$/i,ht=/(?:^|\/)(?:\.ssh|\.gnupg|\.aws|\.config\/gcloud)(?:\/|$)/i,x=class extends Error{static{i(this,"PathDeniedError")}constructor(e){super(e),this.name="PathDeniedError"}};function T(t,e){if(!e||typeof e!="string")throw new x("path is required");let o=f.resolve(t),r=f.isAbsolute(e)?f.resolve(e):f.resolve(o,e),n=f.relative(o,r);if(n.startsWith("..")||f.isAbsolute(n))throw new x(`path escapes project root: ${e}`);let s=f.basename(r);if(yt.test(s))throw new x(`path blocked (secret-like name): ${s}`);let a=r.split(f.sep).join("/");if(ht.test(a))throw new x(`path blocked (sensitive directory): ${e}`);return r}i(T,"resolveSafePath");function tt(t){Z.mkdirSync(f.dirname(t),{recursive:!0})}i(tt,"ensureParentDir");function E(t){try{return Z.accessSync(t),!0}catch{return!1}}i(E,"fileExists");function w(t){return{ok:!0,content:t}}i(w,"ok");function A(t){return{ok:!1,content:t}}i(A,"fail");function j(t,e){if(typeof t!="string"||!t.trim())throw new Error(`${e} must be a non-empty string`);return t.trim()}i(j,"asString");async function S(t){try{return await C.getProjectId(t)||null}catch{return null}}i(S,"resolveProjectId");async function et(t,e,o=3){let r=await S(t);if(!r)return null;try{let n=P.recallForFile(r,e,o);return n.length===0?null:I(n,{boundary:"llm",compact:!0})}catch{return null}}i(et,"fetchGuardHits");var ot={name:"prjct_search",description:"Search durable project memory (decisions, gotchas, learnings). Prefer this before broad codebase exploration.",parameters:{type:"object",properties:{query:{type:"string",description:"Keyword / topic to search"},limit:{type:"number",description:"Max entries (default 10)"}},required:["query"]},async execute(t,e){try{let o=j(t.query,"query"),r=typeof t.limit=="number"&&t.limit>0?Math.min(t.limit,25):10,n=await S(e.root);if(!n)return w("(not a prjct project \u2014 no memory index)");let{enrichedRecall:s}=await import("./enriched-recall-MKBOXB7M.mjs"),a=await s(e.root,n,{topic:o,limit:r,expandLinks:!1});return a.length===0?w("No matching memories."):w(I(a,{boundary:"llm",compact:!0}))}catch(o){return A(o instanceof Error?o.message:String(o))}}},rt={name:"prjct_guard",description:"Anticipation: preventive memory for a file (gotchas/anti-patterns) before edit. Empty means clear to edit.",parameters:{type:"object",properties:{path:{type:"string",description:"Repo-relative file path"},limit:{type:"number",description:"Max traps (default 3)"}},required:["path"]},async execute(t,e){try{let o=j(t.path,"path"),r=typeof t.limit=="number"&&t.limit>0?t.limit:3,n=await S(e.root);if(!n)return w("clear to edit (no prjct project)");let s=P.recallForFile(n,o,r);return s.length===0?w(`No preventive memory for ${o} \u2014 clear to edit.`):w(I(s,{boundary:"llm",compact:!0}))}catch(o){return A(o instanceof Error?o.message:String(o))}}},nt={name:"prjct_remember",description:"Persist a durable memory in ENGLISH (decision|learning|gotcha|fact|\u2026). Use after resolving something non-obvious.",parameters:{type:"object",properties:{type:{type:"string",description:"Memory type e.g. decision, learning, gotcha, fact"},content:{type:"string",description:"Memory body in English"},tags:{type:"object",description:"Optional key:value tags",additionalProperties:{type:"string"}}},required:["type","content"]},async execute(t,e){try{let o=j(t.type,"type"),r=j(t.content,"content"),n=t.tags&&typeof t.tags=="object"&&!Array.isArray(t.tags)?t.tags:void 0,s=await S(e.root);return s?(await P.remember(e.root,{type:o,content:r,tags:n,projectId:s,requireWrite:!0}),w(`Saved ${o}: ${r.slice(0,100)}`)):A("Not a prjct project \u2014 cannot remember")}catch(o){return A(o instanceof Error?o.message:String(o))}}},st={name:"prjct_work",description:"Start a tracked prjct work cycle for an intent (same gates as `prjct work`). Prefer once at the beginning if none is active. Pass a real task description, not a bare CLI verb.",parameters:{type:"object",properties:{description:{type:"string",description:'Work intent (e.g. "fix null guard in auth login")'}},required:["description"]},async execute(t,e){try{let o=j(t.description,"description"),r=await S(e.root);if(!r)return A("Not a prjct project \u2014 cannot start work");let{startTask:n}=await import("./task-service-KFYL5NT4.mjs"),s=await n(r,e.root,o,{});if(!s.ok)return A(s.blocked??"Work start blocked");let a=[`Work started: ${s.taskId}`,s.description?`Description: ${s.description}`:"",s.branch?`Branch: ${s.branch}`:"",s.isolation?.worktreePath?`Worktree: ${s.isolation.worktreePath} (cd there for further edits)`:""].filter(Boolean);if(s.risks?.length){a.push("Risks:");for(let p of s.risks.slice(0,5))a.push(`- [${p.file}] ${p.title}`)}return w(a.join(`
8
8
  `))}catch(o){return A(o instanceof Error?o.message:String(o))}}};function M(){return[ot,rt,nt,st]}i(M,"prjctBodyTools");async function O(t,e,o){if(!o.ok)return o;let r=await et(t.root,e,3);return r?{ok:!0,content:`PREVENTIVE MEMORY (review before trusting this edit):
9
9
  ${r}
10
10
 
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c,d}from"./chunk-PPERWRFS.mjs";import"./chunk-XC6YAP36.mjs";import"./chunk-J7T5IEFJ.mjs";import"./chunk-VRFYDYQY.mjs";import"./chunk-6XTLPAPZ.mjs";import"./chunk-L5LFLI4R.mjs";import"./chunk-AS3LWTQ4.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as acceptAgentHandoff,c as formatPendingHandoffCue,d as launchTargetAgent,a as switchAgent};
7
+ import{a,b,c,d}from"./chunk-UNIBFM6J.mjs";import"./chunk-XC6YAP36.mjs";import"./chunk-6U3MV7KZ.mjs";import"./chunk-VRFYDYQY.mjs";import"./chunk-6XTLPAPZ.mjs";import"./chunk-L5LFLI4R.mjs";import"./chunk-AS3LWTQ4.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as acceptAgentHandoff,c as formatPendingHandoffCue,d as launchTargetAgent,a as switchAgent};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as m}from"./chunk-MR5XXHRK.mjs";import{a as y,b as h}from"./chunk-V3Y3G2DE.mjs";import"./chunk-5ONMON5L.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-3FXNIJCS.mjs";import{b as A}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as C}from"./chunk-V5VCXMKO.mjs";import{e as p}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import{a as M}from"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{e as R}from"./chunk-JPMUJY42.mjs";import"./chunk-WZXUFSVT.mjs";import"./chunk-CDLZLTRY.mjs";import"./chunk-CEOTHJIY.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-KWC2PCPC.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-MTDCRYLP.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as k}from"./chunk-225DWS4D.mjs";import{a}from"./chunk-3TRXQAU4.mjs";k();var j=class extends C{static{a(this,"AgentsCommands")}async agents(n=null,i=process.cwd(),t={}){let e=(n??"").trim().toLowerCase().split(/\s+/).filter(Boolean),r=e[0]??"doctor";if(r!=="doctor"&&r!=="status"&&r!=="list"&&r!=="surfaces")return p("Unknown agents subcommand. Use: prjct agents doctor | surfaces [--detail]",t);try{if(r==="surfaces"){let d=e.includes("--detail")||e.includes("detail")||t.md,g=m({detail:!!d});return console.log(t.md?g:g.replace(/^## /gm,"").replace(/^### /gm,"")),{success:!0,surfaces:!0}}let o=await R(i),u=t.fix?await $(i,t,o):null;if(u&&!v(u))return u;let l=await y(i);return t.md?console.log([S(o,u),"",h(l)].join(`
7
+ import{a as m}from"./chunk-MR5XXHRK.mjs";import{a as y,b as h}from"./chunk-YOWW4LHK.mjs";import"./chunk-5OWPZWEU.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-JGGQSMZC.mjs";import{b as A}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as C}from"./chunk-5DZ2LTII.mjs";import{e as p}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import{a as M}from"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{e as R}from"./chunk-JPMUJY42.mjs";import"./chunk-O5VCBMEK.mjs";import"./chunk-DZDEBDAB.mjs";import"./chunk-LFOQ7FCR.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as k}from"./chunk-225DWS4D.mjs";import{a}from"./chunk-3TRXQAU4.mjs";k();var j=class extends C{static{a(this,"AgentsCommands")}async agents(n=null,i=process.cwd(),t={}){let e=(n??"").trim().toLowerCase().split(/\s+/).filter(Boolean),r=e[0]??"doctor";if(r!=="doctor"&&r!=="status"&&r!=="list"&&r!=="surfaces")return p("Unknown agents subcommand. Use: prjct agents doctor | surfaces [--detail]",t);try{if(r==="surfaces"){let d=e.includes("--detail")||e.includes("detail")||t.md,g=m({detail:!!d});return console.log(t.md?g:g.replace(/^## /gm,"").replace(/^### /gm,"")),{success:!0,surfaces:!0}}let o=await R(i),u=t.fix?await $(i,t,o):null;if(u&&!v(u))return u;let l=await y(i);return t.md?console.log([S(o,u),"",h(l)].join(`
8
8
  `)):(console.log(b(o,u)),console.log(`organic: ${l.liveCount}/${l.detectedCount} live (${l.organicPct}%) \u2014 ${l.summary}`)),{success:!0,runtimes:o.length,detected:o.filter(d=>d.detected).length,fixed:!!u,organicPct:l.organicPct,liveRuntimes:l.liveCount}}catch(o){return p(f(o),t)}}};async function $(s,n,i){let t=await A(s,n);if(!t.ok)return t.result;let e=i.filter(o=>o.detected).map(o=>o.runtime.id),r=await M(s,{explicit:!0,agents:e});return{success:!0,prjctMd:r.prjctMd.action,agentsMd:r.agentsMd.action,claudeMd:r.claudeMd?.action??null,ideRules:r.ideRules}}a($,"repairAgentSurfaces");function v(s){return s.success===!0&&typeof s.prjctMd=="string"&&typeof s.agentsMd=="string"&&(s.claudeMd===null||typeof s.claudeMd=="string")&&Array.isArray(s.ideRules)}a(v,"isAgentRepairResult");function S(s,n=null){let i=["# Agent Compatibility","","| Agent | Detected | Level | AGENTS.md | MCP | Skills | Hooks | ACP | Rules | Evidence |","|---|---:|---|---:|---:|---:|---:|---:|---:|---|"];for(let t of s){let{runtime:e}=t,r=[e.displayName,t.detected?"yes":"no",t.supportLevel,c(e.supports.agentsMd),c(e.supports.mcp),c(e.supports.skills),c(e.supports.hooks),c(e.supports.acp),c(e.supports.projectRules),t.detectedSignals.join(", ")||e.notes].join(" | ");i.push(`| ${r} |`)}return n?.success&&i.push("","## Repair","",`- PRJCT.md: ${n.prjctMd}`,`- AGENTS.md: ${n.agentsMd}`,`- CLAUDE.md: ${n.claudeMd??"skipped (Claude not detected)"}`,`- IDE rule adapters: ${n.ideRules.length>0?n.ideRules.join(", "):"none needed"}`),i.push("","Support levels:","- `full`: benchmark-tier investment (Claude/Codex/Gemini/OpenCode/Cursor/Cline/Grok).","- `good`: AGENTS.md plus MCP-capable runtime.","- `baseline`: repo instructions only; agents can still run `prjct --md`.","- `hosted`: repo instructions are the portable layer; external platform config may be manual.","- `manual`: a portable standard exists, but prjct cannot configure it automatically.","",m({only:s.filter(t=>t.detected&&t.supportLevel==="full").map(t=>t.runtime.id),detail:!1}),"","Deep surface map (hooks events, MCP paths, wire status): `prjct agents surfaces --md`","Grok Build inherits Claude Code hooks/MCP/skills \u2014 `prjct install` covers Grok without a second adapter."),i.join(`
9
9
  `)}a(S,"formatMarkdown");function b(s,n=null){let i=s.filter(e=>e.detected),t=["Agent compatibility",""];n?.success&&t.push(`repair: PRJCT.md ${n.prjctMd}; AGENTS.md ${n.agentsMd}; CLAUDE.md ${n.claudeMd??"skipped"}; adapters ${n.ideRules.length>0?n.ideRules.join(", "):"none needed"}`,"");for(let e of s){let r=e.detected?"yes":"no ",o=[e.runtime.supports.agentsMd?"AGENTS.md":null,e.runtime.supports.mcp?"MCP":null,e.runtime.supports.skills?"skills":null,e.runtime.supports.hooks?"hooks":null,e.runtime.supports.acp?"ACP":null,e.runtime.supports.projectRules?"rules":null].filter(Boolean).join(", ");t.push(`${r} ${e.runtime.displayName} [${e.supportLevel}] ${o||"manual"}`),e.detectedSignals.length>0&&t.push(` evidence: ${e.detectedSignals.join(", ")}`)}return t.push("",`${i.length}/${s.length} runtimes detected.`),t.join(`
10
10
  `)}a(b,"formatText");function c(s){return s?"yes":"no"}a(c,"yes");export{j as AgentsCommands};
@@ -4,10 +4,10 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as G,b as Se,c as b,d as U,e as q,f as H}from"./chunk-TGNZI4KF.mjs";import"./chunk-Y7XOKG4O.mjs";import"./chunk-JCWA7NLM.mjs";import{a as ve,b as $e}from"./chunk-TDTPDVUM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-IVGWOY3U.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import{b as v}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as y,d as R,e as M,g as we,h as E,i as L,j as z}from"./chunk-5MN22JFI.mjs";import{a as ke}from"./chunk-V5VCXMKO.mjs";import{e as ge,f as A}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-P2KU4FFA.mjs";import"./chunk-V7R3L54M.mjs";import{a as ye,b as K}from"./chunk-TILUQF6L.mjs";import{a as D}from"./chunk-Y5SEUYET.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-R7LLMJDP.mjs";import"./chunk-CNWEQUB7.mjs";import{e as pe}from"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-X4FR5S7E.mjs";import"./chunk-5YLI5V3Q.mjs";import{f as fe}from"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import{b as he}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import{a as de}from"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import{b as me}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as d}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-XSZG3CBO.mjs";import{f as _,i as ce}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-DN46DLU3.mjs";import"./chunk-PIA26GWG.mjs";import{a as le,b as Xe}from"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{d as ue}from"./chunk-OYXQRBVM.mjs";import{F as ie,G as We,e as J,j as ae,l as X}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as N,b as ne,p as re}from"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import{l as oe,p as Qe}from"./chunk-HYIT7MF5.mjs";import{a as $,e as k,g as I}from"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";I();re();Qe();import j from"node:fs/promises";import C from"node:path";var Y=class{static{m(this,"CodebaseAnalyzer")}projectPath=null;init(e=process.cwd()){this.projectPath=e}async readPackageJson(){try{let e=C.join(this.projectPath,"package.json"),t=await j.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if($(e)||e instanceof SyntaxError)return null;throw e}}async readCargoToml(){try{let e=C.join(this.projectPath,"Cargo.toml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readRequirements(){try{let e=C.join(this.projectPath,"requirements.txt");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readGoMod(){try{let e=C.join(this.projectPath,"go.mod");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readGemfile(){try{let e=C.join(this.projectPath,"Gemfile");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readMixExs(){try{let e=C.join(this.projectPath,"mix.exs");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readPomXml(){try{let e=C.join(this.projectPath,"pom.xml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readComposerJson(){try{let e=C.join(this.projectPath,"composer.json"),t=await j.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if($(e)||e instanceof SyntaxError)return null;throw e}}async readPyprojectToml(){try{let e=C.join(this.projectPath,"pyproject.toml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async getFileExtensions(){try{let{stdout:e}=await N('find . -type f ! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" ! -path "*/.next/*" | sed "s/.*\\./\\./" | sort | uniq -c | sort -rn',{cwd:this.projectPath}),t={};return e.trim().split(`
7
+ import{a as G,b as Se,c as b,d as U,e as q,f as H}from"./chunk-STFUT7R7.mjs";import"./chunk-Y7XOKG4O.mjs";import"./chunk-JCWA7NLM.mjs";import{a as ve,b as $e}from"./chunk-TDTPDVUM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-ANBDOI53.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import{b as v}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as y,d as R,e as M,g as we,h as E,i as L,j as z}from"./chunk-6POAOY5C.mjs";import{a as ke}from"./chunk-5DZ2LTII.mjs";import{e as ge,f as A}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-P2KU4FFA.mjs";import"./chunk-V7R3L54M.mjs";import{a as ye,b as K}from"./chunk-TILUQF6L.mjs";import{a as D}from"./chunk-MPU3VM6Z.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-LTKUTRRL.mjs";import"./chunk-HA7Y76GF.mjs";import{e as pe}from"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-2VRS5CUH.mjs";import"./chunk-5YLI5V3Q.mjs";import{g as fe}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as he}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import{a as de}from"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import{b as me}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as d}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DTMZBK4E.mjs";import{f as _,i as ce}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-2FRLIQKX.mjs";import"./chunk-PIA26GWG.mjs";import{a as le,b as Xe}from"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{d as ue}from"./chunk-IJNKHQIS.mjs";import{F as ie,G as We,e as J,j as ae,l as X}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as N,b as ne,p as re}from"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import{l as oe,p as Qe}from"./chunk-HYIT7MF5.mjs";import{a as $,e as k,g as I}from"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";I();re();Qe();import j from"node:fs/promises";import C from"node:path";var Y=class{static{m(this,"CodebaseAnalyzer")}projectPath=null;init(e=process.cwd()){this.projectPath=e}async readPackageJson(){try{let e=C.join(this.projectPath,"package.json"),t=await j.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if($(e)||e instanceof SyntaxError)return null;throw e}}async readCargoToml(){try{let e=C.join(this.projectPath,"Cargo.toml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readRequirements(){try{let e=C.join(this.projectPath,"requirements.txt");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readGoMod(){try{let e=C.join(this.projectPath,"go.mod");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readGemfile(){try{let e=C.join(this.projectPath,"Gemfile");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readMixExs(){try{let e=C.join(this.projectPath,"mix.exs");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readPomXml(){try{let e=C.join(this.projectPath,"pom.xml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async readComposerJson(){try{let e=C.join(this.projectPath,"composer.json"),t=await j.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if($(e)||e instanceof SyntaxError)return null;throw e}}async readPyprojectToml(){try{let e=C.join(this.projectPath,"pyproject.toml");return await j.readFile(e,"utf-8")}catch(e){if($(e))return null;throw e}}async getFileExtensions(){try{let{stdout:e}=await N('find . -type f ! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" ! -path "*/.next/*" | sed "s/.*\\./\\./" | sort | uniq -c | sort -rn',{cwd:this.projectPath}),t={};return e.trim().split(`
8
8
  `).filter(Boolean).forEach(o=>{let s=o.trim().match(/^\s*(\d+)\s+(\.\w+)$/);s&&(t[s[2]]=parseInt(s[1],10))}),t}catch{return{}}}async listConfigFiles(){try{let e=await j.readdir(this.projectPath),t=[/^package\.json$/,/^Cargo\.toml$/,/^go\.mod$/,/^requirements\.txt$/,/^Gemfile$/,/^mix\.exs$/,/^pom\.xml$/,/^composer\.json$/,/^pyproject\.toml$/,/^tsconfig.*\.json$/,/^\..*rc(\.json|\.js|\.cjs)?$/,/^Dockerfile$/,/^docker-compose.*\.ya?ml$/,/^\.env.*$/];return e.filter(o=>t.some(s=>s.test(o)))}catch(e){if($(e))return[];throw e}}async listDirectories(){try{return(await j.readdir(this.projectPath,{withFileTypes:!0})).filter(t=>t.isDirectory()).map(t=>t.name).filter(t=>!t.startsWith(".")&&t!=="node_modules")}catch(e){if($(e))return[];throw e}}async getGitLog(e=50){try{let{stdout:t}=await N(`git log -n ${e} --pretty=format:"%h|%an|%ar|%s"`,{cwd:this.projectPath});return t}catch{return""}}async getGitStats(){try{let{stdout:e}=await N("git rev-list --count HEAD",{cwd:this.projectPath}),{stdout:t}=await N('git log --format="%an" | sort -u | wc -l',{cwd:this.projectPath}),{stdout:o}=await N('git log --reverse --pretty=format:"%ar" | head -1',{cwd:this.projectPath});return{totalCommits:parseInt(e.trim(),10)||0,contributors:parseInt(t.trim(),10)||0,age:o.trim()||"unknown"}}catch{return{totalCommits:0,contributors:0,age:"unknown"}}}async countFiles(){try{let{stdout:e}=await N('find . -type f ! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" | wc -l',{cwd:this.projectPath});return parseInt(e.trim(),10)||0}catch{return 0}}async fileExists(e){return oe(C.join(this.projectPath,e))}async readFile(e){try{let t=C.join(this.projectPath,e);return await j.readFile(t,"utf-8")}catch(t){if($(t))return null;throw t}}async findFiles(e){try{let{stdout:t}=await N(`find . -type f -name "${e}" ! -path "*/node_modules/*" ! -path "*/.git/*"`,{cwd:this.projectPath});return t.trim().split(`
9
9
  `).filter(Boolean)}catch{return[]}}},Ke=new Y,S=Ke;We();import je from"node:fs/promises";import Pe from"node:path";Xe();var V=800,Z=6,Ye=8,Ze=5;async function ee(r,e,t,o){let[s,i,n,a]=await Promise.all([et(r,e,o),tt(r),st(r),nt(r)]);return{project:{name:o.name,ecosystem:o.ecosystem,languages:o.languages,frameworks:o.frameworks,fileCount:o.fileCount,projectType:o.projectType},git:{branch:t.branch,recentCommits:t.recentCommits.slice(0,Ye).map(u=>({message:u.message,date:u.date})),hasChanges:t.hasChanges,weeklyCommits:t.weeklyCommits},codeSamples:s,existingPatterns:i,taskHistory:n,previousAnalysis:a??void 0}}m(ee,"buildAnalysisPayload");async function et(r,e,t){let o=[],s=[...t.frameworks.map(a=>a.toLowerCase()),"config","router","middleware","service","model","schema","database","api","auth"].join(" "),i=pe(r,s,Z*2);for(let a of i){if(o.length>=Z)break;try{let u=Pe.join(e,a.path),c=await je.readFile(u,"utf-8");c.length>V*3?o.push({path:a.path,content:`${c.slice(0,V)}
10
- // ... truncated`,reason:`BM25 score: ${a.score.toFixed(2)} (truncated, ${c.length} chars)`}):o.push({path:a.path,content:c.slice(0,V),reason:`BM25 score: ${a.score.toFixed(2)}`})}catch{}}let n=["package.json","tsconfig.json","src/index.ts","src/main.ts","app.ts"];for(let a of n){if(o.length>=Z)break;if(!o.some(u=>u.path===a))try{let u=Pe.join(e,a),c=await je.readFile(u,"utf-8");o.push({path:a,content:c.slice(0,V),reason:"entry point"})}catch{}}return o}m(et,"selectCodeSamples");async function tt(r){try{let e=await b.getActive(r);return e?{patterns:(e.patterns??[]).map(t=>({name:t.name,description:t.description})),antiPatterns:(e.antiPatterns??[]).map(t=>({issue:t.issue,file:t.file,suggestion:t.suggestion}))}:{patterns:[],antiPatterns:[]}}catch{return{patterns:[],antiPatterns:[]}}}m(tt,"getExistingPatterns");async function st(r){try{return(await me.getTaskHistory(r)).slice(0,Ze).map(t=>({description:t.title,status:t.classification,branch:t.branchName}))}catch{return[]}}m(st,"getTaskHistory");function nt(r){try{let e=D.getActiveSummary(r);return Promise.resolve(e)}catch(e){return le.debug("Failed to get previous LLM analysis summary",{error:e}),Promise.resolve(null)}}m(nt,"getPreviousAnalysisSummary");I();X();ce();I();async function be(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json&&console.log(JSON.stringify({success:!1,error:"No project ID found"})),t.result;let o=t.value,s=await b.seal(o);return e.json?(console.log(JSON.stringify({success:s.success,signature:s.signature,error:s.error})),{success:s.success,error:s.error}):s.success?(d.done("Analysis sealed"),console.log(` Signature: ${s.signature?.substring(0,16)}...`),console.log(""),{success:!0,data:{signature:s.signature}}):(d.fail(s.error||"Seal failed"),{success:!1,error:s.error})}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):d.fail(o),{success:!1,error:o}}}m(be,"seal");async function Ce(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json&&console.log(JSON.stringify({success:!1,error:"No project ID found"})),t.result;let o=t.value,s=await b.rollback(o);return e.json?(console.log(JSON.stringify({success:s.success,restoredSignature:s.restoredSignature,error:s.error})),{success:s.success,error:s.error}):e.md?s.success?(console.log(y(L("Analysis Rolled Back"),E({"Restored signature":`${s.restoredSignature?.substring(0,16)}...`,Note:"Previous sealed version is now active. Current version moved to draft."}))),{success:!0,data:{restoredSignature:s.restoredSignature}}):(console.log(y("## Rollback Failed",`> ${s.error}`)),{success:!1,error:s.error}):s.success?(d.done("Analysis rolled back to previous sealed version"),console.log(` Restored signature: ${s.restoredSignature?.substring(0,16)}...`),console.log(" Previous sealed version demoted to draft"),console.log(""),{success:!0,data:{restoredSignature:s.restoredSignature}}):(d.fail(s.error||"Rollback failed"),{success:!1,error:s.error})}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):e.md?console.log(y("## Rollback Failed",`> ${o}`)):d.fail(o),{success:!1,error:o}}}m(Ce,"rollback");async function xe(r=process.cwd(),e={}){if(e.semantic)return te(r,e);try{let t=await v(r);if(!t.ok)return t.result;let o=t.value,s=await b.verify(o);return e.json?(console.log(JSON.stringify(s)),{success:s.valid}):(s.valid?d.done(s.message):d.fail(s.message),console.log(""),{success:s.valid,data:s})}catch(t){let o=k(t);return ge(o)}}m(xe,"verify");async function te(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json?console.log(JSON.stringify({success:!1,error:"No project ID found"})):d.fail("No project ID found"),t.result;let o=t.value,s=(()=>{try{return _.getDoc(o,"project")?.repoPath||r}catch{return r}})(),i=await b.semanticVerify(o,s);if(e.json)return console.log(JSON.stringify(i)),{success:i.passed,data:i};console.log(""),i.passed?(d.done("Semantic verification passed"),console.log(` ${i.passedCount}/${i.checks.length} checks passed (${i.totalMs}ms)`)):(d.fail("Semantic verification failed"),console.log(` ${i.failedCount}/${i.checks.length} checks failed`)),console.log(""),console.log("Check Results:");for(let n of i.checks){let a=n.passed?"\u2713":"\u2717",u=n.passed?`${n.output} (${n.durationMs}ms)`:n.error||"Failed";console.log(` ${a} ${n.name}: ${u}`)}return console.log(""),{success:i.passed,data:i}}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):d.fail(o),{success:!1,error:o}}}m(te,"semanticVerifyCommand");import De from"node:fs/promises";import Re from"node:path";import{z as l}from"zod";var rt=l.object({style:l.string(),insights:l.array(l.string()),domains:l.array(l.string())}),ot=l.object({name:l.string(),description:l.string(),locations:l.array(l.string()),confidence:l.number().min(0).max(1),category:l.string()}),at=l.object({issue:l.string(),reasoning:l.string(),files:l.array(l.string()),suggestion:l.string(),severity:l.enum(["low","medium","high"]),confidence:l.number().min(0).max(1)}),it=l.object({description:l.string(),area:l.string(),effort:l.enum(["small","medium","large"]),impact:l.string(),priority:l.enum(["low","medium","high"])}),ct=l.object({path:l.string(),reason:l.string(),risk:l.string(),severity:l.enum(["low","medium","high"])}),lt=l.object({description:l.string(),files:l.array(l.string()),benefit:l.string(),effort:l.enum(["small","medium","large"])}),ut=l.object({category:l.string(),rule:l.string(),example:l.string().optional()}),mt=l.object({build:l.string().optional(),test:l.string().optional(),lint:l.string().optional(),dev:l.string().optional(),format:l.string().optional(),install:l.string().optional()}),gt=l.object({languages:l.array(l.string()),frameworks:l.array(l.string()),packageManager:l.string().optional()}),dt=l.object({version:l.literal(1),commitHash:l.string().nullable(),analyzedAt:l.string(),architecture:rt,patterns:l.array(ot),antiPatterns:l.array(at),techDebt:l.array(it),riskAreas:l.array(ct),refactorSuggestions:l.array(lt),projectInsights:l.array(l.string()),conventions:l.array(ut),commands:mt.optional(),stack:gt.optional()});function Ae(r){let e=dt.safeParse(r);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues.map(o=>`${o.path.length>0?o.path.join("."):"<root>"}: ${o.message}`).join("; ")}}m(Ae,"parseLlmAnalysis");X();re();async function Le(r,e=process.cwd(),t={}){try{let o=await v(e);if(!o.ok)return o.result;let s=o.value,i=await ft(r,e),n=await ht(i.content,e),a=D.getActive(s),u=!!(a&&ye(a)&&K(n)),c=u?pt(a,n):n;D.save(s,c);try{let{recomputeProjectStyle:f}=await import("./project-style-evolution-5W25UPPN.mjs"),{gatherStats:h,detectStack:x,detectCommands:B}=await import("./sync-analyzer-M37Q4LE4.mjs"),[T,P,Q]=await Promise.all([h(e),x(e),B(e)]);await f({projectId:s,projectPath:e,stats:T,stack:P,commands:Q,commitHash:c.commitHash,source:"analysis-save"})}catch{}let p=K(c)&&!u;if(t.md){let h=[L(u?"LLM Analysis Notes Merged (house style preserved)":p?"LLM Analysis Notes Saved (thin \u2014 not house style)":"LLM Analysis Saved"),E({Input:i.source,Architecture:c.architecture.style,Patterns:c.patterns.length,"Anti-patterns":c.antiPatterns?.length||0,"Tech debt items":c.techDebt?.length||0,"Risk areas":c.riskAreas?.length||0,Conventions:c.conventions?.length||0,...u?{Merge:"thin notes \u2192 existing rich analysis"}:{},...p?{Kind:"thin markdown/notes"}:{}})];p&&h.push(z("Prefer schema v1 JSON (architecture/patterns/conventions) via `prjct analysis-save-llm <file> --md`. Markdown alone leaves patterns empty and burns a retry loop.")),console.log(y(...h))}else console.log(JSON.stringify({success:!0,message:u?"LLM analysis notes merged into existing rich analysis":p?"LLM analysis thin notes saved (prefer schema v1 JSON for house style)":"LLM analysis saved",input:i.source,mergedNotes:u,thin:p,stats:{patterns:c.patterns.length,antiPatterns:c.antiPatterns?.length||0,techDebt:c.techDebt?.length||0},...p?{tip:"Prefer schema v1 JSON (architecture/patterns/conventions). Markdown alone is thin notes."}:{}}));return{success:!0}}catch(o){return A(o)}}m(Le,"saveLlmAnalysis");function pt(r,e){let t=m((o,s,i)=>{let n=[],a=new Set;for(let u of[...o,...s]){let c=u.toLowerCase();if(!(a.has(c)||!u.trim())&&(a.add(c),n.push(u),n.length>=i))break}return n},"mergeUnique");return{...r,analyzedAt:e.analyzedAt,commitHash:e.commitHash??r.commitHash,projectInsights:t(r.projectInsights??[],e.projectInsights??[],60),architecture:{...r.architecture,insights:t(r.architecture.insights??[],e.architecture.insights??[],24)}}}m(pt,"mergeThinNotesIntoRich");async function ft(r,e){let t=r.trim();if(!t)throw new Error("analysis-save-llm requires analysis text, JSON, or a file path");let o=Re.isAbsolute(t)?t:Re.resolve(e,t);try{if((await De.stat(o)).isFile())return{content:await De.readFile(o,"utf-8"),source:"file"}}catch{}return{content:r,source:"inline"}}m(ft,"resolveAnalysisInput");async function ht(r,e){let t=r.trim();if(!t)throw new Error("analysis-save-llm received an empty analysis");let o=yt(t);if(o.ok){let s=Ae(o.value);return s.ok?s.value:Me(`Structured analysis did not match the legacy schema; preserved as LLM notes.
10
+ // ... truncated`,reason:`BM25 score: ${a.score.toFixed(2)} (truncated, ${c.length} chars)`}):o.push({path:a.path,content:c.slice(0,V),reason:`BM25 score: ${a.score.toFixed(2)}`})}catch{}}let n=["package.json","tsconfig.json","src/index.ts","src/main.ts","app.ts"];for(let a of n){if(o.length>=Z)break;if(!o.some(u=>u.path===a))try{let u=Pe.join(e,a),c=await je.readFile(u,"utf-8");o.push({path:a,content:c.slice(0,V),reason:"entry point"})}catch{}}return o}m(et,"selectCodeSamples");async function tt(r){try{let e=await b.getActive(r);return e?{patterns:(e.patterns??[]).map(t=>({name:t.name,description:t.description})),antiPatterns:(e.antiPatterns??[]).map(t=>({issue:t.issue,file:t.file,suggestion:t.suggestion}))}:{patterns:[],antiPatterns:[]}}catch{return{patterns:[],antiPatterns:[]}}}m(tt,"getExistingPatterns");async function st(r){try{return(await me.getTaskHistory(r)).slice(0,Ze).map(t=>({description:t.title,status:t.classification,branch:t.branchName}))}catch{return[]}}m(st,"getTaskHistory");function nt(r){try{let e=D.getActiveSummary(r);return Promise.resolve(e)}catch(e){return le.debug("Failed to get previous LLM analysis summary",{error:e}),Promise.resolve(null)}}m(nt,"getPreviousAnalysisSummary");I();X();ce();I();async function be(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json&&console.log(JSON.stringify({success:!1,error:"No project ID found"})),t.result;let o=t.value,s=await b.seal(o);return e.json?(console.log(JSON.stringify({success:s.success,signature:s.signature,error:s.error})),{success:s.success,error:s.error}):s.success?(d.done("Analysis sealed"),console.log(` Signature: ${s.signature?.substring(0,16)}...`),console.log(""),{success:!0,data:{signature:s.signature}}):(d.fail(s.error||"Seal failed"),{success:!1,error:s.error})}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):d.fail(o),{success:!1,error:o}}}m(be,"seal");async function Ce(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json&&console.log(JSON.stringify({success:!1,error:"No project ID found"})),t.result;let o=t.value,s=await b.rollback(o);return e.json?(console.log(JSON.stringify({success:s.success,restoredSignature:s.restoredSignature,error:s.error})),{success:s.success,error:s.error}):e.md?s.success?(console.log(y(L("Analysis Rolled Back"),E({"Restored signature":`${s.restoredSignature?.substring(0,16)}...`,Note:"Previous sealed version is now active. Current version moved to draft."}))),{success:!0,data:{restoredSignature:s.restoredSignature}}):(console.log(y("## Rollback Failed",`> ${s.error}`)),{success:!1,error:s.error}):s.success?(d.done("Analysis rolled back to previous sealed version"),console.log(` Restored signature: ${s.restoredSignature?.substring(0,16)}...`),console.log(" Previous sealed version demoted to draft"),console.log(""),{success:!0,data:{restoredSignature:s.restoredSignature}}):(d.fail(s.error||"Rollback failed"),{success:!1,error:s.error})}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):e.md?console.log(y("## Rollback Failed",`> ${o}`)):d.fail(o),{success:!1,error:o}}}m(Ce,"rollback");async function xe(r=process.cwd(),e={}){if(e.semantic)return te(r,e);try{let t=await v(r);if(!t.ok)return t.result;let o=t.value,s=await b.verify(o);return e.json?(console.log(JSON.stringify(s)),{success:s.valid}):(s.valid?d.done(s.message):d.fail(s.message),console.log(""),{success:s.valid,data:s})}catch(t){let o=k(t);return ge(o)}}m(xe,"verify");async function te(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return e.json?console.log(JSON.stringify({success:!1,error:"No project ID found"})):d.fail("No project ID found"),t.result;let o=t.value,s=(()=>{try{return _.getDoc(o,"project")?.repoPath||r}catch{return r}})(),i=await b.semanticVerify(o,s);if(e.json)return console.log(JSON.stringify(i)),{success:i.passed,data:i};console.log(""),i.passed?(d.done("Semantic verification passed"),console.log(` ${i.passedCount}/${i.checks.length} checks passed (${i.totalMs}ms)`)):(d.fail("Semantic verification failed"),console.log(` ${i.failedCount}/${i.checks.length} checks failed`)),console.log(""),console.log("Check Results:");for(let n of i.checks){let a=n.passed?"\u2713":"\u2717",u=n.passed?`${n.output} (${n.durationMs}ms)`:n.error||"Failed";console.log(` ${a} ${n.name}: ${u}`)}return console.log(""),{success:i.passed,data:i}}catch(t){let o=k(t);return e.json?console.log(JSON.stringify({success:!1,error:o})):d.fail(o),{success:!1,error:o}}}m(te,"semanticVerifyCommand");import De from"node:fs/promises";import Re from"node:path";import{z as l}from"zod";var rt=l.object({style:l.string(),insights:l.array(l.string()),domains:l.array(l.string())}),ot=l.object({name:l.string(),description:l.string(),locations:l.array(l.string()),confidence:l.number().min(0).max(1),category:l.string()}),at=l.object({issue:l.string(),reasoning:l.string(),files:l.array(l.string()),suggestion:l.string(),severity:l.enum(["low","medium","high"]),confidence:l.number().min(0).max(1)}),it=l.object({description:l.string(),area:l.string(),effort:l.enum(["small","medium","large"]),impact:l.string(),priority:l.enum(["low","medium","high"])}),ct=l.object({path:l.string(),reason:l.string(),risk:l.string(),severity:l.enum(["low","medium","high"])}),lt=l.object({description:l.string(),files:l.array(l.string()),benefit:l.string(),effort:l.enum(["small","medium","large"])}),ut=l.object({category:l.string(),rule:l.string(),example:l.string().optional()}),mt=l.object({build:l.string().optional(),test:l.string().optional(),lint:l.string().optional(),dev:l.string().optional(),format:l.string().optional(),install:l.string().optional()}),gt=l.object({languages:l.array(l.string()),frameworks:l.array(l.string()),packageManager:l.string().optional()}),dt=l.object({version:l.literal(1),commitHash:l.string().nullable(),analyzedAt:l.string(),architecture:rt,patterns:l.array(ot),antiPatterns:l.array(at),techDebt:l.array(it),riskAreas:l.array(ct),refactorSuggestions:l.array(lt),projectInsights:l.array(l.string()),conventions:l.array(ut),commands:mt.optional(),stack:gt.optional()});function Ae(r){let e=dt.safeParse(r);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues.map(o=>`${o.path.length>0?o.path.join("."):"<root>"}: ${o.message}`).join("; ")}}m(Ae,"parseLlmAnalysis");X();re();async function Le(r,e=process.cwd(),t={}){try{let o=await v(e);if(!o.ok)return o.result;let s=o.value,i=await ft(r,e),n=await ht(i.content,e),a=D.getActive(s),u=!!(a&&ye(a)&&K(n)),c=u?pt(a,n):n;D.save(s,c);try{let{recomputeProjectStyle:f}=await import("./project-style-evolution-HIMSJQQB.mjs"),{gatherStats:h,detectStack:x,detectCommands:B}=await import("./sync-analyzer-M37Q4LE4.mjs"),[T,P,Q]=await Promise.all([h(e),x(e),B(e)]);await f({projectId:s,projectPath:e,stats:T,stack:P,commands:Q,commitHash:c.commitHash,source:"analysis-save"})}catch{}let p=K(c)&&!u;if(t.md){let h=[L(u?"LLM Analysis Notes Merged (house style preserved)":p?"LLM Analysis Notes Saved (thin \u2014 not house style)":"LLM Analysis Saved"),E({Input:i.source,Architecture:c.architecture.style,Patterns:c.patterns.length,"Anti-patterns":c.antiPatterns?.length||0,"Tech debt items":c.techDebt?.length||0,"Risk areas":c.riskAreas?.length||0,Conventions:c.conventions?.length||0,...u?{Merge:"thin notes \u2192 existing rich analysis"}:{},...p?{Kind:"thin markdown/notes"}:{}})];p&&h.push(z("Prefer schema v1 JSON (architecture/patterns/conventions) via `prjct analysis-save-llm <file> --md`. Markdown alone leaves patterns empty and burns a retry loop.")),console.log(y(...h))}else console.log(JSON.stringify({success:!0,message:u?"LLM analysis notes merged into existing rich analysis":p?"LLM analysis thin notes saved (prefer schema v1 JSON for house style)":"LLM analysis saved",input:i.source,mergedNotes:u,thin:p,stats:{patterns:c.patterns.length,antiPatterns:c.antiPatterns?.length||0,techDebt:c.techDebt?.length||0},...p?{tip:"Prefer schema v1 JSON (architecture/patterns/conventions). Markdown alone is thin notes."}:{}}));return{success:!0}}catch(o){return A(o)}}m(Le,"saveLlmAnalysis");function pt(r,e){let t=m((o,s,i)=>{let n=[],a=new Set;for(let u of[...o,...s]){let c=u.toLowerCase();if(!(a.has(c)||!u.trim())&&(a.add(c),n.push(u),n.length>=i))break}return n},"mergeUnique");return{...r,analyzedAt:e.analyzedAt,commitHash:e.commitHash??r.commitHash,projectInsights:t(r.projectInsights??[],e.projectInsights??[],60),architecture:{...r.architecture,insights:t(r.architecture.insights??[],e.architecture.insights??[],24)}}}m(pt,"mergeThinNotesIntoRich");async function ft(r,e){let t=r.trim();if(!t)throw new Error("analysis-save-llm requires analysis text, JSON, or a file path");let o=Re.isAbsolute(t)?t:Re.resolve(e,t);try{if((await De.stat(o)).isFile())return{content:await De.readFile(o,"utf-8"),source:"file"}}catch{}return{content:r,source:"inline"}}m(ft,"resolveAnalysisInput");async function ht(r,e){let t=r.trim();if(!t)throw new Error("analysis-save-llm received an empty analysis");let o=yt(t);if(o.ok){let s=Ae(o.value);return s.ok?s.value:Me(`Structured analysis did not match the legacy schema; preserved as LLM notes.
11
11
 
12
12
  ${JSON.stringify(o.value,null,2)}`,e)}return Me(t,e)}m(ht,"normalizeAnalysis");function yt(r){try{return{ok:!0,value:JSON.parse(r)}}catch{return{ok:!1}}}m(yt,"tryParseJson");async function Me(r,e){let t=St(r);return{version:1,commitHash:await vt(e),analyzedAt:J(),architecture:{style:"unknown",insights:t.slice(0,8),domains:[]},patterns:[],antiPatterns:[],techDebt:[],riskAreas:[],refactorSuggestions:[],projectInsights:t,conventions:[]}}m(Me,"analysisFromText");function St(r){let e=r.split(/\r?\n/).map(s=>s.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s*[-*]\s+\[[ xX]\]\s+/,"").replace(/^\s*[-*]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").trim()).filter(wt),t=[],o=new Set;for(let s of e){let i=s.toLowerCase();if(!o.has(i)&&(o.add(i),t.push(s),t.length>=40))break}return t.length>0?t:[r.slice(0,2e3)]}m(St,"textToInsights");function wt(r){if(!r||!/[\p{L}\p{N}]/u.test(r))return!1;let e=r.toLowerCase().replace(/\s+/g," ").trim();return!(["current work","wip","misc","todo","n/a","none","latest","unreleased","changelog"].includes(e)||/^[-=_]{3,}$/.test(e)||/^(added|changed|fixed|removed)$/i.test(e)||/^v?\d+\.\d+\.\d+(?:-[\w.-]+)?$/i.test(e))}m(wt,"isUsefulInsight");async function vt(r){try{let{stdout:e}=await ne("git",["rev-parse","HEAD"],{cwd:r});return e.trim()||null}catch{return null}}m(vt,"resolveCurrentCommit");async function Ne(r=process.cwd(),e={}){try{let t=await v(r);if(!t.ok)return t.result;let o=t.value,s=D.getActive(o);if(!s)return e.md?console.log(y("## No LLM Analysis","> Run `prjct sync` to generate.")):console.log(JSON.stringify({success:!1,message:"No LLM analysis found"})),{success:!1,message:"No LLM analysis found"};if(e.md){let i=[L(`LLM Analysis (${s.architecture.style})`),""];if(s.architecture.insights.length>0&&i.push(R("Architecture Insights",M(s.architecture.insights.slice(0,5)))),s.patterns.length>0){let n=s.patterns.slice(0,8);i.push(R(`Patterns (${s.patterns.length})`,M(n.map(a=>`**${a.name}** \u2014 ${a.description} (${a.category})`))))}if(s.antiPatterns.length>0){let n=s.antiPatterns.slice(0,5);i.push(R(`Anti-Patterns (${s.antiPatterns.length})`,M(n.map(a=>`[${a.severity}] ${a.issue} \u2014 ${a.suggestion}`))))}if(s.techDebt.length>0){let n=s.techDebt.slice(0,5);i.push(R(`Tech Debt (${s.techDebt.length})`,M(n.map(a=>`[${a.priority}/${a.effort}] ${a.description}`))))}s.conventions.length>0&&i.push(R("Conventions",M(s.conventions.slice(0,5).map(n=>`**${n.category}**: ${n.rule}`)))),console.log(y(...i))}else{let i={...s,patterns:s.patterns.slice(0,10),antiPatterns:s.antiPatterns.slice(0,6),techDebt:s.techDebt.slice(0,6),conventions:s.conventions.slice(0,6)};console.log(JSON.stringify({success:!0,analysis:i}))}return{success:!0,data:s}}catch(t){return A(t)}}m(Ne,"getLlmAnalysis");ce();I();import kt from"node:path";X();async function Te(r,e){let t=Date.now()-e;await ue.installGlobalConfig(),d.done(`Synced ${r.stats.name||"project"} (${(t/1e3).toFixed(1)}s)`),console.log("");let o=r.stats.frameworks.length>0?` (${r.stats.frameworks[0]})`:"",s=r.syncMetrics?.indexes,i=[`${r.stats.fileCount} files indexed`,`Stack: ${r.stats.ecosystem}${o} | Branch: ${r.git.branch}`];if(s?.bm25Files){let a=s.bm25Files*(s.bm25AvgTokens||0);i.push(`Index: ${O(a)} tokens | ${s.bm25VocabSize||0} terms | ${s.importEdges||0} imports`)}d.box("Sync Summary",i.join(`
13
13
  `));let n=[];if(r.generatedSkills?.generated&&r.generatedSkills.generated.length>0){let a=r.generatedSkills.generated.length,u=a===1?"skill":"skills";n.push(`${a} ${u} generated`)}if(r.context7&&n.push(`Context7: ${r.context7.verified?"verified":`not ready${r.context7.message?` (${r.context7.message})`:""}`}`),r.analysisSummary&&n.push(`Analysis: ${r.analysisSummary.patterns} patterns | ${r.analysisSummary.antiPatterns} anti-patterns (${r.analysisSummary.criticalAntiPatterns} critical)`),r.contextQuality){let a=r.contextQuality,u=a.irrelevantRemoved>0||a.repairEntriesCreated>0?`, repaired ${a.repairEntriesCreated}, removed ${a.irrelevantRemoved}`:"";n.push(`Context quality: ${a.score}/${a.threshold}${a.passed?"":" (needs review)"}${u}`)}if(d.section("Generated"),d.list(n,{bullet:"\u2713"}),console.log(""),r.phaseTimings&&r.phaseTimings.length>0){let a=[...r.phaseTimings].sort((u,c)=>c.ms-u.ms).slice(0,3).map(u=>`${u.phase} ${(u.ms/1e3).toFixed(1)}s`).join(", ");console.log(`Slowest phases: ${a}`),console.log("")}if(r.git.hasChanges&&(d.warn("Uncommitted changes detected"),console.log("")),r.verification){let a=r.verification;if(a.passed){let u=a.checks.map(c=>`${c.name} (${c.durationMs}ms)`);d.section("Verified"),d.list(u,{bullet:"\u2713"})}else{d.section("Verification");let u=a.checks.map(c=>c.passed?`\u2713 ${c.name}`:`\u2717 ${c.name}${c.error?` \u2014 ${c.error}`:""}`);d.list(u),a.skippedCount>0&&d.warn(`${a.skippedCount} check(s) skipped (fail-fast)`)}console.log("")}return ve("sync"),{success:!0,data:r,metrics:{elapsed:t,fileCount:r.stats.fileCount}}}m(Te,"showSyncResult");async function Fe(r){try{let e=await de.getRecentEvents(r,100),t=new Date().toISOString().split("T")[0],o=e.filter(c=>(c.timestamp||c.ts)?.startsWith(t)),s=(()=>{if(o.length<2)return null;let c=o.map(f=>new Date(f.timestamp||f.ts).getTime()).filter(f=>!Number.isNaN(f)).sort((f,h)=>f-h);if(c.length<2)return null;let p=c[c.length-1]-c[0];return ae(p)})(),i=o.filter(c=>c.action==="task_completed").length,n=o.filter(c=>c.action==="feature_shipped").length,a=new Map;for(let c of o)if(c.action==="sync"&&Array.isArray(c.subagents))for(let p of c.subagents)a.set(p,(a.get(p)||0)+1);let u=Array.from(a.entries()).map(([c,p])=>({name:c,count:p})).sort((c,p)=>p.count-c.count);return{sessionDuration:s,tasksCompleted:i,featuresShipped:n,agentsUsed:u}}catch{return{sessionDuration:null,tasksCompleted:0,featuresShipped:0,agentsUsed:[]}}}m(Fe,"getSessionActivity");function O(r){return r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${(r/1e3).toFixed(1)}K`:r.toLocaleString()}m(O,"formatTokens");function se(r){return r<1e3?`${Math.round(r)}ms`:`${(r/1e3).toFixed(1)}s`}m(se,"formatDuration");function Ee(r){if(r.length===0)return"";let e="\u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588",t=r.map(s=>s.tokensSaved),o=Math.max(...t,1);return t.map(s=>{let i=Math.min(Math.floor(s/o*(e.length-1)),e.length-1);return e[i]}).join("")}m(Ee,"generateSparkline");function Oe(r,e,t,o,s,i){let n=[];if(n.push(`# ${t} - Stats Dashboard`),n.push(""),n.push(`_Generated: ${new Date().toLocaleString()} | Tracking since: ${o}_`),n.push(""),s){if(n.push("## Today's Activity"),n.push(""),n.push("| Metric | Value |"),n.push("|--------|-------|"),s.sessionDuration&&n.push(`| Duration | ${s.sessionDuration} |`),n.push(`| Tasks completed | ${s.tasksCompleted} |`),n.push(`| Features shipped | ${s.featuresShipped} |`),s.agentsUsed.length>0){let a=s.agentsUsed.slice(0,3).map(u=>`${u.name} (${u.count}\xD7)`).join(", ");n.push(`| Agents used | ${a} |`)}n.push("")}if(i&&(i.decisions>0||i.preferences>0)&&(n.push("## Patterns Learned"),n.push(""),n.push("| Type | Count |"),n.push("|------|-------|"),n.push(`| Decisions | ${i.learnedDecisions} confirmed (${i.decisions} total) |`),n.push(`| Preferences | ${i.preferences} |`),n.push(`| Workflows | ${i.workflows} |`),n.push("")),n.push("## Context Efficiency"),n.push(""),n.push("| Metric | Value |"),n.push("|--------|-------|"),n.push(`| Tokens reduced | ${O(r.totalTokensSaved)} |`),n.push(`| Compression | ${(r.compressionRate*100).toFixed(0)}% |`),n.push(`| Est. cost saved | ${U(r.estimatedCostSaved)} |`),n.push(""),n.push("## Performance"),n.push(""),n.push("| Metric | Value |"),n.push("|--------|-------|"),n.push(`| Syncs | ${r.syncCount} |`),n.push(`| Avg time | ${se(r.avgSyncDuration)} |`),n.push(""),r.topAgents.length>0){n.push("## Agent Usage"),n.push(""),n.push("| Agent | Usage |"),n.push("|-------|-------|");let a=r.topAgents.reduce((u,c)=>u+c.usageCount,0);for(let u of r.topAgents){let c=a>0?(u.usageCount/a*100).toFixed(0):0;n.push(`| ${u.agentName} | ${c}% (${u.usageCount}) |`)}n.push("")}if(n.push("## 30-Day Trend"),n.push(""),n.push(`- Tokens saved: ${O(r.last30DaysTokens)}`),r.trend!==0){let a=r.trend>0?"+":"";n.push(`- Trend: ${a}${r.trend.toFixed(0)}% vs previous period`)}return n.push(""),n.push("---"),n.push(""),n.push("_Generated with [prjct-cli](https://prjct.app)_"),n.join(`
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as n}from"./chunk-F7OOBAJO.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-7QTE6X4J.mjs";import"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as t}from"./chunk-3TRXQAU4.mjs";async function c(u,o){try{let e=o??await import("./config-manager-QVFHXIKI.mjs").then(({default:a})=>a.readConfig(u).catch(()=>null));if(!e?.projectId||!e.cloud?.enabled||e.cloud.paused)return{ran:!1};if(!await n.hasAuth())return{ran:!1};let r=await n.sync(e.projectId,{include:e.cloud.include??{}});return{ran:!0,pushed:r.pushed?.count??0,pulled:r.pulled?.count??0,error:r.success?void 0:r.error}}catch{return{ran:!1}}}t(c,"flushIfLinked");export{c as flushIfLinked};
7
+ import{a as n}from"./chunk-F7OOBAJO.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-7QTE6X4J.mjs";import"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as t}from"./chunk-3TRXQAU4.mjs";async function c(u,o){try{let e=o??await import("./config-manager-QY73WM5U.mjs").then(({default:a})=>a.readConfig(u).catch(()=>null));if(!e?.projectId||!e.cloud?.enabled||e.cloud.paused)return{ran:!1};if(!await n.hasAuth())return{ran:!1};let r=await n.sync(e.projectId,{include:e.cloud.include??{}});return{ran:!0,pushed:r.pushed?.count??0,pulled:r.pulled?.count??0,error:r.success?void 0:r.error}}catch{return{ran:!1}}}t(c,"flushIfLinked");export{c as flushIfLinked};
@@ -4,18 +4,18 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as C}from"./chunk-3TRXQAU4.mjs";async function $(t,m){if(t[0]==="daemon"){let s=t[1]||"status";if(s==="start"){let{isDaemonRunning:o,spawnDaemon:e}=await import("./client-D43KKUYH.mjs");if(await o())console.log("Daemon is already running."),process.exitCode=0;else if(t.includes("--foreground")||t.includes("-f")){let{startDaemon:i}=await import("./daemon-2NQTBFVR.mjs");await i({foreground:!0})}else await e()?console.log("Daemon started."):(console.error("Failed to start daemon."),process.exitCode=1)}else if(s==="stop"){let{isDaemonRunning:o,stopDaemon:e}=await import("./client-D43KKUYH.mjs");if(await o()){let n=await e();console.log(n?"Daemon stopped.":"Failed to stop daemon."),process.exitCode=n?0:1}else console.log("Daemon is not running."),process.exitCode=0}else if(s==="status"){let{getDaemonStatus:o}=await import("./client-D43KKUYH.mjs"),e=await o();if(e.running){let n=(await import("chalk")).default,i=e.uptime?Math.round(e.uptime/1e3):0,c=e.stale;if(console.log(`Daemon running (PID ${e.pid})${c?" \u26A0 STALE":""}`),e.version&&console.log(` Version: ${e.version}`),console.log(` Uptime: ${i}s`),console.log(` Commands served: ${e.commandsServed??0}`),typeof e.activeRequests=="number"&&console.log(` Active requests: ${e.activeRequests}`),typeof e.memoryRss=="number"){let a=Math.round(e.memoryRss/1024/1024);console.log(` Memory (RSS): ${a} MB`)}e.lastActivity&&console.log(` Last activity: ${e.lastActivity}`),e.restartPending&&console.log(` ${n.yellow(`Restart pending (${e.restartReason??"unknown"})`)}`),typeof e.absorbedErrors=="number"&&e.absorbedErrors>0&&console.log(` Absorbed errors: ${e.absorbedErrors}`),c&&console.log(` ${n.yellow("\u26A0 Code changed since daemon started. Run: prjct restart")}`)}else console.log("Daemon is not running.");process.exitCode=0}else if(s==="restart"){let{forceRestartDaemon:o}=await import("./client-D43KKUYH.mjs");await o()?(console.log("Daemon restarted."),process.exitCode=0):(console.error("Failed to restart daemon."),process.exitCode=1)}else if(s==="logs"){let o=await import("node:fs"),{DAEMON_PATHS:e}=await import("./protocol-4AJ4J5SI.mjs"),n=e.log();if(!o.existsSync(n))console.error(`No daemon log at ${n}. Start the daemon first.`),process.exitCode=1;else{let i=t.includes("--follow")||t.includes("-f"),c=t.includes("--all"),a=t.find(l=>l.startsWith("--lines="))?.split("=")[1]||(t.includes("-n")?t[t.indexOf("-n")+1]:void 0),r=a?parseInt(a,10):50;if(i){let{spawn:l}=await import("node:child_process"),d=l("tail",["-n",String(r),"-f",n],{stdio:"inherit"});process.on("SIGINT",()=>d.kill("SIGINT")),await new Promise(u=>d.on("exit",()=>u()))}else if(c)process.stdout.write(o.readFileSync(n,"utf-8"));else{let l=o.readFileSync(n,"utf-8"),u=l.split(`
7
+ import{a as C}from"./chunk-3TRXQAU4.mjs";async function $(t,m){if(t[0]==="daemon"){let s=t[1]||"status";if(s==="start"){let{isDaemonRunning:o,spawnDaemon:e}=await import("./client-D43KKUYH.mjs");if(await o())console.log("Daemon is already running."),process.exitCode=0;else if(t.includes("--foreground")||t.includes("-f")){let{startDaemon:i}=await import("./daemon-QARP3RVX.mjs");await i({foreground:!0})}else await e()?console.log("Daemon started."):(console.error("Failed to start daemon."),process.exitCode=1)}else if(s==="stop"){let{isDaemonRunning:o,stopDaemon:e}=await import("./client-D43KKUYH.mjs");if(await o()){let n=await e();console.log(n?"Daemon stopped.":"Failed to stop daemon."),process.exitCode=n?0:1}else console.log("Daemon is not running."),process.exitCode=0}else if(s==="status"){let{getDaemonStatus:o}=await import("./client-D43KKUYH.mjs"),e=await o();if(e.running){let n=(await import("chalk")).default,i=e.uptime?Math.round(e.uptime/1e3):0,c=e.stale;if(console.log(`Daemon running (PID ${e.pid})${c?" \u26A0 STALE":""}`),e.version&&console.log(` Version: ${e.version}`),console.log(` Uptime: ${i}s`),console.log(` Commands served: ${e.commandsServed??0}`),typeof e.activeRequests=="number"&&console.log(` Active requests: ${e.activeRequests}`),typeof e.memoryRss=="number"){let a=Math.round(e.memoryRss/1024/1024);console.log(` Memory (RSS): ${a} MB`)}e.lastActivity&&console.log(` Last activity: ${e.lastActivity}`),e.restartPending&&console.log(` ${n.yellow(`Restart pending (${e.restartReason??"unknown"})`)}`),typeof e.absorbedErrors=="number"&&e.absorbedErrors>0&&console.log(` Absorbed errors: ${e.absorbedErrors}`),c&&console.log(` ${n.yellow("\u26A0 Code changed since daemon started. Run: prjct restart")}`)}else console.log("Daemon is not running.");process.exitCode=0}else if(s==="restart"){let{forceRestartDaemon:o}=await import("./client-D43KKUYH.mjs");await o()?(console.log("Daemon restarted."),process.exitCode=0):(console.error("Failed to restart daemon."),process.exitCode=1)}else if(s==="logs"){let o=await import("node:fs"),{DAEMON_PATHS:e}=await import("./protocol-4AJ4J5SI.mjs"),n=e.log();if(!o.existsSync(n))console.error(`No daemon log at ${n}. Start the daemon first.`),process.exitCode=1;else{let i=t.includes("--follow")||t.includes("-f"),c=t.includes("--all"),a=t.find(l=>l.startsWith("--lines="))?.split("=")[1]||(t.includes("-n")?t[t.indexOf("-n")+1]:void 0),r=a?parseInt(a,10):50;if(i){let{spawn:l}=await import("node:child_process"),d=l("tail",["-n",String(r),"-f",n],{stdio:"inherit"});process.on("SIGINT",()=>d.kill("SIGINT")),await new Promise(u=>d.on("exit",()=>u()))}else if(c)process.stdout.write(o.readFileSync(n,"utf-8"));else{let l=o.readFileSync(n,"utf-8"),u=l.split(`
8
8
  `).slice(-Math.max(1,r));process.stdout.write(u.join(`
9
9
  `)),l.endsWith(`
10
10
  `)||process.stdout.write(`
11
- `)}process.exitCode=0}}else console.error(`Unknown daemon command: ${s}. Use: start, stop, restart, status, logs`),process.exitCode=1}else if(t[0]==="stop"){let{isDaemonRunning:s,stopDaemon:o,forceKillDaemon:e}=await import("./client-D43KKUYH.mjs");if(t.includes("--force")||t.includes("-f")){let i=e();console.log(i?"Daemon force-killed.":"Daemon is not running."),process.exitCode=0}else await s()?await o()?(console.log("Daemon stopped."),process.exitCode=0):(console.log("Graceful stop failed, force-killing..."),e(),console.log("Daemon force-killed."),process.exitCode=0):(e(),console.log("Daemon is not running (cleaned up stale files)."),process.exitCode=0)}else if(t[0]==="restart"){let{forceRestartDaemon:s}=await import("./client-D43KKUYH.mjs");await s()?(console.log("Daemon restarted."),process.exitCode=0):(console.error("Failed to restart daemon."),process.exitCode=1)}else if(t[0]==="start"||t[0]==="setup"){let{SetupCommands:s}=await import("./setup-GHS24ER5.mjs"),o=new s,e=t[0]==="start"?await o.start():await o.setup({force:t.includes("--force")});e.message&&console.log(e.message),process.exitCode=e.success?0:1}else if(t[0]==="context"){let s=process.cwd(),o=await b(s);if(o){let e=await m.trackSession("context"),n=t.slice(1).filter(a=>a!=="--md"&&a!=="--json"),i=t.includes("--md"),c=t.includes("--json");if(n.length===0){let{ContextCommands:a}=await import("./context-DDHC7VIC.mjs"),l=await new a().context(null,s,{md:i&&!c});process.exitCode=l.success?0:1}else{let{runContextTool:a}=await import("./context-4KGTUAC4.mjs"),r=await a(n,o,s),l=r.result&&typeof r.result=="object"&&"markdown"in r.result&&typeof r.result.markdown=="string"?r.result.markdown:null;i&&!c&&r.tool!=="error"&&l!==null?console.log(l):(i&&!c&&r.tool!=="error"&&console.error("--md is not supported for this tool; output is JSON"),console.log(JSON.stringify(r,null,2))),process.exitCode=r.tool==="error"?1:0}e()}}else if(t[0]==="hooks"){let s=await m.trackSession("hooks"),{hooksService:o}=await import("./hooks-service-C2P5DRCH.mjs"),e=t[1]||"status",n=await o.run(process.cwd(),e);process.exitCode=n,s()}else if(t[0]==="seed"){let s=t[1]??"list",o=t.slice(2).filter(a=>!a.startsWith("-")).join(","),e=t.includes("--md"),{SeedCommands:n}=await import("./seed-JX7W53E5.mjs"),i=new n,c=await(async()=>s==="add"?i.add(o||null,process.cwd(),{md:e}):s==="remove"?i.remove(o||null,process.cwd(),{md:e}):s==="list"?i.list(null,process.cwd(),{md:e}):s==="suggest"?i.suggest(null,process.cwd(),{md:e}):s==="catalog"?i.catalog(null,process.cwd(),{md:e}):s==="verify"?i.verify(null,process.cwd(),{md:e}):(console.error(`Unknown seed subcommand: ${s}. Use: add, remove, list, suggest, catalog, verify.`),{success:!1,error:"unknown"}))();process.exitCode=c.success?0:1}else if(t[0]==="context-save"){let s=t.slice(1).find(r=>!r.startsWith("-"))??null,o=t.indexOf("--notes"),e=o>=0?t[o+1]:void 0,n=t.includes("--md"),{ContextCheckpointCommands:i}=await import("./context-checkpoint-4CEUPEVG.mjs"),a=await new i().save(s,process.cwd(),{md:n,notes:e});process.exitCode=a.success?0:1}else if(t[0]==="context-restore"){let s=t.includes("--list"),o=t.indexOf("--file"),e=o>=0?t[o+1]:void 0,n=t.slice(1).find(l=>!l.startsWith("-"))??null,i=t.includes("--md"),{ContextCheckpointCommands:c}=await import("./context-checkpoint-4CEUPEVG.mjs"),r=await new c().restore(n,process.cwd(),{md:i,list:s,file:e});process.exitCode=r.success?0:1}else if(t[0]==="health"){let s=t.includes("--md"),{HealthCommands:o}=await import("./health-W2VWME7Z.mjs"),n=await new o().health(null,process.cwd(),{md:s});process.exitCode=n.success?0:1}else if(t[0]==="retro"){let s=t.slice(1).find(c=>!c.startsWith("-"))??null,o=t.includes("--md"),{RetroCommands:e}=await import("./retro-CLKOHAN6.mjs"),i=await new e().retro(s,process.cwd(),{md:o});process.exitCode=i.success?0:1}else if(t[0]==="skill-adherence"){let s=t.slice(1).find(c=>!c.startsWith("-"))??null,o=t.includes("--md"),{SkillAdherenceCommands:e}=await import("./skill-adherence-MHY4BZL4.mjs"),i=await new e().skillAdherence(s,process.cwd(),{md:o});process.exitCode=i.success?0:1}else if(t[0]==="review-risk"){let s=t.includes("--md"),{ReviewRiskCommands:o}=await import("./review-risk-LLLBKUXT.mjs"),n=await new o().reviewRisk(null,process.cwd(),{md:s});process.exitCode=n.success?0:1}else if(t[0]==="prefs"){let s=t[1]??"list",o=t.slice(2).filter(l=>!l.startsWith("-")),e=t.indexOf("--reason"),n=e>=0?t[e+1]:void 0,i=t.includes("--md"),{PreferencesCommands:c}=await import("./preferences-BTSYWYUM.mjs"),r=await new c().prefs([s,...o],process.cwd(),{md:i,reason:n});process.exitCode=r.success?0:1}else if(t[0]==="install"){let{InstallCommands:s}=await import("./install-XP4S6HWQ.mjs"),o=new s,e=t.includes("--md"),n=await o.install(null,process.cwd(),{md:e});process.exitCode=n.success?0:1}else if(t[0]==="claude"){let s=t[1]??"status",{InstallCommands:o}=await import("./install-XP4S6HWQ.mjs"),e=new o,n=t.includes("--md"),i=await(async()=>{if(s==="install")return e.install(null,process.cwd(),{md:n});if(s==="uninstall")return e.uninstall(null,process.cwd(),{md:n});let c=await e.status();return c.success?console.log(n?`# prjct Claude Code hooks
11
+ `)}process.exitCode=0}}else console.error(`Unknown daemon command: ${s}. Use: start, stop, restart, status, logs`),process.exitCode=1}else if(t[0]==="stop"){let{isDaemonRunning:s,stopDaemon:o,forceKillDaemon:e}=await import("./client-D43KKUYH.mjs");if(t.includes("--force")||t.includes("-f")){let i=e();console.log(i?"Daemon force-killed.":"Daemon is not running."),process.exitCode=0}else await s()?await o()?(console.log("Daemon stopped."),process.exitCode=0):(console.log("Graceful stop failed, force-killing..."),e(),console.log("Daemon force-killed."),process.exitCode=0):(e(),console.log("Daemon is not running (cleaned up stale files)."),process.exitCode=0)}else if(t[0]==="restart"){let{forceRestartDaemon:s}=await import("./client-D43KKUYH.mjs");await s()?(console.log("Daemon restarted."),process.exitCode=0):(console.error("Failed to restart daemon."),process.exitCode=1)}else if(t[0]==="start"||t[0]==="setup"){let{SetupCommands:s}=await import("./setup-BL36ZWPW.mjs"),o=new s,e=t[0]==="start"?await o.start():await o.setup({force:t.includes("--force")});e.message&&console.log(e.message),process.exitCode=e.success?0:1}else if(t[0]==="context"){let s=process.cwd(),o=await b(s);if(o){let e=await m.trackSession("context"),n=t.slice(1).filter(a=>a!=="--md"&&a!=="--json"),i=t.includes("--md"),c=t.includes("--json");if(n.length===0){let{ContextCommands:a}=await import("./context-MPHOQPXF.mjs"),l=await new a().context(null,s,{md:i&&!c});process.exitCode=l.success?0:1}else{let{runContextTool:a}=await import("./context-4GB6ICXK.mjs"),r=await a(n,o,s),l=r.result&&typeof r.result=="object"&&"markdown"in r.result&&typeof r.result.markdown=="string"?r.result.markdown:null;i&&!c&&r.tool!=="error"&&l!==null?console.log(l):(i&&!c&&r.tool!=="error"&&console.error("--md is not supported for this tool; output is JSON"),console.log(JSON.stringify(r,null,2))),process.exitCode=r.tool==="error"?1:0}e()}}else if(t[0]==="hooks"){let s=await m.trackSession("hooks"),{hooksService:o}=await import("./hooks-service-REI56DDC.mjs"),e=t[1]||"status",n=await o.run(process.cwd(),e);process.exitCode=n,s()}else if(t[0]==="seed"){let s=t[1]??"list",o=t.slice(2).filter(a=>!a.startsWith("-")).join(","),e=t.includes("--md"),{SeedCommands:n}=await import("./seed-MMDJE2UO.mjs"),i=new n,c=await(async()=>s==="add"?i.add(o||null,process.cwd(),{md:e}):s==="remove"?i.remove(o||null,process.cwd(),{md:e}):s==="list"?i.list(null,process.cwd(),{md:e}):s==="suggest"?i.suggest(null,process.cwd(),{md:e}):s==="catalog"?i.catalog(null,process.cwd(),{md:e}):s==="verify"?i.verify(null,process.cwd(),{md:e}):(console.error(`Unknown seed subcommand: ${s}. Use: add, remove, list, suggest, catalog, verify.`),{success:!1,error:"unknown"}))();process.exitCode=c.success?0:1}else if(t[0]==="context-save"){let s=t.slice(1).find(r=>!r.startsWith("-"))??null,o=t.indexOf("--notes"),e=o>=0?t[o+1]:void 0,n=t.includes("--md"),{ContextCheckpointCommands:i}=await import("./context-checkpoint-NBI5HKPV.mjs"),a=await new i().save(s,process.cwd(),{md:n,notes:e});process.exitCode=a.success?0:1}else if(t[0]==="context-restore"){let s=t.includes("--list"),o=t.indexOf("--file"),e=o>=0?t[o+1]:void 0,n=t.slice(1).find(l=>!l.startsWith("-"))??null,i=t.includes("--md"),{ContextCheckpointCommands:c}=await import("./context-checkpoint-NBI5HKPV.mjs"),r=await new c().restore(n,process.cwd(),{md:i,list:s,file:e});process.exitCode=r.success?0:1}else if(t[0]==="health"){let s=t.includes("--md"),{HealthCommands:o}=await import("./health-TNB5OC37.mjs"),n=await new o().health(null,process.cwd(),{md:s});process.exitCode=n.success?0:1}else if(t[0]==="retro"){let s=t.slice(1).find(c=>!c.startsWith("-"))??null,o=t.includes("--md"),{RetroCommands:e}=await import("./retro-B2EBN4TA.mjs"),i=await new e().retro(s,process.cwd(),{md:o});process.exitCode=i.success?0:1}else if(t[0]==="skill-adherence"){let s=t.slice(1).find(c=>!c.startsWith("-"))??null,o=t.includes("--md"),{SkillAdherenceCommands:e}=await import("./skill-adherence-JE3N3Y67.mjs"),i=await new e().skillAdherence(s,process.cwd(),{md:o});process.exitCode=i.success?0:1}else if(t[0]==="review-risk"){let s=t.includes("--md"),{ReviewRiskCommands:o}=await import("./review-risk-LBPY5M3K.mjs"),n=await new o().reviewRisk(null,process.cwd(),{md:s});process.exitCode=n.success?0:1}else if(t[0]==="prefs"){let s=t[1]??"list",o=t.slice(2).filter(l=>!l.startsWith("-")),e=t.indexOf("--reason"),n=e>=0?t[e+1]:void 0,i=t.includes("--md"),{PreferencesCommands:c}=await import("./preferences-KO5U2ELK.mjs"),r=await new c().prefs([s,...o],process.cwd(),{md:i,reason:n});process.exitCode=r.success?0:1}else if(t[0]==="install"){let{InstallCommands:s}=await import("./install-FZQJJWT5.mjs"),o=new s,e=t.includes("--md"),n=await o.install(null,process.cwd(),{md:e});process.exitCode=n.success?0:1}else if(t[0]==="claude"){let s=t[1]??"status",{InstallCommands:o}=await import("./install-FZQJJWT5.mjs"),e=new o,n=t.includes("--md"),i=await(async()=>{if(s==="install")return e.install(null,process.cwd(),{md:n});if(s==="uninstall")return e.uninstall(null,process.cwd(),{md:n});let c=await e.status();return c.success?console.log(n?`# prjct Claude Code hooks
12
12
 
13
13
  - installed: ${c.installed}
14
14
  - expected: ${c.expected}
15
- `:`installed: ${c.installed}/${c.expected}`):console.error(c.error),c})();process.exitCode=i.success?0:1}else if(t[0]==="hook"){let s=t[1],o=process.cwd();try{switch(s){case"session-start":{let{runSessionStartHook:e}=await import("./session-start-HVYUKJL2.mjs");await e(o);break}case"prompt":{let{runPromptHook:e}=await import("./prompt-SW5XDRMX.mjs");await e(o);break}case"pre-bash":{let{runPreBashHook:e}=await import("./pre-bash-GLDILCRF.mjs");await e(o);break}case"pre-commit":{let{runPreCommitHook:e}=await import("./pre-commit-U6HPPNIC.mjs");await e(o);break}case"pre-secrets":{let{runPreSecretsHook:e}=await import("./pre-secrets-RJELPDFY.mjs");await e(o);break}case"pre-package":{let{runPrePackageHook:e}=await import("./pre-package-76JR5GLO.mjs");await e(o);break}case"pre-edit":{let{runPreEditHook:e}=await import("./pre-edit-PEYQA6P6.mjs");await e(o);break}case"pre-search":{let{runPreSearchHook:e}=await import("./pre-search-5EHNUOP3.mjs");await e(o);break}case"post-edit":{let{runPostEditHook:e}=await import("./post-edit-5YSNEMK7.mjs");await e(o);break}case"stop":{let{runStopHook:e}=await import("./stop-2H57XCGZ.mjs");await e(o);break}case"subagent-start":{let{runSubagentStartHook:e}=await import("./subagent-start-5LPASXOS.mjs");await e(o);break}case"subagent-stop":{let{runSubagentStopHook:e}=await import("./subagent-stop-ANLSG3KN.mjs");await e(o);break}case"notification":{let{runNotificationHook:e}=await import("./notification-KJ4FQJAW.mjs");await e(o);break}case"cwd-changed":{let{runCwdChangedHook:e}=await import("./cwd-changed-ODKZVSPB.mjs");await e(o);break}default:process.stdout.write(`{}
15
+ `:`installed: ${c.installed}/${c.expected}`):console.error(c.error),c})();process.exitCode=i.success?0:1}else if(t[0]==="hook"){let s=t[1],o=process.cwd();try{switch(s){case"session-start":{let{runSessionStartHook:e}=await import("./session-start-FM6UL7MT.mjs");await e(o);break}case"prompt":{let{runPromptHook:e}=await import("./prompt-47YP5JIR.mjs");await e(o);break}case"pre-bash":{let{runPreBashHook:e}=await import("./pre-bash-32ZOGNSP.mjs");await e(o);break}case"pre-commit":{let{runPreCommitHook:e}=await import("./pre-commit-7TU2A7H4.mjs");await e(o);break}case"pre-secrets":{let{runPreSecretsHook:e}=await import("./pre-secrets-RJELPDFY.mjs");await e(o);break}case"pre-package":{let{runPrePackageHook:e}=await import("./pre-package-ZTZACEBB.mjs");await e(o);break}case"pre-edit":{let{runPreEditHook:e}=await import("./pre-edit-ASEWA5TS.mjs");await e(o);break}case"pre-search":{let{runPreSearchHook:e}=await import("./pre-search-MKDRFJSE.mjs");await e(o);break}case"post-edit":{let{runPostEditHook:e}=await import("./post-edit-GTBY32JU.mjs");await e(o);break}case"stop":{let{runStopHook:e}=await import("./stop-6SH36ULT.mjs");await e(o);break}case"subagent-start":{let{runSubagentStartHook:e}=await import("./subagent-start-TVGBV2V2.mjs");await e(o);break}case"subagent-stop":{let{runSubagentStopHook:e}=await import("./subagent-stop-APWY6KMX.mjs");await e(o);break}case"notification":{let{runNotificationHook:e}=await import("./notification-G654IX3O.mjs");await e(o);break}case"cwd-changed":{let{runCwdChangedHook:e}=await import("./cwd-changed-EUJZOBIC.mjs");await e(o);break}default:process.stdout.write(`{}
16
16
  `)}process.exitCode=0}catch{process.stdout.write(`{}
17
- `),process.exitCode=0}}else if(t[0]==="crew"){let s=t[1]??"status",{CrewCommands:o}=await import("./crew-JQCG6NS3.mjs"),e=new o,n=t.includes("--md"),i=C(a=>{let r=t.indexOf(`--${a}`);if(r>=0&&r+1<t.length&&!t[r+1].startsWith("--"))return t[r+1]},"getFlag"),c=await(async()=>{if(s==="install")return e.install(null,process.cwd(),{md:n});if(s==="uninstall")return e.uninstall(null,process.cwd(),{md:n});if(s==="status")return e.status(null,process.cwd(),{md:n});if(s==="checkpoints"){let a=t[2]??"show";return e.checkpoints(a,process.cwd(),{md:n,content:i("content"),file:i("file")})}return s==="record-run"?e.recordRun(process.cwd(),{md:n,spec:i("spec"),task:i("task"),"implementer-summary":i("implementer-summary"),files:i("files"),"reviewer-verdict":i("reviewer-verdict"),"reviewer-notes":i("reviewer-notes"),"run-id":i("run-id")}):(console.error(`Unknown crew subcommand: ${s}. Use: install, uninstall, status, checkpoints, record-run.`),{success:!1,error:`unknown subcommand: ${s}`})})();process.exitCode=c.success?0:1}else if(t[0]==="harness"){let s=t[1]??"list",{HarnessCommands:o}=await import("./harness-FN3HASSA.mjs"),e=new o,n=t.includes("--md"),i=await(async()=>{if(s==="score")return e.score(process.cwd(),{md:n});if(s==="instructions"){if(t[2]==="set")return e.instructionDisposition(t[3]??null,t[4]??null,process.cwd());let c=t[2]?.startsWith("--")?null:t[2]??null;return e.instructions(c,process.cwd(),{md:n})}return s==="learn-from"?e.learnFrom(process.cwd(),{md:n}):s==="list"?e.list({md:n}):s==="use"?e.use(t[2]??null,process.cwd(),{md:n}):(console.error(`Unknown harness subcommand: ${s}. Use: score, instructions [24h|7d|14d|30d|set <id> <open|resolved|false-positive>], learn-from, list, use <rig>.`),{success:!1,error:`unknown subcommand: ${s}`})})();process.exitCode=i.success?0:1}else if(t[0]==="doctor"){let s=await m.trackSession("doctor"),{doctorService:o}=await import("./doctor-service-WXLB2FEE.mjs"),n=t.includes("--fix")||t.includes("--heal")?await o.heal(process.cwd()):await o.run(process.cwd());process.exitCode=n,s()}else if(t[0]==="uninstall"){let{uninstall:s}=await import("./uninstall-6NFON7FO.mjs"),o=t.includes("--force")||t.includes("-f"),e=t.includes("--backup")||t.includes("-b"),n=t.includes("--dry-run")||t.includes("-n"),i=t.includes("--keep-package"),c=await s({force:o,backup:e,dryRun:n,keepPackage:i});process.exitCode=c.success?0:1}else if(t[0]==="watch"){let s=process.cwd();if(await b(s)){let{watchService:e}=await import("./watch-service-7ZERG7RC.mjs"),n=t.includes("--verbose")||t.includes("-v"),i=t.find(d=>d.startsWith("--debounce=")),c=i?parseInt(i.split("=")[1],10):void 0,a=t.find(d=>d.startsWith("--interval=")),r=a?parseInt(a.split("=")[1],10)*1e3:void 0,l=await e.start(s,{verbose:n,quiet:m.isQuietMode,debounceMs:c,minIntervalMs:r});l.success||(console.error(l.error),process.exitCode=1)}}else if(t[0]==="help"||t[0]==="-h"||t[0]==="--help"){let{getHelp:s}=await import("./help-I37I3V2R.mjs"),o=t[1];console.log(s(o)),process.exitCode=0}else if(t[0]==="version"||t[0]==="-v"||t[0]==="--version"){let s=await import("node:os"),o=await import("node:path"),e=(await import("chalk")).default,{detectAllProviders:n,detectAntigravity:i,detectCodex:c}=await import("./ai-provider-RVXK7D7R.mjs"),{listAgentRuntimes:a}=await import("./agent-runtime-registry-3RMVBEV2.mjs"),{fileExists:r}=await import("./file-helper-LLQKU6YF.mjs"),{VERSION:l}=await import("./version-252QLBN2.mjs"),d=await n(m.isRefresh),u=s.homedir(),k=process.cwd(),[v,y,x,S,h,g]=await Promise.all([r(o.join(u,".claude","CLAUDE.md")),r(o.join(u,".gemini","GEMINI.md")),r(o.join(k,".cursor")),r(o.join(k,".cursor","rules","prjct.mdc")),r(o.join(u,".codex","config.toml")),r(o.join(k,"AGENTS.md"))]),[w,f]=await Promise.all([c(),i()]),{providerStatusHeader:j,providerStatusLine:p}=await import("./provider-status-HQUBKMH5.mjs"),D=a().filter(M=>M.id!=="agents-md").length;console.log(j(l)),console.log(p("Universal AGENTS.md",g?"ready":"missing",e.dim(` (${D} runtime profiles in registry)`))),console.log(p("Claude Code",d.claude.installed?v?"ready":"installed":"missing",d.claude.version?e.dim(` (v${d.claude.version})`):"")),console.log(p("Gemini CLI",d.gemini.installed?y?"ready":"installed":"missing",d.gemini.version?e.dim(` (v${d.gemini.version})`):"")),console.log(p("OpenAI Codex",w.installed?w.skillInstalled&&h?"ready":"installed":"missing",w.installed&&!w.skillInstalled?e.dim(" (run prjct start)"):w.installed&&!h?e.dim(" (MCP pending)"):"")),console.log(p("Antigravity",f.installed?f.skillInstalled?"ready":"detected":"missing",f.installed&&!f.skillInstalled?e.dim(" (run prjct start)"):"")),console.log(p("Cursor IDE",x?S?"ready":"detected":"missing",x?e.dim(" (project)"):"","\u25CB not detected")),console.log(`
17
+ `),process.exitCode=0}}else if(t[0]==="crew"){let s=t[1]??"status",{CrewCommands:o}=await import("./crew-EYVSIX4L.mjs"),e=new o,n=t.includes("--md"),i=C(a=>{let r=t.indexOf(`--${a}`);if(r>=0&&r+1<t.length&&!t[r+1].startsWith("--"))return t[r+1]},"getFlag"),c=await(async()=>{if(s==="install")return e.install(null,process.cwd(),{md:n});if(s==="uninstall")return e.uninstall(null,process.cwd(),{md:n});if(s==="status")return e.status(null,process.cwd(),{md:n});if(s==="checkpoints"){let a=t[2]??"show";return e.checkpoints(a,process.cwd(),{md:n,content:i("content"),file:i("file")})}return s==="record-run"?e.recordRun(process.cwd(),{md:n,spec:i("spec"),task:i("task"),"implementer-summary":i("implementer-summary"),files:i("files"),"reviewer-verdict":i("reviewer-verdict"),"reviewer-notes":i("reviewer-notes"),"run-id":i("run-id")}):(console.error(`Unknown crew subcommand: ${s}. Use: install, uninstall, status, checkpoints, record-run.`),{success:!1,error:`unknown subcommand: ${s}`})})();process.exitCode=c.success?0:1}else if(t[0]==="harness"){let s=t[1]??"list",{HarnessCommands:o}=await import("./harness-V7J7WIT2.mjs"),e=new o,n=t.includes("--md"),i=await(async()=>{if(s==="score")return e.score(process.cwd(),{md:n});if(s==="instructions"){if(t[2]==="set")return e.instructionDisposition(t[3]??null,t[4]??null,process.cwd());let c=t[2]?.startsWith("--")?null:t[2]??null;return e.instructions(c,process.cwd(),{md:n})}return s==="learn-from"?e.learnFrom(process.cwd(),{md:n}):s==="list"?e.list({md:n}):s==="use"?e.use(t[2]??null,process.cwd(),{md:n}):(console.error(`Unknown harness subcommand: ${s}. Use: score, instructions [24h|7d|14d|30d|set <id> <open|resolved|false-positive>], learn-from, list, use <rig>.`),{success:!1,error:`unknown subcommand: ${s}`})})();process.exitCode=i.success?0:1}else if(t[0]==="doctor"){let s=await m.trackSession("doctor"),{doctorService:o}=await import("./doctor-service-6ZJBWIXR.mjs"),n=t.includes("--fix")||t.includes("--heal")?await o.heal(process.cwd()):await o.run(process.cwd());process.exitCode=n,s()}else if(t[0]==="uninstall"){let{uninstall:s}=await import("./uninstall-W6EAUS7N.mjs"),o=t.includes("--force")||t.includes("-f"),e=t.includes("--backup")||t.includes("-b"),n=t.includes("--dry-run")||t.includes("-n"),i=t.includes("--keep-package"),c=await s({force:o,backup:e,dryRun:n,keepPackage:i});process.exitCode=c.success?0:1}else if(t[0]==="watch"){let s=process.cwd();if(await b(s)){let{watchService:e}=await import("./watch-service-7V3O52TW.mjs"),n=t.includes("--verbose")||t.includes("-v"),i=t.find(d=>d.startsWith("--debounce=")),c=i?parseInt(i.split("=")[1],10):void 0,a=t.find(d=>d.startsWith("--interval=")),r=a?parseInt(a.split("=")[1],10)*1e3:void 0,l=await e.start(s,{verbose:n,quiet:m.isQuietMode,debounceMs:c,minIntervalMs:r});l.success||(console.error(l.error),process.exitCode=1)}}else if(t[0]==="help"||t[0]==="-h"||t[0]==="--help"){let{getHelp:s}=await import("./help-P7EYELVK.mjs"),o=t[1];console.log(s(o)),process.exitCode=0}else if(t[0]==="version"||t[0]==="-v"||t[0]==="--version"){let s=await import("node:os"),o=await import("node:path"),e=(await import("chalk")).default,{detectAllProviders:n,detectAntigravity:i,detectCodex:c}=await import("./ai-provider-RVXK7D7R.mjs"),{listAgentRuntimes:a}=await import("./agent-runtime-registry-3RMVBEV2.mjs"),{fileExists:r}=await import("./file-helper-LLQKU6YF.mjs"),{VERSION:l}=await import("./version-B5DBRVGQ.mjs"),d=await n(m.isRefresh),u=s.homedir(),k=process.cwd(),[v,y,x,S,h,g]=await Promise.all([r(o.join(u,".claude","CLAUDE.md")),r(o.join(u,".gemini","GEMINI.md")),r(o.join(k,".cursor")),r(o.join(k,".cursor","rules","prjct.mdc")),r(o.join(u,".codex","config.toml")),r(o.join(k,"AGENTS.md"))]),[w,f]=await Promise.all([c(),i()]),{providerStatusHeader:j,providerStatusLine:p}=await import("./provider-status-HQUBKMH5.mjs"),D=a().filter(M=>M.id!=="agents-md").length;console.log(j(l)),console.log(p("Universal AGENTS.md",g?"ready":"missing",e.dim(` (${D} runtime profiles in registry)`))),console.log(p("Claude Code",d.claude.installed?v?"ready":"installed":"missing",d.claude.version?e.dim(` (v${d.claude.version})`):"")),console.log(p("Gemini CLI",d.gemini.installed?y?"ready":"installed":"missing",d.gemini.version?e.dim(` (v${d.gemini.version})`):"")),console.log(p("OpenAI Codex",w.installed?w.skillInstalled&&h?"ready":"installed":"missing",w.installed&&!w.skillInstalled?e.dim(" (run prjct start)"):w.installed&&!h?e.dim(" (MCP pending)"):"")),console.log(p("Antigravity",f.installed?f.skillInstalled?"ready":"detected":"missing",f.installed&&!f.skillInstalled?e.dim(" (run prjct start)"):"")),console.log(p("Cursor IDE",x?S?"ready":"detected":"missing",x?e.dim(" (project)"):"","\u25CB not detected")),console.log(`
18
18
  ${e.dim("Run 'prjct start' to configure global/runtime adapters")}
19
19
  ${e.dim("Run 'prjct init' or 'prjct sync' to refresh AGENTS.md and project-level rules")}
20
20
  ${e.cyan("https://prjct.app")}
21
- `)}else return!1;return!0}C($,"runBinCommand");async function b(t){let s=await(await import("./config-manager-QVFHXIKI.mjs")).default.getProjectId(t);return s||(console.error('No prjct project found. Run "prjct init" first.'),process.exitCode=1,null)}C(b,"requireProjectOrExit");export{$ as runBinCommand};
21
+ `)}else return!1;return!0}C($,"runBinCommand");async function b(t){let s=await(await import("./config-manager-QY73WM5U.mjs")).default.getProjectId(t);return s||(console.error('No prjct project found. Run "prjct init" first.'),process.exitCode=1,null)}C(b,"requireProjectOrExit");export{$ as runBinCommand};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as k}from"./chunk-DEYAQEF5.mjs";import{e as w}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as y}from"./chunk-V5VCXMKO.mjs";import{e as g}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import{b as v}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as q}from"./chunk-225DWS4D.mjs";import{a as p}from"./chunk-3TRXQAU4.mjs";q();var b=class extends y{static{p(this,"CaptureCommands")}async capture(c=null,o=process.cwd(),r={}){try{if(!c||!c.trim())return i.info('Usage: prjct capture "<anything>" [--tags k:v,...]'),{success:!1,error:"Content required"};let e=c.trim(),s=w(e,{force:r.force});if(!s.ok)return s.result;let a=k(r.tags),n=await this.ensureProjectInit(o);if(!n.success)return n;if(r.fromCurrent){let{requireProject:C}=await import("./guards-LFUFKVVH.mjs"),t=await C(o);if(!t.ok)return t.result;let{queueStorage:$}=await import("./queue-storage-BKH5XX2E.mjs"),{workGraph:h}=await import("./work-graph-WHMCFN6U.mjs"),u=await $.addTask(t.value,{description:e,section:"active",type:"feature",priority:"medium"});try{let{collectActiveTasks:x}=await import("./task-overview-XSMK7YEN.mjs"),l=await x(t.value,o);l.current?.id&&h.addDependency(t.value,u.id,l.current.id,"discovered-from")}catch{}let d=e.length>60?`${e.slice(0,57)}\u2026`:e;return r.md?console.log(`\u2713 captured as backlog item (discovered-from current): ${d}`):i.done(`captured as backlog item: ${d}`),{success:!0,type:"discovered",id:u.id,content:e}}await v.remember(o,{type:"inbox",content:e,tags:a,provenance:"declared"});let m=e.length>60?`${e.slice(0,57)}\u2026`:e;return r.md?console.log(`\u2713 captured: ${m}`):i.done(`captured: ${m}`),{success:!0,type:"inbox",content:e,tags:a}}catch(e){let s=f(e);return g(s)}}};export{b as CaptureCommands};
7
+ import{a as k}from"./chunk-DEYAQEF5.mjs";import{e as w}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as y}from"./chunk-5DZ2LTII.mjs";import{e as g}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as v}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as q}from"./chunk-225DWS4D.mjs";import{a as p}from"./chunk-3TRXQAU4.mjs";q();var b=class extends y{static{p(this,"CaptureCommands")}async capture(c=null,o=process.cwd(),r={}){try{if(!c||!c.trim())return i.info('Usage: prjct capture "<anything>" [--tags k:v,...]'),{success:!1,error:"Content required"};let e=c.trim(),s=w(e,{force:r.force});if(!s.ok)return s.result;let a=k(r.tags),n=await this.ensureProjectInit(o);if(!n.success)return n;if(r.fromCurrent){let{requireProject:C}=await import("./guards-AXH6V2IJ.mjs"),t=await C(o);if(!t.ok)return t.result;let{queueStorage:$}=await import("./queue-storage-BKH5XX2E.mjs"),{workGraph:h}=await import("./work-graph-WHMCFN6U.mjs"),u=await $.addTask(t.value,{description:e,section:"active",type:"feature",priority:"medium"});try{let{collectActiveTasks:x}=await import("./task-overview-XSMK7YEN.mjs"),l=await x(t.value,o);l.current?.id&&h.addDependency(t.value,u.id,l.current.id,"discovered-from")}catch{}let d=e.length>60?`${e.slice(0,57)}\u2026`:e;return r.md?console.log(`\u2713 captured as backlog item (discovered-from current): ${d}`):i.done(`captured as backlog item: ${d}`),{success:!0,type:"discovered",id:u.id,content:e}}await v.remember(o,{type:"inbox",content:e,tags:a,provenance:"declared"});let m=e.length>60?`${e.slice(0,57)}\u2026`:e;return r.md?console.log(`\u2713 captured: ${m}`):i.done(`captured: ${m}`),{success:!0,type:"inbox",content:e,tags:a}}catch(e){let s=f(e);return g(s)}}};export{b as CaptureCommands};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{i as a}from"./chunk-KKIJAEYU.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-X35YYOFE.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as captureGate};
7
+ import{i as a}from"./chunk-OXKGN3HG.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-6KNMT46X.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as captureGate};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as U}from"./chunk-K25HGTC3.mjs";import{a as b}from"./chunk-GTG67Z45.mjs";import{a as P}from"./chunk-24EN5Y62.mjs";import{b as C}from"./chunk-KIRU4QFX.mjs";import{b as N}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as H}from"./chunk-V5VCXMKO.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import{c as M}from"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import{f as W}from"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import{b as $}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import{a as D}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as w}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as y,g as T,i as A}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{e as I,l as z}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as E}from"./chunk-3TRXQAU4.mjs";A();z();A();import{z as R}from"zod";var L="work-plan:active",F=R.object({status:R.enum(["draft","approved","abandoned"]),title:R.string().min(1),content:R.string(),taskId:R.string().nullable().optional(),createdAt:R.string().min(1),updatedAt:R.string().min(1),approvedAt:R.string().nullable().optional()});function V(_){return[`# Plan: ${_}`,"","## Context","","Why this change is needed.","","## Recommended approach","","The path we will take (not every alternative).","","## Critical files","","- `path/to/file` \u2014 why","","## Reuse","","Existing functions/utilities to match (file:line when known).","","## Verification","","How to test end-to-end after implementation.",""].join(`
7
+ import{a as U}from"./chunk-XLAGA5B7.mjs";import{a as b}from"./chunk-GTG67Z45.mjs";import{a as P}from"./chunk-24EN5Y62.mjs";import{b as C}from"./chunk-J6Y7IVFQ.mjs";import{b as N}from"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as H}from"./chunk-5DZ2LTII.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import{c as M}from"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import{g as W}from"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import{b as $}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import{a as D}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as w}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as y,g as T,i as A}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{e as I,l as z}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as E}from"./chunk-3TRXQAU4.mjs";A();z();A();import{z as R}from"zod";var L="work-plan:active",F=R.object({status:R.enum(["draft","approved","abandoned"]),title:R.string().min(1),content:R.string(),taskId:R.string().nullable().optional(),createdAt:R.string().min(1),updatedAt:R.string().min(1),approvedAt:R.string().nullable().optional()});function V(_){return[`# Plan: ${_}`,"","## Context","","Why this change is needed.","","## Recommended approach","","The path we will take (not every alternative).","","## Critical files","","- `path/to/file` \u2014 why","","## Reuse","","Existing functions/utilities to match (file:line when known).","","## Verification","","How to test end-to-end after implementation.",""].join(`
8
8
  `)}E(V,"emptyPlanTemplate");var j=class{static{E(this,"PlanStorage")}get(r){let n=T.getDoc(r,L);if(n===null)return null;let e=F.safeParse(n);return e.success?e.data:null}set(r,n){let e=F.parse(n);return T.setDoc(r,L,e),e}start(r,n,e){let t=I(),s={status:"draft",title:n.trim()||"Untitled plan",content:V(n.trim()||"Untitled plan"),taskId:e??null,createdAt:t,updatedAt:t,approvedAt:null};return this.set(r,s)}writeContent(r,n){let e=this.get(r);return!e||e.status!=="draft"?null:this.set(r,{...e,content:n,updatedAt:I()})}approve(r){let n=this.get(r);if(!n||n.status!=="draft")return null;let e=I();return this.set(r,{...n,status:"approved",updatedAt:e,approvedAt:e})}abandon(r){let n=this.get(r);return n?this.set(r,{...n,status:"abandoned",updatedAt:I()}):null}clear(r){T.deleteDoc(r,L)}},v=new j;var Y=4,G=3,q=class extends H{static{E(this,"CeremonyCommands")}async log(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=(r??"").trim();if(!s)return this.fail('Usage: prjct log "<what you tried / found>" [--task id]',e);let o=e.task??(await b(t.value,n).catch(()=>null))?.current?.id;if(!o)return this.fail("No active work cycle \u2014 pass --task <id>",e);y.run(t.value,"INSERT INTO task_log (task_id, session_id, content, created_at) VALUES (?, ?, ?, ?)",o,process.env.CLAUDE_SESSION_ID??null,s,new Date().toISOString());let i=`logged to ${o.slice(0,8)}: ${s.slice(0,70)}`;return e.md?console.log(`\u2713 ${i}`):w.done(i),{success:!0,taskId:o}}async brief(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=(r??"").trim()||void 0,o=s?void 0:(await b(t.value,n).catch(()=>null))?.current,i=s??o?.id;if(!i)return this.fail("No active work cycle \u2014 pass a task id",e);let m=o?.description??(await D.getTasks(t.value)).find(a=>a.id===i)?.description??y.get(t.value,"SELECT description FROM tasks WHERE id = ?",i)?.description??i,c=[`# Brief \u2014 ${m}`,""],h=N(m),p=M(h);c.push(`**Orchestration:** ${p.model}/${p.effort} \xB7 spec: ${p.spec} \xB7 tests: ${p.tests} \xB7 fan-out: ${p.fanout} \xB7 ~${p.expectedPoints} pt`,"");let g=y.query(t.value,"SELECT content, created_at FROM task_log WHERE task_id = ? ORDER BY id DESC LIMIT 8",i);if(g.length>0){c.push("## Journal (previous attempts)","");for(let a of g.reverse())c.push(`- ${a.created_at.slice(5,16)} \u2014 ${a.content}`);c.push("")}try{let a=m.split(/\s+/).filter(u=>u.length>3).slice(0,6),l=$.searchFts(t.value,a,5);if(l.length>0){c.push("## Related memory","");for(let u of l)c.push(`- [${u.id} \xB7 ${u.type}] ${u.content.slice(0,140)}`);c.push("")}}catch{}let d=y.query(t.value,`SELECT description FROM tasks WHERE status IN ('completed','shipped') AND id != ?
9
9
  ORDER BY COALESCE(completed_at, shipped_at) DESC LIMIT 3`,i);if(d.length>0){c.push("## Recently landed (follow their conventions)","");for(let a of d)c.push(`- ${a.description.slice(0,110)}`);c.push("")}let k=P.dependenciesOf(t.value,i);if(k.length>0){c.push("## Graph position","");for(let a of k)c.push(`- \`${a.fromId.slice(0,8)}\` \u2014${a.depType}\u2192 \`${a.toId.slice(0,8)}\``);c.push("")}c.push("_Compiled brief \u2014 regenerate with `prjct brief` after major drift._");let S=c.join(`
10
10
  `);return y.run(t.value,`INSERT INTO task_briefs (task_id, content, created_at) VALUES (?, ?, ?)
@@ -13,7 +13,7 @@ import{a as U}from"./chunk-K25HGTC3.mjs";import{a as b}from"./chunk-GTG67Z45.mjs
13
13
 
14
14
  ${t.content.slice(0,2e3)}`,tags:{topic:"plan-mode",status:"approved"},provenance:"declared"}),this.printPlan(t,e),e.md?console.log(`
15
15
  > Plan approved. Source edits are allowed. Implement against the plan.`):w.done("Plan approved \u2014 implement against the plan"),{success:!0,status:t.status,title:t.title,approved:!0}):this.fail('No draft plan to approve. Start with `prjct plan "<title>"` and fill the sections first.',e)}planClear(r,n,e){let t=v.get(r);if(!t)return this.fail("No active plan to clear.",e);n?v.clear(r):v.abandon(r);let s=n?"Plan cleared from SQLite.":`Plan abandoned (${t.title}).`;return e.md?console.log(`> ${s}`):w.done(s),{success:!0,cleared:n,abandoned:!n}}printPlan(r,n){let e=r.status==="draft"?["## Host contract (draft \u2014 read-only)","","- Do **not** edit project source files until `prjct plan approve`.",'- Only mutate the plan via `prjct plan write "<markdown>"`.',"- Fill: Context \xB7 Recommended approach \xB7 Critical files \xB7 Reuse \xB7 Verification.","- When ready, ask the user; then `prjct plan approve --md`.",""]:r.status==="approved"?["## Host contract (approved)","","- Source edits allowed. Implement against this plan.","- Persist decisions/learnings with `prjct remember`.",""]:["## Host contract (abandoned)",""],t=[`# Plan \u2014 ${r.status}`,"",`**Title:** ${r.title}`,`**Updated:** ${r.updatedAt}`,r.taskId?`**Work cycle:** \`${r.taskId.slice(0,8)}\``:null,"",...e,"## Plan body","",r.content.trimEnd(),""].filter(s=>s!==null);console.log(t.join(`
16
- `)),!n.md&&r.status==="draft"&&w.info("Plan mode: draft \u2014 no source edits until approve")}async prime(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=await b(t.value,n).catch(()=>null),o=s?.current?y.query(t.value,"SELECT content FROM task_log WHERE task_id = ? ORDER BY id DESC LIMIT 3",s.current.id).map(a=>a.content).reverse():[],{loadSessionContinuity:i,loadLastSessionCloseContent:m,formatSessionResumeCard:c}=await import("./session-continuity-BFSW4OL6.mjs"),h=i(t.value),p=m(t.value),g=await import("./agent-switch-AVSX6SLY.mjs").then(({formatPendingHandoffCue:a})=>a(t.value)).catch(()=>null),d=[c({stamp:h,liveCycleDescription:s?.current?.description??null,liveCycleId:s?.current?.id??null,journal:o,sessionCloseContent:p,pendingHandoffCue:g}),""],k=P.ready(t.value,{limit:5});if(k.length>0){d.push("**Ready frontier:**");for(let a of k)d.push(`- \`${a.id.slice(0,8)}\` ${a.description.slice(0,90)}`);d.push("")}try{let a=$.recall(t.value,{types:["feedback","improvement-signal"],limit:40,dedupeByKey:!1}),l=U(a,Y);if(l.length>0){d.push("**Act as this developer:**");for(let u of l){let f=u.kind==="preference"?"said":"showed";d.push(`- ${u.rule.slice(0,140)} _(${f})_`)}d.push("")}}catch{}try{let a=$.recall(t.value,{types:["gotcha","anti-pattern"],limit:G});if(a.length>0){d.push("**Top traps (do not re-pay):**");for(let l of a)d.push(`- ${W(l).slice(0,100)} \`${l.id}\``);d.push("")}}catch{}try{let{default:a}=await import("./config-manager-QVFHXIKI.mjs"),l=await a.readConfig(n),{buildTokenEconomics:u}=await import("./token-economics-JZAQJUET.mjs"),f=s?.current,O=u(t.value,{cycleTokensIn:f&&"tokensIn"in f?f.tokensIn:void 0,cycleTokensOut:f&&"tokensOut"in f?f.tokensOut:void 0,maxTokensPerCycle:l?.maxTokensPerCycle??null});d.push(`**${O.line}**`);let{effectiveWeakModelMode:x,weakModelOneLiner:B}=await import("./weak-model-mode-DH66XMD2.mjs");x(l)==="on"&&d.push(`**${B()}**`)}catch{}console.log(`${d.join(`
16
+ `)),!n.md&&r.status==="draft"&&w.info("Plan mode: draft \u2014 no source edits until approve")}async prime(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=await b(t.value,n).catch(()=>null),o=s?.current?y.query(t.value,"SELECT content FROM task_log WHERE task_id = ? ORDER BY id DESC LIMIT 3",s.current.id).map(a=>a.content).reverse():[],{loadSessionContinuity:i,loadLastSessionCloseContent:m,formatSessionResumeCard:c}=await import("./session-continuity-OQDB5UYI.mjs"),h=i(t.value),p=m(t.value),g=await import("./agent-switch-4SE6GF7R.mjs").then(({formatPendingHandoffCue:a})=>a(t.value)).catch(()=>null),d=[c({stamp:h,liveCycleDescription:s?.current?.description??null,liveCycleId:s?.current?.id??null,journal:o,sessionCloseContent:p,pendingHandoffCue:g}),""],k=P.ready(t.value,{limit:5});if(k.length>0){d.push("**Ready frontier:**");for(let a of k)d.push(`- \`${a.id.slice(0,8)}\` ${a.description.slice(0,90)}`);d.push("")}try{let a=$.recall(t.value,{types:["feedback","improvement-signal"],limit:40,dedupeByKey:!1}),l=U(a,Y);if(l.length>0){d.push("**Act as this developer:**");for(let u of l){let f=u.kind==="preference"?"said":"showed";d.push(`- ${u.rule.slice(0,140)} _(${f})_`)}d.push("")}}catch{}try{let a=$.recall(t.value,{types:["gotcha","anti-pattern"],limit:G});if(a.length>0){d.push("**Top traps (do not re-pay):**");for(let l of a)d.push(`- ${W(l).slice(0,100)} \`${l.id}\``);d.push("")}}catch{}try{let{default:a}=await import("./config-manager-QY73WM5U.mjs"),l=await a.readConfig(n),{buildTokenEconomics:u}=await import("./token-economics-JZAQJUET.mjs"),f=s?.current,O=u(t.value,{cycleTokensIn:f&&"tokensIn"in f?f.tokensIn:void 0,cycleTokensOut:f&&"tokensOut"in f?f.tokensOut:void 0,maxTokensPerCycle:l?.maxTokensPerCycle??null});d.push(`**${O.line}**`);let{effectiveWeakModelMode:x,weakModelOneLiner:B}=await import("./weak-model-mode-LOAPFJPQ.mjs");x(l)==="on"&&d.push(`**${B()}**`)}catch{}console.log(`${d.join(`
17
17
  `).trimEnd()}
18
- `);let{isContinuityFresh:S}=await import("./session-continuity-BFSW4OL6.mjs");return{success:!0,continuity:h?{landedAt:h.landedAt,cycleId:h.cycleId,fresh:S(h)}:null}}async land(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=["# Land the plane",""],o=[],i=await b(t.value,n).catch(()=>null),{synthesizeLandHandoff:m}=await import("./land-synthesis-CHARJMUP.mjs"),c=await m({projectId:t.value,projectPath:n,cycleDescription:i?.current?.description??null,cycleId:i?.current?.id??null}).catch(()=>null),{synthesizeJudgmentReceipt:h}=await import("./judgment-receipt-WT4EMCAV.mjs"),p=await h({projectId:t.value,projectPath:n,cycleDescription:i?.current?.description??null,cycleId:i?.current?.id??null}).catch(()=>null),g=await(async()=>{try{let{default:l}=await import("./config-manager-QVFHXIKI.mjs"),u=await l.readConfig(n).catch(()=>null),{stateStorage:f}=await import("./state-storage-6CGFWW5D.mjs"),O=i?.current?await f.getCurrentTask(t.value).catch(()=>null):null,{stampSessionContinuity:x}=await import("./session-continuity-BFSW4OL6.mjs");return x({projectId:t.value,projectPath:n,config:u,cycleId:i?.current?.id??null,cycleDescription:i?.current?.description??null,turns:O?.turnCount??null,tokensIn:O?.tokensIn??null,tokensOut:O?.tokensOut??null,handoffWrote:c?.wrote??!1,receiptWrote:p?.wrote??!1,handoffContent:c?.content??null})}catch{return null}})();i?.current&&o.push(`Active cycle still open: "${i.current.description.slice(0,70)}" \u2014 finish it (\`prjct status done\`) or journal the state (\`prjct log "..."\`).`);let d=y.query(t.value,"SELECT id, description FROM queue_tasks WHERE completed = 0 AND claimed_by IS NOT NULL LIMIT 5");for(let l of d)o.push(`Claimed but open: \`${l.id.slice(0,8)}\` ${l.description.slice(0,60)} \u2014 release or finish.`);let k=y.get(t.value,"SELECT COUNT(*) AS c FROM sync_pending");(k?.c??0)>0&&o.push(`${k?.c} event(s) pending cloud sync.`),c?.wrote?s.push("- [x] Hand-off auto-synthesized (`context` \xB7 topic:`session-close` \xB7 source:`land-auto`). No `remember` required.",""):c?.reason==="nothing-to-land"?s.push("- [x] Nothing durable to hand off (no cycle / journal / commits / auto-captures).",""):o.push('Persist the hand-off: `prjct remember context "Session close: what changed, why, next" --tags topic:<key>`.'),p?.wrote&&p.summary&&s.push(`- [x] ${p.summary} (tags: source:land-receipt \xB7 capture:receipt-v1).`,"");let S=await(async()=>{try{let{runLandRhoDryRun:l}=await import("./land-rho-ISNVEPVC.mjs"),u=l(t.value);return u?(e.md?s.push(u.md):s.push(`- [x] ${u.line}`,""),u.line):null}catch{return null}})(),a=await(async()=>{try{let{maybeDreamOnLand:l}=await import("./memory-dream-EJWI4FJO.mjs"),u=l(t.value);return u?(e.md?s.push(u.md):(u.ran||!u.skipped)&&s.push(`- [x] ${u.line}`,""),u.line):null}catch{return null}})();try{if(!a||!a.startsWith("Dream complete")){let{buildAndStoreMemoryL0Index:l}=await import("./memory-index-BRZDZ2BY.mjs");l({projectId:t.value,source:"land"})}}catch{}if(o.push("Team share (optional): `prjct memory export` \u2192 commit `.prjct/memory-export/` \u2192 clone \u2192 `prjct memory import`."),o.push("Next window: `prjct prime --md` (managed session resume \u2014 not a blank chat)."),s.push(...o.map(l=>`- [ ] ${l}`)),g){let{formatLandContinuityFooter:l}=await import("./session-continuity-BFSW4OL6.mjs");s.push(l(g))}return console.log(s.join(`
19
- `)),{success:!0,items:o.length+(c?.wrote?1:0)+(p?.wrote?1:0),dream:a,handoff:c?.wrote??!1,receipt:p?.wrote??!1,receiptSummary:p?.summary??null,rhoDryRun:S,continuity:g?{landedAt:g.landedAt,key:"session:continuity"}:null}}async dream(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let{runMemoryDream:s}=await import("./memory-dream-EJWI4FJO.mjs"),o=s({projectId:t.value,projectPath:n,force:e.force===!0,dryRun:e.dryRun===!0,minHours:e.minHours,minSessions:e.minSessions});return e.md?(console.log(o.md),o.index?.markdown&&o.ran&&console.log(o.index.markdown)):o.skipped?(w.info(o.line),w.info("Use `prjct dream --force` to run now, or `--dry-run` to preview.")):w.done(o.line),{success:!0,ran:o.ran,skipped:o.skipped,dryRun:o.dryRun,reason:o.reason??null,line:o.line,archived:o.phases.consolidate.archived,deleted:o.phases.consolidate.deleted,indexLive:o.phases.prune.indexLive}}fail(r,n){return n.md?console.log(`> ${r}`):w.fail(r),{success:!1,error:r}}};export{q as CeremonyCommands};
18
+ `);let{isContinuityFresh:S}=await import("./session-continuity-OQDB5UYI.mjs");return{success:!0,continuity:h?{landedAt:h.landedAt,cycleId:h.cycleId,fresh:S(h)}:null}}async land(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let s=["# Land the plane",""],o=[],i=await b(t.value,n).catch(()=>null),{synthesizeLandHandoff:m}=await import("./land-synthesis-MU4EZEYL.mjs"),c=await m({projectId:t.value,projectPath:n,cycleDescription:i?.current?.description??null,cycleId:i?.current?.id??null}).catch(()=>null),{synthesizeJudgmentReceipt:h}=await import("./judgment-receipt-GO6QEZQC.mjs"),p=await h({projectId:t.value,projectPath:n,cycleDescription:i?.current?.description??null,cycleId:i?.current?.id??null}).catch(()=>null),g=await(async()=>{try{let{default:l}=await import("./config-manager-QY73WM5U.mjs"),u=await l.readConfig(n).catch(()=>null),{stateStorage:f}=await import("./state-storage-6CGFWW5D.mjs"),O=i?.current?await f.getCurrentTask(t.value).catch(()=>null):null,{stampSessionContinuity:x}=await import("./session-continuity-OQDB5UYI.mjs");return x({projectId:t.value,projectPath:n,config:u,cycleId:i?.current?.id??null,cycleDescription:i?.current?.description??null,turns:O?.turnCount??null,tokensIn:O?.tokensIn??null,tokensOut:O?.tokensOut??null,handoffWrote:c?.wrote??!1,receiptWrote:p?.wrote??!1,handoffContent:c?.content??null})}catch{return null}})();i?.current&&o.push(`Active cycle still open: "${i.current.description.slice(0,70)}" \u2014 finish it (\`prjct status done\`) or journal the state (\`prjct log "..."\`).`);let d=y.query(t.value,"SELECT id, description FROM queue_tasks WHERE completed = 0 AND claimed_by IS NOT NULL LIMIT 5");for(let l of d)o.push(`Claimed but open: \`${l.id.slice(0,8)}\` ${l.description.slice(0,60)} \u2014 release or finish.`);let k=y.get(t.value,"SELECT COUNT(*) AS c FROM sync_pending");(k?.c??0)>0&&o.push(`${k?.c} event(s) pending cloud sync.`),c?.wrote?s.push("- [x] Hand-off auto-synthesized (`context` \xB7 topic:`session-close` \xB7 source:`land-auto`). No `remember` required.",""):c?.reason==="nothing-to-land"?s.push("- [x] Nothing durable to hand off (no cycle / journal / commits / auto-captures).",""):o.push('Persist the hand-off: `prjct remember context "Session close: what changed, why, next" --tags topic:<key>`.'),p?.wrote&&p.summary&&s.push(`- [x] ${p.summary} (tags: source:land-receipt \xB7 capture:receipt-v1).`,"");let S=await(async()=>{try{let{runLandRhoDryRun:l}=await import("./land-rho-MCTQDPRH.mjs"),u=l(t.value);return u?(e.md?s.push(u.md):s.push(`- [x] ${u.line}`,""),u.line):null}catch{return null}})(),a=await(async()=>{try{let{maybeDreamOnLand:l}=await import("./memory-dream-6GFV2GXN.mjs"),u=l(t.value);return u?(e.md?s.push(u.md):(u.ran||!u.skipped)&&s.push(`- [x] ${u.line}`,""),u.line):null}catch{return null}})();try{if(!a||!a.startsWith("Dream complete")){let{buildAndStoreMemoryL0Index:l}=await import("./memory-index-7NIU34EI.mjs");l({projectId:t.value,source:"land"})}}catch{}if(o.push("Team share (optional): `prjct memory export` \u2192 commit `.prjct/memory-export/` \u2192 clone \u2192 `prjct memory import`."),o.push("Next window: `prjct prime --md` (managed session resume \u2014 not a blank chat)."),s.push(...o.map(l=>`- [ ] ${l}`)),g){let{formatLandContinuityFooter:l}=await import("./session-continuity-OQDB5UYI.mjs");s.push(l(g))}return console.log(s.join(`
19
+ `)),{success:!0,items:o.length+(c?.wrote?1:0)+(p?.wrote?1:0),dream:a,handoff:c?.wrote??!1,receipt:p?.wrote??!1,receiptSummary:p?.summary??null,rhoDryRun:S,continuity:g?{landedAt:g.landedAt,key:"session:continuity"}:null}}async dream(r=null,n=process.cwd(),e={}){let t=await C(n,e);if(!t.ok)return t.result;let{runMemoryDream:s}=await import("./memory-dream-6GFV2GXN.mjs"),o=s({projectId:t.value,projectPath:n,force:e.force===!0,dryRun:e.dryRun===!0,minHours:e.minHours,minSessions:e.minSessions});return e.md?(console.log(o.md),o.index?.markdown&&o.ran&&console.log(o.index.markdown)):o.skipped?(w.info(o.line),w.info("Use `prjct dream --force` to run now, or `--dry-run` to preview.")):w.done(o.line),{success:!0,ran:o.ran,skipped:o.skipped,dryRun:o.dryRun,reason:o.reason??null,line:o.line,archived:o.phases.consolidate.archived,deleted:o.phases.consolidate.deleted,indexLive:o.phases.prune.indexLive}}fail(r,n){return n.md?console.log(`> ${r}`):w.fail(r),{success:!1,error:r}}};export{q as CeremonyCommands};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{b as u}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as g}from"./chunk-V5VCXMKO.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as l,i as w}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";w();var f=class extends g{static{m(this,"ChangelogCommands")}async changelog(y=null,R=process.cwd(),a={}){let n=await u(R,a);if(!n.ok)return n.result;let c=Number((y??"").trim())||14,d=new Date(Date.now()-c*864e5).toISOString(),i=l.query(n.value,"SELECT name, version, shipped_at FROM shipped_features WHERE shipped_at >= ? ORDER BY shipped_at DESC",d),r=l.query(n.value,`SELECT description, type, completed_at FROM tasks
7
+ import{b as u}from"./chunk-J6Y7IVFQ.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as g}from"./chunk-5DZ2LTII.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as l,i as w}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";w();var f=class extends g{static{m(this,"ChangelogCommands")}async changelog(y=null,R=process.cwd(),a={}){let n=await u(R,a);if(!n.ok)return n.result;let c=Number((y??"").trim())||14,d=new Date(Date.now()-c*864e5).toISOString(),i=l.query(n.value,"SELECT name, version, shipped_at FROM shipped_features WHERE shipped_at >= ? ORDER BY shipped_at DESC",d),r=l.query(n.value,`SELECT description, type, completed_at FROM tasks
8
8
  WHERE status = 'completed' AND completed_at >= ?
9
9
  ORDER BY completed_at DESC LIMIT 40`,d);if(i.length===0&&r.length===0){let e=`Nothing shipped or completed in the last ${c} day(s).`;return a.md?console.log(`> ${e}`):h.info(e),{success:!0,ships:0,completed:0}}let s=[`# Changelog \u2014 last ${c} day(s)`,""];if(i.length>0){let e=new Map;for(let t of i){let o=t.version&&t.version!=="unversioned"?`v${t.version}`:t.shipped_at.slice(0,10),p=e.get(o)??[];p.push(t),e.set(o,p)}s.push("## Shipped");for(let[t,o]of e){s.push("",`### ${t} \u2014 ${o[0].shipped_at.slice(0,10)}`);for(let p of o)s.push(`- ${p.name}`)}s.push("")}if(r.length>0){s.push("## Completed work cycles","");for(let e of r){let t=e.type?` \`${e.type}\``:"";s.push(`- ${e.description}${t} (${e.completed_at.slice(0,10)})`)}}return console.log(s.join(`
10
10
  `)),{success:!0,ships:i.length,completed:r.length}}};export{f as ChangelogCommands};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as g}from"./chunk-PIA26GWG.mjs";import{a as l,b as I}from"./chunk-RP7F67ZT.mjs";import{a as x}from"./chunk-INJ5WT2D.mjs";import{A as h,E}from"./chunk-HU5ERAAV.mjs";import{b as f,f as j}from"./chunk-XYDLXF5A.mjs";import{d as m,g as R}from"./chunk-TTN2CFZC.mjs";import{l as d,p as b}from"./chunk-HYIT7MF5.mjs";import{e as p,g as H}from"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";j();H();b();import S from"node:fs/promises";import K from"node:os";import k from"node:path";I();R();E();var w="prjct-codex-router",C=1024;function y(){return k.join(K.homedir(),".codex","skills","prjct","SKILL.md")}r(y,"getCodexSkillPath");function P(e){return`<!-- ${w}: ${JSON.stringify({v:m,h:e})} -->`}r(P,"getCodexSkillMetadata");function $(e){let t=e.match(new RegExp(`<!--\\s*${w}:\\s*(\\{[\\s\\S]*?\\})\\s*-->`));if(!t)return null;try{let i=JSON.parse(t[1]);return{version:i.v??i.version,templateHash:i.h??i.templateHash}}catch{return null}}r($,"parseCodexSkillMetadata");function M(e){return x(e).slice(0,12)}r(M,"hashContent");async function L(){return f("codex/SKILL.md")}r(L,"loadCodexSkillTemplate");function v(e){let t=e.trimEnd(),i=M(t),a=P(i);return{content:`${t}
7
+ import{a as g}from"./chunk-PIA26GWG.mjs";import{a as l,b as I}from"./chunk-RP7F67ZT.mjs";import{a as x}from"./chunk-INJ5WT2D.mjs";import{A as h,E}from"./chunk-HU5ERAAV.mjs";import{b as f,f as j}from"./chunk-OE27RFLJ.mjs";import{d as m,g as R}from"./chunk-XWLTEAGN.mjs";import{l as d,p as b}from"./chunk-HYIT7MF5.mjs";import{e as p,g as H}from"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";j();H();b();import S from"node:fs/promises";import K from"node:os";import k from"node:path";I();R();E();var w="prjct-codex-router",C=1024;function y(){return k.join(K.homedir(),".codex","skills","prjct","SKILL.md")}r(y,"getCodexSkillPath");function P(e){return`<!-- ${w}: ${JSON.stringify({v:m,h:e})} -->`}r(P,"getCodexSkillMetadata");function $(e){let t=e.match(new RegExp(`<!--\\s*${w}:\\s*(\\{[\\s\\S]*?\\})\\s*-->`));if(!t)return null;try{let i=JSON.parse(t[1]);return{version:i.v??i.version,templateHash:i.h??i.templateHash}}catch{return null}}r($,"parseCodexSkillMetadata");function M(e){return x(e).slice(0,12)}r(M,"hashContent");async function L(){return f("codex/SKILL.md")}r(L,"loadCodexSkillTemplate");function v(e){let t=e.trimEnd(),i=M(t),a=P(i);return{content:`${t}
8
8
 
9
9
  ${a}
10
10
  `,templateHash:i}}r(v,"buildCodexSkillContent");async function D(){try{let e=y(),t=k.dirname(e);await S.mkdir(t,{recursive:!0});let i=await d(e),a=await L();return a?await g({skillMdPath:e,skillExists:i,templateContent:a,build:r(s=>{let n=v(s),o=Buffer.byteLength(n.content,"utf-8");return o>C&&l.warn(`Codex SKILL.md is ${o} bytes \u2014 over Codex's ~${C}-byte hard limit; the skill may be rejected. Trim editor-surfaces.ts.`),n},"build"),logLabel:"Codex"}):(l.warn("Codex SKILL.md template not found"),{success:!1,action:null})}catch(e){return l.warn(`Codex skill warning: ${p(e)}`),{success:!1,action:null}}}r(D,"installCodexSkill");async function q(e={}){let t=y();if(!(await h()).installed)return{installed:!1,verified:!0,skillPath:t,message:"Codex not detected"};let a=await L();if(!a)return{installed:!0,verified:!1,skillPath:t,message:"Codex SKILL.md template missing from prjct installation",fix:["Reinstall prjct-cli package","Run `prjct setup`"]};let s=v(a),n=r(async()=>e.autoRepair?(await D()).success:!1,"maybeRepair");if(!await d(t)&&!await n())return{installed:!0,verified:!1,skillPath:t,templateHash:s.templateHash,message:"Codex skill missing at ~/.codex/skills/prjct/SKILL.md",fix:["Run `prjct start` to install Codex skill"]};let o=r(async()=>{let c=await S.readFile(t,"utf-8").catch(()=>""),u=$(c);return{matches:u?.version===m&&u?.templateHash===s.templateHash}},"readVerification");if(!(await o()).matches){if(!await n())return{installed:!0,verified:!1,skillPath:t,templateHash:s.templateHash,message:"Codex skill metadata mismatch (outdated router)",fix:["Run `prjct start` or `prjct setup` to refresh Codex skill"]};if(!(await o()).matches)return{installed:!0,verified:!1,skillPath:t,templateHash:s.templateHash,message:"Codex skill could not be repaired automatically",fix:["Delete ~/.codex/skills/prjct/SKILL.md","Run `prjct setup`"]}}return{installed:!0,verified:!0,skillPath:t,templateHash:s.templateHash,message:"Codex p. router ready"}}r(q,"verifyCodexPRouterReady");export{C as a,v as b,D as c,q as d};
@@ -4,6 +4,6 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as E,b as k}from"./chunk-5YLI5V3Q.mjs";import{h as y}from"./chunk-6AFXUX2M.mjs";import{a as s}from"./chunk-3TRXQAU4.mjs";var x=new Set(["pattern-detector-auto","pattern-detector-recurring","skill-miss-detector","friction-detector"]);function O(e){if(e.type==="improvement-signal")return!0;let r=e.tags?.source;return r!==void 0&&x.has(r)}s(O,"isSignalEntry");function R(e){let r=(e||"").match(/^(\d{4}-\d{2}-\d{2})/);return r?r[1]:""}s(R,"dateOnly");function $(e,r=220){return E((e.split(`
7
+ import{a as E,b as k}from"./chunk-5YLI5V3Q.mjs";import{i as y}from"./chunk-BUD3R6LF.mjs";import{a as s}from"./chunk-3TRXQAU4.mjs";var x=new Set(["pattern-detector-auto","pattern-detector-recurring","skill-miss-detector","friction-detector"]);function O(e){if(e.type==="improvement-signal")return!0;let r=e.tags?.source;return r!==void 0&&x.has(r)}s(O,"isSignalEntry");function R(e){let r=(e||"").match(/^(\d{4}-\d{2}-\d{2})/);return r?r[1]:""}s(R,"dateOnly");function $(e,r=220){return E((e.split(`
8
8
  `)[0]??e).replace(/\s+/g," ").trim(),r)}s($,"oneLine");function P(e,r){if(e.length===0)return null;let g=[],h=[],d=[],f=[],m=[];for(let t of e){let n=t.tags?.source;n==="pattern-detector-auto"?g.push(t):n==="pattern-detector-recurring"?h.push(t):n==="skill-miss-detector"?d.push(t):n==="friction-detector"?f.push(t):m.push(t)}let i=s(t=>`\`${t.id}\``,"idRef"),c=s(t=>{let n=R(t.rememberedAt);return n?` _(${n})_`:""},"stamp"),l=[];if(g.length>0){let t=new Map;for(let u of g){let a=u.tags?.file??"(unknown file)",o=t.get(a)??[];o.push(u),t.set(a,o)}let n=[],b=[...t.entries()].sort((u,a)=>a[1].length-u[1].length);for(let[u,a]of b){let[o,...S]=a,F=o.tags?.touches?`${o.tags.touches} touches`:"churning",w=o.tags?.window_days??o.tags?.["window-days"],_=w?` in ${w}d`:"";n.push(`- \`${u}\` \u2014 ${F}${_}${c(o)} ${i(o)}`);for(let M of S)n.push(` - earlier sighting${c(M)} ${i(M)}`)}l.push({title:"Hot files",intro:"Files that keep churning \u2014 refactor candidates or deliberate hubs.",rows:n})}h.length>0&&l.push({title:"Recurring patterns",intro:"The same class of change keeps happening.",rows:h.map(t=>`- ${$(t.content)}${c(t)} ${i(t)}`)}),d.length>0&&l.push({title:"Knowledge being missed",intro:"Project knowledge existed but was not applied in a session.",rows:d.map(t=>`- ${y($(t.content),r)}${c(t)} ${i(t)}`)}),f.length>0&&l.push({title:"Friction",intro:"Processed lessons from developer pushback \u2014 do not repeat.",rows:f.map(t=>`- ${k(t.content)}${c(t)} ${i(t)}`)}),m.length>0&&l.push({title:"Other signals",intro:"",rows:m.map(t=>`- ${y($(t.content),r)}${c(t)} ${i(t)}`)});let p=["# Signals (machine telemetry)","","> Auto-detected by prjct \u2014 churn, missed knowledge, friction. This is","> telemetry, not curated knowledge: act on it, then let it expire.",`> ${e.length} signal${e.length===1?"":"s"} recorded.`];for(let t of l)p.push("",`## ${t.title}`,""),t.intro&&p.push(`_${t.intro}_`,""),p.push(...t.rows);return p.push(""),p.join(`
9
9
  `)}s(P,"buildSignalsFile");export{x as a,O as b,P as c};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{F as a,G as o}from"./chunk-HU5ERAAV.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";o();import i from"node:fs";import c from"node:path";var e=r(()=>a.getStatePath(),"stampDir"),s=r(()=>c.join(e(),"installed-version"),"stampPath");function l(){try{return i.readFileSync(s(),"utf-8").trim()}catch{return null}}r(l,"readStamp");function u(t){try{i.mkdirSync(e(),{recursive:!0}),i.writeFileSync(s(),t,"utf-8")}catch{}}r(u,"writeStamp");function S(t){return t?l()===t:!0}r(S,"isSyncCurrent");async function g(t){if(t&&process.env.PRJCT_NO_SELF_SYNC!=="1"){try{let{installGlobalConfig:n}=await import("./command-installer-XIQK2G6W.mjs");await n()}catch{}try{await(await import("./settings-installer-4XHM3HAZ.mjs")).install()}catch{}try{let{SetupCommands:n}=await import("./setup-GHS24ER5.mjs");await new n().installStatusLine()}catch{}u(t)}}r(g,"runSelfHeal");export{S as a,g as b};
7
+ import{F as a,G as o}from"./chunk-HU5ERAAV.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";o();import i from"node:fs";import c from"node:path";var e=r(()=>a.getStatePath(),"stampDir"),s=r(()=>c.join(e(),"installed-version"),"stampPath");function l(){try{return i.readFileSync(s(),"utf-8").trim()}catch{return null}}r(l,"readStamp");function u(t){try{i.mkdirSync(e(),{recursive:!0}),i.writeFileSync(s(),t,"utf-8")}catch{}}r(u,"writeStamp");function S(t){return t?l()===t:!0}r(S,"isSyncCurrent");async function g(t){if(t&&process.env.PRJCT_NO_SELF_SYNC!=="1"){try{let{installGlobalConfig:n}=await import("./command-installer-4ENM4GZR.mjs");await n()}catch{}try{await(await import("./settings-installer-4XHM3HAZ.mjs")).install()}catch{}try{let{SetupCommands:n}=await import("./setup-BL36ZWPW.mjs");await new n().installStatusLine()}catch{}u(t)}}r(g,"runSelfHeal");export{S as a,g as b};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{d as l}from"./chunk-WTDUJB4I.mjs";import{a as n}from"./chunk-3TRXQAU4.mjs";import{createHash as d}from"node:crypto";import a from"node:fs/promises";import c from"node:path";var m="prompt-scc-";function x(e){return d("sha256").update(e).digest("hex")}n(x,"hashContent");function E(e,r,t){let p=d("sha1").update(c.resolve(r)).digest("hex").slice(0,12),s=d("sha1").update(t??"no-session").digest("hex").slice(0,12);return`${e.replace(/[^a-zA-Z0-9._-]/g,"_")}-${p}-${s}`}n(E,"sessionStampKey");function h(e){return c.join(l.runDir(),`${m}${e}.hash`)}n(h,"stampPath");async function b(e){try{return(await a.readFile(h(e),"utf-8")).trim()}catch{return null}}n(b,"readSessionStamp");async function S(e,r){let t=h(e);await a.mkdir(c.dirname(t),{recursive:!0}).then(()=>a.writeFile(t,r)).catch(()=>{})}n(S,"writeSessionStamp");function _(e){return e.replace(/, (\d+) unpushed/g,", unpushed").replace(/ — working tree [^\n]*?(, unpushed)?$/gm,(r,t)=>t?" \u2014 working tree dirty, unpushed":" \u2014 working tree dirty").replace(/ — \d+ unpushed/g," \u2014 unpushed").replace(/Inbox: \d+ items pending/g,"Inbox: pending").replace(/Turn \d+ on this cycle/g,"Turn ~ on this cycle").replace(/\d+ turns on this cycle/g,"~ turns on this cycle").replace(/context density \(high ~\d+%\)/g,"context density (high)").replace(/context density \(~\d+%\)/g,"context density (warn)").replace(/[\d,]+ of [\d,]+ \(\d+%\)/g,"~ of budget").replace(/[\d,]+ of [\d,]+ spent/g,"~ of budget spent")}n(_,"normalizeStateForMaterialChange");var y=512,o=new Map;function $(e,r,t={}){return o.size>y&&o.clear(),r.reduce((s,i)=>{let u=`${e}:${i.id}`,g=x(i.content),f=!t.full&&o.get(u)===g;return o.set(u,g),f?s.repeats.push(i):s.fresh.push(i),s},{fresh:[],repeats:[]})}n($,"condenseDelivered");export{x as a,E as b,b as c,S as d,_ as e,$ as f};