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
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as D}from"./chunk-DYHYDHCW.mjs";import{a as x}from"./chunk-FZS3XGEA.mjs";import{b as N}from"./chunk-7WO5CEH3.mjs";import{e as u,g as M}from"./chunk-TKXOMN4K.mjs";import{b as m,h as C}from"./chunk-A6K4H3YT.mjs";import{a as d}from"./chunk-E66B27AL.mjs";import{z as r}from"zod";var R=["draft","reviewed","in_progress","shipped","archived"];var k=r.object({verdict:r.enum(["pass","fail"]),notes:r.string(),ts:r.string(),candidateHash:r.string().optional()}),P=r.object({risk:r.string().min(1),mitigation:r.string().min(1)}),b=r.object({name:r.string().min(1),given:r.array(r.string()).default([]),when:r.array(r.string()).default([]),then:r.array(r.string()).default([])}),q=r.object({slug:r.string().min(1),name:r.string().min(1),statement:r.string().min(1),scenarios:r.array(b).default([])}),$=r.object({added:r.array(q).default([]),modified:r.array(q).default([]),removed:r.array(r.string().min(1)).default([])}),H=r.object({id:r.string().min(1),ts:r.string(),ops:$}),h=r.object({goal:r.string().min(1),eli10:r.string().default(""),stakes:r.string().default(""),acceptance_criteria:r.array(r.string().min(1)).default([]),scope:r.array(r.string()).default([]),out_of_scope:r.array(r.string()).default([]),risks:r.array(P).default([]),test_plan:r.array(r.string()).default([]),reviews:r.record(r.string(),k).optional(),selected_reviewers:r.array(r.string()).default([]),linked_tasks:r.array(r.string()).default([]),notes:r.string().default(""),tasks_created_at:r.string().nullable().default(null),audit_candidate_hash:r.string().nullable().default(null),scenarios:r.record(r.string(),r.array(b)).default({}),delta_log:r.array(H).default([])});import{createHash as W}from"node:crypto";C();function F(l){return l.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}d(F,"slugifyRequirement");function z(l){return`delta-${W("sha256").update(l.trim()).digest("hex").slice(0,12)}`}d(z,"deltaIdFor");function v(l){return[...l].sort((t,e)=>t.ts===e.ts?t.id<e.id?-1:t.id>e.id?1:0:t.ts<e.ts?-1:1)}d(v,"sortDeltaLog");function L(l,t){let e=new Map;for(let n of[...l,...t])e.has(n.id)||e.set(n.id,n);return v([...e.values()])}d(L,"mergeDeltaLogs");function A(l){let t=new Set;for(let e of l)for(let n of[...e.ops.added,...e.ops.modified])t.add(n.statement);return t}d(A,"allDeltaStatements");function U(l){let t={order:[],statements:new Map,scenarios:new Map},e=d(n=>{t.statements.has(n.slug)||t.order.push(n.slug),t.statements.set(n.slug,n.statement),n.scenarios.length>0?t.scenarios.set(n.slug,n.scenarios):t.scenarios.delete(n.slug)},"upsert");for(let n of v(l)){for(let s of n.ops.added)e(s);for(let s of n.ops.modified)e(s);for(let s of n.ops.removed){t.statements.delete(s),t.scenarios.delete(s);let i=t.order.indexOf(s);i>=0&&t.order.splice(i,1)}}return t}d(U,"foldEntries");function O(l){let t=U(l),e={};for(let n of t.order){let s=t.scenarios.get(n);s&&(e[n]=s)}return{acceptance_criteria:t.order.map(n=>t.statements.get(n)??""),scenarios:e}}d(O,"materializeDeltas");function J(l){let t=[],e=[],n=[],s={section:null,req:null,scenario:null},i=d(()=>{s.scenario&&s.req&&s.req.scenarios.push({name:s.scenario.name,given:s.scenario.given,when:s.scenario.when,then:s.scenario.then}),s.scenario=null},"flushScenario"),c=d(()=>{i();let a=s.req;if(s.req=null,!a)return;let o=F(a.name);if(!o)throw new Error(`DELTA_PARSE: requirement name yields an empty slug: "${a.name}"`);if(s.section==="removed"){n.push(o);return}let g=a.statementLines.join(`
8
+ import{a as D}from"./chunk-DYHYDHCW.mjs";import{a as x}from"./chunk-RLKYEL3F.mjs";import{b as N}from"./chunk-7WO5CEH3.mjs";import{e as u,g as M}from"./chunk-TKXOMN4K.mjs";import{b as m,h as C}from"./chunk-A6K4H3YT.mjs";import{a as d}from"./chunk-E66B27AL.mjs";import{z as r}from"zod";var R=["draft","reviewed","in_progress","shipped","archived"];var k=r.object({verdict:r.enum(["pass","fail"]),notes:r.string(),ts:r.string(),candidateHash:r.string().optional()}),P=r.object({risk:r.string().min(1),mitigation:r.string().min(1)}),b=r.object({name:r.string().min(1),given:r.array(r.string()).default([]),when:r.array(r.string()).default([]),then:r.array(r.string()).default([])}),q=r.object({slug:r.string().min(1),name:r.string().min(1),statement:r.string().min(1),scenarios:r.array(b).default([])}),$=r.object({added:r.array(q).default([]),modified:r.array(q).default([]),removed:r.array(r.string().min(1)).default([])}),H=r.object({id:r.string().min(1),ts:r.string(),ops:$}),h=r.object({goal:r.string().min(1),eli10:r.string().default(""),stakes:r.string().default(""),acceptance_criteria:r.array(r.string().min(1)).default([]),scope:r.array(r.string()).default([]),out_of_scope:r.array(r.string()).default([]),risks:r.array(P).default([]),test_plan:r.array(r.string()).default([]),reviews:r.record(r.string(),k).optional(),selected_reviewers:r.array(r.string()).default([]),linked_tasks:r.array(r.string()).default([]),notes:r.string().default(""),tasks_created_at:r.string().nullable().default(null),audit_candidate_hash:r.string().nullable().default(null),scenarios:r.record(r.string(),r.array(b)).default({}),delta_log:r.array(H).default([])});import{createHash as W}from"node:crypto";C();function F(l){return l.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}d(F,"slugifyRequirement");function z(l){return`delta-${W("sha256").update(l.trim()).digest("hex").slice(0,12)}`}d(z,"deltaIdFor");function v(l){return[...l].sort((t,e)=>t.ts===e.ts?t.id<e.id?-1:t.id>e.id?1:0:t.ts<e.ts?-1:1)}d(v,"sortDeltaLog");function L(l,t){let e=new Map;for(let n of[...l,...t])e.has(n.id)||e.set(n.id,n);return v([...e.values()])}d(L,"mergeDeltaLogs");function A(l){let t=new Set;for(let e of l)for(let n of[...e.ops.added,...e.ops.modified])t.add(n.statement);return t}d(A,"allDeltaStatements");function U(l){let t={order:[],statements:new Map,scenarios:new Map},e=d(n=>{t.statements.has(n.slug)||t.order.push(n.slug),t.statements.set(n.slug,n.statement),n.scenarios.length>0?t.scenarios.set(n.slug,n.scenarios):t.scenarios.delete(n.slug)},"upsert");for(let n of v(l)){for(let s of n.ops.added)e(s);for(let s of n.ops.modified)e(s);for(let s of n.ops.removed){t.statements.delete(s),t.scenarios.delete(s);let i=t.order.indexOf(s);i>=0&&t.order.splice(i,1)}}return t}d(U,"foldEntries");function O(l){let t=U(l),e={};for(let n of t.order){let s=t.scenarios.get(n);s&&(e[n]=s)}return{acceptance_criteria:t.order.map(n=>t.statements.get(n)??""),scenarios:e}}d(O,"materializeDeltas");function J(l){let t=[],e=[],n=[],s={section:null,req:null,scenario:null},i=d(()=>{s.scenario&&s.req&&s.req.scenarios.push({name:s.scenario.name,given:s.scenario.given,when:s.scenario.when,then:s.scenario.then}),s.scenario=null},"flushScenario"),c=d(()=>{i();let a=s.req;if(s.req=null,!a)return;let o=F(a.name);if(!o)throw new Error(`DELTA_PARSE: requirement name yields an empty slug: "${a.name}"`);if(s.section==="removed"){n.push(o);return}let g=a.statementLines.join(`
9
9
  `).trim();if(!g)throw new Error(`DELTA_PARSE: requirement "${a.name}" has no SHALL statement`);(s.section==="modified"?e:t).push({slug:o,name:a.name,statement:g,scenarios:a.scenarios})},"flushReq");for(let a of l.split(`
10
10
  `)){let o=a.trim(),g=o.match(/^##\s+(ADDED|MODIFIED|REMOVED)\s+Requirements\s*$/i);if(g){c(),s.section=g[1].toLowerCase();continue}if(/^#{1,2}\s/.test(o)){c(),s.section=null;continue}let f=o.match(/^###\s+Requirement:\s*(.+)$/i);if(f){if(c(),!s.section)throw new Error('DELTA_PARSE: "### Requirement:" outside an ADDED/MODIFIED/REMOVED Requirements section');s.req={name:f[1].trim(),statementLines:[],scenarios:[]};continue}let S=o.match(/^####\s+Scenario:\s*(.+)$/i);if(S){if(i(),!s.req)throw new Error('DELTA_PARSE: "#### Scenario:" outside a "### Requirement:" block');s.scenario={name:S[1].trim(),given:[],when:[],then:[],last:null};continue}if(s.scenario&&o.startsWith("-")){let p=o.replace(/^-\s+/,"").match(/^(?:\*\*)?(GIVEN|WHEN|THEN|AND)\b\s*:?\s*(?:\*\*)?\s*(.*)$/i);if(p){let _=p[1].toUpperCase(),y=_==="AND"?s.scenario.last??"when":_.toLowerCase();s.scenario[y].push(p[2].trim()),s.scenario.last=y}continue}s.req&&!s.scenario&&o!==""&&s.req.statementLines.push(o)}if(c(),t.length+e.length+n.length===0)throw new Error("DELTA_EMPTY: no ADDED/MODIFIED/REMOVED Requirements sections found");return{added:t,modified:e,removed:n}}d(J,"parseDelta");function X(l,t,e={}){let n=J(t),s=e.id??z(t);if(l.delta_log.some(p=>p.id===s))return l;let i=U(l.delta_log).statements,c=new Set(n.added.map(p=>p.slug));for(let p of n.modified)if(!i.has(p.slug)&&!c.has(p.slug))throw new Error(`DELTA_UNKNOWN_REQUIREMENT: MODIFIED target "${p.name}" (slug: ${p.slug}) does not exist`);for(let p of n.removed)if(!i.has(p)&&!c.has(p))throw new Error(`DELTA_UNKNOWN_REQUIREMENT: REMOVED target slug "${p}" does not exist`);let a={id:s,ts:e.ts??m(),ops:n},o=v([...l.delta_log,a]),g=A(o),f=l.acceptance_criteria.filter(p=>!g.has(p)),S=O(o);return h.parse({...l,acceptance_criteria:[...f,...S.acceptance_criteria],scenarios:S.scenarios,delta_log:o})}d(X,"applyDelta");C();M();var E=class extends Error{constructor(e,n){super(`spec relational projection failed for ${e} (content write rolled back): ${n instanceof Error?n.message:String(n)}`);this.specId=e;this.name="SpecProjectionError"}specId;static{d(this,"SpecProjectionError")}};function w(l,t,e){try{u.run(l,"DELETE FROM spec_review WHERE spec_id = ?",t),u.run(l,"DELETE FROM spec_selected_reviewer WHERE spec_id = ?",t);for(let[n,s]of Object.entries(e.reviews??{}))u.run(l,"INSERT INTO spec_review (id, spec_id, lens, verdict, notes, created_at) VALUES (?, ?, ?, ?, ?, ?)",`${t}-rev-${n}`,t,n,s.verdict,s.notes??null,Date.now());for(let n of e.selected_reviewers)u.run(l,"INSERT OR IGNORE INTO spec_selected_reviewer (spec_id, lens) VALUES (?, ?)",t,n)}catch(n){throw new E(t,n)}}d(w,"projectSpecRelational");var T=class{static{d(this,"SpecStorage")}nextUpdatedAt(t,e){let n=m(),i=u.get(t,"SELECT updated_at FROM specs WHERE id = ?",e)?.updated_at;return!i||n>i?n:new Date(new Date(i).getTime()+1).toISOString()}create(t,e){let n=x(),s=m(),i=h.parse(e.content);try{u.transaction(t,()=>{u.run(t,`INSERT INTO specs (id, title, status, content, tags, created_at, updated_at)
11
11
  VALUES (?, ?, 'draft', ?, ?, ?, ?)`,n,e.title,JSON.stringify(i),e.tags?JSON.stringify(e.tags):null,s,s),w(t,n,i)})}catch(a){if(a instanceof E)D.warn(a.message);else throw a}let c={id:n,title:e.title,status:"draft",content:i,tags:e.tags??{},createdAt:s,updatedAt:s,shippedAt:null,shippedPr:null,shippedSha:null,archivedAt:null};return this.publishSync(t,c),c}get(t,e){let n=u.get(t,"SELECT * FROM specs WHERE id = ?",e);return n?this.rowToSpec(n):null}list(t,e={}){let n=[];e.status&&n.push(e.status);let i=`SELECT * FROM specs WHERE 1=1${e.status?" AND status = ?":e.includeArchived?"":" AND status != 'archived'"} ORDER BY created_at DESC`;return u.query(t,i,...n).map(a=>this.rowToSpec(a))}search(t,e){let n=`%${e}%`;return u.query(t,"SELECT * FROM specs WHERE title LIKE ? OR content LIKE ? ORDER BY created_at DESC",n,n).map(i=>this.rowToSpec(i))}updateContent(t,e,n){let s=h.parse(n),i=this.nextUpdatedAt(t,e);try{u.transaction(t,()=>{u.run(t,"UPDATE specs SET content = ?, updated_at = ? WHERE id = ?",JSON.stringify(s),i,e),w(t,e,s)})}catch(a){if(a instanceof E)D.warn(a.message);else throw a}let c=this.get(t,e);return c&&this.publishSync(t,c),c}casUpdate(t,e,n,s){let i=h.parse(n),c=this.nextUpdatedAt(t,e),a=(()=>{try{return u.transaction(t,()=>{let g=u.run(t,"UPDATE specs SET content = ?, updated_at = ? WHERE id = ? AND updated_at = ?",JSON.stringify(i),c,e,s).changes===1;return g&&w(t,e,i),g})}catch(o){if(o instanceof E)return D.warn(o.message),!1;throw o}})();if(a){let o=this.get(t,e);o&&this.publishSync(t,o)}return a}setStatus(t,e,n){if(!R.includes(n))throw new Error(`invalid spec status: ${n}`);let s=this.nextUpdatedAt(t,e),i=[],c=[n,s];n==="shipped"&&(i.push("shipped_at = ?"),c.push(s)),n==="archived"&&(i.push("archived_at = ?"),c.push(s));let a=["status = ?","updated_at = ?",...i].join(", ");c.push(e),u.run(t,`UPDATE specs SET ${a} WHERE id = ?`,...c);let o=this.get(t,e);return o&&this.publishSync(t,o),o}setShippedPr(t,e,n){u.run(t,"UPDATE specs SET shipped_pr = ?, updated_at = ? WHERE id = ?",n,this.nextUpdatedAt(t,e),e);let s=this.get(t,e);return s&&this.publishSync(t,s),s}setShippedSha(t,e,n){u.run(t,"UPDATE specs SET shipped_sha = ?, updated_at = ? WHERE id = ?",n,this.nextUpdatedAt(t,e),e);let s=this.get(t,e);return s&&this.publishSync(t,s),s}linkTask(t,e,n){let s=this.get(t,e);if(!s)return null;if(s.content.linked_tasks.includes(n))return s;let i={...s.content,linked_tasks:[...s.content.linked_tasks,n]};return this.updateContent(t,e,i)}delete(t,e){let n=this.get(t,e);return n?(u.run(t,"DELETE FROM specs WHERE id = ?",e),this.publishSync(t,n,"delete"),!0):!1}applyRemote(t,e){if(!e.id)return;let n=typeof e.content=="string"?e.content:JSON.stringify(e.content??{}),s=R.includes(e.status)?e.status:"draft",i=e.tags==null?null:typeof e.tags=="string"?e.tags:JSON.stringify(e.tags),c=m();if(u.run(t,`INSERT INTO specs (id, title, status, content, tags, created_at, updated_at)
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as k,b as a}from"./chunk-Y3RHBU2R.mjs";import{a as E}from"./chunk-LR24AIEW.mjs";import{k as l,o as A}from"./chunk-UH4MD3F3.mjs";import{c as d}from"./chunk-PKDYFXMI.mjs";import{e as c,f as v}from"./chunk-BUDZL4DW.mjs";import{a as n}from"./chunk-E66B27AL.mjs";v();function C(r,e,t){if(t.md){console.log(`> ${e}`);return}k[r](e)}n(C,"notify");var B=n((r,e={})=>C("warn",r,e),"notifyWarn");var D=n((r,e={})=>C("fail",r,e),"notifyFail");function J(r,e={}){return B(r,e),{success:!1,error:r}}n(J,"failWith");function Z(r,e={}){return D(r,e),{success:!1,error:r}}n(Z,"failHard");function ee(r,e){let t=c(r);return e&&D(t,e),{success:!1,error:t}}n(ee,"failFromError");A();import x from"node:path";var f={value:null},$={type:"claude",name:"Claude (Code + Desktop)",isSupported:!0,capabilities:{mcp:!0,filesystem:"mcp",markdown:!0,emojis:!0,colors:!0,interactive:!0,agents:!0},config:{configFile:"CLAUDE.md",commandPrefix:"p.",responseStyle:"rich",dataDir:".prjct",commandsDir:"~/.claude/commands/p"},environment:{hasMCP:!0,sandboxed:!1,persistent:!0,agentSystem:!0}},j={type:"terminal",name:"Terminal/CLI",isSupported:!0,capabilities:{mcp:!1,filesystem:"native",markdown:!1,emojis:!0,colors:!0,interactive:!0,agents:!1},config:{configFile:null,commandPrefix:"prjct",responseStyle:"cli",dataDir:".prjct",commandsDir:null},environment:{hasMCP:!1,sandboxed:!1,persistent:!0,agentSystem:!1}};async function L(){if(process.env.CLAUDE_AGENT||process.env.ANTHROPIC_CLAUDE||global.mcp||process.env.MCP_AVAILABLE)return!0;let r=process.cwd();if(await l(x.join(r,"CLAUDE.md")))return!0;let e=process.env.HOME||process.env.USERPROFILE||"";if(await l(x.join(e,".claude")))return!0;let t=process.cwd();return!!(t.includes("/.claude/")||t.includes("/claude-workspace/"))}n(L,"isClaudeEnvironment");function V(){return{...$}}n(V,"getClaudeAgent");function U(){return{...j}}n(U,"getTerminalAgent");function G(){return!!(process.env.CODEX_SANDBOX||process.env.PRJCT_SANDBOX==="1")}n(G,"isSandboxed");async function T(){if(f.value)return f.value;let r=await L()?V():U();return r.environment={...r.environment,sandboxed:G()},f.value=r,r}n(T,"detect");v();A();import p from"node:fs/promises";var y=class{static{n(this,"RuntimeClaude")}name;type;constructor(){this.name="Claude Code",this.type="claude"}formatResponse(e,t="info"){let i={success:"\u2705",error:"\u274C",warning:"\u26A0\uFE0F",info:"\u2139\uFE0F",celebrate:"\u{1F389}",ship:"\u{1F680}",focus:"\u{1F3AF}",idea:"\u{1F4A1}",progress:"\u{1F4CA}",task:"\u{1F4DD}"};return`${i[t]||i.info} ${e}`}async readFile(e){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.read(e)}catch(t){console.warn(`MCP readFile failed, falling back to fs: ${c(t)}`)}return await p.readFile(e,"utf8")}async writeFile(e,t){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.write(e,t)}catch(i){console.warn(`MCP writeFile failed, falling back to fs: ${c(i)}`)}await p.writeFile(e,t,"utf8")}async listDirectory(e){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.list(e)}catch(t){console.warn(`MCP listDirectory failed, falling back to fs: ${c(t)}`)}return await p.readdir(e)}async fileExists(e){return l(e)}async createDirectory(e){await p.mkdir(e,{recursive:!0})}getTimestamp(){return new Date().toISOString()}formatTaskList(e){return!e||e.length===0?"\u{1F4CB} No tasks queued":`\u{1F4CB} Queue:
8
+ import{a as k,b as a}from"./chunk-NSTXHVTH.mjs";import{a as E}from"./chunk-IDPBMN3Q.mjs";import{k as l,o as A}from"./chunk-UH4MD3F3.mjs";import{c as d}from"./chunk-PKDYFXMI.mjs";import{e as c,f as v}from"./chunk-BUDZL4DW.mjs";import{a as n}from"./chunk-E66B27AL.mjs";v();function C(r,e,t){if(t.md){console.log(`> ${e}`);return}k[r](e)}n(C,"notify");var B=n((r,e={})=>C("warn",r,e),"notifyWarn");var D=n((r,e={})=>C("fail",r,e),"notifyFail");function J(r,e={}){return B(r,e),{success:!1,error:r}}n(J,"failWith");function Z(r,e={}){return D(r,e),{success:!1,error:r}}n(Z,"failHard");function ee(r,e){let t=c(r);return e&&D(t,e),{success:!1,error:t}}n(ee,"failFromError");A();import x from"node:path";var f={value:null},$={type:"claude",name:"Claude (Code + Desktop)",isSupported:!0,capabilities:{mcp:!0,filesystem:"mcp",markdown:!0,emojis:!0,colors:!0,interactive:!0,agents:!0},config:{configFile:"CLAUDE.md",commandPrefix:"p.",responseStyle:"rich",dataDir:".prjct",commandsDir:"~/.claude/commands/p"},environment:{hasMCP:!0,sandboxed:!1,persistent:!0,agentSystem:!0}},j={type:"terminal",name:"Terminal/CLI",isSupported:!0,capabilities:{mcp:!1,filesystem:"native",markdown:!1,emojis:!0,colors:!0,interactive:!0,agents:!1},config:{configFile:null,commandPrefix:"prjct",responseStyle:"cli",dataDir:".prjct",commandsDir:null},environment:{hasMCP:!1,sandboxed:!1,persistent:!0,agentSystem:!1}};async function L(){if(process.env.CLAUDE_AGENT||process.env.ANTHROPIC_CLAUDE||global.mcp||process.env.MCP_AVAILABLE)return!0;let r=process.cwd();if(await l(x.join(r,"CLAUDE.md")))return!0;let e=process.env.HOME||process.env.USERPROFILE||"";if(await l(x.join(e,".claude")))return!0;let t=process.cwd();return!!(t.includes("/.claude/")||t.includes("/claude-workspace/"))}n(L,"isClaudeEnvironment");function V(){return{...$}}n(V,"getClaudeAgent");function U(){return{...j}}n(U,"getTerminalAgent");function G(){return!!(process.env.CODEX_SANDBOX||process.env.PRJCT_SANDBOX==="1")}n(G,"isSandboxed");async function T(){if(f.value)return f.value;let r=await L()?V():U();return r.environment={...r.environment,sandboxed:G()},f.value=r,r}n(T,"detect");v();A();import p from"node:fs/promises";var y=class{static{n(this,"RuntimeClaude")}name;type;constructor(){this.name="Claude Code",this.type="claude"}formatResponse(e,t="info"){let i={success:"\u2705",error:"\u274C",warning:"\u26A0\uFE0F",info:"\u2139\uFE0F",celebrate:"\u{1F389}",ship:"\u{1F680}",focus:"\u{1F3AF}",idea:"\u{1F4A1}",progress:"\u{1F4CA}",task:"\u{1F4DD}"};return`${i[t]||i.info} ${e}`}async readFile(e){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.read(e)}catch(t){console.warn(`MCP readFile failed, falling back to fs: ${c(t)}`)}return await p.readFile(e,"utf8")}async writeFile(e,t){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.write(e,t)}catch(i){console.warn(`MCP writeFile failed, falling back to fs: ${c(i)}`)}await p.writeFile(e,t,"utf8")}async listDirectory(e){try{if(global.mcp?.filesystem)return await global.mcp.filesystem.list(e)}catch(t){console.warn(`MCP listDirectory failed, falling back to fs: ${c(t)}`)}return await p.readdir(e)}async fileExists(e){return l(e)}async createDirectory(e){await p.mkdir(e,{recursive:!0})}getTimestamp(){return new Date().toISOString()}formatTaskList(e){return!e||e.length===0?"\u{1F4CB} No tasks queued":`\u{1F4CB} Queue:
9
9
  ${e.map((t,i)=>`${i+1}. ${t}`).join(`
10
10
  `)}`}formatRecap(e){return`\u{1F4CA} Recap
11
11
 
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{c as j}from"./chunk-SWJ7TLBD.mjs";import{n as w}from"./chunk-A6K4H3YT.mjs";import{c as C}from"./chunk-JQE2F2RK.mjs";import{k as r,o as u}from"./chunk-UH4MD3F3.mjs";import{c as A}from"./chunk-EXVL2OFE.mjs";import{b as l,c,d as h,e as d}from"./chunk-SYHDEUVU.mjs";import{c as R,e as b}from"./chunk-IJ523YO2.mjs";import{a as s}from"./chunk-E66B27AL.mjs";u();import a from"node:path";var G=`${h}
8
+ import{c as j}from"./chunk-NMB6YSAH.mjs";import{n as w}from"./chunk-A6K4H3YT.mjs";import{c as C}from"./chunk-JQE2F2RK.mjs";import{k as r,o as u}from"./chunk-UH4MD3F3.mjs";import{c as A}from"./chunk-A6LRNS6R.mjs";import{b as l,c,d as h,e as d}from"./chunk-SYHDEUVU.mjs";import{c as R,e as b}from"./chunk-AEDB75AK.mjs";import{a as s}from"./chunk-E66B27AL.mjs";u();import a from"node:path";var G=`${h}
9
9
  - project facts (stack/commands): see \`PRJCT.md\``,P=`${l}
10
10
  ${G}
11
11
  ${c}
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c,d}from"./chunk-UVATSTRF.mjs";import"./chunk-DYHYDHCW.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-EXVL2OFE.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as CODEX_SKILL_MAX_BYTES,b as buildCodexSkillContent,c as installCodexSkill,d as verifyCodexPRouterReady};
8
+ import{a,b,c,d}from"./chunk-XXVHUYL7.mjs";import"./chunk-DYHYDHCW.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-A6LRNS6R.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as CODEX_SKILL_MAX_BYTES,b as buildCodexSkillContent,c as installCodexSkill,d as verifyCodexPRouterReady};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c,d}from"./chunk-KV4NXLPT.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-EXVL2OFE.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as CommandInstaller,d as default,c as getProviderPaths,a as installGlobalConfig};
8
+ import{a,b,c,d}from"./chunk-IHEOOJJT.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-A6LRNS6R.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as CommandInstaller,d as default,c as getProviderPaths,a as installGlobalConfig};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{b as a}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as default};
8
+ import{b as a}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as default};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as t}from"./chunk-OLQAMCYV.mjs";import"./chunk-NJ74RHNC.mjs";import{a as n}from"./chunk-WUOVBBPC.mjs";import"./chunk-KDNUQPAK.mjs";import"./chunk-33BHU4OM.mjs";import"./chunk-ZYCNW75E.mjs";import"./chunk-JR542RI2.mjs";import"./chunk-CPR4FPXG.mjs";import"./chunk-3HGQPUKG.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-TF6PN7IB.mjs";import"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-QXCEBAIA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";function p(r=process.cwd(),e){return n({event:"CwdChanged",projectPath:r,build:o(async(d,i)=>{let c=d.cwd||i;return t(c)},"build")},e)}o(p,"runCwdChangedHook");export{p as runCwdChangedHook};
8
+ import{a as t}from"./chunk-63P5VOR6.mjs";import"./chunk-NJ74RHNC.mjs";import{a as n}from"./chunk-WUOVBBPC.mjs";import"./chunk-B7MHIUFA.mjs";import"./chunk-JF6DFOQK.mjs";import"./chunk-ZYCNW75E.mjs";import"./chunk-JR542RI2.mjs";import"./chunk-CPR4FPXG.mjs";import"./chunk-3HGQPUKG.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-TF6PN7IB.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-QXCEBAIA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";function p(r=process.cwd(),e){return n({event:"CwdChanged",projectPath:r,build:o(async(d,i)=>{let c=d.cwd||i;return t(c)},"build")},e)}o(p,"runCwdChangedHook");export{p as runCwdChangedHook};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c,d,e}from"./chunk-H2DGDAQP.mjs";import"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-RT2DFIWF.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as buildDistillContent,d as distillAndDiscardAllAutoSources,c as distillAndDiscardAutoSource,e as eliminateSoftDeletedNoValue,a as hardDeleteEntries};
8
+ import{a,b,c,d,e}from"./chunk-IL36ER4U.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-F3PNT2DQ.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as buildDistillContent,d as distillAndDiscardAllAutoSources,c as distillAndDiscardAutoSource,e as eliminateSoftDeletedNoValue,a as hardDeleteEntries};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{c as y}from"./chunk-TF6PN7IB.mjs";import{d as T}from"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import{b as g}from"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import{b as A}from"./chunk-D7DQABWO.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import{b}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import{b as _,e as M}from"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as x}from"./chunk-E66B27AL.mjs";var R=new Set(["decision","gotcha","learning","fact","feedback","spec"]);async function q(C,r,p={}){let{topic:c,types:i,tags:a}=p,l=p.limit??30,w=c?(()=>{let e=c.split(/\s+/).filter(Boolean);try{return g.searchFts(r,e,l).filter(t=>(!i||i.includes(t.type))&&(!a||M(t,a)))}catch{return[]}})():[],m=w.length>0?w:g.recall(r,{topic:c,types:i,tags:a,limit:l}).slice(0,l),d=(c?await(async()=>{try{let e=await b.readConfig(C);if(e&&T.isEnabled(e)){let n=await T.semanticSearch(r,c,e,10);if(n.length>0){let t=new Set(m.map(o=>o.id));return[...n.filter(o=>!t.has(o.id)&&(!i||i.includes(o.type))&&(!a||M(o,a))),...m].slice(0,l)}}return m}catch{return m}})():m).filter(e=>_(e)||(i?.includes(e.type)??!1)),h=i?.includes("improvement-signal")?d:await(async()=>{try{let{isAutoSource:e}=await import("./purge-N2WN6NDB.mjs"),n=45*864e5,t=Date.now(),u=d.filter(s=>{if(!e(s.tags?.source)||R.has(s.type)&&!e(s.tags?.source))return!0;let S=Date.parse(s.rememberedAt);return Number.isFinite(S)?t-S<n:!0}),o=u.filter(s=>!e(s.tags?.source)),O=u.filter(s=>e(s.tags?.source));return[...o,...O].slice(0,Math.max(l,u.length))}catch{return d}})(),f=h.length>1?y.rerank(r,h):h,k=p.expandLinks!==!1&&f.length>0?g.expandWithLinks(r,f,5):[],E=k.length>0?f.concat(k):f;try{let e=await A.getCurrentTask(r),n=new Date().toISOString();e?.id&&y.recordSurfaced(r,E.map(t=>t.id),e.id,n,{queryText:c,surface:"context-memory"});for(let t of E)y.recordFetch(r,t.id,n)}catch{}return E}x(q,"enrichedRecall");export{q as enrichedRecall};
8
+ import{c as y}from"./chunk-TF6PN7IB.mjs";import{d as T}from"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import{b as g}from"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import{b as A}from"./chunk-6NMHVPAI.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import{b}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import{b as _,e as M}from"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as x}from"./chunk-E66B27AL.mjs";var R=new Set(["decision","gotcha","learning","fact","feedback","spec"]);async function q(C,r,p={}){let{topic:c,types:i,tags:a}=p,l=p.limit??30,w=c?(()=>{let e=c.split(/\s+/).filter(Boolean);try{return g.searchFts(r,e,l).filter(t=>(!i||i.includes(t.type))&&(!a||M(t,a)))}catch{return[]}})():[],m=w.length>0?w:g.recall(r,{topic:c,types:i,tags:a,limit:l}).slice(0,l),d=(c?await(async()=>{try{let e=await b.readConfig(C);if(e&&T.isEnabled(e)){let n=await T.semanticSearch(r,c,e,10);if(n.length>0){let t=new Set(m.map(o=>o.id));return[...n.filter(o=>!t.has(o.id)&&(!i||i.includes(o.type))&&(!a||M(o,a))),...m].slice(0,l)}}return m}catch{return m}})():m).filter(e=>_(e)||(i?.includes(e.type)??!1)),h=i?.includes("improvement-signal")?d:await(async()=>{try{let{isAutoSource:e}=await import("./purge-5W3K2MZL.mjs"),n=45*864e5,t=Date.now(),u=d.filter(s=>{if(!e(s.tags?.source)||R.has(s.type)&&!e(s.tags?.source))return!0;let S=Date.parse(s.rememberedAt);return Number.isFinite(S)?t-S<n:!0}),o=u.filter(s=>!e(s.tags?.source)),O=u.filter(s=>e(s.tags?.source));return[...o,...O].slice(0,Math.max(l,u.length))}catch{return d}})(),f=h.length>1?y.rerank(r,h):h,k=p.expandLinks!==!1&&f.length>0?g.expandWithLinks(r,f,5):[],E=k.length>0?f.concat(k):f;try{let e=await A.getCurrentTask(r),n=new Date().toISOString();e?.id&&y.recordSurfaced(r,E.map(t=>t.id),e.id,n,{queryText:c,surface:"context-memory"});for(let t of E)y.recordFetch(r,t.id,n)}catch{}return E}x(q,"enrichedRecall");export{q as enrichedRecall};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c,d,e,f,g}from"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as MACHINE_TAG_KEYS,d as deriveTitle,c as flatDetail,e as formatMemoryDigestLine,g as formatMemoryMd,f as linkifyMemRefs,b as preventiveLabel};
8
+ import{a,b,c,d,e,f,g}from"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as MACHINE_TAG_KEYS,d as deriveTitle,c as flatDetail,e as formatMemoryDigestLine,g as formatMemoryMd,f as linkifyMemRefs,b as preventiveLabel};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c,d,e,f,g,h,i}from"./chunk-E7NA34VQ.mjs";import"./chunk-HGZQWYBL.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{c as RECEIPT_CAPTURE,a as RECEIPT_SOURCE,b as RECEIPT_TOPIC,d as buildJudgmentReceipt,i as countReceiptsWritten,h as latestJudgmentReceipt24h,f as persistJudgmentReceipt,e as summarizeJudgmentReceipt,g as synthesizeJudgmentReceipt};
8
+ import{a,b,c,d,e,f,g,h,i}from"./chunk-Y7RDBMNC.mjs";import"./chunk-HGZQWYBL.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{c as RECEIPT_CAPTURE,a as RECEIPT_SOURCE,b as RECEIPT_TOPIC,d as buildJudgmentReceipt,i as countReceiptsWritten,h as latestJudgmentReceipt24h,f as persistJudgmentReceipt,e as summarizeJudgmentReceipt,g as synthesizeJudgmentReceipt};
@@ -5,5 +5,5 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as d}from"./chunk-5TBQNW2G.mjs";import{h as f}from"./chunk-E7NA34VQ.mjs";import"./chunk-HGZQWYBL.mjs";import{a as p}from"./chunk-3UB6SFRA.mjs";import"./chunk-XSJ7SPVR.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-D7DQABWO.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as c}from"./chunk-E66B27AL.mjs";function j(n){return n?.land?.mode??"advisory"}c(j,"effectiveLandMode");async function L(n,m,u){let l=j(u);if(l==="off")return null;let t=await p(n,m).catch(()=>null),r=f(n);if(!t?.current&&!r)return null;let e=[];if(t?.current){let i=t.current.description.slice(0,60),s=t.current.isCurrent?await import("./state-storage-AJUPG7J5.mjs").then(({stateStorage:g})=>g.getCurrentTask(n)).catch(()=>null):null,o=d(u,{description:t.current.description,turnCount:s?.turnCount,tokensIn:s?.tokensIn,tokensOut:s?.tokensOut}),a=l==="strict"||o.level==="critical"||o.level==="warn",h=a?"# prjct: LAND REQUIRED before context dies":"# prjct: land the plane";e.push(h,`Open cycle: "${i}${t.current.description.length>60?"\u2026":""}"`,a?'Before ending the session: `prjct status done` or `prjct log "\u2026"`, then `prjct land` (auto-synthesizes the Session close hand-off \u2014 no manual remember). Next window: `prjct prime`.':"Before ending the session: `prjct land` (auto hand-off + judgment receipt) \xB7 optional `prjct memory export` for the team."),o.cue&&e.push("",o.cue)}if(r){e.length>0&&e.push("");let i=r.trapCount>0?`${r.trapCount} trap(s) re-surfaced last session`:"judgment continuity landed last session";e.push("# prjct: prior judgment receipt (24h)",`${i} \xB7 \`${r.id}\` \u2014 closed-loop proof, not bulk memory. \`prjct search "judgment-receipt"\` if you need the full receipt.`)}return e.length>0?e.join(`
8
+ import{a as d}from"./chunk-5TBQNW2G.mjs";import{h as f}from"./chunk-Y7RDBMNC.mjs";import"./chunk-HGZQWYBL.mjs";import{a as p}from"./chunk-AFGXKRRP.mjs";import"./chunk-XSJ7SPVR.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-6NMHVPAI.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as c}from"./chunk-E66B27AL.mjs";function j(n){return n?.land?.mode??"advisory"}c(j,"effectiveLandMode");async function L(n,m,u){let l=j(u);if(l==="off")return null;let t=await p(n,m).catch(()=>null),r=f(n);if(!t?.current&&!r)return null;let e=[];if(t?.current){let i=t.current.description.slice(0,60),s=t.current.isCurrent?await import("./state-storage-EMWLIFQJ.mjs").then(({stateStorage:g})=>g.getCurrentTask(n)).catch(()=>null):null,o=d(u,{description:t.current.description,turnCount:s?.turnCount,tokensIn:s?.tokensIn,tokensOut:s?.tokensOut}),a=l==="strict"||o.level==="critical"||o.level==="warn",h=a?"# prjct: LAND REQUIRED before context dies":"# prjct: land the plane";e.push(h,`Open cycle: "${i}${t.current.description.length>60?"\u2026":""}"`,a?'Before ending the session: `prjct status done` or `prjct log "\u2026"`, then `prjct land` (auto-synthesizes the Session close hand-off \u2014 no manual remember). Next window: `prjct prime`.':"Before ending the session: `prjct land` (auto hand-off + judgment receipt) \xB7 optional `prjct memory export` for the team."),o.cue&&e.push("",o.cue)}if(r){e.length>0&&e.push("");let i=r.trapCount>0?`${r.trapCount} trap(s) re-surfaced last session`:"judgment continuity landed last session";e.push("# prjct: prior judgment receipt (24h)",`${i} \xB7 \`${r.id}\` \u2014 closed-loop proof, not bulk memory. \`prjct search "judgment-receipt"\` if you need the full receipt.`)}return e.length>0?e.join(`
9
9
  `):null}c(L,"buildLandCue");export{L as buildLandCue,j as effectiveLandMode};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b}from"./chunk-3AHW4XQH.mjs";import"./chunk-HGZQWYBL.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as buildLandHandoffContent,a as synthesizeLandHandoff};
