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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prjct-cli",
3
- "version": "3.95.0",
3
+ "version": "3.97.0",
4
4
  "description": "The agentic harness for AI coding agents — work cycles, bounded RAG context, persistent memory, guardrails, and performance evals.",
5
5
  "main": "dist/bin/prjct.mjs",
6
6
  "bin": {
@@ -14,16 +14,15 @@
14
14
  "build": "node scripts/build.js",
15
15
  "build:node": "node scripts/build.js",
16
16
  "release": "node scripts/release.js",
17
- "release:patch": "node scripts/release.js patch",
18
- "release:minor": "node scripts/release.js minor",
19
- "release:major": "node scripts/release.js major",
17
+ "release:dry-run": "node scripts/release.js --dry-run",
20
18
  "prepare": "lefthook install",
21
19
  "update-commands": "bun -e \"const installer = require('./core/infrastructure/command-installer'); installer.syncCommands().then(r => console.log('Commands updated:', r)).catch(e => console.error('Error:', e.message))\"",
22
20
  "install-global": "./scripts/install.sh",
23
21
  "update": "./scripts/update.sh",
24
22
  "test": "bun test",
25
23
  "test:unit": "bun test --path-ignore-patterns='**/e2e/**'",
26
- "test:fast": "bun test --path-ignore-patterns='**/e2e/**' --dots",
24
+ "test:fast": "bun scripts/test-sharded.ts",
25
+ "test:sharded": "bun scripts/test-sharded.ts",
27
26
  "test:watch": "bun test --watch",
28
27
  "test:coverage": "bun test --coverage",
29
28
  "typecheck": "tsc --noEmit -p core/tsconfig.json",
@@ -109,7 +108,7 @@
109
108
  "url": "https://github.com/prjct-app/cli/issues"
110
109
  },
111
110
  "homepage": "https://prjct.app",
