prjct-cli 3.96.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 (503) hide show
  1. package/CHANGELOG.md +5 -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-switch-I4MTVE56.mjs → agent-switch-7GOGG4KG.mjs} +1 -1
  402. package/dist/bin/hook-chunks/{analysis-VN7APBHR.mjs → analysis-UI2JRLJO.mjs} +2 -2
  403. package/dist/bin/hook-chunks/{auto-flush-DX3FVSQE.mjs → auto-flush-JKIXTI2I.mjs} +1 -1
  404. package/dist/bin/hook-chunks/{capture-gate-MEIQD7ZS.mjs → capture-gate-DIPHPNIC.mjs} +1 -1
  405. package/dist/bin/hook-chunks/chunk-25OGCQTR.mjs +69 -0
  406. package/dist/bin/hook-chunks/{chunk-OLQAMCYV.mjs → chunk-63P5VOR6.mjs} +5 -5
  407. package/dist/bin/hook-chunks/{chunk-EI6VQZOX.mjs → chunk-6LU777GI.mjs} +1 -1
  408. package/dist/bin/hook-chunks/chunk-6NMHVPAI.mjs +35 -0
  409. package/dist/bin/hook-chunks/{chunk-3AHW4XQH.mjs → chunk-6RS7PNAN.mjs} +1 -1
  410. package/dist/bin/hook-chunks/{chunk-ZZBNFNMG.mjs → chunk-6WDRJ7J7.mjs} +1 -1
  411. package/dist/bin/hook-chunks/{chunk-PVCEWFHS.mjs → chunk-7PA4KPSR.mjs} +2 -2
  412. package/dist/bin/hook-chunks/{chunk-EXVL2OFE.mjs → chunk-A6LRNS6R.mjs} +1 -1
  413. package/dist/bin/hook-chunks/{chunk-IJ523YO2.mjs → chunk-AEDB75AK.mjs} +1 -1
  414. package/dist/bin/hook-chunks/chunk-AFGXKRRP.mjs +12 -0
  415. package/dist/bin/hook-chunks/{chunk-LF3S3MYE.mjs → chunk-ANSRNEEI.mjs} +1 -1
  416. package/dist/bin/hook-chunks/{chunk-YLOK4WRR.mjs → chunk-B2ZA5ZAO.mjs} +1 -1
  417. package/dist/bin/hook-chunks/{chunk-KDNUQPAK.mjs → chunk-B7MHIUFA.mjs} +1 -1
  418. package/dist/bin/hook-chunks/{chunk-RT2DFIWF.mjs → chunk-F3PNT2DQ.mjs} +2 -2
  419. package/dist/bin/hook-chunks/{chunk-XYKVWO23.mjs → chunk-FBEDUKMG.mjs} +1 -1
  420. package/dist/bin/hook-chunks/{chunk-DB226JIV.mjs → chunk-GER6HFWV.mjs} +1 -1
  421. package/dist/bin/hook-chunks/{chunk-NLL5AV2G.mjs → chunk-HNZ24HIK.mjs} +2 -2
  422. package/dist/bin/hook-chunks/{chunk-LR24AIEW.mjs → chunk-IDPBMN3Q.mjs} +1 -1
  423. package/dist/bin/hook-chunks/{chunk-EGCYDLSO.mjs → chunk-IFIENAZU.mjs} +1 -1
  424. package/dist/bin/hook-chunks/{chunk-KV4NXLPT.mjs → chunk-IHEOOJJT.mjs} +1 -1
  425. package/dist/bin/hook-chunks/{chunk-H2DGDAQP.mjs → chunk-IL36ER4U.mjs} +1 -1
  426. package/dist/bin/hook-chunks/{chunk-33BHU4OM.mjs → chunk-JF6DFOQK.mjs} +1 -1
  427. package/dist/bin/hook-chunks/{chunk-LQLCYBFF.mjs → chunk-KOLXYWOA.mjs} +2 -2
  428. package/dist/bin/hook-chunks/{chunk-XV2LJVYB.mjs → chunk-MIJZT4ZR.mjs} +1 -1
  429. package/dist/bin/hook-chunks/{chunk-SWJ7TLBD.mjs → chunk-NMB6YSAH.mjs} +1 -1
  430. package/dist/bin/hook-chunks/{chunk-Y3RHBU2R.mjs → chunk-NSTXHVTH.mjs} +2 -2
  431. package/dist/bin/hook-chunks/{chunk-ADYTBOCZ.mjs → chunk-ONGVBXBD.mjs} +1 -1
  432. package/dist/bin/hook-chunks/{chunk-7PBWIO4K.mjs → chunk-PFORBQBF.mjs} +2 -2
  433. package/dist/bin/hook-chunks/{chunk-WL6PKX3U.mjs → chunk-PQJ64L6U.mjs} +1 -1
  434. package/dist/bin/hook-chunks/{chunk-FZS3XGEA.mjs → chunk-RLKYEL3F.mjs} +1 -1
  435. package/dist/bin/hook-chunks/{chunk-WJV24WE6.mjs → chunk-UBWUQ64A.mjs} +1 -1
  436. package/dist/bin/hook-chunks/{chunk-64ZEBHDX.mjs → chunk-UI25YRTY.mjs} +1 -1
  437. package/dist/bin/hook-chunks/{chunk-YHOZTAZH.mjs → chunk-V6GGH6H5.mjs} +1 -1
  438. package/dist/bin/hook-chunks/chunk-WIA6ORIY.mjs +16 -0
  439. package/dist/bin/hook-chunks/{chunk-UVATSTRF.mjs → chunk-XXVHUYL7.mjs} +1 -1
  440. package/dist/bin/hook-chunks/{chunk-E7NA34VQ.mjs → chunk-Y7RDBMNC.mjs} +1 -1
  441. package/dist/bin/hook-chunks/{chunk-JZDZH6IV.mjs → chunk-YATXTHDL.mjs} +1 -1
  442. package/dist/bin/hook-chunks/{chunk-DCHIPMOG.mjs → chunk-ZF2EVMY7.mjs} +1 -1
  443. package/dist/bin/hook-chunks/{chunk-MW54MTLB.mjs → chunk-ZH2MF7H7.mjs} +1 -1
  444. package/dist/bin/hook-chunks/{chunk-ZQI4TJ5C.mjs → chunk-ZXON2U5F.mjs} +1 -1
  445. package/dist/bin/hook-chunks/{codex-skill-6CRFUF3A.mjs → codex-skill-UZZCACMB.mjs} +1 -1
  446. package/dist/bin/hook-chunks/{command-installer-MUHZWDZA.mjs → command-installer-FJ73C2ZW.mjs} +1 -1
  447. package/dist/bin/hook-chunks/{config-manager-2JJPCLKC.mjs → config-manager-XDKOTIJM.mjs} +1 -1
  448. package/dist/bin/hook-chunks/{cwd-changed-UTD6Y4MS.mjs → cwd-changed-STP3LH6Y.mjs} +1 -1
  449. package/dist/bin/hook-chunks/{distill-5TNAM3LY.mjs → distill-63BHUJAC.mjs} +1 -1
  450. package/dist/bin/hook-chunks/{enriched-recall-6VOIUNLN.mjs → enriched-recall-6F6LBYAB.mjs} +1 -1
  451. package/dist/bin/hook-chunks/{format-IIOFTSBF.mjs → format-VJ2YQ4XQ.mjs} +1 -1
  452. package/dist/bin/hook-chunks/{judgment-receipt-QLV3MYFT.mjs → judgment-receipt-LSJCAYBT.mjs} +1 -1
  453. package/dist/bin/hook-chunks/{land-cue-57B23PEL.mjs → land-cue-DEO2AZW4.mjs} +1 -1
  454. package/dist/bin/hook-chunks/{land-synthesis-ZVPFJERV.mjs → land-synthesis-GTMFIGDM.mjs} +1 -1
  455. package/dist/bin/hook-chunks/{legacy-crew-sweep-GR6HRSHX.mjs → legacy-crew-sweep-QPKU7ITU.mjs} +2 -2
  456. package/dist/bin/hook-chunks/{memory-index-XE2MWKQS.mjs → memory-index-KCMXQGKX.mjs} +1 -1
  457. package/dist/bin/hook-chunks/{notification-GU2ZJP5K.mjs → notification-DX6ZHOUC.mjs} +1 -1
  458. package/dist/bin/hook-chunks/{pack-integrity-WV5U3AFF.mjs → pack-integrity-UMLIB5RQ.mjs} +1 -1
  459. package/dist/bin/hook-chunks/{pack-manager-QLFQKP24.mjs → pack-manager-YXRK2TJ4.mjs} +1 -1
  460. package/dist/bin/hook-chunks/{planning-VPAX5DZL.mjs → planning-JR7O5MYW.mjs} +2 -2
  461. package/dist/bin/hook-chunks/{post-edit-UXCFSR3Y.mjs → post-edit-IPTVSRVG.mjs} +1 -1
  462. package/dist/bin/hook-chunks/{pre-bash-MB4JNNYG.mjs → pre-bash-5WWTH36N.mjs} +1 -1
  463. package/dist/bin/hook-chunks/{pre-commit-U7TRFKWX.mjs → pre-commit-KZ5TNTPW.mjs} +1 -1
  464. package/dist/bin/hook-chunks/{pre-edit-MDCQXI5F.mjs → pre-edit-XHPYBXRU.mjs} +1 -1
  465. package/dist/bin/hook-chunks/{pre-package-A6ZI5R64.mjs → pre-package-U3HDW3SX.mjs} +1 -1
  466. package/dist/bin/hook-chunks/{pre-search-ZZO3LGXJ.mjs → pre-search-R5CRK66E.mjs} +1 -1
  467. package/dist/bin/hook-chunks/{prjct-md-MS52YLI2.mjs → prjct-md-IBQTJBK7.mjs} +1 -1
  468. package/dist/bin/hook-chunks/{project-agent-surfaces-6AIW7KL6.mjs → project-agent-surfaces-TPZO73ZV.mjs} +1 -1
  469. package/dist/bin/hook-chunks/{project-memory-UDH56VFP.mjs → project-memory-YQLZX5RG.mjs} +1 -1
  470. package/dist/bin/hook-chunks/{project-style-evolution-IJXT2MCP.mjs → project-style-evolution-NOFCIIZZ.mjs} +1 -1
  471. package/dist/bin/hook-chunks/{prompt-7VZLYONO.mjs → prompt-DJWONMTZ.mjs} +2 -2
  472. package/dist/bin/hook-chunks/{purge-N2WN6NDB.mjs → purge-5W3K2MZL.mjs} +1 -1
  473. package/dist/bin/hook-chunks/{retention-RET4P2RO.mjs → retention-GWJ4AX7I.mjs} +1 -1
  474. package/dist/bin/hook-chunks/{sdd-PB6WKSLE.mjs → sdd-GWBRD4KI.mjs} +1 -1
  475. package/dist/bin/hook-chunks/{session-continuity-BIJXMN44.mjs → session-continuity-VH645RGR.mjs} +1 -1
  476. package/dist/bin/hook-chunks/{session-start-R2VMKW2L.mjs → session-start-4TYTI27B.mjs} +1 -1
  477. package/dist/bin/hook-chunks/{setup-PPIZHVXS.mjs → setup-VF4UHUBX.mjs} +2 -2
  478. package/dist/bin/hook-chunks/{shipping-C637PCOF.mjs → shipping-2ULWBGRX.mjs} +4 -4
  479. package/dist/bin/hook-chunks/{spec-context-inference-RTTDOZZO.mjs → spec-context-inference-HVENYOIO.mjs} +1 -1
  480. package/dist/bin/hook-chunks/{spec-service-ENLAAMVL.mjs → spec-service-4XGQQPGP.mjs} +2 -2
  481. package/dist/bin/hook-chunks/{spec-task-breakdown-RUDEP3AY.mjs → spec-task-breakdown-JXF556UH.mjs} +1 -1
  482. package/dist/bin/hook-chunks/{state-storage-AJUPG7J5.mjs → state-storage-EMWLIFQJ.mjs} +1 -1
  483. package/dist/bin/hook-chunks/{stop-DPXAWJFN.mjs → stop-NJDYIIXR.mjs} +2 -2
  484. package/dist/bin/hook-chunks/{subagent-start-AFHPXL2S.mjs → subagent-start-2YMGD4SY.mjs} +1 -1
  485. package/dist/bin/hook-chunks/{subagent-stop-5BMV63ML.mjs → subagent-stop-4TZJ2NSJ.mjs} +1 -1
  486. package/dist/bin/hook-chunks/{surface-attribution-EGIKCVMF.mjs → surface-attribution-UNK4J5W2.mjs} +1 -1
  487. package/dist/bin/hook-chunks/{task-overview-F3GB77OA.mjs → task-overview-P3VRH2FD.mjs} +1 -1
  488. package/dist/bin/hook-chunks/{task-service-FZABHPFV.mjs → task-service-SPUES5DO.mjs} +1 -1
  489. package/dist/bin/hook-chunks/{tdd-TAMBOPN3.mjs → tdd-MYF7I5FS.mjs} +1 -1
  490. package/dist/bin/hook-chunks/{template-loader-MXOMU4XH.mjs → template-loader-4SYVR2UB.mjs} +1 -1
  491. package/dist/bin/hook-chunks/{weak-model-mode-BMSPGEQY.mjs → weak-model-mode-TYJJT6JJ.mjs} +1 -1
  492. package/dist/bin/hook-chunks/{work-scope-YCS4GTXW.mjs → work-scope-A6XPENFE.mjs} +1 -1
  493. package/dist/bin/hook-chunks/{workspace-occupancy-JOBYNNXV.mjs → workspace-occupancy-3NEAXILW.mjs} +1 -1
  494. package/dist/bin/prjct-core.mjs +9 -3323
  495. package/dist/bin/prjct-hooks.mjs +1 -1
  496. package/dist/bin/prjct.mjs +7 -1
  497. package/dist/daemon/entry.mjs +514 -513
  498. package/dist/mcp/server.mjs +234 -233
  499. package/package.json +3 -2
  500. package/dist/bin/hook-chunks/chunk-3UB6SFRA.mjs +0 -11
  501. package/dist/bin/hook-chunks/chunk-D7DQABWO.mjs +0 -35
  502. package/dist/bin/hook-chunks/chunk-M4YM7Z3F.mjs +0 -69
  503. package/dist/bin/hook-chunks/chunk-TB57OYGW.mjs +0 -16