8
+ import{a,b}from"./chunk-6RS7PNAN.mjs";import"./chunk-HGZQWYBL.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{b as buildLandHandoffContent,a as synthesizeLandHandoff};
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as F}from"./chunk-B36LC2JR.mjs";import{a as N}from"./chunk-DYHYDHCW.mjs";import{e as f,g as x}from"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{b,h as ne}from"./chunk-A6K4H3YT.mjs";import{a as Q,f as re}from"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import{c as R}from"./chunk-EXVL2OFE.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";import p from"node:fs/promises";import d from"node:path";re();import{z as _}from"zod";ne();x();var D="crew:checkpoints",Y="crew/CHECKPOINTS.md",se=_.object({content:_.string(),source:_.enum(["default","user","migrated"]),updated_at:_.string().min(1)});function ie(){let t=R(Y);if(!t)throw new Error(`Missing bundled crew checkpoints template: ${Y}`);return t}l(ie,"getBundledDefault");var A=class{static{l(this,"CheckpointsStorage")}get(n){let e=f.getDoc(n,D);return e===null?{content:ie(),source:"default",updated_at:b()}:se.parse(e)}hasCustomization(n){return f.hasDoc(n,D)}set(n,e,r="user"){let o={content:e,source:r,updated_at:b()};return f.setDoc(n,D,o),o}reset(n){f.deleteDoc(n,D)}},oe=new A,E=oe;x();x();import{z as S}from"zod";var M="team:enrollment",V=S.object({required:S.boolean(),minVersion:S.string().min(1),enrolledAt:S.string().min(1),enrolledBy:S.string().nullable().default(null)}),$=class{static{l(this,"TeamEnrollmentStorage")}get(n){let e=f.getDoc(n,M);return e===null?null:V.parse(e)}set(n,e){let r=V.parse(e);f.setDoc(n,M,r)}clear(n){f.deleteDoc(n,M)}};var ae=new $,C=ae;var P=".prjct/CHECKPOINTS.md",L=".prjct/team.json",I="migration:v2.19.8:last-flagged-checkpoints",H="migration:v2.19.8:last-flagged-team",O="migration:v3.77:last-ghost-purge-warn",q="migration:v3.77:last-agent-repair-warn",ce=["sessions","audits","deploy"],le=[/\.prjct\/sessions\/<task/i,/\.prjct\/sessions\/\$\{/i,/->\s*`?\.prjct\/sessions\//i,/write(?:s|n)?\s+(?:a\s+)?(?:plan|report|results?|verdict|findings?)[^\n]{0,120}\.prjct\/sessions\//i,/write(?:s|n)?\s+its\s+results[^\n]{0,80}\.prjct\/sessions\//i,/Session artifacts at `?\.prjct\/sessions\//i,/Implementer report at `?\.prjct\/sessions\//i,/Reviewer verdict at `?\.prjct\/sessions\//i,/\.prjct\/audits\//i,/\.prjct\/deploy\//i,/SESSION_ROOT\s*=/i,/Write under `?SESSION_ROOT/i,/~\/\.prjct-cli\/projects\/[^\s`]+\/sessions\//i,/sessions\/<task-slug>\/\{?plan/i],We=[".prjct/sessions/<task",".prjct/audits/",".prjct/deploy/"],ge=F.map(t=>({destRelative:`.claude/agents/${t.name}.md`,templateKey:`crew/roles/${t.name}.md`})),v="CLAUDE.md",W="CREW.md",me="crew/leader-mode.md",K="<!-- prjct:crew:start - DO NOT REMOVE THIS MARKER -->",U="<!-- prjct:crew:end - DO NOT REMOVE THIS MARKER -->",G="<!-- prjct:crew:end -->",X="<!-- prjct:checkpoints:start - DO NOT EDIT (managed by `prjct crew checkpoints set|reset`) -->",ue="<!-- prjct:checkpoints:end -->",pe=["prjct.config.json","memory-export"];async function te(t){try{return(await p.stat(t)).mtimeMs}catch{return null}}l(te,"statMtimeMs");async function k(t){try{return await p.readFile(t,"utf-8")}catch{return null}}l(k,"tryReadFile");async function J(t){try{return await p.access(t),!0}catch{return!1}}l(J,"pathExists");function j(t,n){return f.getDoc(t,n)}l(j,"readFlag");function w(t,n,e){f.setDoc(t,n,{mtime_ms:e,migrated_at:new Date().toISOString()})}l(w,"writeFlag");async function y(t,n,e){try{let{projectMemory:r}=await import("./project-memory-UDH56VFP.mjs");await r.remember(t,{type:"inbox",content:n,tags:e,provenance:"declared"})}catch(r){N.debug("Legacy sweep inbox capture failed (non-critical)",{error:r instanceof Error?r.message:String(r)})}}l(y,"captureInboxWarning");function T(t){return le.some(n=>n.test(t))}l(T,"containsForbiddenWriteInstruction");function de(t,n){let e=F.find(o=>`.claude/agents/${o.name}.md`===n)?.role;if(!e)return t;let{model:r}=Q(e);return t.replace(/^model:[ \t].*$/m,`model: ${r}`)}l(de,"stampCrewModelPolicy");function fe(t,n){let e=t.indexOf(X),r=t.indexOf(ue);if(e<0||r<0||r<e)return t;let o=t.slice(0,e+X.length),c=t.slice(r);return`${o}
8
+ import{a as F}from"./chunk-B36LC2JR.mjs";import{a as N}from"./chunk-DYHYDHCW.mjs";import{e as f,g as x}from"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{b,h as ne}from"./chunk-A6K4H3YT.mjs";import{a as Q,f as re}from"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import{c as R}from"./chunk-A6LRNS6R.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";import p from"node:fs/promises";import d from"node:path";re();import{z as _}from"zod";ne();x();var D="crew:checkpoints",Y="crew/CHECKPOINTS.md",se=_.object({content:_.string(),source:_.enum(["default","user","migrated"]),updated_at:_.string().min(1)});function ie(){let t=R(Y);if(!t)throw new Error(`Missing bundled crew checkpoints template: ${Y}`);return t}l(ie,"getBundledDefault");var A=class{static{l(this,"CheckpointsStorage")}get(n){let e=f.getDoc(n,D);return e===null?{content:ie(),source:"default",updated_at:b()}:se.parse(e)}hasCustomization(n){return f.hasDoc(n,D)}set(n,e,r="user"){let o={content:e,source:r,updated_at:b()};return f.setDoc(n,D,o),o}reset(n){f.deleteDoc(n,D)}},oe=new A,E=oe;x();x();import{z as S}from"zod";var M="team:enrollment",V=S.object({required:S.boolean(),minVersion:S.string().min(1),enrolledAt:S.string().min(1),enrolledBy:S.string().nullable().default(null)}),$=class{static{l(this,"TeamEnrollmentStorage")}get(n){let e=f.getDoc(n,M);return e===null?null:V.parse(e)}set(n,e){let r=V.parse(e);f.setDoc(n,M,r)}clear(n){f.deleteDoc(n,M)}};var ae=new $,C=ae;var P=".prjct/CHECKPOINTS.md",L=".prjct/team.json",I="migration:v2.19.8:last-flagged-checkpoints",H="migration:v2.19.8:last-flagged-team",O="migration:v3.77:last-ghost-purge-warn",q="migration:v3.77:last-agent-repair-warn",ce=["sessions","audits","deploy"],le=[/\.prjct\/sessions\/<task/i,/\.prjct\/sessions\/\$\{/i,/->\s*`?\.prjct\/sessions\//i,/write(?:s|n)?\s+(?:a\s+)?(?:plan|report|results?|verdict|findings?)[^\n]{0,120}\.prjct\/sessions\//i,/write(?:s|n)?\s+its\s+results[^\n]{0,80}\.prjct\/sessions\//i,/Session artifacts at `?\.prjct\/sessions\//i,/Implementer report at `?\.prjct\/sessions\//i,/Reviewer verdict at `?\.prjct\/sessions\//i,/\.prjct\/audits\//i,/\.prjct\/deploy\//i,/SESSION_ROOT\s*=/i,/Write under `?SESSION_ROOT/i,/~\/\.prjct-cli\/projects\/[^\s`]+\/sessions\//i,/sessions\/<task-slug>\/\{?plan/i],We=[".prjct/sessions/<task",".prjct/audits/",".prjct/deploy/"],ge=F.map(t=>({destRelative:`.claude/agents/${t.name}.md`,templateKey:`crew/roles/${t.name}.md`})),v="CLAUDE.md",W="CREW.md",me="crew/leader-mode.md",K="<!-- prjct:crew:start - DO NOT REMOVE THIS MARKER -->",U="<!-- prjct:crew:end - DO NOT REMOVE THIS MARKER -->",G="<!-- prjct:crew:end -->",X="<!-- prjct:checkpoints:start - DO NOT EDIT (managed by `prjct crew checkpoints set|reset`) -->",ue="<!-- prjct:checkpoints:end -->",pe=["prjct.config.json","memory-export"];async function te(t){try{return(await p.stat(t)).mtimeMs}catch{return null}}l(te,"statMtimeMs");async function k(t){try{return await p.readFile(t,"utf-8")}catch{return null}}l(k,"tryReadFile");async function J(t){try{return await p.access(t),!0}catch{return!1}}l(J,"pathExists");function j(t,n){return f.getDoc(t,n)}l(j,"readFlag");function w(t,n,e){f.setDoc(t,n,{mtime_ms:e,migrated_at:new Date().toISOString()})}l(w,"writeFlag");async function y(t,n,e){try{let{projectMemory:r}=await import("./project-memory-YQLZX5RG.mjs");await r.remember(t,{type:"inbox",content:n,tags:e,provenance:"declared"})}catch(r){N.debug("Legacy sweep inbox capture failed (non-critical)",{error:r instanceof Error?r.message:String(r)})}}l(y,"captureInboxWarning");function T(t){return le.some(n=>n.test(t))}l(T,"containsForbiddenWriteInstruction");function de(t,n){let e=F.find(o=>`.claude/agents/${o.name}.md`===n)?.role;if(!e)return t;let{model:r}=Q(e);return t.replace(/^model:[ \t].*$/m,`model: ${r}`)}l(de,"stampCrewModelPolicy");function fe(t,n){let e=t.indexOf(X),r=t.indexOf(ue);if(e<0||r<0||r<e)return t;let o=t.slice(0,e+X.length),c=t.slice(r);return`${o}
9
9
  ${n.trimEnd()}
10
10
  ${c}`}l(fe,"spliceCheckpoints");function we(t,n){let e=l(c=>{let i=c.indexOf(K);if(i<0)return c;let a=c.slice(i+K.length),s=a.indexOf(U),m=a.indexOf(G),g=s>=0&&(m<0||s<=m)?{relative:s,length:U.length}:m>=0?{relative:m,length:G.length}:null;if(!g)return c.slice(0,i);let u=i+K.length+g.relative;return e(`${c.slice(0,i)}${c.slice(u+g.length)}`)},"stripMarkerBlocks"),r=e(t).replace(/\n{3,}/g,`
11
11
 
@@ -20,5 +20,5 @@ ${c}`}l(fe,"spliceCheckpoints");function we(t,n){let e=l(c=>{let i=c.indexOf(K);
20
20
  `:t}l(Z,"sanitizeCheckpointsContent");async function he(t,n,e){let r=d.join(t,P),o=await te(r);if(o===null)return;let c=j(n,I),i=await k(r);if(i!==null)try{c===null?(E.set(n,i,"migrated"),w(n,I,o),e.checkpointsMigrated=!0,await y(t,"Legacy .prjct/CHECKPOINTS.md migrated into kv_store crew:checkpoints and DELETED from the client worktree. Manage with 'prjct crew checkpoints show|set|reset|export'. Product law: nothing but prjct.config.json under client .prjct/.",{"migration:v3.79":"1",topic:"crew-checkpoints"})):o>c.mtime_ms&&(E.set(n,i,"migrated"),w(n,I,o),e.checkpointsHandEditWarned=!0,await y(t,"Legacy .prjct/CHECKPOINTS.md hand-edited after migration \u2014 content re-adopted into kv_store and file DELETED. Prefer 'prjct crew checkpoints set' going forward.",{"migration:v3.79":"1",topic:"crew-checkpoints",state:"re-adopted"}))}catch(a){e.errors.push({file:P,reason:a instanceof Error?a.message:String(a)})}try{await p.rm(r,{force:!0}),e.clientPrjctJunkPurged.push("CHECKPOINTS.md")}catch(a){e.errors.push({file:P,reason:a instanceof Error?a.message:String(a)})}}l(he,"sweepCheckpoints");function ee(t){return{required:t.required===!0,minVersion:typeof t.minVersion=="string"?t.minVersion:"0.0.0",enrolledAt:typeof t.enrolledAt=="string"?t.enrolledAt:new Date().toISOString(),enrolledBy:typeof t.enrolledBy=="string"?t.enrolledBy:null}}l(ee,"parseTeamEnrollment");async function Ee(t,n,e){let r=d.join(t,L),o=await te(r);if(o===null)return;let c=j(n,H),i=C.get(n),a=await k(r);if(a!==null)try{if(c===null||i===null){if(i===null){let s=JSON.parse(a),m=ee(s);C.set(n,m),e.teamMigrated=!0,await y(t,"Legacy .prjct/team.json adopted into kv_store team:enrollment and DELETED from the client worktree. Team state is SQL-only; manage with 'prjct team'.",{"migration:v3.79":"1",topic:"team-enrollment"})}w(n,H,o)}else if(o>c.mtime_ms){try{let s=JSON.parse(a),m=ee(s);C.set(n,m)}catch{}w(n,H,o),e.teamHandEditWarned=!0}}catch(s){e.errors.push({file:L,reason:s instanceof Error?s.message:String(s)})}try{await p.rm(r,{force:!0}),e.clientPrjctJunkPurged.push("team.json")}catch(s){e.errors.push({file:L,reason:s instanceof Error?s.message:String(s)})}}l(Ee,"sweepTeamJson");async function z(t){let n=[],e=await p.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let r of e){let o=d.join(t,r.name);r.isDirectory()?n.push(...await z(o)):r.isFile()&&n.push(o)}return n}l(z,"listFilesRecursive");async function B(t,n,e,r){let o=new Set([".md",".txt",".json",".yml",".yaml",".toml",".csv",".log"]),c=d.extname(e).toLowerCase();if(!o.has(c)&&c!=="")return!1;let i=await p.readFile(e).then(g=>{if(g.byteLength>2e5)return null;let u=g.toString("utf-8");return u.includes("\0")?null:u}).catch(()=>null);if(i===null||!i.trim())return!1;let a=12e3,s=i.length>a?`${i.slice(0,a)}
21
21
 
22
22
  \u2026[truncated ${i.length-a} chars]`:i,m=["Rescued worktree ghost (physical files are not traceable \u2014 ingested to SQLite, disk deleted).",`source: ${r}`,"",s].join(`
23
- `);try{let{projectMemory:g}=await import("./project-memory-UDH56VFP.mjs");return await g.remember(t,{type:"context",content:m,tags:{topic:"worktree-ghost-ingest",source_path:r,"migration:v3.77":"1"},provenance:"declared",projectId:n,force:!0}),!0}catch(g){return N.debug("Ghost file SQL ingest failed (non-critical)",{file:r,error:g instanceof Error?g.message:String(g)}),!1}}l(B,"ingestGhostFileToSql");async function ye(t,n,e){let r=d.join(t,".prjct");if(!await J(r))return;for(let c of ce){let i=d.join(r,c);if(await J(i))try{let a=await z(i);for(let s of a){let m=d.relative(t,s);await B(t,n,s,m)&&(e.ghostFilesIngested+=1)}await p.rm(i,{recursive:!0,force:!0}),e.ghostDirsPurged.push(c)}catch(a){e.errors.push({file:`.prjct/${c}/`,reason:a instanceof Error?a.message:String(a)})}}if(e.ghostDirsPurged.length===0)return;if(j(n,O)===null){let c=e.ghostFilesIngested>0?` ${e.ghostFilesIngested} text file(s) ingested into SQLite (topic:worktree-ghost-ingest) for traceability.`:"";await y(t,`Purged forbidden prjct ghost dir(s) from the customer worktree: ${e.ghostDirsPurged.map(i=>`.prjct/${i}/`).join(", ")}.${c} Product law: plans and work data live ONLY in project SQLite (prjct plan / prjct spec / prjct remember / prjct crew record-run) \u2014 never as physical files in the repo or under ~/.prjct-cli. The only hand-editable file under .prjct/ is prjct.config.json.`,{"migration:v3.77":"1",topic:"worktree-ghost-purge"}),w(n,O,Date.now())}}l(ye,"purgeWorktreeGhostDirs");async function Re(t,n,e){try{let s=E.get(n),m=Z(s.content);if(m!==s.content){let g=s.source==="user"?"user":"migrated";E.set(n,m,g),e.agentFilesRepaired.push("kv_store[crew:checkpoints]")}}catch(s){e.errors.push({file:"kv_store[crew:checkpoints]",reason:s instanceof Error?s.message:String(s)})}for(let s of ge){let m=d.join(t,s.destRelative),g=await k(m);if(g===null||!T(g))continue;let u=R(s.templateKey);if(!u){e.errors.push({file:s.destRelative,reason:"template missing"});continue}try{let h=de(s.destRelative===".claude/agents/reviewer.md"?fe(u,Z(E.get(n).content)):u,s.destRelative);await p.mkdir(d.dirname(m),{recursive:!0}),await p.writeFile(m,h,"utf-8"),e.agentFilesRepaired.push(s.destRelative)}catch(h){e.errors.push({file:s.destRelative,reason:h instanceof Error?h.message:String(h)})}}let r=d.join(t,v),o=await k(r);if(o!==null){let s=(o.match(/prjct:crew:start/g)??[]).length;if(T(o)||s>1||o.includes(G)){let g=R(me)?.trim();if(!g)e.errors.push({file:v,reason:"leader-mode template missing"});else try{let u=we(o,g);await p.writeFile(r,u,"utf-8"),e.agentFilesRepaired.push(v)}catch(u){e.errors.push({file:v,reason:u instanceof Error?u.message:String(u)})}}}let c=d.join(t,W),i=await k(c);if(i!==null&&T(i))try{let s=["# CREW.md \u2014 reinstall required","","This file previously instructed agents to write plans/reports under","`.prjct/sessions/` (or other worktree paths). That is forbidden.","","Run `prjct crew install` to regenerate the emulated crew protocol.","Durable state goes through `prjct` CLI verbs only (SQLite).",""].join(`
23
+ `);try{let{projectMemory:g}=await import("./project-memory-YQLZX5RG.mjs");return await g.remember(t,{type:"context",content:m,tags:{topic:"worktree-ghost-ingest",source_path:r,"migration:v3.77":"1"},provenance:"declared",projectId:n,force:!0}),!0}catch(g){return N.debug("Ghost file SQL ingest failed (non-critical)",{file:r,error:g instanceof Error?g.message:String(g)}),!1}}l(B,"ingestGhostFileToSql");async function ye(t,n,e){let r=d.join(t,".prjct");if(!await J(r))return;for(let c of ce){let i=d.join(r,c);if(await J(i))try{let a=await z(i);for(let s of a){let m=d.relative(t,s);await B(t,n,s,m)&&(e.ghostFilesIngested+=1)}await p.rm(i,{recursive:!0,force:!0}),e.ghostDirsPurged.push(c)}catch(a){e.errors.push({file:`.prjct/${c}/`,reason:a instanceof Error?a.message:String(a)})}}if(e.ghostDirsPurged.length===0)return;if(j(n,O)===null){let c=e.ghostFilesIngested>0?` ${e.ghostFilesIngested} text file(s) ingested into SQLite (topic:worktree-ghost-ingest) for traceability.`:"";await y(t,`Purged forbidden prjct ghost dir(s) from the customer worktree: ${e.ghostDirsPurged.map(i=>`.prjct/${i}/`).join(", ")}.${c} Product law: plans and work data live ONLY in project SQLite (prjct plan / prjct spec / prjct remember / prjct crew record-run) \u2014 never as physical files in the repo or under ~/.prjct-cli. The only hand-editable file under .prjct/ is prjct.config.json.`,{"migration:v3.77":"1",topic:"worktree-ghost-purge"}),w(n,O,Date.now())}}l(ye,"purgeWorktreeGhostDirs");async function Re(t,n,e){try{let s=E.get(n),m=Z(s.content);if(m!==s.content){let g=s.source==="user"?"user":"migrated";E.set(n,m,g),e.agentFilesRepaired.push("kv_store[crew:checkpoints]")}}catch(s){e.errors.push({file:"kv_store[crew:checkpoints]",reason:s instanceof Error?s.message:String(s)})}for(let s of ge){let m=d.join(t,s.destRelative),g=await k(m);if(g===null||!T(g))continue;let u=R(s.templateKey);if(!u){e.errors.push({file:s.destRelative,reason:"template missing"});continue}try{let h=de(s.destRelative===".claude/agents/reviewer.md"?fe(u,Z(E.get(n).content)):u,s.destRelative);await p.mkdir(d.dirname(m),{recursive:!0}),await p.writeFile(m,h,"utf-8"),e.agentFilesRepaired.push(s.destRelative)}catch(h){e.errors.push({file:s.destRelative,reason:h instanceof Error?h.message:String(h)})}}let r=d.join(t,v),o=await k(r);if(o!==null){let s=(o.match(/prjct:crew:start/g)??[]).length;if(T(o)||s>1||o.includes(G)){let g=R(me)?.trim();if(!g)e.errors.push({file:v,reason:"leader-mode template missing"});else try{let u=we(o,g);await p.writeFile(r,u,"utf-8"),e.agentFilesRepaired.push(v)}catch(u){e.errors.push({file:v,reason:u instanceof Error?u.message:String(u)})}}}let c=d.join(t,W),i=await k(c);if(i!==null&&T(i))try{let s=["# CREW.md \u2014 reinstall required","","This file previously instructed agents to write plans/reports under","`.prjct/sessions/` (or other worktree paths). That is forbidden.","","Run `prjct crew install` to regenerate the emulated crew protocol.","Durable state goes through `prjct` CLI verbs only (SQLite).",""].join(`
24
24
  `);await p.writeFile(c,s,"utf-8"),e.agentFilesRepaired.push(W)}catch(s){e.errors.push({file:W,reason:s instanceof Error?s.message:String(s)})}if(e.agentFilesRepaired.length===0)return;j(n,q)===null&&(await y(t,`Repaired crew instruction files that still told agents to write plans/reports to disk (${e.agentFilesRepaired.join(", ")}). Refreshed from current prjct templates. Product law: plans + work data ONLY in project SQLite via prjct plan / prjct spec / prjct remember / prjct crew record-run \u2014 physical files are not traceable.`,{"migration:v3.77":"1",topic:"crew-disk-write-repair"}),w(n,q,Date.now()))}l(Re,"repairCrewDiskWriteInstructions");async function Se(t,n,e){let r=d.join(t,".prjct");if(!await J(r))return;let o=await p.readdir(r).catch(()=>[]);for(let i of o){if(pe.includes(i))continue;let a=d.join(r,i);try{let s=await p.stat(a);if(s.isDirectory()){let m=await z(a);for(let g of m){let u=d.relative(t,g);await B(t,n,g,u)&&(e.ghostFilesIngested+=1)}}else if(s.isFile()){let m=d.relative(t,a);i!=="CHECKPOINTS.md"&&i!=="team.json"&&await B(t,n,a,m)&&(e.ghostFilesIngested+=1)}await p.rm(a,{recursive:!0,force:!0}),e.clientPrjctJunkPurged.includes(i)||e.clientPrjctJunkPurged.push(i)}catch(s){e.errors.push({file:`.prjct/${i}`,reason:s instanceof Error?s.message:String(s)})}}if(e.clientPrjctJunkPurged.length===0)return;j(n,O)===null&&e.ghostDirsPurged.length===0&&(await y(t,`Client .prjct/ cleaned to config-only. Removed: ${e.clientPrjctJunkPurged.join(", ")}. Durable state is SQLite only (prjct crew checkpoints / prjct team / prjct remember).`,{"migration:v3.79":"1",topic:"client-prjct-config-only"}),w(n,O,Date.now()))}l(Se,"enforcePrjctConfigOnly");async function Ke(t,n){let e={checkpointsMigrated:!1,checkpointsHandEditWarned:!1,teamMigrated:!1,teamHandEditWarned:!1,ghostDirsPurged:[],agentFilesRepaired:[],ghostFilesIngested:0,clientPrjctJunkPurged:[],errors:[]};return await he(t,n,e).catch(r=>{e.errors.push({file:P,reason:r instanceof Error?r.message:String(r)})}),await Ee(t,n,e).catch(r=>{e.errors.push({file:L,reason:r instanceof Error?r.message:String(r)})}),await ye(t,n,e).catch(r=>{e.errors.push({file:".prjct/*/",reason:r instanceof Error?r.message:String(r)})}),await Se(t,n,e).catch(r=>{e.errors.push({file:".prjct/",reason:r instanceof Error?r.message:String(r)})}),await Re(t,n,e).catch(r=>{e.errors.push({file:".claude/agents/*",reason:r instanceof Error?r.message:String(r)})}),e}l(Ke,"legacyCrewSweep");export{pe as CLIENT_PRJCT_ALLOWLIST,We as FORBIDDEN_WORKTREE_WRITE_NEEDLES,le as FORBIDDEN_WORKTREE_WRITE_PATTERNS,ce as WORKTREE_GHOST_DIRS,T as containsForbiddenWriteInstruction,Ke as legacyCrewSweep};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i}from"./chunk-KDNUQPAK.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-TF6PN7IB.mjs";import"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{c as L0_INDEX_FRESH_MS,b as L0_INDEX_MAX_CHARS,a as MEMORY_L0_INDEX_KEY,d as buildAndStoreMemoryL0Index,e as buildMemoryL0Index,i as findRepeatMissedEntry,g as isMemoryL0IndexFresh,f as loadMemoryL0Index,h as memoryL0IndexForSession};
8
+ import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i}from"./chunk-B7MHIUFA.mjs";import"./chunk-ZMLA5SKR.mjs";import"./chunk-TF6PN7IB.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{c as L0_INDEX_FRESH_MS,b as L0_INDEX_MAX_CHARS,a as MEMORY_L0_INDEX_KEY,d as buildAndStoreMemoryL0Index,e as buildMemoryL0Index,i as findRepeatMissedEntry,g as isMemoryL0IndexFresh,f as loadMemoryL0Index,h as memoryL0IndexForSession};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b as f}from"./chunk-OWOPA2O7.mjs";import{a as c}from"./chunk-WUOVBBPC.mjs";import{a as e}from"./chunk-3UB6SFRA.mjs";import"./chunk-XSJ7SPVR.mjs";import"./chunk-D7DQABWO.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as n}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as t}from"./chunk-E66B27AL.mjs";function l(u=process.cwd(),p){return c({event:"Notification",projectPath:u,afterEmit:t(async(d,i)=>{let o=await n.readConfig(i).catch(()=>null);if(!o?.projectId||a(o)==="off")return;let s=await e(o.projectId,i).then(r=>r.current?`Waiting \u2014 active: ${r.current.description}`:"Waiting for your input").catch(()=>"Waiting for your input");await f("prjct \u2014 Claude needs you",s)},"afterEmit")},p)}t(l,"runNotificationHook");export{l as runNotificationHook};
8
+ import{a,b as f}from"./chunk-OWOPA2O7.mjs";import{a as c}from"./chunk-WUOVBBPC.mjs";import{a as e}from"./chunk-AFGXKRRP.mjs";import"./chunk-XSJ7SPVR.mjs";import"./chunk-6NMHVPAI.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as n}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as t}from"./chunk-E66B27AL.mjs";function l(u=process.cwd(),p){return c({event:"Notification",projectPath:u,afterEmit:t(async(d,i)=>{let o=await n.readConfig(i).catch(()=>null);if(!o?.projectId||a(o)==="off")return;let s=await e(o.projectId,i).then(r=>r.current?`Waiting \u2014 active: ${r.current.description}`:"Waiting for your input").catch(()=>"Waiting for your input");await f("prjct \u2014 Claude needs you",s)},"afterEmit")},p)}t(l,"runNotificationHook");export{l as runNotificationHook};
@@ -5,6 +5,6 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as k,b as d,c as v}from"./chunk-7YT2FGO7.mjs";import{b as y}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import{d as g,g as $}from"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{b as m,h as T}from"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as c}from"./chunk-E66B27AL.mjs";import{createHash as b}from"node:crypto";$();T();var h="packs:installs";function P(t){let n={name:t.name,version:t.version,description:t.description,memoryTypes:[...t.memoryTypes].sort(),workflowSlots:j(t.workflowSlots),hookSignals:t.hookSignals,suggestedTags:t.suggestedTags?Object.fromEntries(Object.entries(t.suggestedTags).sort(([e],[s])=>e.localeCompare(s)).map(([e,s])=>[e,[...s].sort()])):void 0,suggestedPersona:t.suggestedPersona,configDefaults:t.configDefaults};return b("sha256").update(JSON.stringify(n)).digest("hex").slice(0,16)}c(P,"packIntegrityHash");function j(t){let n={};for(let e of Object.keys(t).sort())n[e]=t[e];return n}c(j,"sortKeys");function u(t){try{let n=g.getDoc(t,h);return!n||typeof n!="object"?{}:n}catch{return{}}}c(u,"loadPackInstalls");function w(t,n){g.setDoc(t,h,n)}c(w,"savePackInstalls");function M(t,n,e=m()){let s=u(t),r=[];for(let o of n){let i=v(o);if(!i)continue;let a={name:i.name,version:i.version,integrity:P(i),activatedAt:e};s[o]=a,r.push(a)}return w(t,s),r}c(M,"stampPackInstalls");function O(t,n){let e=u(t),s=[];for(let r of n)e[r]&&(delete e[r],s.push(r));s.length>0&&w(t,e)}c(O,"clearPackInstalls");async function x(t){let n=await y.readConfig(t),e=new Set(n?.persona?.packs??[]),s=n?.projectId,r=s?u(s):{},o=[];for(let i of d){let a=k[i],f=P(a),p=e.has(i),l=r[i],I=p&&l&&(l.integrity!==f||l.version!==a.version)?"stale":p?"active":"available";o.push({name:a.name,version:a.version,description:a.description,integrity:f,active:p,status:I,memoryTypes:a.memoryTypes,slots:Object.keys(a.workflowSlots),receipt:l})}for(let i of e){if(k[i])continue;let a=r[i];o.push({name:i,version:a?.version??"?",description:"Unknown pack (not in built-in catalog)",integrity:a?.integrity??"\u2014",active:!0,status:"unknown",memoryTypes:[],slots:[],receipt:a})}return o.sort((i,a)=>i.name.localeCompare(a.name))}c(x,"buildPackCatalog");async function D(t){let e=(await x(t)).filter(o=>o.active),s=e.filter(o=>o.status==="stale").map(o=>o.name),r=e.filter(o=>o.status==="unknown").map(o=>o.name);return{ok:s.length===0&&r.length===0,active:e.length,stale:s,unknown:r,entries:e}}c(D,"verifyActivePacks");function K(t){let n=["# prjct pack catalog (marketplace-lite)","","Local built-in packs with version + integrity. Activate with `prjct seed add <name>`.","Not a third-party MCP marketplace \u2014 packs = persona + memory types + workflow slots.","","| Pack | Ver | Active | Status | Integrity | Description |","|---|---|---|---|---|---|"];for(let e of t){let s=e.active?"yes":"\u2014";n.push(`| \`${e.name}\` | ${e.version} | ${s} | ${e.status} | \`${e.integrity}\` | ${e.description.replace(/\|/g,"\\|")} |`)}return n.push(""),n.push("## Integrity"),n.push(""),n.push("- On `seed add`, prjct stamps `version@integrity` into project SoT (`packs:installs`)."),n.push("- `prjct seed verify` flags **stale** (CLI pack upgraded since activate) or **unknown**."),n.push("- Re-activate with `prjct seed add <name>` to refresh the receipt after upgrade."),n.push(""),n.join(`
8
+ import{a as k,b as d,c as v}from"./chunk-7YT2FGO7.mjs";import{b as y}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import{d as g,g as $}from"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{b as m,h as T}from"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as c}from"./chunk-E66B27AL.mjs";import{createHash as b}from"node:crypto";$();T();var h="packs:installs";function P(t){let n={name:t.name,version:t.version,description:t.description,memoryTypes:[...t.memoryTypes].sort(),workflowSlots:j(t.workflowSlots),hookSignals:t.hookSignals,suggestedTags:t.suggestedTags?Object.fromEntries(Object.entries(t.suggestedTags).sort(([e],[s])=>e.localeCompare(s)).map(([e,s])=>[e,[...s].sort()])):void 0,suggestedPersona:t.suggestedPersona,configDefaults:t.configDefaults};return b("sha256").update(JSON.stringify(n)).digest("hex").slice(0,16)}c(P,"packIntegrityHash");function j(t){let n={};for(let e of Object.keys(t).sort())n[e]=t[e];return n}c(j,"sortKeys");function u(t){try{let n=g.getDoc(t,h);return!n||typeof n!="object"?{}:n}catch{return{}}}c(u,"loadPackInstalls");function w(t,n){g.setDoc(t,h,n)}c(w,"savePackInstalls");function M(t,n,e=m()){let s=u(t),r=[];for(let o of n){let i=v(o);if(!i)continue;let a={name:i.name,version:i.version,integrity:P(i),activatedAt:e};s[o]=a,r.push(a)}return w(t,s),r}c(M,"stampPackInstalls");function O(t,n){let e=u(t),s=[];for(let r of n)e[r]&&(delete e[r],s.push(r));s.length>0&&w(t,e)}c(O,"clearPackInstalls");async function x(t){let n=await y.readConfig(t),e=new Set(n?.persona?.packs??[]),s=n?.projectId,r=s?u(s):{},o=[];for(let i of d){let a=k[i],f=P(a),p=e.has(i),l=r[i],I=p&&l&&(l.integrity!==f||l.version!==a.version)?"stale":p?"active":"available";o.push({name:a.name,version:a.version,description:a.description,integrity:f,active:p,status:I,memoryTypes:a.memoryTypes,slots:Object.keys(a.workflowSlots),receipt:l})}for(let i of e){if(k[i])continue;let a=r[i];o.push({name:i,version:a?.version??"?",description:"Unknown pack (not in built-in catalog)",integrity:a?.integrity??"\u2014",active:!0,status:"unknown",memoryTypes:[],slots:[],receipt:a})}return o.sort((i,a)=>i.name.localeCompare(a.name))}c(x,"buildPackCatalog");async function D(t){let e=(await x(t)).filter(o=>o.active),s=e.filter(o=>o.status==="stale").map(o=>o.name),r=e.filter(o=>o.status==="unknown").map(o=>o.name);return{ok:s.length===0&&r.length===0,active:e.length,stale:s,unknown:r,entries:e}}c(D,"verifyActivePacks");function K(t){let n=["# prjct pack catalog (marketplace-lite)","","Local built-in packs with version + integrity. Activate with `prjct seed add <name>`.","Not a third-party MCP marketplace \u2014 packs = persona + memory types + workflow slots.","","| Pack | Ver | Active | Status | Integrity | Description |","|---|---|---|---|---|---|"];for(let e of t){let s=e.active?"yes":"\u2014";n.push(`| \`${e.name}\` | ${e.version} | ${s} | ${e.status} | \`${e.integrity}\` | ${e.description.replace(/\|/g,"\\|")} |`)}return n.push(""),n.push("## Integrity"),n.push(""),n.push("- On `seed add`, prjct stamps `version@integrity` into project SoT (`packs:installs`)."),n.push("- `prjct seed verify` flags **stale** (CLI pack upgraded since activate) or **unknown**."),n.push("- Re-activate with `prjct seed add <name>` to refresh the receipt after upgrade."),n.push(""),n.join(`
9
9
  `)}c(K,"formatPackCatalogMd");function V(t){let n=["# prjct pack verify","",t.ok?`**OK** \u2014 ${t.active} active pack(s), integrity clean.`:`**Attention** \u2014 ${t.stale.length} stale, ${t.unknown.length} unknown.`,""];if(t.stale.length&&n.push(`- Stale (re-add to refresh): ${t.stale.map(e=>`\`${e}\``).join(", ")}`),t.unknown.length&&n.push(`- Unknown (remove or restore): ${t.unknown.map(e=>`\`${e}\``).join(", ")}`),t.entries.length){n.push("","| Pack | Ver | Status | Integrity |","|---|---|---|---|");for(let e of t.entries)n.push(`| \`${e.name}\` | ${e.version} | ${e.status} | \`${e.integrity}\` |`)}return n.push(""),n.join(`
10
10
  `)}c(V,"formatPackVerifyMd");export{h as PACK_INSTALLS_KEY,x as buildPackCatalog,O as clearPackInstalls,K as formatPackCatalogMd,V as formatPackVerifyMd,u as loadPackInstalls,P as packIntegrityHash,w as savePackInstalls,M as stampPackInstalls,D as verifyActivePacks};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as u,c as m}from"./chunk-7YT2FGO7.mjs";import{b as f}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as d}from"./chunk-E66B27AL.mjs";async function P(t){let i=await import("node:fs/promises"),n=await import("node:path"),s=new Set(["daily"]),o=["package.json","go.mod","Cargo.toml","pyproject.toml","Gemfile","pom.xml","build.gradle"];for(let e of o)try{await i.stat(n.join(t,e)),s.add("code");break}catch{}return[...s]}d(P,"detectSuggestedPacks");async function C(t){let i=await f.readConfig(t);if(!i)return{healed:!1,activated:[],reason:"no-config"};if(i.judgment?.conflictMode==="off")return{healed:!1,activated:[],reason:"conflictMode-off"};let n=i.persona?.packs??[];if(n.includes("code")||n.includes("code-strict"))return!i.judgment?.conflictMode&&n.includes("code")?(await f.writeConfig(t,{...i,judgment:{...i.judgment,conflictMode:"advisory"}}),{healed:!0,activated:[],reason:"conflictMode-healed"}):{healed:!1,activated:[],reason:"already-coding-pack"};if(!(await P(t)).includes("code"))return{healed:!1,activated:[],reason:"not-code-repo"};let e=await y(t,["code"],{suggestPersona:!0});return e.activated.includes("code")?{healed:!0,activated:e.activated,reason:"activated-code"}:{healed:!1,activated:[],reason:"noop"}}d(C,"ensureCodingAnticipationDefaults");async function y(t,i,n={}){let s=[],o=[],e=await f.readConfig(t);if(!e)throw new Error("No prjct project here \u2014 run `prjct init` first.");let a=e.persona??{role:"DEV"},r=new Set(a.packs??[]);for(let g of i){if(!u[g]){o.push(g);continue}r.has(g)||(r.add(g),s.push(g))}let l=[...r],c={...a,packs:l};n.suggestPersona&&s.length>0&&k(c,s);let p={...e,persona:c,...v(e,s)};if(await f.writeConfig(t,p),s.length>0&&e.projectId)try{let{stampPackInstalls:g}=await import("./pack-integrity-WV5U3AFF.mjs");g(e.projectId,s)}catch{}return{activated:s,skipped:o}}d(y,"activatePacks");function v(t,i){let n={};for(let s of i){let o=u[s]?.configDefaults;o&&(o.sdd&&!t.sdd&&(n.sdd={mode:o.sdd}),o.tdd&&!t.tdd&&(n.tdd={mode:o.tdd}),o.maxTurnsPerCycle!=null&&t.maxTurnsPerCycle==null&&n.maxTurnsPerCycle==null&&(n.maxTurnsPerCycle=o.maxTurnsPerCycle),o.deliveryGeometry&&!t.deliveryGeometry&&(n.deliveryGeometry={mode:o.deliveryGeometry}),o.land&&!t.land&&(n.land={mode:o.land}),o.conflictMode&&!t.judgment?.conflictMode&&(n.judgment={...t.judgment,...n.judgment,conflictMode:o.conflictMode}))}return n}d(v,"packConfigDefaults");async function j(t,i){let n=await f.readConfig(t);if(!n)throw new Error("No prjct project here \u2014 run `prjct init` first.");let s=n.persona??{role:"DEV"},o=new Set(s.packs??[]),e=[],a=[];for(let c of i)o.delete(c)?e.push(c):a.push(c);let r={...s,packs:[...o]},l={...n,persona:r};if(await f.writeConfig(t,l),e.length>0&&n.projectId)try{let{clearPackInstalls:c}=await import("./pack-integrity-WV5U3AFF.mjs");c(n.projectId,e)}catch{}return{deactivated:e,notActive:a}}d(j,"deactivatePacks");async function M(t){let n=(await f.readConfig(t))?.persona?.packs??[],s=await import("./pack-integrity-WV5U3AFF.mjs").then(({buildPackCatalog:a})=>a(t)).catch(()=>[]),o=Object.fromEntries(s.filter(a=>a.active).map(a=>[a.name,{version:a.version,integrity:a.integrity,status:a.status}])),e=[];for(let a of n){let r=u[a];if(!r){let c=o[a];e.push({name:a,description:"Unknown pack (not in built-in catalog)",memoryTypes:[],slots:[],version:c?.version,integrity:c?.integrity,status:c?.status??"unknown"});continue}let l=o[a];e.push({name:r.name,description:r.description,memoryTypes:r.memoryTypes,slots:Object.keys(r.workflowSlots),version:l?.version??r.version,integrity:l?.integrity,status:l?.status??"active"})}return e}d(M,"listActivePacks");function k(t,i){let n=t.role&&t.role!=="DEV",s=t.mcps&&t.mcps.length>0;for(let o of i){let e=m(o);if(e?.suggestedPersona&&(!n&&e.suggestedPersona.role&&(t.role=e.suggestedPersona.role),!t.focus&&e.suggestedPersona.focus&&(t.focus=e.suggestedPersona.focus),!s&&e.suggestedPersona.mcps&&(t.mcps=[...e.suggestedPersona.mcps]),t.role&&t.role!=="DEV"))break}}d(k,"applyPersonaSuggestion");export{y as activatePacks,j as deactivatePacks,P as detectSuggestedPacks,C as ensureCodingAnticipationDefaults,M as listActivePacks};