112
- "packageManager": "bun@1.2.23",
111
+ "packageManager": "bun@1.3.14",
113
112
  "engines": {
114
113
  "bun": ">=1.0.0",
115
114
  "node": ">=22.5.0"
@@ -1,505 +1,37 @@
1
- #!/bin/bash
2
-
3
- # ⚠️ DEPRECATED: This installation method is deprecated
4
- # Use npm instead: npm install -g prjct-cli
1
+ #!/bin/sh
5
2
  #
6
- # This script is kept for backward compatibility only.
7
-
8
- # Colors
9
- YELLOW='\033[1;33m'
10
- CYAN='\033[0;36m'
11
- GREEN='\033[0;32m'
12
- RED='\033[0;31m'
13
- BOLD='\033[1m'
14
- DIM='\033[2m'
15
- NC='\033[0m'
16
-
17
- # Check if legacy installation exists
18
- LEGACY_DIR="$HOME/.prjct-cli"
19
- HAS_LEGACY=false
20
- LEGACY_VERSION="unknown"
21
-
22
- if [ -d "$LEGACY_DIR" ]; then
23
- # Check if it's a git clone (legacy curl install)
24
- if [ -d "$LEGACY_DIR/.git" ]; then
25
- HAS_LEGACY=true
26
- if [ -f "$LEGACY_DIR/package.json" ]; then
27
- LEGACY_VERSION=$(grep -o '"version":[[:space:]]*"[^"]*"' "$LEGACY_DIR/package.json" | head -1 | cut -d'"' -f4)
28
- fi
29
- fi
30
- fi
31
-
32
- echo ""
33
- echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
34
- echo -e "${YELLOW}⚠️ This installation method is DEPRECATED${NC}"
35
- echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
36
- echo ""
37
-
38
- if [ "$HAS_LEGACY" = true ]; then
39
- echo -e "${RED}⚠️ Legacy curl installation detected!${NC}"
40
- echo ""
41
- echo -e " ${DIM}Version: ${LEGACY_VERSION}${NC}"
42
- echo -e " ${DIM}Location: ~/.prjct-cli/${NC}"
43
- echo ""
44
- echo -e "${CYAN}Migration Required:${NC}"
45
- echo ""
46
- echo -e " 1. ${BOLD}Install via npm:${NC}"
47
- echo -e " ${GREEN}npm install -g prjct-cli${NC}"
48
- echo ""
49
- echo -e " 2. ${BOLD}Automatic cleanup:${NC}"
50
- echo -e " ${DIM}Legacy installation will be cleaned automatically${NC}"
51
- echo -e " ${DIM}Your project data will be preserved${NC}"
52
- echo ""
53
- else
54
- echo -e "${CYAN}Please install using npm:${NC}"
55
- echo ""
56
- echo -e " ${GREEN}npm install -g prjct-cli${NC}"
57
- echo ""
58
- fi
59
-
60
- echo -e "${BOLD}Benefits of npm installation:${NC}"
61
- echo -e " • ${CYAN}Automatic cleanup${NC} - Removes old curl installations"
62
- echo -e " • ${CYAN}Data preservation${NC} - Your projects are migrated safely"
63
- echo -e " • ${CYAN}Easy updates${NC} - Just npm update -g prjct-cli"
64
- echo -e " • ${CYAN}Proper versioning${NC} - npm handles everything"
65
- echo ""
66
- echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
67
- echo ""
68
- exit 1
69
-
70
- # Original install.sh preserved below (not executed)
71
- # ------------------------------------------------
72
-
73
- set -e
74
-
75
- # Show help if requested
76
- show_help() {
77
- echo "prjct/cli installer"
78
- echo ""
79
- echo "Usage:"
80
- echo " curl -fsSL https://prjct.app/install.sh | bash [OPTIONS]"
81
- echo " bash install.sh [OPTIONS]"
82
- echo ""
83
- echo "Options:"
84
- echo " --force Force reinstall even if up to date"
85
- echo " --dev Install from development branch"
86
- echo " --silent Silent mode (minimal output)"
87
- echo " -y, --yes Auto-accept all prompts"
88
- echo " --help, -h Show this help message"
89
- echo ""
90
- echo "Examples:"
91
- echo " # Normal installation"
92
- echo " curl -fsSL https://prjct.app/install.sh | bash"
93
- echo ""
94
- echo " # Force reinstall"
95
- echo " curl -fsSL https://prjct.app/install.sh | bash -s -- --force"
96
- echo ""
97
- echo " # Auto-accept all prompts"
98
- echo " curl -fsSL https://prjct.app/install.sh | bash -s -- -y"
99
- exit 0
100
- }
101
-
102
- # Parse arguments
103
- FORCE_INSTALL=false
104
- DEV_MODE=false
105
- SILENT_MODE=false
106
- AUTO_ACCEPT=false
107
-
108
- for arg in "$@"; do
109
- case $arg in
110
- --help|-h)
111
- show_help
112
- ;;
113
- --force)
114
- FORCE_INSTALL=true
115
- shift
116
- ;;
117
- --dev)
118
- DEV_MODE=true
119
- shift
120
- ;;
121
- --silent)
122
- SILENT_MODE=true
123
- shift
124
- ;;
125
- -y|--yes)
126
- AUTO_ACCEPT=true
127
- shift
128
- ;;
129
- *)
130
- ;;
131
- esac
132
- done
133
-
134
- # Detect if being run in a pipe
135
- if [ ! -t 0 ]; then
136
- AUTO_ACCEPT=true
137
- fi
138
-
139
- # Colors and formatting
140
- RED='\033[0;31m'
141
- GREEN='\033[0;32m'
142
- YELLOW='\033[1;33m'
143
- BLUE='\033[0;34m'
144
- MAGENTA='\033[0;35m'
145
- CYAN='\033[0;36m'
146
- WHITE='\033[1;37m'
147
- NC='\033[0m'
148
- BOLD='\033[1m'
149
- DIM='\033[2m'
150
-
151
- # Unicode characters
152
- CHECK="✓"
153
- CROSS="✗"
154
- ARROW="▸"
155
- DOT="•"
156
-
157
- # Clear for clean experience
158
- clear
159
-
160
- # Clean header with Catppuccin colors
161
- echo ""
162
- echo ""
163
- echo -e " ${BOLD}${CYAN}██████╗ ██████╗ ██╗ ██████╗████████╗${NC}"
164
- echo -e " ${BOLD}${CYAN}██╔══██╗██╔══██╗ ██║██╔════╝╚══██╔══╝${NC}"
165
- echo -e " ${BOLD}${CYAN}██████╔╝██████╔╝ ██║██║ ██║${NC}"
166
- echo -e " ${BOLD}${CYAN}██╔═══╝ ██╔══██╗██ ██║██║ ██║${NC}"
167
- echo -e " ${BOLD}${CYAN}██║ ██║ ██║╚█████╔╝╚██████╗ ██║${NC}"
168
- echo -e " ${BOLD}${CYAN}╚═╝ ╚═╝ ╚═╝ ╚════╝ ╚═════╝ ╚═╝${NC}"
169
- echo -e " ${BOLD}${CYAN}prjct${NC}${MAGENTA}/${NC}${GREEN}cli${NC} ${DIM}${WHITE}v0.8.1${NC}"
170
- echo ""
171
- echo -e " ${DIM}Turn ideas into AI-ready roadmaps${NC}"
172
- echo ""
173
- echo -e " ${YELLOW}⚡${NC} Ship faster with zero friction"
174
- echo -e " ${GREEN}📝${NC} From idea to technical tasks in minutes"
175
- echo -e " ${BLUE}🤖${NC} Perfect context for AI agents"
176
- echo ""
177
- echo ""
178
-
179
- # Spinner function
180
- spin() {
181
- local pid=$1
182
- local delay=0.1
183
- local spinstr='⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏'
184
- while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
185
- local temp=${spinstr#?}
186
- printf " [%c] " "$spinstr"
187
- local spinstr=$temp${spinstr%"$temp"}
188
- sleep $delay
189
- printf "\b\b\b\b\b\b"
190
- done
191
- printf " \b\b\b\b"
192
- }
193
-
194
- # Step counter
195
- STEP=1
196
- TOTAL_STEPS=5
197
-
198
- print_step() {
199
- echo -e "\n${BOLD}${CYAN}[$STEP/$TOTAL_STEPS]${NC} ${BOLD}$1${NC}"
200
- ((STEP++))
201
- }
202
-
203
- # Installation directory
204
- INSTALL_DIR="$HOME/.prjct-cli"
205
-
206
- # Version check function
207
- get_version() {
208
- if [ -f "$1/package.json" ]; then
209
- grep -o '"version":[[:space:]]*"[^"]*"' "$1/package.json" | head -1 | cut -d'"' -f4
210
- else
211
- echo "unknown"
212
- fi
213
- }
214
-
215
- # Check prerequisites
216
- print_step "Checking prerequisites"
217
-
218
- # Check Node.js
219
- printf " ${ARROW} Checking Node.js..."
220
- if ! command -v node &> /dev/null; then
221
- echo -e " ${RED}${CROSS}${NC}"
222
- echo -e "\n ${RED}Node.js is required but not installed.${NC}"
223
- echo -e " Install from: ${CYAN}https://nodejs.org${NC}"
224
- exit 1
225
- fi
226
-
227
- NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
228
- if [ "$NODE_VERSION" -lt 18 ]; then
229
- echo -e " ${RED}${CROSS}${NC}"
230
- echo -e "\n ${RED}Node.js 18+ is required (found v$NODE_VERSION)${NC}"
231
- exit 1
232
- fi
233
- echo -e " ${GREEN}${CHECK}${NC} $(node --version)"
234
-
235
- # Check Git
236
- printf " ${ARROW} Checking Git..."
237
- if ! command -v git &> /dev/null; then
238
- echo -e " ${RED}${CROSS}${NC}"
239
- echo -e "\n ${RED}Git is required but not installed.${NC}"
240
- echo -e " Install from: ${CYAN}https://git-scm.com${NC}"
241
- exit 1
242
- fi
243
- echo -e " ${GREEN}${CHECK}${NC} $(git --version | cut -d' ' -f3)"
244
-
245
- # Clone or update repository
246
- print_step "Downloading prjct/cli"
247
-
248
- if [ -d "$INSTALL_DIR" ]; then
249
- # Check current version
250
- CURRENT_VERSION=$(get_version "$INSTALL_DIR")
251
- printf " ${ARROW} Found existing installation"
252
- echo -e " ${DIM}(v${CURRENT_VERSION})${NC}"
253
-
254
- # Fetch latest version from remote
255
- printf " ${ARROW} Checking for updates..."
256
- cd "$INSTALL_DIR"
257
- git fetch origin main --quiet > /dev/null 2>&1
258
-
259
- # Get remote version
260
- TEMP_DIR=$(mktemp -d)
261
- git show origin/main:package.json > "$TEMP_DIR/package.json" 2>/dev/null
262
- REMOTE_VERSION=$(get_version "$TEMP_DIR")
263
- rm -rf "$TEMP_DIR"
264
-
265
- if [ "$CURRENT_VERSION" = "$REMOTE_VERSION" ] && [ "$FORCE_INSTALL" = false ]; then
266
- echo -e " ${GREEN}${CHECK}${NC} Already up to date (v${CURRENT_VERSION})"
267
-
268
- # Ask if they want to reinstall anyway
269
- if [ "$AUTO_ACCEPT" = false ]; then
270
- echo ""
271
- read -p " Do you want to reinstall anyway? (y/N): " -n 1 -r
272
- echo ""
273
- if [[ ! $REPLY =~ ^[Yy]$ ]]; then
274
- echo -e "\n${GREEN}✨ You're all set! Happy shipping! 🚀${NC}"
275
- exit 0
276
- fi
277
- else
278
- echo -e "\n${GREEN}✨ You're all set! Happy shipping! 🚀${NC}"
279
- exit 0
280
- fi
281
- elif [ "$CURRENT_VERSION" = "$REMOTE_VERSION" ] && [ "$FORCE_INSTALL" = true ]; then
282
- echo -e " ${YELLOW}!${NC} Force reinstalling (v${CURRENT_VERSION})"
283
- else
284
- echo -e " ${YELLOW}Update available!${NC}"
285
- echo -e " Current: v${CURRENT_VERSION}"
286
- echo -e " Latest: v${REMOTE_VERSION}"
287
-
288
- if [ "$AUTO_ACCEPT" = false ]; then
289
- echo ""
290
- read -p " Update to v${REMOTE_VERSION}? (Y/n): " -n 1 -r
291
- echo ""
292
- if [[ $REPLY =~ ^[Nn]$ ]]; then
293
- echo -e "\n${YELLOW}Update cancelled.${NC}"
294
- exit 0
295
- fi
296
- else
297
- echo -e " ${DIM}Auto-updating...${NC}"
298
- fi
299
- fi
300
-
301
- # Perform update
302
- printf " ${ARROW} Updating prjct/cli"
303
- (
304
- git pull origin main --quiet > /dev/null 2>&1
305
- ) &
306
- spin $!
307
- echo -e " ${GREEN}${CHECK}${NC} Updated to v${REMOTE_VERSION}"
308
-
309
- # Auto-update commands after git pull
310
- printf " ${ARROW} Updating commands"
311
- (
312
- cd "$INSTALL_DIR"
313
- node -e "
314
- const installer = require('./core/infrastructure/command-installer');
315
- installer.updateCommands();
316
- " > /dev/null 2>&1
317
- ) &
318
- spin $!
319
- echo -e " ${GREEN}${CHECK}${NC} Commands synchronized"
320
- else
321
- printf " ${ARROW} Cloning repository"
322
- (
323
- git clone https://github.com/prjct-app/cli.git "$INSTALL_DIR" --quiet > /dev/null 2>&1
324
- ) &
325
- spin $!
326
-
327
- # Get installed version
328
- NEW_VERSION=$(get_version "$INSTALL_DIR")
329
- echo -e " ${GREEN}${CHECK}${NC} Installed v${NEW_VERSION}"
330
- cd "$INSTALL_DIR"
331
- fi
332
-
333
- # Run setup script
334
- print_step "Running setup"
335
-
336
- printf " ${ARROW} Installing components"
337
- chmod +x scripts/setup.sh
338
- [ -f scripts/interactive-install.js ] && chmod +x scripts/interactive-install.js
339
- (
340
- ./scripts/setup.sh > /tmp/prjct-setup.log 2>&1
341
- ) &
342
- spin $!
343
-
344
- if [ $? -eq 0 ]; then
345
- echo -e " ${GREEN}${CHECK}${NC}"
346
- else
347
- echo -e " ${RED}${CROSS}${NC}"
348
- echo -e "\n ${RED}Setup failed. Check /tmp/prjct-setup.log for details${NC}"
349
- exit 1
350
- fi
351
-
352
- # Install commands to AI editors
353
- print_step "Configuring AI platforms"
354
-
355
- cd "$INSTALL_DIR"
356
-
357
- # Check if we should use interactive mode
358
- if [ "$AUTO_ACCEPT" = false ]; then
359
- # Interactive mode: Let user select editors
360
- printf " ${ARROW} Launching interactive editor selection...\n"
361
-
362
- # Run interactive installer with Node.js
363
- INSTALL_OUTPUT=$(node scripts/interactive-install.js 2>&1)
364
- INSTALL_EXIT=$?
365
-
366
- if [ $INSTALL_EXIT -eq 0 ]; then
367
- # Parse JSON result from between markers
368
- RESULT_JSON=$(echo "$INSTALL_OUTPUT" | sed -n '/__RESULT_START__/,/__RESULT_END__/p' | grep -v '__RESULT_')
369
-
370
- # Extract summary info
371
- EDITORS_INSTALLED=$(echo "$RESULT_JSON" | grep -o '"editors":\s*\[[^]]*\]' | sed 's/"editors":\s*\[\(.*\)\]/\1/' | tr -d '"' | tr ',' ' ')
372
- TOTAL_INSTALLED=$(echo "$RESULT_JSON" | grep -o '"totalInstalled":\s*[0-9]*' | grep -o '[0-9]*')
373
-
374
- echo ""
375
- echo -e " ${GREEN}${CHECK}${NC} Commands installed successfully!"
376
- echo -e " ${GREEN}📦${NC} Editors: ${CYAN}${EDITORS_INSTALLED}${NC}"
377
- echo -e " ${GREEN}📝${NC} Commands: ${CYAN}${TOTAL_INSTALLED}${NC}"
378
- else
379
- echo -e " ${RED}${CROSS}${NC} Installation failed"
380
- echo "$INSTALL_OUTPUT" | grep -v '__RESULT_'
381
- exit 1
382
- fi
383
- else
384
- # Non-interactive mode: Install to all detected editors
385
- printf " ${ARROW} Auto-installing to all detected editors...\n"
386
-
387
- INSTALL_RESULT=$(node -e "
388
- const installer = require('./core/infrastructure/command-installer');
389
- installer.installToAll(false).then(result => {
390
- console.log('__RESULT_START__');
391
- console.log(JSON.stringify(result));
392
- console.log('__RESULT_END__');
393
- process.exit(result.success ? 0 : 1);
394
- }).catch(err => {
395
- console.error(err.message);
396
- process.exit(1);
397
- });
398
- " 2>&1)
399
-
400
- INSTALL_EXIT=$?
3
+ # ⚠️ DEPRECATED this installer is now a thin redirect.
4
+ #
5
+ # The real installer lives in scripts/install-standalone.sh. This stub is
6
+ # kept so old docs/links that reference install.sh keep working: it prints
7
+ # a deprecation notice and hands off to install-standalone.sh, passing all
8
+ # arguments through.
9
+ #
10
+ # Preferred install: npm install -g prjct-cli
11
+ #
12
+ # POSIX sh.
401
13
 
402
- if [ $INSTALL_EXIT -eq 0 ]; then
403
- # Parse result
404
- RESULT_JSON=$(echo "$INSTALL_RESULT" | sed -n '/__RESULT_START__/,/__RESULT_END__/p' | grep -v '__RESULT_')
405
- EDITORS_INSTALLED=$(echo "$RESULT_JSON" | grep -o '"editors":\s*\[[^]]*\]' | sed 's/"editors":\s*\[\(.*\)\]/\1/' | tr -d '"' | tr ',' ' ')
406
- TOTAL_INSTALLED=$(echo "$RESULT_JSON" | grep -o '"totalInstalled":\s*[0-9]*' | grep -o '[0-9]*')
14
+ set -eu
407
15
 
408
- echo -e " ${GREEN}${CHECK}${NC} Installed to: ${CYAN}${EDITORS_INSTALLED}${NC}"
409
- echo -e " ${GREEN}📝${NC} Commands: ${CYAN}${TOTAL_INSTALLED}${NC}"
410
- else
411
- echo -e " ${RED}${CROSS}${NC} Auto-installation failed"
412
- echo "$INSTALL_RESULT"
413
- fi
414
- fi
16
+ printf '\n'
17
+ printf '%s\n' "⚠️ install.sh is DEPRECATED — redirecting to install-standalone.sh"
18
+ printf '%s\n' " (preferred: npm install -g prjct-cli)"
19
+ printf '\n'
415
20
 
416
- # Configure PATH
417
- print_step "Setting up environment"
21
+ # When run from a repo checkout, the real installer is a sibling of this
22
+ # script. Otherwise (e.g. curl | sh from an old link, or the npm tarball,
23
+ # which only ships this stub) fetch it from GitHub.
24
+ SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
25
+ TARGET="$SCRIPT_DIR/install-standalone.sh"
418
26
 
419
- # Detect shell
420
- printf " ${ARROW} Configuring shell..."
421
- if [ -n "$ZSH_VERSION" ]; then
422
- SHELL_CONFIG="$HOME/.zshrc"
423
- SHELL_NAME="zsh"
424
- elif [ -n "$BASH_VERSION" ]; then
425
- SHELL_CONFIG="$HOME/.bashrc"
426
- SHELL_NAME="bash"
427
- else
428
- SHELL_CONFIG="$HOME/.profile"
429
- SHELL_NAME="sh"
27
+ if [ -f "$TARGET" ]; then
28
+ exec bash "$TARGET" "$@"
430
29
  fi
431
30
 
432
- # Add to PATH
433
- if ! grep -q "prjct-cli/bin" "$SHELL_CONFIG" 2>/dev/null; then
434
- echo "" >> "$SHELL_CONFIG"
435
- echo "# prjct/cli" >> "$SHELL_CONFIG"
436
- echo "export PATH=\"\$HOME/.prjct-cli/bin:\$PATH\"" >> "$SHELL_CONFIG"
437
- echo -e " ${GREEN}${CHECK}${NC} ($SHELL_NAME)"
31
+ if command -v curl >/dev/null 2>&1; then
32
+ curl -sSL https://raw.githubusercontent.com/prjct-app/cli/main/scripts/install-standalone.sh | bash -s -- "$@"
438
33
  else
439
- echo -e " ${GREEN}${CHECK}${NC} (already configured)"
34
+ printf '%s\n' " install-standalone.sh not found locally and curl is unavailable." >&2
35
+ printf '%s\n' " Install via npm instead: npm install -g prjct-cli" >&2
36
+ exit 1
440
37
  fi
441
-
442
- # Create symlink
443
- mkdir -p "$HOME/.local/bin"
444
- ln -sf "$INSTALL_DIR/bin/prjct" "$HOME/.local/bin/prjct" 2>/dev/null || true
445
-
446
- # Get final installed version for display
447
- FINAL_VERSION=$(get_version "$INSTALL_DIR")
448
-
449
- # Success message - clean style
450
- echo ""
451
- echo ""
452
- echo -e " ${GREEN}✅${NC} ${BOLD}Installation Complete!${NC} ${GREEN}🎉${NC}"
453
- echo ""
454
- echo -e " ${BOLD}${CYAN}██████╗ ██████╗ ██╗ ██████╗████████╗${NC}"
455
- echo -e " ${BOLD}${CYAN}██╔══██╗██╔══██╗ ██║██╔════╝╚══██╔══╝${NC}"
456
- echo -e " ${BOLD}${CYAN}██████╔╝██████╔╝ ██║██║ ██║${NC}"
457
- echo -e " ${BOLD}${CYAN}██╔═══╝ ██╔══██╗██ ██║██║ ██║${NC}"
458
- echo -e " ${BOLD}${CYAN}██║ ██║ ██║╚█████╔╝╚██████╗ ██║${NC}"
459
- echo -e " ${BOLD}${CYAN}╚═╝ ╚═╝ ╚═╝ ╚════╝ ╚═════╝ ╚═╝${NC}"
460
- echo ""
461
- echo -e " ${BOLD}${CYAN}prjct${NC}${MAGENTA}/${NC}${GREEN}cli${NC} ${DIM}${WHITE}v${FINAL_VERSION} installed${NC}"
462
- echo ""
463
-
464
- # Quick start guide
465
- echo -e "${BOLD}${CYAN}🚀 Quick Start${NC}"
466
- echo -e "${DIM}─────────────────────────────────────────────────${NC}"
467
- echo ""
468
-
469
- # Show commands based on detected platforms
470
- if [ -d "$HOME/.claude" ]; then
471
- echo -e " ${BOLD}Claude Code Commands:${NC}"
472
- echo -e " ${GREEN}p. init${NC} ${DIM}Initialize project${NC}"
473
- echo -e " ${GREEN}p. task${NC} ${DIM}Start or show active task${NC}"
474
- echo -e " ${GREEN}p. ship${NC} ${DIM}Ship & celebrate${NC}"
475
- echo ""
476
- fi
477
-
478
- echo -e " ${BOLD}Terminal Commands:${NC}"
479
- echo -e " ${GREEN}prjct init${NC} ${DIM}Initialize project${NC}"
480
- echo -e " ${GREEN}prjct task${NC} ${DIM}Start or show active task${NC}"
481
- echo -e " ${GREEN}prjct ship${NC} ${DIM}Ship & celebrate${NC}"
482
-
483
- echo ""
484
- echo -e "${DIM}─────────────────────────────────────────────────${NC}"
485
- echo ""
486
-
487
- # Next steps
488
- echo -e "${BOLD}${YELLOW}⚡ Next Steps${NC}"
489
- echo ""
490
- echo -e " 1. ${DIM}Reload your terminal:${NC}"
491
- echo -e " ${CYAN}source $SHELL_CONFIG${NC}"
492
- echo ""
493
- echo -e " 2. ${DIM}Initialize your project:${NC}"
494
- echo -e " ${CYAN}cd your-project && prjct init${NC}"
495
- echo ""
496
- echo -e " 3. ${DIM}Start shipping:${NC}"
497
- echo -e " ${CYAN}prjct task \"build awesome feature\"${NC}"
498
- echo ""
499
- echo -e "${DIM}─────────────────────────────────────────────────${NC}"
500
- echo ""
501
- echo -e " ${DIM}Documentation:${NC} ${CYAN}https://github.com/prjct-app/cli${NC}"
502
- echo -e " ${DIM}Report issues:${NC} ${CYAN}https://github.com/prjct-app/cli/issues${NC}"
503
- echo ""
504
- echo -e "${BOLD}${MAGENTA}Happy shipping! 🚀${NC}"
505
- echo ""
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __createRequire } from 'module';
3
- import { fileURLToPath as __fileURLToPath } from 'url';
4
- import { dirname as __pathDirname } from 'path';
5
- const require = __createRequire(import.meta.url);
6
- const __filename = __fileURLToPath(import.meta.url);
7
- const __dirname = __pathDirname(__filename);
8
- import{p as g,t as L,u as M}from"./chunk-A6K4H3YT.mjs";import{a as O,b as i,c as S}from"./chunk-JQE2F2RK.mjs";import{i as k,k as E,o as C}from"./chunk-UH4MD3F3.mjs";import{c as D}from"./chunk-FW4MEPTB.mjs";import{a as A}from"./chunk-SYHDEUVU.mjs";import{d as N,e as G}from"./chunk-GCDLPKOH.mjs";import{e as c,f as R}from"./chunk-BUDZL4DW.mjs";import{a,e as b}from"./chunk-E66B27AL.mjs";R();C();M();import o from"node:fs/promises";import n from"node:path";import j from"node:fs/promises";import T from"node:path";R();C();var y='<!-- prjct:start - DO NOT REMOVE THIS MARKER -->\n# p/ \u2014 Project knowledge layer\n\nprjct stores project memory (decisions, learnings, gotchas, patterns, ships, analyses) per project in SQLite and serves it to you through tools. **Query it \u2014 don\'t re-read source from scratch.**\n\nprjct remembers and shows the path; it does not own execution. Treat prjct output as durable signals (task state, memories, specs, workflows, risks, recent learnings). Claude, GPT, and other agents decide the concrete HOW with their own native tools and judgment, then persist meaningful outcomes back to prjct.\n\nYou are in a prjct project when `.prjct/` is in cwd OR `~/.prjct-cli/projects/` has an entry for the current path.\n\n## Lookup FIRST, source LAST\n\nBefore reading source code or running broad searches for ANY question about the project (architecture, conventions, decisions, recent ships, bugs, patterns, tech debt, past analyses), QUERY prjct first \u2014 bounded, ranked answers from SQLite, no markdown trees to wade through:\n\n- `prjct context memory <topic>` / `prjct search "<q>"` \u2014 captured decisions, gotchas, learnings, facts\n- `prjct context --md` \u2014 current state: active cycle, ships, recent learnings\n- architecture / conventions / patterns / anti-patterns / tech-debt / insights \u2192 MCP `prjct_analysis` (add `mode:archive` for history)\n- developer preferences \u2192 MCP `prjct_developer`; machine signals \u2192 MCP `prjct_signals`\n- specs \u2192 MCP `prjct_spec_list` / `prjct_spec_get`; per-file traps before editing \u2192 `prjct guard <file>`\n\nOnly fall through to source/repo reading when prjct does not contain the answer.\n\n**Skill \u2260 project identity.** The prjct skill is a portable multi-LLM contract (L0). Live name/stack/branch come from SessionStart + `prjct context --md` for **this cwd**. If skill text and the tree disagree, trust the cwd and the tree.\n\n## Capture analyses BACK to prjct\n\nWhen you complete substantive work \u2014 analysis, decision, learning, gotcha \u2014 persist it: `prjct remember <decision|learning|gotcha|fact> "..."` or `prjct capture "<text>" --tags k:v`. **Author every entry in ENGLISH**, whatever language the user speaks. **Default to capturing \u2014 under-capture is the failure mode that makes prjct useless.** The full verb map and task workflow live in the `prjct` skill.\n\n## Where things live\n\n- Source of truth: SQLite at `~/.prjct-cli/projects/<id>/` (don\'t read directly \u2014 use `prjct` CLI / MCP tools)\n- Project config: `.prjct/prjct.config.json` in repo root\n\n**Auto-managed by prjct-cli** | https://prjct.app\n<!-- prjct:end - DO NOT REMOVE THIS MARKER -->\n';async function P(){let u=(M(),b(L)),t=await u.getActiveProvider(),e=t.name;if(!(await u.detectProvider(e)).installed&&!t.configDir)return{success:!1,error:`${t.displayName} not detected`,action:"skipped"};try{await j.mkdir(t.configDir,{recursive:!0});let s=T.join(t.configDir,t.contextFile),m=await(async()=>{if(e==="claude")return y;let d=D(`global/${t.contextFile}`);if(d)return d;let{PACKAGE_ROOT:f}=(G(),b(N)),I=T.join(f,"templates","global",t.contextFile);return j.readFile(I,"utf-8").catch(()=>e==="gemini"?y.replace(/Claude/g,"Gemini"):y)})(),r=await k(s),p="<!-- prjct-project:start - DO NOT REMOVE THIS MARKER -->",h="<!-- prjct-project:end - DO NOT REMOVE THIS MARKER -->",x=(()=>{if(!r.content.includes(p)||!r.content.includes(h))return r.content;let d=r.content.substring(0,r.content.indexOf(p)),f=r.content.substring(r.content.indexOf(h)+h.length);return`${(d+f).replace(/\n{3,}/g,`
9
-
10
- `).trim()}
11
- `})(),w=A(r.exists?x:"",m,"<!-- prjct:start - DO NOT REMOVE THIS MARKER -->","<!-- prjct:end - DO NOT REMOVE THIS MARKER -->");return await j.writeFile(s,w.content,"utf-8"),{success:!0,action:w.action,path:s}}catch(s){return{success:!1,error:c(s),action:"failed"}}}a(P,"installGlobalConfig");S();async function rt(){return P()}a(rt,"installGlobalConfig");var v=class{static{a(this,"CommandInstaller")}commandsPath="";configPath="";_initialized=!1;async ensureInit(){if(this._initialized)return;let t=await g();this.configPath=t.configDir??"",this.commandsPath=this.configPath?n.join(this.configPath,"commands"):"",this._initialized=!0}async detectActiveProvider(){return await this.ensureInit(),E(this.configPath)}async installCommands(){let t=await this.detectActiveProvider(),e=await g();return t?(await this.cleanupRouter(),{success:!0,installed:[],path:this.commandsPath}):{success:!1,error:`${e.displayName} not detected. Please install it first.`}}async uninstallCommands(){try{let t=[];await this.ensureInit();for(let e of["p.md","p.toml"]){let l=n.join(this.commandsPath,e);try{await o.unlink(l),t.push(e)}catch(s){if(s.code!=="ENOENT")return{success:!1,error:c(s)}}}return{success:!0,uninstalled:t}}catch(t){return{success:!1,error:c(t)}}}async checkInstallation(){return await this.detectActiveProvider()?{installed:!0,providerDetected:!0,commands:[],path:this.commandsPath}:{installed:!1,providerDetected:!1}}async getInstallPath(){return await this.ensureInit(),this.commandsPath}async syncCommands(){if(!await this.detectActiveProvider())return{success:!1,error:"AI agent not detected",added:0,updated:0,removed:0};try{return{success:!0,added:0,updated:0,removed:await this.cleanupRouter()?1:0}}catch(e){return{success:!1,error:c(e),added:0,updated:0,removed:0}}}async cleanupRouter(){return await this.ensureInit(),(await Promise.all(["p.md","p.toml"].map(async e=>{try{return await o.unlink(n.join(this.commandsPath,e)),!0}catch{return!1}}))).some(Boolean)}async cleanupLegacyCommands(){await this.ensureInit();let t=n.join(this.commandsPath,"p");try{if((await o.stat(t).catch(()=>null))?.isDirectory())return await o.rm(t,{recursive:!0,force:!0}),!0}catch{}return!1}async installGlobalConfig(){return P()}async cleanupAllLegacy(){let t=O(),e=[],l=[n.join(t,".claude","commands","p.md"),n.join(t,".claude","commands","p.toml"),n.join(t,".gemini","commands","p.md"),n.join(t,".gemini","commands","p.toml")];for(let r of l)try{await o.unlink(r),e.push(r)}catch{}let s=[n.join(t,".claude","commands","p"),n.join(t,".gemini","commands","p")];for(let r of s)try{(await o.stat(r).catch(()=>null))?.isDirectory()&&(await o.rm(r,{recursive:!0,force:!0}),e.push(r))}catch{}let m=[n.join(t,".prjct-cli","config","homebrew-migrated")];for(let r of m)try{await o.unlink(r),e.push(r)}catch{}return{cleaned:e}}};function nt(){return{claude:{commands:i(".claude","commands"),config:i(".claude"),router:i(".claude","commands","p.md")},gemini:{commands:i(".gemini","commands"),config:i(".gemini"),router:i(".gemini","commands","p.toml")}}}a(nt,"getProviderPaths");var _=new v,st=_;export{rt as a,v as b,nt as c,st as d};
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __createRequire } from 'module';
3
- import { fileURLToPath as __fileURLToPath } from 'url';
4
- import { dirname as __pathDirname } from 'path';
5
- const require = __createRequire(import.meta.url);
6
- const __filename = __fileURLToPath(import.meta.url);
7
- const __dirname = __pathDirname(__filename);
8
- import{d as u,g as L}from"./chunk-UHVYBU7F.mjs";import{b as f,h as P}from"./chunk-A6K4H3YT.mjs";import{a as c}from"./chunk-E66B27AL.mjs";P();L();function b(t,e,n){let s=t.prepare("INSERT INTO analysis_finding (id, analysis_id, kind, title, detail, severity, sort_order) VALUES (?, ?, ?, ?, ?, ?, ?)"),o=[],i=c((a,m,p,j)=>{if(!m)return;let k=o.length,S=`${e}-f${k}`;s.run(S,e,a,m,p,j,k),o.push(S)},"addFinding");for(let a of n.patterns??[])i("pattern",a.name,a.description,null);for(let a of n.antiPatterns??[])i("anti_pattern",a.issue,a.suggestion,a.severity);for(let a of n.techDebt??[])i("tech_debt",a.description,`${a.area}: ${a.impact}`,a.priority);for(let a of n.riskAreas??[])i("risk_area",a.path,`${a.reason} \u2014 ${a.risk}`,a.severity);for(let a of n.refactorSuggestions??[])i("refactor",a.description,a.benefit,null);for(let a of n.projectInsights??[])i("insight",a,null,null);for(let a of n.architecture?.insights??[])i("insight",a,null,null);let l=t.prepare("INSERT INTO analysis_convention (id, analysis_id, rule, sort_order) VALUES (?, ?, ?, ?)");(n.conventions??[]).forEach((a,m)=>{l.run(`${e}-c${m}`,e,a.rule,m)});let g=t.prepare("INSERT INTO analysis_stack_item (id, analysis_id, kind, name) VALUES (?, ?, ?, ?)");[...(n.stack?.languages??[]).map(a=>({kind:"language",name:a})),...(n.stack?.frameworks??[]).map(a=>({kind:"framework",name:a}))].forEach((a,m)=>{g.run(`${e}-s${m}`,e,a.kind,a.name)});let d=t.prepare("INSERT INTO analysis_command (id, analysis_id, name, command, purpose) VALUES (?, ?, ?, ?, ?)");Object.entries(n.commands??{}).filter(a=>!!a[1]).forEach(([a,m],p)=>{d.run(`${e}-cmd${p}`,e,a,m,null)});let v=t.prepare("INSERT INTO analysis_domain (id, analysis_id, name, paths) VALUES (?, ?, ?, ?)");(n.architecture?.domains??[]).forEach((a,m)=>{v.run(`${e}-d${m}`,e,a,null)})}c(b,"writeAnalysisChildren");var h=class{static{c(this,"LLMAnalysisStorage")}save(e,n){let s=u.getDb(e),o=f();s.transaction(()=>{s.prepare("UPDATE llm_analysis SET status = 'superseded', superseded_at = ? WHERE status = 'active'").run(o);let i=s.prepare("INSERT INTO llm_analysis (commit_hash, status, analysis, analyzed_at) VALUES (?, ?, ?, ?)").run(n.commitHash??null,"active",JSON.stringify(n),n.analyzedAt);b(s,String(i.lastInsertRowid),n)})()}getActiveRelational(e){let n=u.get(e,"SELECT id FROM llm_analysis WHERE status = 'active' LIMIT 1");if(!n)return null;let s=String(n.id),o=u.query(e,"SELECT kind, title, detail FROM analysis_finding WHERE analysis_id = ? ORDER BY kind, sort_order",s),i=u.query(e,"SELECT rule FROM analysis_convention WHERE analysis_id = ? ORDER BY sort_order",s).map(d=>d.rule),l=u.query(e,"SELECT kind, name FROM analysis_stack_item WHERE analysis_id = ?",s),g=u.query(e,"SELECT name FROM analysis_domain WHERE analysis_id = ?",s).map(d=>d.name),r=u.query(e,"SELECT name, command FROM analysis_command WHERE analysis_id = ?",s);return o.length===0&&i.length===0&&l.length===0?null:{findings:o,conventions:i,stack:l,domains:g,commands:r}}getActive(e){let n=u.get(e,"SELECT analysis FROM llm_analysis WHERE status = 'active' LIMIT 1");return n?JSON.parse(n.analysis):null}getActiveSummary(e){let n=this.getActive(e);return n?{commitHash:n.commitHash,architectureStyle:n.architecture.style,patternCount:n.patterns.length,antiPatternCount:n.antiPatterns.length,analyzedAt:n.analyzedAt}:null}isCurrent(e,n){return n?u.get(e,"SELECT commit_hash FROM llm_analysis WHERE status = 'active' LIMIT 1")?.commit_hash===n:!1}getAllFull(e){return u.query(e,"SELECT id, commit_hash, status, analyzed_at, superseded_at, analysis FROM llm_analysis ORDER BY id DESC").map(s=>({id:s.id,status:s.status,commitHash:s.commit_hash,analyzedAt:s.analyzed_at,supersededAt:s.superseded_at,analysis:JSON.parse(s.analysis)}))}getHistory(e,n=10){return u.query(e,"SELECT id, commit_hash, status, analyzed_at, analysis FROM llm_analysis ORDER BY id DESC LIMIT ?",n).map(o=>{let i=JSON.parse(o.analysis);return{id:o.id,commitHash:o.commit_hash,status:o.status,analyzedAt:o.analyzed_at,patternCount:i.patterns.length}})}},C=new h,B=C;P();var R=["zod","better-sqlite3","@modelcontextprotocol/sdk","@modelcontextprotocol/client","@modelcontextprotocol/server","chalk","chokidar","commander","express","fastify","hono","react","next","vue","vitest","jest","typescript","biome","lefthook","drizzle-orm","prisma","@prisma/client"];function y(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"item"}c(y,"stableStyleKey");function _(t){return t?!!(t.architecture?.style&&t.architecture.style!=="unknown"||(t.patterns?.length??0)>0||(t.conventions?.length??0)>0||(t.antiPatterns?.length??0)>0||(t.stack?.frameworks?.length??0)>0||(t.stack?.languages?.length??0)>0):!1}c(_,"isRichLlmAnalysis");function W(t){return!_(t)}c(W,"isThinLlmAnalysis");function M(t){let e=T(t),n=w(t.commands),s=_(t.llmAnalysis)?t.llmAnalysis:null,o=z(s?.conventions?.map(r=>({key:y(r.category?`${r.category}-${r.rule}`:r.rule),rule:r.rule,category:r.category}))??[],t.memoryConventions?.map(r=>({key:y(r.category?`${r.category}-${r.rule}`:r.rule),rule:r.rule,category:r.category}))??[]),i=D(s?.patterns?.map(r=>({key:y(r.name),name:r.name,description:r.description,locations:r.locations,category:r.category}))??[],t.memoryPatterns?.map(r=>({key:y(r.name),name:r.name,description:r.description}))??[]),l=N(s?.antiPatterns?.map(r=>({key:y(r.issue),issue:r.issue,suggestion:r.suggestion,severity:r.severity}))??[],t.memoryAntiPatterns?.map(r=>({key:y(r.issue),issue:r.issue,suggestion:r.suggestion}))??[]);if(s?.stack?.languages?.length)for(let r of s.stack.languages)e.languages.includes(r)||e.languages.push(r);if(s?.stack?.frameworks?.length)for(let r of s.stack.frameworks)e.frameworks.includes(r)||e.frameworks.push(r);s?.stack?.packageManager&&!e.packageManager&&(e.packageManager=s.stack.packageManager);let g={symbols:t.structural?.symbols??0,files:t.structural?.files??t.stats.fileCount??0,packages:t.structural?.packages??[]};return{payloadVersion:1,stack:e,commands:n,conventions:o,patterns:i,antiPatterns:l,structural:g,metrics:{...t.metrics??{}}}}c(M,"buildProjectStylePayload");function J(t){let e=M(t),n=t.capturedAt??f();return{id:t.id??`style_${n.replace(/[^0-9]/g,"").slice(0,14)}_${Math.random().toString(36).slice(2,8)}`,capturedAt:n,commitHash:t.commitHash??null,source:t.source??"sync-mechanical",patternCount:e.patterns.length,antiPatternCount:e.antiPatterns.length,conventionCount:e.conventions.length,frameworkCount:e.stack.frameworks.length,symbolCount:e.structural.symbols,fileCount:e.structural.files,summary:$(e),payload:e}}c(J,"buildProjectStyleSnapshot");function $(t){let e=[t.stack.ecosystem!=="unknown"?t.stack.ecosystem:null,t.stack.languages.slice(0,2).join("+")||null,t.stack.frameworks.slice(0,3).join(", ")||null].filter(Boolean);return`${e.length>0?e.join(" \xB7 "):"stack unknown"}; ${t.patterns.length} patterns, ${t.antiPatterns.length} anti-patterns, ${t.conventions.length} conventions; ${t.structural.files} files`+(t.structural.symbols>0?`, ${t.structural.symbols} symbols`:"")}c($,"buildStyleSummary");function T(t){let e=A([...t.stack.frameworks??[],...t.stats.frameworks??[]]),n=A([...t.stats.languages??[]]),s=x(t.packageDeps??{}),o=t.packageDeps??{};for(let l of s)["Hono","Express","Fastify","React","Next.js","Vue","NestJS"].includes(l)&&!e.includes(l)&&e.push(l);let i=t.stack.hasTesting===!0||!!(o.vitest||o.jest||o.mocha||o["bun-types"]||o["@types/bun"]||s.includes("Vitest")||s.includes("Jest"))||!!(t.commands?.test&&/test/i.test(t.commands.test));return{ecosystem:t.stats.ecosystem||"unknown",languages:n,frameworks:e,packageManager:t.packageManager??void 0,keyLibraries:s,hasTests:i,hasDocker:t.stack.hasDocker===!0}}c(T,"buildStack");function w(t){return t?{test:t.test,lint:t.lint,build:t.build,dev:t.dev,install:t.install,format:t.format}:{}}c(w,"buildCommands");function x(t){let e=new Set;for(let n of R)t[n]&&e.add(O(n));return[...e].slice(0,16)}c(x,"collectKeyLibraries");function O(t){return{hono:"Hono",express:"Express",fastify:"Fastify",react:"React",next:"Next.js",vue:"Vue",vitest:"Vitest",jest:"Jest",typescript:"TypeScript",zod:"Zod","better-sqlite3":"better-sqlite3","@modelcontextprotocol/sdk":"MCP SDK","@modelcontextprotocol/client":"MCP SDK","@modelcontextprotocol/server":"MCP SDK",biome:"Biome",lefthook:"Lefthook","drizzle-orm":"Drizzle",prisma:"Prisma","@prisma/client":"Prisma"}[t]??t}c(O,"displayLibName");function z(t,e){let n=new Map;for(let s of[...t,...e])n.has(s.key)||n.set(s.key,s);return[...n.values()].slice(0,40)}c(z,"mergeConventions");function D(t,e){let n=new Map;for(let s of[...t,...e])n.has(s.key)||n.set(s.key,s);return[...n.values()].slice(0,40)}c(D,"mergePatterns");function N(t,e){let n=new Map;for(let s of[...t,...e])n.has(s.key)||n.set(s.key,s);return[...n.values()].slice(0,40)}c(N,"mergeAntiPatterns");function A(t){let e=[],n=new Set;for(let s of t){let o=s.trim();if(!o)continue;let i=o.toLowerCase();n.has(i)||(n.add(i),e.push(o))}return e}c(A,"unique");function U(t,e={}){if(!t)return null;let n=e.maxConventions??5,s=e.maxPatterns??4,o=e.maxAnti??3,i=t.payload,l=["## How this repo works (project style)",""],g=[i.stack.ecosystem!=="unknown"?i.stack.ecosystem:null,i.stack.languages.join(", ")||null,i.stack.frameworks.join(", ")||null,i.stack.keyLibraries.slice(0,6).join(", ")||null].filter(Boolean);if(g.length>0&&l.push(`**Stack:** ${g.join(" \xB7 ")}`),i.conventions.length>0){l.push("","**Conventions (match):**");for(let r of i.conventions.slice(0,n))l.push(`- ${r.rule}`)}if(i.patterns.length>0){l.push("","**Patterns (match):**");for(let r of i.patterns.slice(0,s))l.push(`- **${r.name}** \u2014 ${E(r.description,120)}`)}if(i.antiPatterns.length>0){l.push("","**Anti-patterns (avoid):**");for(let r of i.antiPatterns.slice(0,o))l.push(`- ${r.issue}${r.suggestion?` \u2192 ${E(r.suggestion,80)}`:""}`)}return i.conventions.length===0&&i.patterns.length===0&&i.antiPatterns.length===0&&l.push("","_No durable house patterns yet \u2014 open a neighbor file and match local idiom. Prefer `prjct sync` + structured analysis-save-llm JSON to enrich._"),l.push("",`_${t.summary}_`),l.join(`
9
- `)}c(U,"formatProjectStyleDigest");function E(t,e){let n=t.replace(/\s+/g," ").trim();return n.length>e?`${n.slice(0,e-1)}\u2026`:n}c(E,"truncate");export{B as a,_ as b,W as c,J as d,U as e};