@@ -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-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-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{a as publishCRUD,b as publishCRUDSync};
@@ -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}from"./chunk-X35YYOFE.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-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-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{d as AUTO_SOURCE_PREFIXES,b as DEFAULT_ARCHIVE_PRUNE_DAYS,c as DEFAULT_AUTO_SOURCE_MAX_LIVE,a as DEFAULT_SOFT_DELETED_PURGE_DAYS,e as isAutoSource,g as purgeOrphanRememberEvents,f as purgeSoftDeleted,j as runVaultPurge,h as trimAutoSourceCap,i as vaultHealth};
@@ -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}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.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-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{a as queueStorage};
@@ -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-WP5IU4W4.mjs";import"./chunk-3TRXQAU4.mjs";export{a as HOOK_RUNNERS,b as getHookRunner};
@@ -0,0 +1,20 @@
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 m}from"./chunk-F2FKQUYE.mjs";import{g as o,i as d}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-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";d();function S(t,E=30){let s=Date.now()-E*24*60*60*1e3,i=new Date(s).toISOString(),_=[],u=[];try{let r=o.query(t,`SELECT work_cycle_id,
8
+ SUM(input_tokens) AS t_in,
9
+ SUM(output_tokens) AS t_out
10
+ FROM token_usage
11
+ WHERE measured_at >= ? AND work_cycle_id IS NOT NULL
12
+ GROUP BY work_cycle_id`,s);for(let e of r)if(!(!e.work_cycle_id||e.t_in+e.t_out<=0))try{o.run(t,`UPDATE tasks
13
+ SET tokens_in = CASE WHEN COALESCE(tokens_in, 0) = 0 THEN ? ELSE tokens_in END,
14
+ tokens_out = CASE WHEN COALESCE(tokens_out, 0) = 0 THEN ? ELSE tokens_out END
15
+ WHERE id = ?
16
+ AND COALESCE(tokens_in, 0) + COALESCE(tokens_out, 0) = 0`,e.t_in,e.t_out,e.work_cycle_id),_.push(e.work_cycle_id)}catch{}}catch{}try{let r=o.query(t,`SELECT DISTINCT s.memory_id AS memory_id
17
+ FROM memory_surface_log s
18
+ LEFT JOIN memory_usefulness u ON u.memory_id = s.memory_id
19
+ WHERE s.created_at >= ?
20
+ AND (u.memory_id IS NULL OR u.score <= 0 OR u.last_used_at IS NULL OR u.last_used_at < ?)`,i,i),e=new Date().toISOString();for(let n of r)n.memory_id&&(m.recordFetch(t,n.memory_id,e),u.push(n.memory_id))}catch{}return{tokensMirrored:_.length,usefulnessCredited:u.length}}c(S,"repairReliabilitySignals");export{S as repairReliabilitySignals};
@@ -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-VCYVYFWE.mjs";import"./chunk-3TRXQAU4.mjs";export{a as REMOVED_VERBS,b as isRemovedVerb,c as migrationMessage};
@@ -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 k,b as l,c as m,d as n,e as o,f as p,g as q,h as r,i as s,j as t,k as u,l as v,m as w}from"./chunk-RXXXA7Z6.mjs";import"./chunk-CNWEQUB7.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-X4FR5S7E.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-BTCCUMKI.mjs";import"./chunk-6AFXUX2M.mjs";import{a as h,b as i,c as j,d as x,e as y,h as z,i as A}from"./chunk-KKIJAEYU.mjs";import"./chunk-WSVMQYYU.mjs";import{a,e as b,f as c,g as d,h as e,i as f,j as g}from"./chunk-X35YYOFE.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.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{y as CAPTURE_MIN_EXCESS,a as DEFAULT_SOFT_DELETED_PURGE_DAYS,x as NEAR_DUP_SIM,k as PROTECTED_TYPES,h as REFERENCE_CAP,t as applyRetention,u as applyRetentionIncremental,j as buildReferenceModel,A as captureGate,m as collectDuplicateIds,l as collectRetentionInputs,z as computeExcess,o as evaluateRetention,p as evaluateRetentionShared,v as forgetJunkCaptures,s as forgetShippedFeature,b as isAutoSource,i as isReferenceEligible,r as isRetentionRemovableId,d as purgeOrphanRememberEvents,c as purgeSoftDeleted,g as runVaultPurge,n as scoreEntry,q as shouldEmbedEntry,w as triageInbox,e as trimAutoSourceCap,f as vaultHealth};
@@ -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 p}from"./chunk-V5VCXMKO.mjs";import{e as g}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{h as u}from"./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{k as f,l as P}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{b as c,p as b}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{l as h,p as y}from"./chunk-HYIT7MF5.mjs";import{e as l,g as C}from"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";C();P();b();y();import R from"node:path";var d=class extends p{static{i(this,"RetroCommands")}async retro(o=null,s=process.cwd(),t={}){try{let e=await this.ensureProjectInit(s);if(!e.success)return e;if(!await h(R.join(s,".git")))return u.fail("Not in a git repository \u2014 `prjct retro` needs git history."),{success:!1,error:"Not a git repo"};let n=x(o);if(!n)return u.fail(`Invalid window "${o}". Use: 7d, 24h, 14d, 30d (units: h or d).`),{success:!1,error:"Invalid window"};let a=await A(s,n.sinceIso),m=N(a);return t.md?console.log(E(n,a,m)):console.log(j(n,a,m)),{success:!0,window:n.label,commits:a.length,contributors:m.length}}catch(e){let n=l(e);return g(n)}}};function x(r){let o=f(r);if(!o)return null;let{n:s,unit:t}=o,e=new Date;if(t==="h"){let m=new Date(e.getTime()-s*60*60*1e3);return{label:`${s}h`,sinceIso:w(m),hours:s}}let n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(n.getTime()-s*24*60*60*1e3);return{label:`${s}d`,sinceIso:w(a),hours:s*24}}i(x,"parseWindow");function w(r){let o=i(s=>`${s}`.padStart(2,"0"),"pad");return`${r.getFullYear()}-${o(r.getMonth()+1)}-${o(r.getDate())}T${o(r.getHours())}:${o(r.getMinutes())}:${o(r.getSeconds())}`}i(w,"toLocalIso");async function A(r,o){let s=await c("git",["log",`--since=${o}`,"--pretty=format:%H%x09%an%x09%ae%x09%aI%x09%s"],{cwd:r,maxBuffer:16777216}).then(t=>t.stdout).catch(t=>{let e=t.stderr??t.message??"";if(/does not have any commits|unknown revision|bad revision|HEAD/i.test(e))return null;throw t});return s===null?[]:s.split(`
8
+ `).filter(Boolean).map(t=>{let[e,n,a,m,...$]=t.split(" ");return{hash:e??"",authorName:n??"unknown",authorEmail:a??"",date:m??"",subject:$.join(" ")??""}}).filter(t=>t.hash)}i(A,"readCommits");function N(r){let o=new Map;for(let s of r){let t=s.authorEmail||s.authorName,e=o.get(t),n=e??{name:s.authorName,email:s.authorEmail,commits:0,insertions:0,deletions:0,files:0,firstCommit:s.date,lastCommit:s.date};e||o.set(t,n),n.commits++,s.date<n.firstCommit&&(n.firstCommit=s.date),s.date>n.lastCommit&&(n.lastCommit=s.date)}return Array.from(o.values()).sort((s,t)=>t.commits-s.commits)}i(N,"groupByAuthor");function j(r,o,s){if(o.length===0)return`No commits in the last ${r.label}.`;let t=[];t.push(`Retro \u2014 last ${r.label} \xB7 ${o.length} commits \xB7 ${s.length} contributors`),t.push("");for(let e of s)t.push(` ${e.commits.toString().padStart(3)} ${e.name} <${e.email}>`);t.push(""),t.push("Recent commits:");for(let e of o.slice(0,10))t.push(` ${e.hash.slice(0,7)} ${e.subject}`);return t.join(`
9
+ `)}i(j,"formatText");function E(r,o,s){if(o.length===0)return`## Retro \u2014 last ${r.label}
10
+
11
+ _No commits in the window._
12
+ `;let t=[];t.push(`## Retro \u2014 last ${r.label}`),t.push(""),t.push(`- **Commits**: ${o.length}`),t.push(`- **Contributors**: ${s.length}`),t.push(""),t.push("### Per contributor"),t.push(""),t.push("| Author | Commits | First | Last |"),t.push("|---|---|---|---|");for(let e of s)t.push(`| ${e.name} | ${e.commits} | ${e.firstCommit.slice(0,10)} | ${e.lastCommit.slice(0,10)} |`);t.push(""),t.push("### Recent commits"),t.push("");for(let e of o.slice(0,15))t.push(`- \`${e.hash.slice(0,7)}\` ${e.subject} \u2014 _${e.authorName}_`);return t.join(`
13
+ `)}i(E,"formatMarkdown");export{d as RetroCommands};
@@ -0,0 +1,12 @@
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{b as R}from"./chunk-KIRU4QFX.mjs";import"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as b}from"./chunk-V5VCXMKO.mjs";import{e as v}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import{H as w,c as h}from"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import{e as d,f as u,g as $}from"./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{e as p,g as D}from"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";D();var j=class extends b{static{m(this,"ReviewRiskCommands")}async reviewRisk(n=null,r=process.cwd(),s={}){try{let i=await this.ensureProjectInit(r);if(!i.success)return i;let t=await $(r);if(!t){let o="review-risk: no comparable changeset (no base branch or nothing committed).";return console.log(s.md?`## Review risk
8
+
9
+ _${o}_
10
+ `:o),{success:!0,tier:"trivial",files:0,loc:0,geometry:u("trivial"),intensity:"skip"}}let l=d(t),y=u(l),c=h(l,{paths:t.dirs}),g=w(c),f=await(async()=>{try{let o=await R(r,s);if(!o.ok)return"";let{hasSymbolIndex:k}=await import("./symbol-graph-PCS43SHZ.mjs");if(!k(o.value))return"";let{detectChanges:x}=await import("./detect-changes-2YIEX7AY.mjs"),a=await x(r,o.value,{source:"committed"});return a.changedFiles.length>0?`Structural risk: critical=${a.summary.critical} high=${a.summary.high} medium=${a.summary.medium} low=${a.summary.low} \xB7 blast ${a.affectedFiles.length} files`:""}catch{return""}})();return console.log(s.md?O(t,l,y,c,g,f):I(t,l,y,c,g,f)),{success:!0,tier:l,files:t.files,loc:t.loc,geometry:y,intensity:c}}catch(i){return v(p(i))}}};function C(e,n){return e==="direct"?"Small + low-risk \u2014 fine to land directly or as one tiny PR.":e==="single"?"Cohesive \u2014 one reviewable PR.":`Large \u2014 hard to review in one pass. Consider stacked PRs.${n.length>1?` Natural split lines: ${n.join(", ")}.`:" Consider splitting by concern even within this area."}`}m(C,"suggestion");function I(e,n,r,s,i,t=""){return[`Review risk: ${n.toUpperCase()} \u2014 ${e.files} files, ${e.loc} LOC vs ${e.base}`,`Delivery: ${r} \u2014 ${C(r,e.dirs)}`,`Judgment intensity: ${s} \u2014 ${i.reviewers}`,` severity floor: ${i.severityFloor}`,...t?[` ${t}`]:[]," next: prjct judgment plan | open (ledger + ship gate)","(advisory for delivery; judgment ledger enforces intensity on code-strict ship)"].join(`
11
+ `)}m(I,"formatText");function O(e,n,r,s,i,t=""){return["## Review risk","",`- **Tier**: ${n}`,`- **Changeset**: ${e.files} files, ${e.loc} LOC (vs \`${e.base}\`)`,`- **Dirs touched**: ${e.dirs.join(", ")||"\u2014"}`,`- **Suggested delivery**: \`${r}\` \u2014 ${C(r,e.dirs)}`,`- **Judgment intensity**: \`${s}\` \u2014 ${i.reviewers}`,`- **Severity floor**: ${i.severityFloor}`,`- **Max fix rounds**: ${i.maxFixRounds}`,...t?[`- **${t}**`]:[],"","_Delivery is advisory. On code-strict packs, `prjct ship` hard-gates on `prjct judgment` ledger.approved._"].join(`
12
+ `)}m(O,"formatMd");var G={tierOf:d,geometryOf:u};export{j as ReviewRiskCommands,G as _internal};
@@ -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-SROBBOJB.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{e as finishWorkflowRun,d as getRecentWorkflowRuns,b as recordGateEvaluation,c as recordRunStep,a as startWorkflowRun};
@@ -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{a as g}from"./chunk-VCSESVZ4.mjs";import{c as m}from"./chunk-IOFCSTGM.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{F as p,G as A}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as u,g as y}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";A();import{createHash as S}from"node:crypto";import h from"node:fs/promises";import l from"node:path";y();function d(e){let t=typeof e=="string"?e:JSON.stringify(e);return S("sha256").update(t).digest("hex").slice(0,16)}o(d,"hashPayload");function $(e){let t=m.get(e);if(!t)return null;let a=t.findings.filter(n=>n.status==="stands"||n.status==="candidate"||n.status==="open").length;return{kind:"judgment_ledger",id:t.id,at:t.updatedAt||t.createdAt,summary:`Judgment ${t.verdict} \xB7 intensity=${t.intensity} \xB7 findings=${t.findings.length} (openish=${a}) \xB7 target=${t.target}`,contentHash:d({id:t.id,verdict:t.verdict,intensity:t.intensity,findings:t.findings.map(n=>n.id),contentBound:t.contentBound?.treeHash}),gates:{verdict:t.verdict,intensity:t.intensity,fixRound:String(t.fixRound),...t.contentBound?.treeHash?{contentBound:t.contentBound.treeHash.slice(0,12)}:{}}}}o($,"judgmentArtifact");async function k(e,t){return(await g.getRecent(e,t)).map(n=>({kind:"ship_receipt",id:n.id,at:n.shippedAt??null,summary:`Ship ${n.version?`v${n.version} `:""}${n.name}`.trim(),contentHash:d({id:n.id,name:n.name,version:n.version,shippedAt:n.shippedAt}),gates:{version:n.version||"none",...n.type?{type:n.type}:{}}}))}o(k,"shipArtifacts");async function j(e,t){try{let{listHandoffs:a}=await import("./handoff-storage-NGUA4Y2L.mjs");return a(e,{status:"pending",limit:t}).map(i=>({kind:"handoff",id:i.id,at:i.createdAt??null,summary:`Handoff ${i.fromAgent}\u2192${i.toAgent}: ${i.reason.slice(0,80)}`,contentHash:d({id:i.id,taskId:i.taskId,to:i.toAgent,status:i.status,reason:i.reason}),gates:{status:i.status,to:i.toAgent,from:i.fromAgent}}))}catch{return[]}}o(j,"handoffArtifacts");async function v(e,t){try{let a=l.join(p.getGlobalProjectPath(e),"checkpoints"),i=(await h.readdir(a).catch(()=>[])).filter(s=>s.endsWith(".json")).sort().reverse().slice(0,t),r=[];for(let s of i)try{let c=await h.readFile(l.join(a,s),"utf-8"),f=JSON.parse(c);r.push({kind:"checkpoint",id:s,at:f.createdAt??null,summary:`Checkpoint "${f.title??s}"${f.git?.branch?` @ ${f.git.branch}`:""}`,contentHash:d(c),gates:{file:s}})}catch{}return r}catch{return[]}}o(v,"checkpointArtifacts");async function L(e,t={}){let a=Math.max(1,Math.min(t.limit??5,20)),n=t.kinds?new Set(t.kinds):null,i=[];if(!n||n.has("judgment_ledger")){let r=$(e);r&&i.push(r)}if(!n||n.has("ship_receipt"))try{i.push(...await k(e,a))}catch(r){u(r)}if((!n||n.has("handoff"))&&i.push(...await j(e,a)),(!n||n.has("checkpoint"))&&i.push(...await v(e,a)),!n||n.has("session_continuity"))try{let{loadSessionContinuity:r}=await import("./session-continuity-BFSW4OL6.mjs"),s=r(e);s&&i.push({kind:"session_continuity",id:"session:continuity",at:s.landedAt,summary:s.cycleDescription?`Last land \xB7 cycle "${s.cycleDescription.slice(0,60)}"`:"Last land \xB7 no open cycle",contentHash:d(s),gates:{handoff:s.handoffWrote?"yes":"no",receipt:s.receiptWrote?"yes":"no",...s.pressureLevel?{pressure:s.pressureLevel}:{}}})}catch{}return i.sort((r,s)=>{let c=r.at?Date.parse(r.at):0;return(s.at?Date.parse(s.at):0)-c}),{projectId:e,count:i.length,artifacts:i}}o(L,"listSafeArtifacts");function B(e){let t=["# prjct safe artifacts","",`Project \`${e.projectId}\` \xB7 **${e.count}** artifact(s)`,"","Controlled agent outputs (judgment \xB7 ships \xB7 handoffs \xB7 checkpoints). Not a markdown vault.",""];if(e.artifacts.length===0)return t.push("_No artifacts yet \u2014 open judgment, ship, handoff, or `prjct context-save`._"),t.push(""),t.join(`
8
+ `);t.push("| Kind | Id | At | Summary | Hash | Gates |"),t.push("|---|---|---|---|---|---|");for(let a of e.artifacts){let n=Object.entries(a.gates).map(([s,c])=>`${s}=${c}`).join(" "),i=a.at?a.at.slice(0,19):"\u2014",r=a.summary.replace(/\|/g,"\\|").slice(0,100);t.push(`| ${a.kind} | \`${a.id.slice(0,12)}\` | ${i} | ${r} | \`${a.contentHash}\` | ${n||"\u2014"} |`)}return t.push(""),t.join(`
9
+ `)}o(B,"formatSafeArtifactsMd");function M(e){return{projectId:e.projectId,count:e.count,artifacts:e.artifacts}}o(M,"formatSafeArtifactsJson");export{M as formatSafeArtifactsJson,B as formatSafeArtifactsMd,L as listSafeArtifacts};
@@ -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{i as S}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as v,b as u}from"./chunk-GOIBJ7PV.mjs";import{a as f}from"./chunk-5MN22JFI.mjs";import{a as w}from"./chunk-V5VCXMKO.mjs";import{d as k}from"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./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 l}from"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as g}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";var a=["off","advisory","strict"],$=[{key:"spec drafted",reached:i(()=>!0,"reached")},{key:"audit-spec passed (reviewed)",reached:i(n=>n!=="draft","reached")},{key:"task linked",reached:i(n=>n==="in_progress"||n==="shipped","reached")},{key:"shipped",reached:i(n=>n==="shipped","reached")}],D=class extends w{static{i(this,"SddCommands")}async sdd(e=null,t=process.cwd(),o={}){let s=v(e,a);return s.kind==="status"?this.showStatus(t,o):s.kind==="mode"?this.setMode(s.mode,t,o):k(`Unknown sdd subcommand "${s.sub}". Use: ${a.join("|")}.`,o)}async showStatus(e,t){let o=await u(e,t);if(!o.ok)return o.result;let s=o.value,r=M(s),c=await(async()=>{try{let p=await S(s.projectId,e);if(p?.linkedSpecId){let{specService:h}=await import("./spec-service-I23KJKKP.mjs"),d=await h.get(e,p.linkedSpecId);if(d)return{specLine:`Active spec: \`${d.title}\` (${d.status})`,station:$.map(y=>`${y.reached(d.status)?"\u2713":"\u25CB"} ${y.key}`).join(" ")}}else if(p)return{specLine:"Active work cycle has NO linked spec",station:"no active work cycle"};return{specLine:"Active spec: none",station:"no active work cycle"}}catch{return{specLine:"Active spec: none",station:"no active work cycle"}}})(),m=[`Mode: ${r}${r==="off"?" (pipeline stays escalate-only)":""}`,c.specLine,`Pipeline: ${c.station}`,"Set: prjct sdd off|advisory|strict"];return t.md?console.log(f("## SDD",`> **Mode**: \`${r}\``,m.slice(1).join(`
8
+ `))):l.info(`SDD \u2014 ${m.join(`
9
+ `)}`),{success:!0,mode:r}}async setMode(e,t,o){let s=await u(t,o);if(!s.ok)return s.result;let r=s.value;r.sdd={mode:e},await g.writeConfig(t,r);let c=e==="off"?"SDD mode off \u2014 the spec pipeline stays escalate-only (no gating).":e==="advisory"?"SDD mode \u2192 advisory. The skill nudges toward a spec for complex work; `ship` surfaces acceptance criteria.":"SDD mode \u2192 strict. Every `prjct work` cycle must link a REVIEWED intent/spec, and `ship` blocks unspecced work (override: `prjct ship --no-spec-gate`).";return o.md?console.log(f("## SDD",`> ${c}`)):l.done(c),{success:!0,mode:e}}};function M(n){let e=n?.sdd?.mode;if(e&&a.includes(e))return e;let t=process.env.PRJCT_SDD_MODE?.toLowerCase();return t&&a.includes(t)?t:"off"}i(M,"effectiveSddMode");var b={effectiveSddMode:M,SDD_MODES:a};export{D as SddCommands,b as _internal,M as effectiveSddMode};
@@ -0,0 +1,10 @@
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-V5VCXMKO.mjs";import{e as u}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import{a as y,c as k,d as w,e as j}from"./chunk-ZS7XJUPE.mjs";import{a as $,b as f}from"./chunk-RXZJB43D.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import{b as p}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as l,g as R}from"./chunk-225DWS4D.mjs";import{a as g}from"./chunk-3TRXQAU4.mjs";R();var P=class extends h{static{g(this,"SeedCommands")}async seed(c=null,n=process.cwd(),o={}){let s=(c??"").trim().split(/\s+/).filter(Boolean),e=s[0]??"list",t=s.slice(1).join(",");switch(e){case"add":return this.add(t||null,n,o);case"remove":return this.remove(t||null,n,o);case"list":return this.list(null,n,o);case"suggest":return this.suggest(null,n,o);case"catalog":return this.catalog(null,n,o);case"verify":return this.verify(null,n,o);default:return i.fail(`Unknown seed subcommand: ${e}. Use: add, remove, list, suggest, catalog, verify.`),{success:!1,error:"Unknown seed subcommand"}}}async add(c=null,n=process.cwd(),o={}){try{if(!c)return i.info(`Usage: prjct seed add <pack>[,<pack>...]
8
+ Available: ${f.join(", ")}`),{success:!1,error:"No pack given"};let s=c.split(",").map(r=>r.trim()).filter(Boolean),e=await k(n,s,{suggestPersona:o.suggestPersona??!1}),t=`activated: ${e.activated.join(", ")||"none"}${e.skipped.length?` \u2022 unknown: ${e.skipped.join(", ")}`:""}`;return C(t,e,o)}catch(s){let e=l(s);return u(e)}}async remove(c=null,n=process.cwd(),o={}){try{if(!c)return i.info("Usage: prjct seed remove <pack>[,<pack>...]"),{success:!1,error:"No pack given"};let s=c.split(",").map(r=>r.trim()).filter(Boolean),e=await w(n,s),t=`deactivated: ${e.deactivated.join(", ")||"none"}${e.notActive.length?` \u2022 not active: ${e.notActive.join(", ")}`:""}`;return C(t,e,o)}catch(s){let e=l(s);return u(e)}}async list(c=null,n=process.cwd(),o={}){try{let s=await j(n);if(s.length===0){let e=`no packs active. Run \`prjct seed add <name>\` \u2014 available: ${f.join(", ")}`;return o.md?console.log(`> ${e}`):i.info(e),{success:!0,active:[]}}if(o.md){let e=["# Active packs",""];for(let t of s)e.push(`## ${t.name}${t.version?` \xB7 v${t.version}`:""}`),e.push(t.description),e.push(`- memory types: ${t.memoryTypes.join(", ")||"\u2014"}`),e.push(`- workflow slots: ${t.slots.join(", ")||"\u2014"}`),t.integrity&&e.push(`- integrity: \`${t.integrity}\` \xB7 status: ${t.status??"active"}`),e.push("");e.push("_Full catalog: `prjct seed catalog --md` \xB7 verify: `prjct seed verify --md`_"),console.log(e.join(`
9
+ `))}else for(let e of s)i.info(`${e.name}${e.version?`@${e.version}`:""}: ${e.description}${e.integrity?` [${e.integrity}]`:""}`),i.info(` memory: ${e.memoryTypes.join(", ")||"\u2014"}`),i.info(` slots: ${e.slots.join(", ")||"\u2014"}`);return{success:!0,active:s}}catch(s){let e=l(s);return u(e)}}async suggest(c=null,n=process.cwd(),o={}){try{let s=await y(n),e=s.map(t=>{let r=$[t];return{name:t,description:r?.description??"",version:r?.version}});if(o.md){let t=["# Suggested packs for this project",""];for(let r of e)t.push(`- **${r.name}**${r.version?` v${r.version}`:""} \u2014 ${r.description}`);t.push(""),t.push(`Activate with: \`prjct seed add ${s.join(",")}\``),console.log(t.join(`
10
+ `))}else i.info(`Suggested: ${s.join(", ")}`),i.info(`Activate: prjct seed add ${s.join(",")}`);return{success:!0,suggested:s}}catch(s){let e=l(s);return u(e)}}async catalog(c=null,n=process.cwd(),o={}){try{let{buildPackCatalog:s,formatPackCatalogMd:e}=await import("./pack-integrity-GXN67LJB.mjs"),t=await s(n);if(o.md)console.log(e(t));else{for(let r of t)i.info(`${r.active?"\u25CF":"\u25CB"} ${r.name}@${r.version} [${r.status}] ${r.integrity} \u2014 ${r.description}`);i.info("Activate: prjct seed add <name> \xB7 verify: prjct seed verify")}return{success:!0,count:t.length,packs:t}}catch(s){let e=l(s);return u(e)}}async verify(c=null,n=process.cwd(),o={}){try{let{verifyActivePacks:s,formatPackVerifyMd:e,loadPackInstalls:t,stampPackInstalls:r}=await import("./pack-integrity-GXN67LJB.mjs"),d=await p.getProjectId(n);if(d){let M=(await p.readConfig(n))?.persona?.packs??[],A=t(d),v=M.filter(b=>!A[b]);v.length&&r(d,v)}let a=await s(n);return o.md?console.log(e(a)):a.ok?i.done(`packs ok (${a.active} active)`):i.fail(`stale: ${a.stale.join(", ")||"\u2014"} \xB7 unknown: ${a.unknown.join(", ")||"\u2014"}`),{success:a.ok,...a}}catch(s){let e=l(s);return u(e)}}};function C(m,c,n){return n.md?console.log(`\u2713 ${m}`):i.done(m),{success:!0,...c}}g(C,"reportPackChange");export{P as SeedCommands};
@@ -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-ZK7BMUMR.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{a as isSyncCurrent,b as runSelfHeal};
@@ -0,0 +1,10 @@
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{l as u}from"./chunk-5YSPND5J.mjs";import{a as p}from"./chunk-AS3LWTQ4.mjs";import"./chunk-4T7NGLNQ.mjs";import{b as l}from"./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-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{f as c,i as g}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{e as f,l as y}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-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{a as r}from"./chunk-3TRXQAU4.mjs";g();y();var a="session:continuity",d="session-close",C=10080*60*1e3;function w(n){let e=p(n.config??null,{turnCount:n.turns??void 0,tokensIn:n.tokensIn??void 0,tokensOut:n.tokensOut??void 0,description:n.cycleDescription??void 0}),t=[];n.cycleId||n.cycleDescription?(t.push("Resume open cycle with `prjct prime` then continue work (or `prjct status done` if finished)."),t.push('Journal progress: `prjct log "what you tried"`.')):t.push('No open cycle \u2014 `prjct work "<intent>"` or `prjct next --md` for frontier.'),t.push("Pull L2 on demand: `prjct search` / `prjct guard` / MCP \u2014 never stuff into L0."),t.push("Audit gates: `prjct context artifacts --md`.");let o=n.handoffContent?.trim()?n.handoffContent.trim().slice(0,280):null,s={version:1,landedAt:f(),projectId:n.projectId,cycleId:n.cycleId??null,cycleDescription:n.cycleDescription??null,turns:n.turns??null,tokensIn:n.tokensIn??null,tokensOut:n.tokensOut??null,pressureLevel:e.level==="ok"?n.turns?"ok":null:e.level,handoffWrote:!!n.handoffWrote,receiptWrote:!!n.receiptWrote,nextActions:t,handoffPreview:o};return c.setDoc(n.projectId,a,s),s}r(w,"stampSessionContinuity");function $(n){try{let e=c.getDoc(n,a);return!e||e.version!==1||!e.landedAt?null:e}catch{return null}}r($,"loadSessionContinuity");function h(n,e=Date.now()){if(!n?.landedAt)return!1;let t=Date.parse(n.landedAt);return Number.isFinite(t)?e-t<=C:!1}r(h,"isContinuityFresh");function v(n){try{let e=l.searchFts(n,["session","close","land-auto"],12);for(let o of e){if(o.type!=="context")continue;let s=o.tags??{};if(s.topic===d||s.source==="land-auto"||o.content.startsWith("Session close:"))return o.content}let t=l.recall(n,{types:["context"],limit:8});for(let o of t){let s=o.tags??{};if(s.topic===d||s.source==="land-auto"||o.content.startsWith("Session close:"))return o.content}}catch{}return null}r(v,"loadLastSessionCloseContent");function D(n){let e=["# Managed session resume","","_Local continuity (Claude Managed Agents pattern without hosting the model). Land stamps SoT; prime restores it._",""],t=n.stamp;if(t&&h(t)){let i=m(t.landedAt);e.push(`**Last land:** ${t.landedAt.slice(0,19)} (${i})`),e.push(`- Hand-off: ${t.handoffWrote?"written":"none"} \xB7 Receipt: ${t.receiptWrote?"written":"none"}`),t.turns!=null&&e.push(`- Last cycle budget signal: turns=${t.turns}`+(t.tokensIn!=null||t.tokensOut!=null?` \xB7 tokens in=${t.tokensIn??0} out=${t.tokensOut??0}`:"")+(t.pressureLevel?` \xB7 pressure=${t.pressureLevel}`:"")),e.push("")}else t?(e.push(`**Last land:** ${t.landedAt.slice(0,19)} (stale >7d) \u2014 treat as historical; re-land after work.`),e.push("")):(e.push("**No land stamp yet.** After meaningful work run `prjct land` so the next window resumes cleanly."),e.push(""));let o=n.liveCycleDescription??t?.cycleDescription;if(o){if(e.push(`**Active / last cycle:** ${o}`),n.liveCycleId&&e.push(`- id: \`${n.liveCycleId.slice(0,8)}\``),n.journal&&n.journal.length>0){e.push("**Journal (recent):**");for(let i of n.journal)e.push(`- ${i.slice(0,120)}`)}e.push("")}else e.push("**No open cycle** on this workspace."),e.push("");let s=n.sessionCloseContent??t?.handoffPreview;if(s){e.push("## Last session hand-off"),e.push("");let i=s.length>900?`${s.slice(0,897)}\u2026`:s;e.push(i),e.push(""),e.push("_Full entry: `prjct context memory session-close` / topic `session-close`._"),e.push("")}if(n.pendingHandoffCue&&(e.push("## Multi-agent handoff"),e.push(""),e.push(n.pendingHandoffCue),e.push("")),t?.nextActions?.length){e.push("## Next actions"),e.push("");for(let i of t.nextActions)e.push(`- ${i}`);e.push("")}return e.push("## Context diet"),e.push(""),e.push(u()),e.push(""),e.push("Default surface: `work` + `ship` (user text confirm). Deeper: `prjct brief` \xB7 `prjct search` \xB7 `prjct guard` \xB7 `prjct context artifacts --md`."),e.join(`
8
+ `)}r(D,"formatSessionResumeCard");function L(n){if(!n||!h(n))return null;let e=m(n.landedAt),t=n.cycleDescription?` \xB7 cycle "${n.cycleDescription.slice(0,50)}${n.cycleDescription.length>50?"\u2026":""}"`:"";return["# prjct: managed session continuity",`Last land ${e}${t}. Restore full state: \`prjct prime --md\` (work graph + hand-off + next actions).`,n.handoffWrote?"Hand-off is in SQLite (`topic:session-close`) \u2014 do not re-discover from chat history.":"No hand-off body last land \u2014 prime still restores cycle/frontier if open."].join(`
9
+ `)}r(L,"formatContinuitySessionCue");function b(n){return["","## Managed session continuity","",`- Stamped at \`${n.landedAt.slice(0,19)}\` (SoT key \`${a}\`).`,"- **Next window / machine:** `prjct prime --md` restores cycle + last hand-off + next actions.","- Cross-device: same project DB / cloud sync of memory \u2014 no hosted model session required.",`- Context diet: ${u()}`].join(`
10
+ `)}r(b,"formatLandContinuityFooter");function m(n){let e=Date.parse(n);if(!Number.isFinite(e))return n;let t=Math.max(0,Math.floor((Date.now()-e)/1e3));return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}r(m,"formatRelativeIso");export{C as CONTINUITY_FRESH_MS,d as SESSION_CLOSE_TOPIC,a as SESSION_CONTINUITY_KEY,L as formatContinuitySessionCue,b as formatLandContinuityFooter,D as formatSessionResumeCard,h as isContinuityFresh,v as loadLastSessionCloseContent,$ as loadSessionContinuity,w as stampSessionContinuity};
@@ -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-2ZPM4Z6W.mjs";import"./chunk-BSR3XUBD.mjs";import"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import"./chunk-ZK7BMUMR.mjs";import"./chunk-5UUITMRX.mjs";import"./chunk-K25HGTC3.mjs";import"./chunk-45LKWJ5D.mjs";import"./chunk-6P4GMVUZ.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-TILUQF6L.mjs";import"./chunk-Y5SEUYET.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-5YLI5V3Q.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-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-WTDUJB4I.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 buildProjectIdentityLine,a as buildSessionContext,b as buildSubagentDigest,d as consumeKimiSessionInjection,e as runSessionStartHook};
@@ -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}from"./chunk-45LKWJ5D.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{a as sessionTracker};
@@ -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{b as a,c as b,d as c,e as d,f as e}from"./chunk-YLYAYRSJ.mjs";import"./chunk-3TRXQAU4.mjs";export{a as HOOK_TIMEOUT_SECONDS,b as PRJCT_HOOKS,c as install,e as status,d as uninstall};
@@ -0,0 +1,140 @@
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-F7OOBAJO.mjs";import{a as J}from"./chunk-IVGWOY3U.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-YJOC2JJK.mjs";import{a as G}from"./chunk-V5VCXMKO.mjs";import{f as z}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-R7LLMJDP.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import{b as E}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import{d as B}from"./chunk-7QTE6X4J.mjs";import{a as K,b as F,c as u}from"./chunk-4PPIE6GA.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-XSZG3CBO.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{d as v}from"./chunk-OYXQRBVM.mjs";import{D as O,E as N,F as A,G as ie}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as D,p as oe}from"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as x,g as se}from"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import{f as _,g as U,l as T,p as ae}from"./chunk-HYIT7MF5.mjs";import{e as P,g as ne}from"./chunk-225DWS4D.mjs";import{a as m,e as M}from"./chunk-3TRXQAU4.mjs";import j from"node:fs/promises";import ce from"node:http";import I from"node:path";import s from"chalk";ie();import{createHash as re,randomBytes as V}from"node:crypto";var q="pkce-v1",W=32;function L(r){return r.toString("base64url")}m(L,"base64Url");function Y(){let r=L(V(W)),e=L(V(W)),t=L(re("sha256").update(r,"ascii").digest());return{state:e,codeVerifier:r,codeChallenge:t,codeChallengeMethod:"S256"}}m(Y,"generatePkceMaterial");function Q(r){return new URLSearchParams({flow:q,port:String(r.port),device_id:r.deviceId,hostname:r.hostname,state:r.state,code_challenge:r.codeChallenge,code_challenge_method:"S256"})}m(Q,"buildCliLoginSearchParams");function X(r,e){if(r.get("key"))return{ok:!1,reason:"legacy-bearer",message:"This CLI requires PKCE login. Update the web app or set flow=pkce-v1; bearer tokens in the callback URL are no longer accepted."};let o=r.get("code"),n=r.get("state");return!o||!n?{ok:!1,reason:"missing",message:"Missing authorization code or state in callback"}:n!==e?{ok:!1,reason:"mismatch",message:"Login state mismatch \u2014 try `prjct login` again"}:{ok:!0,code:o,state:n}}m(X,"parsePkceCallback");function Z(r){return{flow:q,code:r.code,state:r.state,code_verifier:r.codeVerifier,device_id:r.deviceId,redirect_uri:`http://127.0.0.1:${r.port}/callback`}}m(Z,"buildExchangeBody");function ee(r){if(!r||typeof r!="object")return null;let e=r,t=e.apiKey??e.api_key,o=e.userId??e.user_id,n=e.email,a=e.deviceId??e.device_id;return!t||!o||!n||!a?null:{apiKey:t,userId:o,email:n,deviceId:a}}m(ee,"parseMintedKeyResponse");ne();oe();ae();se();var te=class extends G{static{m(this,"SetupCommands")}async auth(e=null,t={}){switch(e?.split(" ")[0]||"status"){case"login":return t.md||i.fail("Manual token login is not supported. Run prjct login."),{success:!1,message:t.md?"## Error\nManual token login is not supported. Run `prjct login`.":""};case"logout":return await u.clearAuth(),await this.refreshDaemonAuth(),t.md||i.done("Logged out. Auth credentials cleared"),{success:!0,message:t.md?`## Auth
8
+ - **Status**: Logged out`:""};default:{let n=await u.getStatus();return t.md?{success:!0,message:n.authenticated?`## Auth Status
9
+ - **Authenticated**: Yes
10
+ - **Email**: ${n.email||"N/A"}
11
+ - **Token**: stored securely
12
+ - **Last auth**: ${n.lastAuth||"N/A"}`:"## Auth Status\n- **Authenticated**: No\n- Run `prjct login` to connect"}:(n.authenticated?i.box("Auth Status",`Email: ${n.email||"N/A"}
13
+ Token: stored securely
14
+ Since: ${n.lastAuth||"N/A"}`):(i.info("Not authenticated"),i.info(`Run ${s.cyan("prjct login")} to connect`)),{success:!0,message:""})}}}async login(e={}){let t=await u.getStatus();if(t.authenticated)return e.md||(i.box("Already Authenticated",`Email: ${t.email}
15
+ Token: stored securely`),i.info(`Run ${s.cyan("prjct logout")} first to re-authenticate`)),{success:!0,message:e.md?`## Already Authenticated
16
+ - **Email**: ${t.email}
17
+ - **Token**: stored securely
18
+
19
+ Run \`prjct logout\` first to re-authenticate.`:""};let o=process.env.PRJCT_WEB_URL||F,n=process.env.PRJCT_API_URL||K,a=Y(),c={settled:!1,listenPort:0};return new Promise(h=>{let l=m(g=>{c.settled||(c.settled=!0,h(g))},"finish"),d=ce.createServer(async(g,p)=>{let k=new URL(g.url||"/","http://127.0.0.1"),w={"Content-Type":"text/html","Cache-Control":"no-store","Referrer-Policy":"no-referrer"};if(k.pathname==="/callback"){let f=X(k.searchParams,a.state);if(!f.ok){let C=(f.reason==="legacy-bearer",400);p.writeHead(C,w),p.end(this.buildErrorPage(f.message)),f.reason==="legacy-bearer"&&(e.md||(i.warn(f.message),i.info("Update prjct-cli-app or open the login URL with flow=pkce-v1")));return}let{verified:y,failureMessage:b,email:$}=await(async()=>{try{let C=Z({code:f.code,state:f.state,codeVerifier:a.codeVerifier,deviceId:await u.getDeviceId(),port:c.listenPort}),R=await fetch(`${n}/auth/cli/exchange`,{method:"POST",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify(C)});if(!R.ok)return{verified:!1,failureMessage:`Exchange failed (${R.status})`,email:""};let S=ee(await R.json());return S?(await u.saveAuth(S.apiKey,S.userId,S.email),await u.write({apiUrl:n}),await B.testConnection()?{verified:!0,failureMessage:"",email:S.email}:(await u.clearAuth(),{verified:!1,failureMessage:"Could not verify credentials with prjct Cloud",email:S.email})):{verified:!1,failureMessage:"Malformed exchange response",email:""}}catch(C){return await u.clearAuth(),{verified:!1,failureMessage:C instanceof Error?C.message:"Could not store credentials securely",email:""}}})();y?(p.writeHead(200,w),p.end(this.buildSuccessPage($))):(p.writeHead(401,w),p.end(this.buildErrorPage(b))),d.close(),y?(e.md||(i.step(3,3,"Connected"),i.stop(),i.box("Authentication Complete",`Email: ${$}
20
+ Token: stored securely
21
+ Status: Connected`)),await this.refreshDaemonAuth(),await this.autoSync(),l({success:!0,message:e.md?`## Authenticated
22
+ - **Email**: ${$}
23
+ - **Token**: stored securely`:""})):(e.md||i.fail(`Authentication failed: ${b}`),l({success:!1,message:e.md?`## Error
24
+ Authentication failed: ${b}`:""}));return}p.writeHead(404,w),p.end("Not found")});d.listen(0,"127.0.0.1",async()=>{let g=d.address();if(!g||typeof g=="string"){d.close(),e.md||i.fail("Failed to start callback server"),l({success:!1,message:e.md?`## Error
25
+ Failed to start callback server`:""});return}c.listenPort=g.port;let p=await u.getDeviceId(),k=await u.getHostname(),w=Q({port:c.listenPort,deviceId:p,hostname:k,state:a.state,codeChallenge:a.codeChallenge}),f=`${o}/auth/cli?flow=pkce-v1&port=${c.listenPort}`,y=`${o}/auth/cli?${w.toString()}`;i.step(1,3,"Opening browser..."),i.stop(),i.info(s.dim(f));let b=process.platform,$=b==="darwin"?`open "${y}"`:b==="win32"?`start "" "${y}"`:`xdg-open "${y}"`;try{await D($)}catch{i.warn("Could not open browser automatically"),i.info("Visit the URL printed by your terminal session (full URL not echoed for safety)"),i.info(y)}i.step(2,3,"Waiting for authentication...")}),setTimeout(()=>{c.settled||(d.close(),i.stop(),e.md||(i.fail("Authentication timed out"),i.info(`Run ${s.cyan("prjct login")} to try again`)),l({success:!1,message:e.md?"## Error\nAuthentication timed out. Run `prjct login` to try again.":""}))},300*1e3)})}async logout(){return await u.clearAuth(),i.done("Logged out"),{success:!0,message:""}}async refreshDaemonAuth(){try{let{restartDaemon:e}=await import("./client-D43KKUYH.mjs");await e()}catch{}}async autoSync(){try{let e=await E.readConfig(process.cwd()).catch(()=>null),t=e?.projectId;if(!t||!e.cloud?.enabled||e.cloud.paused)return;i.spin("Syncing project...");let o=await H.sync(t,{include:e.cloud.include??{}});if(i.stop(),o.success&&!o.skipped){let n=o.pushed?.count||0,a=o.pulled?.count||0;n>0||a>0?i.done(`Synced (${n} pushed, ${a} pulled)`):i.done("Synced \u2014 everything up to date")}}catch{i.stop()}}buildSuccessPage(e){return`<!DOCTYPE html>
26
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
27
+ <title>prjct CLI Connected</title>
28
+ <style>
29
+ *{margin:0;padding:0;box-sizing:border-box}
30
+ body{font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',sans-serif;
31
+ background:#0a0a0a;color:#e5e5e5;display:flex;justify-content:center;align-items:center;min-height:100vh}
32
+ .card{text-align:center;max-width:420px;padding:2.5rem}
33
+ .logo{font-size:.875rem;letter-spacing:.05em;color:#a3a3a3;margin-bottom:2rem;font-family:ui-monospace,monospace}
34
+ .logo span{color:#e5e5e5}
35
+ .icon{width:64px;height:64px;border-radius:50%;background:rgba(34,211,238,.12);
36
+ display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}
37
+ .icon svg{width:32px;height:32px;color:#22d3ee}
38
+ h1{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}
39
+ .details{background:#141414;border:1px solid #262626;border-radius:8px;padding:1rem 1.25rem;
40
+ margin:1.25rem 0;text-align:left;font-size:.875rem;line-height:1.75}
41
+ .details .label{color:#888}
42
+ .details .value{color:#e5e5e5}
43
+ .hint{color:#666;font-size:.8125rem;margin-top:1rem}
44
+ </style></head>
45
+ <body><div class="card">
46
+ <div class="logo"><span>prjct</span>/cli</div>
47
+ <div class="icon"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
48
+ <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></div>
49
+ <h1>CLI Connected</h1>
50
+ <div class="details">
51
+ <span class="label">Account:</span> <span class="value">${e}</span><br>
52
+ <span class="label">Token:</span> <span class="value">stored securely</span>
53
+ </div>
54
+ <p class="hint">Return to your terminal to continue.</p>
55
+ </div></body></html>`}buildErrorPage(e){return`<!DOCTYPE html>
56
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
57
+ <title>prjct CLI \u2014 Error</title>
58
+ <style>
59
+ *{margin:0;padding:0;box-sizing:border-box}
60
+ body{font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',sans-serif;
61
+ background:#0a0a0a;color:#e5e5e5;display:flex;justify-content:center;align-items:center;min-height:100vh}
62
+ .card{text-align:center;max-width:420px;padding:2.5rem}
63
+ .logo{font-size:.875rem;letter-spacing:.05em;color:#a3a3a3;margin-bottom:2rem;font-family:ui-monospace,monospace}
64
+ .logo span{color:#e5e5e5}
65
+ .icon{width:64px;height:64px;border-radius:50%;background:rgba(239,68,68,.12);
66
+ display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}
67
+ .icon svg{width:32px;height:32px;color:#ef4444}
68
+ h1{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}
69
+ .msg{background:#141414;border:1px solid #262626;border-radius:8px;padding:1rem 1.25rem;
70
+ margin:1.25rem 0;font-size:.875rem;color:#f87171}
71
+ .hint{color:#666;font-size:.8125rem;margin-top:1rem}
72
+ </style></head>
73
+ <body><div class="card">
74
+ <div class="logo"><span>prjct</span>/cli</div>
75
+ <div class="icon"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
76
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/></svg></div>
77
+ <h1>Authentication Failed</h1>
78
+ <div class="msg">${e}</div>
79
+ <p class="hint">Return to your terminal and try again.</p>
80
+ </div></body></html>`}async start(){let e=await v.checkInstallation(),t=(N(),M(O)),o=await t.detectCodex(),n=await t.detectAntigravity(),a=e.providerDetected,c=a?await t.getActiveProvider():null,h=a?c.displayName:o.installed?"OpenAI Codex":"AI agents";if(console.log(`\u{1F680} Setting up prjct for ${h}...
81
+ `),!a&&!o.installed&&!n.installed&&(console.log("\u2139\uFE0F No local CLI runtime detected."),console.log(" prjct will still use AGENTS.md + MCP-compatible surfaces after init.")),a){console.log("\u{1F4E6} Installing p. command router...");let l=await v.installCommands();if(!l.success)return{success:!1,message:`\u274C Installation failed: ${l.error}`};console.log(`
82
+ \u2705 Installed ${l.installed?.length??0} commands to:
83
+ ${A.getDisplayPath(l.path||"")}`),this.printInstallErrors(l.errors)}return await this.finishProviderInstall(o,n,c,"Installed Codex skill"),console.log(`
84
+ \u{1F389} Setup complete!`),console.log(`
85
+ Next steps:`),console.log(` 1. Open ${h}`),console.log(" 2. Navigate to your project"),console.log(" 3. Run: prjct init"),{success:!0,message:""}}async setup(e={}){console.log(`\u{1F527} Reconfiguring prjct...
86
+ `);let t=(N(),M(O)),o=await t.detectCodex(),n=await t.detectAntigravity(),c=(await v.checkInstallation()).providerDetected;if(e.force&&(console.log("\u{1F5D1}\uFE0F Removing existing installation..."),await v.uninstallCommands()),!c&&!o.installed&&!n.installed&&(console.log("\u2139\uFE0F No local CLI runtime detected."),console.log(" Continuing with universal AGENTS.md/MCP-compatible setup.")),c){console.log("\u{1F4E6} Installing p. command router...");let l=await v.installCommands();if(!l.success)return{success:!1,message:`\u274C Setup failed: ${l.error}`};console.log(`
87
+ \u2705 Installed ${l.installed?.length??0} commands`),this.printInstallErrors(l.errors),console.log(`
88
+ \u{1F4DD} Installing global configuration...`);let d=await v.installGlobalConfig(),g=d.path?A.getDisplayPath(d.path):"global config";d.success?d.action==="created"?console.log(`\u2705 Created ${g}`):d.action==="updated"?console.log(`\u2705 Updated ${g}`):d.action==="appended"&&console.log(`\u2705 Added prjct config to ${g}`):console.log(`\u26A0\uFE0F ${d.error}`)}else console.log("\u2139\uFE0F No Claude/Gemini global command surface detected; skipping CLI router cleanup.");let h=c?await t.getActiveProvider():null;if(h?.name==="claude"){console.log(`
89
+ \u26A1 Installing status line...`);let l=await this.installStatusLine();l.success?console.log("\u2705 Status line configured"):console.log(`\u26A0\uFE0F ${l.error}`)}return await this.finishProviderInstall(o,n,h,"Codex skill installed"),console.log(`
90
+ \u{1F389} Setup complete!
91
+ `),this.showAsciiArt(),{success:!0,message:""}}async setupMcpServers(){await J()}printInstallErrors(e){if((e?.length??0)>0){console.log(`
92
+ \u26A0\uFE0F ${e?.length??0} errors:`);for(let t of e??[])console.log(` - ${t.file}: ${t.error}`)}}async finishProviderInstall(e,t,o,n){await this.installCodexSurface(e.installed,n),await this.installAntigravitySurface(t.installed),await this.setupMcpServers(),await this.installProjectAgentSurfacesIfConfigured(),await this.saveSetupStamp(o?.name??(e.installed?"codex":t.installed?"antigravity":"claude"))}async saveSetupStamp(e){try{let t=(await import("./editors-config-ELAQA6RV.mjs")).default,o=I.join(A.globalConfigDir,"runtime-surfaces");await t.saveConfig(x,o,e)}catch(t){console.log(`\u26A0\uFE0F Setup stamp failed (non-blocking): ${P(t)}`)}}async installProjectAgentSurfacesIfConfigured(){try{let e=process.cwd();if(!await E.isConfigured(e))return;let{writeProjectAgentSurfaces:o}=await import("./project-agent-surfaces-I2CUZUIN.mjs"),{detectInstalledAgents:n}=await import("./detection-KKDZYWVD.mjs"),a=await o(e,{agents:await n(e),explicit:!0});a.prjctMd.action!=="unchanged"&&console.log("\u2705 Project PRJCT.md ready"),a.agentsMd.action!=="unchanged"&&console.log("\u2705 Project AGENTS.md ready"),a.claudeMd&&a.claudeMd.action!=="unchanged"&&console.log("\u2705 Project CLAUDE.md ready"),a.ideRules.length>0&&console.log(`\u2705 Project IDE rules ready: ${a.ideRules.join(", ")}`)}catch(e){console.log(`\u26A0\uFE0F Project agent surface setup failed (non-blocking): ${P(e)}`)}}async installCodexSurface(e,t){if(e)try{let{installCodexSkill:o,verifyCodexPRouterReady:n}=await import("./codex-skill-3HNVU4T4.mjs");await o();let a=await n({autoRepair:!0});a.verified?(console.log(`\u2705 ${t}`),console.log("\u2705 Codex p. router ready")):(console.log(`\u26A0\uFE0F Codex skill setup incomplete: ${a.message||"router verification failed"}`),console.log(" Run `prjct setup` to retry Codex configuration."))}catch(o){console.log(`\u26A0\uFE0F Codex skill setup failed (non-blocking): ${P(o)}`)}}async installAntigravitySurface(e){if(e)try{let t=await import("node:os"),{getTemplateContent:o}=await import("./template-loader-33OVJ4G5.mjs"),n=I.join(t.homedir(),".gemini","antigravity","skills","prjct"),a=I.join(n,"SKILL.md"),c=o("antigravity/SKILL.md");if(!c)throw new Error("Antigravity SKILL.md template not found");await j.mkdir(n,{recursive:!0}),await j.writeFile(a,c,"utf-8"),console.log("\u2705 Antigravity skill installed")}catch(t){console.log(`\u26A0\uFE0F Antigravity skill setup failed (non-blocking): ${P(t)}`)}}async installStatusLine(){try{let e=A.getClaudeDir(),t=A.getClaudeSettingsPath(),o=I.join(e,"prjct-statusline.sh");if(await T(o)&&(await j.readFile(o,"utf-8")).includes("build_statusline"))return{success:!0};let n=`#!/bin/bash
93
+ # prjct Status Line for Claude Code
94
+ # Shows version update notifications and current task
95
+
96
+ # Current CLI version (embedded at install time)
97
+ CLI_VERSION="${x}"
98
+
99
+ # Read JSON context from stdin (provided by Claude Code)
100
+ read -r json
101
+
102
+ # Extract cwd from JSON
103
+ CWD=$(echo "$json" | grep -o '"cwd"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"cwd"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
104
+
105
+ # Check if this is a prjct project
106
+ CONFIG="$CWD/.prjct/prjct.config.json"
107
+ if [[ -f "$CONFIG" ]]; then
108
+ # Extract projectId
109
+ PROJECT_ID=$(grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' "$CONFIG" | sed 's/.*"projectId"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
110
+
111
+ if [[ -n "$PROJECT_ID" ]]; then
112
+ # Upgrade notice \u2014 the daemon checks npm and writes this GLOBAL flag.
113
+ # The statusline only READS it; it does no version comparison itself.
114
+ UPDATE_STATUS="$HOME/.prjct-cli/state/update-status.json"
115
+ if [[ -f "$UPDATE_STATUS" ]] && grep -q '"updateAvailable"[[:space:]]*:[[:space:]]*true' "$UPDATE_STATUS"; then
116
+ LATEST=$(grep -o '"latest"[[:space:]]*:[[:space:]]*"[^"]*"' "$UPDATE_STATUS" | sed 's/.*"latest"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
117
+ echo "\u26A0\uFE0F prjct v$LATEST available! Run p. upgrade"
118
+ exit 0
119
+ fi
120
+
121
+ # Show current task if exists
122
+ STATE="$HOME/.prjct-cli/projects/$PROJECT_ID/storage/state.json"
123
+ if [[ -f "$STATE" ]]; then
124
+ TASK=$(grep -o '"description"[[:space:]]*:[[:space:]]*"[^"]*"' "$STATE" | head -1 | sed 's/.*"description"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
125
+ STATUS=$(grep -o '"status"[[:space:]]*:[[:space:]]*"[^"]*"' "$STATE" | head -1 | sed 's/.*"status"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/')
126
+
127
+ if [[ -n "$TASK" ]] && [[ "$STATUS" == "active" ]]; then
128
+ # Truncate task to 40 chars
129
+ TASK_SHORT="\${TASK:0:40}"
130
+ [[ \${#TASK} -gt 40 ]] && TASK_SHORT="$TASK_SHORT..."
131
+ echo "\u{1F3AF} $TASK_SHORT"
132
+ exit 0
133
+ fi
134
+ fi
135
+ fi
136
+ fi
137
+
138
+ # Default: show prjct branding
139
+ echo "\u26A1 prjct"
140
+ `;await j.writeFile(o,n,{mode:493});let a=await T(t)?await _(t).catch(()=>null).then(c=>c??{}):{};return a.statusLine={type:"command",command:o},await U(t,a),{success:!0}}catch(e){return z(e)}}showAsciiArt(){console.log(s.cyan("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501")),console.log(""),console.log(s.bold.cyan(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")),console.log(s.bold.cyan(" \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D")),console.log(s.bold.cyan(" \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551")),console.log(s.bold.cyan(" \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551")),console.log(s.bold.cyan(" \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551")),console.log(s.bold.cyan(" \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D")),console.log(""),console.log(` ${s.bold.cyan("prjct")}${s.magenta("/")}${s.green("cli")} ${s.dim.white(`v${x} installed`)}`),console.log(""),console.log(` ${s.yellow("\u26A1")} Improve developer + agent performance`),console.log(` ${s.green("\u{1F9E0}")} Rich project context without context bloat`),console.log(` ${s.cyan("\u{1F916}")} Human-in-the-loop work cycles`),console.log(""),console.log(s.cyan("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501")),console.log(""),console.log(s.bold.cyan("\u{1F680} Quick Start")),console.log(s.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(""),console.log(` ${s.bold("1.")} Initialize your project:`),console.log(` ${s.green("cd your-project && prjct init")}`),console.log(""),console.log(` ${s.bold("2.")} Start your first work cycle:`),console.log(` ${s.green('prjct work "build auth"')}`),console.log(""),console.log(` ${s.bold("3.")} Ship & celebrate:`),console.log(` ${s.green('prjct ship "user login"')}`),console.log(""),console.log(s.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(""),console.log(` ${s.dim("Documentation:")} ${s.cyan("https://prjct.app")}`),console.log(` ${s.dim("Report issues:")} ${s.cyan("https://github.com/prjct-app/cli/issues")}`),console.log(""),console.log(s.bold.magenta("Ship with better context.")),console.log("")}};export{te as SetupCommands};
@@ -0,0 +1,38 @@
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{b}from"./chunk-DZVOFEM5.mjs";import{a as ie}from"./chunk-5EF5EOCL.mjs";import{a as re}from"./chunk-GGGDYL4P.mjs";import{d as ce}from"./chunk-KWC2PCPC.mjs";import{c as B}from"./chunk-XSZG3CBO.mjs";import{c as te,d as Te,f as N,i as Se}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import{b as oe}from"./chunk-MTDCRYLP.mjs";import{c as se,d as ae}from"./chunk-DN46DLU3.mjs";import"./chunk-PIA26GWG.mjs";import{a as w,b as ne}from"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import{d as k}from"./chunk-OYXQRBVM.mjs";import{A as X,C as Y,E as $e,F as x,G as ee,a as z,c as ye,t as M,w as Z,z as Q}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import{b as O,f as ve}from"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import{a as G,b as we}from"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as h,e as H,g as V}from"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import{f as q,g as K,i as J,l,p as W}from"./chunk-HYIT7MF5.mjs";import{a as A,e as T,g as U}from"./chunk-225DWS4D.mjs";import{a as u}from"./chunk-3TRXQAU4.mjs";ve();import{execFileSync as Ce}from"node:child_process";import v from"node:fs/promises";import F from"node:os";import y from"node:path";import s from"chalk";ye();import{execFileSync as le,execSync as Ie}from"node:child_process";var D={git:{name:"git",command:"git --version",versionRegex:/git version ([\d.]+)/,required:!0,installHint:"Install Git: https://git-scm.com/downloads",docs:"https://git-scm.com/doc"},node:{name:"node",command:"node --version",versionRegex:/v([\d.]+)/,required:!0,installHint:"Install Node.js: https://nodejs.org",docs:"https://nodejs.org/docs"},bun:{name:"bun",command:"bun --version",versionRegex:/([\d.]+)/,required:!1,installHint:"Install Bun: curl -fsSL https://bun.sh/install | bash",docs:"https://bun.sh/docs"},gh:{name:"gh",command:"gh --version",versionRegex:/gh version ([\d.]+)/,required:!1,installHint:"Install GitHub CLI: https://cli.github.com",docs:"https://cli.github.com/manual"},npm:{name:"npm",command:"npm --version",versionRegex:/([\d.]+)/,required:!1,installHint:"npm comes with Node.js: https://nodejs.org"},claude:{name:"claude",command:"claude --version",versionRegex:/claude ([\d.]+)/,required:!1,installHint:"Install Claude Code: npm install -g @anthropic-ai/claude-code",docs:"https://docs.anthropic.com/claude-code"},gemini:{name:"gemini",command:"gemini --version",versionRegex:/gemini ([\d.]+)/,required:!1,installHint:"Install Gemini CLI: npm install -g @google/gemini-cli",docs:"https://ai.google.dev/gemini-api/docs"}},_=class{static{u(this,"DependencyValidator")}cache=new Map;cacheTimeout=6e4;cacheTimestamps=new Map;checkTool(e){let i=this.getCached(e);if(i)return i;let o=D[e];if(!o)return this.checkUnknownTool(e);let n=this.executeCheck(o);return this.setCache(e,n),n}ensureTool(e){let i=this.checkTool(e);if(!i.available){let o=D[e],n=i.error||{message:`${e} is not available`,hint:o?.installHint||`Install ${e} and try again`,docs:o?.docs};throw new P(n)}}ensureTools(e){let i=[];for(let o of e)this.checkTool(o).available||i.push(o);if(i.length>0){let o=i.map(n=>{let f=D[n];return f?` ${n}: ${f.installHint}`:` ${n}: Install and try again`}).join(`
8
+ `);throw new P({message:`Missing required tools: ${i.join(", ")}`,hint:`Install the following:
9
+ ${o}`})}}isAvailable(e){return this.checkTool(e).available}getVersion(e){return this.checkTool(e).version}checkAll(e){let i=e||Object.keys(D),o=new Map;for(let n of i)o.set(n,this.checkTool(n));return o}clearCache(){this.cache.clear(),this.cacheTimestamps.clear()}executeCheck(e){try{let i=Ie(e.command,{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3});return{available:!0,version:e.versionRegex?.exec(i)?.[1]}}catch{return{available:!1,error:b(`${e.name} is not installed or not in PATH`,e.installHint,{docs:e.docs})}}}checkUnknownTool(e){if(!/^[a-zA-Z0-9_-]+$/.test(e))return{available:!1,error:b(`Invalid tool name: ${e}`,"Tool names must only contain alphanumeric characters, hyphens, and underscores")};try{return le(e,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}),{available:!0}}catch{try{return le(e,["-v"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}),{available:!0}}catch{return{available:!1,error:b(`${e} is not installed or not in PATH`,`Install ${e} and try again`)}}}}getCached(e){let i=this.cacheTimestamps.get(e);return i?z(i,this.cacheTimeout)?(this.cache.delete(e),this.cacheTimestamps.delete(e),null):this.cache.get(e)||null:null}setCache(e,i){this.cache.set(e,i),this.cacheTimestamps.set(e,Date.now())}},P=class extends Error{static{u(this,"DependencyError")}hint;docs;constructor(e){super(e.message),this.name="DependencyError",this.hint=e.hint,this.docs=e.docs}},de=new _;Se();Te();U();W();ne();V();$e();we();ee();U();W();ne();V();ee();import c from"node:fs/promises";import je from"node:os";import d from"node:path";async function me(t,e){let i=await l(t)?await q(t).catch(o=>{if(!(o instanceof SyntaxError))throw o;return null})??{}:{};i.statusLine={type:"command",command:e},await K(t,i)}u(me,"ensureStatusLineSettings");async function pe(){try{let t=d.join(je.homedir(),".claude"),e=d.join(t,"settings.json"),i=d.join(t,"prjct-statusline.sh"),o=x.getStatusLinePath(),n=d.join(o,"statusline.sh"),f=d.join(o,"themes"),r=d.join(o,"lib"),p=d.join(o,"components"),I=d.join(o,"config.json"),g=d.join(H,"assets","statusline"),S=d.join(g,"statusline.sh"),a=d.join(g,"themes"),m=d.join(g,"lib"),j=d.join(g,"components"),C=d.join(g,"default-config.json");if(await l(t)||await c.mkdir(t,{recursive:!0}),await l(o)||await c.mkdir(o,{recursive:!0}),await l(f)||await c.mkdir(f,{recursive:!0}),await l(r)||await c.mkdir(r,{recursive:!0}),await l(p)||await c.mkdir(p,{recursive:!0}),await l(n)){let $=await c.readFile(n,"utf8");if($.includes("CLI_VERSION=")){let E=$.match(/CLI_VERSION="([^"]*)"/);if(E&&E[1]!==h){let R=$.replace(/CLI_VERSION="[^"]*"/,`CLI_VERSION="${h}"`);await c.writeFile(n,R,{mode:493})}await L(m,r),await L(j,p),await ue(i,n),await me(e,i);return}}if(await l(S)){let $=(await c.readFile(S,"utf8")).replace(/CLI_VERSION="[^"]*"/,`CLI_VERSION="${h}"`);if(await c.writeFile(n,$,{mode:493}),await L(m,r),await L(j,p),await l(a)){let E=await c.readdir(a);for(let R of E){let fe=d.join(a,R),he=d.join(f,R);await c.copyFile(fe,he)}}!await l(I)&&await l(C)&&await c.copyFile(C,I)}else{let $=`#!/bin/bash
10
+ # prjct Status Line for Claude Code
11
+ CLI_VERSION="${h}"
12
+ input=$(cat)
13
+ CWD=$(echo "$input" | jq -r '.workspace.current_dir // "~"' 2>/dev/null)
14
+ CONFIG="$CWD/.prjct/prjct.config.json"
15
+ if [ -f "$CONFIG" ]; then
16
+ PROJECT_ID=$(jq -r '.projectId // ""' "$CONFIG" 2>/dev/null)
17
+ if [ -n "$PROJECT_ID" ]; then
18
+ # Upgrade notice \u2014 the daemon checks npm and writes this GLOBAL flag.
19
+ # The statusline only READS it; it does no version comparison itself.
20
+ UPDATE_STATUS="$HOME/.prjct-cli/state/update-status.json"
21
+ if [ -f "$UPDATE_STATUS" ] && [ "$(jq -r '.updateAvailable // false' "$UPDATE_STATUS" 2>/dev/null)" = "true" ]; then
22
+ LATEST=$(jq -r '.latest // ""' "$UPDATE_STATUS" 2>/dev/null)
23
+ echo "prjct v$LATEST - run p. upgrade"
24
+ exit 0
25
+ fi
26
+ STATE="$HOME/.prjct-cli/projects/$PROJECT_ID/storage/state.json"
27
+ if [ -f "$STATE" ]; then
28
+ TASK=$(jq -r '.currentTask.description // ""' "$STATE" 2>/dev/null)
29
+ if [ -n "$TASK" ]; then
30
+ echo "$TASK"
31
+ exit 0
32
+ fi
33
+ fi
34
+ fi
35
+ fi
36
+ echo "prjct"
37
+ `;await c.writeFile(n,$,{mode:493})}await ue(i,n),await me(e,i)}catch(t){A(t)||w.warn(`Status line warning: ${T(t)}`)}}u(pe,"installStatusLine");async function L(t,e){if(!await l(t))return;let i=await c.readdir(t);for(let o of i)if(o.endsWith(".sh")){let n=d.join(t,o),f=d.join(e,o);await c.copyFile(n,f),await c.chmod(f,493)}}u(L,"installStatusLineModules");async function ue(t,e){try{if(await l(t)){if((await c.lstat(t)).isSymbolicLink()&&await c.readlink(t)===e)return;await c.unlink(t)}await c.symlink(e,t)}catch{try{await l(e)&&(await c.copyFile(e,t),await c.chmod(t,493))}catch(o){A(o)||w.warn(`Symlink fallback warning: ${o.message}`)}}}u(ue,"ensureStatusLineSymlink");async function Ae(t){let e=t.name==="claude"?"@anthropic-ai/claude-code":"@google/gemini-cli";if(!de.isAvailable("npm"))return console.log(`${s.yellow("\u26A0\uFE0F npm is not available")}`),console.log(""),console.log(`${s.dim(`Install ${t.displayName} using one of:`)}`),console.log(s.dim(" \u2022 Install Node.js: https://nodejs.org")),console.log(s.dim(` \u2022 Use Homebrew: brew install ${t.name==="claude"?"claude":"gemini"}`)),console.log(s.dim(` \u2022 Use npx directly: npx ${e}`)),console.log(""),!1;try{return console.log(s.yellow(`\u{1F4E6} ${t.displayName} not found. Installing...`)),console.log(""),Ce("npm",["install","-g",e],{stdio:"inherit",timeout:ie("NPM_INSTALL")}),console.log(""),console.log(`${s.green("\u2713")} ${t.displayName} installed successfully`),console.log(""),!0}catch(i){let o=i;return o.killed&&o.signal==="SIGTERM"?(console.log(s.yellow(`\u26A0\uFE0F Installation timed out for ${t.displayName}`)),console.log(""),console.log(s.dim("The npm install took too long. Try:")),console.log(s.dim(" \u2022 Set PRJCT_TIMEOUT_NPM_INSTALL=300000 for 5 minutes")),console.log(s.dim(` \u2022 Run manually: npm install -g ${e}`))):console.log(s.yellow(`\u26A0\uFE0F Failed to install ${t.displayName}: ${o.message}`)),console.log(""),console.log(s.dim("Alternative installation methods:")),console.log(s.dim(` \u2022 npm: npm install -g ${e}`)),console.log(s.dim(` \u2022 yarn: yarn global add ${e}`)),console.log(s.dim(` \u2022 pnpm: pnpm add -g ${e}`)),console.log(s.dim(` \u2022 brew: brew install ${t.name==="claude"?"claude":"gemini"}`)),console.log(""),!1}}u(Ae,"installAICLI");async function ke(){let t=await Z(),e=await Y(),i={provider:e.provider,providers:[],cliInstalled:!1,commandsAdded:0,commandsUpdated:0,configAction:null},o=["claude","gemini"];for(let r of o){let p=M[r],I=t[r],g={provider:r,cliInstalled:!1,commandsAdded:0,commandsUpdated:0,configAction:null};if(!I.installed)if(r===e.provider)if(await Ae(p))g.cliInstalled=!0,i.cliInstalled=!0;else throw new Error(`${p.displayName} installation failed`);else continue;if(r==="claude"){if(await k.detectActiveProvider()){let a=await k.syncCommands();a.success&&(g.commandsAdded=a.added,g.commandsUpdated=a.updated,i.commandsAdded+=a.added,i.commandsUpdated+=a.updated);let m=await k.installGlobalConfig();m.success&&(g.configAction=m.action,i.configAction||(i.configAction=m.action)),await pe(),await B.ensureReady()}}else if(r==="gemini"){await Ee()&&(g.commandsAdded=1,i.commandsAdded+=1);let a=await Re();a.success&&(g.configAction=a.action)}i.providers.push(g)}if((await Q()).installed&&(await be()).success&&console.log(` ${s.green("\u2713")} Antigravity skill installed`),(await X()).installed){if(!(await se()).success)throw new Error("Codex skill installation failed");let p=await ae({autoRepair:!0});if(!p.verified)throw new Error(p.message||"Codex p. router verification failed");console.log(` ${s.green("\u2713")} Codex skill installed`),console.log(` ${s.green("\u2713")} Codex p. router ready`)}try{let{detectAgentRuntimes:r}=await import("./agent-runtime-registry-3RMVBEV2.mjs"),p=await r(process.cwd());if(p.some(a=>a.runtime.id==="grok"&&a.detected)){let{installGrokPlugin:a}=await import("./grok-plugin-4CE2WUYI.mjs"),m=await oe(),j=await ce(),C=await a();(j.success||C.success)&&console.log(` ${s.green("\u2713")} Grok skill/plugin ${j.action??"ready"}${m.changed?" + MCP":""}${C.changed?" + plugin":""}`)}if(p.some(a=>a.runtime.id==="opencode"&&a.detected)){let{ensureOpenCodeMcpServer:a}=await import("./opencode-mcp-5YSIYDI3.mjs"),m=await a();console.log(` ${s.green("\u2713")} OpenCode MCP ${m.changed?"installed":"ready"} \u2192 ${m.path}`)}if(p.some(a=>a.runtime.id==="pi"&&a.detected)){let{installPiSkill:a}=await import("./pi-skill-SDHTUK3V.mjs"),m=await a();m.success&&console.log(` ${s.green("\u2713")} Pi skill ${m.action??"ready"}${m.path?` \u2192 ${m.path}`:""}`)}}catch{}await re.saveConfig(h,await k.getInstallPath(),e.provider),await De();for(let r of i.providers)Pe(r,M[r.provider]);return i}u(ke,"run");async function Ee(){try{let t=y.join(F.homedir(),".gemini","commands"),e=y.join(t,"p.toml");try{return await v.unlink(e),!0}catch(i){if(i.code==="ENOENT")return!1;throw i}}catch(t){return w.warn(`Gemini router cleanup warning: ${T(t)}`),!1}}u(Ee,"installGeminiRouter");async function Re(){try{let t=y.join(F.homedir(),".gemini"),e=y.join(t,"GEMINI.md");await v.mkdir(t,{recursive:!0});let i=O("global/GEMINI.md");if(!i)return w.warn("Gemini global config template not found"),{success:!1,action:null};let o=await J(e),r=G(o.exists?o.content:"",i,"<!-- prjct:start - DO NOT REMOVE THIS MARKER -->","<!-- prjct:end - DO NOT REMOVE THIS MARKER -->");return await v.writeFile(e,r.content,"utf-8"),{success:!0,action:r.action}}catch(t){return w.warn(`Gemini config warning: ${T(t)}`),{success:!1,action:null}}}u(Re,"installGeminiGlobalConfig");async function be(){try{let t=y.join(F.homedir(),".gemini","antigravity","skills"),e=y.join(t,"prjct"),i=y.join(e,"SKILL.md");await v.mkdir(e,{recursive:!0});let o=await l(i),n=O("antigravity/SKILL.md");return n?(await v.writeFile(i,n,"utf-8"),{success:!0,action:o?"updated":"created"}):(w.warn("Antigravity SKILL.md template not found"),{success:!1,action:null})}catch(t){return w.warn(`Antigravity skill warning: ${T(t)}`),{success:!1,action:null}}}u(be,"installAntigravitySkill");var xe=".cli-version",ge=`${h}
38
+ schema=${te}`;async function De(){try{let t=x.globalProjectsDir;if(!await l(t))return;let e=(await v.readdir(t,{withFileTypes:!0})).filter(o=>o.isDirectory()).map(o=>o.name),i=[];for(let o of e)try{let n=y.join(t,o,xe);if((await v.readFile(n,"utf-8").catch(()=>"")).trim()===ge)continue;let r=N.getDoc(o,"project");r&&r.cliVersion!==h&&(r.cliVersion=h,N.setDoc(o,"project",r),i.push(o)),await v.writeFile(n,ge,"utf-8").catch(()=>{})}catch{}i.length>0&&console.log(` ${s.green("\u2713")} Updated ${i.length} project(s) to v${h}`)}catch(t){A(t)||w.warn(`Migration warning: ${T(t)}`)}}u(De,"migrateProjectsCliVersion");function Pe(t,e){if(console.log(""),t.cliInstalled?console.log(` ${s.green("\u2713")} ${e.displayName} CLI installed`):console.log(` ${s.green("\u2713")} ${e.displayName} CLI found`),t.commandsAdded+t.commandsUpdated>0){let o=[];t.commandsAdded>0&&o.push(`${t.commandsAdded} new`),t.commandsUpdated>0&&o.push(`${t.commandsUpdated} updated`),console.log(` ${s.green("\u2713")} Commands synced (${o.join(", ")})`)}else console.log(` ${s.green("\u2713")} Commands up to date`);t.configAction==="created"?console.log(` ${s.green("\u2713")} Global config created (${e.contextFile})`):t.configAction==="updated"?console.log(` ${s.green("\u2713")} Global config updated (${e.contextFile})`):t.configAction==="appended"&&console.log(` ${s.green("\u2713")} Global config merged (${e.contextFile})`),console.log("")}u(Pe,"showResults");var Le=process.argv[1]?.includes("setup.ts")||process.argv[1]?.includes("setup.js");Le&&ke().catch(t=>{console.error("Setup error:",t.message),process.exit(1)});export{ke as run};