8
+ import{a as u,c as m}from"./chunk-7YT2FGO7.mjs";import{b as f}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as d}from"./chunk-E66B27AL.mjs";async function P(t){let i=await import("node:fs/promises"),n=await import("node:path"),s=new Set(["daily"]),o=["package.json","go.mod","Cargo.toml","pyproject.toml","Gemfile","pom.xml","build.gradle"];for(let e of o)try{await i.stat(n.join(t,e)),s.add("code");break}catch{}return[...s]}d(P,"detectSuggestedPacks");async function C(t){let i=await f.readConfig(t);if(!i)return{healed:!1,activated:[],reason:"no-config"};if(i.judgment?.conflictMode==="off")return{healed:!1,activated:[],reason:"conflictMode-off"};let n=i.persona?.packs??[];if(n.includes("code")||n.includes("code-strict"))return!i.judgment?.conflictMode&&n.includes("code")?(await f.writeConfig(t,{...i,judgment:{...i.judgment,conflictMode:"advisory"}}),{healed:!0,activated:[],reason:"conflictMode-healed"}):{healed:!1,activated:[],reason:"already-coding-pack"};if(!(await P(t)).includes("code"))return{healed:!1,activated:[],reason:"not-code-repo"};let e=await y(t,["code"],{suggestPersona:!0});return e.activated.includes("code")?{healed:!0,activated:e.activated,reason:"activated-code"}:{healed:!1,activated:[],reason:"noop"}}d(C,"ensureCodingAnticipationDefaults");async function y(t,i,n={}){let s=[],o=[],e=await f.readConfig(t);if(!e)throw new Error("No prjct project here \u2014 run `prjct init` first.");let a=e.persona??{role:"DEV"},r=new Set(a.packs??[]);for(let g of i){if(!u[g]){o.push(g);continue}r.has(g)||(r.add(g),s.push(g))}let l=[...r],c={...a,packs:l};n.suggestPersona&&s.length>0&&k(c,s);let p={...e,persona:c,...v(e,s)};if(await f.writeConfig(t,p),s.length>0&&e.projectId)try{let{stampPackInstalls:g}=await import("./pack-integrity-UMLIB5RQ.mjs");g(e.projectId,s)}catch{}return{activated:s,skipped:o}}d(y,"activatePacks");function v(t,i){let n={};for(let s of i){let o=u[s]?.configDefaults;o&&(o.sdd&&!t.sdd&&(n.sdd={mode:o.sdd}),o.tdd&&!t.tdd&&(n.tdd={mode:o.tdd}),o.maxTurnsPerCycle!=null&&t.maxTurnsPerCycle==null&&n.maxTurnsPerCycle==null&&(n.maxTurnsPerCycle=o.maxTurnsPerCycle),o.deliveryGeometry&&!t.deliveryGeometry&&(n.deliveryGeometry={mode:o.deliveryGeometry}),o.land&&!t.land&&(n.land={mode:o.land}),o.conflictMode&&!t.judgment?.conflictMode&&(n.judgment={...t.judgment,...n.judgment,conflictMode:o.conflictMode}))}return n}d(v,"packConfigDefaults");async function j(t,i){let n=await f.readConfig(t);if(!n)throw new Error("No prjct project here \u2014 run `prjct init` first.");let s=n.persona??{role:"DEV"},o=new Set(s.packs??[]),e=[],a=[];for(let c of i)o.delete(c)?e.push(c):a.push(c);let r={...s,packs:[...o]},l={...n,persona:r};if(await f.writeConfig(t,l),e.length>0&&n.projectId)try{let{clearPackInstalls:c}=await import("./pack-integrity-UMLIB5RQ.mjs");c(n.projectId,e)}catch{}return{deactivated:e,notActive:a}}d(j,"deactivatePacks");async function M(t){let n=(await f.readConfig(t))?.persona?.packs??[],s=await import("./pack-integrity-UMLIB5RQ.mjs").then(({buildPackCatalog:a})=>a(t)).catch(()=>[]),o=Object.fromEntries(s.filter(a=>a.active).map(a=>[a.name,{version:a.version,integrity:a.integrity,status:a.status}])),e=[];for(let a of n){let r=u[a];if(!r){let c=o[a];e.push({name:a,description:"Unknown pack (not in built-in catalog)",memoryTypes:[],slots:[],version:c?.version,integrity:c?.integrity,status:c?.status??"unknown"});continue}let l=o[a];e.push({name:r.name,description:r.description,memoryTypes:r.memoryTypes,slots:Object.keys(r.workflowSlots),version:l?.version??r.version,integrity:l?.integrity,status:l?.status??"active"})}return e}d(M,"listActivePacks");function k(t,i){let n=t.role&&t.role!=="DEV",s=t.mcps&&t.mcps.length>0;for(let o of i){let e=m(o);if(e?.suggestedPersona&&(!n&&e.suggestedPersona.role&&(t.role=e.suggestedPersona.role),!t.focus&&e.suggestedPersona.focus&&(t.focus=e.suggestedPersona.focus),!s&&e.suggestedPersona.mcps&&(t.mcps=[...e.suggestedPersona.mcps]),t.role&&t.role!=="DEV"))break}}d(k,"applyPersonaSuggestion");export{y as activatePacks,j as deactivatePacks,P as detectSuggestedPacks,C as ensureCodingAnticipationDefaults,M as listActivePacks};
@@ -5,5 +5,5 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as f}from"./chunk-PPWPUEBH.mjs";import{c as $,d as E}from"./chunk-MW54MTLB.mjs";import{a as M}from"./chunk-H4CA3XZ6.mjs";import{a as r}from"./chunk-Y3RHBU2R.mjs";import{a as g}from"./chunk-ZQI4TJ5C.mjs";import"./chunk-SWJ7TLBD.mjs";import"./chunk-KEJ5RMAI.mjs";import"./chunk-ZJW27EUC.mjs";import{a as h,b as C,c as T,d as P,e as I}from"./chunk-XFQ7NNLN.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3FBCOCPD.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import{a as W,b as A}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{d as S}from"./chunk-KV4NXLPT.mjs";import{v as O,w as Y}from"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-EXVL2OFE.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import{e as z,f as G}from"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";Y();G();import*as n from"@clack/prompts";import p from"chalk";var y=class{static{o(this,"OnboardingWizard")}projectPath;aborted=!1;detectedType="unknown";confirmedType="unknown";selectedAgents=[];detectedStack={language:"Unknown",technologies:[]};confirmedStack={language:"Unknown",technologies:[]};preferences={verbosity:"normal",autoSync:!0,telemetry:!1};constructor(t=process.cwd()){this.projectPath=t}async run(){n.intro(p.cyan.bold("\u26A1 prjct-cli setup"));let t=[{id:"project-type",title:"Project Type",run:o(()=>this.stepProjectType(),"run")},{id:"ai-agents",title:"AI Agents",run:o(()=>this.stepAIAgents(),"run")},{id:"stack",title:"Stack Confirmation",run:o(()=>this.stepStack(),"run")},{id:"preferences",title:"Preferences",run:o(()=>this.stepPreferences(),"run")},{id:"summary",title:"Summary",run:o(()=>this.stepSummary(),"run")}];for(let e of t)if(!await e.run()||this.aborted)return this.buildResult(!0);return n.outro(p.green("Setup complete!")),this.buildResult(!1)}async runNonInteractive(){r.spin("Auto-detecting project configuration..."),this.detectedType=await T(this.projectPath),this.confirmedType=this.detectedType;let t=await P(this.projectPath);return this.selectedAgents=t,this.detectedStack=await I(this.projectPath),this.confirmedStack=this.detectedStack,r.done("Configuration detected"),this.buildResult(!1)}async stepProjectType(){this.detectedType=await T(this.projectPath);let t=h.findIndex(i=>i.value===this.detectedType),e=await n.select({message:this.detectedType!=="unknown"?`Detected: ${this.getProjectTypeLabel(this.detectedType)}. Is this correct?`:"What type of project is this?",options:h.map(i=>({label:i.title,hint:i.description,value:i.value})),initialValue:t>=0?h[t].value:void 0});return n.isCancel(e)?(this.handleCancel(),!1):(this.confirmedType=e||this.detectedType,!0)}async stepAIAgents(){let t=await P(this.projectPath),e=C.map(a=>({label:a.title,hint:a.description,value:a.value})),i=await n.multiselect({message:"Which AI agents do you use?",options:e,initialValues:t,required:!0});return n.isCancel(i)?(this.handleCancel(),!1):(this.selectedAgents=i,!0)}async stepStack(){this.detectedStack=await I(this.projectPath);let t=this.formatStackDisplay(this.detectedStack);n.note(t,"Detected stack");let e=await n.confirm({message:"Is this stack correct?",initialValue:!0});if(n.isCancel(e))return this.handleCancel(),!1;if(e)this.confirmedStack=this.detectedStack;else{let i=await n.group({language:o(()=>n.text({message:"Primary language:",defaultValue:this.detectedStack.language}),"language"),framework:o(()=>n.text({message:"Framework (optional):",defaultValue:this.detectedStack.framework||""}),"framework")},{onCancel:o(()=>this.handleCancel(),"onCancel")});if(this.aborted)return!1;this.confirmedStack={...this.detectedStack,language:i.language||this.detectedStack.language,framework:i.framework||void 0}}return!0}async stepPreferences(){let t=await n.group({verbosity:o(()=>n.select({message:"Output verbosity:",options:[{label:"Minimal",hint:"Essential output only",value:"minimal"},{label:"Normal (Recommended)",hint:"Balanced information",value:"normal"},{label:"Verbose",hint:"Detailed logging",value:"verbose"}],initialValue:"normal"}),"verbosity"),autoSync:o(()=>n.confirm({message:"Auto-sync context on file changes?",initialValue:!0}),"autoSync")},{onCancel:o(()=>this.handleCancel(),"onCancel")});return this.aborted?!1:(this.preferences={verbosity:t.verbosity||"normal",autoSync:t.autoSync??!0,telemetry:!1},!0)}async stepSummary(){let t=[`${p.cyan("Project Type:")} ${this.getProjectTypeLabel(this.confirmedType)}`,`${p.cyan("AI Agents:")} ${this.selectedAgents.map(i=>this.getAgentLabel(i)).join(", ")}`,`${p.cyan("Stack:")} ${this.formatStackDisplay(this.confirmedStack)}`,`${p.cyan("Verbosity:")} ${this.preferences.verbosity}`,`${p.cyan("Auto-sync:")} ${this.preferences.autoSync?"Yes":"No"}`].join(`
9
- `);n.note(t,"Configuration Summary");let e=await n.confirm({message:"Generate configuration with these settings?",initialValue:!0});return n.isCancel(e)||!e?(n.isCancel(e)&&this.handleCancel(),!1):!0}handleCancel(){this.aborted=!0,n.cancel("Setup cancelled. Run again anytime.")}getProjectTypeLabel(t){return h.find(e=>e.value===t)?.title||"Unknown"}getAgentLabel(t){return C.find(e=>e.value===t)?.title||t}formatStackDisplay(t){let e=[t.language];return t.framework&&e.push(t.framework),t.runtime&&t.runtime!=="Node.js"&&e.push(t.runtime),t.technologies.length>0&&e.push(`+ ${t.technologies.slice(0,3).join(", ")}`),e.join(" / ")}buildResult(t){return{projectType:this.confirmedType,agents:this.selectedAgents,stack:this.confirmedStack,preferences:this.preferences,skipped:t}}getSelectedAgents(){return this.selectedAgents}getConfirmedStack(){return this.confirmedStack}getPreferences(){return this.preferences}};var j={current:null};async function L(){if(!j.current){let{AnalysisCommands:k}=await import("./analysis-VN7APBHR.mjs");j.current=new k}return j.current}o(L,"getAnalysisCommands");var N=class extends E{static{o(this,"PlanningCommands")}async _hintCommittedMemoryExport(t){try{let e=await import("node:fs/promises"),a=(await import("node:path")).join(t,".prjct","memory-export","manifest.json"),c=JSON.parse(await e.readFile(a,"utf-8"));c?.entries&&c.entries>0&&r.info(`\u{1F4E6} This repo ships ${c.entries} team memories (.prjct/memory-export/). Load them: prjct memory import`)}catch{}}async init(t={},e=process.cwd()){try{let i=typeof t=="string"||t===null?{idea:t}:t;if(await this.initializeAgent(),await A.isConfigured(e))return r.warn("already initialized"),{success:!1,message:"Already initialized"};let c=process.stdout.isTTY&&process.stdin.isTTY,s=i.yes||!c||process.env.CI==="true"?c&&i.yes?await new y(e).runNonInteractive():null:await new y(e).run();if(s?.skipped)return{success:!1,message:"Setup cancelled"};r.step(1,4,"Detecting author...");let u=await W(),R={name:u.name||void 0,email:u.email||void 0,github:u.github||void 0},d=(await A.createConfig(e,R)).projectId;await this._applyInitialPacksAndPersona(e,i),r.step(2,4,"Creating structure..."),await O.ensureProjectStructure(d),await this._seedShipWorkflow(d,e);let m=await this._detectEmptyDirectory(e),D=await this._detectExistingCode(e);if(D||!m){r.step(3,4,"Analyzing project...");let w=await L();if((await w.analyze({},e)).success){r.step(4,4,"Generating agents..."),await w.sync(e);let b=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("initialized"),await this._hintCommittedMemoryExport(e),this._printNextSteps(s,b??void 0),{success:!0,mode:"existing",projectId:d,wizard:s}}}let v=i.idea;if(m&&!D){if(!v){await S.installGlobalConfig();let b=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("blank project - provide idea for architect mode"),this._printNextSteps(s,b??void 0),{success:!0,mode:"blank_no_idea",projectId:d,wizard:s}}r.spin("architect mode...");let{projectMemory:w}=await import("./project-memory-UDH56VFP.mjs");await w.remember(e,{type:"idea",content:v,tags:{source:"architect-init",status:"awaiting-stack-recommendation"},source:"architect-init"}),await S.installGlobalConfig();let _=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("architect mode ready"),this._printNextSteps(s,_??void 0),{success:!0,mode:"architect",projectId:d,idea:v,wizard:s}}await S.installGlobalConfig();let V=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("initialized"),this._printNextSteps(s,V??void 0),{success:!0,projectId:d,wizard:s}}catch(i){return r.fail(z(i)),$(i)}}async quickstart(t={},e=process.cwd()){let i=t.pack??"code,daily",a=await this.init({...t,yes:!0,pack:i},e);return!a.success&&a.message!=="Already initialized"?a:(console.log(""),console.log(" \u2500\u2500 quickstart ready \u2500\u2500"),console.log(" 1. Open your coding agent in this repo (Claude / Codex / Cursor / Grok)."),console.log(" 2. Say what to build \u2014 the agent runs `prjct work` for you."),console.log(" 3. Team brain without cloud: `prjct memory export` \u2192 commit \u2192 clone \u2192 import."),console.log(""),{...a,success:!0})}_printNextSteps(t,e){console.log(""),console.log(" \u2713 global prjct router refreshed where supported"),e?.claudeMd&&e.claudeMd.action!=="unchanged"&&console.log(" \u2713 project CLAUDE.md updated with routing block"),e?.agentsMd&&e.agentsMd.action!=="unchanged"&&console.log(" \u2713 project AGENTS.md updated with universal routing block"),(e?.ideRules.length??0)>0&&console.log(` \u2713 project IDE rules updated: ${e?.ideRules.join(", ")}`),console.log(""),console.log(" You don't run prjct commands. Your AI coding agent does."),console.log(""),console.log(" Just describe what you're doing \u2014 the agent reads the intent and"),console.log(" runs the right verb. Routine captures (decision, learning,"),console.log(" gotcha, idea) save automatically; ship and other destructive"),console.log(" verbs surface a one-line plan and wait for your OK."),console.log(""),console.log(" If you want to drive manually:"),console.log(" prjct sync Refresh context + skill body"),console.log(" prjct work Start a work cycle"),console.log(" prjct land Session-close checklist"),console.log(" prjct memory export Git-share team memory"),console.log(""),t&&t.agents.length>0&&(console.log(` Detected agents: ${t.agents.join(", ")}`),console.log("")),console.log(" Docs: https://prjct.app/docs"),console.log("")}async _agentSelections(t,e){if(t)return t.agents;try{let{detectInstalledAgents:i}=await import("./detection-QRVSNMKL.mjs");return i(e)}catch{return[]}}async _applyInitialPacksAndPersona(t,e){let{activatePacks:i,detectSuggestedPacks:a}=await import("./pack-manager-QLFQKP24.mjs"),c=e.pack?e.pack.split(",").map(l=>l.trim()).filter(Boolean):e.persona?[]:await a(t);if(c.length>0&&await i(t,c,{suggestPersona:!0}),e.persona){let l=(await import("./config-manager-2JJPCLKC.mjs")).default,s=await l.readConfig(t);if(s){let u=s.persona??{role:e.persona};u.role=e.persona,await l.writeConfig(t,{...s,persona:u})}}}async _resolveInitialPrConvention(t,e){let{detectPrConventionSignal:i,defaultPrConventionFor:a}=await import("./pr-convention-5NPXQJ2R.mjs"),{customWorkflowStorage:c}=await import("./custom-workflow-storage-VBMWLKA7.mjs"),l=await i(e),s=a(l),u=!!(process.stdout.isTTY&&process.stdin.isTTY),x=(l.kind==="github-ambiguous"&&u?await(async()=>{let d=await import("@clack/prompts"),m=await d.confirm({message:"This project ships to GitHub with no PR template. Should ship open/update the PR automatically?",initialValue:!0});return d.isCancel(m)?null:m?"auto":"manual"})():null)??s;c.updateWorkflow(t,"ship",{metadata:{prConvention:x}})}async _seedShipWorkflow(t,e){let i=await M(e);await this._resolveInitialPrConvention(t,e);let{seedCodeShipRules:a}=await import("./shipping-C637PCOF.mjs");await a(t,e);let c=f.getRulesForCommand(t,"ship").reduce((l,s)=>Math.max(l,s.sortOrder??0),0)+1;f.addRule(t,{type:"gate",command:"ship",position:"before",action:'git branch --show-current | grep -vE "^(main|master)$"',description:"Prevent shipping from main branch",enabled:!0,timeoutMs:5e3,sortOrder:c,createdAt:new Date().toISOString()}),i.lint&&f.addRule(t,{type:"step",command:"ship",position:"before",action:`${i.lint.command} || true`,description:"Lint code",enabled:!0,timeoutMs:12e4,sortOrder:c+1,createdAt:new Date().toISOString()}),i.test&&f.addRule(t,{type:"step",command:"ship",position:"before",action:`${i.test.command} || true`,description:"Run tests",enabled:!0,timeoutMs:3e5,sortOrder:c+(i.lint?2:1),createdAt:new Date().toISOString()})}};export{N as PlanningCommands};
8
+ import{a as f}from"./chunk-PPWPUEBH.mjs";import{c as $,d as E}from"./chunk-ZH2MF7H7.mjs";import{a as M}from"./chunk-H4CA3XZ6.mjs";import{a as r}from"./chunk-NSTXHVTH.mjs";import{a as g}from"./chunk-ZXON2U5F.mjs";import"./chunk-NMB6YSAH.mjs";import"./chunk-KEJ5RMAI.mjs";import"./chunk-ZJW27EUC.mjs";import{a as h,b as C,c as T,d as P,e as I}from"./chunk-XFQ7NNLN.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-3FBCOCPD.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import{a as W,b as A}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import{d as S}from"./chunk-IHEOOJJT.mjs";import{v as O,w as Y}from"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-A6LRNS6R.mjs";import"./chunk-SYHDEUVU.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import{e as z,f as G}from"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";Y();G();import*as n from"@clack/prompts";import p from"chalk";var y=class{static{o(this,"OnboardingWizard")}projectPath;aborted=!1;detectedType="unknown";confirmedType="unknown";selectedAgents=[];detectedStack={language:"Unknown",technologies:[]};confirmedStack={language:"Unknown",technologies:[]};preferences={verbosity:"normal",autoSync:!0,telemetry:!1};constructor(t=process.cwd()){this.projectPath=t}async run(){n.intro(p.cyan.bold("\u26A1 prjct-cli setup"));let t=[{id:"project-type",title:"Project Type",run:o(()=>this.stepProjectType(),"run")},{id:"ai-agents",title:"AI Agents",run:o(()=>this.stepAIAgents(),"run")},{id:"stack",title:"Stack Confirmation",run:o(()=>this.stepStack(),"run")},{id:"preferences",title:"Preferences",run:o(()=>this.stepPreferences(),"run")},{id:"summary",title:"Summary",run:o(()=>this.stepSummary(),"run")}];for(let e of t)if(!await e.run()||this.aborted)return this.buildResult(!0);return n.outro(p.green("Setup complete!")),this.buildResult(!1)}async runNonInteractive(){r.spin("Auto-detecting project configuration..."),this.detectedType=await T(this.projectPath),this.confirmedType=this.detectedType;let t=await P(this.projectPath);return this.selectedAgents=t,this.detectedStack=await I(this.projectPath),this.confirmedStack=this.detectedStack,r.done("Configuration detected"),this.buildResult(!1)}async stepProjectType(){this.detectedType=await T(this.projectPath);let t=h.findIndex(i=>i.value===this.detectedType),e=await n.select({message:this.detectedType!=="unknown"?`Detected: ${this.getProjectTypeLabel(this.detectedType)}. Is this correct?`:"What type of project is this?",options:h.map(i=>({label:i.title,hint:i.description,value:i.value})),initialValue:t>=0?h[t].value:void 0});return n.isCancel(e)?(this.handleCancel(),!1):(this.confirmedType=e||this.detectedType,!0)}async stepAIAgents(){let t=await P(this.projectPath),e=C.map(a=>({label:a.title,hint:a.description,value:a.value})),i=await n.multiselect({message:"Which AI agents do you use?",options:e,initialValues:t,required:!0});return n.isCancel(i)?(this.handleCancel(),!1):(this.selectedAgents=i,!0)}async stepStack(){this.detectedStack=await I(this.projectPath);let t=this.formatStackDisplay(this.detectedStack);n.note(t,"Detected stack");let e=await n.confirm({message:"Is this stack correct?",initialValue:!0});if(n.isCancel(e))return this.handleCancel(),!1;if(e)this.confirmedStack=this.detectedStack;else{let i=await n.group({language:o(()=>n.text({message:"Primary language:",defaultValue:this.detectedStack.language}),"language"),framework:o(()=>n.text({message:"Framework (optional):",defaultValue:this.detectedStack.framework||""}),"framework")},{onCancel:o(()=>this.handleCancel(),"onCancel")});if(this.aborted)return!1;this.confirmedStack={...this.detectedStack,language:i.language||this.detectedStack.language,framework:i.framework||void 0}}return!0}async stepPreferences(){let t=await n.group({verbosity:o(()=>n.select({message:"Output verbosity:",options:[{label:"Minimal",hint:"Essential output only",value:"minimal"},{label:"Normal (Recommended)",hint:"Balanced information",value:"normal"},{label:"Verbose",hint:"Detailed logging",value:"verbose"}],initialValue:"normal"}),"verbosity"),autoSync:o(()=>n.confirm({message:"Auto-sync context on file changes?",initialValue:!0}),"autoSync")},{onCancel:o(()=>this.handleCancel(),"onCancel")});return this.aborted?!1:(this.preferences={verbosity:t.verbosity||"normal",autoSync:t.autoSync??!0,telemetry:!1},!0)}async stepSummary(){let t=[`${p.cyan("Project Type:")} ${this.getProjectTypeLabel(this.confirmedType)}`,`${p.cyan("AI Agents:")} ${this.selectedAgents.map(i=>this.getAgentLabel(i)).join(", ")}`,`${p.cyan("Stack:")} ${this.formatStackDisplay(this.confirmedStack)}`,`${p.cyan("Verbosity:")} ${this.preferences.verbosity}`,`${p.cyan("Auto-sync:")} ${this.preferences.autoSync?"Yes":"No"}`].join(`
9
+ `);n.note(t,"Configuration Summary");let e=await n.confirm({message:"Generate configuration with these settings?",initialValue:!0});return n.isCancel(e)||!e?(n.isCancel(e)&&this.handleCancel(),!1):!0}handleCancel(){this.aborted=!0,n.cancel("Setup cancelled. Run again anytime.")}getProjectTypeLabel(t){return h.find(e=>e.value===t)?.title||"Unknown"}getAgentLabel(t){return C.find(e=>e.value===t)?.title||t}formatStackDisplay(t){let e=[t.language];return t.framework&&e.push(t.framework),t.runtime&&t.runtime!=="Node.js"&&e.push(t.runtime),t.technologies.length>0&&e.push(`+ ${t.technologies.slice(0,3).join(", ")}`),e.join(" / ")}buildResult(t){return{projectType:this.confirmedType,agents:this.selectedAgents,stack:this.confirmedStack,preferences:this.preferences,skipped:t}}getSelectedAgents(){return this.selectedAgents}getConfirmedStack(){return this.confirmedStack}getPreferences(){return this.preferences}};var j={current:null};async function L(){if(!j.current){let{AnalysisCommands:k}=await import("./analysis-UI2JRLJO.mjs");j.current=new k}return j.current}o(L,"getAnalysisCommands");var N=class extends E{static{o(this,"PlanningCommands")}async _hintCommittedMemoryExport(t){try{let e=await import("node:fs/promises"),a=(await import("node:path")).join(t,".prjct","memory-export","manifest.json"),c=JSON.parse(await e.readFile(a,"utf-8"));c?.entries&&c.entries>0&&r.info(`\u{1F4E6} This repo ships ${c.entries} team memories (.prjct/memory-export/). Load them: prjct memory import`)}catch{}}async init(t={},e=process.cwd()){try{let i=typeof t=="string"||t===null?{idea:t}:t;if(await this.initializeAgent(),await A.isConfigured(e))return r.warn("already initialized"),{success:!1,message:"Already initialized"};let c=process.stdout.isTTY&&process.stdin.isTTY,s=i.yes||!c||process.env.CI==="true"?c&&i.yes?await new y(e).runNonInteractive():null:await new y(e).run();if(s?.skipped)return{success:!1,message:"Setup cancelled"};r.step(1,4,"Detecting author...");let u=await W(),R={name:u.name||void 0,email:u.email||void 0,github:u.github||void 0},d=(await A.createConfig(e,R)).projectId;await this._applyInitialPacksAndPersona(e,i),r.step(2,4,"Creating structure..."),await O.ensureProjectStructure(d),await this._seedShipWorkflow(d,e);let m=await this._detectEmptyDirectory(e),D=await this._detectExistingCode(e);if(D||!m){r.step(3,4,"Analyzing project...");let w=await L();if((await w.analyze({},e)).success){r.step(4,4,"Generating agents..."),await w.sync(e);let b=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("initialized"),await this._hintCommittedMemoryExport(e),this._printNextSteps(s,b??void 0),{success:!0,mode:"existing",projectId:d,wizard:s}}}let v=i.idea;if(m&&!D){if(!v){await S.installGlobalConfig();let b=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("blank project - provide idea for architect mode"),this._printNextSteps(s,b??void 0),{success:!0,mode:"blank_no_idea",projectId:d,wizard:s}}r.spin("architect mode...");let{projectMemory:w}=await import("./project-memory-YQLZX5RG.mjs");await w.remember(e,{type:"idea",content:v,tags:{source:"architect-init",status:"awaiting-stack-recommendation"},source:"architect-init"}),await S.installGlobalConfig();let _=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("architect mode ready"),this._printNextSteps(s,_??void 0),{success:!0,mode:"architect",projectId:d,idea:v,wizard:s}}await S.installGlobalConfig();let V=await g(e,{agents:await this._agentSelections(s,e),explicit:!0}).catch(()=>null);return r.done("initialized"),this._printNextSteps(s,V??void 0),{success:!0,projectId:d,wizard:s}}catch(i){return r.fail(z(i)),$(i)}}async quickstart(t={},e=process.cwd()){let i=t.pack??"code,daily",a=await this.init({...t,yes:!0,pack:i},e);return!a.success&&a.message!=="Already initialized"?a:(console.log(""),console.log(" \u2500\u2500 quickstart ready \u2500\u2500"),console.log(" 1. Open your coding agent in this repo (Claude / Codex / Cursor / Grok)."),console.log(" 2. Say what to build \u2014 the agent runs `prjct work` for you."),console.log(" 3. Team brain without cloud: `prjct memory export` \u2192 commit \u2192 clone \u2192 import."),console.log(""),{...a,success:!0})}_printNextSteps(t,e){console.log(""),console.log(" \u2713 global prjct router refreshed where supported"),e?.claudeMd&&e.claudeMd.action!=="unchanged"&&console.log(" \u2713 project CLAUDE.md updated with routing block"),e?.agentsMd&&e.agentsMd.action!=="unchanged"&&console.log(" \u2713 project AGENTS.md updated with universal routing block"),(e?.ideRules.length??0)>0&&console.log(` \u2713 project IDE rules updated: ${e?.ideRules.join(", ")}`),console.log(""),console.log(" You don't run prjct commands. Your AI coding agent does."),console.log(""),console.log(" Just describe what you're doing \u2014 the agent reads the intent and"),console.log(" runs the right verb. Routine captures (decision, learning,"),console.log(" gotcha, idea) save automatically; ship and other destructive"),console.log(" verbs surface a one-line plan and wait for your OK."),console.log(""),console.log(" If you want to drive manually:"),console.log(" prjct sync Refresh context + skill body"),console.log(" prjct work Start a work cycle"),console.log(" prjct land Session-close checklist"),console.log(" prjct memory export Git-share team memory"),console.log(""),t&&t.agents.length>0&&(console.log(` Detected agents: ${t.agents.join(", ")}`),console.log("")),console.log(" Docs: https://prjct.app/docs"),console.log("")}async _agentSelections(t,e){if(t)return t.agents;try{let{detectInstalledAgents:i}=await import("./detection-QRVSNMKL.mjs");return i(e)}catch{return[]}}async _applyInitialPacksAndPersona(t,e){let{activatePacks:i,detectSuggestedPacks:a}=await import("./pack-manager-YXRK2TJ4.mjs"),c=e.pack?e.pack.split(",").map(l=>l.trim()).filter(Boolean):e.persona?[]:await a(t);if(c.length>0&&await i(t,c,{suggestPersona:!0}),e.persona){let l=(await import("./config-manager-XDKOTIJM.mjs")).default,s=await l.readConfig(t);if(s){let u=s.persona??{role:e.persona};u.role=e.persona,await l.writeConfig(t,{...s,persona:u})}}}async _resolveInitialPrConvention(t,e){let{detectPrConventionSignal:i,defaultPrConventionFor:a}=await import("./pr-convention-5NPXQJ2R.mjs"),{customWorkflowStorage:c}=await import("./custom-workflow-storage-VBMWLKA7.mjs"),l=await i(e),s=a(l),u=!!(process.stdout.isTTY&&process.stdin.isTTY),x=(l.kind==="github-ambiguous"&&u?await(async()=>{let d=await import("@clack/prompts"),m=await d.confirm({message:"This project ships to GitHub with no PR template. Should ship open/update the PR automatically?",initialValue:!0});return d.isCancel(m)?null:m?"auto":"manual"})():null)??s;c.updateWorkflow(t,"ship",{metadata:{prConvention:x}})}async _seedShipWorkflow(t,e){let i=await M(e);await this._resolveInitialPrConvention(t,e);let{seedCodeShipRules:a}=await import("./shipping-2ULWBGRX.mjs");await a(t,e);let c=f.getRulesForCommand(t,"ship").reduce((l,s)=>Math.max(l,s.sortOrder??0),0)+1;f.addRule(t,{type:"gate",command:"ship",position:"before",action:'git branch --show-current | grep -vE "^(main|master)$"',description:"Prevent shipping from main branch",enabled:!0,timeoutMs:5e3,sortOrder:c,createdAt:new Date().toISOString()}),i.lint&&f.addRule(t,{type:"step",command:"ship",position:"before",action:`${i.lint.command} || true`,description:"Lint code",enabled:!0,timeoutMs:12e4,sortOrder:c+1,createdAt:new Date().toISOString()}),i.test&&f.addRule(t,{type:"step",command:"ship",position:"before",action:`${i.test.command} || true`,description:"Run tests",enabled:!0,timeoutMs:3e5,sortOrder:c+(i.lint?2:1),createdAt:new Date().toISOString()})}};export{N as PlanningCommands};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a}from"./chunk-WUOVBBPC.mjs";import{a as e}from"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as n}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";function u(f=process.cwd(),c){return a({event:"PostToolUse",projectPath:f,afterEmit:o(async(t,r)=>{let i=t.tool_input?.file_path;if(!(!i||!(await n.readConfig(r))?.projectId))try{await e.log(r,"post_edit",{file:i,tool:t.tool_name??"unknown"})}catch{}},"afterEmit")},c)}o(u,"runPostEditHook");export{u as runPostEditHook};
8
+ import{a}from"./chunk-WUOVBBPC.mjs";import{a as e}from"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as n}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as o}from"./chunk-E66B27AL.mjs";function u(f=process.cwd(),c){return a({event:"PostToolUse",projectPath:f,afterEmit:o(async(t,r)=>{let i=t.tool_input?.file_path;if(!(!i||!(await n.readConfig(r))?.projectId))try{await e.log(r,"post_edit",{file:i,tool:t.tool_name??"unknown"})}catch{}},"afterEmit")},c)}o(u,"runPostEditHook");export{u as runPostEditHook};
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as d}from"./chunk-64ZEBHDX.mjs";import{a as k}from"./chunk-BVK7ZDLX.mjs";import{c as l}from"./chunk-MXHX44WF.mjs";import{a as m,c as p}from"./chunk-WL6PKX3U.mjs";import{a as u}from"./chunk-WUOVBBPC.mjs";import"./chunk-KEJ5RMAI.mjs";import"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as r}from"./chunk-E66B27AL.mjs";var s=new WeakMap;function f(e){let o=e.tool_input??e.toolInput;return o&&typeof o.command=="string"?o.command:typeof e.command=="string"?e.command:o&&typeof o.command_line=="string"?o.command_line:""}r(f,"extractCommand");function y(e){let o=f(e),t=o?l(o):null;return t?{deny:t}:null}r(y,"decideBroadProcessTermination");function g(e,o){let t=o,n=s.get(t);if(n)return n;let a=d(e,o);return s.set(t,a),a}r(g,"evaluatePackageOnce");function x(e=process.cwd(),o){return u({event:"PreToolUse",projectPath:e,decide:r(async(t,n)=>{try{let a=k(t);if(a)return a;let c=y(t);if(c)return c;let i=await g(n,t);return i?.strict?{deny:i.message}:null}catch{return null}},"decide"),build:r(async(t,n)=>{try{let[a,c]=await Promise.all([p(t)?m(n):null,g(n,t)]),i=c&&!c.strict?`# prjct: package legitimacy (advisory)
8
+ import{a as d}from"./chunk-UI25YRTY.mjs";import{a as k}from"./chunk-BVK7ZDLX.mjs";import{c as l}from"./chunk-MXHX44WF.mjs";import{a as m,c as p}from"./chunk-PQJ64L6U.mjs";import{a as u}from"./chunk-WUOVBBPC.mjs";import"./chunk-KEJ5RMAI.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as r}from"./chunk-E66B27AL.mjs";var s=new WeakMap;function f(e){let o=e.tool_input??e.toolInput;return o&&typeof o.command=="string"?o.command:typeof e.command=="string"?e.command:o&&typeof o.command_line=="string"?o.command_line:""}r(f,"extractCommand");function y(e){let o=f(e),t=o?l(o):null;return t?{deny:t}:null}r(y,"decideBroadProcessTermination");function g(e,o){let t=o,n=s.get(t);if(n)return n;let a=d(e,o);return s.set(t,a),a}r(g,"evaluatePackageOnce");function x(e=process.cwd(),o){return u({event:"PreToolUse",projectPath:e,decide:r(async(t,n)=>{try{let a=k(t);if(a)return a;let c=y(t);if(c)return c;let i=await g(n,t);return i?.strict?{deny:i.message}:null}catch{return null}},"decide"),build:r(async(t,n)=>{try{let[a,c]=await Promise.all([p(t)?m(n):null,g(n,t)]),i=c&&!c.strict?`# prjct: package legitimacy (advisory)
9
9
  ${c.message}`:null;return[a,i].filter(Boolean).join(`
