prjct-cli 3.95.0 → 3.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/bin/prjct.cjs +14 -0
  3. package/dist/bin/core-chunks/agent-HCP5FF77.mjs +31 -0
  4. package/dist/bin/core-chunks/agent-codenames-7N4DU62I.mjs +7 -0
  5. package/dist/bin/core-chunks/agent-identity-4KFRR5OU.mjs +7 -0
  6. package/dist/bin/core-chunks/agent-runtime-registry-3RMVBEV2.mjs +7 -0
  7. package/dist/bin/core-chunks/agent-switch-AVSX6SLY.mjs +7 -0
  8. package/dist/bin/core-chunks/agents-OAQXBGH3.mjs +10 -0
  9. package/dist/bin/core-chunks/ai-provider-RVXK7D7R.mjs +7 -0
  10. package/dist/bin/core-chunks/analysis-3A7ODSSI.mjs +41 -0
  11. package/dist/bin/core-chunks/auth-config-KWLVKHCY.mjs +7 -0
  12. package/dist/bin/core-chunks/auto-flush-EWSVMKQN.mjs +7 -0
  13. package/dist/bin/core-chunks/auto-updater-PKYQRBGQ.mjs +8 -0
  14. package/dist/bin/core-chunks/bin-commands-LLHG2NSY.mjs +21 -0
  15. package/dist/bin/core-chunks/capture-7LQ52T6L.mjs +7 -0
  16. package/dist/bin/core-chunks/capture-gate-M4HM7WAI.mjs +7 -0
  17. package/dist/bin/core-chunks/ceremonies-4OZ3FKRE.mjs +19 -0
  18. package/dist/bin/core-chunks/changelog-CUNVCEL5.mjs +10 -0
  19. package/dist/bin/core-chunks/chunk-225DWS4D.mjs +7 -0
  20. package/dist/bin/core-chunks/chunk-24EN5Y62.mjs +48 -0
  21. package/dist/bin/core-chunks/chunk-2EEMQV7N.mjs +9 -0
  22. package/dist/bin/core-chunks/chunk-2I5PUQWY.mjs +7 -0
  23. package/dist/bin/core-chunks/chunk-2JJM3YMW.mjs +44 -0
  24. package/dist/bin/core-chunks/chunk-2NI4EEK2.mjs +8 -0
  25. package/dist/bin/core-chunks/chunk-2TJRTFIS.mjs +9 -0
  26. package/dist/bin/core-chunks/chunk-2ZPM4Z6W.mjs +17 -0
  27. package/dist/bin/core-chunks/chunk-3FXNIJCS.mjs +8 -0
  28. package/dist/bin/core-chunks/chunk-3JD6KRNJ.mjs +8 -0
  29. package/dist/bin/core-chunks/chunk-3TRXQAU4.mjs +7 -0
  30. package/dist/bin/core-chunks/chunk-3USVY66O.mjs +7 -0
  31. package/dist/bin/core-chunks/chunk-45LKWJ5D.mjs +7 -0
  32. package/dist/bin/core-chunks/chunk-4IE7LRH3.mjs +7 -0
  33. package/dist/bin/core-chunks/chunk-4MR5XSLO.mjs +8 -0
  34. package/dist/bin/core-chunks/chunk-4PPIE6GA.mjs +102 -0
  35. package/dist/bin/core-chunks/chunk-4PRD4EU2.mjs +7 -0
  36. package/dist/bin/core-chunks/chunk-4T7NGLNQ.mjs +16 -0
  37. package/dist/bin/core-chunks/chunk-53ZPEZLU.mjs +8 -0
  38. package/dist/bin/core-chunks/chunk-56FW4P6U.mjs +10 -0
  39. package/dist/bin/core-chunks/chunk-5EF5EOCL.mjs +7 -0
  40. package/dist/bin/core-chunks/chunk-5MN22JFI.mjs +19 -0
  41. package/dist/bin/core-chunks/chunk-5ONMON5L.mjs +13 -0
  42. package/dist/bin/core-chunks/chunk-5UUITMRX.mjs +9 -0
  43. package/dist/bin/core-chunks/chunk-5YLI5V3Q.mjs +8 -0
  44. package/dist/bin/core-chunks/chunk-5YSPND5J.mjs +9 -0
  45. package/dist/bin/core-chunks/chunk-623SNKDH.mjs +7 -0
  46. package/dist/bin/core-chunks/chunk-6AFXUX2M.mjs +9 -0
  47. package/dist/bin/core-chunks/chunk-6FFOWWH2.mjs +17 -0
  48. package/dist/bin/core-chunks/chunk-6FUCOGOW.mjs +7 -0
  49. package/dist/bin/core-chunks/chunk-6OYLZ4NM.mjs +10 -0
  50. package/dist/bin/core-chunks/chunk-6P4GMVUZ.mjs +18 -0
  51. package/dist/bin/core-chunks/chunk-6RT2P22O.mjs +7 -0
  52. package/dist/bin/core-chunks/chunk-6XTLPAPZ.mjs +15 -0
  53. package/dist/bin/core-chunks/chunk-76YMLNLF.mjs +7 -0
  54. package/dist/bin/core-chunks/chunk-7CI4AMVO.mjs +7 -0
  55. package/dist/bin/core-chunks/chunk-7QMBIMEX.mjs +64 -0
  56. package/dist/bin/core-chunks/chunk-7QTE6X4J.mjs +7 -0
  57. package/dist/bin/core-chunks/chunk-7ZHWJSW5.mjs +8 -0
  58. package/dist/bin/core-chunks/chunk-AJTBFIH2.mjs +9 -0
  59. package/dist/bin/core-chunks/chunk-AJXELVNH.mjs +7 -0
  60. package/dist/bin/core-chunks/chunk-ANVCA6LF.mjs +7 -0
  61. package/dist/bin/core-chunks/chunk-AS3LWTQ4.mjs +16 -0
  62. package/dist/bin/core-chunks/chunk-B7AQHL7B.mjs +7 -0
  63. package/dist/bin/core-chunks/chunk-BQKDJ3U6.mjs +8 -0
  64. package/dist/bin/core-chunks/chunk-BSR3XUBD.mjs +24 -0
  65. package/dist/bin/core-chunks/chunk-BTCCUMKI.mjs +12 -0
  66. package/dist/bin/core-chunks/chunk-BTSHD3XJ.mjs +9 -0
  67. package/dist/bin/core-chunks/chunk-C35JQUWD.mjs +8 -0
  68. package/dist/bin/core-chunks/chunk-C7YBUD4K.mjs +10 -0
  69. package/dist/bin/core-chunks/chunk-CDLZLTRY.mjs +10 -0
  70. package/dist/bin/core-chunks/chunk-CEOTHJIY.mjs +10 -0
  71. package/dist/bin/core-chunks/chunk-CFD6CW7T.mjs +46 -0
  72. package/dist/bin/core-chunks/chunk-CKYBGRCF.mjs +8 -0
  73. package/dist/bin/core-chunks/chunk-CNWEQUB7.mjs +7 -0
  74. package/dist/bin/core-chunks/chunk-CUIB6CTG.mjs +20 -0
  75. package/dist/bin/core-chunks/chunk-CWLGRKA7.mjs +6 -0
  76. package/dist/bin/core-chunks/chunk-CXNVDJNN.mjs +7 -0
  77. package/dist/bin/core-chunks/chunk-D62TAZG6.mjs +9 -0
  78. package/dist/bin/core-chunks/chunk-DCVPNFS4.mjs +8 -0
  79. package/dist/bin/core-chunks/chunk-DEYAQEF5.mjs +7 -0
  80. package/dist/bin/core-chunks/chunk-DIEPWXJJ.mjs +7 -0
  81. package/dist/bin/core-chunks/chunk-DMO3ZFUG.mjs +1259 -0
  82. package/dist/bin/core-chunks/chunk-DN46DLU3.mjs +10 -0
  83. package/dist/bin/core-chunks/chunk-DOJPSIMG.mjs +7 -0
  84. package/dist/bin/core-chunks/chunk-DZVOFEM5.mjs +7 -0
  85. package/dist/bin/core-chunks/chunk-E5QQDYBR.mjs +7 -0
  86. package/dist/bin/core-chunks/chunk-E73HSXCX.mjs +7 -0
  87. package/dist/bin/core-chunks/chunk-EFSPBB4S.mjs +8 -0
  88. package/dist/bin/core-chunks/chunk-EHVU2SMR.mjs +34 -0
  89. package/dist/bin/core-chunks/chunk-ESB4ALH2.mjs +7 -0
  90. package/dist/bin/core-chunks/chunk-EZRNQXCC.mjs +7 -0
  91. package/dist/bin/core-chunks/chunk-F2FKQUYE.mjs +19 -0
  92. package/dist/bin/core-chunks/chunk-F7OOBAJO.mjs +30 -0
  93. package/dist/bin/core-chunks/chunk-FATYLG3L.mjs +14 -0
  94. package/dist/bin/core-chunks/chunk-FOWTB762.mjs +7 -0
  95. package/dist/bin/core-chunks/chunk-GDLAQV3Q.mjs +14 -0
  96. package/dist/bin/core-chunks/chunk-GGGDYL4P.mjs +7 -0
  97. package/dist/bin/core-chunks/chunk-GHSRH4GL.mjs +8 -0
  98. package/dist/bin/core-chunks/chunk-GOIBJ7PV.mjs +7 -0
  99. package/dist/bin/core-chunks/chunk-GSNQKBHZ.mjs +11 -0
  100. package/dist/bin/core-chunks/chunk-GTG67Z45.mjs +11 -0
  101. package/dist/bin/core-chunks/chunk-H2KNJUPN.mjs +23 -0
  102. package/dist/bin/core-chunks/chunk-HCPQZRR3.mjs +7 -0
  103. package/dist/bin/core-chunks/chunk-HEXSVBUP.mjs +8 -0
  104. package/dist/bin/core-chunks/chunk-HPCSSJXH.mjs +7 -0
  105. package/dist/bin/core-chunks/chunk-HU5ERAAV.mjs +8 -0
  106. package/dist/bin/core-chunks/chunk-HYIT7MF5.mjs +8 -0
  107. package/dist/bin/core-chunks/chunk-HYMJVHAX.mjs +13 -0
  108. package/dist/bin/core-chunks/chunk-ID2C2S33.mjs +18 -0
  109. package/dist/bin/core-chunks/chunk-ID5KE74L.mjs +7 -0
  110. package/dist/bin/core-chunks/chunk-IFLBZKKK.mjs +14 -0
  111. package/dist/bin/core-chunks/chunk-IMQCXC3R.mjs +30 -0
  112. package/dist/bin/core-chunks/chunk-INJ5WT2D.mjs +7 -0
  113. package/dist/bin/core-chunks/chunk-INM5COWM.mjs +7 -0
  114. package/dist/bin/core-chunks/chunk-IOFCSTGM.mjs +7 -0
  115. package/dist/bin/core-chunks/chunk-IVGWOY3U.mjs +8 -0
  116. package/dist/bin/core-chunks/chunk-J7T5IEFJ.mjs +15 -0
  117. package/dist/bin/core-chunks/chunk-JCWA7NLM.mjs +7 -0
  118. package/dist/bin/core-chunks/chunk-JPMUJY42.mjs +7 -0
  119. package/dist/bin/core-chunks/chunk-JT4RNQ67.mjs +15 -0
  120. package/dist/bin/core-chunks/chunk-K25HGTC3.mjs +10 -0
  121. package/dist/bin/core-chunks/chunk-KIRU4QFX.mjs +7 -0
  122. package/dist/bin/core-chunks/chunk-KKIJAEYU.mjs +7 -0
  123. package/dist/bin/core-chunks/chunk-KPR5TWSN.mjs +7 -0
  124. package/dist/bin/core-chunks/chunk-KUQLXY2P.mjs +11 -0
  125. package/dist/bin/core-chunks/chunk-KWC2PCPC.mjs +10 -0
  126. package/dist/bin/core-chunks/chunk-L4TUXFCL.mjs +7 -0
  127. package/dist/bin/core-chunks/chunk-L5LFLI4R.mjs +7 -0
  128. package/dist/bin/core-chunks/chunk-LZC6NGB6.mjs +50 -0
  129. package/dist/bin/core-chunks/chunk-MCY7OXED.mjs +10 -0
  130. package/dist/bin/core-chunks/chunk-MDONTD7O.mjs +21 -0
  131. package/dist/bin/core-chunks/chunk-MG3YN3AI.mjs +7 -0
  132. package/dist/bin/core-chunks/chunk-MR5XXHRK.mjs +8 -0
  133. package/dist/bin/core-chunks/chunk-MTDCRYLP.mjs +7 -0
  134. package/dist/bin/core-chunks/chunk-MXJKULJY.mjs +9 -0
  135. package/dist/bin/core-chunks/chunk-NINFE7GS.mjs +9 -0
  136. package/dist/bin/core-chunks/chunk-NNOX3UU4.mjs +7 -0
  137. package/dist/bin/core-chunks/chunk-NOHSLOLL.mjs +7 -0
  138. package/dist/bin/core-chunks/chunk-NXUIMC22.mjs +13 -0
  139. package/dist/bin/core-chunks/chunk-NZKUCQZK.mjs +8 -0
  140. package/dist/bin/core-chunks/chunk-O5N6XYPU.mjs +8 -0
  141. package/dist/bin/core-chunks/chunk-OIE3AKKO.mjs +7 -0
  142. package/dist/bin/core-chunks/chunk-OYXQRBVM.mjs +10 -0
  143. package/dist/bin/core-chunks/chunk-P2KU4FFA.mjs +11 -0
  144. package/dist/bin/core-chunks/chunk-P53YMOKR.mjs +7 -0
  145. package/dist/bin/core-chunks/chunk-PIA26GWG.mjs +7 -0
  146. package/dist/bin/core-chunks/chunk-PPERWRFS.mjs +13 -0
  147. package/dist/bin/core-chunks/chunk-PPSVWUXC.mjs +15 -0
  148. package/dist/bin/core-chunks/chunk-PWL3KS7Y.mjs +7 -0
  149. package/dist/bin/core-chunks/chunk-Q3LUL6LL.mjs +7 -0
  150. package/dist/bin/core-chunks/chunk-Q6C27OL7.mjs +7 -0
  151. package/dist/bin/core-chunks/chunk-QAIEAOJF.mjs +7 -0
  152. package/dist/bin/core-chunks/chunk-QLMZW4K7.mjs +7 -0
  153. package/dist/bin/core-chunks/chunk-QZ7T2EYR.mjs +25 -0
  154. package/dist/bin/core-chunks/chunk-R7LLMJDP.mjs +7 -0
  155. package/dist/bin/core-chunks/chunk-RACISWUV.mjs +10 -0
  156. package/dist/bin/core-chunks/chunk-RCIWCKL7.mjs +9 -0
  157. package/dist/bin/core-chunks/chunk-ROOCBUKH.mjs +8 -0
  158. package/dist/bin/core-chunks/chunk-RP7F67ZT.mjs +7 -0
  159. package/dist/bin/core-chunks/chunk-RXXXA7Z6.mjs +7 -0
  160. package/dist/bin/core-chunks/chunk-RXZJB43D.mjs +7 -0
  161. package/dist/bin/core-chunks/chunk-S6FBPXQL.mjs +9 -0
  162. package/dist/bin/core-chunks/chunk-SLYLGDX7.mjs +8 -0
  163. package/dist/bin/core-chunks/chunk-SO3ZPNWT.mjs +7 -0
  164. package/dist/bin/core-chunks/chunk-SRJEX6XF.mjs +12 -0
  165. package/dist/bin/core-chunks/chunk-SROBBOJB.mjs +11 -0
  166. package/dist/bin/core-chunks/chunk-TDTPDVUM.mjs +8 -0
  167. package/dist/bin/core-chunks/chunk-TGNZI4KF.mjs +28 -0
  168. package/dist/bin/core-chunks/chunk-TIBYHZFA.mjs +8 -0
  169. package/dist/bin/core-chunks/chunk-TILUQF6L.mjs +8 -0
  170. package/dist/bin/core-chunks/chunk-TTN2CFZC.mjs +7 -0
  171. package/dist/bin/core-chunks/chunk-U24YKPYX.mjs +7 -0
  172. package/dist/bin/core-chunks/chunk-U55OPVYR.mjs +9 -0
  173. package/dist/bin/core-chunks/chunk-UE3XKXWM.mjs +7 -0
  174. package/dist/bin/core-chunks/chunk-UHXV7MDW.mjs +12 -0
  175. package/dist/bin/core-chunks/chunk-UNNY2IWZ.mjs +9 -0
  176. package/dist/bin/core-chunks/chunk-UT425KVX.mjs +10 -0
  177. package/dist/bin/core-chunks/chunk-UYMZ3NAF.mjs +8 -0
  178. package/dist/bin/core-chunks/chunk-V3Y3G2DE.mjs +8 -0
  179. package/dist/bin/core-chunks/chunk-V5VCXMKO.mjs +52 -0
  180. package/dist/bin/core-chunks/chunk-V6L5PLD7.mjs +18 -0
  181. package/dist/bin/core-chunks/chunk-V7R3L54M.mjs +7 -0
  182. package/dist/bin/core-chunks/chunk-V7VA4EQX.mjs +7 -0
  183. package/dist/bin/core-chunks/chunk-VCSESVZ4.mjs +9 -0
  184. package/dist/bin/core-chunks/chunk-VCYVYFWE.mjs +9 -0
  185. package/dist/bin/core-chunks/chunk-VDXTMAMO.mjs +7 -0
  186. package/dist/bin/core-chunks/chunk-VILH3VYH.mjs +103 -0
  187. package/dist/bin/core-chunks/chunk-VRFYDYQY.mjs +7 -0
  188. package/dist/bin/core-chunks/chunk-VWFVSNQT.mjs +7 -0
  189. package/dist/bin/core-chunks/chunk-WGDE3L33.mjs +7 -0
  190. package/dist/bin/core-chunks/chunk-WP5IU4W4.mjs +7 -0
  191. package/dist/bin/core-chunks/chunk-WSVMQYYU.mjs +12 -0
  192. package/dist/bin/core-chunks/chunk-WTDUJB4I.mjs +8 -0
  193. package/dist/bin/core-chunks/chunk-WZXUFSVT.mjs +25 -0
  194. package/dist/bin/core-chunks/chunk-X35YYOFE.mjs +18 -0
  195. package/dist/bin/core-chunks/chunk-X4FR5S7E.mjs +9 -0
  196. package/dist/bin/core-chunks/chunk-XC6YAP36.mjs +7 -0
  197. package/dist/bin/core-chunks/chunk-XLFEWZRA.mjs +7 -0
  198. package/dist/bin/core-chunks/chunk-XPRLQIVQ.mjs +7 -0
  199. package/dist/bin/core-chunks/chunk-XSZG3CBO.mjs +7 -0
  200. package/dist/bin/core-chunks/chunk-XU3BQPBU.mjs +7 -0
  201. package/dist/bin/core-chunks/chunk-XYDLXF5A.mjs +8 -0
  202. package/dist/bin/core-chunks/chunk-Y5SEUYET.mjs +7 -0
  203. package/dist/bin/core-chunks/chunk-Y7XOKG4O.mjs +7 -0
  204. package/dist/bin/core-chunks/chunk-YEALP3WX.mjs +7 -0
  205. package/dist/bin/core-chunks/chunk-YJOC2JJK.mjs +12 -0
  206. package/dist/bin/core-chunks/chunk-YLYAYRSJ.mjs +8 -0
  207. package/dist/bin/core-chunks/chunk-YOGI4WE6.mjs +8 -0
  208. package/dist/bin/core-chunks/chunk-YQ6HM3YO.mjs +10 -0
  209. package/dist/bin/core-chunks/chunk-YZEO5DZA.mjs +7 -0
  210. package/dist/bin/core-chunks/chunk-ZBBNCCGV.mjs +12 -0
  211. package/dist/bin/core-chunks/chunk-ZHTYSYZC.mjs +7 -0
  212. package/dist/bin/core-chunks/chunk-ZK7BMUMR.mjs +7 -0
  213. package/dist/bin/core-chunks/chunk-ZKJZDOPT.mjs +14 -0
  214. package/dist/bin/core-chunks/chunk-ZQHSJ6FF.mjs +20 -0
  215. package/dist/bin/core-chunks/chunk-ZS7XJUPE.mjs +7 -0
  216. package/dist/bin/core-chunks/chunk-ZXTJLMVZ.mjs +7 -0
  217. package/dist/bin/core-chunks/cleanup-installs-WHXUGAHM.mjs +7 -0
  218. package/dist/bin/core-chunks/client-D43KKUYH.mjs +8 -0
  219. package/dist/bin/core-chunks/closest-command-YYNABM7V.mjs +7 -0
  220. package/dist/bin/core-chunks/cloud-FFUJZLDV.mjs +14 -0
  221. package/dist/bin/core-chunks/code-SU7GCPH6.mjs +12 -0
  222. package/dist/bin/core-chunks/code-graph-cloud-G3WQBICY.mjs +7 -0
  223. package/dist/bin/core-chunks/codex-hooks-GOLMCL2Q.mjs +7 -0
  224. package/dist/bin/core-chunks/codex-mcp-K4X2UIQF.mjs +7 -0
  225. package/dist/bin/core-chunks/codex-skill-3HNVU4T4.mjs +7 -0
  226. package/dist/bin/core-chunks/command-installer-XIQK2G6W.mjs +7 -0
  227. package/dist/bin/core-chunks/config-W3RHV3GK.mjs +8 -0
  228. package/dist/bin/core-chunks/config-manager-QVFHXIKI.mjs +7 -0
  229. package/dist/bin/core-chunks/content-bound-stamp-2PJNI4JC.mjs +7 -0
  230. package/dist/bin/core-chunks/context-4KGTUAC4.mjs +38 -0
  231. package/dist/bin/core-chunks/context-DDHC7VIC.mjs +10 -0
  232. package/dist/bin/core-chunks/context-checkpoint-4CEUPEVG.mjs +27 -0
  233. package/dist/bin/core-chunks/context-pressure-5URQVNBC.mjs +7 -0
  234. package/dist/bin/core-chunks/context-tiers-4S6H22NP.mjs +7 -0
  235. package/dist/bin/core-chunks/context7-service-AZWDYK5Z.mjs +7 -0
  236. package/dist/bin/core-chunks/core-PR5WEQCS.mjs +70 -0
  237. package/dist/bin/core-chunks/crew-JQCG6NS3.mjs +24 -0
  238. package/dist/bin/core-chunks/cursor-hooks-DGDJVAI6.mjs +7 -0
  239. package/dist/bin/core-chunks/custom-workflow-storage-EBEIG54R.mjs +7 -0
  240. package/dist/bin/core-chunks/cwd-changed-ODKZVSPB.mjs +7 -0
  241. package/dist/bin/core-chunks/cycle-budget-card-H37XRAIX.mjs +7 -0
  242. package/dist/bin/core-chunks/daemon-2NQTBFVR.mjs +13 -0
  243. package/dist/bin/core-chunks/database-UU2ZXSD4.mjs +7 -0
  244. package/dist/bin/core-chunks/delivery-geometry-GSJ6LXUC.mjs +7 -0
  245. package/dist/bin/core-chunks/detect-changes-2YIEX7AY.mjs +7 -0
  246. package/dist/bin/core-chunks/detection-KKDZYWVD.mjs +7 -0
  247. package/dist/bin/core-chunks/developer-evolution-AVAXGDKQ.mjs +11 -0
  248. package/dist/bin/core-chunks/developer-profile-MRPBWL2K.mjs +7 -0
  249. package/dist/bin/core-chunks/discuss-lock-CWXKBBYJ.mjs +7 -0
  250. package/dist/bin/core-chunks/distill-MLDZG5RA.mjs +7 -0
  251. package/dist/bin/core-chunks/doctor-heal-ZUZ2RHGY.mjs +7 -0
  252. package/dist/bin/core-chunks/doctor-service-WXLB2FEE.mjs +8 -0
  253. package/dist/bin/core-chunks/drift-refresh-XPJAO2B3.mjs +7 -0
  254. package/dist/bin/core-chunks/dynasty-outcomes-H2O546OL.mjs +11 -0
  255. package/dist/bin/core-chunks/editors-config-ELAQA6RV.mjs +7 -0
  256. package/dist/bin/core-chunks/embeddings-7A5Z5I67.mjs +7 -0
  257. package/dist/bin/core-chunks/enriched-recall-YXK7EIKH.mjs +7 -0
  258. package/dist/bin/core-chunks/eval-4YFUBFLV.mjs +76 -0
  259. package/dist/bin/core-chunks/exec-34V6SJYO.mjs +7 -0
  260. package/dist/bin/core-chunks/file-helper-LLQKU6YF.mjs +7 -0
  261. package/dist/bin/core-chunks/format-5V6GF6JJ.mjs +7 -0
  262. package/dist/bin/core-chunks/gemini-settings-ZTU3VQU3.mjs +7 -0
  263. package/dist/bin/core-chunks/git-context-ZSWE3KWM.mjs +8 -0
  264. package/dist/bin/core-chunks/git-helpers-UC53D4FT.mjs +7 -0
  265. package/dist/bin/core-chunks/grok-mcp-F3SRFMCW.mjs +7 -0
  266. package/dist/bin/core-chunks/grok-plugin-4CE2WUYI.mjs +7 -0
  267. package/dist/bin/core-chunks/grok-skill-GLSBOOKW.mjs +7 -0
  268. package/dist/bin/core-chunks/guard-FJBJ6IAE.mjs +13 -0
  269. package/dist/bin/core-chunks/guards-LFUFKVVH.mjs +7 -0
  270. package/dist/bin/core-chunks/handoff-storage-NGUA4Y2L.mjs +7 -0
  271. package/dist/bin/core-chunks/harness-FN3HASSA.mjs +43 -0
  272. package/dist/bin/core-chunks/health-W2VWME7Z.mjs +11 -0
  273. package/dist/bin/core-chunks/help-I37I3V2R.mjs +14 -0
  274. package/dist/bin/core-chunks/hooks-service-C2P5DRCH.mjs +91 -0
  275. package/dist/bin/core-chunks/infer-memory-file-ATP7PSAQ.mjs +7 -0
  276. package/dist/bin/core-chunks/install-XP4S6HWQ.mjs +9 -0
  277. package/dist/bin/core-chunks/judgment-GJE332LF.mjs +21 -0
  278. package/dist/bin/core-chunks/judgment-ledger-storage-ZTYXPMM4.mjs +7 -0
  279. package/dist/bin/core-chunks/judgment-orchestrator-E3SO3NVE.mjs +7 -0
  280. package/dist/bin/core-chunks/judgment-receipt-WT4EMCAV.mjs +7 -0
  281. package/dist/bin/core-chunks/kimi-hooks-2UEUIKXV.mjs +7 -0
  282. package/dist/bin/core-chunks/kimi-mcp-DJCXZ2JY.mjs +7 -0
  283. package/dist/bin/core-chunks/land-cue-5USQ64MS.mjs +8 -0
  284. package/dist/bin/core-chunks/land-rho-ISNVEPVC.mjs +8 -0
  285. package/dist/bin/core-chunks/land-synthesis-CHARJMUP.mjs +7 -0
  286. package/dist/bin/core-chunks/lean-L53CKZNH.mjs +34 -0
  287. package/dist/bin/core-chunks/legacy-crew-sweep-2TLKJTHI.mjs +23 -0
  288. package/dist/bin/core-chunks/living-context-contract-HZIVBMXX.mjs +7 -0
  289. package/dist/bin/core-chunks/llm-XMH7WTHV.mjs +18 -0
  290. package/dist/bin/core-chunks/mcp-FLVIZBV2.mjs +17 -0
  291. package/dist/bin/core-chunks/memory-dream-EJWI4FJO.mjs +14 -0
  292. package/dist/bin/core-chunks/memory-export-27HTNNFI.mjs +13 -0
  293. package/dist/bin/core-chunks/memory-index-BRZDZ2BY.mjs +7 -0
  294. package/dist/bin/core-chunks/notification-KJ4FQJAW.mjs +7 -0
  295. package/dist/bin/core-chunks/notify-76B7AICZ.mjs +9 -0
  296. package/dist/bin/core-chunks/nyquist-lite-A23B7G4B.mjs +9 -0
  297. package/dist/bin/core-chunks/one-breath-install-LVNIVN6S.mjs +7 -0
  298. package/dist/bin/core-chunks/opencode-mcp-5YSIYDI3.mjs +7 -0
  299. package/dist/bin/core-chunks/output-D27IOQXR.mjs +7 -0
  300. package/dist/bin/core-chunks/pack-integrity-GXN67LJB.mjs +9 -0
  301. package/dist/bin/core-chunks/pack-manager-46SPIPPD.mjs +7 -0
  302. package/dist/bin/core-chunks/package-DCGCOAGQ.mjs +7 -0
  303. package/dist/bin/core-chunks/package-legitimacy-VHHGI4P7.mjs +7 -0
  304. package/dist/bin/core-chunks/path-manager-E5DCU5LP.mjs +7 -0
  305. package/dist/bin/core-chunks/performance-tracker-BFBNR3LY.mjs +7 -0
  306. package/dist/bin/core-chunks/pi-skill-SDHTUK3V.mjs +7 -0
  307. package/dist/bin/core-chunks/planning-S3MYVWH6.mjs +8 -0
  308. package/dist/bin/core-chunks/post-edit-5YSNEMK7.mjs +7 -0
  309. package/dist/bin/core-chunks/pr-convention-37YHTUKM.mjs +7 -0
  310. package/dist/bin/core-chunks/pre-bash-GLDILCRF.mjs +10 -0
  311. package/dist/bin/core-chunks/pre-commit-U6HPPNIC.mjs +7 -0
  312. package/dist/bin/core-chunks/pre-edit-PEYQA6P6.mjs +8 -0
  313. package/dist/bin/core-chunks/pre-package-76JR5GLO.mjs +7 -0
  314. package/dist/bin/core-chunks/pre-search-5EHNUOP3.mjs +8 -0
  315. package/dist/bin/core-chunks/pre-secrets-RJELPDFY.mjs +7 -0
  316. package/dist/bin/core-chunks/precision-classifier-AV75OEVA.mjs +7 -0
  317. package/dist/bin/core-chunks/precision-judgment-MCX4MIIG.mjs +7 -0
  318. package/dist/bin/core-chunks/preferences-BTSYWYUM.mjs +31 -0
  319. package/dist/bin/core-chunks/primitives-IXAYLX7U.mjs +13 -0
  320. package/dist/bin/core-chunks/prjct-md-SUDFWDCS.mjs +7 -0
  321. package/dist/bin/core-chunks/product-KKGJ6MMF.mjs +68 -0
  322. package/dist/bin/core-chunks/project-agent-surfaces-I2CUZUIN.mjs +7 -0
  323. package/dist/bin/core-chunks/project-alignment-ADKW3ZWQ.mjs +17 -0
  324. package/dist/bin/core-chunks/project-file-inventory-XIHHJZUP.mjs +7 -0
  325. package/dist/bin/core-chunks/project-memory-GYLYIJQD.mjs +7 -0
  326. package/dist/bin/core-chunks/project-style-evolution-5W25UPPN.mjs +7 -0
  327. package/dist/bin/core-chunks/prompt-SW5XDRMX.mjs +23 -0
  328. package/dist/bin/core-chunks/protocol-4AJ4J5SI.mjs +7 -0
  329. package/dist/bin/core-chunks/provider-cache-IWVTFLGT.mjs +7 -0
  330. package/dist/bin/core-chunks/provider-status-HQUBKMH5.mjs +7 -0
  331. package/dist/bin/core-chunks/publish-helper-2T2EHM3V.mjs +7 -0
  332. package/dist/bin/core-chunks/purge-5EPJV25P.mjs +7 -0
  333. package/dist/bin/core-chunks/queue-storage-BKH5XX2E.mjs +7 -0
  334. package/dist/bin/core-chunks/registry-LK6IQ5UX.mjs +7 -0
  335. package/dist/bin/core-chunks/reliability-repair-JMPZWDD4.mjs +20 -0
  336. package/dist/bin/core-chunks/removed-verbs-EU3WPRNK.mjs +7 -0
  337. package/dist/bin/core-chunks/retention-S22T3SPT.mjs +7 -0
  338. package/dist/bin/core-chunks/retro-CLKOHAN6.mjs +13 -0
  339. package/dist/bin/core-chunks/review-risk-LLLBKUXT.mjs +12 -0
  340. package/dist/bin/core-chunks/run-recorder-EZQ32M55.mjs +7 -0
  341. package/dist/bin/core-chunks/safe-artifacts-RW5WQUUJ.mjs +9 -0
  342. package/dist/bin/core-chunks/sdd-HE7O6N5S.mjs +9 -0
  343. package/dist/bin/core-chunks/seed-JX7W53E5.mjs +10 -0
  344. package/dist/bin/core-chunks/self-heal-DFUEKNF3.mjs +7 -0
  345. package/dist/bin/core-chunks/session-continuity-BFSW4OL6.mjs +10 -0
  346. package/dist/bin/core-chunks/session-start-HVYUKJL2.mjs +7 -0
  347. package/dist/bin/core-chunks/session-tracker-RG2FBWMS.mjs +7 -0
  348. package/dist/bin/core-chunks/settings-installer-4XHM3HAZ.mjs +7 -0
  349. package/dist/bin/core-chunks/setup-GHS24ER5.mjs +140 -0
  350. package/dist/bin/core-chunks/setup-J4JFYT63.mjs +38 -0
  351. package/dist/bin/core-chunks/shipping-I4D4AVTE.mjs +12 -0
  352. package/dist/bin/core-chunks/signals-digest-V44KYN6Z.mjs +7 -0
  353. package/dist/bin/core-chunks/skill-adherence-MHY4BZL4.mjs +13 -0
  354. package/dist/bin/core-chunks/skill-generator-LKS5BNMY.mjs +7 -0
  355. package/dist/bin/core-chunks/skill-index-L4UWQCQE.mjs +11 -0
  356. package/dist/bin/core-chunks/spec-2XXPLHUZ.mjs +27 -0
  357. package/dist/bin/core-chunks/spec-context-inference-THFMXC7S.mjs +9 -0
  358. package/dist/bin/core-chunks/spec-inventory-2TT7BTFZ.mjs +9 -0
  359. package/dist/bin/core-chunks/spec-service-I23KJKKP.mjs +7 -0
  360. package/dist/bin/core-chunks/spec-task-breakdown-HTG6ME6G.mjs +7 -0
  361. package/dist/bin/core-chunks/state-storage-6CGFWW5D.mjs +7 -0
  362. package/dist/bin/core-chunks/stdin-spill-Y2A6WOOW.mjs +7 -0
  363. package/dist/bin/core-chunks/stop-2H57XCGZ.mjs +15 -0
  364. package/dist/bin/core-chunks/subagent-start-5LPASXOS.mjs +7 -0
  365. package/dist/bin/core-chunks/subagent-stop-ANLSG3KN.mjs +7 -0
  366. package/dist/bin/core-chunks/surface-attribution-WL7S53XX.mjs +7 -0
  367. package/dist/bin/core-chunks/symbol-graph-PCS43SHZ.mjs +7 -0
  368. package/dist/bin/core-chunks/sync-analyzer-M37Q4LE4.mjs +7 -0
  369. package/dist/bin/core-chunks/sync-client-6TAOTJWR.mjs +7 -0
  370. package/dist/bin/core-chunks/sync-cursor-storage-GKO4X2QN.mjs +18 -0
  371. package/dist/bin/core-chunks/task-orchestration-GS4J4KGS.mjs +7 -0
  372. package/dist/bin/core-chunks/task-overview-XSMK7YEN.mjs +7 -0
  373. package/dist/bin/core-chunks/task-service-FK7FC3PE.mjs +7 -0
  374. package/dist/bin/core-chunks/tdd-NQDHU62B.mjs +9 -0
  375. package/dist/bin/core-chunks/team-XZ4Q6UBV.mjs +42 -0
  376. package/dist/bin/core-chunks/template-loader-33OVJ4G5.mjs +7 -0
  377. package/dist/bin/core-chunks/token-backfill-WPXXD5MP.mjs +12 -0
  378. package/dist/bin/core-chunks/token-economics-JZAQJUET.mjs +7 -0
  379. package/dist/bin/core-chunks/transcript-jsonl-OC7TH4Q3.mjs +7 -0
  380. package/dist/bin/core-chunks/trust-boundary-24F662RM.mjs +7 -0
  381. package/dist/bin/core-chunks/uninstall-6NFON7FO.mjs +13 -0
  382. package/dist/bin/core-chunks/update-4IE6SA6M.mjs +11 -0
  383. package/dist/bin/core-chunks/update-checker-FK7MWNWN.mjs +7 -0
  384. package/dist/bin/core-chunks/usefulness-A3GRKFL3.mjs +7 -0
  385. package/dist/bin/core-chunks/user-home-BODIAXR4.mjs +7 -0
  386. package/dist/bin/core-chunks/vault-retire-notice-FDRT7BJG.mjs +8 -0
  387. package/dist/bin/core-chunks/velocity-storage-5T7RYOWH.mjs +7 -0
  388. package/dist/bin/core-chunks/verb-names-QWGYABFH.mjs +7 -0
  389. package/dist/bin/core-chunks/version-252QLBN2.mjs +7 -0
  390. package/dist/bin/core-chunks/watch-service-7ZERG7RC.mjs +9 -0
  391. package/dist/bin/core-chunks/weak-frontier-demo-5C4FR3OA.mjs +7 -0
  392. package/dist/bin/core-chunks/weak-model-mode-DH66XMD2.mjs +7 -0
  393. package/dist/bin/core-chunks/work-graph-JGJWE3AV.mjs +16 -0
  394. package/dist/bin/core-chunks/work-graph-WHMCFN6U.mjs +7 -0
  395. package/dist/bin/core-chunks/work-scope-3LXOEIUX.mjs +7 -0
  396. package/dist/bin/core-chunks/workflow-FGJVLRQ3.mjs +61 -0
  397. package/dist/bin/core-chunks/workflows-reference-UWKRZ6BJ.mjs +7 -0
  398. package/dist/bin/core-chunks/workspace-occupancy-JUXKZBUZ.mjs +7 -0
  399. package/dist/bin/core-chunks/worktree-service-YRRPFU57.mjs +11 -0
  400. package/dist/bin/core-chunks/world-model-impact-RH5WH2B3.mjs +7 -0
  401. package/dist/bin/hook-chunks/{agent-identity-45BYQBU2.mjs → agent-identity-DH6DX72X.mjs} +1 -1
  402. package/dist/bin/hook-chunks/{agent-switch-4ZJJWKMD.mjs → agent-switch-7GOGG4KG.mjs} +1 -1
  403. package/dist/bin/hook-chunks/{analysis-UGHAG2SK.mjs → analysis-UI2JRLJO.mjs} +3 -3
  404. package/dist/bin/hook-chunks/{auto-flush-CXWTU3RF.mjs → auto-flush-JKIXTI2I.mjs} +1 -1
  405. package/dist/bin/hook-chunks/{capture-gate-PS6QUXLX.mjs → capture-gate-DIPHPNIC.mjs} +1 -1
  406. package/dist/bin/hook-chunks/{chunk-YDBZO6I3.mjs → chunk-22GFTUER.mjs} +1 -1
  407. package/dist/bin/hook-chunks/chunk-25OGCQTR.mjs +69 -0
  408. package/dist/bin/hook-chunks/{chunk-DCSKTMDX.mjs → chunk-3CKNJ5RA.mjs} +1 -1
  409. package/dist/bin/hook-chunks/{chunk-ABJNOG2I.mjs → chunk-3FEXJUO2.mjs} +1 -1
  410. package/dist/bin/hook-chunks/{chunk-22AXWLI6.mjs → chunk-3HGQPUKG.mjs} +1 -1
  411. package/dist/bin/hook-chunks/{chunk-GLPKMG5A.mjs → chunk-63P5VOR6.mjs} +10 -10
  412. package/dist/bin/hook-chunks/{chunk-PP6DANGV.mjs → chunk-6LU777GI.mjs} +1 -1
  413. package/dist/bin/hook-chunks/chunk-6NMHVPAI.mjs +35 -0
  414. package/dist/bin/hook-chunks/{chunk-QL3NYJTW.mjs → chunk-6RS7PNAN.mjs} +1 -1
  415. package/dist/bin/hook-chunks/{chunk-PO3QDKTE.mjs → chunk-6WDRJ7J7.mjs} +1 -1
  416. package/dist/bin/hook-chunks/chunk-7PA4KPSR.mjs +51 -0
  417. package/dist/bin/hook-chunks/{chunk-QP5USCDX.mjs → chunk-7WO5CEH3.mjs} +1 -1
  418. package/dist/bin/hook-chunks/{chunk-FW4MEPTB.mjs → chunk-A6LRNS6R.mjs} +1 -1
  419. package/dist/bin/hook-chunks/{chunk-GCDLPKOH.mjs → chunk-AEDB75AK.mjs} +1 -1
  420. package/dist/bin/hook-chunks/chunk-AFGXKRRP.mjs +12 -0
  421. package/dist/bin/hook-chunks/{chunk-WGWE3CSC.mjs → chunk-ANSRNEEI.mjs} +1 -1
  422. package/dist/bin/hook-chunks/{chunk-RTEEXGEA.mjs → chunk-AORD3YDQ.mjs} +1 -1
  423. package/dist/bin/hook-chunks/chunk-B2ZA5ZAO.mjs +8 -0
  424. package/dist/bin/hook-chunks/{chunk-BOBFTVAY.mjs → chunk-B7MHIUFA.mjs} +1 -1
  425. package/dist/bin/hook-chunks/{chunk-Z6KVLCMK.mjs → chunk-BKJHD5JI.mjs} +1 -1
  426. package/dist/bin/hook-chunks/{chunk-4NTVXJD7.mjs → chunk-BVK7ZDLX.mjs} +1 -1
  427. package/dist/bin/hook-chunks/{chunk-IGHY4FGS.mjs → chunk-CPR4FPXG.mjs} +1 -1
  428. package/dist/bin/hook-chunks/{chunk-5XA5RL5I.mjs → chunk-ETTDRXQ6.mjs} +1 -1
  429. package/dist/bin/hook-chunks/chunk-F3PNT2DQ.mjs +19 -0
  430. package/dist/bin/hook-chunks/{chunk-C4O243NG.mjs → chunk-FBEDUKMG.mjs} +1 -1
  431. package/dist/bin/hook-chunks/{chunk-5H3KJWQS.mjs → chunk-GER6HFWV.mjs} +2 -2
  432. package/dist/bin/hook-chunks/{chunk-IWJG7CZX.mjs → chunk-GSPDJSJ5.mjs} +1 -1
  433. package/dist/bin/hook-chunks/chunk-H5AVBDCH.mjs +8 -0
  434. package/dist/bin/hook-chunks/{chunk-HEDZA6KC.mjs → chunk-HGZQWYBL.mjs} +1 -1
  435. package/dist/bin/hook-chunks/{chunk-GDESYWTD.mjs → chunk-HNZ24HIK.mjs} +2 -2
  436. package/dist/bin/hook-chunks/{chunk-S5ISOGDB.mjs → chunk-IDPBMN3Q.mjs} +1 -1
  437. package/dist/bin/hook-chunks/{chunk-PTA7DMLM.mjs → chunk-IFIENAZU.mjs} +1 -1
  438. package/dist/bin/hook-chunks/chunk-IHEOOJJT.mjs +11 -0
  439. package/dist/bin/hook-chunks/{chunk-S5N2ZZDL.mjs → chunk-IL36ER4U.mjs} +1 -1
  440. package/dist/bin/hook-chunks/{chunk-6GAFRIUQ.mjs → chunk-IWUF2LGO.mjs} +1 -1
  441. package/dist/bin/hook-chunks/{chunk-OGIFB3OE.mjs → chunk-JF6DFOQK.mjs} +1 -1
  442. package/dist/bin/hook-chunks/{chunk-Z4X7JIAP.mjs → chunk-JGZ3QGWX.mjs} +3 -3
  443. package/dist/bin/hook-chunks/chunk-KOLXYWOA.mjs +36 -0
  444. package/dist/bin/hook-chunks/{chunk-DVDZA63F.mjs → chunk-MIJZT4ZR.mjs} +1 -1
  445. package/dist/bin/hook-chunks/{chunk-J5UQVJUW.mjs → chunk-NCLONKOT.mjs} +1 -1
  446. package/dist/bin/hook-chunks/{chunk-QBYHZX33.mjs → chunk-NJ74RHNC.mjs} +1 -1
  447. package/dist/bin/hook-chunks/{chunk-NLKPAJND.mjs → chunk-NMB6YSAH.mjs} +1 -1
  448. package/dist/bin/hook-chunks/{chunk-MHNWIB7B.mjs → chunk-NSTXHVTH.mjs} +2 -2
  449. package/dist/bin/hook-chunks/{chunk-N3L77UNM.mjs → chunk-ONGVBXBD.mjs} +1 -1
  450. package/dist/bin/hook-chunks/{chunk-X5W2UYQK.mjs → chunk-PFORBQBF.mjs} +3 -3
  451. package/dist/bin/hook-chunks/{chunk-KSSRINDX.mjs → chunk-PPWPUEBH.mjs} +1 -1
  452. package/dist/bin/hook-chunks/{chunk-76GDLA3Z.mjs → chunk-PQJ64L6U.mjs} +1 -1
  453. package/dist/bin/hook-chunks/{chunk-PGWFGRX4.mjs → chunk-QOQZHR3E.mjs} +1 -1
  454. package/dist/bin/hook-chunks/{chunk-2UC4DTDO.mjs → chunk-QXCEBAIA.mjs} +1 -1
  455. package/dist/bin/hook-chunks/{chunk-I26F7TLM.mjs → chunk-RLKYEL3F.mjs} +1 -1
  456. package/dist/bin/hook-chunks/{chunk-BDOAQVIF.mjs → chunk-SQW2B7NW.mjs} +1 -1
  457. package/dist/bin/hook-chunks/{chunk-4HAKTI36.mjs → chunk-TF6PN7IB.mjs} +1 -1
  458. package/dist/bin/hook-chunks/{chunk-UHVYBU7F.mjs → chunk-TKXOMN4K.mjs} +4 -4
  459. package/dist/bin/hook-chunks/{chunk-BX7VKYA7.mjs → chunk-UBWUQ64A.mjs} +1 -1
  460. package/dist/bin/hook-chunks/{chunk-OUAVSD47.mjs → chunk-UI25YRTY.mjs} +1 -1
  461. package/dist/bin/hook-chunks/{chunk-G7QQZMAO.mjs → chunk-UMJ5D5I6.mjs} +1 -1
  462. package/dist/bin/hook-chunks/{chunk-ZOX6OV6X.mjs → chunk-V6GGH6H5.mjs} +1 -1
  463. package/dist/bin/hook-chunks/chunk-WIA6ORIY.mjs +16 -0
  464. package/dist/bin/hook-chunks/chunk-WUOVBBPC.mjs +11 -0
  465. package/dist/bin/hook-chunks/{chunk-T6ELTQZM.mjs → chunk-XSJ7SPVR.mjs} +1 -1
  466. package/dist/bin/hook-chunks/{chunk-UYQC63MC.mjs → chunk-XXVHUYL7.mjs} +1 -1
  467. package/dist/bin/hook-chunks/{chunk-RHKF7EJW.mjs → chunk-Y7MZA2G4.mjs} +1 -1
  468. package/dist/bin/hook-chunks/{chunk-U4OON3S7.mjs → chunk-Y7RDBMNC.mjs} +1 -1
  469. package/dist/bin/hook-chunks/{chunk-ROA2AJXY.mjs → chunk-YATXTHDL.mjs} +1 -1
  470. package/dist/bin/hook-chunks/{chunk-ZFLIVOFX.mjs → chunk-ZF2EVMY7.mjs} +1 -1
  471. package/dist/bin/hook-chunks/{chunk-S6L3FECF.mjs → chunk-ZH2MF7H7.mjs} +1 -1
  472. package/dist/bin/hook-chunks/{chunk-3WQBTXUC.mjs → chunk-ZJW27EUC.mjs} +1 -1
  473. package/dist/bin/hook-chunks/{chunk-J5UVRZ44.mjs → chunk-ZXON2U5F.mjs} +3 -3
  474. package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +9 -0
  475. package/dist/bin/hook-chunks/{client-CRXA774S.mjs → client-K3ZA2BLB.mjs} +1 -1
  476. package/dist/bin/hook-chunks/{code-graph-cloud-GTSLO7CD.mjs → code-graph-cloud-XGQF7XYC.mjs} +1 -1
  477. package/dist/bin/hook-chunks/{codex-skill-NUBNPSMF.mjs → codex-skill-UZZCACMB.mjs} +1 -1
  478. package/dist/bin/hook-chunks/{command-installer-UHSXC3UG.mjs → command-installer-FJ73C2ZW.mjs} +1 -1
  479. package/dist/bin/hook-chunks/{config-manager-DX5OOPW5.mjs → config-manager-XDKOTIJM.mjs} +1 -1
  480. package/dist/bin/hook-chunks/{context7-service-GDJ3QICX.mjs → context7-service-NH4BMGSJ.mjs} +1 -1
  481. package/dist/bin/hook-chunks/{custom-workflow-storage-FD47DPA3.mjs → custom-workflow-storage-VBMWLKA7.mjs} +1 -1
  482. package/dist/bin/hook-chunks/cwd-changed-STP3LH6Y.mjs +8 -0
  483. package/dist/bin/hook-chunks/{database-ZUC7OEZG.mjs → database-ZCP76LMM.mjs} +1 -1
  484. package/dist/bin/hook-chunks/{detect-changes-OJUBWWTU.mjs → detect-changes-5W6EGEZG.mjs} +1 -1
  485. package/dist/bin/hook-chunks/{developer-evolution-WNSTHDAA.mjs → developer-evolution-UTY3CWOK.mjs} +1 -1
  486. package/dist/bin/hook-chunks/{distill-GOGPFQFK.mjs → distill-63BHUJAC.mjs} +1 -1
  487. package/dist/bin/hook-chunks/{enriched-recall-QF22RIK7.mjs → enriched-recall-6F6LBYAB.mjs} +1 -1
  488. package/dist/bin/hook-chunks/{format-J3X3R225.mjs → format-VJ2YQ4XQ.mjs} +1 -1
  489. package/dist/bin/hook-chunks/{judgment-ledger-storage-FE4HXTHM.mjs → judgment-ledger-storage-7Q7AEEY6.mjs} +1 -1
  490. package/dist/bin/hook-chunks/{judgment-orchestrator-YDJTKNV2.mjs → judgment-orchestrator-AAON4ZJ4.mjs} +1 -1
  491. package/dist/bin/hook-chunks/{judgment-receipt-7A2DXVJA.mjs → judgment-receipt-LSJCAYBT.mjs} +1 -1
  492. package/dist/bin/hook-chunks/{land-cue-SZWJH6XP.mjs → land-cue-DEO2AZW4.mjs} +1 -1
  493. package/dist/bin/hook-chunks/{land-synthesis-JLYUBKHR.mjs → land-synthesis-GTMFIGDM.mjs} +1 -1
  494. package/dist/bin/hook-chunks/{legacy-crew-sweep-JXYO62UE.mjs → legacy-crew-sweep-QPKU7ITU.mjs} +2 -2
  495. package/dist/bin/hook-chunks/{memory-index-CIYDXN2G.mjs → memory-index-KCMXQGKX.mjs} +1 -1
  496. package/dist/bin/hook-chunks/{notification-UA7RTVHG.mjs → notification-DX6ZHOUC.mjs} +1 -1
  497. package/dist/bin/hook-chunks/{pack-integrity-GZC5NGFN.mjs → pack-integrity-UMLIB5RQ.mjs} +1 -1
  498. package/dist/bin/hook-chunks/{pack-manager-AF5F7PRT.mjs → pack-manager-YXRK2TJ4.mjs} +1 -1
  499. package/dist/bin/hook-chunks/{planning-M3RAOZVB.mjs → planning-JR7O5MYW.mjs} +2 -2
  500. package/dist/bin/hook-chunks/{post-edit-QRDYPZLZ.mjs → post-edit-IPTVSRVG.mjs} +1 -1
  501. package/dist/bin/hook-chunks/{pre-bash-TWWFVNQ7.mjs → pre-bash-5WWTH36N.mjs} +1 -1
  502. package/dist/bin/hook-chunks/{pre-commit-PTFF7JIN.mjs → pre-commit-KZ5TNTPW.mjs} +1 -1
  503. package/dist/bin/hook-chunks/pre-edit-XHPYBXRU.mjs +11 -0
  504. package/dist/bin/hook-chunks/{pre-package-325ALZKD.mjs → pre-package-U3HDW3SX.mjs} +1 -1
  505. package/dist/bin/hook-chunks/{pre-search-GOHVFAFH.mjs → pre-search-R5CRK66E.mjs} +1 -1
  506. package/dist/bin/hook-chunks/{pre-secrets-MYNM5KI4.mjs → pre-secrets-MWPPZPWK.mjs} +1 -1
  507. package/dist/bin/hook-chunks/{prjct-md-RCB6FWD6.mjs → prjct-md-IBQTJBK7.mjs} +1 -1
  508. package/dist/bin/hook-chunks/{project-agent-surfaces-V4P5RTUR.mjs → project-agent-surfaces-TPZO73ZV.mjs} +1 -1
  509. package/dist/bin/hook-chunks/{project-file-inventory-OKIP4LBO.mjs → project-file-inventory-HHURZTMH.mjs} +1 -1
  510. package/dist/bin/hook-chunks/project-memory-YQLZX5RG.mjs +8 -0
  511. package/dist/bin/hook-chunks/{project-style-evolution-RPGATIYJ.mjs → project-style-evolution-NOFCIIZZ.mjs} +1 -1
  512. package/dist/bin/hook-chunks/prompt-DJWONMTZ.mjs +24 -0
  513. package/dist/bin/hook-chunks/{publish-helper-SX7HEV2L.mjs → publish-helper-ZSL27HSX.mjs} +1 -1
  514. package/dist/bin/hook-chunks/{purge-XKHUAB4H.mjs → purge-5W3K2MZL.mjs} +1 -1
  515. package/dist/bin/hook-chunks/retention-GWJ4AX7I.mjs +8 -0
  516. package/dist/bin/hook-chunks/{sdd-6PF7MBAY.mjs → sdd-GWBRD4KI.mjs} +1 -1
  517. package/dist/bin/hook-chunks/{session-continuity-UEXQDGZE.mjs → session-continuity-VH645RGR.mjs} +1 -1
  518. package/dist/bin/hook-chunks/session-start-4TYTI27B.mjs +8 -0
  519. package/dist/bin/hook-chunks/settings-installer-CQKMGMRG.mjs +9 -0
  520. package/dist/bin/hook-chunks/{setup-ZOHG6MGF.mjs → setup-VF4UHUBX.mjs} +3 -3
  521. package/dist/bin/hook-chunks/{shipping-QVGTOO6U.mjs → shipping-2ULWBGRX.mjs} +4 -4
  522. package/dist/bin/hook-chunks/{skill-index-FGDQVYHM.mjs → skill-index-55I3HLAI.mjs} +1 -1
  523. package/dist/bin/hook-chunks/{spec-context-inference-6Z52BT37.mjs → spec-context-inference-HVENYOIO.mjs} +1 -1
  524. package/dist/bin/hook-chunks/{spec-service-UAQ5AEXQ.mjs → spec-service-4XGQQPGP.mjs} +2 -2
  525. package/dist/bin/hook-chunks/{spec-task-breakdown-LAXGVLMY.mjs → spec-task-breakdown-JXF556UH.mjs} +1 -1
  526. package/dist/bin/hook-chunks/{state-storage-XU35ZYNA.mjs → state-storage-EMWLIFQJ.mjs} +1 -1
  527. package/dist/bin/hook-chunks/stop-NJDYIIXR.mjs +16 -0
  528. package/dist/bin/hook-chunks/subagent-start-2YMGD4SY.mjs +8 -0
  529. package/dist/bin/hook-chunks/{subagent-stop-OUG4PR7S.mjs → subagent-stop-4TZJ2NSJ.mjs} +1 -1
  530. package/dist/bin/hook-chunks/{surface-attribution-A6GCGRFM.mjs → surface-attribution-UNK4J5W2.mjs} +1 -1
  531. package/dist/bin/hook-chunks/{symbol-graph-DMPBNBX7.mjs → symbol-graph-MH42JSPX.mjs} +1 -1
  532. package/dist/bin/hook-chunks/{sync-cursor-storage-VVLA3L2U.mjs → sync-cursor-storage-ZB7FGT6D.mjs} +1 -1
  533. package/dist/bin/hook-chunks/{task-orchestration-HFZYWYLR.mjs → task-orchestration-7NGRIISS.mjs} +1 -1
  534. package/dist/bin/hook-chunks/{task-overview-PCUZWL5Q.mjs → task-overview-P3VRH2FD.mjs} +1 -1
  535. package/dist/bin/hook-chunks/task-service-SPUES5DO.mjs +8 -0
  536. package/dist/bin/hook-chunks/{tdd-QZL4OSM7.mjs → tdd-MYF7I5FS.mjs} +1 -1
  537. package/dist/bin/hook-chunks/{template-loader-SKXILJLJ.mjs → template-loader-4SYVR2UB.mjs} +1 -1
  538. package/dist/bin/hook-chunks/{usefulness-SZLG6LVC.mjs → usefulness-TBD5EYAL.mjs} +1 -1
  539. package/dist/bin/hook-chunks/{vault-retire-notice-HOXPURNQ.mjs → vault-retire-notice-7XHVNHU6.mjs} +1 -1
  540. package/dist/bin/hook-chunks/{velocity-storage-5J6BAMCW.mjs → velocity-storage-IOCVK2LU.mjs} +1 -1
  541. package/dist/bin/hook-chunks/{weak-model-mode-ZRNKFTFF.mjs → weak-model-mode-TYJJT6JJ.mjs} +1 -1
  542. package/dist/bin/hook-chunks/{work-graph-PGYHFLEL.mjs → work-graph-AVAOKY63.mjs} +1 -1
  543. package/dist/bin/hook-chunks/{work-scope-FIB6LBKE.mjs → work-scope-A6XPENFE.mjs} +1 -1
  544. package/dist/bin/hook-chunks/{workspace-occupancy-3D4OKQRB.mjs → workspace-occupancy-3NEAXILW.mjs} +1 -1
  545. package/dist/bin/hook-fast-darwin-arm64 +0 -0
  546. package/dist/bin/hook-fast-darwin-x64 +0 -0
  547. package/dist/bin/hook-fast-linux-x64 +0 -0
  548. package/dist/bin/prjct-core.mjs +9 -3311
  549. package/dist/bin/prjct-hooks.mjs +3 -3
  550. package/dist/bin/prjct.mjs +27 -8
  551. package/dist/daemon/entry.mjs +621 -606
  552. package/dist/mcp/server.mjs +317 -302
  553. package/package.json +5 -6
  554. package/scripts/install.sh +28 -496
  555. package/dist/bin/hook-chunks/chunk-4KXXDQYI.mjs +0 -11
  556. package/dist/bin/hook-chunks/chunk-BU22R6JX.mjs +0 -9
  557. package/dist/bin/hook-chunks/chunk-CYZ7ST2P.mjs +0 -36
  558. package/dist/bin/hook-chunks/chunk-EWOK4VE7.mjs +0 -11
  559. package/dist/bin/hook-chunks/chunk-FXFG6PV6.mjs +0 -69
  560. package/dist/bin/hook-chunks/chunk-GDECEHO5.mjs +0 -16
  561. package/dist/bin/hook-chunks/chunk-GPZP7NXL.mjs +0 -11
  562. package/dist/bin/hook-chunks/chunk-KHLYWNHT.mjs +0 -8
  563. package/dist/bin/hook-chunks/chunk-TRMBRDKH.mjs +0 -8
  564. package/dist/bin/hook-chunks/chunk-TXSLON7M.mjs +0 -19
  565. package/dist/bin/hook-chunks/chunk-V2FR2NPL.mjs +0 -43
  566. package/dist/bin/hook-chunks/chunk-XXRAQZNC.mjs +0 -35
  567. package/dist/bin/hook-chunks/cwd-changed-EP3UIRK6.mjs +0 -8
  568. package/dist/bin/hook-chunks/pre-edit-PMMWDR2B.mjs +0 -11
  569. package/dist/bin/hook-chunks/project-memory-JK2MXRJB.mjs +0 -8
  570. package/dist/bin/hook-chunks/prompt-DOENKHLQ.mjs +0 -24
  571. package/dist/bin/hook-chunks/retention-C3NQT65W.mjs +0 -8
  572. package/dist/bin/hook-chunks/session-start-B4P7L33E.mjs +0 -8
  573. package/dist/bin/hook-chunks/settings-installer-QDM3GB6J.mjs +0 -9
  574. package/dist/bin/hook-chunks/stop-CFB2H3XC.mjs +0 -16
  575. package/dist/bin/hook-chunks/subagent-start-KFAZZUHS.mjs +0 -8
  576. package/dist/bin/hook-chunks/task-service-PXCDU55T.mjs +0 -8