10
10
 
11
11
  `)||null}catch{return null}finally{s.delete(t)}},"build")},o)}r(x,"runPreBashHook");export{y as decideBroadProcessTermination,x as runPreBashHook};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b,c}from"./chunk-WL6PKX3U.mjs";import"./chunk-WUOVBBPC.mjs";import"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as buildPreCommitContext,c as isCommitInput,b as runPreCommitHook};
8
+ import{a,b,c}from"./chunk-PQJ64L6U.mjs";import"./chunk-WUOVBBPC.mjs";import"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as buildPreCommitContext,c as isCommitInput,b as runPreCommitHook};
@@ -5,7 +5,7 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as B}from"./chunk-BVK7ZDLX.mjs";import{a as R}from"./chunk-5WAONIPX.mjs";import{a as E}from"./chunk-WUOVBBPC.mjs";import{a as A}from"./chunk-ADYTBOCZ.mjs";import{a as C,b as x,c as k,d as w,e as y,f as _,g,i as H}from"./chunk-EI6VQZOX.mjs";import"./chunk-TF6PN7IB.mjs";import{b as $,c as b,d as T}from"./chunk-XYKVWO23.mjs";import"./chunk-7PBWIO4K.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import{b as L}from"./chunk-PVCEWFHS.mjs";import"./chunk-LR24AIEW.mjs";import"./chunk-UUULLTQV.mjs";import{b as S}from"./chunk-D7DQABWO.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-FZS3XGEA.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import{i as m}from"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as I}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as i}from"./chunk-E66B27AL.mjs";import{createHash as W}from"node:crypto";var N=new Set(["decision","gotcha","fact","spec","identity","voice","glossary"]);function U(r){return N.has(r)}i(U,"isSotBindType");function V(r,o){let n=new Set(o??[]);return r.filter(e=>U(e.type)&&e.confidence==="high"&&e.id&&!n.has(e.id))}i(V,"filterSotCandidates");function j(r){let o=V(r.candidates,r.overriddenIds);if(o.length===0)return{action:"none",reason:"no-sot",memoryIds:[],message:""};let n=r.harnessLevel??null,e=r.fileLabel?` on \`${r.fileLabel}\``:"",t=o[0],s=o.map(d=>d.id),a='To supersede: `prjct remember decision "\u2026why\u2026" --tags supersedes:'+t.id+'`. To lift for this memory: `prjct remember feedback "override conflict '+t.id+': <why>" --tags conflict:override,memory:'+t.id+"`.";if(n==="H2"||n==="H3"){let d=`SoT hard-bind (${n})${e}: must not contradict [${t.type}] ${F(t.content,80)} (\`${t.id}\`)`;return{action:"deny",reason:"h2-sot-deny",memoryIds:s,message:[`\u26D4 prjct SoT bind: ${d}`,`Memories: ${s.join(", ")}`,a,"H2+ work is bound to living Source-of-Truth. Supersede or override before Edit|Write."].join(" ")}}return n==="H1"?{action:"warn",reason:"h1-sot-warn",memoryIds:s,message:["# prjct: SoT soft-bind (H1)","",`High-confidence SoT on this file${e}:`,...o.slice(0,3).map(d=>`- **[${d.type}]** ${F(d.content,100)} \`${d.id}\``),"",a,"","> H2+ would hard-block. On H1 this is advisory \u2014 supersede if intentional."].join(`
8
+ import{a as B}from"./chunk-BVK7ZDLX.mjs";import{a as R}from"./chunk-5WAONIPX.mjs";import{a as E}from"./chunk-WUOVBBPC.mjs";import{a as A}from"./chunk-ONGVBXBD.mjs";import{a as C,b as x,c as k,d as w,e as y,f as _,g,i as H}from"./chunk-6LU777GI.mjs";import"./chunk-TF6PN7IB.mjs";import{b as $,c as b,d as T}from"./chunk-FBEDUKMG.mjs";import"./chunk-PFORBQBF.mjs";import"./chunk-Y5NQV46G.mjs";import"./chunk-DXQMKW2B.mjs";import{b as L}from"./chunk-7PA4KPSR.mjs";import"./chunk-IDPBMN3Q.mjs";import"./chunk-UUULLTQV.mjs";import{b as S}from"./chunk-6NMHVPAI.mjs";import"./chunk-OUAS3LZ3.mjs";import"./chunk-ETTDRXQ6.mjs";import"./chunk-RLKYEL3F.mjs";import"./chunk-7WO5CEH3.mjs";import"./chunk-AORD3YDQ.mjs";import"./chunk-M5E2YOZ4.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import{i as m}from"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as I}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-GCKILEXJ.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as i}from"./chunk-E66B27AL.mjs";import{createHash as W}from"node:crypto";var N=new Set(["decision","gotcha","fact","spec","identity","voice","glossary"]);function U(r){return N.has(r)}i(U,"isSotBindType");function V(r,o){let n=new Set(o??[]);return r.filter(e=>U(e.type)&&e.confidence==="high"&&e.id&&!n.has(e.id))}i(V,"filterSotCandidates");function j(r){let o=V(r.candidates,r.overriddenIds);if(o.length===0)return{action:"none",reason:"no-sot",memoryIds:[],message:""};let n=r.harnessLevel??null,e=r.fileLabel?` on \`${r.fileLabel}\``:"",t=o[0],s=o.map(d=>d.id),a='To supersede: `prjct remember decision "\u2026why\u2026" --tags supersedes:'+t.id+'`. To lift for this memory: `prjct remember feedback "override conflict '+t.id+': <why>" --tags conflict:override,memory:'+t.id+"`.";if(n==="H2"||n==="H3"){let d=`SoT hard-bind (${n})${e}: must not contradict [${t.type}] ${F(t.content,80)} (\`${t.id}\`)`;return{action:"deny",reason:"h2-sot-deny",memoryIds:s,message:[`\u26D4 prjct SoT bind: ${d}`,`Memories: ${s.join(", ")}`,a,"H2+ work is bound to living Source-of-Truth. Supersede or override before Edit|Write."].join(" ")}}return n==="H1"?{action:"warn",reason:"h1-sot-warn",memoryIds:s,message:["# prjct: SoT soft-bind (H1)","",`High-confidence SoT on this file${e}:`,...o.slice(0,3).map(d=>`- **[${d.type}]** ${F(d.content,100)} \`${d.id}\``),"",a,"","> H2+ would hard-block. On H1 this is advisory \u2014 supersede if intentional."].join(`
9
9
  `)}:{action:"none",reason:"none",memoryIds:s,message:""}}i(j,"sotBindVerdict");function F(r,o){let n=r.replace(/\s+/g," ").trim();return n.length>o?`${n.slice(0,o-1)}\u2026`:n}i(F,"truncate");function D(r,o){if(o.length===0)return null;let n=[`# prjct: heads-up before editing \`${r}\``,"",`${o.length} preventive trap(s) recorded against this file:`,""];for(let e of o)n.push(`- **[${e.type}]** ${e.title} \`${e.id}\``);return n.push(""),n.push("> Dynasty trap-before-edit: surface is mandatory. Apply if it still holds; supersede if not."),n.join(`
10
10
  `)}i(D,"formatTrapSurfaceMessage");var v=1200,M=new Map,h=new Map;function z(r,o,n,e){let t=`${r}\0${o}\0${n}`,s=W("sha1").update(e.map(a=>a.id).join("\0")).digest("hex");return h.get(t)===s?!0:(h.size>64&&h.clear(),h.set(t,s),!1)}i(z,"headsUpAlreadyShown");function P(r,o){let n=`${r}\0${o}`,e=M.get(n);if(e)return e;let t=(()=>{try{return L.recallForFile(r,o,x,{preventiveOnly:!0})}catch{return[]}})();return M.set(n,t),t}i(P,"recallPreventiveOnce");function O(){M.clear()}i(O,"clearPreventiveCache");function G(r,o){let n=D(o,r.map(t=>({id:t.id,type:$(t),title:`${T(t)} \u2014 ${b(t.content)}`})));if(n)return m(n,v);let e=[`# prjct: heads-up before editing \`${o}\``,""];e.push(`${r.length} preventive memory entr${r.length===1?"y":"ies"} recorded against this file:`),e.push("");for(let t of r)e.push(`- **[${$(t)}] ${T(t)}** \u2014 ${b(t.content)} \`${t.id}\``);return e.push(""),e.push("> Nudge, not block. Apply if it still holds; proceed if not."),m(e.join(`
11
11
  `),v)}i(G,"headsUpMessage");async function X(r,o,n){let e=Date.now(),t=await I.readConfig(r);if(!t?.projectId)return null;let s=P(t.projectId,o);if(g(e)||s.length===0)return null;A(t.projectId,r,s.map(u=>u.id));let a=H(t),d=w(t.projectId),p=_(s),c=o.split("/").pop()??o,l=k({mode:a,candidates:p,overriddenIds:d,fileLabel:c});if(g(e))return null;try{let u=await S.getCurrentTask(t.projectId),f=j({harnessLevel:u?.harness?.level??null,candidates:p,overriddenIds:d,fileLabel:c});if(f.action==="warn"&&f.message)return m(f.message,v)}catch{}return l.action==="warn"&&l.message?(y(r,t.projectId,"warn",l.memoryIds,l.reason),m(l.message,v)):a==="off"||l.action==="none"||s.length>0?z(t.projectId,n,o,s)?null:G(s,c):null}i(X,"buildPreEditContext");async function Y(r,o){let n=Date.now();try{let e=await I.readConfig(r);if(!e?.projectId)return null;let t=await S.getCurrentTask(e.projectId);if(e.maxTurnsPerCycle){let f=R(e,t);if(f.stopped)return{deny:f.message}}if(!o||g(n,C))return null;let s=P(e.projectId,o);if(s.length===0||g(n,C))return null;let a=w(e.projectId),d=o.split("/").pop()??o,p=_(s),c=j({harnessLevel:t?.harness?.level??null,candidates:p,overriddenIds:a,fileLabel:d});if(c.action==="deny"&&c.message)return y(r,e.projectId,"deny",c.memoryIds,c.reason),{deny:c.message};let l=H(e);if(l!=="strict")return null;let u=k({mode:l,candidates:p,overriddenIds:a,fileLabel:d});return u.action==="deny"&&u.message?(y(r,e.projectId,"deny",u.memoryIds,u.reason),{deny:u.message}):null}catch{return null}}i(Y,"decideHardStop");function pe(r=process.cwd(),o){return E({event:"PreToolUse",projectPath:r,decide:i(async(n,e)=>{O();let t=B(n);return t||Y(e,n.tool_input?.file_path?.trim())},"decide"),build:i(async(n,e)=>{try{let t=n.tool_input?.file_path?.trim();return t?X(e,t,n.session_id?.trim()||n.conversation_id?.trim()||"unknown"):null}finally{O()}},"build")},o)}i(pe,"runPreEditHook");export{pe as runPreEditHook};
@@ -5,4 +5,4 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a,b}from"./chunk-64ZEBHDX.mjs";import"./chunk-WUOVBBPC.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as evaluatePrePackageInput,b as runPrePackageHook};
8
+ import{a,b}from"./chunk-UI25YRTY.mjs";import"./chunk-WUOVBBPC.mjs";import"./chunk-XS45K7ZQ.mjs";import"./chunk-GVNMXVVA.mjs";import"./chunk-4KVPAHFV.mjs";import"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import"./chunk-E66B27AL.mjs";export{a as evaluatePrePackageInput,b as runPrePackageHook};
@@ -5,5 +5,5 @@ import { dirname as __pathDirname } from 'path';
5
5
  const require = __createRequire(import.meta.url);
6
6
  const __filename = __fileURLToPath(import.meta.url);
7
7
  const __dirname = __pathDirname(__filename);
8
- import{a as d}from"./chunk-WUOVBBPC.mjs";import{g as p,j as g}from"./chunk-3HGQPUKG.mjs";import{i as u}from"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as f}from"./chunk-ZZBNFNMG.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-IJ523YO2.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";var _=900,h=80,b=8;function m(e){let o=e.tool_input?.pattern??e.tool_input?.query??e.tool_input?.glob??"";if(!o||typeof o!="string")return null;let t=o.match(/[A-Za-z_][A-Za-z0-9_]{2,}/g);if(!t||t.length===0)return null;t.sort((n,s)=>s.length-n.length);let r=new Set(["the","and","for","from","import","export","function","class","const","type","interface","return","async","await","true","false","null","undefined","test","describe","src","core","node","modules"]);for(let n of t)if(!r.has(n.toLowerCase()))return n;return t[0]??null}l(m,"extractToken");async function k(e,o){let t=Date.now();try{let r=(o.tool_name??"").toLowerCase();if(r&&!/grep|glob|search/i.test(r))return null;let n=m(o);if(!n)return null;let s=await f.readConfig(e);if(!s?.projectId||!p(s.projectId)||Date.now()-t>h)return null;let a=g(s.projectId,n,{limit:b});if(a.length===0||Date.now()-t>h)return null;let c=["# prjct code graph (non-blocking)","",`Grep/Glob token \`${n}\` matches indexed symbols \u2014 prefer these before more tree walks:`,""];for(let i of a)c.push(`- **${i.name}** (${i.kind}${i.exported?", exported":""}) \u2014 \`${i.file}:${i.startLine}\``);return c.push(""),c.push(`> Expand: \`prjct code trace ${n}\` or MCP \`prjct_trace_path\`. This inject never blocks the tool.`),u(c.join(`
8
+ import{a as d}from"./chunk-WUOVBBPC.mjs";import{g as p,j as g}from"./chunk-3HGQPUKG.mjs";import{i as u}from"./chunk-JGZ3QGWX.mjs";import"./chunk-GAOQHD5S.mjs";import{b as f}from"./chunk-6WDRJ7J7.mjs";import"./chunk-3FEXJUO2.mjs";import"./chunk-TKXOMN4K.mjs";import"./chunk-CE4RCNC7.mjs";import"./chunk-A6K4H3YT.mjs";import"./chunk-HDSS6UB3.mjs";import"./chunk-JQE2F2RK.mjs";import"./chunk-WUHGODSQ.mjs";import"./chunk-UH4MD3F3.mjs";import"./chunk-QWQFF2UG.mjs";import"./chunk-AEDB75AK.mjs";import"./chunk-PKDYFXMI.mjs";import"./chunk-BUDZL4DW.mjs";import{a as l}from"./chunk-E66B27AL.mjs";var _=900,h=80,b=8;function m(e){let o=e.tool_input?.pattern??e.tool_input?.query??e.tool_input?.glob??"";if(!o||typeof o!="string")return null;let t=o.match(/[A-Za-z_][A-Za-z0-9_]{2,}/g);if(!t||t.length===0)return null;t.sort((n,s)=>s.length-n.length);let r=new Set(["the","and","for","from","import","export","function","class","const","type","interface","return","async","await","true","false","null","undefined","test","describe","src","core","node","modules"]);for(let n of t)if(!r.has(n.toLowerCase()))return n;return t[0]??null}l(m,"extractToken");async function k(e,o){let t=Date.now();try{let r=(o.tool_name??"").toLowerCase();if(r&&!/grep|glob|search/i.test(r))return null;let n=m(o);if(!n)return null;let s=await f.readConfig(e);if(!s?.projectId||!p(s.projectId)||Date.now()-t>h)return null;let a=g(s.projectId,n,{limit:b});if(a.length===0||Date.now()-t>h)return null;let c=["# prjct code graph (non-blocking)","",`Grep/Glob token \`${n}\` matches indexed symbols \u2014 prefer these before more tree walks:`,""];for(let i of a)c.push(`- **${i.name}** (${i.kind}${i.exported?", exported":""}) \u2014 \`${i.file}:${i.startLine}\``);return c.push(""),c.push(`> Expand: \`prjct code trace ${n}\` or MCP \`prjct_trace_path\`. This inject never blocks the tool.`),u(c.join(`
9
9
  `),_)}catch{return null}}l(k,"buildSearchAugment");async function x(e,o){await d({event:"PreToolUse",projectPath:e,build:l((t,r)=>k(r,t),"build")},o)}l(x,"runPreSearchHook");var j={extractToken:m,buildSearchAugment:k};export{j as _internal,x as runPreSearchHook};