@@ -0,0 +1,76 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as g,d as y}from"./chunk-5MN22JFI.mjs";import{a as L}from"./chunk-V5VCXMKO.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as p}from"./chunk-ID2C2S33.mjs";import{b as N}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import{e as J}from"./chunk-7QTE6X4J.mjs";import{c as C}from"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import{a as V,b as ce}from"./chunk-U24YKPYX.mjs";import{b as M,p as le}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import{b as _,g as me}from"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as U,g as ue}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";ce();import W from"node:crypto";import m from"node:fs/promises";import l from"node:path";import{z as s}from"zod";var z=s.object({severity:s.enum(["info","warning","blocking"]),title:s.string(),recommendation:s.string(),files:s.array(s.string()).optional(),command:s.string().optional()}),de=s.object({id:s.string(),name:s.string(),status:s.enum(["pass","warn","fail"]),score:s.number().min(0).max(100),durationMs:s.number().nonnegative(),metrics:s.record(s.string(),s.union([s.string(),s.number(),s.boolean()])),actionables:s.array(z)}),H=s.object({jsonPath:s.string().optional(),reportPath:s.string().optional()}).optional(),B=s.object({schemaVersion:s.literal(1),runId:s.string(),createdAt:s.string(),runner:s.object({source:s.enum(["local","ci","agent"]),user:s.string().optional(),platform:s.string(),node:s.string(),bun:s.string().optional()}),project:s.object({repo:s.string(),branch:s.string().optional(),commit:s.string().optional(),dirty:s.boolean()}),versions:s.object({current:s.string(),baseline:s.string().optional(),candidate:s.string().optional()}),scenarios:s.array(de),summary:s.object({score:s.number().min(0).max(100),pass:s.number().nonnegative(),warn:s.number().nonnegative(),fail:s.number().nonnegative(),improvements:s.number().nonnegative(),regressions:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H}),G=s.object({schemaVersion:s.literal(1),comparisonId:s.string(),createdAt:s.string(),baselineRunId:s.string().optional(),candidateRunId:s.string().optional(),baselineVersion:s.string().optional(),candidateVersion:s.string().optional(),summary:s.object({baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),regressions:s.number().nonnegative(),improvements:s.number().nonnegative(),actionables:s.number().nonnegative()}),artifacts:H,scenarios:s.array(s.object({id:s.string(),baselineScore:s.number().optional(),candidateScore:s.number().optional(),delta:s.number().optional(),status:s.enum(["improved","regressed","unchanged","missing-baseline","missing-candidate"]),actionables:s.array(z)}))});le();me();var O=1,q=-5,K=5;async function X(n,r={}){let t=new Date().toISOString(),e=await I(n),i=await ge({projectPath:n,git:e}),c=pe(i),d={schemaVersion:O,runId:Ie(t),createdAt:t,runner:{source:r.source??ke(),user:await Oe(n),platform:`${process.platform}-${process.arch}`,node:process.version,bun:await xe()},project:{repo:e.repo,branch:e.branch,commit:e.commit,dirty:e.dirty},versions:{current:_(),baseline:r.baseline,candidate:r.candidate??_()},scenarios:i,summary:c};return je(d)}o(X,"runEval");async function S(n){let r=l.join(x(await I(n)),"latest.json");return D(r)}o(S,"loadLatestEvalRun");async function Q(n,r){if(!r)return S(n);let t=l.join(x(await I(n)),"runs"),e=await m.readdir(t).catch(()=>null);return e?(await Promise.all(e.filter(i=>i.endsWith(".json")).map(i=>D(l.join(t,i))))).filter(i=>!!i).filter(i=>i.versions.current===r||i.versions.candidate===r).sort((i,c)=>c.createdAt.localeCompare(i.createdAt))[0]??null:null}o(Q,"loadEvalRunByVersion");async function Y(n,r={}){let t=await Q(n,r.baseline),e=r.candidate?await Q(n,r.candidate):await S(n),i=[...new Set([...t?.scenarios.map(u=>u.id)??[],...e?.scenarios.map(u=>u.id)??[]])].sort().map(u=>{let v=t?.scenarios.find(A=>A.id===u),w=e?.scenarios.find(A=>A.id===u),b=v&&w?Math.round((w.score-v.score)*10)/10:void 0,j=[],oe=v?w?(b??0)<=q?"regressed":(b??0)>=K?"improved":"unchanged":"missing-candidate":"missing-baseline";return v?w?(b??0)<=q?j.push({severity:"blocking",title:`${u} regressed by ${Math.abs(b??0)} points`,recommendation:Me(u)}):(b??0)>=K?j.push({severity:"info",title:`${u} improved by ${b} points`,recommendation:"Keep this scenario in PR checks so the improvement is protected."}):v&&w&&j.push({severity:"info",title:`${u} stayed within the regression threshold`,recommendation:"Keep collecting this scenario so future optimizations have a stable baseline."}):j.push({severity:"blocking",title:`No candidate result for ${u}`,recommendation:"Run `prjct eval run` for the candidate version before publishing a comparison."}):j.push({severity:"warning",title:`No baseline result for ${u}`,recommendation:"Run `prjct eval run --candidate <baseline-version>` before comparing releases."}),{id:u,baselineScore:v?.score,candidateScore:w?.score,delta:b,status:oe,actionables:j}}),c=i.filter(u=>u.status==="regressed").length,d=i.filter(u=>u.status==="improved").length,f=new Date().toISOString(),h=t?.versions.candidate??t?.versions.current??r.baseline,F=e?.versions.candidate??e?.versions.current??r.candidate,ie={schemaVersion:O,comparisonId:Ce(f,h,F),createdAt:f,baselineRunId:t?.runId,candidateRunId:e?.runId,baselineVersion:h,candidateVersion:F,summary:{baselineScore:t?.summary.score,candidateScore:e?.summary.score,delta:t&&e?Math.round((e.summary.score-t.summary.score)*10)/10:void 0,regressions:c,improvements:d,actionables:i.reduce((u,v)=>u+v.actionables.length,0)},scenarios:i};return Ee(n,ie)}o(Y,"compareEvalRuns");async function T(n,r={}){let t=te(r.target),e=r.file?await Re(r.file):await $e(n),a=await re(n,r.dryRun===!0),i={schemaVersion:O,artifactType:"run",artifactId:e.runId,repo:e.project.repo,createdAt:e.createdAt,run:e,reportMarkdown:R(e)};return se(a.projectId,t,r.dryRun===!0,i,{artifactType:"run",artifactId:e.runId,runId:e.runId})}o(T,"publishEvalRun");async function ee(n,r,t={}){let e=te(t.target),a=await re(n,t.dryRun===!0),i=await I(n),c={schemaVersion:O,artifactType:"comparison",artifactId:r.comparisonId,repo:i.repo,createdAt:r.createdAt,comparison:r,reportMarkdown:P(r)};return se(a.projectId,e,t.dryRun===!0,c,{artifactType:"comparison",artifactId:r.comparisonId,comparisonId:r.comparisonId})}o(ee,"publishEvalComparison");function R(n){let r=n.scenarios.flatMap(a=>a.actionables.map(i=>({scenario:a.id,actionable:i}))),t=n.scenarios.map(a=>`| \`${a.id}\` | ${a.status} | ${a.score} | ${a.actionables.length} |`).join(`
8
+ `),e=r.length===0?"_No actionables._":r.map(({scenario:a,actionable:i})=>`- **${i.severity}** \`${a}\`: ${i.title}. ${i.recommendation}`).join(`
9
+ `);return`# prjct eval run
10
+
11
+ Run: \`${n.runId}\`
12
+ Version: \`${n.versions.current}\`
13
+ Repo: \`${n.project.repo}\`
14
+ Commit: \`${n.project.commit??"unknown"}\`
15
+
16
+ ## Summary
17
+
18
+ | Metric | Value |
19
+ |---|---:|
20
+ | Score | ${n.summary.score} |
21
+ | Pass | ${n.summary.pass} |
22
+ | Warn | ${n.summary.warn} |
23
+ | Fail | ${n.summary.fail} |
24
+ | Actionables | ${n.summary.actionables} |
25
+
26
+ ## Scenarios
27
+
28
+ | Scenario | Status | Score | Actionables |
29
+ |---|---|---:|---:|
30
+ ${t}
31
+
32
+ ## Actionables
33
+
34
+ ${e}
35
+ `}o(R,"formatEvalRunMarkdown");function P(n){let r=n.scenarios.map(e=>`| \`${e.id}\` | ${e.status} | ${e.baselineScore??"-"} | ${e.candidateScore??"-"} | ${e.delta??"-"} |`).join(`
36
+ `),t=n.scenarios.flatMap(e=>e.actionables.map(a=>`- **${a.severity}** \`${e.id}\`: ${a.title}. ${a.recommendation}`));return`# prjct eval comparison
37
+
38
+ Comparison: \`${n.comparisonId}\`
39
+ Baseline: \`${n.baselineVersion??"missing"}\`
40
+ Candidate: \`${n.candidateVersion??"missing"}\`
41
+
42
+ ## Summary
43
+
44
+ | Metric | Value |
45
+ |---|---:|
46
+ | Baseline score | ${n.summary.baselineScore??"-"} |
47
+ | Candidate score | ${n.summary.candidateScore??"-"} |
48
+ | Delta | ${n.summary.delta??"-"} |
49
+ | Improvements | ${n.summary.improvements} |
50
+ | Regressions | ${n.summary.regressions} |
51
+ | Actionables | ${n.summary.actionables} |
52
+
53
+ ## Scenarios
54
+
55
+ | Scenario | Status | Baseline | Candidate | Delta |
56
+ |---|---|---:|---:|---:|
57
+ ${r||"| _none_ | - | - | - | - |"}
58
+
59
+ ## Actionables
60
+
61
+ ${t.length>0?t.join(`
62
+ `):"_No actionables._"}
63
+ `}o(P,"formatEvalComparisonMarkdown");function pe(n){return{score:n.length===0?0:Math.round(n.reduce((t,e)=>t+e.score,0)/n.length),pass:n.filter(t=>t.status==="pass").length,warn:n.filter(t=>t.status==="warn").length,fail:n.filter(t=>t.status==="fail").length,improvements:0,regressions:n.filter(t=>t.status==="fail").length,actionables:n.reduce((t,e)=>t+e.actionables.length,0)}}o(pe,"summarizeScenarios");async function ge(n){return Promise.all([E("agent-surface-readiness","Agent surface readiness",()=>fe(n.projectPath)),E("project-sync-readiness","Project sync readiness",()=>he(n.projectPath)),E("stale-command-guidance","Stale command guidance",()=>ve(n.projectPath)),E("quality-command-readiness","Quality command readiness",()=>be(n.projectPath)),E("cloud-benchmark-readiness","Cloud benchmark readiness",()=>ye(n.projectPath)),E("project-facts-freshness","Project facts freshness",()=>we(n.projectPath))])}o(ge,"runScenarios");async function E(n,r,t){let e=Date.now(),a=await t();return{id:n,name:r,durationMs:Date.now()-e,...a}}o(E,"scenario");async function fe(n){let r=await k(l.join(n,"AGENTS.md")),t=await k(l.join(n,"CLAUDE.md")),e=r?100:t?70:20;return{status:e>=90?"pass":"warn",score:e,metrics:{agentsMd:r,claudeMd:t},actionables:e>=90?[{severity:"info",title:"Portable agent surface is present",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks.",command:"prjct agents doctor --fix"}]:[{severity:"warning",title:"Portable AGENTS.md surface is missing",recommendation:"Run `prjct agents doctor --fix` so future agents start with the same project contract.",command:"prjct agents doctor --fix"}]}}o(fe,"evalAgentSurface");async function he(n){let r=await k(l.join(n,".prjct","prjct.config.json"));return{status:r?"pass":"warn",score:r?100:40,metrics:{projectConfig:r},actionables:[r?{severity:"info",title:"Project has a prjct identity",recommendation:"Use `prjct sync --md` in eval smoke runs to keep generated context measurable.",command:"prjct sync --md"}:{severity:"warning",title:"Project is not registered with prjct",recommendation:"Run `prjct sync` before comparing eval runs so metrics map to a stable project id.",command:"prjct sync"}]}}o(he,"evalProjectSyncReadiness");async function ve(n){let r=await Ae(n,250),t=/\/p:\s*[a-z][a-z0-9-]*/i,e=[];return await Promise.all(r.map(async a=>{let i=await m.readFile(l.join(n,a),"utf-8").catch(()=>"");t.test(i)&&e.push(a)})),{status:e.length===0?"pass":"warn",score:e.length===0?100:Math.max(20,100-e.length*10),metrics:{scannedFiles:r.length,staleHits:e.length},actionables:e.length===0?[{severity:"info",title:"No stale `/p:` command guidance found",recommendation:"Keep this scan in evals to prevent user-facing command drift."}]:[{severity:"warning",title:`Found ${e.length} stale command guidance file(s)`,recommendation:"Replace stale `/p:` examples with `p. <verb>` or `prjct <verb>`.",files:e.slice(0,10)}]}}o(ve,"evalStaleCommandGuidance");async function be(n){let r=l.join(n,"package.json"),t=await(async()=>{try{return JSON.parse(await m.readFile(r,"utf-8")).scripts??{}}catch{return{}}})(),e=typeof t.test=="string",a=typeof t.check=="string"||typeof t.lint=="string",i=(e?50:0)+(a?50:0);return{status:i>=100?"pass":"warn",score:i,metrics:{hasTest:e,hasCheck:a},actionables:i>=100?[{severity:"info",title:"Quality commands are discoverable",recommendation:"Use these commands as eval scenario gates before publishing results."}]:[{severity:"warning",title:"Quality commands are incomplete",recommendation:"Expose `test` and `check`/`lint` scripts so eval reports can tie regressions to real verification.",files:["package.json"]}]}}o(be,"evalQualityCommandReadiness");async function ye(n){let r=await N.readConfig(n),t=await C.hasAuth(),e=!!r?.projectId,a=!!r?.cloud?.enabled,i=a&&!r?.cloud?.paused,c=(e?34:0)+(t?33:0)+(i?33:0);return{status:c>=100?"pass":"warn",score:c,metrics:{hasProject:e,authenticated:t,cloudLinked:a,cloudActive:i},actionables:c>=100?[{severity:"info",title:"Cloud benchmark publishing is active",recommendation:"Run `prjct eval publish --target cloud` after release evals to store shared benchmark history.",command:"prjct eval publish --target cloud"}]:[{severity:"warning",title:"Cloud benchmark publishing is not active",recommendation:"Run `prjct init`, `prjct login`, and `prjct cloud link` before publishing benchmark results.",command:"prjct cloud status"}]}}o(ye,"evalCloudBenchmarkReadiness");async function we(n){let r=l.join(n,"PRJCT.md");if(!await k(r))return{status:"warn",score:50,metrics:{prjctMd:!1},actionables:[{severity:"info",title:"PRJCT.md not opted into yet",recommendation:"Run `prjct agents doctor --fix` to generate the verified-facts hub (opt-in, clean-repo doctrine).",command:"prjct agents doctor --fix"}]};let{buildPrjctMdBody:e}=await import("./prjct-md-SUDFWDCS.mjs"),[a,i]=await Promise.all([m.readFile(r,"utf-8").catch(()=>""),e(n)]),c=!a.includes(i);return{status:c?"warn":"pass",score:c?40:100,metrics:{prjctMd:!0,stale:c},actionables:c?[{severity:"warning",title:"PRJCT.md is stale",recommendation:"Re-run `prjct agents doctor --fix` to refresh verified commands/stack after a manifest change (package.json / Cargo.toml / go.mod / pyproject.toml).",command:"prjct agents doctor --fix"}]:[{severity:"info",title:"PRJCT.md matches verified project facts",recommendation:"Keep `prjct agents doctor --fix` in release smoke checks to catch drift early.",command:"prjct agents doctor --fix"}]}}o(we,"evalProjectFactsFreshness");async function je(n){let r=x({repo:n.project.repo}),t=l.join(r,"runs");await m.mkdir(t,{recursive:!0});let e=l.join(t,`${n.runId}.json`),a=l.join(t,`${n.runId}.md`),i={...n,artifacts:{jsonPath:e,reportPath:a}};return B.parse(i),await m.writeFile(e,`${JSON.stringify(i,null,2)}
64
+ `,"utf-8"),await m.writeFile(a,R(i),"utf-8"),await m.writeFile(l.join(r,"latest.json"),`${JSON.stringify(i,null,2)}
65
+ `,"utf-8"),i}o(je,"saveEvalRun");async function Ee(n,r){let t=x(await I(n)),e=l.join(t,"comparisons");await m.mkdir(e,{recursive:!0});let a=l.join(e,`${r.comparisonId}.json`),i=l.join(e,`${r.comparisonId}.md`),c={...r,artifacts:{jsonPath:a,reportPath:i}};return G.parse(c),await m.writeFile(a,`${JSON.stringify(c,null,2)}
66
+ `,"utf-8"),await m.writeFile(i,P(c),"utf-8"),await m.writeFile(l.join(t,"latest-comparison.json"),`${JSON.stringify(c,null,2)}
67
+ `,"utf-8"),c}o(Ee,"saveEvalComparison");function x(n){let r=n.repo.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown";return l.join(V(),"evals",r)}o(x,"evalProjectDir");async function D(n){try{return B.parse(JSON.parse(await m.readFile(n,"utf-8")))}catch{return null}}o(D,"readRunFile");async function Re(n){let r=await D(n);if(!r)throw new Error(`Invalid or missing eval run file: ${n}`);return r}o(Re,"readRequiredRunFile");async function $e(n){let r=await S(n);if(!r)throw new Error("No eval run found. Run `prjct eval run` first.");return r}o($e,"loadLatestRequired");async function I(n){let[r,t,e,a]=await Promise.all([$(n,["branch","--show-current"]),$(n,["rev-parse","HEAD"]),$(n,["config","--get","remote.origin.url"]),$(n,["status","--porcelain"])]),i=Se(e);return{repo:i??Pe(n),ownerRepo:i,branch:r||void 0,commit:t||void 0,dirty:a.trim().length>0}}o(I,"detectGit");async function $(n,r){try{let{stdout:t}=await M("git",r,{cwd:n});return String(t).trim()}catch{return""}}o($,"git");function Se(n){let t=n.trim().match(/github\.com[:/]([^/\s]+)\/([^/\s]+?)(?:\.git)?$/);if(t)return`${t[1]}/${t[2]}`}o(Se,"parseGitHubOwnerRepo");function Pe(n){return`local-${W.createHash("sha256").update(l.resolve(n)).digest("hex").slice(0,12)}`}o(Pe,"hashedRepo");function Ie(n){return`eval_${n.replace(/[-:.TZ]/g,"").slice(0,14)}_${W.randomBytes(4).toString("hex")}`}o(Ie,"runId");function Ce(n,r,t){let e=n.replace(/[-:.TZ]/g,"").slice(0,14),a=Z(r??"missing-baseline"),i=Z(t??"missing-candidate");return`comparison_${e}_${a}_to_${i}`}o(Ce,"comparisonId");function Z(n){return n.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"unknown"}o(Z,"slugPart");function ke(){return process.env.GITHUB_ACTIONS==="true"||process.env.CI==="true"?"ci":process.env.CODEX_SANDBOX||process.env.CLAUDECODE?"agent":"local"}o(ke,"detectSource");async function Oe(n){let r=await ne("gh",["api","user","--jq",".login"],n);if(r)return`github:${r}`;let t=await $(n,["config","user.email"]);return t?`git:${t}`:void 0}o(Oe,"detectRunnerUser");async function xe(){return ne("bun",["--version"],process.cwd())}o(xe,"detectBunVersion");async function ne(n,r,t){try{let{stdout:e}=await M(n,r,{cwd:t});return String(e).trim()||void 0}catch{return}}o(ne,"execFileMaybe");async function k(n){try{return await m.access(n),!0}catch{return!1}}o(k,"exists");async function Ae(n,r){let t=[],e=new Set([".git","node_modules","dist","build","coverage",".prjct","__tests__","__fixtures__","fixtures"]);async function a(i){if(t.length>=r)return;let c=await m.readdir(i,{withFileTypes:!0}).catch(()=>[]);for(let d of c){if(t.length>=r)break;if(e.has(d.name))continue;let f=l.join(i,d.name);d.isDirectory()?await a(f):d.isFile()&&!d.name.includes(".test.")&&!d.name.includes(".spec.")&&/\.(md|mdc|txt|toml|json|ya?ml|sh|ts|tsx|js|jsx)$/.test(d.name)&&t.push(l.relative(n,f))}}return o(a,"walk"),await a(n),t}o(Ae,"collectTextFiles");function Me(n){return n.includes("sync")?"Inspect sync incrementality and generated context freshness before shipping.":n.includes("cloud")?"Check cloud auth/link status and benchmark publisher setup.":n.includes("command")?"Audit user-facing command copy and generated templates for stale instructions.":"Open the latest eval report, inspect scenario metrics, and add a focused regression test."}o(Me,"regressionRecommendation");function te(n){let r=n??"cloud";if(r==="github")throw new Error("GitHub eval publishing was removed. Use `prjct eval publish --target cloud` after `prjct login` and `prjct cloud link`.");if(r!=="cloud")throw new Error(`Unsupported eval publish target: ${r}. Use --target cloud.`);return"cloud"}o(te,"normalizePublishTarget");async function re(n,r){let t=await N.readConfig(n);if(!t?.projectId)throw new Error("Cloud benchmark publish requires a prjct project. Run `prjct init` first.");if(r)return{projectId:t.projectId};if(!await C.hasAuth())throw new Error("Cloud benchmark publish requires authentication. Run `prjct login`, then `prjct cloud link`.");if(!t.cloud?.enabled)throw new Error("Cloud benchmark publish requires cloud to be active. Run `prjct cloud link`.");if(t.cloud.paused)throw new Error("Cloud sync is paused. Run `prjct cloud resume` before publishing benchmarks.");return{projectId:t.projectId}}o(re,"resolveBenchmarkProject");async function se(n,r,t,e,a){let c=`${await C.getApiUrl()}/benchmarks/evals`,d={projectId:n,...e},f=Buffer.byteLength(JSON.stringify(d),"utf-8");if(t)return{target:r,dryRun:t,...a,projectId:n,repo:e.repo,endpoint:c,payloadBytes:f};try{let h=await J.publishBenchmark(n,e);return{target:r,dryRun:t,...a,projectId:n,repo:e.repo,endpoint:c,payloadBytes:f,remoteId:h.benchmarkId,publishedAt:h.publishedAt??new Date().toISOString(),url:h.url}}catch(h){throw new Error(_e(h))}}o(se,"publishBenchmarkPayload");function _e(n){if(n instanceof Error)return n.message;if(n&&typeof n=="object"&&"message"in n){let r=n;return r.code==="PAYMENT_REQUIRED"?`${r.message} Run \`prjct cloud status\` for account details.`:r.message}return"Cloud benchmark publish failed."}o(_e,"cloudPublishErrorMessage");ue();var ae=class extends L{static{o(this,"EvalCommands")}async eval(r=null,t=process.cwd(),e={}){let[a="run"]=(r??"").trim().split(/\s+/).filter(Boolean);try{switch(a){case"run":return this.run(t,e);case"compare":return this.compare(t,e);case"report":return this.report(t,e);case"publish":return this.publish(t,e);default:return this.unknown(a,e)}}catch(i){let c=U(i);return e.md?console.log(g(y("Eval failed",c))):p.fail(c),{success:!1,error:c}}}async run(r,t){let e=await X(r,t);if(t.publish){let a=await T(r,{target:t.target,dryRun:t.dryRun,file:e.artifacts?.jsonPath});return t.json?console.log(JSON.stringify({run:e,publish:a},null,2)):t.md?console.log(g(R(e),y("Published",`Target: \`${a.target}\`
68
+ Project: \`${a.projectId}\`
69
+ URL: ${a.url??"-"}`))):p.done(`eval run ${e.runId} saved and published to ${a.target}`),{success:!0,runId:e.runId,score:e.summary.score,publish:a}}return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(R(e))):p.done(`eval run ${e.runId} saved \u2014 score ${e.summary.score}/100`),{success:!0,runId:e.runId,score:e.summary.score}}async compare(r,t){let e=await Y(r,t);if(t.publish){let a=await ee(r,e,{target:t.target,dryRun:t.dryRun});if(t.json)console.log(JSON.stringify({comparison:e,publish:a},null,2));else if(t.md)console.log(g(P(e),y("Published",`Target: \`${a.target}\`
70
+ Project: \`${a.projectId}\`
71
+ URL: ${a.url??"-"}`)));else{let i=e.summary.delta??"n/a";p.done(`eval comparison ${e.comparisonId} saved and published \u2014 delta ${i}`)}return{success:!0,comparisonId:e.comparisonId,publish:a,...e.summary}}if(t.json)console.log(JSON.stringify(e,null,2));else if(t.md)console.log(g(P(e)));else{let a=e.summary.delta??"n/a";p.done(`eval comparison complete \u2014 delta ${a}`)}return{success:!0,comparisonId:e.comparisonId,...e.summary}}async report(r,t){let e=await S(r);if(!e){let a="No eval run found. Run `prjct eval run` first.";return t.md?console.log(g(y("No eval report",a))):p.fail(a),{success:!1,error:a}}return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(R(e))):p.done(`latest eval ${e.runId} \u2014 score ${e.summary.score}/100`),{success:!0,runId:e.runId,score:e.summary.score}}async publish(r,t){let e=await T(r,t);return t.json?console.log(JSON.stringify(e,null,2)):t.md?console.log(g(y(e.dryRun?"Eval publish dry run":"Eval published",`Target: \`${e.target}\`
72
+ Project: \`${e.projectId}\`
73
+ Repo: \`${e.repo}\`
74
+ Endpoint: \`${e.endpoint}\`
75
+ Payload: ${e.payloadBytes} bytes
76
+ URL: ${e.url??"-"}`))):p.done(e.dryRun?`eval publish dry run prepared cloud benchmark payload (${e.payloadBytes} bytes)`:`eval benchmark ${e.artifactId} published to cloud`),{success:!0,...e}}unknown(r,t){let e=`Unknown eval subcommand: ${r}. Use run, compare, report, publish.`;return t.md?console.log(g(y("Unknown eval subcommand",e))):p.fail(e),{success:!1,error:e}}};export{ae as EvalCommands};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-D62TAZG6.mjs";import"./chunk-3TRXQAU4.mjs";p();export{i as GitInfraError,c as PROC_ENVELOPE_MAX,a as execAsync,b as execFileAsync,g as exitCodeMeans,j as gitInfraErrorOf,n as gitStdout,f as isProcInfra,o as listChangedFiles,m as matchProc,k as procErrorOf,e as runGit,d as runProc,h as sanitizeProcEnvelope,l as throwProc};
@@ -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 a,e as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j,n as k,o as l,p as m}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";m();export{b as batchProcess,j as dirExists,k as ensureDir,i as fileExists,l as listFiles,f as readExistingFileOrEmpty,e as readFile,c as readJson,a as walkDir,g as writeFile,h as writeFileAtomic,d as writeJson};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{c as a,d as b,e as c,f as d,g as e,h as f,i as g}from"./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-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.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-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 MACHINE_TAG_KEYS,d as deriveTitle,c as flatDetail,e as formatMemoryDigestLine,g as formatMemoryMd,f as linkifyMemRefs,b as preventiveLabel};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d,e,f}from"./chunk-3FXNIJCS.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as ensureGeminiMcpServer,b as geminiHookMaps,a as getGeminiSettingsPath,d as installGeminiHooks,e as installGeminiSettings,f as uninstallGeminiSettings};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{e as m,p as d}from"./chunk-D62TAZG6.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";d();var g=5e3;async function i(t,e){let n=await m(e,{cwd:t,timeoutMs:g});if(n.ok)return n.stdout.trim()||void 0}o(i,"git");async function x(t){let[e,n,a,u]=await Promise.all([i(t,["rev-parse","--short","HEAD"]),i(t,["config","user.name"]),i(t,["diff","--name-only","HEAD"]),i(t,["show","--name-only","--pretty=format:","HEAD"])]),r=new Set;for(let f of[a,u])if(f)for(let c of f.split(`
8
+ `).map(l=>l.trim()).filter(Boolean))r.add(c);let s=[...r].slice(0,12);return{commit:e,author:n,files:s.length>0?s:void 0}}o(x,"deriveGitContext");export{x as deriveGitContext};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b}from"./chunk-O5N6XYPU.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-3TRXQAU4.mjs";export{a as getGitBranch,b as getModifiedFiles};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c}from"./chunk-MTDCRYLP.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as ensureGrokMcpServer,a as getGrokConfigTomlPath,c as grokHasPrjctMcpServer};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c}from"./chunk-WZXUFSVT.mjs";import"./chunk-KWC2PCPC.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as getGrokPluginRoot,c as grokPluginInstalled,b as installGrokPlugin};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d}from"./chunk-KWC2PCPC.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as buildGrokSkillContent,a as getGrokSkillInstallPath,b as getGrokSkillTemplate,d as installGrokSkill};
@@ -0,0 +1,13 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as h}from"./chunk-XU3BQPBU.mjs";import{b as $}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as k}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-F2FKQUYE.mjs";import{d as g,e as p,f as u}from"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import{b as y}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 s}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as w}from"./chunk-3TRXQAU4.mjs";var b=class extends k{static{w(this,"GuardCommands")}async guard(a=null,m=process.cwd(),r={}){if(r.diff)return this.guardDiff(r.diff,m,r);let n=(a??"").trim().split(/\s+/).filter(Boolean)[0];if(!n){let t="Usage: prjct guard <file> \u2014 surfaces preventive memory before you edit it. PR mode: prjct guard --diff <range> [--strict].";return r.md?console.log(`> ${t}`):s.fail(t),{success:!1,error:"Missing file argument"}}let o=await $(m,r);if(!o.ok)return o.result;let l=typeof r.limit=="number"&&r.limit>0?r.limit:3,c=(()=>{try{return y.recallForFile(o.value,n,l)}catch{return[]}})();h(o.value,m,c.map(t=>t.id));let i=n.split("/").pop()??n,{impactBlock:d,impactLine:e}=await import("./world-model-impact-RH5WH2B3.mjs").then(({breakImpact:t,formatImpactMd:f})=>{let v=t(o.value,[n],6);return{impactBlock:f(v),impactLine:v.line}}).catch(()=>({impactBlock:"",impactLine:""}));if(c.length===0){let t=`No preventive memory recorded against \`${i}\` \u2014 clear to edit.`;return r.md?console.log(d?`> ${t}
8
+
9
+ ${d}`:`> ${t}`):(s.done(`No preventive memory for ${i} \u2014 clear to edit.`),e&&s.info(e)),{success:!0,file:n,hits:0,impact:e||void 0}}if(r.md){let t=[`# prjct: heads up before editing \`${i}\``,"","Preventive memory recorded against this file \u2014 check before you change it:",""];for(let f of c)t.push(`- **[${g(f)}] ${u(f)}** \u2014 ${p(f.content)} \`${f.id}\``);t.push("","> Surfaced as prevention. Apply if relevant; ignore if not."),d&&t.push("",d),console.log(t.join(`
10
+ `))}else{s.info(`\u26A0 ${c.length} preventive memory entr${c.length===1?"y":"ies"} for ${i}:`);for(let t of c)s.info(` \u2022 [${g(t)}] ${u(t)} \u2014 ${p(t.content,120)} (${t.id})`);e&&s.info(e)}return{success:!0,file:n,hits:c.length,impact:e||void 0}}async guardDiff(a,m,r){let n=await $(m,r);if(!n.ok)return n.result;let o=await(async()=>{try{let{execFileAsync:e}=await import("./exec-34V6SJYO.mjs");return{ok:!0,files:(await e("git",["diff","--name-only",a],{cwd:m,timeout:1e4})).stdout.split(`
11
+ `).filter(Boolean)}}catch(e){return{ok:!1,error:e}}})();if(!o.ok){let e=`Could not diff \`${a}\`: ${o.error instanceof Error?o.error.message.split(`
12
+ `)[0]:"git error"}`;return r.md?console.log(`> ${e}`):s.fail(e),{success:!1,error:"git diff failed"}}let{files:l}=o;if(l.length===0){let e=`No files changed in \`${a}\` \u2014 nothing to guard.`;return r.md?console.log(`> ${e}`):s.done(e),{success:!0,files:0,hits:0}}let c=typeof r.limit=="number"&&r.limit>0?r.limit:2,i=[],d=[];for(let e of l){let t=(()=>{try{return y.recallForFile(n.value,e,c,{preventiveOnly:!0})}catch{return[]}})();for(let f of t)i.push({file:e,entry:f}),d.push(f.id)}if(h(n.value,m,d),i.length===0){let e=`Swept ${l.length} changed file(s) in \`${a}\` \u2014 no known traps. Clear.`;return r.md?console.log(`> \u2705 ${e}`):s.done(e),{success:!0,files:l.length,hits:0}}if(r.md){let e=[`# prjct guard \u2014 ${i.length} known trap(s) in \`${a}\``,"",`Preventive memory matched ${new Set(i.map(t=>t.file)).size} of ${l.length} changed file(s):`,""];for(let t of i)e.push(`- \`${t.file}\` \u2014 [${g(t.entry)}] ${u(t.entry)} \u2014 ${p(t.entry.content,140)} (\`${t.entry.id}\`)`);e.push("","Resolve any id with `prjct search <id>`."),console.log(e.join(`
13
+ `))}else{s.info(`\u26A0 ${i.length} known trap(s) across ${l.length} changed file(s):`);for(let e of i)s.info(` \u2022 ${e.file} \u2014 ${u(e.entry)} (${e.entry.id})`)}return{success:!r.strict,...r.strict?{error:`${i.length} known trap(s) matched the diff`}:{},files:l.length,hits:i.length}}};export{b as GuardCommands};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d,e}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.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"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as requireActiveTask,b as requireProject,a as requireProjectId,e as requireTrustedMemoryContent,d as requireWorkflow};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d,e,f}from"./chunk-6XTLPAPZ.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{f as acceptHandoff,a as createHandoff,c as expireStaleHandoffs,b as getHandoff,d as listHandoffs,e as listPendingForAgent};
@@ -0,0 +1,43 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as j,b as I,g as k,h as S}from"./chunk-VILH3VYH.mjs";import"./chunk-MR5XXHRK.mjs";import"./chunk-SRJEX6XF.mjs";import"./chunk-ZHTYSYZC.mjs";import"./chunk-EFSPBB4S.mjs";import"./chunk-7ZHWJSW5.mjs";import"./chunk-WGDE3L33.mjs";import{a as $,b as R}from"./chunk-V3Y3G2DE.mjs";import"./chunk-5ONMON5L.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-3FXNIJCS.mjs";import"./chunk-BTSHD3XJ.mjs";import"./chunk-CXNVDJNN.mjs";import"./chunk-ROOCBUKH.mjs";import"./chunk-5YSPND5J.mjs";import"./chunk-C35JQUWD.mjs";import{a as y,b as g}from"./chunk-2JJM3YMW.mjs";import"./chunk-V6L5PLD7.mjs";import"./chunk-U55OPVYR.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-GTG67Z45.mjs";import"./chunk-4MR5XSLO.mjs";import"./chunk-XU3BQPBU.mjs";import"./chunk-ZQHSJ6FF.mjs";import"./chunk-V7VA4EQX.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as v}from"./chunk-V5VCXMKO.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-MDONTD7O.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-ZBBNCCGV.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-P53YMOKR.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-MXJKULJY.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-Y5SEUYET.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import{b as h}from"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as u}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-WZXUFSVT.mjs";import"./chunk-CDLZLTRY.mjs";import"./chunk-CEOTHJIY.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-KWC2PCPC.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-MTDCRYLP.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as d,g as N}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";import{existsSync as B}from"node:fs";import U from"node:path";function C(e){let r=e.activeCycle?`The flow you just performed: **${e.activeCycle}**.`:"The flow you just performed (read it from the sources below).",s=[e.hasGit?"- `git log --oneline -20` + `git diff` \u2014 the concrete edits you made.":null,"- `prjct work --md` \u2014 the work cycle + related context.",'- `prjct search "<topic>"` / `prjct context memory <topic>` \u2014 decisions/gotchas/learnings captured.'].filter(Boolean).join(`
8
+ `);return`${["# prjct harness \u2014 induction (learn from what you just did)","",r,"Read it from prjct (never assume \u2014 pull):",s,"","Then SYNTHESIZE the repeatable organs of the harness and PERSIST each through prjct (prjct owns the Body; you build + persist, it stores):","",'1. **Command / workflow** \u2014 the repeatable procedure. Register it: `prjct workflow create <name> "<what it does>"`, then add each step with `prjct workflow add "<status:<value>|script:<path>|git:commit>" before <task|ship|sync>`.','2. **Skill recipe** \u2014 the judgment/how-to that is NOT a fixed script. Capture it as durable knowledge: `prjct remember learning "<the recipe/heuristic>"` (and `prjct remember decision "<choice + why>"` for any fork resolved).','3. **Gates (Stop-Slop)** \u2014 what must be true before "done": add a blocking check with `prjct workflow gate ship "verify:auto"` (or `prjct workflow gate ship "<your test command>"`) so it runs every time.',"4. **Roster** \u2014 if the flow needed specialists, note which review lenses it raised (architecture + security/data/perf/design/strategic) so future runs compose them.","","Keep each organ MODEL-AGNOSTIC: name verbs and capabilities, never a specific model. Persist ONLY through prjct verbs \u2014 SQLite is the only surface."].join(`
9
+ `)}
10
+ `}i(C,"buildInductionDispatch");var p=[{name:"safe-agentic-workflow",description:"A cautious build\u2192review\u2192ship rig: intent brief, dynamic review specialists, and a verify gate before ship.",source:"https://github.com/safe-agentic-workflow",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 leader/implementer + review specialists composed per change."},{organ:"stop-slop",install:'prjct crew checkpoints set --content "<acceptance bar>" + `prjct workflow gate ship "verify:auto"`.'},{organ:"knowledge-base",install:`prjct remember framework "<the workflow's operating principles>".`}]},{name:"solo-sovereign",description:"A single-agent rig for non-Claude / local models: emulated crew (one agent plays the roles) + a KB + verify gate. Maximum portability.",source:"built-in",organs:[{organ:"agent-catalog",install:"prjct crew install \u2014 on a non-Claude rig this writes the emulated CREW.md protocol."},{organ:"knowledge-base",install:'prjct remember identity/voice/glossary "<who you are + terms>".'},{organ:"stop-slop",install:'prjct workflow gate ship "verify:auto".'}]},{name:"grok-build",description:"Grok as Brain, prjct as Body: multi-host skill/MCP projection, plan-mode approval gate, crew checkpoints, and SQLite memory (Grok memory is experimental). Steal patterns from the open Grok Build harness \u2014 not the Rust agent loop.",source:"https://github.com/xai-org/grok-build",organs:[{organ:"skills-commands",install:"prjct install \u2014 native ~/.grok/config.toml MCP + ~/.grok/skills/prjct + ~/.grok/plugins/prjct; hooks still via Claude compat. Keep AGENTS.md + MCP prjct_* as the portable contract."},{organ:"knowledge-base",install:"prjct remember decision/learning/gotcha \u2014 prjct SQLite is the durable memory plane; do not rely on Grok experimental memory alone."},{organ:"agent-catalog",install:"prjct crew install + `prjct plan` ceremony (draft read-only until `prjct plan approve`) before implementer edits on ambiguous work."},{organ:"stop-slop",install:'prjct crew checkpoints set + `prjct workflow gate ship "verify:auto"`; map delivery-geometry tier to host permission mode advice (default/dontAsk/acceptEdits) without owning OS sandbox.'}]}];function O(e){return p.find(r=>r.name===e.trim().toLowerCase())}i(O,"findRig");function M(){return`${["# prjct harness \u2014 rigs you can steal","","Adopt one as your Body's base: `prjct harness use <name>`.","",...p.map(e=>`- **${e.name}** \u2014 ${e.description}`)].join(`
11
+ `)}
12
+ `}i(M,"renderRigList");function x(e){return`${[`# prjct harness \u2014 adopt rig: ${e.name}`,"",e.description,`Source: ${e.source}`,"","Install its organs into prjct (owned in SQLite, then projected to your host):","",...e.organs.map(r=>`- **${r.organ}** \u2014 ${r.install}`),"","After adopting, the rig is YOURS: model-agnostic, owned in prjct, re-projected when you swap the Brain."].join(`
13
+ `)}
14
+ `}i(x,"renderRigAdoption");var P=["24h","7d","14d","30d"],E={"24h":864e5,"7d":7*864e5,"14d":14*864e5,"30d":30*864e5};function T(e){let r=e??"7d";if(P.some(s=>s===r))return r;throw new Error(`Invalid instruction window: ${r}. Use ${P.join("|")}.`)}i(T,"parseInstructionReportWindow");function F(e,r,s={}){let n=s.now??new Date,t=new Date(n.getTime()-E[r]),o=g.getWindowStats(e,t),a=o.total>0?"failures-observed":o.observedSessions>0?"zero-failures":"no-observability";return{window:r,since:t.toISOString(),state:a,total:o.total,attributed:o.attributed,attributionRate:o.total>0?o.attributed/o.total:0,open:o.open,resolved:o.resolved,falsePositive:o.falsePositive,falseTriggerRate:o.total>0?o.falsePositive/o.total:0,observedSessions:o.observedSessions,attributedSessions:o.attributedSessions,sessionAttributionRate:o.observedSessions>0?o.attributedSessions/o.observedSessions:0,legacyUnattributedInputs:o.legacyUnattributedInputs,guidanceActivations:o.guidanceActivations,groups:o.groups,unresolved:o.unresolved}}i(F,"buildInstructionFailureReport");var f=i(e=>`${(e*100).toFixed(1)}%`,"pct");function _(e){let r=e.state==="no-observability"?"No observed sessions in this window; zero failures would not be meaningful yet.":e.state==="zero-failures"?`Observed ${e.observedSessions} session(s) and found 0 instruction failures.`:`Found ${e.total} instruction failure(s) across ${e.observedSessions} observed session(s).`,s=e.groups.length===0?"_No grouped failures._":["| Runtime | Model | Category | Total | Open | Resolved | False positive |","|---|---|---|---:|---:|---:|---:|",...e.groups.map(t=>`| ${t.runtime} | ${t.model} | ${t.category} | ${t.total} | ${t.open} | ${t.resolved} | ${t.falsePositive} |`)].join(`
15
+ `),n=e.unresolved.length===0?"_No unresolved cases._":e.unresolved.map(t=>`- \`${t.id}\` ${t.runtime}/${t.model} \xB7 ${t.category}${t.relatedRuleId?` \xB7 rule \`${t.relatedRuleId}\``:""}: ${t.observedBehavior}`).join(`
16
+ `);return`# Instruction guidance report (${e.window})
17
+
18
+ ${r}
19
+
20
+ - Total: ${e.total}
21
+ - Attributed: ${e.attributed} (${f(e.attributionRate)})
22
+ - Session attribution: ${e.attributedSessions}/${e.observedSessions} (${f(e.sessionAttributionRate)})
23
+ - Open: ${e.open}
24
+ - Resolved: ${e.resolved}
25
+ - False positive: ${e.falsePositive}
26
+ - Guidance activations: ${e.guidanceActivations}
27
+ - False-trigger rate: ${f(e.falseTriggerRate)}
28
+ - Legacy unattributed inputs: ${e.legacyUnattributedInputs}
29
+
30
+ ## Groups
31
+
32
+ ${s}
33
+
34
+ ## Open cases
35
+
36
+ ${n}`}i(_,"renderInstructionFailureReportMd");N();var D=class extends v{static{i(this,"HarnessCommands")}async instructionDisposition(r,s,n=process.cwd()){try{if(!r||!s)throw new Error("Usage: prjct harness instructions set <id> <open|resolved|false-positive>.");let t=y.parse(s==="false-positive"?"false_positive":s),o=await u.getProjectId(n);return o?g.setDisposition(o,r,t)?(console.log(`Instruction failure ${r}: ${t.replace("_","-")}`),{success:!0,id:r,disposition:t}):{success:!1,error:`Instruction failure not found: ${r}`}:{success:!1,error:"No prjct project found in the current directory."}}catch(t){return{success:!1,error:d(t)}}}async instructions(r=null,s=process.cwd(),n={}){try{let t=T(r),o=await u.getProjectId(s);if(!o)return{success:!1,error:"No prjct project found in the current directory."};let a=F(o,t);return n.md?console.log(_(a)):console.log(`Instruction failures (${t}): ${a.total}; attributed ${a.attributed} (${(a.attributionRate*100).toFixed(1)}%); open ${a.open}; false-trigger ${(a.falseTriggerRate*100).toFixed(1)}%`),{success:!0,...a}}catch(t){return{success:!1,error:d(t)}}}async score(r=process.cwd(),s={}){try{let n=await $(r),t=j(),o=k(),{outcomesMd:a,outcomesLine:w,weakLine:m}=await(async()=>{try{let c=await u.getProjectId(r);if(!c)return{outcomesMd:null,outcomesLine:null,weakLine:null};let{buildDynastyOutcomes:l,renderDynastyOutcomesMd:L}=await import("./dynasty-outcomes-H2O546OL.mjs"),b=l(c),A=await u.readConfig(r),{effectiveWeakModelMode:W,weakModelOneLiner:G}=await import("./weak-model-mode-DH66XMD2.mjs");return{outcomesMd:L(b),outcomesLine:b.line,weakLine:W(A)==="on"?G():null}}catch{return{outcomesMd:null,outcomesLine:null,weakLine:null}}})();if(s.md){let c=I(t,{coverageMd:R(n),deltaMd:S(o),outcomesMd:a??void 0}),l=[m?`## Weak-model mode
37
+
38
+ ${m}`:""].filter(Boolean).join(`
39
+
40
+ `);console.log(l?`${c}
41
+
42
+ ${l}
43
+ `:c)}else{console.log(`Harness grade: ${t.grade}/5${t.programDone?" (done)":""}`),console.log(t.summary);for(let c of t.criteria){let l=c.status==="green"?"\u2713":c.status==="amber"?"\u25B3":"\u2717";console.log(` ${l} ${c.name}: ${c.score} \u2014 ${c.measured}`)}console.log(o.line),console.log(`Organic board: ${n.liveCount}/${n.detectedCount} live (${n.organicPct}%) \u2014 advisory`),w&&console.log(w),m&&console.log(m)}return{success:!0,grade:t.grade,programDone:t.programDone,criteria:t.criteria,organicPct:n.organicPct,liveRuntimes:n.liveCount,harnessDeltaPass:o.allGreen,intentDeltaPp:o.intentDeltaPp}}catch(n){return{success:!1,error:d(n)}}}async learnFrom(r=process.cwd(),s={}){try{let n=await u.getProjectId(r).then(o=>o?h.getCurrentTask(o):null).then(o=>o?.description??null).catch(()=>null),t=B(U.join(r,".git"));return console.log(C({activeCycle:n,hasGit:t})),{success:!0}}catch(n){return{success:!1,error:d(n)}}}async list(r={}){return console.log(M()),{success:!0}}async use(r,s=process.cwd(),n={}){if(!r)return console.error(`Usage: prjct harness use <rig>. Available: ${p.map(o=>o.name).join(", ")}.`),{success:!1,error:"missing rig name"};let t=O(r);return t?(console.log(x(t)),{success:!0}):(console.error(`Unknown rig: ${r}. Available: ${p.map(o=>o.name).join(", ")}.`),{success:!1,error:`unknown rig: ${r}`})}};export{D as HarnessCommands};
@@ -0,0 +1,11 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as M}from"./chunk-V5VCXMKO.mjs";import{e as h}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as p,p as $}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{f,l as g,p as D}from"./chunk-HYIT7MF5.mjs";import{e as d,g as k}from"./chunk-225DWS4D.mjs";import{a}from"./chunk-3TRXQAU4.mjs";k();$();D();import w from"node:path";var N=[{name:"typecheck",scriptName:"typecheck",description:"TypeScript types",weight:25},{name:"lint",scriptName:"lint",description:"Lint rules",weight:20},{name:"tests",scriptName:"test",description:"Test suite",weight:35},{name:"dead-code",scriptName:"knip",description:"Dead-code scan",weight:20}],y=class extends M{static{a(this,"HealthCommands")}async health(s=null,n=process.cwd(),t={}){try{let e=await this.ensureProjectInit(n);if(!e.success)return e;let o=await T(n),r=[];for(let u of o)r.push(await b(n,u));let c=E(r);return t.md?console.log(A(c,r)):console.log(x(c,r)),{success:r.every(u=>u.status!=="fail"),score:c,results:r.length}}catch(e){let o=d(e);return h(o)}}};async function T(i){let s=w.join(i,"package.json");if(!await g(s))return[];let t=(await f(s,null))?.scripts??{};return N.filter(e=>!!t[e.scriptName]).map(e=>({...e,command:t[e.scriptName]??null}))}a(T,"detectDimensions");var _=300*1e3;function R(){let i=process.env.PRJCT_HEALTH_DIM_TIMEOUT_MS,s=i?Number(i):Number.NaN;return Number.isFinite(s)&&s>0?s:_}a(R,"dimensionTimeoutMs");async function b(i,s){if(!s.command)return{dimension:s,status:"skipped",durationMs:0};let n=Date.now(),t=R(),e=w.join(i,"node_modules",".bin"),o={...process.env,PATH:`${e}:${process.env.PATH??""}`};try{return await p(s.command,{cwd:i,timeout:t,maxBuffer:16*1024*1024,env:o}),{dimension:s,status:"pass",durationMs:Date.now()-n}}catch(r){let c=r;if(c.killed)return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:`timed out after ${(t/1e3).toFixed(0)}s (raise via PRJCT_HEALTH_DIM_TIMEOUT_MS)`};let l=c.stderr??"",u=c.stdout??"",H=`${l}
8
+ ${u}`.split(`
9
+ `).map(m=>m.trim()).find(m=>m.length>0);return{dimension:s,status:"fail",durationMs:Date.now()-n,diagnostic:H??d(r)}}}a(b,"runDimension");function E(i){if(i.length===0)return 0;let{pts:s,denom:n}=i.reduce((t,e)=>e.status==="skipped"?t:{pts:t.pts+(e.status==="pass"?e.dimension.weight:0),denom:t.denom+e.dimension.weight},{pts:0,denom:0});return n===0?0:Math.round(s/n*100)}a(E,"computeScore");function I(i){return i==="pass"?"\u2713":i==="fail"?"\u2717":"\xB7"}a(I,"statusIcon");function x(i,s){if(s.length===0)return"health: no quality dimensions detected (add typecheck/lint/test/knip scripts to package.json)";let n=[];n.push(`health: ${i}/100`);for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?` \u2014 ${t.diagnostic.slice(0,80)}`:"";n.push(` ${I(t.status)} ${t.dimension.name.padEnd(10)} ${e}${o}`)}return n.join(`
10
+ `)}a(x,"formatText");function A(i,s){if(s.length===0)return"## Health\n\n_No quality dimensions detected. Add `typecheck`, `lint`, `test`, or `knip` scripts to `package.json`._\n";let n=[];n.push(`## Health \u2014 ${i}/100`),n.push(""),n.push("| Dimension | Status | Duration | Notes |"),n.push("|---|---|---|---|");for(let t of s){let e=t.durationMs>1e3?`${(t.durationMs/1e3).toFixed(1)}s`:`${t.durationMs}ms`,o=t.status==="fail"&&t.diagnostic?t.diagnostic.slice(0,100).replaceAll("|","\\|"):"";n.push(`| ${t.dimension.name} | ${t.status} | ${e} | ${o} |`)}return n.join(`
11
+ `)}a(A,"formatMarkdown");export{y as HealthCommands};
@@ -0,0 +1,14 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as u,b as i}from"./chunk-76YMLNLF.mjs";import{d as l,g as d}from"./chunk-TTN2CFZC.mjs";import"./chunk-225DWS4D.mjs";import{a as r}from"./chunk-3TRXQAU4.mjs";import n from"chalk";d();function c(){return i.filter(e=>!!e.usage?.terminal&&(e.routingMode==="bin-only"||!e.usage?.claude)&&e.surface!=="legacy"&&e.surface!=="internal")}r(c,"terminalCommands");var f=[{flag:"-q, --quiet",description:"Suppress all output (errors to stderr only)"},{flag:"-v, --version",description:"Show version and provider status"},{flag:"-h, --help",description:"Show this help message"}];function g(){let e=[];e.push(""),e.push(`${n.cyan.bold("prjct")} v${l} - The agentic harness for AI coding agents`),e.push(n.dim("Intent \u2192 context \u2192 execution \u2192 learning \u2192 performance improvement.")),e.push(""),e.push(n.bold("QUICK START")),e.push(n.dim("\u2500".repeat(60))),e.push(` ${n.green("1.")} prjct start ${n.dim("# Configure AI providers")}`),e.push(` ${n.green("2.")} cd my-project && prjct init`),e.push(` ${n.green("3.")} Open in Claude Code / Gemini CLI / Cursor`),e.push(` ${n.green("4.")} p. work "improve auth" ${n.dim("# Start a work cycle")}`),e.push(n.dim(' p. = the in-agent command router; from a shell use `prjct work "\u2026"` instead')),e.push(""),e.push(n.bold("TERMINAL COMMANDS")),e.push(n.dim("\u2500".repeat(60)));for(let t of c()){let o=`prjct ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}e.push(""),e.push(`${n.bold("AI AGENT COMMANDS")} ${n.dim("(inside Claude/Gemini/Cursor)")}`),e.push(n.dim("\u2500".repeat(60))),e.push(` ${"Command".padEnd(22)} Description`),e.push(` ${n.dim("\u2500".repeat(56))}`);let s=i.filter(t=>t.surface==="ai-agile"&&t.usage?.claude);for(let t of s.slice(0,10)){let o=`p. ${t.name}`.padEnd(22);e.push(` ${o} ${t.description}`)}s.length>10&&e.push(` ${n.dim(`... and ${s.length-10} more (run 'prjct help commands')`)}`),e.push(n.dim(' These also run from the terminal (`prjct work "\u2026"`) \u2014 see prjct help <command>.')),e.push(""),e.push(n.bold("FLAGS")),e.push(n.dim("\u2500".repeat(60)));for(let t of f)e.push(` ${t.flag.padEnd(22)} ${t.description}`);return e.push(""),e.push(n.dim(" Short flags are per-command: -v is --version globally but verbose in `prjct watch`;")),e.push(n.dim(" -f is force (stop/uninstall), follow (daemon logs) or foreground (daemon start);")),e.push(n.dim(" -n is dry-run (uninstall) but line count (daemon logs).")),e.push(""),e.push(n.bold("MORE INFO")),e.push(n.dim("\u2500".repeat(60))),e.push(` Documentation: ${n.cyan("https://prjct.app")}`),e.push(` GitHub: ${n.cyan("https://github.com/prjct-app/cli")}`),e.push(" Per-command: prjct help <command> (or: prjct <command> --help)"),e.push(""),e.join(`
8
+ `)}r(g,"formatMainHelp");function $(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r($,"manifestHelpTitle");function C(e){return e.usage?.claude?`p. ${e.name}`:`prjct ${e.name}`}r(C,"manifestListLabel");function b(e){let s=[];if(s.push(""),s.push(`${n.cyan.bold($(e))} - ${e.description}`),s.push(""),s.push(n.bold("USAGE")),e.usage?.claude&&s.push(` Claude/Gemini: ${e.usage.claude}`),e.usage?.terminal&&s.push(` Terminal: ${e.usage.terminal}`),s.push(""),e.params&&(s.push(n.bold("PARAMETERS")),s.push(` ${e.params}`),s.push("")),e.features&&e.features.length>0){s.push(n.bold("FEATURES"));for(let o of e.features)s.push(` \u2022 ${o}`);s.push("")}e.blockingRules&&(s.push(n.bold("REQUIREMENTS")),s.push(` ${n.yellow("\u26A0")} ${e.blockingRules.check}`),s.push(""));let t=u[e.group];return t&&(s.push(n.dim(`Category: ${t.title}`)),e.isOptional&&s.push(n.dim("This is an optional command.")),s.push("")),s.join(`
9
+ `)}r(b,"formatManifestCommandHelp");function y(e){let s=i.find(t=>t.name===e);return s?b(s):`
10
+ ${n.yellow(`Command '${e}' not found.`)}
11
+
12
+ Run 'prjct help' to see all available commands.
13
+ `}r(y,"formatCommandHelp");function j(){let e=[];e.push(""),e.push(n.cyan.bold("Harness Commands")),e.push("");let s=Object.entries(u).sort((t,o)=>t[1].order-o[1].order);for(let[t,o]of s){let p=i.filter(a=>a.group===t&&a.surface!=="legacy"&&a.surface!=="internal");if(p.length!==0){e.push(`${n.bold(o.title)} ${n.dim(`(${p.length} commands)`)}`),e.push(n.dim(o.description)),e.push("");for(let a of p){let m=C(a).padEnd(18),h=a.description.length>45?`${a.description.slice(0,42)}...`:a.description;e.push(` ${m} ${h}`)}e.push("")}}return e.push(n.dim("Run 'prjct help <command>' for detailed help on a specific command.")),e.push(""),e.join(`
14
+ `)}r(j,"formatCommandList");function S(e){return e?e==="commands"||e==="all"?j():y(e):g()}r(S,"getHelp");export{S as getHelp};
@@ -0,0 +1,91 @@
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{h as u}from"./chunk-ID2C2S33.mjs";import{b as d}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{f as m,i as L}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{l as a,p as x}from"./chunk-HYIT7MF5.mjs";import{e as w,g as B}from"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";import j from"node:fs/promises";import g from"node:path";import k from"chalk";L();B();x();x();import f from"node:fs/promises";import l from"node:path";function v(){return`# prjct sync --quiet --yes
8
+ if command -v node >/dev/null 2>&1; then
9
+ node <<'NODE' >/dev/null 2>&1 || true
10
+ const crypto = require('node:crypto')
11
+ const fs = require('node:fs')
12
+ const os = require('node:os')
13
+ const path = require('node:path')
14
+ const { spawn } = require('node:child_process')
15
+
16
+ const cwd = process.cwd()
17
+ const key = crypto.createHash('sha1').update(cwd).digest('hex')
18
+ const lockFile = path.join(os.tmpdir(), 'prjct-sync-' + key + '.lock')
19
+ const now = Date.now()
20
+
21
+ try {
22
+ const ageMs = now - fs.statSync(lockFile).mtimeMs
23
+ if (ageMs < 30_000) process.exit(0)
24
+ } catch {
25
+ // no lock yet
26
+ }
27
+
28
+ try {
29
+ fs.writeFileSync(lockFile, String(now))
30
+ } catch {
31
+ // best effort; sync is still allowed
32
+ }
33
+
34
+ const command = process.platform === 'win32' ? 'prjct.cmd' : 'prjct'
35
+ const child = spawn(command, ['sync', '--quiet', '--yes'], {
36
+ cwd,
37
+ detached: true,
38
+ stdio: 'ignore',
39
+ })
40
+ child.unref()
41
+ NODE
42
+ fi`}c(v,"getPortableSyncBody");function I(){return`#!/bin/sh
43
+ # prjct auto-sync hook (post-commit)
44
+ # Syncs project context after each commit
45
+ # Installed by: prjct hooks install
46
+
47
+ # prjct:auto-sync:start
48
+ ${v()}
49
+ # prjct:auto-sync:end
50
+
51
+ exit 0
52
+ `}c(I,"getPostCommitScript");function N(){return`#!/bin/sh
53
+ # prjct auto-sync hook (post-checkout)
54
+ # Syncs project context after branch switch
55
+ # Installed by: prjct hooks install
56
+
57
+ # prjct:auto-sync:start
58
+ # Only run on branch checkout (not file checkout)
59
+ # $3 is the checkout type flag: 1 = branch, 0 = file
60
+ if [ "$3" != "1" ]; then
61
+ exit 0
62
+ fi
63
+
64
+ # Skip if old and new refs are the same (no actual branch change)
65
+ if [ "$1" = "$2" ]; then
66
+ exit 0
67
+ fi
68
+
69
+ ${v()}
70
+ # prjct:auto-sync:end
71
+
72
+ exit 0
73
+ `}c(N,"getPostCheckoutScript");function O(s){return s.includes("prjct:auto-sync:start")||s.includes("prjct sync")}c(O,"hasPrjctAutoSync");function F(s){return s.replace(/\n?# prjct:auto-sync:start[\s\S]*?# prjct:auto-sync:end\n?/g,`
74
+ `).split(`
75
+ `).filter(e=>!e.includes("prjct sync")&&!e.includes("prjct auto-sync")).join(`
76
+ `)}c(F,"stripPrjctAutoSync");async function y(s){let t=[];return(await a(l.join(s,"lefthook.yml"))||await a(l.join(s,"lefthook.yaml")))&&t.push("lefthook"),(await a(l.join(s,".husky"))||await a(l.join(s,".husky","_")))&&t.push("husky"),await a(l.join(s,".git"))&&t.push("direct"),t}c(y,"detectHookManagers");function H(s){return s.includes("lefthook")?"lefthook":s.includes("husky")?"husky":"direct"}c(H,"selectStrategy");async function D(s,t){let e=await a(l.join(s,"lefthook.yml"))?"lefthook.yml":"lefthook.yaml",o=l.join(s,e),n=await f.readFile(o,"utf-8"),i=t.reduce((r,b)=>{let h=b,p=`prjct-sync-${b}`;if(r.includes(p))return r;let A=`
77
+ ${h}:
78
+ commands:
79
+ ${p}:
80
+ run: prjct sync --quiet --yes
81
+ fail_text: "prjct sync failed (non-blocking)"
82
+ `,_=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=new RegExp(`^${_}:\\s*$`,"m");return $.test(r)?r.replace($,`${h}:
83
+ commands:
84
+ ${p}:
85
+ run: prjct sync --quiet --yes
86
+ fail_text: "prjct sync failed (non-blocking)"`):`${r.trimEnd()}
87
+ ${A}`},n);return await f.writeFile(o,i,"utf-8"),!0}c(D,"installLefthook");async function P(s,t,e){e?.ensureDir&&!await a(s)&&await f.mkdir(s,{recursive:!0});for(let o of t){let n=l.join(s,o),i=o==="post-commit"?I():N();if(await a(n)){let r=await f.readFile(n,"utf-8");if(O(r))continue;await f.appendFile(n,`
88
+ ${i.split(`
89
+ `).slice(1).join(`
90
+ `)}`)}else await f.writeFile(n,i,{mode:493})}return!0}c(P,"installHookScriptInto");async function M(s,t){return P(l.join(s,".husky"),t)}c(M,"installHusky");async function C(s,t){return P(l.join(s,".git","hooks"),t,{ensureDir:!0})}c(C,"installDirect");async function R(s){let t=await a(l.join(s,"lefthook.yml"))?"lefthook.yml":"lefthook.yaml",e=l.join(s,t);if(!await a(e))return!1;let o=(await f.readFile(e,"utf-8")).replace(/\s*prjct-sync-[\w-]+:[\s\S]*?(?=\n\S|\n*$)/g,"").replace(/^(post-commit|post-checkout):\s*commands:\s*$/gm,"");return await f.writeFile(e,`${o.trimEnd()}
91
+ `,"utf-8"),!0}c(R,"uninstallLefthook");async function q(s){let t=l.join(s,".husky");for(let e of["post-commit","post-checkout"]){let o=l.join(t,e);if(!await a(o))continue;let n=await f.readFile(o,"utf-8");if(!n.includes("prjct sync"))continue;let i=F(n);i.trim()==="#!/bin/sh"||i.trim()==="#!/usr/bin/env sh"?await f.unlink(o):await f.writeFile(o,i,{mode:493})}return!0}c(q,"uninstallHusky");async function E(s){let t=l.join(s,".git","hooks");for(let e of["post-commit","post-checkout"]){let o=l.join(t,e);if(!await a(o))continue;let n=await f.readFile(o,"utf-8");if(n.includes("prjct sync"))if(n.includes("Installed by: prjct hooks install"))await f.unlink(o);else{let i=F(n);await f.writeFile(o,i,{mode:493})}}return!0}c(E,"uninstallDirect");var S=class{static{c(this,"HooksService")}async install(t,e={}){let o=e.hooks||["post-commit","post-checkout"],n=await y(t);if(n.length===0)return{success:!1,strategy:"direct",hooksInstalled:[],error:'Not a git repository. Run "git init" first.'};let i=e.strategy||H(n);try{let r=await(i==="lefthook"?D(t,o):i==="husky"?M(t,o):C(t,o));return r&&await this.saveHookConfig(t,{enabled:!0,strategy:i,hooks:o,installedAt:new Date().toISOString()}),{success:r,strategy:i,hooksInstalled:r?o:[]}}catch(r){return{success:!1,strategy:i,hooksInstalled:[],error:w(r)}}}async uninstall(t){try{let o=(await this.getHookConfig(t))?.strategy||"direct",n=await(o==="lefthook"?R(t):o==="husky"?q(t):E(t));return n&&await this.saveHookConfig(t,{enabled:!1,strategy:o,hooks:[]}),{success:n}}catch(e){return{success:!1,error:w(e)}}}async status(t){let e=await y(t),o=await this.getHookConfig(t),n=["post-commit","post-checkout"],i=await Promise.all(n.map(async r=>({name:r,installed:await this.isHookInstalled(t,r,o?.strategy||null),path:await this.getHookPath(t,r,o?.strategy||null)})));return{installed:i.some(r=>r.installed),strategy:o?.strategy||null,hooks:i,detectedManagers:e}}async run(t,e){if(!await d.getProjectId(t))return console.error('No prjct project found. Run "prjct init" first.'),1;switch(e){case"install":return this.runInstall(t);case"uninstall":return this.runUninstall(t);case"status":return this.runStatus(t);default:return this.runStatus(t)}}async runInstall(t){u.start(),u.section("Git Hooks Installation");let e=await y(t),o=H(e);console.log(` Strategy: ${k.cyan(o)}`),console.log(` Hooks: ${k.dim("post-commit, post-checkout")}`),console.log("");let n=await this.install(t,{strategy:o});if(n.success){u.done(`Hooks installed via ${n.strategy}`),console.log("");for(let i of n.hooksInstalled)console.log(` ${k.green("\u2713")} ${i}`);console.log(""),console.log(k.dim(" Context will auto-sync on commit and branch switch.")),console.log(k.dim(" Remove with: prjct hooks uninstall"))}else u.fail(n.error||"Failed to install hooks");return console.log(""),u.end(),n.success?0:1}async runUninstall(t){u.start(),u.section("Git Hooks Removal");let e=await this.uninstall(t);return e.success?u.done("Hooks removed"):u.fail(e.error||"Failed to remove hooks"),console.log(""),u.end(),e.success?0:1}async runStatus(t){u.start(),u.section("Git Hooks Status");let e=await this.status(t);e.installed?(console.log(` Status: ${k.green("Active")}`),console.log(` Strategy: ${k.cyan(e.strategy)}`)):console.log(` Status: ${k.dim("Not installed")}`),console.log("");for(let o of e.hooks){let n=o.installed?k.green("\u2713"):k.dim("\u25CB"),i=o.installed?o.name:k.dim(o.name);console.log(` ${n} ${i}`)}return e.detectedManagers.length>0&&(console.log(""),console.log(` ${k.dim("Available managers:")} ${e.detectedManagers.join(", ")}`)),e.installed||(console.log(""),console.log(k.dim(" Install with: prjct hooks install"))),console.log(""),u.end(),0}async isHookInstalled(t,e,o){if(o==="lefthook"){let i=await a(g.join(t,"lefthook.yml"))?"lefthook.yml":"lefthook.yaml",r=g.join(t,i);return await a(r)?(await j.readFile(r,"utf-8")).includes(`prjct-sync-${e}`):!1}if(o==="husky"){let i=g.join(t,".husky",e);return await a(i)?(await j.readFile(i,"utf-8")).includes("prjct sync"):!1}let n=g.join(t,".git","hooks",e);return await a(n)?(await j.readFile(n,"utf-8")).includes("prjct sync"):!1}async getHookPath(t,e,o){return o==="lefthook"?await a(g.join(t,"lefthook.yml"))?"lefthook.yml":"lefthook.yaml":o==="husky"?`.husky/${e}`:`.git/hooks/${e}`}async getHookConfig(t){let e=await d.getProjectId(t);if(!e)return null;try{let o=m.getDoc(e,"project");return o&&o.hooks||null}catch{return null}}async saveHookConfig(t,e){let o=await d.getProjectId(t);if(o)try{let n=m.getDoc(o,"project")||{};n.hooks=e,m.setDoc(o,"project",n)}catch{}}},it=new S;export{it as hooksService};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{a as i}from"./chunk-3TRXQAU4.mjs";import p from"node:fs";import u from"node:path";var a="ts|tsx|js|jsx|mjs|cjs|mts|cts|py|go|rs|vue|svelte|css|scss|less|json|md|sql|yml|yaml|toml|swift|kt|java|rb|php|sh",f=new RegExp(String.raw`(?:^|[\s\`"'(:=\[])((?:\.\.?\/)?(?:[\w.@+-]+\/)+[\w.@+-]+\.(?:${a}))\b`,"gi"),m=/(?:^|\/)(?:node_modules|dist|\.git|build|coverage|vendor|\.next|\.turbo)(?:\/|$)/i,x=/^(?:src|core|app|apps|lib|packages|components|hooks|routes|server|services|domain|bin|scripts|tests?|__tests__)\//,w=["src","core","packages","components","hooks","routes","server","services","domain","bin","scripts","lib","test","tests","__tests__"];function T(t){let s=l(t.tags?.file);if(s)return s;let e=R(t.tags?.files);if(e)return e;let n=t.content??"";if(!n.trim())return null;let r=_(n),g=(t.cycleFiles??[]).map(l).filter(o=>!!o);for(let o of g){let c=u.basename(o);c.length>=3&&E(n,c)&&r.unshift(o)}return r.length===0?null:h(r).map(o=>({path:o,score:b(o,t.projectPath,n)})).filter(o=>o.score>0).sort((o,c)=>c.score-o.score||c.path.length-o.path.length)[0]?.path??null}i(T,"inferMemoryFileTag");var d=new RegExp(String.raw`(?:^|[\s\`"'(:=\[])(\/(?:[\w.@+-]+\/)+[\w.@+-]+\.(?:${a}))\b`,"gi");function _(t){let s=[];f.lastIndex=0;for(let e of t.matchAll(f)){let n=l(e[1]);n&&s.push(n)}d.lastIndex=0;for(let e of t.matchAll(d)){let n=l(e[1]);n&&s.push(n)}return h(s)}i(_,"extractRepoRelativePaths");function b(t,s,e){if(m.test(t)||t.includes("://"))return 0;let n=[1,x.test(t)?3:0];if(e.includes(`\`${t}\``)&&n.push(2),s)try{let r=u.isAbsolute(t)?t:u.join(s,t);n.push(p.existsSync(r)&&p.statSync(r).isFile()?6:-1)}catch{}return n.push(Math.min(3,t.split("/").length-1)),n.reduce((r,g)=>r+g,0)}i(b,"scoreCandidate");function R(t){if(!t)return null;for(let s of t.split(",")){let e=l(s);if(e)return e}return null}i(R,"firstFromCommaList");function l(t){if(!t)return null;let n=t.trim().replace(/\\/g,"/").replace(/^['"`]+|['"`]+$/g,"").replace(/^\.\//,""),r=u.isAbsolute(n)||n.startsWith("/")?y(n):n;return!r||m.test(r)||!r.includes("/")||!new RegExp(String.raw`\.(?:${a})$`,"i").test(r)?null:r}i(l,"cleanPath");function y(t){let s=t.toLowerCase(),e=w.map(n=>s.indexOf(`/${n}/`)).filter(n=>n>=0).sort((n,r)=>n-r).map(n=>t.slice(n+1))[0];return e&&new RegExp(String.raw`\.(?:${a})$`,"i").test(e)?e:null}i(y,"stripAbsoluteToStrongRelative");function E(t,s){return new RegExp(`(^|[^\\w.-])${S(s)}([^\\w.-]|$)`,"i").test(t)}i(E,"contentIncludesBasename");function S(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(S,"escapeRegExp");function h(t){let s=new Set,e=[];for(let n of t){let r=n.toLowerCase();s.has(r)||(s.add(r),e.push(n))}return e}i(h,"dedupePaths");export{_ as extractRepoRelativePaths,T as inferMemoryFileTag};
@@ -0,0 +1,9 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{c as ae,d as re}from"./chunk-6FFOWWH2.mjs";import{a as ne,b as se}from"./chunk-V3Y3G2DE.mjs";import{e as X,f as Y}from"./chunk-5ONMON5L.mjs";import{c as Z,d as ee}from"./chunk-SLYLGDX7.mjs";import{e as oe,f as te}from"./chunk-3FXNIJCS.mjs";import{a as V}from"./chunk-V5VCXMKO.mjs";import{e as S,f as F}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import{a as I}from"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import{c as Q,d as q}from"./chunk-R7LLMJDP.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as o}from"./chunk-ID2C2S33.mjs";import{b as N}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import{c as T,d as z,e as J,f as U}from"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{e as A}from"./chunk-JPMUJY42.mjs";import{b as _}from"./chunk-WZXUFSVT.mjs";import{d as B}from"./chunk-CDLZLTRY.mjs";import{c as E}from"./chunk-CEOTHJIY.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{d as L}from"./chunk-KWC2PCPC.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import{b}from"./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-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{e as D}from"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as H,g as pe}from"./chunk-225DWS4D.mjs";import{a as K}from"./chunk-3TRXQAU4.mjs";pe();var ie=class extends V{static{K(this,"InstallCommands")}async install(W=null,C=process.cwd(),$={}){try{let t=await z(),m=await N.readConfig(C).catch(()=>null),s=(await A(C)).filter(e=>e.detected),f=[...new Set(["claude",...s.map(e=>e.runtime.id)])],n=m?.projectId?await I(C,{explicit:!0,agents:f}):null,R=s.some(e=>e.runtime.id==="codex"),i=R?await D():null,a=R?await X():null,r=s.some(e=>e.runtime.id==="gemini")?await oe():null,d=s.some(e=>e.runtime.id==="cursor")?await Z():null,j=s.some(e=>e.runtime.id==="kimi-cli"),v=j?await Q():null,l=j?await ae():null,w=s.some(e=>e.runtime.id==="grok"),c=w?await b():null,u=w?await L():null,p=w?await _():null,P=s.some(e=>e.runtime.id==="opencode")?await B():null,k=s.some(e=>e.runtime.id==="pi")?await E():null,g=await ne(C),G=T.length,de=t.hooksPruned>0?`, ${t.hooksPruned} retired removed`:"",le=`installed Claude hooks adapter: ${t.hooksWritten} new, ${t.alreadyPresent} already present${de} (total ${G} hooks)`,ce=[a||i?"codex":null,r?"gemini":null,d?"cursor":null,v?"kimi":null,c||u?.success||p?.success?"grok":null,P?"opencode":null,k?.success?"pi":null,"claude"].filter(e=>!!e),M=await import("./weak-frontier-demo-5C4FR3OA.mjs").then(({computeHarnessDelta:e})=>e().line).catch(()=>null),{buildOneBreathReport:me}=await import("./one-breath-install-LVNIVN6S.mjs"),y=me({claudeHooksNew:t.hooksWritten,claudeHooksPresent:t.alreadyPresent,projectSurface:!!n,runtimesWired:[...new Set(ce)],liveCount:g.liveCount,detectedCount:g.detectedCount,organicPct:g.organicPct,deltaLine:M});if($.md)console.log([y.md,"## Universal project surface",n?`- PRJCT.md: ${n.prjctMd.action}`:"- skipped: not inside an initialized prjct project",...n?[`- AGENTS.md: ${n.agentsMd.action}`]:[],...n?.claudeMd&&n.claudeMd.action!=="unchanged"?[`- CLAUDE.md adapter: ${n.claudeMd.action}`]:[],...n?.ideRules.length?n.ideRules.map(e=>`- project rule adapter: \`${e}\``):[],...i?[`- Codex MCP: ${i.skipped==="user-managed"?"user-managed preserved":i.changed?"updated":"already ready"}`,`- Codex status line: ${i.statusLineChanged?"installed":"already configured"}`]:[],...a?[`- Codex hooks: ${a.hooksWritten} new, ${a.alreadyPresent} present, ${a.hooksPruned} pruned \u2192 \`${a.hooksPath}\``,`- Codex features.hooks: ${a.featuresChanged?"enabled":"already on"}`]:[],...r?[`- Gemini MCP: ${r.mcpChanged?"updated":"already ready"}`,`- Gemini hooks: ${r.hooksWritten} new, ${r.alreadyPresent} present, ${r.hooksPruned} pruned \u2192 \`${r.settingsPath}\``]:[],...d?[`- Cursor hooks: ${d.hooksWritten} new, ${d.alreadyPresent} present, ${d.hooksPruned} pruned \u2192 \`${d.hooksPath}\``]:[],...v?[`- Kimi config: ${v.changed?"updated":"already ready"}`]:[],...l?[`- Kimi hooks: ${l.hooksWritten} new, ${l.alreadyPresent} present, ${l.hooksPruned} pruned \u2192 \`${l.configPath}\` (apply on next Kimi session or after \`/reload\`)`]:[],...c?[`- Grok MCP: ${c.skipped==="user-managed"?"user-managed preserved":c.changed?"updated":"already ready"} \u2192 \`${c.path}\``]:[],...u?.success?[`- Grok skill: ${u.action??"ready"}${u.path?` \u2192 \`${u.path}\``:""}`]:[],...p?.success?[`- Grok plugin: ${p.changed?`updated (${p.files.join(", ")||"files"})`:"already ready"} \u2192 \`${p.path}\``]:[],...P?[`- OpenCode MCP: ${P.changed?"updated":"already ready"} \u2192 \`${P.path}\``]:[],...k?.success?[`- Pi skill: ${k.action??"ready"}${k.path?` \u2192 \`${k.path}\``:""}`]:[],"","## Claude hooks adapter",`Wrote to \`${t.settingsPath}\`.`,"",`- new: ${t.hooksWritten}`,`- already present: ${t.alreadyPresent}`,`- retired removed: ${t.hooksPruned}`,`- total expected: ${G}`,"","## Runtime detection",...s.map(e=>`- ${e.runtime.displayName}: ${e.supportLevel}`),"",se(g),"> One install \xB7 one SQLite brain \xB7 every agent surface. That is the moat \u2014 not more skills.","> OpenCode: native MCP. Pi: native skill (no MCP). Grok: MCP+skill; hooks via Claude compat. Codex/Gemini/Cursor: native adapters.","> Gaps? `prjct doctor --fix`. Only managed entries were touched."].join(`
8
+ `));else{if(o.done(y.line),o.info(le),o.info(`settings: ${t.settingsPath}`),n){o.info(`AGENTS.md: ${n.agentsMd.action}`);for(let e of n.ideRules)o.info(`adapter: ${e}`)}else o.info("project surface: skipped (not inside an initialized prjct project)");if(i){let e=i.skipped==="user-managed"?"user-managed MCP preserved":i.changed?"updated":"already ready";o.info(`Codex MCP: ${e}`),o.info(`Codex status line: ${i.statusLineChanged?"installed":"already configured"}`)}if(a&&(o.info(`Codex hooks: ${a.hooksWritten} new, ${a.alreadyPresent} present \u2192 ${a.hooksPath}`),o.info(`Codex features.hooks: ${a.featuresChanged?"enabled":"already on"}`)),r&&(o.info(`Gemini MCP: ${r.mcpChanged?"updated":"already ready"}`),o.info(`Gemini hooks: ${r.hooksWritten} new, ${r.alreadyPresent} present \u2192 ${r.settingsPath}`)),d&&o.info(`Cursor hooks: ${d.hooksWritten} new, ${d.alreadyPresent} present \u2192 ${d.hooksPath}`),v&&o.info(`Kimi config: ${v.changed?"updated":"already ready"}`),l&&o.info(`Kimi hooks: ${l.hooksWritten} new, ${l.alreadyPresent} present \u2192 ${l.configPath} (apply on next Kimi session or after /reload)`),c){let e=c.skipped==="user-managed"?"user-managed MCP preserved":c.changed?"updated":"already ready";o.info(`Grok MCP: ${e} \u2192 ${c.path}`)}u?.success&&o.info(`Grok skill: ${u.action??"ready"}${u.path?` \u2192 ${u.path}`:""}`),p?.success&&o.info(`Grok plugin: ${p.changed?"updated":"already ready"} \u2192 ${p.path}`),P&&o.info(`OpenCode MCP: ${P.changed?"updated":"already ready"} \u2192 ${P.path}`),k?.success&&o.info(`Pi skill: ${k.action??"ready"}${k.path?` \u2192 ${k.path}`:""}`),o.info(`Organic board: ${g.liveCount}/${g.detectedCount} live (${g.organicPct}%)`),M&&o.info(M),y.organicOk||o.info("Organic gaps remain \u2014 run `prjct doctor --fix`");try{let{planCleanup:e}=await import("./cleanup-installs-WHXUGAHM.mjs"),x=e();if(x.removable.length>0){let ue=x.removable.map(O=>`${O.pm}@${O.version}`).join(", ");o.info(`Parallel installs detected (winner=${x.winner??"?"}): ${ue} \u2014 run \`prjct update\` to consolidate`)}}catch{}}return{success:!0,hooksWritten:t.hooksWritten,projectSurface:n?.agentsMd.action??"skipped",detectedRuntimes:s.length,organicPct:g.organicPct,liveRuntimes:g.liveCount,oneBreath:y.line,organicOk:y.organicOk,codexConfig:i?{path:i.path,changed:i.changed,skipped:i.skipped,statusLineChanged:i.statusLineChanged??!1}:null,codexHooks:a?{path:a.hooksPath,hooksWritten:a.hooksWritten,alreadyPresent:a.alreadyPresent,featuresChanged:a.featuresChanged}:null,geminiConfig:r?{path:r.settingsPath,mcpChanged:r.mcpChanged,hooksWritten:r.hooksWritten,alreadyPresent:r.alreadyPresent}:null,cursorHooks:d?{path:d.hooksPath,hooksWritten:d.hooksWritten,alreadyPresent:d.alreadyPresent}:null,kimiConfig:v?{path:v.path,changed:v.changed}:null,kimiHooks:l?{path:l.configPath,hooksWritten:l.hooksWritten,alreadyPresent:l.alreadyPresent,hooksPruned:l.hooksPruned}:null,grokConfig:c?{path:c.path,changed:c.changed,skipped:c.skipped}:null,grokSkill:u?.success?{action:u.action,path:u.path}:null,grokPlugin:p?.success?{path:p.path,changed:p.changed,files:p.files}:null}}catch(t){let m=H(t);return S(m)}}async uninstall(W=null,C=process.cwd(),$={}){try{let t=await J(),m=await Y().catch(()=>({hooksPath:"",hooksRemoved:0})),h=await te().catch(()=>({settingsPath:"",hooksRemoved:0,mcpRemoved:!1})),s=await ee().catch(()=>({hooksPath:"",hooksRemoved:0})),f=await q().catch(()=>({paths:[],serversRemoved:0})),n=await re().catch(()=>({configPath:"",hooksRemoved:0})),R=`removed ${t.hooksRemoved} Claude prjct hook(s)${m.hooksRemoved>0?`, ${m.hooksRemoved} Codex hook(s)`:""}${h.hooksRemoved>0||h.mcpRemoved?", Gemini cleaned":""}${s.hooksRemoved>0?`, ${s.hooksRemoved} Cursor hook(s)`:""}${f.serversRemoved>0?`, ${f.serversRemoved} Kimi MCP server(s)`:""}${n.hooksRemoved>0?`, ${n.hooksRemoved} Kimi hook(s)`:""}`;return $.md?console.log(["# prjct hooks removed","",`- Claude: ${t.hooksRemoved} (\`${t.settingsPath}\`)`,...m.hooksRemoved>0?[`- Codex: ${m.hooksRemoved} (\`${m.hooksPath}\`)`]:[],...h.hooksRemoved>0||h.mcpRemoved?[`- Gemini: ${h.hooksRemoved} hook(s)${h.mcpRemoved?", MCP removed":""} (\`${h.settingsPath}\`)`]:[],...s.hooksRemoved>0?[`- Cursor: ${s.hooksRemoved} (\`${s.hooksPath}\`)`]:[],...f.serversRemoved>0?[`- Kimi: ${f.serversRemoved} MCP server(s) (${f.paths.map(i=>`\`${i}\``).join(", ")})`]:[],...n.hooksRemoved>0?[`- Kimi: ${n.hooksRemoved} hook(s) (\`${n.configPath}\`)`]:[],""].join(`
9
+ `)):o.done(R),{success:!0,hooksRemoved:t.hooksRemoved,codexHooksRemoved:m.hooksRemoved,geminiHooksRemoved:h.hooksRemoved,geminiMcpRemoved:h.mcpRemoved,cursorHooksRemoved:s.hooksRemoved,kimiMcpServersRemoved:f.serversRemoved,kimiHooksRemoved:n.hooksRemoved}}catch(t){let m=H(t);return S(m)}}async status(W=null,C=process.cwd()){try{let $=await U();return{success:!0,installed:$.installed,expected:$.expected}}catch($){return F($)}}};export{ie as InstallCommands};