prjct-cli 3.97.0 → 3.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/bin/core-chunks/{agent-HCP5FF77.mjs → agent-3N2MSSGT.mjs} +1 -1
  3. package/dist/bin/core-chunks/{agent-switch-AVSX6SLY.mjs → agent-switch-4SE6GF7R.mjs} +1 -1
  4. package/dist/bin/core-chunks/{agents-OAQXBGH3.mjs → agents-ZPNNCOH7.mjs} +1 -1
  5. package/dist/bin/core-chunks/{analysis-3A7ODSSI.mjs → analysis-OARMM4AH.mjs} +2 -2
  6. package/dist/bin/core-chunks/{auto-flush-EWSVMKQN.mjs → auto-flush-XA3V7BJ6.mjs} +1 -1
  7. package/dist/bin/core-chunks/{bin-commands-LLHG2NSY.mjs → bin-commands-FYID6EYI.mjs} +5 -5
  8. package/dist/bin/core-chunks/{capture-7LQ52T6L.mjs → capture-3JJPWIF3.mjs} +1 -1
  9. package/dist/bin/core-chunks/{capture-gate-M4HM7WAI.mjs → capture-gate-G5LGVDME.mjs} +1 -1
  10. package/dist/bin/core-chunks/{ceremonies-4OZ3FKRE.mjs → ceremonies-B565WDCA.mjs} +4 -4
  11. package/dist/bin/core-chunks/{changelog-CUNVCEL5.mjs → changelog-LPJ4GKB6.mjs} +1 -1
  12. package/dist/bin/core-chunks/{chunk-DN46DLU3.mjs → chunk-2FRLIQKX.mjs} +1 -1
  13. package/dist/bin/core-chunks/{chunk-X4FR5S7E.mjs → chunk-2VRS5CUH.mjs} +1 -1
  14. package/dist/bin/core-chunks/{chunk-ZK7BMUMR.mjs → chunk-2VXPFULA.mjs} +1 -1
  15. package/dist/bin/core-chunks/chunk-3OWKIRK6.mjs +7 -0
  16. package/dist/bin/core-chunks/{chunk-V5VCXMKO.mjs → chunk-5DZ2LTII.mjs} +1 -1
  17. package/dist/bin/core-chunks/{chunk-5ONMON5L.mjs → chunk-5OWPZWEU.mjs} +1 -1
  18. package/dist/bin/core-chunks/{chunk-KWC2PCPC.mjs → chunk-5TGZSK4C.mjs} +1 -1
  19. package/dist/bin/core-chunks/chunk-5ZBACKED.mjs +14 -0
  20. package/dist/bin/core-chunks/{chunk-X35YYOFE.mjs → chunk-6KNMT46X.mjs} +2 -2
  21. package/dist/bin/core-chunks/{chunk-5MN22JFI.mjs → chunk-6POAOY5C.mjs} +1 -1
  22. package/dist/bin/core-chunks/{chunk-7CI4AMVO.mjs → chunk-6U3CYLY5.mjs} +1 -1
  23. package/dist/bin/core-chunks/{chunk-J7T5IEFJ.mjs → chunk-6U3MV7KZ.mjs} +1 -1
  24. package/dist/bin/core-chunks/{chunk-2ZPM4Z6W.mjs → chunk-7BU6SJBC.mjs} +4 -4
  25. package/dist/bin/core-chunks/{chunk-ZKJZDOPT.mjs → chunk-ACIOJQSI.mjs} +1 -1
  26. package/dist/bin/core-chunks/{chunk-UE3XKXWM.mjs → chunk-ALTQ3KL4.mjs} +1 -1
  27. package/dist/bin/core-chunks/{chunk-IVGWOY3U.mjs → chunk-ANBDOI53.mjs} +1 -1
  28. package/dist/bin/core-chunks/{chunk-LZC6NGB6.mjs → chunk-B2HY22OD.mjs} +2 -2
  29. package/dist/bin/core-chunks/{chunk-6AFXUX2M.mjs → chunk-BUD3R6LF.mjs} +2 -2
  30. package/dist/bin/core-chunks/{chunk-MDONTD7O.mjs → chunk-CA2VFWFP.mjs} +1 -1
  31. package/dist/bin/core-chunks/{chunk-56FW4P6U.mjs → chunk-CB3CNJTL.mjs} +1 -1
  32. package/dist/bin/core-chunks/{chunk-6FFOWWH2.mjs → chunk-CVKMV22J.mjs} +1 -1
  33. package/dist/bin/core-chunks/{chunk-5UUITMRX.mjs → chunk-CXKDKMYE.mjs} +1 -1
  34. package/dist/bin/core-chunks/{chunk-XSZG3CBO.mjs → chunk-DTMZBK4E.mjs} +1 -1
  35. package/dist/bin/core-chunks/chunk-DW4QMD6J.mjs +10 -0
  36. package/dist/bin/core-chunks/{chunk-CDLZLTRY.mjs → chunk-DZDEBDAB.mjs} +1 -1
  37. package/dist/bin/core-chunks/{chunk-WGDE3L33.mjs → chunk-FOUBHU4X.mjs} +1 -1
  38. package/dist/bin/core-chunks/{chunk-CNWEQUB7.mjs → chunk-HA7Y76GF.mjs} +1 -1
  39. package/dist/bin/core-chunks/{chunk-MTDCRYLP.mjs → chunk-HVXWQ2XZ.mjs} +1 -1
  40. package/dist/bin/core-chunks/{chunk-OYXQRBVM.mjs → chunk-IJNKHQIS.mjs} +1 -1
  41. package/dist/bin/core-chunks/{chunk-KIRU4QFX.mjs → chunk-J6Y7IVFQ.mjs} +1 -1
  42. package/dist/bin/core-chunks/{chunk-3FXNIJCS.mjs → chunk-JGGQSMZC.mjs} +1 -1
  43. package/dist/bin/core-chunks/{chunk-6P4GMVUZ.mjs → chunk-KI4OY3UQ.mjs} +1 -1
  44. package/dist/bin/core-chunks/{chunk-BTCCUMKI.mjs → chunk-L3DJN3XD.mjs} +1 -1
  45. package/dist/bin/core-chunks/{chunk-CEOTHJIY.mjs → chunk-LFOQ7FCR.mjs} +1 -1
  46. package/dist/bin/core-chunks/{chunk-XU3BQPBU.mjs → chunk-LGX2GM45.mjs} +1 -1
  47. package/dist/bin/core-chunks/chunk-LTKUTRRL.mjs +7 -0
  48. package/dist/bin/core-chunks/{chunk-BQKDJ3U6.mjs → chunk-LZILSE5H.mjs} +1 -1
  49. package/dist/bin/core-chunks/chunk-MPU3VM6Z.mjs +7 -0
  50. package/dist/bin/core-chunks/{chunk-INM5COWM.mjs → chunk-MXJF3FA7.mjs} +1 -1
  51. package/dist/bin/core-chunks/{chunk-VDXTMAMO.mjs → chunk-NNILF7R3.mjs} +1 -1
  52. package/dist/bin/core-chunks/{chunk-WZXUFSVT.mjs → chunk-O5VCBMEK.mjs} +1 -1
  53. package/dist/bin/core-chunks/{chunk-XYDLXF5A.mjs → chunk-OE27RFLJ.mjs} +1 -1
  54. package/dist/bin/core-chunks/{chunk-HEXSVBUP.mjs → chunk-OGM34Z6W.mjs} +1 -1
  55. package/dist/bin/core-chunks/{chunk-KKIJAEYU.mjs → chunk-OXKGN3HG.mjs} +1 -1
  56. package/dist/bin/core-chunks/{chunk-QLMZW4K7.mjs → chunk-PQTR6XVW.mjs} +1 -1
  57. package/dist/bin/core-chunks/{chunk-53ZPEZLU.mjs → chunk-Q7GJIU6D.mjs} +1 -1
  58. package/dist/bin/core-chunks/{chunk-IFLBZKKK.mjs → chunk-QWRPJARA.mjs} +1 -1
  59. package/dist/bin/core-chunks/{chunk-TGNZI4KF.mjs → chunk-STFUT7R7.mjs} +2 -2
  60. package/dist/bin/core-chunks/{chunk-IMQCXC3R.mjs → chunk-SUXIKMTS.mjs} +1 -1
  61. package/dist/bin/core-chunks/{chunk-WP5IU4W4.mjs → chunk-TOORPP6K.mjs} +1 -1
  62. package/dist/bin/core-chunks/{chunk-7QMBIMEX.mjs → chunk-UAYTDSYG.mjs} +3 -3
  63. package/dist/bin/core-chunks/{chunk-PPERWRFS.mjs → chunk-UNIBFM6J.mjs} +1 -1
  64. package/dist/bin/core-chunks/{chunk-5YSPND5J.mjs → chunk-UX2ORID4.mjs} +1 -1
  65. package/dist/bin/core-chunks/{chunk-3JD6KRNJ.mjs → chunk-VJCTTFKP.mjs} +1 -1
  66. package/dist/bin/core-chunks/chunk-W23JLJJZ.mjs +109 -0
  67. package/dist/bin/core-chunks/{chunk-DCVPNFS4.mjs → chunk-WCTVZQBG.mjs} +1 -1
  68. package/dist/bin/core-chunks/{chunk-GOIBJ7PV.mjs → chunk-WZ6W5ZQ5.mjs} +1 -1
  69. package/dist/bin/core-chunks/{chunk-XPRLQIVQ.mjs → chunk-X433BB6F.mjs} +1 -1
  70. package/dist/bin/core-chunks/{chunk-ZHTYSYZC.mjs → chunk-XBR63NJA.mjs} +1 -1
  71. package/dist/bin/core-chunks/{chunk-ZS7XJUPE.mjs → chunk-XJTEPHLC.mjs} +1 -1
  72. package/dist/bin/core-chunks/{chunk-K25HGTC3.mjs → chunk-XLAGA5B7.mjs} +1 -1
  73. package/dist/bin/core-chunks/{chunk-3USVY66O.mjs → chunk-XSZOHNL4.mjs} +1 -1
  74. package/dist/bin/core-chunks/{chunk-TTN2CFZC.mjs → chunk-XWLTEAGN.mjs} +1 -1
  75. package/dist/bin/core-chunks/{chunk-V3Y3G2DE.mjs → chunk-YOWW4LHK.mjs} +1 -1
  76. package/dist/bin/core-chunks/{chunk-P53YMOKR.mjs → chunk-YPLFWN62.mjs} +1 -1
  77. package/dist/bin/core-chunks/{chunk-ZQHSJ6FF.mjs → chunk-ZAUJWUUN.mjs} +3 -3
  78. package/dist/bin/core-chunks/{chunk-WSVMQYYU.mjs → chunk-ZQ2XH76U.mjs} +2 -2
  79. package/dist/bin/core-chunks/{chunk-RXXXA7Z6.mjs → chunk-ZSANMA7K.mjs} +1 -1
  80. package/dist/bin/core-chunks/{chunk-AJTBFIH2.mjs → chunk-ZZR3LXCK.mjs} +1 -1
  81. package/dist/bin/core-chunks/{cleanup-installs-WHXUGAHM.mjs → cleanup-installs-LD43GI4K.mjs} +1 -1
  82. package/dist/bin/core-chunks/{cloud-FFUJZLDV.mjs → cloud-RXHFZ7MX.mjs} +1 -1
  83. package/dist/bin/core-chunks/{code-SU7GCPH6.mjs → code-IYK65A62.mjs} +1 -1
  84. package/dist/bin/core-chunks/{codex-hooks-GOLMCL2Q.mjs → codex-hooks-N5UHKK5B.mjs} +1 -1
  85. package/dist/bin/core-chunks/{codex-mcp-K4X2UIQF.mjs → codex-mcp-G7WNAT6T.mjs} +1 -1
  86. package/dist/bin/core-chunks/{codex-skill-3HNVU4T4.mjs → codex-skill-IZNP76BJ.mjs} +1 -1
  87. package/dist/bin/core-chunks/{command-installer-XIQK2G6W.mjs → command-installer-4ENM4GZR.mjs} +1 -1
  88. package/dist/bin/core-chunks/{config-W3RHV3GK.mjs → config-UVF7YOR6.mjs} +1 -1
  89. package/dist/bin/core-chunks/{config-manager-QVFHXIKI.mjs → config-manager-QY73WM5U.mjs} +1 -1
  90. package/dist/bin/core-chunks/{context-4KGTUAC4.mjs → context-4GB6ICXK.mjs} +1 -1
  91. package/dist/bin/core-chunks/{context-DDHC7VIC.mjs → context-MPHOQPXF.mjs} +2 -2
  92. package/dist/bin/core-chunks/{context-checkpoint-4CEUPEVG.mjs → context-checkpoint-NBI5HKPV.mjs} +1 -1
  93. package/dist/bin/core-chunks/{context-tiers-4S6H22NP.mjs → context-tiers-NOKJ75QP.mjs} +1 -1
  94. package/dist/bin/core-chunks/{context7-service-AZWDYK5Z.mjs → context7-service-2MYRUNKY.mjs} +1 -1
  95. package/dist/bin/core-chunks/{core-PR5WEQCS.mjs → core-WMEHDCOK.mjs} +1 -1
  96. package/dist/bin/core-chunks/{crew-JQCG6NS3.mjs → crew-EYVSIX4L.mjs} +1 -1
  97. package/dist/bin/core-chunks/{cwd-changed-ODKZVSPB.mjs → cwd-changed-EUJZOBIC.mjs} +1 -1
  98. package/dist/bin/core-chunks/{daemon-2NQTBFVR.mjs → daemon-QARP3RVX.mjs} +1 -1
  99. package/dist/bin/core-chunks/{developer-profile-MRPBWL2K.mjs → developer-profile-2VSFJGCU.mjs} +1 -1
  100. package/dist/bin/core-chunks/{distill-MLDZG5RA.mjs → distill-ZF7WHGCZ.mjs} +1 -1
  101. package/dist/bin/core-chunks/doctor-heal-XFSVPSEY.mjs +7 -0
  102. package/dist/bin/core-chunks/{doctor-service-WXLB2FEE.mjs → doctor-service-6ZJBWIXR.mjs} +1 -1
  103. package/dist/bin/core-chunks/{dynasty-outcomes-H2O546OL.mjs → dynasty-outcomes-KDWIEA4Y.mjs} +1 -1
  104. package/dist/bin/core-chunks/{embeddings-7A5Z5I67.mjs → embeddings-354ZYFKX.mjs} +1 -1
  105. package/dist/bin/core-chunks/{enriched-recall-YXK7EIKH.mjs → enriched-recall-MKBOXB7M.mjs} +1 -1
  106. package/dist/bin/core-chunks/{eval-4YFUBFLV.mjs → eval-O4YD6YOV.mjs} +2 -2
  107. package/dist/bin/core-chunks/{format-5V6GF6JJ.mjs → format-SYVL4CV5.mjs} +1 -1
  108. package/dist/bin/core-chunks/{gemini-settings-ZTU3VQU3.mjs → gemini-settings-RGD7JLSP.mjs} +1 -1
  109. package/dist/bin/core-chunks/{grok-mcp-F3SRFMCW.mjs → grok-mcp-IE2RRRRW.mjs} +1 -1
  110. package/dist/bin/core-chunks/{grok-plugin-4CE2WUYI.mjs → grok-plugin-SSANHBS7.mjs} +1 -1
  111. package/dist/bin/core-chunks/{grok-skill-GLSBOOKW.mjs → grok-skill-7ZP7R7KO.mjs} +1 -1
  112. package/dist/bin/core-chunks/{guard-FJBJ6IAE.mjs → guard-RT7U3LJX.mjs} +1 -1
  113. package/dist/bin/core-chunks/{guards-LFUFKVVH.mjs → guards-AXH6V2IJ.mjs} +1 -1
  114. package/dist/bin/core-chunks/{harness-FN3HASSA.mjs → harness-V7J7WIT2.mjs} +2 -2
  115. package/dist/bin/core-chunks/{health-W2VWME7Z.mjs → health-TNB5OC37.mjs} +1 -1
  116. package/dist/bin/core-chunks/{help-I37I3V2R.mjs → help-P7EYELVK.mjs} +1 -1
  117. package/dist/bin/core-chunks/{hooks-service-C2P5DRCH.mjs → hooks-service-REI56DDC.mjs} +1 -1
  118. package/dist/bin/core-chunks/{install-XP4S6HWQ.mjs → install-FZQJJWT5.mjs} +2 -2
  119. package/dist/bin/core-chunks/{judgment-GJE332LF.mjs → judgment-G5KH6QFC.mjs} +2 -2
  120. package/dist/bin/core-chunks/{judgment-receipt-WT4EMCAV.mjs → judgment-receipt-GO6QEZQC.mjs} +1 -1
  121. package/dist/bin/core-chunks/{kimi-hooks-2UEUIKXV.mjs → kimi-hooks-TR6J3OVG.mjs} +1 -1
  122. package/dist/bin/core-chunks/{kimi-mcp-DJCXZ2JY.mjs → kimi-mcp-ETG7O6O5.mjs} +1 -1
  123. package/dist/bin/core-chunks/{land-cue-5USQ64MS.mjs → land-cue-3BUD3KJJ.mjs} +1 -1
  124. package/dist/bin/core-chunks/{land-rho-ISNVEPVC.mjs → land-rho-MCTQDPRH.mjs} +1 -1
  125. package/dist/bin/core-chunks/{land-synthesis-CHARJMUP.mjs → land-synthesis-MU4EZEYL.mjs} +1 -1
  126. package/dist/bin/core-chunks/{lean-L53CKZNH.mjs → lean-26BWCUOR.mjs} +1 -1
  127. package/dist/bin/core-chunks/{legacy-crew-sweep-2TLKJTHI.mjs → legacy-crew-sweep-G5UJT2PM.mjs} +2 -2
  128. package/dist/bin/core-chunks/{llm-XMH7WTHV.mjs → llm-KMVXVBHG.mjs} +1 -1
  129. package/dist/bin/core-chunks/{mcp-FLVIZBV2.mjs → mcp-BD5TOTCK.mjs} +1 -1
  130. package/dist/bin/core-chunks/{memory-dream-EJWI4FJO.mjs → memory-dream-6GFV2GXN.mjs} +1 -1
  131. package/dist/bin/core-chunks/{memory-export-27HTNNFI.mjs → memory-export-WJ4H7CFV.mjs} +1 -1
  132. package/dist/bin/core-chunks/{memory-index-BRZDZ2BY.mjs → memory-index-7NIU34EI.mjs} +1 -1
  133. package/dist/bin/core-chunks/{notification-KJ4FQJAW.mjs → notification-G654IX3O.mjs} +1 -1
  134. package/dist/bin/core-chunks/{notify-76B7AICZ.mjs → notify-EWYUBKGO.mjs} +1 -1
  135. package/dist/bin/core-chunks/{opencode-mcp-5YSIYDI3.mjs → opencode-mcp-L7NC77JF.mjs} +1 -1
  136. package/dist/bin/core-chunks/{pack-integrity-GXN67LJB.mjs → pack-integrity-X277OVRB.mjs} +1 -1
  137. package/dist/bin/core-chunks/{pack-manager-46SPIPPD.mjs → pack-manager-VN7F6R47.mjs} +1 -1
  138. package/dist/bin/core-chunks/package-R4FUTGOE.mjs +7 -0
  139. package/dist/bin/core-chunks/{pi-skill-SDHTUK3V.mjs → pi-skill-IZQEUILZ.mjs} +1 -1
  140. package/dist/bin/core-chunks/{planning-S3MYVWH6.mjs → planning-NOWLKZDS.mjs} +2 -2
  141. package/dist/bin/core-chunks/{post-edit-5YSNEMK7.mjs → post-edit-GTBY32JU.mjs} +1 -1
  142. package/dist/bin/core-chunks/{pre-bash-GLDILCRF.mjs → pre-bash-32ZOGNSP.mjs} +1 -1
  143. package/dist/bin/core-chunks/{pre-commit-U6HPPNIC.mjs → pre-commit-7TU2A7H4.mjs} +1 -1
  144. package/dist/bin/core-chunks/{pre-edit-PEYQA6P6.mjs → pre-edit-ASEWA5TS.mjs} +1 -1
  145. package/dist/bin/core-chunks/{pre-package-76JR5GLO.mjs → pre-package-ZTZACEBB.mjs} +1 -1
  146. package/dist/bin/core-chunks/{pre-search-5EHNUOP3.mjs → pre-search-MKDRFJSE.mjs} +1 -1
  147. package/dist/bin/core-chunks/{preferences-BTSYWYUM.mjs → preferences-KO5U2ELK.mjs} +1 -1
  148. package/dist/bin/core-chunks/{primitives-IXAYLX7U.mjs → primitives-GNUMBYOK.mjs} +1 -1
  149. package/dist/bin/core-chunks/{prjct-md-SUDFWDCS.mjs → prjct-md-BSFV7OQQ.mjs} +1 -1
  150. package/dist/bin/core-chunks/{product-KKGJ6MMF.mjs → product-GUHSUNIH.mjs} +1 -1
  151. package/dist/bin/core-chunks/{project-agent-surfaces-I2CUZUIN.mjs → project-agent-surfaces-BXCJJXB7.mjs} +1 -1
  152. package/dist/bin/core-chunks/{project-memory-GYLYIJQD.mjs → project-memory-L5MDZYST.mjs} +1 -1
  153. package/dist/bin/core-chunks/{project-style-evolution-5W25UPPN.mjs → project-style-evolution-HIMSJQQB.mjs} +1 -1
  154. package/dist/bin/core-chunks/prompt-47YP5JIR.mjs +25 -0
  155. package/dist/bin/core-chunks/{purge-5EPJV25P.mjs → purge-6SJKHKIY.mjs} +1 -1
  156. package/dist/bin/core-chunks/{registry-LK6IQ5UX.mjs → registry-YM2EYUXY.mjs} +1 -1
  157. package/dist/bin/core-chunks/{retention-S22T3SPT.mjs → retention-QSXWKE4H.mjs} +1 -1
  158. package/dist/bin/core-chunks/{retro-CLKOHAN6.mjs → retro-B2EBN4TA.mjs} +1 -1
  159. package/dist/bin/core-chunks/{review-risk-LLLBKUXT.mjs → review-risk-LBPY5M3K.mjs} +1 -1
  160. package/dist/bin/core-chunks/{safe-artifacts-RW5WQUUJ.mjs → safe-artifacts-PE2TMEZQ.mjs} +1 -1
  161. package/dist/bin/core-chunks/{sdd-HE7O6N5S.mjs → sdd-3WNZJ6FU.mjs} +1 -1
  162. package/dist/bin/core-chunks/{seed-JX7W53E5.mjs → seed-MMDJE2UO.mjs} +2 -2
  163. package/dist/bin/core-chunks/{self-heal-DFUEKNF3.mjs → self-heal-R5FBXEVQ.mjs} +1 -1
  164. package/dist/bin/core-chunks/{session-continuity-BFSW4OL6.mjs → session-continuity-OQDB5UYI.mjs} +1 -1
  165. package/dist/bin/core-chunks/{session-start-HVYUKJL2.mjs → session-start-FM6UL7MT.mjs} +1 -1
  166. package/dist/bin/core-chunks/{setup-GHS24ER5.mjs → setup-BL36ZWPW.mjs} +2 -2
  167. package/dist/bin/core-chunks/{setup-J4JFYT63.mjs → setup-V75BWRHU.mjs} +2 -2
  168. package/dist/bin/core-chunks/{shipping-I4D4AVTE.mjs → shipping-NZVM57JJ.mjs} +4 -4
  169. package/dist/bin/core-chunks/{signals-digest-V44KYN6Z.mjs → signals-digest-P5BG6MZF.mjs} +1 -1
  170. package/dist/bin/core-chunks/{skill-adherence-MHY4BZL4.mjs → skill-adherence-JE3N3Y67.mjs} +1 -1
  171. package/dist/bin/core-chunks/{spec-2XXPLHUZ.mjs → spec-VC3VTUI3.mjs} +3 -3
  172. package/dist/bin/core-chunks/{spec-context-inference-THFMXC7S.mjs → spec-context-inference-KOINWBC7.mjs} +1 -1
  173. package/dist/bin/core-chunks/{spec-service-I23KJKKP.mjs → spec-service-UZ53XL6X.mjs} +1 -1
  174. package/dist/bin/core-chunks/{spec-task-breakdown-HTG6ME6G.mjs → spec-task-breakdown-3Y7YXCIQ.mjs} +1 -1
  175. package/dist/bin/core-chunks/{stop-2H57XCGZ.mjs → stop-6SH36ULT.mjs} +3 -3
  176. package/dist/bin/core-chunks/{subagent-start-5LPASXOS.mjs → subagent-start-TVGBV2V2.mjs} +1 -1
  177. package/dist/bin/core-chunks/{subagent-stop-ANLSG3KN.mjs → subagent-stop-APWY6KMX.mjs} +1 -1
  178. package/dist/bin/core-chunks/{surface-attribution-WL7S53XX.mjs → surface-attribution-CQVM2SWY.mjs} +1 -1
  179. package/dist/bin/core-chunks/{task-service-FK7FC3PE.mjs → task-service-KFYL5NT4.mjs} +1 -1
  180. package/dist/bin/core-chunks/{tdd-NQDHU62B.mjs → tdd-P2PP4RR4.mjs} +1 -1
  181. package/dist/bin/core-chunks/{team-XZ4Q6UBV.mjs → team-WKAAOEFE.mjs} +1 -1
  182. package/dist/bin/core-chunks/{template-loader-33OVJ4G5.mjs → template-loader-H4FE37HV.mjs} +1 -1
  183. package/dist/bin/core-chunks/{uninstall-6NFON7FO.mjs → uninstall-W6EAUS7N.mjs} +1 -1
  184. package/dist/bin/core-chunks/{update-4IE6SA6M.mjs → update-PSHEJJI5.mjs} +2 -2
  185. package/dist/bin/core-chunks/{update-checker-FK7MWNWN.mjs → update-checker-LZCUPWQB.mjs} +1 -1
  186. package/dist/bin/core-chunks/{version-252QLBN2.mjs → version-B5DBRVGQ.mjs} +1 -1
  187. package/dist/bin/core-chunks/{watch-service-7ZERG7RC.mjs → watch-service-7V3O52TW.mjs} +1 -1
  188. package/dist/bin/core-chunks/weak-frontier-demo-ZCDTMYRO.mjs +7 -0
  189. package/dist/bin/core-chunks/{weak-model-mode-DH66XMD2.mjs → weak-model-mode-LOAPFJPQ.mjs} +1 -1
  190. package/dist/bin/core-chunks/{work-graph-JGJWE3AV.mjs → work-graph-ZNV7S6EU.mjs} +1 -1
  191. package/dist/bin/core-chunks/{work-scope-3LXOEIUX.mjs → work-scope-XXPUH6TU.mjs} +1 -1
  192. package/dist/bin/core-chunks/{workflow-FGJVLRQ3.mjs → workflow-XM77QYRF.mjs} +2 -2
  193. package/dist/bin/core-chunks/{workflows-reference-UWKRZ6BJ.mjs → workflows-reference-T7RH7IGJ.mjs} +1 -1
  194. package/dist/bin/core-chunks/{world-model-impact-RH5WH2B3.mjs → world-model-impact-FAGGNUGN.mjs} +1 -1
  195. package/dist/bin/hook-chunks/{agent-switch-7GOGG4KG.mjs → agent-switch-TAJWH2ZD.mjs} +1 -1
  196. package/dist/bin/hook-chunks/{analysis-UI2JRLJO.mjs → analysis-34WDLUXK.mjs} +2 -2
  197. package/dist/bin/hook-chunks/{auto-flush-JKIXTI2I.mjs → auto-flush-7TIEBPPQ.mjs} +1 -1
  198. package/dist/bin/hook-chunks/{capture-gate-DIPHPNIC.mjs → capture-gate-JFVGG7RB.mjs} +1 -1
  199. package/dist/bin/hook-chunks/{chunk-XXVHUYL7.mjs → chunk-22CBVTZ3.mjs} +1 -1
  200. package/dist/bin/hook-chunks/{chunk-ZH2MF7H7.mjs → chunk-3JOZN7YJ.mjs} +1 -1
  201. package/dist/bin/hook-chunks/{chunk-Y7RDBMNC.mjs → chunk-4X3KUIXK.mjs} +1 -1
  202. package/dist/bin/hook-chunks/{chunk-6RS7PNAN.mjs → chunk-5ALQBNIZ.mjs} +1 -1
  203. package/dist/bin/hook-chunks/{chunk-IL36ER4U.mjs → chunk-5VPZI2ZF.mjs} +1 -1
  204. package/dist/bin/hook-chunks/{chunk-FBEDUKMG.mjs → chunk-6EHYPQ5U.mjs} +1 -1
  205. package/dist/bin/hook-chunks/chunk-7H5UVM6X.mjs +9 -0
  206. package/dist/bin/hook-chunks/{chunk-IDPBMN3Q.mjs → chunk-A3R47SP6.mjs} +1 -1
  207. package/dist/bin/hook-chunks/{chunk-UI25YRTY.mjs → chunk-CGAKJDKT.mjs} +1 -1
  208. package/dist/bin/hook-chunks/{chunk-6LU777GI.mjs → chunk-CJY4Y5SO.mjs} +1 -1
  209. package/dist/bin/hook-chunks/{chunk-WIA6ORIY.mjs → chunk-FSFURDAE.mjs} +1 -1
  210. package/dist/bin/hook-chunks/{chunk-6WDRJ7J7.mjs → chunk-FTBBQHI4.mjs} +1 -1
  211. package/dist/bin/hook-chunks/{chunk-25OGCQTR.mjs → chunk-G4VJKPG7.mjs} +3 -3
  212. package/dist/bin/hook-chunks/{chunk-PFORBQBF.mjs → chunk-GAJOSSB4.mjs} +2 -2
  213. package/dist/bin/hook-chunks/{chunk-KOLXYWOA.mjs → chunk-H3GIYI4Q.mjs} +2 -2
  214. package/dist/bin/hook-chunks/{chunk-B7MHIUFA.mjs → chunk-HRU2KNEB.mjs} +1 -1
  215. package/dist/bin/hook-chunks/{chunk-JF6DFOQK.mjs → chunk-LCGWETJ6.mjs} +1 -1
  216. package/dist/bin/hook-chunks/{chunk-PQJ64L6U.mjs → chunk-MG2DNP4Z.mjs} +1 -1
  217. package/dist/bin/hook-chunks/chunk-NGB6JNSB.mjs +18 -0
  218. package/dist/bin/hook-chunks/{chunk-AEDB75AK.mjs → chunk-OALZUWC6.mjs} +1 -1
  219. package/dist/bin/hook-chunks/{chunk-IFIENAZU.mjs → chunk-PZMBZ6GE.mjs} +1 -1
  220. package/dist/bin/hook-chunks/{chunk-F3PNT2DQ.mjs → chunk-QIB6Y6AH.mjs} +2 -2
  221. package/dist/bin/hook-chunks/{chunk-ZXON2U5F.mjs → chunk-QMNZPNVY.mjs} +1 -1
  222. package/dist/bin/hook-chunks/{chunk-B2ZA5ZAO.mjs → chunk-R4YDE3GU.mjs} +1 -1
  223. package/dist/bin/hook-chunks/{chunk-UBWUQ64A.mjs → chunk-RFKRKUHB.mjs} +1 -1
  224. package/dist/bin/hook-chunks/{chunk-NMB6YSAH.mjs → chunk-RGOTJCZU.mjs} +1 -1
  225. package/dist/bin/hook-chunks/{chunk-ANSRNEEI.mjs → chunk-T2KVL6PZ.mjs} +1 -1
  226. package/dist/bin/hook-chunks/{chunk-HNZ24HIK.mjs → chunk-T7DRHVK3.mjs} +2 -2
  227. package/dist/bin/hook-chunks/{chunk-IHEOOJJT.mjs → chunk-TWFLW6OJ.mjs} +1 -1
  228. package/dist/bin/hook-chunks/{chunk-ONGVBXBD.mjs → chunk-UJIOGFNP.mjs} +1 -1
  229. package/dist/bin/hook-chunks/{chunk-NSTXHVTH.mjs → chunk-UK24P7PV.mjs} +2 -2
  230. package/dist/bin/hook-chunks/{chunk-63P5VOR6.mjs → chunk-ULNGKZB6.mjs} +4 -4
  231. package/dist/bin/hook-chunks/{chunk-UMJ5D5I6.mjs → chunk-UWHVPO6X.mjs} +2 -2
  232. package/dist/bin/hook-chunks/{chunk-A6LRNS6R.mjs → chunk-XC2BSGWF.mjs} +1 -1
  233. package/dist/bin/hook-chunks/{chunk-7PA4KPSR.mjs → chunk-ZPAY2NSF.mjs} +2 -2
  234. package/dist/bin/hook-chunks/{codex-skill-UZZCACMB.mjs → codex-skill-BFRU5FTP.mjs} +1 -1
  235. package/dist/bin/hook-chunks/{command-installer-FJ73C2ZW.mjs → command-installer-3XOZGKOQ.mjs} +1 -1
  236. package/dist/bin/hook-chunks/{config-manager-XDKOTIJM.mjs → config-manager-UPB7NEXF.mjs} +1 -1
  237. package/dist/bin/hook-chunks/{context7-service-NH4BMGSJ.mjs → context7-service-7VFXEQVN.mjs} +1 -1
  238. package/dist/bin/hook-chunks/{cwd-changed-STP3LH6Y.mjs → cwd-changed-USNJYUH7.mjs} +1 -1
  239. package/dist/bin/hook-chunks/{distill-63BHUJAC.mjs → distill-47YVL7IH.mjs} +1 -1
  240. package/dist/bin/hook-chunks/{enriched-recall-6F6LBYAB.mjs → enriched-recall-CVYI52NO.mjs} +1 -1
  241. package/dist/bin/hook-chunks/{format-VJ2YQ4XQ.mjs → format-DPIN45EG.mjs} +1 -1
  242. package/dist/bin/hook-chunks/{judgment-receipt-LSJCAYBT.mjs → judgment-receipt-G2DKQR7U.mjs} +1 -1
  243. package/dist/bin/hook-chunks/{land-cue-DEO2AZW4.mjs → land-cue-3JD2TXFP.mjs} +1 -1
  244. package/dist/bin/hook-chunks/{land-synthesis-GTMFIGDM.mjs → land-synthesis-5C4KGCTB.mjs} +1 -1
  245. package/dist/bin/hook-chunks/{legacy-crew-sweep-QPKU7ITU.mjs → legacy-crew-sweep-XQNXNZES.mjs} +2 -2
  246. package/dist/bin/hook-chunks/{memory-index-KCMXQGKX.mjs → memory-index-LL6SQJ2N.mjs} +1 -1
  247. package/dist/bin/hook-chunks/{notification-DX6ZHOUC.mjs → notification-ACQBRJG3.mjs} +1 -1
  248. package/dist/bin/hook-chunks/{pack-integrity-UMLIB5RQ.mjs → pack-integrity-DCXVRRJZ.mjs} +1 -1
  249. package/dist/bin/hook-chunks/{pack-manager-YXRK2TJ4.mjs → pack-manager-KYWKNYUY.mjs} +1 -1
  250. package/dist/bin/hook-chunks/{planning-JR7O5MYW.mjs → planning-KOU3XKWS.mjs} +2 -2
  251. package/dist/bin/hook-chunks/{post-edit-IPTVSRVG.mjs → post-edit-CK2MYQEN.mjs} +1 -1
  252. package/dist/bin/hook-chunks/{pre-bash-5WWTH36N.mjs → pre-bash-W5A5CTR3.mjs} +1 -1
  253. package/dist/bin/hook-chunks/{pre-commit-KZ5TNTPW.mjs → pre-commit-5Q24RM4S.mjs} +1 -1
  254. package/dist/bin/hook-chunks/{pre-edit-XHPYBXRU.mjs → pre-edit-YIJ4BCYL.mjs} +1 -1
  255. package/dist/bin/hook-chunks/{pre-package-U3HDW3SX.mjs → pre-package-O4RMVA4T.mjs} +1 -1
  256. package/dist/bin/hook-chunks/{pre-search-R5CRK66E.mjs → pre-search-WYOWC3D6.mjs} +1 -1
  257. package/dist/bin/hook-chunks/{prjct-md-IBQTJBK7.mjs → prjct-md-2UVHFYTJ.mjs} +1 -1
  258. package/dist/bin/hook-chunks/{project-agent-surfaces-TPZO73ZV.mjs → project-agent-surfaces-BKFYUMRV.mjs} +1 -1
  259. package/dist/bin/hook-chunks/{project-memory-YQLZX5RG.mjs → project-memory-OC5GTJPY.mjs} +1 -1
  260. package/dist/bin/hook-chunks/{project-style-evolution-NOFCIIZZ.mjs → project-style-evolution-2IFJCACQ.mjs} +1 -1
  261. package/dist/bin/hook-chunks/prompt-JIWMP563.mjs +26 -0
  262. package/dist/bin/hook-chunks/{purge-5W3K2MZL.mjs → purge-FQK3Z4QS.mjs} +1 -1
  263. package/dist/bin/hook-chunks/{retention-GWJ4AX7I.mjs → retention-2FETBJFG.mjs} +1 -1
  264. package/dist/bin/hook-chunks/{sdd-GWBRD4KI.mjs → sdd-V43TSJ2P.mjs} +1 -1
  265. package/dist/bin/hook-chunks/{session-continuity-VH645RGR.mjs → session-continuity-RO2ACICF.mjs} +1 -1
  266. package/dist/bin/hook-chunks/{session-start-4TYTI27B.mjs → session-start-FKKFMKQ5.mjs} +1 -1
  267. package/dist/bin/hook-chunks/{setup-VF4UHUBX.mjs → setup-YV2DKG5L.mjs} +2 -2
  268. package/dist/bin/hook-chunks/{shipping-2ULWBGRX.mjs → shipping-SCNFEXBY.mjs} +4 -4
  269. package/dist/bin/hook-chunks/{spec-context-inference-HVENYOIO.mjs → spec-context-inference-BD3ANTXA.mjs} +1 -1
  270. package/dist/bin/hook-chunks/{spec-service-4XGQQPGP.mjs → spec-service-OWYOAGXS.mjs} +2 -2
  271. package/dist/bin/hook-chunks/{spec-task-breakdown-JXF556UH.mjs → spec-task-breakdown-HOTLUFDM.mjs} +1 -1
  272. package/dist/bin/hook-chunks/{stop-NJDYIIXR.mjs → stop-MIXT7WXA.mjs} +3 -3
  273. package/dist/bin/hook-chunks/{subagent-start-2YMGD4SY.mjs → subagent-start-NO3TN65K.mjs} +1 -1
  274. package/dist/bin/hook-chunks/{subagent-stop-4TZJ2NSJ.mjs → subagent-stop-CKWIXX7W.mjs} +1 -1
  275. package/dist/bin/hook-chunks/{surface-attribution-UNK4J5W2.mjs → surface-attribution-BYESPLXM.mjs} +1 -1
  276. package/dist/bin/hook-chunks/{task-service-SPUES5DO.mjs → task-service-5ONSBKKP.mjs} +1 -1
  277. package/dist/bin/hook-chunks/{tdd-MYF7I5FS.mjs → tdd-SESB4IG3.mjs} +1 -1
  278. package/dist/bin/hook-chunks/{template-loader-4SYVR2UB.mjs → template-loader-KO67FVHO.mjs} +1 -1
  279. package/dist/bin/hook-chunks/{weak-model-mode-TYJJT6JJ.mjs → weak-model-mode-HPXBKXJT.mjs} +1 -1
  280. package/dist/bin/hook-chunks/{work-scope-A6XPENFE.mjs → work-scope-RNPGACPA.mjs} +1 -1
  281. package/dist/bin/prjct-core.mjs +3 -3
  282. package/dist/bin/prjct-hooks.mjs +1 -1
  283. package/dist/daemon/entry.mjs +591 -583
  284. package/dist/mcp/server.mjs +318 -312
  285. package/package.json +2 -1
  286. package/dist/bin/core-chunks/chunk-GDLAQV3Q.mjs +0 -14
  287. package/dist/bin/core-chunks/chunk-R7LLMJDP.mjs +0 -7
  288. package/dist/bin/core-chunks/chunk-UT425KVX.mjs +0 -10
  289. package/dist/bin/core-chunks/chunk-VILH3VYH.mjs +0 -103
  290. package/dist/bin/core-chunks/chunk-Y5SEUYET.mjs +0 -7
  291. package/dist/bin/core-chunks/doctor-heal-ZUZ2RHGY.mjs +0 -7
  292. package/dist/bin/core-chunks/package-DCGCOAGQ.mjs +0 -7
  293. package/dist/bin/core-chunks/prompt-SW5XDRMX.mjs +0 -23
  294. package/dist/bin/core-chunks/weak-frontier-demo-5C4FR3OA.mjs +0 -7
  295. package/dist/bin/hook-chunks/chunk-IWUF2LGO.mjs +0 -18
  296. package/dist/bin/hook-chunks/chunk-ZYCNW75E.mjs +0 -9
  297. package/dist/bin/hook-chunks/prompt-DJWONMTZ.mjs +0 -24
@@ -4,12 +4,12 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as se}from"./chunk-4PRD4EU2.mjs";import{a as re}from"./chunk-CXNVDJNN.mjs";import{a as ne,b as S,d as G}from"./chunk-ROOCBUKH.mjs";import{b as L}from"./chunk-2JJM3YMW.mjs";import{b as ee}from"./chunk-BSR3XUBD.mjs";import{a as te}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import{c as B}from"./chunk-CFD6CW7T.mjs";import"./chunk-ESB4ALH2.mjs";import{b as Q}from"./chunk-O5N6XYPU.mjs";import"./chunk-SO3ZPNWT.mjs";import{c as P}from"./chunk-F2FKQUYE.mjs";import{m as Z}from"./chunk-WSVMQYYU.mjs";import{b as h}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import{g as qe,h as Ve}from"./chunk-EZRNQXCC.mjs";import{b as U}from"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{b as v}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{d as M}from"./chunk-WTDUJB4I.mjs";import{a as q,b as Ke,g as C,h as Ye,i as V}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{F as Y,G as ze}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{e as A,g as x,l as _,p as z}from"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import{b as j,c as We}from"./chunk-DOJPSIMG.mjs";import{l as K,p as Xe}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a,b as W,e as X}from"./chunk-3TRXQAU4.mjs";import b from"node:fs/promises";import Be from"node:path";import Ze from"node:crypto";import Qe from"node:fs/promises";function D(n){return typeof n=="string"?n:Array.isArray(n)?n.map(e=>{if(typeof e=="string")return e;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return typeof t=="string"?t:""}return""}).join(`
7
+ import{a as se}from"./chunk-4PRD4EU2.mjs";import{a as re}from"./chunk-CXNVDJNN.mjs";import{a as ne,b as S,d as G}from"./chunk-ROOCBUKH.mjs";import{b as L}from"./chunk-2JJM3YMW.mjs";import{b as ee}from"./chunk-BSR3XUBD.mjs";import{a as te}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import{c as B}from"./chunk-CFD6CW7T.mjs";import"./chunk-ESB4ALH2.mjs";import{b as Q}from"./chunk-O5N6XYPU.mjs";import"./chunk-SO3ZPNWT.mjs";import{c as P}from"./chunk-F2FKQUYE.mjs";import{m as Z}from"./chunk-ZQ2XH76U.mjs";import{b as h}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import{g as qe,h as Ve}from"./chunk-EZRNQXCC.mjs";import{b as U}from"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{b as v}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import{d as M}from"./chunk-WTDUJB4I.mjs";import{a as q,b as Ke,g as C,h as Ye,i as V}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{F as Y,G as ze}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{e as A,g as x,l as _,p as z}from"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import{b as j,c as We}from"./chunk-DOJPSIMG.mjs";import{l as K,p as Xe}from"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a,b as W,e as X}from"./chunk-3TRXQAU4.mjs";import b from"node:fs/promises";import Be from"node:path";import Ze from"node:crypto";import Qe from"node:fs/promises";function D(n){return typeof n=="string"?n:Array.isArray(n)?n.map(e=>{if(typeof e=="string")return e;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return typeof t=="string"?t:""}return""}).join(`
8
8
  `).trim():""}a(D,"textOf");function I(n){try{let e=W("node:fs"),s=W("node:path").join(n,".prjct","prjct.config.json"),r=e.readFileSync(s,"utf-8");return JSON.parse(r).projectId??null}catch{return null}}a(I,"projectIdFromPath");var ce="friction-detector",ie="friction-promote",oe=5,ae=400,ue=160,et=[/^\s*no[,.!\s]/i,/^\s*nope\b/i,/^\s*stop\b/i,/^\s*wait\b/i,/^\s*cancel\b/i],tt=[/\bshould be\b/i,/\brather than\b/i,/\binstead\b/i],nt=[/\bdoesn'?t work\b/i,/\bbroken\b/i,/\bagain\b.*\bsame\b/i];async function le(n,e,t,s={}){let r=s.preloadedLines?s.preloadedLines:await Qe.readFile(e,"utf-8").then(rt).catch(()=>null);if(!r)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let i=st(r);if(i.length===0)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let o=i.slice(0,oe).map(f=>({category:f.category,expectedBehavior:"Follow the user constraint without requiring correction.",observedBehavior:`The assistant response triggered user ${f.category}.`,relatedRuleId:null})),c=ut(n),l=I(n)??void 0;return{...await i.slice(0,oe).reduce(async(f,d)=>{let p=await f,y=de(d.excerpt).slice(0,12);if(c.has(y))return await at(n,l,d).catch(()=>{}),{...p,signalsSkipped:p.signalsSkipped+1};try{return await h.remember(n,{type:"improvement-signal",content:ot(d),tags:{source:ce,category:d.category,...s.runtime?{runtime:s.runtime}:{},...s.model?{model:s.model}:{},...t?{session:t}:{},key:y},provenance:"extracted",projectId:l}),c.add(y),{...p,signalsRecorded:p.signalsRecorded+1}}catch{return{...p,signalsSkipped:p.signalsSkipped+1}}},Promise.resolve({signalsRecorded:0,signalsSkipped:0})),failures:o}}a(le,"detectFriction");function rt(n){return S(n)}a(rt,"parseJsonl");function st(n){let e={signals:[],lastAssistantText:""};for(let t of n){let s=t.role??t.message?.role,r=D(t.content??t.message?.content);if(!r)continue;if(s==="assistant"){e.lastAssistantText=r;continue}if(s!=="user")continue;let i=it(r.slice(0,300));i&&e.signals.push({excerpt:r.slice(0,ae).trim(),category:i,precedingAssistantPreview:e.lastAssistantText.slice(0,ae).trim()})}return e.signals}a(st,"extractSignals");function it(n){return nt.some(e=>e.test(n))?"complaint":et.some(e=>e.test(n))?"negation":tt.some(e=>e.test(n))?"correction":null}a(it,"classify");function ot(n){let e=ct(n.category),t=pe(n.excerpt),s=t?`Obey developer constraint: ${t}`:e.lesson,r=t?`Always: ${t}`:e.nextAction;return[`[${n.category}] Lesson: ${s}`,"What happened: The user pushed back after the assistant response.",`Why it mattered: ${e.why}`,`Pattern: ${e.pattern}`,`Anti-pattern: ${e.antiPattern}`,`Next action: ${r}`].join(`
9
9
  `)}a(ot,"formatSignal");function pe(n){let e=n.replace(/\s+/g," ").trim();if(!e)return null;let t=e.replace(/^\s*(?:nope|no|stop|wait|cancel)[,.!\s:—-]*/i,"").trim(),s=t.match(/\bshould be\b\s+(.+?)$/i);if(s?.[1])return T(`Prefer ${s[1]}`);let r=t.match(/^(.+?)\s+rather than\s+(.+?)$/i);if(r?.[1]&&r[2])return T(`Prefer ${r[1].trim()} rather than ${r[2].trim()}`);let i=t.match(/\b(?:use|prefer|do|run|ship|write|keep)\s+(.+?)\s+instead(?:\s+of\s+(.+))?$/i);if(i?.[1]){let u=i[2]?` instead of ${i[2].trim()}`:" instead";return T(`Use ${i[1].trim()}${u}`)}let o=t.match(/\binstead of\b\s+(.+?)$/i);if(o?.[1])return T(`Avoid ${o[1].trim()}`);let c=t.match(/\b(?:don'?t|do not|never)\s+(.+?)$/i);if(c?.[1])return T(`Never ${c[1].trim()}`);let l=t.match(/\balways\s+(.+?)$/i);if(l?.[1])return T(`Always ${l[1].trim()}`);if(t.length>=12&&t.length<=ue&&/^(?:run|use|do|ship|write|keep|add|fix|remove|prefer|test|check|verify|read|ask|stop|start)\b/i.test(t)){let u=t.charAt(0).toUpperCase()+t.slice(1);return T(u.replace(/[.!?]+$/,""))}return null}a(pe,"extractSpecificConstraint");function T(n){let e=n.replace(/\s+/g," ").trim().replace(/^[-*•]\s+/,"").replace(/[.!?]+$/,"").slice(0,ue);return e.length<12||/^(?:nope|no|stop|wait|cancel)\b/i.test(e)?null:e}a(T,"cleanConstraint");async function at(n,e,t){if(!e)return;let s=pe(t.excerpt);if(!s)return;let r=`Always: ${s}`,i=`fp:${de(s).slice(0,12)}`;try{if(h.recall(e,{types:["feedback"],tags:{source:ie,key:i},limit:1,dedupeByKey:!1}).length>0)return;await h.remember(n,{type:"feedback",content:r,tags:{source:ie,key:i,category:t.category,from:"recurring-friction"},provenance:"extracted",projectId:e})}catch{}}a(at,"maybePromoteStandingPreference");function ct(n){return n==="complaint"?{lesson:"Treat explicit failure complaints as evidence that the last result needs diagnosis, not repetition.",why:"The user reported that the delivered behavior or command did not work.",pattern:"User names a broken or non-working result after an assistant action.",antiPattern:"Retrying the same path or moving on without isolating the failure.",nextAction:"Stop, inspect the failing output or assumption, and propose the smallest verifiable fix."}:n==="correction"?{lesson:"Update the working assumption when the user corrects the intended direction.",why:"The assistant was using an assumption that did not match what the user wanted.",pattern:"User redirects the implementation or workflow with a correction.",antiPattern:"Continuing with the original plan after the user clarified a different target.",nextAction:"Restate the corrected target as an actionable rule before continuing."}:{lesson:"Recalibrate before continuing when the user rejects the assistant\u2019s last step.",why:"The assistant likely violated sequencing, scope, or approval expectations.",pattern:"User immediately rejects an assistant action or proposed next step.",antiPattern:"Treating the rejected action as acceptable and continuing without changing course.",nextAction:"Pause, convert the pushback into a workflow constraint, and adjust the next tool use."}}a(ct,"lessonTemplate");function de(n){let e=n.toLowerCase().replace(/\s+/g," ").trim();return Ze.createHash("sha256").update(e).digest("hex")}a(de,"hashSignal");function ut(n){try{let e=I(n);if(!e)return new Set;let t=h.recall(e,{types:["improvement-signal"],tags:{source:ce},limit:100,dedupeByKey:!1}),s=new Set;for(let r of t){let i=r.tags.key;i&&s.add(i)}return s}catch{return new Set}}a(ut,"projectMemoryHashes");z();function fe(n){try{return JSON.parse(n)}catch{return null}}a(fe,"safeJsonParse");function w(n,e,t,s){let r=[];try{let{prjctDb:i}=(V(),X(Ye)),o=i.query(n,e,...t);for(let c of o){let l=fe(c.data);if(!l||typeof l!="object")continue;let u=l.tags;if(!u)continue;let f=s(u,l);f!==void 0&&r.push(f)}}catch{}return r}a(w,"collectFromPersistedEvents");var ge="lean-detector",lt="lean-debt-growth",pt=3,me=["off","lite","full","ultra"];function dt(n){let e=n?.lean?.mode;if(e&&me.includes(e))return e;let t=process.env.PRJCT_LEAN_MODE?.toLowerCase();return t&&me.includes(t)?t:"off"}a(dt,"effectiveMode");async function he(n,e){let t={active:!1,total:0,previous:0,persisted:!1},s=e!==void 0?e:await v.readConfig(n).catch(()=>null);if(!s?.projectId||dt(s)==="off")return t;t.active=!0;try{let r=await ft(n);if(t.total=r,r===0)return t;let i=mt(s.projectId);t.previous=i;let o=r-i;i>0&&o>=pt&&(await h.remember(n,{type:"lean-debt",content:`Lean debt growing: \`lean:\` markers rose by ${o} (now ${r}, was ${i}). Deferred simplifications are accumulating \u2014 consider a leaning pass via \`prjct lean debt\`.`,tags:{source:ge,pattern:lt,total:String(r),previous:String(i),delta:String(o)},provenance:"inferred",projectId:s.projectId}),t.persisted=!0)}catch{}return t}a(he,"detectAndPersistLeanDebt");async function ft(n){let e=await A(["grep","-cI","-e","lean:"],{cwd:n,maxBuffer:16777216});if(!e.ok){if(x(e,1))return 0;_(e)}return e.stdout.split(`
10
10
  `).reduce((t,s)=>{let r=s.lastIndexOf(":");if(r<=0)return t;let i=Number.parseInt(s.slice(r+1),10);return Number.isFinite(i)?t+i:t},0)}a(ft,"measureLeanMarkers");function mt(n){return w(n,"SELECT data FROM events WHERE type = 'memory.remember.lean-debt' ORDER BY id DESC LIMIT 50",[],t=>{if(t.source!==ge)return;let s=typeof t.total=="string"?Number.parseInt(t.total,10):0;return Number.isFinite(s)?s:void 0})[0]??0}a(mt,"collectPreviousSnapshot");import gt from"node:path";z();var ht="hot-file",ye="pattern-detector-auto",yt="recurring-bug",we="pattern-detector-recurring",wt="tech-debt-growth",be="pattern-detector-debt",O=7,bt=3,$=30,vt=2,St=5,kt=[/^package(-lock)?\.json$/,/^bun\.lock(b)?$/,/^pnpm-lock\.yaml$/,/^yarn\.lock$/,/^CHANGELOG\.md$/,/^\.gitignore$/,/\.snap$/,/^dist\//,/^node_modules\//];async function ve(n,e){let t={scanned:0,hotFiles:[],persisted:0,skipped:[],errors:[]},s=e!==void 0?e:await v.readConfig(n).catch(()=>null);if(!s?.projectId)return t.errors.push("no project config"),t;try{let r=await Tt(n);if(t.scanned+=r.length,t.hotFiles=r,r.length>0){let i=It(s.projectId);for(let o of r){if(i.has(o.path)){t.skipped.push({reason:"already-marked-this-window",file:o.path});continue}try{await h.remember(n,{type:"learning",content:`Hot file: \`${o.path}\` \u2014 ${o.touches} touches in the last ${O} days. Worth a refactor pass or a deliberate decision about why it churns this often.`,tags:{source:ye,pattern:ht,file:o.path,touches:String(o.touches),window_days:String(O)},provenance:"inferred"}),t.persisted+=1}catch(c){t.errors.push(`remember failed for ${o.path}: ${c.message}`)}}}}catch(r){t.errors.push(`hot-file detection failed: ${r.message}`)}try{let r=Et(s.projectId);if(r.length>0){let i=xt(s.projectId);for(let o of r){if(i.has(o.topic)){t.skipped.push({reason:"recurring-bug-already-marked",file:o.topic});continue}try{await h.remember(n,{type:"learning",content:`Recurring bug pattern: gotchas tagged \`topic:${o.topic}\` reported ${o.occurrences} times in the last ${$} days. Likely a real underlying issue \u2014 consider a focused investigation before patching the next instance.`,tags:{source:we,pattern:yt,topic:o.topic,occurrences:String(o.occurrences),window_days:String($)},provenance:"inferred"}),t.persisted+=1}catch(c){t.errors.push(`remember failed for recurring ${o.topic}: ${c.message}`)}}}}catch(r){t.errors.push(`recurring-bug detection failed: ${r.message}`)}try{let r=await At(n);if(r.totalCount>0){let i=_t(s.projectId),o=r.totalCount-i;if(i>0&&o>=St)try{await h.remember(n,{type:"learning",content:`Tech debt growing: TODO/FIXME/XXX count rose by ${o} (now ${r.totalCount}, was ${i}). Consider a focused debt-reduction pass before adding more features.`,tags:{source:be,pattern:wt,total:String(r.totalCount),previous:String(i),delta:String(o)},provenance:"inferred"}),t.persisted+=1}catch(c){t.errors.push(`remember failed for tech-debt: ${c.message}`)}}}catch(r){t.errors.push(`tech-debt detection failed: ${r.message}`)}return t}a(ve,"detectAndPersistPatterns");async function Tt(n){let e=await A(["log",`--since=${O}.days.ago`,"--name-only","--pretty=format:","-z"],{cwd:n,maxBuffer:16777216,timeoutMs:15e3});if(!e.ok){if(e.kind==="exit")return[];_(e)}let t=new Map;for(let r of e.stdout.split("\0")){let i=r.trim();i&&(Rt(i)||t.set(i,(t.get(i)??0)+1))}let s=[];for(let[r,i]of t)i<bt||s.push({path:r,touches:i});return s.sort((r,i)=>i.touches-r.touches),s}a(Tt,"detectHotFiles");function Rt(n){let e=gt.basename(n);for(let t of kt)if(t.test(n)||t.test(e))return!0;return!1}a(Rt,"isIgnored");function Et(n){let e=new Date(Date.now()-$*24*60*60*1e3).toISOString(),t=w(n,"SELECT data, timestamp FROM events WHERE type = 'memory.remember.gotcha' AND timestamp >= ? ORDER BY id DESC LIMIT 500",[e],i=>{if(i.source==="transcript-auto")return;let o=typeof i.topic=="string"?i.topic:void 0,c=typeof i.area=="string"?i.area:void 0;return(o??c)||void 0}),s=new Map;for(let i of t)s.set(i,(s.get(i)??0)+1);let r=[];for(let[i,o]of s)o<vt||r.push({topic:i,occurrences:o});return r.sort((i,o)=>o.occurrences-i.occurrences),r}a(Et,"detectRecurringBugs");async function At(n){let e=await A(["grep","-cE","\\b(TODO|FIXME|XXX)\\b"],{cwd:n,maxBuffer:16777216});if(!e.ok){if(x(e,1))return{totalCount:0};_(e)}return{totalCount:e.stdout.split(`
11
- `).reduce((s,r)=>{let i=r.lastIndexOf(":");if(i<=0)return s;let o=Number.parseInt(r.slice(i+1),10);return Number.isFinite(o)?s+o:s},0)}}a(At,"measureTechDebt");function _t(n){return w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 50",[],t=>{if(t.source!==be)return;let s=typeof t.total=="string"?Number.parseInt(t.total,10):0;return Number.isFinite(s)?s:void 0})[0]??0}a(_t,"collectPreviousDebtSnapshot");function It(n){let e=Date.now()-O*24*60*60*1e3,t=w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 200",[],(s,r)=>{if(s.source!==ye)return;let i=s.file,o=r.rememberedAt;if(typeof i=="string"){if(typeof o=="string"){let c=Date.parse(o);if(!Number.isNaN(c)&&c<e)return}return i}});return new Set(t)}a(It,"collectAlreadyMarkedHotFiles");function xt(n){let e=Date.now()-$*24*60*60*1e3,t=w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 200",[],(s,r)=>{if(s.source!==we)return;let i=s.topic,o=r.rememberedAt;if(typeof i=="string"){if(typeof o=="string"){let c=Date.parse(o);if(!Number.isNaN(c)&&c<e)return}return i}});return new Set(t)}a(xt,"collectAlreadyMarkedRecurringBugs");import k from"node:fs/promises";import J from"node:path";ze();Ke();V();var Ct={conservative:{inboxDays:30,archivesDays:180,checkpointsDays:null},standard:{inboxDays:14,archivesDays:90,checkpointsDays:30},aggressive:{inboxDays:7,archivesDays:30,checkpointsDays:14}};function Mt(n=process.env){let e=(n.PRJCT_CLEANUP_AGGRESSIVENESS??"standard").toLowerCase();return Ct[e==="conservative"||e==="standard"||e==="aggressive"?e:"standard"]}a(Mt,"resolveProfile");async function Pt(n,e){let t=Date.now()-e*24*60*60*1e3,r=h.recall(n,{types:["inbox"],limit:200}).filter(o=>Date.parse(o.rememberedAt)<t);if(r.length===0)return 0;let i=[];for(let o of r)try{U.archive(n,{entityType:"memory_entry",entityId:o.id,entityData:{type:o.type,content:o.content,tags:o.tags,rememberedAt:o.rememberedAt},summary:o.content.slice(0,80),reason:`inbox-age-out (>${e}d)`});let c=o.id.startsWith("mem_")?o.id.slice(4):null;c&&C.run(n,"UPDATE events SET type = ? WHERE id = ?","memory.archived.inbox",Number(c)),C.run(n,"UPDATE memory_entries SET deleted_at = ? WHERE id = ?",Date.now(),o.id),i.push(o.id)}catch{}return i.length}a(Pt,"archiveAgedInbox");async function Lt(n,e){if(e===null)return 0;let t=J.join(Y.getGlobalProjectPath(n),"checkpoints"),s=await k.readdir(t).catch(()=>null);if(!s)return 0;let r=Date.now()-e*24*60*60*1e3,i=[];for(let o of s){if(!o.endsWith(".json"))continue;let c=J.join(t,o);try{(await k.stat(c)).mtimeMs<r&&(await k.unlink(c),i.push(c))}catch{}}return i.length}a(Lt,"pruneOldCheckpoints");async function Dt(){let{getVerifyCachePath:n}=await import("./context7-service-AZWDYK5Z.mjs"),e=n();try{let t=await k.stat(e);if((Date.now()-t.mtimeMs)/(1440*60*1e3)>7)return await k.unlink(e),!0}catch{}return!1}a(Dt,"rotateContext7Cache");var Ot=1440*60*1e3,$t=["prompt-state-","prompt-git-","prompt-afteremit-","stop-heavy-","kimi-session-"];async function Nt(){let n=M.runDir(),e=await k.readdir(n).catch(()=>null);if(!e)return 0;let t=Date.now()-Ot,s=[];for(let r of e){if(!$t.some(o=>r.startsWith(o)))continue;let i=J.join(n,r);try{(await k.stat(i)).mtimeMs<t&&(await k.unlink(i),s.push(i))}catch{}}return s.length}a(Nt,"sweepRunDirStamps");async function Se(n){let e=Mt(),t={inboxArchived:0,archivesPruned:0,checkpointsRemoved:0,context7CacheRotated:!1,stampsRemoved:0};try{t.inboxArchived=await Pt(n,e.inboxDays)}catch{}try{t.archivesPruned=U.pruneOldArchives(n,e.archivesDays)}catch{}try{t.checkpointsRemoved=await Lt(n,e.checkpointsDays)}catch{}try{t.context7CacheRotated=await Dt()}catch{}try{t.stampsRemoved=await Nt()}catch{}return t}a(Se,"runSessionCleanup");async function ke(n,e){if(e.inboxArchived+e.archivesPruned+e.checkpointsRemoved+e.stampsRemoved+(e.context7CacheRotated?1:0)===0)return;let r=`Session cleanup: ${[e.inboxArchived>0?`${e.inboxArchived} inbox archived`:null,e.archivesPruned>0?`${e.archivesPruned} archives pruned`:null,e.checkpointsRemoved>0?`${e.checkpointsRemoved} checkpoints removed`:null,e.stampsRemoved>0?`${e.stampsRemoved} stale hook stamps removed`:null,e.context7CacheRotated?"context7 cache rotated":null].filter(i=>!!i).join(", ")}`;C.appendEvent(n,"memory.remember.system-event",{content:r,tags:{source:"session-cleanup",key:"last-cleanup"},provenance:"extracted",content_hash:q(r),project_id:n})}a(ke,"recordCleanupReport");import Ft from"node:crypto";import Ht from"node:fs/promises";var Ae="skill-miss-detector",Te=3,jt=280,Ut=["decision","gotcha","anti-pattern"],Bt=5400*1e3,Gt=360*60*1e3,Jt=2,_e=5,Wt=8,Ie=new Set(["should","because","project","prjct","instead","always","never","using","value","state","change","changes","update","updated","function","return","returns","error","errors","tests","testing","config","default","import","export","before","after","without"]);async function xe(n,e,t,s={}){let r=s.preloadedLines?s.preloadedLines:await Ht.readFile(e,"utf-8").then(zt).catch(()=>null);if(!r)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let i=I(n);if(!i)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let o=Kt(r);if(!o)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let c=(()=>{try{return Zt(i,t)}catch{return null}})();if(!c)return{signalsRecorded:0,signalsSkipped:0,failures:[]};if(c.length===0)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let l=await Q(n).catch(()=>[]),u=(()=>{try{let m=Date.now()-Gt;return new Set(se.list(i).filter(g=>Date.parse(g.ended_at)>m).flatMap(g=>g.files_touched))}catch{return new Set}})(),f=Xt(o,l,c,u);if(f.length===0)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let d=Qt(i),p=[];for(let m of f.slice(0,Te)){let g=Vt(m.memId,m.excerpt).slice(0,12);if(d.has(g)){p.push("skipped");continue}try{await h.remember(n,{type:"improvement-signal",content:qt(m),tags:{source:Ae,kind:"skill-miss",category:"skill-miss",...s.runtime?{runtime:s.runtime}:{},...s.model?{model:s.model}:{},relates:m.memId,file:m.evidenceFile,key:g,...t?{session:t}:{}},provenance:"extracted",projectId:i}),P.penalizeSkillMiss(i,m.memId),p.push("recorded")}catch{p.push("skipped")}}let y=p.filter(m=>m==="recorded").length,E=p.filter(m=>m==="skipped").length;return{signalsRecorded:y,signalsSkipped:E,failures:f.slice(0,Te).map(m=>({category:"skill-miss",expectedBehavior:`Apply relevant project rule ${m.memId}.`,observedBehavior:"Relevant project knowledge was not referenced in the session.",relatedRuleId:m.memId}))}}a(xe,"detectSkillMisses");function Xt(n,e,t,s=new Set){let r=Re(n);if(r.size===0)return[];let i=e.filter(l=>!s.has(l)),o=N(i),c=[];for(let l of t){let u=Re(`${l.content} ${l.fileTag}`);if(u.size===0)continue;let f=l.fileTag!==""&&i.some(g=>Ee(g,l.fileTag))||[...o].some(g=>u.has(g)),d=Yt(u),p=[...u].filter(g=>!d.has(g)&&r.has(g)).length;if(!(f||p>=Jt)||[...d].some(g=>r.has(g)))continue;let m=l.fileTag!==""&&i.some(g=>Ee(g,l.fileTag))?l.fileTag:i.find(g=>[...N([g])].some(Je=>u.has(Je)))??"";c.push({miss:{memId:l.id,memType:l.type,excerpt:l.content.replace(/\s+/g," ").trim().slice(0,jt),evidenceFile:m,reason:f?"path-overlap-unused":"topic-overlap-unused"},rank:f?2:1,overlap:p})}return c.sort((l,u)=>u.rank-l.rank||u.overlap-l.overlap),c.map(l=>l.miss)}a(Xt,"analyze");function zt(n){return S(n)}a(zt,"parseJsonl");function Kt(n){let e=[];for(let t of n){let s=t.role??t.message?.role;if(s!=="user"&&s!=="assistant")continue;let r=D(t.content??t.message?.content);r&&e.push(r)}return e.join(`
11
+ `).reduce((s,r)=>{let i=r.lastIndexOf(":");if(i<=0)return s;let o=Number.parseInt(r.slice(i+1),10);return Number.isFinite(o)?s+o:s},0)}}a(At,"measureTechDebt");function _t(n){return w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 50",[],t=>{if(t.source!==be)return;let s=typeof t.total=="string"?Number.parseInt(t.total,10):0;return Number.isFinite(s)?s:void 0})[0]??0}a(_t,"collectPreviousDebtSnapshot");function It(n){let e=Date.now()-O*24*60*60*1e3,t=w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 200",[],(s,r)=>{if(s.source!==ye)return;let i=s.file,o=r.rememberedAt;if(typeof i=="string"){if(typeof o=="string"){let c=Date.parse(o);if(!Number.isNaN(c)&&c<e)return}return i}});return new Set(t)}a(It,"collectAlreadyMarkedHotFiles");function xt(n){let e=Date.now()-$*24*60*60*1e3,t=w(n,"SELECT data FROM events WHERE type = 'memory.remember.learning' ORDER BY id DESC LIMIT 200",[],(s,r)=>{if(s.source!==we)return;let i=s.topic,o=r.rememberedAt;if(typeof i=="string"){if(typeof o=="string"){let c=Date.parse(o);if(!Number.isNaN(c)&&c<e)return}return i}});return new Set(t)}a(xt,"collectAlreadyMarkedRecurringBugs");import k from"node:fs/promises";import J from"node:path";ze();Ke();V();var Ct={conservative:{inboxDays:30,archivesDays:180,checkpointsDays:null},standard:{inboxDays:14,archivesDays:90,checkpointsDays:30},aggressive:{inboxDays:7,archivesDays:30,checkpointsDays:14}};function Mt(n=process.env){let e=(n.PRJCT_CLEANUP_AGGRESSIVENESS??"standard").toLowerCase();return Ct[e==="conservative"||e==="standard"||e==="aggressive"?e:"standard"]}a(Mt,"resolveProfile");async function Pt(n,e){let t=Date.now()-e*24*60*60*1e3,r=h.recall(n,{types:["inbox"],limit:200}).filter(o=>Date.parse(o.rememberedAt)<t);if(r.length===0)return 0;let i=[];for(let o of r)try{U.archive(n,{entityType:"memory_entry",entityId:o.id,entityData:{type:o.type,content:o.content,tags:o.tags,rememberedAt:o.rememberedAt},summary:o.content.slice(0,80),reason:`inbox-age-out (>${e}d)`});let c=o.id.startsWith("mem_")?o.id.slice(4):null;c&&C.run(n,"UPDATE events SET type = ? WHERE id = ?","memory.archived.inbox",Number(c)),C.run(n,"UPDATE memory_entries SET deleted_at = ? WHERE id = ?",Date.now(),o.id),i.push(o.id)}catch{}return i.length}a(Pt,"archiveAgedInbox");async function Lt(n,e){if(e===null)return 0;let t=J.join(Y.getGlobalProjectPath(n),"checkpoints"),s=await k.readdir(t).catch(()=>null);if(!s)return 0;let r=Date.now()-e*24*60*60*1e3,i=[];for(let o of s){if(!o.endsWith(".json"))continue;let c=J.join(t,o);try{(await k.stat(c)).mtimeMs<r&&(await k.unlink(c),i.push(c))}catch{}}return i.length}a(Lt,"pruneOldCheckpoints");async function Dt(){let{getVerifyCachePath:n}=await import("./context7-service-2MYRUNKY.mjs"),e=n();try{let t=await k.stat(e);if((Date.now()-t.mtimeMs)/(1440*60*1e3)>7)return await k.unlink(e),!0}catch{}return!1}a(Dt,"rotateContext7Cache");var Ot=1440*60*1e3,$t=["prompt-state-","prompt-git-","prompt-afteremit-","prompt-scc-","stop-heavy-","kimi-session-"];async function Nt(){let n=M.runDir(),e=await k.readdir(n).catch(()=>null);if(!e)return 0;let t=Date.now()-Ot,s=[];for(let r of e){if(!$t.some(o=>r.startsWith(o)))continue;let i=J.join(n,r);try{(await k.stat(i)).mtimeMs<t&&(await k.unlink(i),s.push(i))}catch{}}return s.length}a(Nt,"sweepRunDirStamps");async function Se(n){let e=Mt(),t={inboxArchived:0,archivesPruned:0,checkpointsRemoved:0,context7CacheRotated:!1,stampsRemoved:0};try{t.inboxArchived=await Pt(n,e.inboxDays)}catch{}try{t.archivesPruned=U.pruneOldArchives(n,e.archivesDays)}catch{}try{t.checkpointsRemoved=await Lt(n,e.checkpointsDays)}catch{}try{t.context7CacheRotated=await Dt()}catch{}try{t.stampsRemoved=await Nt()}catch{}return t}a(Se,"runSessionCleanup");async function ke(n,e){if(e.inboxArchived+e.archivesPruned+e.checkpointsRemoved+e.stampsRemoved+(e.context7CacheRotated?1:0)===0)return;let r=`Session cleanup: ${[e.inboxArchived>0?`${e.inboxArchived} inbox archived`:null,e.archivesPruned>0?`${e.archivesPruned} archives pruned`:null,e.checkpointsRemoved>0?`${e.checkpointsRemoved} checkpoints removed`:null,e.stampsRemoved>0?`${e.stampsRemoved} stale hook stamps removed`:null,e.context7CacheRotated?"context7 cache rotated":null].filter(i=>!!i).join(", ")}`;C.appendEvent(n,"memory.remember.system-event",{content:r,tags:{source:"session-cleanup",key:"last-cleanup"},provenance:"extracted",content_hash:q(r),project_id:n})}a(ke,"recordCleanupReport");import Ft from"node:crypto";import Ht from"node:fs/promises";var Ae="skill-miss-detector",Te=3,jt=280,Ut=["decision","gotcha","anti-pattern"],Bt=5400*1e3,Gt=360*60*1e3,Jt=2,_e=5,Wt=8,Ie=new Set(["should","because","project","prjct","instead","always","never","using","value","state","change","changes","update","updated","function","return","returns","error","errors","tests","testing","config","default","import","export","before","after","without"]);async function xe(n,e,t,s={}){let r=s.preloadedLines?s.preloadedLines:await Ht.readFile(e,"utf-8").then(zt).catch(()=>null);if(!r)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let i=I(n);if(!i)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let o=Kt(r);if(!o)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let c=(()=>{try{return Zt(i,t)}catch{return null}})();if(!c)return{signalsRecorded:0,signalsSkipped:0,failures:[]};if(c.length===0)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let l=await Q(n).catch(()=>[]),u=(()=>{try{let m=Date.now()-Gt;return new Set(se.list(i).filter(g=>Date.parse(g.ended_at)>m).flatMap(g=>g.files_touched))}catch{return new Set}})(),f=Xt(o,l,c,u);if(f.length===0)return{signalsRecorded:0,signalsSkipped:0,failures:[]};let d=Qt(i),p=[];for(let m of f.slice(0,Te)){let g=Vt(m.memId,m.excerpt).slice(0,12);if(d.has(g)){p.push("skipped");continue}try{await h.remember(n,{type:"improvement-signal",content:qt(m),tags:{source:Ae,kind:"skill-miss",category:"skill-miss",...s.runtime?{runtime:s.runtime}:{},...s.model?{model:s.model}:{},relates:m.memId,file:m.evidenceFile,key:g,...t?{session:t}:{}},provenance:"extracted",projectId:i}),P.penalizeSkillMiss(i,m.memId),p.push("recorded")}catch{p.push("skipped")}}let y=p.filter(m=>m==="recorded").length,E=p.filter(m=>m==="skipped").length;return{signalsRecorded:y,signalsSkipped:E,failures:f.slice(0,Te).map(m=>({category:"skill-miss",expectedBehavior:`Apply relevant project rule ${m.memId}.`,observedBehavior:"Relevant project knowledge was not referenced in the session.",relatedRuleId:m.memId}))}}a(xe,"detectSkillMisses");function Xt(n,e,t,s=new Set){let r=Re(n);if(r.size===0)return[];let i=e.filter(l=>!s.has(l)),o=N(i),c=[];for(let l of t){let u=Re(`${l.content} ${l.fileTag}`);if(u.size===0)continue;let f=l.fileTag!==""&&i.some(g=>Ee(g,l.fileTag))||[...o].some(g=>u.has(g)),d=Yt(u),p=[...u].filter(g=>!d.has(g)&&r.has(g)).length;if(!(f||p>=Jt)||[...d].some(g=>r.has(g)))continue;let m=l.fileTag!==""&&i.some(g=>Ee(g,l.fileTag))?l.fileTag:i.find(g=>[...N([g])].some(Je=>u.has(Je)))??"";c.push({miss:{memId:l.id,memType:l.type,excerpt:l.content.replace(/\s+/g," ").trim().slice(0,jt),evidenceFile:m,reason:f?"path-overlap-unused":"topic-overlap-unused"},rank:f?2:1,overlap:p})}return c.sort((l,u)=>u.rank-l.rank||u.overlap-l.overlap),c.map(l=>l.miss)}a(Xt,"analyze");function zt(n){return S(n)}a(zt,"parseJsonl");function Kt(n){let e=[];for(let t of n){let s=t.role??t.message?.role;if(s!=="user"&&s!=="assistant")continue;let r=D(t.content??t.message?.content);r&&e.push(r)}return e.join(`
12
12
  `).toLowerCase()}a(Kt,"transcriptTextOf");function Re(n){let e=new Set;for(let t of n.toLowerCase().split(/[^a-z0-9]+/))t.length<_e||Ie.has(t)||e.add(t);return e}a(Re,"tokenize");function Yt(n){let e=[...n].filter(s=>s.length>=Wt);if(e.length>0)return new Set(e);let t=[...n].sort((s,r)=>r.length-s.length||s.localeCompare(r))[0]??"";return t?new Set([t]):new Set}a(Yt,"signatureOf");function N(n){let e=new Set;for(let t of n)for(let s of t.split("/")){let r=s.replace(/\.[a-z0-9]+$/i,"").toLowerCase();r.length>=_e&&!Ie.has(r)&&e.add(r)}return e}a(N,"fileStems");function Ee(n,e){let t=N([n]);for(let s of N([e]))if(t.has(s))return!0;return!1}a(Ee,"sharesStem");function qt(n){let e=n.evidenceFile!==""?`touched \`${n.evidenceFile}\``:"worked the same area";return[`[skill-miss] Unused project knowledge (${n.memType}, ${n.memId}): "${n.excerpt}"`,`This session ${e} but never referenced it. Apply it, or supersede it via: prjct remember decision "<resolution>" --tags resolves:skill-miss,relates:${n.memId}`].join(`
13
13
  `)}a(qt,"formatSkillMiss");function Vt(n,e){let t=`${n}::${e.toLowerCase().replace(/\s+/g," ").trim()}`;return Ft.createHash("sha256").update(t).digest("hex")}a(Vt,"hashKey");function Zt(n,e){let t=h.recall(n,{types:[...Ut],limit:120}),s=Date.now()-Bt,r=[];for(let i of t)i.provenance!=="inferred"&&(Date.parse(i.rememberedAt)>s||e&&i.tags.session===e||r.push({id:i.id,type:i.type,content:i.content,fileTag:i.tags.file??"",rememberedAt:i.rememberedAt,provenance:i.provenance,session:i.tags.session??""}));return r}a(Zt,"recallCandidates");function Qt(n){try{let e=h.recall(n,{types:["improvement-signal"],tags:{source:Ae},limit:100,dedupeByKey:!1}),t=new Set;for(let s of e)s.tags.key&&t.add(s.tags.key);return t}catch{return new Set}}a(Qt,"existingSkillMissKeys");import en from"node:crypto";import tn from"node:fs/promises";var Pe="transcript-auto",nn="v2",Le=80,De=20,F=1500,rn=12,Ce=4,sn=[{phrase:"decided to",type:"decision"},{phrase:"we chose",type:"decision"},{phrase:"going with",type:"decision"},{phrase:"the right call",type:"decision"},{phrase:"best approach is",type:"decision"},{phrase:"we will use",type:"decision"},{phrase:"shipping with",type:"decision"},{phrase:"turns out that",type:"learning"},{phrase:"now i understand",type:"learning"},{phrase:"the key insight",type:"learning"},{phrase:"i learned that",type:"learning"},{phrase:"discovered that",type:"learning"},{phrase:"root cause is",type:"learning"},{phrase:"root cause was",type:"learning"},{phrase:"the fix is",type:"learning"},{phrase:"gotcha:",type:"gotcha"},{phrase:"bug:",type:"gotcha"},{phrase:"fails when",type:"gotcha"},{phrase:"breaks when",type:"gotcha"},{phrase:"be careful",type:"gotcha"},{phrase:"never do this",type:"gotcha"},{phrase:"trap:",type:"gotcha"},{phrase:"important:",type:"fact"},{phrase:"always use",type:"fact"},{phrase:"never write",type:"fact"},{phrase:"the pattern is",type:"pattern"},{phrase:"anti-pattern:",type:"anti-pattern"},{phrase:"antipattern:",type:"anti-pattern"}],Oe=[{re:/^(?:[-*•]\s+)?(?:\*\*)?decision(?:\*\*)?\s*[:—-]\s+/i,type:"decision",phrase:"label:decision"},{re:/^(?:[-*•]\s+)?(?:\*\*)?(learning|insight)(?:\*\*)?\s*[:—-]\s+/i,type:"learning",phrase:"label:learning"},{re:/^(?:[-*•]\s+)?(?:\*\*)?(gotcha|trap|warning)(?:\*\*)?\s*[:—-]\s+/i,type:"gotcha",phrase:"label:gotcha"},{re:/^(?:[-*•]\s+)?(?:\*\*)?(fact|note)(?:\*\*)?\s*[:—-]\s+/i,type:"fact",phrase:"label:fact"},{re:/^(?:[-*•]\s+)?(?:\*\*)?root\s*cause(?:\*\*)?\s*[:—-]\s+/i,type:"learning",phrase:"label:root-cause"},{re:/^(?:[-*•]\s+)?(?:\*\*)?pattern(?:\*\*)?\s*[:—-]\s+/i,type:"pattern",phrase:"label:pattern"},{re:/^(?:[-*•]\s+)?(?:\*\*)?anti[- ]?pattern(?:\*\*)?\s*[:—-]\s+/i,type:"anti-pattern",phrase:"label:anti-pattern"}];async function $e(n,e,t,s={}){let r={scanned:0,ingested:0,skipped:[],errors:[]},i=s.preloadedConfig!==void 0?s.preloadedConfig:await v.readConfig(n).catch(()=>null);if(!i?.projectId)return r.errors.push("no project config"),r;let o=await(async()=>{if(s.preloadedLines)return s.preloadedLines;try{return S(await tn.readFile(e,"utf-8"))}catch(p){return r.errors.push(`transcript read failed: ${p.message}`),null}})();if(o===null)return r;let c=on(o),l=an(o);if(r.scanned=c.length+l.length,c.length===0&&l.length===0)return r;let u=[...pn(c),...un(l)];if(u.length===0)return r;let f=fn(i.projectId),d=t?t.slice(0,12):"unknown";for(let p of u){if(f.has(p.hash)){r.skipped.push({reason:"duplicate",phrase:p.matchedPhrase});continue}try{await h.remember(n,{type:p.type,content:p.content,tags:{source:Pe,capture:nn,session:d,hash:p.hash,phrase:p.matchedPhrase},provenance:"inferred",projectId:i.projectId}),r.ingested+=1}catch(y){r.errors.push(`remember failed: ${y.message}`)}}return r}a($e,"ingestTranscript");function on(n){let e=[];for(let t of n){let s=Ne(t);if(s!=="assistant")continue;let r=Fe(t);!r||r.length<Le||e.push({role:s,text:r})}return e}a(on,"projectMessages");function an(n){let e=[];for(let t of n){let s=Ne(t);if(s!=="user")continue;let r=Fe(t);!r||r.length<De||e.push({role:s,text:r})}return e}a(an,"projectUserMessages");var cn=[{re:/^(?:please\s+)?always\b/i,phrase:"user:always"},{re:/^(?:please\s+)?never\b/i,phrase:"user:never"},{re:/\bi (?:always|never|prefer)\b/i,phrase:"user:i-prefer"},{re:/^(?:rule|preference)\s*[:—-]/i,phrase:"user:rule"},{re:/\bno more\s+(?:features?|feature\s+creep)\b/i,phrase:"user:no-more-features"},{re:/\bdon'?t add (?:more )?(?:features?|surface)\b/i,phrase:"user:dont-add-features"}];function un(n){let e=[],t=new Set;for(let s of n){if(e.length>=Ce)break;let r=s.text.split(/\n/).map(o=>o.replace(/^[-*•]\s+/,"").trim()).filter(o=>o.length>=De),i=r.length>0?r:[s.text.trim()];for(let o of i){if(e.length>=Ce)break;let c=cn.find(f=>f.re.test(o));if(!c)continue;let l=o.length>F?`${o.slice(0,F)}\u2026`:o,u=He(l);t.has(u)||(t.add(u),e.push({type:"feedback",content:l,hash:u,matchedPhrase:c.phrase}))}}return e}a(un,"extractUserPreferenceCandidates");function Ne(n){let e=n.role;if(typeof e=="string")return Me(e);let t=n.message;if(t&&typeof t=="object"&&"role"in t){let r=t.role;if(typeof r=="string")return Me(r)}let s=n.type;return s==="assistant"||s==="user"||s==="system"?s:null}a(Ne,"inferRole");function Me(n){let e=n.toLowerCase();return e==="assistant"||e==="user"||e==="system"?e:null}a(Me,"normalizeRole");function Fe(n){let e=n.content===void 0&&n.message&&typeof n.message=="object"?n.message.content:n.content;if(typeof e=="string")return e.trim();if(Array.isArray(e)){let t=[];for(let s of e){if(!s||typeof s!="object")continue;let r=s;r.type==="text"&&typeof r.text=="string"&&t.push(r.text)}return t.join(`
14
14
  `).trim()}return""}a(Fe,"extractText");function ln(n){let e=n.trim();if(e.length<Le)return null;for(let r of Oe)if(r.re.test(e))return{type:r.type,matchedPhrase:r.phrase};let t=e.toLowerCase(),s=sn.find(r=>t.includes(r.phrase));return s?{type:s.type,matchedPhrase:s.phrase}:null}a(ln,"classifyCaptureParagraph");function pn(n){let e=[],t=new Set;for(let s of n){let r=dn(s.text);for(let i of r){if(e.length>=rn)return e;let o=ln(i);if(!o)continue;let c=i.length>F?`${i.slice(0,F)}\u2026`:i,l=He(c);t.has(l)||(t.add(l),e.push({type:o.type,content:c,hash:l,matchedPhrase:o.matchedPhrase}))}}return e}a(pn,"extractCandidates");function dn(n){let e=n.split(/\n\s*\n/).map(s=>s.trim()).filter(Boolean),t=[];for(let s of e){let r=s.split(`
15
- `).map(o=>o.trim()).filter(Boolean);if(r.some(o=>Oe.some(c=>c.re.test(o)))&&r.length>1)for(let o of r)t.push(o);else t.push(s)}return t}a(dn,"splitParagraphs");function He(n){return en.createHash("sha256").update(n.toLowerCase().trim()).digest("hex").slice(0,16)}a(He,"hashContent");function fn(n){try{let{REMEMBER_EVENT_RANGE:e}=(Ve(),X(qe)),t=w(n,"SELECT data FROM events WHERE type >= ? AND type < ? ORDER BY id DESC LIMIT 500",[...e],s=>{if(s.source!==Pe)return;let r=s.hash;return typeof r=="string"?r:void 0});return new Set(t)}catch{return new Set}}a(fn,"collectExistingAutoHashes");We();Xe();import mn from"node:fs/promises";import je from"node:path";function gn(){return process.env.PRJCT_TEST_MODE==="1"?je.join(j(".prjct-tests"),"kimi-code","sessions"):j(".kimi-code","sessions")}a(gn,"getKimiSessionsRoot");async function Ue(n,e=gn()){let t=n.replace(/[^a-zA-Z0-9_-]/g,"");if(!t)return;let s=t.startsWith("session_")?[t]:[t,`session_${t}`],r=await mn.readdir(e,{withFileTypes:!0}).catch(()=>[]);for(let i of r)if(i.isDirectory())for(let o of s){let c=je.join(e,i.name,o,"agents","main","wire.jsonl");if(await K(c))return c}}a(Ue,"resolveKimiTranscriptPath");var H=600*1e3,R=new Map;function hn(n){let e=n.replace(/[^a-zA-Z0-9._-]/g,"_");return Be.join(M.runDir(),`stop-heavy-${e}.stamp`)}a(hn,"heavyStepStampPath");async function Ge(n,e,t=!0){if(await b.stat(n).then(i=>e-i.mtimeMs<H).catch(()=>!1))return!1;let r=`${n}.lock`;try{await b.mkdir(r)}catch(i){if(i.code!=="EEXIST")throw i;return!await b.stat(r).then(c=>e-c.mtimeMs>=H).catch(()=>!1)||!t?!1:(await b.rmdir(r).catch(()=>{}),Ge(n,e,!1))}try{return await b.stat(n).then(o=>e-o.mtimeMs<H).catch(()=>!1)?!1:(await b.writeFile(n,String(e)),!0)}finally{await b.rmdir(r).catch(()=>{})}}a(Ge,"claimHeavyStep");async function yn(n){let e=Date.now(),t=R.get(n)??0;if(e-t<H)return!1;try{let s=hn(n);await b.mkdir(Be.dirname(s),{recursive:!0});let r=await Ge(s,e);return R.size>32&&R.clear(),R.set(n,e),r}catch{}return R.size>32&&R.clear(),R.set(n,e),!0}a(yn,"heavyStepsDue");function Jr(n=process.cwd(),e){return te({event:"Stop",projectPath:n,afterEmit:a(async(t,s,r)=>{let i=await v.readConfig(s).catch(()=>null);if(!i?.projectId)return;let o=re({hookHost:r}),c=t.transcript_path??(r==="kimi"&&t.session_id?await Ue(t.session_id).catch(()=>{}):void 0),l=await yn(i.projectId),u={};if(l&&c){let d=await b.readFile(c,"utf-8").catch(()=>null);d!==null&&(u.transcriptLines=S(d))}let f=ne(u.transcriptLines??[]);if(l)try{let{collectActiveTasks:d}=await import("./task-overview-XSMK7YEN.mjs"),p=await d(i.projectId,s);u.activeTaskId=p.current?.id,u.activeTaskDescription=p.current?.description,u.activeTaskStartedAt=p.current?.startedAt}catch{}if(u.transcriptLines&&u.transcriptLines.length>0)try{if(u.transcriptUsage=G(u.transcriptLines),u.transcriptUsage.tokensIn+u.transcriptUsage.tokensOut>0){let d=u.activeTaskStartedAt?{sinceIso:u.activeTaskStartedAt}:void 0,p=G(u.transcriptLines,d);if(u.activeTaskId&&p.tokensIn+p.tokensOut>0){B(i.projectId,u.activeTaskId,p.tokensIn,p.tokensOut,{description:u.activeTaskDescription,agent:o,source:`${o}-transcript`});try{let{sumTranscriptUsageByModel:y}=await import("./transcript-jsonl-OC7TH4Q3.mjs");for(let[E,m]of y(u.transcriptLines,d))m.tokensIn+m.tokensOut<=0||B(i.projectId,u.activeTaskId,m.tokensIn,m.tokensOut,{model:E,agent:o,source:`${o}-transcript:${E}`})}catch{}}}}catch{}if(ee({projectId:i.projectId,sessionId:t.session_id,directory:s,taskId:u.activeTaskId,goal:u.activeTaskDescription,tokensIn:u.transcriptUsage?.tokensIn,tokensOut:u.transcriptUsage?.tokensOut,agent:o,model:f}),l&&c)try{await $e(s,c,t.session_id??null,{preloadedConfig:i,preloadedLines:u.transcriptLines})}catch{}if(l){try{await ve(s,i)}catch{}try{await he(s,i)}catch{}try{let d=await Se(i.projectId);await ke(i.projectId,d),L.pruneRetained(i.projectId)}catch{}}if(l&&c)try{let d=await le(s,c,t.session_id??null,{preloadedLines:u.transcriptLines,runtime:o,model:f});for(let p of d.failures)try{L.record(i.projectId,{source:"friction-detector",runtime:o,model:f,sessionId:t.session_id??null,taskId:u.activeTaskId??null,...p})}catch{}d.signalsRecorded>0&&u.activeTaskId&&P.penalizeSurfaced(i.projectId,u.activeTaskId)}catch{}if(l&&c)try{let d=await xe(s,c,t.session_id??null,{preloadedLines:u.transcriptLines,runtime:o,model:f});for(let p of d.failures)try{L.record(i.projectId,{source:"skill-miss-detector",runtime:o,model:f,sessionId:t.session_id??null,taskId:u.activeTaskId??null,...p})}catch{}}catch{}if(l)try{await Z.backfill(i.projectId,i,new Date().toISOString())}catch{}if(l&&u.activeTaskId){let d={projectId:i.projectId,projectPath:s,cycleDescription:u.activeTaskDescription??null,cycleId:u.activeTaskId,tokensIn:u.transcriptUsage?.tokensIn,tokensOut:u.transcriptUsage?.tokensOut,model:f},p=a(async y=>{try{await y()}catch{}},"runBestEffort");await p(async()=>{let{synthesizeLandHandoff:y}=await import("./land-synthesis-CHARJMUP.mjs");await y(d)}),await p(async()=>{let{synthesizeJudgmentReceipt:y}=await import("./judgment-receipt-WT4EMCAV.mjs");await y(d)})}try{let{flushIfLinked:d}=await import("./auto-flush-EWSVMKQN.mjs");await d(s,i)}catch{}},"afterEmit")},e)}a(Jr,"runStopHook");export{hn as heavyStepStampPath,yn as heavyStepsDue,Jr as runStopHook};
15
+ `).map(o=>o.trim()).filter(Boolean);if(r.some(o=>Oe.some(c=>c.re.test(o)))&&r.length>1)for(let o of r)t.push(o);else t.push(s)}return t}a(dn,"splitParagraphs");function He(n){return en.createHash("sha256").update(n.toLowerCase().trim()).digest("hex").slice(0,16)}a(He,"hashContent");function fn(n){try{let{REMEMBER_EVENT_RANGE:e}=(Ve(),X(qe)),t=w(n,"SELECT data FROM events WHERE type >= ? AND type < ? ORDER BY id DESC LIMIT 500",[...e],s=>{if(s.source!==Pe)return;let r=s.hash;return typeof r=="string"?r:void 0});return new Set(t)}catch{return new Set}}a(fn,"collectExistingAutoHashes");We();Xe();import mn from"node:fs/promises";import je from"node:path";function gn(){return process.env.PRJCT_TEST_MODE==="1"?je.join(j(".prjct-tests"),"kimi-code","sessions"):j(".kimi-code","sessions")}a(gn,"getKimiSessionsRoot");async function Ue(n,e=gn()){let t=n.replace(/[^a-zA-Z0-9_-]/g,"");if(!t)return;let s=t.startsWith("session_")?[t]:[t,`session_${t}`],r=await mn.readdir(e,{withFileTypes:!0}).catch(()=>[]);for(let i of r)if(i.isDirectory())for(let o of s){let c=je.join(e,i.name,o,"agents","main","wire.jsonl");if(await K(c))return c}}a(Ue,"resolveKimiTranscriptPath");var H=600*1e3,R=new Map;function hn(n){let e=n.replace(/[^a-zA-Z0-9._-]/g,"_");return Be.join(M.runDir(),`stop-heavy-${e}.stamp`)}a(hn,"heavyStepStampPath");async function Ge(n,e,t=!0){if(await b.stat(n).then(i=>e-i.mtimeMs<H).catch(()=>!1))return!1;let r=`${n}.lock`;try{await b.mkdir(r)}catch(i){if(i.code!=="EEXIST")throw i;return!await b.stat(r).then(c=>e-c.mtimeMs>=H).catch(()=>!1)||!t?!1:(await b.rmdir(r).catch(()=>{}),Ge(n,e,!1))}try{return await b.stat(n).then(o=>e-o.mtimeMs<H).catch(()=>!1)?!1:(await b.writeFile(n,String(e)),!0)}finally{await b.rmdir(r).catch(()=>{})}}a(Ge,"claimHeavyStep");async function yn(n){let e=Date.now(),t=R.get(n)??0;if(e-t<H)return!1;try{let s=hn(n);await b.mkdir(Be.dirname(s),{recursive:!0});let r=await Ge(s,e);return R.size>32&&R.clear(),R.set(n,e),r}catch{}return R.size>32&&R.clear(),R.set(n,e),!0}a(yn,"heavyStepsDue");function Jr(n=process.cwd(),e){return te({event:"Stop",projectPath:n,afterEmit:a(async(t,s,r)=>{let i=await v.readConfig(s).catch(()=>null);if(!i?.projectId)return;let o=re({hookHost:r}),c=t.transcript_path??(r==="kimi"&&t.session_id?await Ue(t.session_id).catch(()=>{}):void 0),l=await yn(i.projectId),u={};if(l&&c){let d=await b.readFile(c,"utf-8").catch(()=>null);d!==null&&(u.transcriptLines=S(d))}let f=ne(u.transcriptLines??[]);if(l)try{let{collectActiveTasks:d}=await import("./task-overview-XSMK7YEN.mjs"),p=await d(i.projectId,s);u.activeTaskId=p.current?.id,u.activeTaskDescription=p.current?.description,u.activeTaskStartedAt=p.current?.startedAt}catch{}if(u.transcriptLines&&u.transcriptLines.length>0)try{if(u.transcriptUsage=G(u.transcriptLines),u.transcriptUsage.tokensIn+u.transcriptUsage.tokensOut>0){let d=u.activeTaskStartedAt?{sinceIso:u.activeTaskStartedAt}:void 0,p=G(u.transcriptLines,d);if(u.activeTaskId&&p.tokensIn+p.tokensOut>0){B(i.projectId,u.activeTaskId,p.tokensIn,p.tokensOut,{description:u.activeTaskDescription,agent:o,source:`${o}-transcript`});try{let{sumTranscriptUsageByModel:y}=await import("./transcript-jsonl-OC7TH4Q3.mjs");for(let[E,m]of y(u.transcriptLines,d))m.tokensIn+m.tokensOut<=0||B(i.projectId,u.activeTaskId,m.tokensIn,m.tokensOut,{model:E,agent:o,source:`${o}-transcript:${E}`})}catch{}}}}catch{}if(ee({projectId:i.projectId,sessionId:t.session_id,directory:s,taskId:u.activeTaskId,goal:u.activeTaskDescription,tokensIn:u.transcriptUsage?.tokensIn,tokensOut:u.transcriptUsage?.tokensOut,agent:o,model:f}),l&&c)try{await $e(s,c,t.session_id??null,{preloadedConfig:i,preloadedLines:u.transcriptLines})}catch{}if(l){try{await ve(s,i)}catch{}try{await he(s,i)}catch{}try{let d=await Se(i.projectId);await ke(i.projectId,d),L.pruneRetained(i.projectId)}catch{}}if(l&&c)try{let d=await le(s,c,t.session_id??null,{preloadedLines:u.transcriptLines,runtime:o,model:f});for(let p of d.failures)try{L.record(i.projectId,{source:"friction-detector",runtime:o,model:f,sessionId:t.session_id??null,taskId:u.activeTaskId??null,...p})}catch{}d.signalsRecorded>0&&u.activeTaskId&&P.penalizeSurfaced(i.projectId,u.activeTaskId)}catch{}if(l&&c)try{let d=await xe(s,c,t.session_id??null,{preloadedLines:u.transcriptLines,runtime:o,model:f});for(let p of d.failures)try{L.record(i.projectId,{source:"skill-miss-detector",runtime:o,model:f,sessionId:t.session_id??null,taskId:u.activeTaskId??null,...p})}catch{}}catch{}if(l)try{await Z.backfill(i.projectId,i,new Date().toISOString())}catch{}if(l&&u.activeTaskId){let d={projectId:i.projectId,projectPath:s,cycleDescription:u.activeTaskDescription??null,cycleId:u.activeTaskId,tokensIn:u.transcriptUsage?.tokensIn,tokensOut:u.transcriptUsage?.tokensOut,model:f},p=a(async y=>{try{await y()}catch{}},"runBestEffort");await p(async()=>{let{synthesizeLandHandoff:y}=await import("./land-synthesis-MU4EZEYL.mjs");await y(d)}),await p(async()=>{let{synthesizeJudgmentReceipt:y}=await import("./judgment-receipt-GO6QEZQC.mjs");await y(d)})}try{let{flushIfLinked:d}=await import("./auto-flush-XA3V7BJ6.mjs");await d(s,i)}catch{}},"afterEmit")},e)}a(Jr,"runStopHook");export{hn as heavyStepStampPath,yn as heavyStepsDue,Jr as runStopHook};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{b as a}from"./chunk-2ZPM4Z6W.mjs";import"./chunk-BSR3XUBD.mjs";import{a as i}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import"./chunk-ZK7BMUMR.mjs";import"./chunk-5UUITMRX.mjs";import"./chunk-K25HGTC3.mjs";import"./chunk-45LKWJ5D.mjs";import"./chunk-6P4GMVUZ.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-TILUQF6L.mjs";import"./chunk-Y5SEUYET.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as n}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-WTDUJB4I.mjs";import{f as e,i as m}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";m();function l(c=process.cwd(),p){return i({event:"SubagentStart",projectPath:c,build:o((u,t)=>a(t),"build"),afterEmit:o(async(u,t)=>{try{let r=await n.readConfig(t);if(!r?.projectId)return;let{collectActiveTasks:s}=await import("./task-overview-XSMK7YEN.mjs"),d=await s(r.projectId,t);e.appendEvent(r.projectId,"subagent.spawned",{taskId:d.current?.id??null})}catch{}},"afterEmit")},p)}o(l,"runSubagentStartHook");export{l as runSubagentStartHook};
7
+ import{b as a}from"./chunk-7BU6SJBC.mjs";import"./chunk-BSR3XUBD.mjs";import{a as i}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import"./chunk-2VXPFULA.mjs";import"./chunk-CXKDKMYE.mjs";import"./chunk-XLAGA5B7.mjs";import"./chunk-45LKWJ5D.mjs";import"./chunk-KI4OY3UQ.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-TILUQF6L.mjs";import"./chunk-MPU3VM6Z.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as n}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-WTDUJB4I.mjs";import{f as e,i as m}from"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";m();function l(c=process.cwd(),p){return i({event:"SubagentStart",projectPath:c,build:o((u,t)=>a(t),"build"),afterEmit:o(async(u,t)=>{try{let r=await n.readConfig(t);if(!r?.projectId)return;let{collectActiveTasks:s}=await import("./task-overview-XSMK7YEN.mjs"),d=await s(r.projectId,t);e.appendEvent(r.projectId,"subagent.spawned",{taskId:d.current?.id??null})}catch{}},"afterEmit")},p)}o(l,"runSubagentStartHook");export{l as runSubagentStartHook};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{b as f,c as p}from"./chunk-XC6YAP36.mjs";import{a as s}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import{a}from"./chunk-GTG67Z45.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-XLFEWZRA.mjs";import{a as c}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{b as r}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";function w(u=process.cwd(),g){return s({event:"SubagentStop",projectPath:u,afterEmit:i(async(d,n)=>{let o=await r.readConfig(n).catch(()=>null);if(!o?.projectId||f(o)==="off")return;let e=[];try{let t=await a(o.projectId,n);t.current&&e.push(`active: ${t.current.description}`)}catch{}try{let t=await c.getActiveTasks(o.projectId);t.length>0&&e.push(`pending: ${t.length}`)}catch{}await p("prjct \u2014 subagent finished",e.join(" \xB7 ")||"A subagent finished")},"afterEmit")},g)}i(w,"runSubagentStopHook");export{w as runSubagentStopHook};
7
+ import{b as f,c as p}from"./chunk-XC6YAP36.mjs";import{a as s}from"./chunk-MCY7OXED.mjs";import"./chunk-YQ6HM3YO.mjs";import{a}from"./chunk-GTG67Z45.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-XLFEWZRA.mjs";import{a as c}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{b as r}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as i}from"./chunk-3TRXQAU4.mjs";function w(u=process.cwd(),g){return s({event:"SubagentStop",projectPath:u,afterEmit:i(async(d,n)=>{let o=await r.readConfig(n).catch(()=>null);if(!o?.projectId||f(o)==="off")return;let e=[];try{let t=await a(o.projectId,n);t.current&&e.push(`active: ${t.current.description}`)}catch{}try{let t=await c.getActiveTasks(o.projectId);t.length>0&&e.push(`pending: ${t.length}`)}catch{}await p("prjct \u2014 subagent finished",e.join(" \xB7 ")||"A subagent finished")},"afterEmit")},g)}i(w,"runSubagentStopHook");export{w as runSubagentStopHook};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a}from"./chunk-XU3BQPBU.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as recordSurfacedForActiveTask};
7
+ import{a}from"./chunk-LGX2GM45.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as recordSurfacedForActiveTask};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{e as TASK_CONTEXT_PROMPT,h as completeActiveTask,a as formatRelatedContextForAgent,b as formatRiskForAgent,i as readLastStatus,d as recallRisksForFiles,g as resolveActiveTask,f as setTaskStatus,c as startTask};
7
+ import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i}from"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{e as TASK_CONTEXT_PROMPT,h as completeActiveTask,a as formatRelatedContextForAgent,b as formatRiskForAgent,i as readLastStatus,d as recallRisksForFiles,g as resolveActiveTask,f as setTaskStatus,c as startTask};
@@ -4,6 +4,6 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as M,b as l}from"./chunk-GOIBJ7PV.mjs";import{a as d}from"./chunk-5MN22JFI.mjs";import{a as k}from"./chunk-V5VCXMKO.mjs";import{d as T}from"./chunk-FOWTB762.mjs";import{a as u}from"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as c}from"./chunk-ID2C2S33.mjs";import{b as h}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as D,p as w}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as $}from"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";$();w();var i=["off","assist","strict"],C=class extends k{static{m(this,"TddCommands")}async tdd(s=null,t=process.cwd(),n={}){let e=M(s,i);return e.kind==="status"?this.showStatus(t,n):e.kind==="mode"?this.setMode(e.mode,t,n):e.sub==="check"?this.check(t,n):T(`Unknown tdd subcommand "${e.sub}". Use: check, or ${i.join("|")}.`,n)}async showStatus(s,t){let n=await l(s,t);if(!n.ok)return n.result;let e=n.value,o=y(e),a=(await u(s).catch(()=>null))?.test?.command??null,p=[`Mode: ${o}${o==="off"?" (guidance + ship TDD gate dormant)":""}`,`Test command: ${a??"none detected (add tests to enable the gate)"}`,"Set: prjct tdd off|assist|strict","Check: prjct tdd check \u2014 run the test command now (red/green)"];return t.md?console.log(d("## TDD",`> **Mode**: \`${o}\``,`- Test command: \`${a??"none detected"}\``,p.slice(2).join(`
7
+ import{a as M,b as l}from"./chunk-WZ6W5ZQ5.mjs";import{a as d}from"./chunk-6POAOY5C.mjs";import{a as k}from"./chunk-5DZ2LTII.mjs";import{d as T}from"./chunk-FOWTB762.mjs";import{a as u}from"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as c}from"./chunk-ID2C2S33.mjs";import{b as h}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as D,p as w}from"./chunk-D62TAZG6.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as f,g as $}from"./chunk-225DWS4D.mjs";import{a as m}from"./chunk-3TRXQAU4.mjs";$();w();var i=["off","assist","strict"],C=class extends k{static{m(this,"TddCommands")}async tdd(s=null,t=process.cwd(),n={}){let e=M(s,i);return e.kind==="status"?this.showStatus(t,n):e.kind==="mode"?this.setMode(e.mode,t,n):e.sub==="check"?this.check(t,n):T(`Unknown tdd subcommand "${e.sub}". Use: check, or ${i.join("|")}.`,n)}async showStatus(s,t){let n=await l(s,t);if(!n.ok)return n.result;let e=n.value,o=y(e),a=(await u(s).catch(()=>null))?.test?.command??null,p=[`Mode: ${o}${o==="off"?" (guidance + ship TDD gate dormant)":""}`,`Test command: ${a??"none detected (add tests to enable the gate)"}`,"Set: prjct tdd off|assist|strict","Check: prjct tdd check \u2014 run the test command now (red/green)"];return t.md?console.log(d("## TDD",`> **Mode**: \`${o}\``,`- Test command: \`${a??"none detected"}\``,p.slice(2).join(`
8
8
  `))):c.info(`TDD \u2014 ${p.join(`
9
9
  `)}`),{success:!0,mode:o,testCommand:a}}async setMode(s,t,n){let e=await l(t,n);if(!e.ok)return e.result;let o=e.value;o.tdd={mode:s},await h.writeConfig(t,o);let r=s==="off"?"TDD mode off \u2014 test-first guidance and the ship TDD gate are dormant.":s==="assist"?"TDD mode \u2192 assist. Guidance biases test-first (red\u2192green\u2192refactor); `ship` reminds.":"TDD mode \u2192 strict. Test-first expected; `ship` surfaces a hard gate \u2014 run `prjct tdd check` and don't ship on red.";return n.md?console.log(d("## TDD",`> ${r}`)):c.done(r),{success:!0,mode:s}}async check(s,t){let e=(await u(s).catch(()=>null))?.test?.command;if(!e){let o="tdd check: no test command detected for this stack. Add a test script first.";return console.log(t.md?d("## TDD check",`> ${o}`):o),{success:!1,reason:"no_test_command"}}try{await D(e,{cwd:s,maxBuffer:32*1024*1024});let o=`tdd check: GREEN \u2014 \`${e}\` passed.`;return console.log(t.md?d("## TDD check",`> \u2705 ${o}`):o),{success:!0,green:!0,testCommand:e}}catch(o){let r=`tdd check: RED \u2014 \`${e}\` failed. Fix before shipping.`;return t.md?console.log(d("## TDD check",`> \u274C ${r}`,f(o))):(c.fail(r),c.info(f(o))),{success:!1,green:!1,testCommand:e}}}};function y(g){let s=g?.tdd?.mode;if(s&&i.includes(s))return s;let t=process.env.PRJCT_TDD_MODE?.toLowerCase();return t&&i.includes(t)?t:"off"}m(y,"effectiveTddMode");var L={effectiveTddMode:y,TDD_MODES:i};export{C as TddCommands,L as _internal,y as effectiveTddMode};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as D,d as $}from"./chunk-5MN22JFI.mjs";import{a as v}from"./chunk-V5VCXMKO.mjs";import{d as C,e as y}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import{a as A,b as E}from"./chunk-2I5PUQWY.mjs";import{b as M}from"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as g}from"./chunk-ID2C2S33.mjs";import{b as O}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as j,p as F}from"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as q,g as J}from"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{k as b,p as P}from"./chunk-HYIT7MF5.mjs";import{e as k,g as H}from"./chunk-225DWS4D.mjs";import{a as p}from"./chunk-3TRXQAU4.mjs";import d from"node:fs/promises";import h from"node:path";H();F();P();J();var N="<!-- prjct-team:start - DO NOT REMOVE THIS MARKER -->",L="<!-- prjct-team:end - DO NOT REMOVE THIS MARKER -->";function S(t){let o={required:t.required,minVersion:t.minVersion,enrolledAt:t.enrolledAt};return t.enrolledBy!==null&&(o.enrolledBy=t.enrolledBy),`${JSON.stringify(o,null,2)}
7
+ import{a as D,d as $}from"./chunk-6POAOY5C.mjs";import{a as v}from"./chunk-5DZ2LTII.mjs";import{d as C,e as y}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import{a as A,b as E}from"./chunk-2I5PUQWY.mjs";import{b as M}from"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as g}from"./chunk-ID2C2S33.mjs";import{b as O}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import{a as j,p as F}from"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import{d as q,g as J}from"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import{k as b,p as P}from"./chunk-HYIT7MF5.mjs";import{e as k,g as H}from"./chunk-225DWS4D.mjs";import{a as p}from"./chunk-3TRXQAU4.mjs";import d from"node:fs/promises";import h from"node:path";H();F();P();J();var N="<!-- prjct-team:start - DO NOT REMOVE THIS MARKER -->",L="<!-- prjct-team:end - DO NOT REMOVE THIS MARKER -->";function S(t){let o={required:t.required,minVersion:t.minVersion,enrolledAt:t.enrolledAt};return t.enrolledBy!==null&&(o.enrolledBy=t.enrolledBy),`${JSON.stringify(o,null,2)}
8
8
  `}p(S,"renderTeamMirror");var x=class extends v{static{p(this,"TeamCommands")}async team(o=null,r=process.cwd(),e={}){if(o==="check")return this.check(r,e);try{let n={required:e.required===!0,minVersion:e.minVersion??q??"0.0.0",enrolledAt:new Date().toISOString(),enrolledBy:null},i=h.join(r,".prjct","team.json"),a=h.join(r,".claude","CLAUDE.md"),l=await this.ensureProjectInit(r);if(!l.success)return l;let m=await O.getProjectId(r);if(!m)return y("No prjct project. Run `prjct init` first.",e);E.set(m,n);try{await b(i,S(n))}catch(c){let T=k(c);await M.remember(r,{type:"inbox",content:`team.json mirror write failed: ${T}`,tags:{"mirror-drift":"1"},provenance:"declared"}).catch(()=>{})}await d.mkdir(h.dirname(a),{recursive:!0});let s=z(n),w=await d.readFile(a,"utf-8").catch(()=>""),u=G(w,s,N,L);await d.writeFile(a,u,"utf-8");let f=[i,a],R=await(async()=>{try{await j("git rev-parse --show-toplevel",{cwd:r});let c=e.enforce===!0?h.join(r,".githooks","pre-commit"):null;if(e.enforce===!0){if(!c)return!1;await d.mkdir(h.dirname(c),{recursive:!0}),await d.writeFile(c,U,"utf-8"),await d.chmod(c,493),await j("git config core.hooksPath .githooks",{cwd:r}),f.push(c)}return await j(`git add ${f.map(T=>JSON.stringify(T)).join(" ")}`,{cwd:r}),!0}catch{return!1}})(),_=e.enforce?" + pre-commit enforce":"",V=`${n.required?"\u2713 team mode (required)":"\u2713 team mode (optional)"}${_} \u2014 minVersion ${n.minVersion}`,B=R?`Staged: ${f.map(c=>c.replace(`${r}/`,"")).join(", ")}`:"Files written but not staged (no git repo or git missing).",I=["1. Review the diff: `git diff --staged`",'2. Commit: `git commit -m "chore: enroll repo in prjct team mode"`',"3. Push: `git push`","4. Teammates run `curl -sSL https://raw.githubusercontent.com/prjct-app/cli/main/scripts/install-standalone.sh | bash` (or `npm install -g prjct-cli@latest`).",...e.enforce?["5. **Each teammate** runs `git config core.hooksPath .githooks` once (or `prjct team --enforce` to do it automatically)."]:[]].join(`
9
9
  `);return e.md?console.log(D($("Team mode enrolled",V),$("Files",B),$("Next",I))):(g.done(V),console.log(B),console.log(`
10
10
  Next steps:`),console.log(I)),{success:!0,teamConfig:n,staged:R,teamPath:i,claudeMdPath:a}}catch(n){let i=k(n);return y(i)}}async check(o=process.cwd(),r={}){try{let e=await this.ensureProjectInit(o);if(!e.success)return e;let n=await O.getProjectId(o);if(!n)return y("No prjct project. Run `prjct init` first.",r);let i=h.join(o,".prjct","team.json"),a=E.get(n),l=await d.readFile(i,"utf-8").catch(()=>null);if(a===null&&l!==null){let s=(()=>{try{return JSON.parse(l)}catch{return null}})();if(s===null)return C(`cannot parse ${i} \u2014 fix or delete the file before running team check again`,r);let w={required:typeof s.required=="boolean"?s.required:!1,minVersion:typeof s.minVersion=="string"?s.minVersion:q??"0.0.0",enrolledAt:typeof s.enrolledAt=="string"?s.enrolledAt:new Date().toISOString(),enrolledBy:typeof s.enrolledBy=="string"?s.enrolledBy:null};E.set(n,w),await b(i,S(w));let u="\u2713 team check: migrated disk \u2192 DB; mirror rewritten";return r.md?console.log(`> ${u}`):g.done(u),{success:!0,healed:!0,migrated:!0}}if(a!==null){let s=A(a);if((l===null?null:K(l,a))===s){let f="\u2713 team check: mirror in sync";return r.md?console.log(`> ${f}`):g.done(f),{success:!0,healed:!1}}await b(i,S(a));let u="\u2713 team check: drift detected; mirror rewritten from DB";return r.md?console.log(`> ${u}`):g.done(u),{success:!0,healed:!0}}let m="\u2713 team check: no enrollment configured";return r.md?console.log(`> ${m}`):g.done(m),{success:!0,healed:!1,empty:!0}}catch(e){return y(k(e),r)}}};function K(t,o){let r=(()=>{try{return JSON.parse(t)}catch{return null}})();if(r===null)return null;let e=r,n={required:e.required===!0,minVersion:typeof e.minVersion=="string"?e.minVersion:"",enrolledAt:typeof e.enrolledAt=="string"?e.enrolledAt:"",enrolledBy:typeof e.enrolledBy=="string"?e.enrolledBy:o.enrolledBy};return A(n)}p(K,"canonicalizeDiskTeamJson");var U=`#!/usr/bin/env sh
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c,d,f as e}from"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";e();export{d as default,b as getTemplateContent,c as listTemplates,a as resetBundle};
7
+ import{a,b,c,d,f as e}from"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";e();export{d as default,b as getTemplateContent,c as listTemplates,a as resetBundle};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as $}from"./chunk-V5VCXMKO.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{b as R,c as E}from"./chunk-OYXQRBVM.mjs";import{F as f,G as I}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import{l as u,p as P}from"./chunk-HYIT7MF5.mjs";import{e as h,g as N}from"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";I();import s from"chalk";import{execFileSync as S}from"node:child_process";import m from"node:fs/promises";import _ from"node:os";import b from"node:path";import G from"node:readline";I();N();P();import{execFileSync as C}from"node:child_process";import y from"node:fs/promises";import d from"node:path";I();P();var w="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",g="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";async function D(t){try{let e=await y.readdir(t,{withFileTypes:!0});return(await Promise.all(e.map(async o=>{let r=d.join(t,o.name);if(o.isDirectory())return D(r);try{return(await y.stat(r)).size}catch{return 0}}))).reduce((o,r)=>o+r,0)}catch{return 0}}c(D,"getDirectorySize");function x(t){if(t===0)return"0 B";let e=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));return`${(t/1024**n).toFixed(1)} ${e[n]}`}c(x,"formatSize");async function v(t){try{return(await y.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).length}catch{return 0}}c(v,"countDirectoryItems");function T(){let t={homebrew:!1,npm:!1};try{C("brew",["list","prjct-cli"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]})&&(t.homebrew=!0,t.homebrewFormula="prjct-cli")}catch{}try{C("npm",["list","-g","prjct-cli","--depth=0"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).includes("prjct-cli")&&(t.npm=!0)}catch{}return t}c(T,"detectInstallation");async function k(){let t=[],e=E(),n=f.getGlobalBasePath(),o=await u(n),r=o?await v(d.join(n,"projects")):0,i=o?await D(n):0;t.push({path:n,type:"directory",description:`All project data${r>0?`, ${r} project${r>1?"s":""}`:""}`,size:i,count:r,exists:o});let l=d.join(e.claude.config,"CLAUDE.md");t.push({path:l,type:"section",description:"prjct section in CLAUDE.md",exists:await M(l)}),t.push({path:e.claude.router,type:"file",description:"Claude router",exists:await u(e.claude.router)});let p=d.join(e.claude.config,"prjct-statusline.sh");t.push({path:p,type:"file",description:"Status line script",exists:await u(p)}),t.push({path:e.gemini.router,type:"file",description:"Gemini router",exists:await u(e.gemini.router)});let a=d.join(e.gemini.config,"GEMINI.md");return await M(a)&&t.push({path:a,type:"section",description:"prjct section in GEMINI.md",exists:!0}),t}c(k,"gatherUninstallItems");async function M(t){if(!await u(t))return!1;try{let e=await y.readFile(t,"utf-8");return e.includes(w)&&e.includes(g)}catch{return!1}}c(M,"hasMarkerSection");async function U(t,e){await m.mkdir(e,{recursive:!0});let n=await m.readdir(t,{withFileTypes:!0});for(let o of n){let r=b.join(t,o.name),i=b.join(e,o.name);o.isDirectory()?await U(r,i):await m.copyFile(r,i)}}c(U,"copyDirectory");async function F(){let t=_.homedir(),e=new Date().toISOString().replace(/[:.]/g,"-").substring(0,19),n=b.join(t,`.prjct-backup-${e}`);try{await m.mkdir(n,{recursive:!0});let o=f.getGlobalBasePath();return await u(o)&&await U(o,b.join(n,".prjct-cli")),n}catch{return null}}c(F,"createBackup");async function K(t){try{let e=await m.readFile(t,"utf-8");if(!e.includes(w)||!e.includes(g))return!1;let n=e.indexOf(w),o=e.indexOf(g)+g.length,r=(e.substring(0,n)+e.substring(o)).replace(/\n{3,}/g,`
7
+ import{a as $}from"./chunk-5DZ2LTII.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{b as R,c as E}from"./chunk-IJNKHQIS.mjs";import{F as f,G as I}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import{l as u,p as P}from"./chunk-HYIT7MF5.mjs";import{e as h,g as N}from"./chunk-225DWS4D.mjs";import{a as c}from"./chunk-3TRXQAU4.mjs";I();import s from"chalk";import{execFileSync as S}from"node:child_process";import m from"node:fs/promises";import _ from"node:os";import b from"node:path";import G from"node:readline";I();N();P();import{execFileSync as C}from"node:child_process";import y from"node:fs/promises";import d from"node:path";I();P();var w="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",g="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";async function D(t){try{let e=await y.readdir(t,{withFileTypes:!0});return(await Promise.all(e.map(async o=>{let r=d.join(t,o.name);if(o.isDirectory())return D(r);try{return(await y.stat(r)).size}catch{return 0}}))).reduce((o,r)=>o+r,0)}catch{return 0}}c(D,"getDirectorySize");function x(t){if(t===0)return"0 B";let e=["B","KB","MB","GB"],n=Math.floor(Math.log(t)/Math.log(1024));return`${(t/1024**n).toFixed(1)} ${e[n]}`}c(x,"formatSize");async function v(t){try{return(await y.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).length}catch{return 0}}c(v,"countDirectoryItems");function T(){let t={homebrew:!1,npm:!1};try{C("brew",["list","prjct-cli"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]})&&(t.homebrew=!0,t.homebrewFormula="prjct-cli")}catch{}try{C("npm",["list","-g","prjct-cli","--depth=0"],{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).includes("prjct-cli")&&(t.npm=!0)}catch{}return t}c(T,"detectInstallation");async function k(){let t=[],e=E(),n=f.getGlobalBasePath(),o=await u(n),r=o?await v(d.join(n,"projects")):0,i=o?await D(n):0;t.push({path:n,type:"directory",description:`All project data${r>0?`, ${r} project${r>1?"s":""}`:""}`,size:i,count:r,exists:o});let l=d.join(e.claude.config,"CLAUDE.md");t.push({path:l,type:"section",description:"prjct section in CLAUDE.md",exists:await M(l)}),t.push({path:e.claude.router,type:"file",description:"Claude router",exists:await u(e.claude.router)});let p=d.join(e.claude.config,"prjct-statusline.sh");t.push({path:p,type:"file",description:"Status line script",exists:await u(p)}),t.push({path:e.gemini.router,type:"file",description:"Gemini router",exists:await u(e.gemini.router)});let a=d.join(e.gemini.config,"GEMINI.md");return await M(a)&&t.push({path:a,type:"section",description:"prjct section in GEMINI.md",exists:!0}),t}c(k,"gatherUninstallItems");async function M(t){if(!await u(t))return!1;try{let e=await y.readFile(t,"utf-8");return e.includes(w)&&e.includes(g)}catch{return!1}}c(M,"hasMarkerSection");async function U(t,e){await m.mkdir(e,{recursive:!0});let n=await m.readdir(t,{withFileTypes:!0});for(let o of n){let r=b.join(t,o.name),i=b.join(e,o.name);o.isDirectory()?await U(r,i):await m.copyFile(r,i)}}c(U,"copyDirectory");async function F(){let t=_.homedir(),e=new Date().toISOString().replace(/[:.]/g,"-").substring(0,19),n=b.join(t,`.prjct-backup-${e}`);try{await m.mkdir(n,{recursive:!0});let o=f.getGlobalBasePath();return await u(o)&&await U(o,b.join(n,".prjct-cli")),n}catch{return null}}c(F,"createBackup");async function K(t){try{let e=await m.readFile(t,"utf-8");if(!e.includes(w)||!e.includes(g))return!1;let n=e.indexOf(w),o=e.indexOf(g)+g.length,r=(e.substring(0,n)+e.substring(o)).replace(/\n{3,}/g,`
8
8
 
9
9
  `).trim();return!r||r.trim().length===0?await m.unlink(t):await m.writeFile(t,`${r}
10
10
  `,"utf-8"),!0}catch{return!1}}c(K,"removePrjctSection");async function O(t,e,n){let o=[],r=[];for(let i of t)if(i.exists)try{i.type==="section"?await K(i.path)&&o.push(i.path):i.type==="directory"?(await m.rm(i.path,{recursive:!0,force:!0}),o.push(i.path)):i.type==="file"&&(await m.unlink(i.path),o.push(i.path))}catch(l){r.push(`${i.path}: ${h(l)}`)}try{await new R().cleanupLegacyCommands()}catch{}if(!n.keepPackage){if(e.homebrew&&e.homebrewFormula)try{n.dryRun||S("brew",["uninstall",e.homebrewFormula],{stdio:"pipe"}),o.push("Homebrew: prjct-cli")}catch(i){r.push(`Homebrew: ${h(i)}`)}if(e.npm)try{n.dryRun||S("npm",["uninstall","-g","prjct-cli"],{stdio:"pipe"}),o.push("npm: prjct-cli")}catch(i){r.push(`npm: ${h(i)}`)}}return{deleted:o,errors:r}}c(O,"performUninstall");async function z(t){let e=G.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{e.question(t,o=>{e.close(),n(o.toLowerCase()==="uninstall")})})}c(z,"promptConfirmation");async function L(t={},e=process.cwd()){let n=await k(),o=T(),r=n.filter(a=>a.exists);if(r.length===0&&!o.homebrew&&!o.npm)return console.log(s.yellow(`
@@ -4,8 +4,8 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as E,b as I,c as M,d as S,e as $,f as P,g as A,m as N}from"./chunk-HEXSVBUP.mjs";import{a as O}from"./chunk-3JD6KRNJ.mjs";import{a as D}from"./chunk-V5VCXMKO.mjs";import{f as v}from"./chunk-FOWTB762.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as m}from"./chunk-ID2C2S33.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{a as k}from"./chunk-GGGDYL4P.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{b as R}from"./chunk-OYXQRBVM.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as h,g as B}from"./chunk-225DWS4D.mjs";import{a as b,b as L}from"./chunk-3TRXQAU4.mjs";import{execFileSync as G}from"node:child_process";import U from"node:fs/promises";import W from"node:path";B();import w from"chalk";function x(u,l){let e=u.phase1.success&&u.phase2.success,a=[...u.phase1.errors,...u.phase2.errors];console.log("");let s=[{label:"Package",result:u.phase1,fatal:!0},{label:"Cleanup",result:u.phase2,fatal:!0},{label:"Daemon",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?w.green("\u2713"):c?w.red("\u2717"):w.yellow("\u26A0");console.log(` ${i} ${w.bold(r)}`);for(let o of t.details)console.log(` ${w.dim(o)}`);for(let o of t.warnings??[])console.log(` ${w.yellow("\u26A0")} ${o}`);for(let o of t.errors)console.log(` ${w.yellow("\u26A0")} ${o}`)}return console.log(""),l?m.done("Dry run complete \u2014 no changes made"):e?m.done("System updated"):m.warn(`Updated with ${a.length} error(s)`),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(x,"formatTerminalOutput");function T(u,l){let e=u.phase1.success&&u.phase2.success,a=[];a.push(l?"# Update (Dry Run)":"# System Update"),a.push("");let s=[{label:"Package Update",result:u.phase1,fatal:!0},{label:"Global Cleanup",result:u.phase2,fatal:!0},{label:"Daemon Restart",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?"OK":c?"FAILED":"WARNING";a.push(`## ${r} (${i})`);for(let o of t.details)a.push(`- ${o}`);for(let o of t.warnings??[])a.push(`- WARNING: ${o}`);for(let o of t.errors)a.push(`- WARNING: ${o}`);a.push("")}return l||a.push(e?"**Status:** All phases completed successfully.":"**Status:** Completed with errors."),console.log(a.join(`
8
- `)),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(T,"formatMdOutput");var H=class extends D{static{b(this,"UpdateCommands")}async update(l={},e=process.cwd()){let a=l["dry-run"]===!0,s=l.md===!0,r=l.cleanup===!1?"off":l.cleanup===!0?"force":"auto",t=l.yes===!0||l.y===!0,c={phase1:{success:!0,details:[],errors:[],warnings:[]},phase2:{success:!0,details:[],errors:[],warnings:[]},phase3:{success:!0,details:[],errors:[],warnings:[]}};try{if(!a)try{let{isDaemonRunning:i,stopDaemon:o,forceKillDaemon:f}=await import("./client-D43KKUYH.mjs");await i()&&(await o()||f())}catch{}if(s||m.step(1,3,"Updating package..."),c.phase1=await this.phasePackageUpdate(a),s||m.stop(),!a&&c.phase1.success&&A(),s||m.step(2,3,"Cleaning up all projects..."),c.phase2=await this.phaseGlobalCleanup(a,r,t),s||m.stop(),s||m.step(3,3,"Restarting daemon..."),c.phase3=await this.phaseDaemonRestart(a),s||m.stop(),!a){try{let i=P()[0]?.version;i&&await k.updateVersion(i)}catch{}try{await new O().writeCache({lastCheck:0,latestVersion:""})}catch{}}return s?T(c,a):x(c,a)}catch(i){return s||m.stop(),m.fail(h(i)),v(i)}}async phasePackageUpdate(l){let e={success:!0,details:[],errors:[],warnings:[]},a=P();if(l){if(M()){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push("Would uninstall homebrew formula"),e.details.push(`Would install via ${r}`)}else if(a.length===0){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push(`Would install via ${r}`)}else for(let{pm:r,version:t}of a)e.details.push(`Would reinstall via ${r.name} (currently v${t})`);return e}try{if(M())try{G("brew",["uninstall","prjct-cli"],{stdio:["pipe","pipe","ignore"]}),e.details.push("Uninstalled homebrew formula")}catch{e.details.push("Homebrew uninstall skipped (not found)")}let r=a.length>0?a.map(n=>n.pm):[$()],t=await new O().getLatestVersion().then(n=>n?.trim()??null).catch(n=>(e.errors.push(`npm registry unreachable \u2014 refuse to install from local tree: ${h(n)}`),null)),c=t&&/^\d+\.\d+\.\d+/.test(t)?`prjct-cli@${t}`:null;if(!c||!t)return e.success=!1,e.errors.push("npm registry did not return a valid prjct-cli version"),e;e.details.push(`registry.npmjs.org latest = ${t}`);let i=E();for(let n of r){if(!S(n.name)){e.errors.push(`${n.name} is not on PATH but has a prjct-cli install. Either install ${n.name} or remove that copy.`);continue}try{let p=I(n,c);G(n.name,p,{stdio:"pipe",cwd:i}),e.details.push(`${n.name} install complete (${c} from npm registry)`)}catch(p){e.errors.push(`${n.name}: ${h(p)}`)}}let o=P(),f=new Map(a.map(n=>[n.pm.name,n.version])),d=[];for(let{pm:n,version:p}of o){let y=f.get(n.name);y&&y!==p?d.push(`${n.name}: ${y} \u2192 ${p}`):y?d.push(`${n.name}: v${p} (matches registry)`):d.push(`${n.name}: installed v${p}`),p!==t&&e.errors.push(`${n.name} install is v${p} but registry latest is ${t} \u2014 global install did not apply npm package (check PATH / npm root -g)`)}for(let n of d)e.details.push(n);o.length===0&&e.errors.push("No global prjct-cli install found after registry install"),e.errors.length>0&&(e.success=!1)}catch(s){e.success=!1,e.errors.push(h(s))}return e}async phaseGlobalCleanup(l,e="auto",a=!1){let s={success:!0,details:[],errors:[],warnings:[]};if(l)s.details.push("Would clean all legacy artifacts"),s.details.push("Would reinstall editor commands"),s.details.push("Would reinstall global config (all providers)");else{try{let t=await new R().cleanupAllLegacy();t.cleaned.length>0&&s.details.push(`Cleaned ${t.cleaned.length} legacy artifact(s)`)}catch(r){s.errors.push(`Legacy cleanup: ${h(r)}`)}try{let t=await new R().installCommands();s.details.push(`Editor commands reinstalled (${t.installed?.length||0} providers)`)}catch(r){s.errors.push(`Commands: ${h(r)}`)}try{await new R().installGlobalConfig(),s.details.push("Global config updated (prjct section replaced)")}catch(r){s.errors.push(`Global config: ${h(r)}`)}try{let{detectAllProviders:r}=await import("./ai-provider-RVXK7D7R.mjs"),t=await r(),c=W.join(L("node:os").homedir());if(t.gemini.installed){let i=W.join(c,".gemini","GEMINI.md");try{let o=await U.readFile(i,"utf-8"),f="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",d="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";if(o.includes(f)&&o.includes(d)){let{getTemplateContent:n}=await import("./template-loader-33OVJ4G5.mjs"),p=n("global/GEMINI.md");if(p?.includes(f)&&p.includes(d)){let y=p.substring(p.indexOf(f),p.indexOf(d)+d.length),V=o.substring(0,o.indexOf(f)),K=o.substring(o.indexOf(d)+d.length),j="<!-- prjct-project:start - DO NOT REMOVE THIS MARKER -->",C="<!-- prjct-project:end - DO NOT REMOVE THIS MARKER -->",g=V+y+K,F=g.includes(j)&&g.includes(C)?`${(g.substring(0,g.indexOf(j))+g.substring(g.indexOf(C)+C.length)).replace(/\n{3,}/g,`
7
+ import{a as E,b as I,c as M,d as S,e as $,f as P,g as A,m as N}from"./chunk-OGM34Z6W.mjs";import{a as O}from"./chunk-VJCTTFKP.mjs";import{a as D}from"./chunk-5DZ2LTII.mjs";import{f as v}from"./chunk-FOWTB762.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as m}from"./chunk-ID2C2S33.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import{a as k}from"./chunk-GGGDYL4P.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import{b as R}from"./chunk-IJNKHQIS.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as h,g as B}from"./chunk-225DWS4D.mjs";import{a as b,b as L}from"./chunk-3TRXQAU4.mjs";import{execFileSync as G}from"node:child_process";import U from"node:fs/promises";import W from"node:path";B();import w from"chalk";function x(u,l){let e=u.phase1.success&&u.phase2.success,a=[...u.phase1.errors,...u.phase2.errors];console.log("");let s=[{label:"Package",result:u.phase1,fatal:!0},{label:"Cleanup",result:u.phase2,fatal:!0},{label:"Daemon",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?w.green("\u2713"):c?w.red("\u2717"):w.yellow("\u26A0");console.log(` ${i} ${w.bold(r)}`);for(let o of t.details)console.log(` ${w.dim(o)}`);for(let o of t.warnings??[])console.log(` ${w.yellow("\u26A0")} ${o}`);for(let o of t.errors)console.log(` ${w.yellow("\u26A0")} ${o}`)}return console.log(""),l?m.done("Dry run complete \u2014 no changes made"):e?m.done("System updated"):m.warn(`Updated with ${a.length} error(s)`),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(x,"formatTerminalOutput");function T(u,l){let e=u.phase1.success&&u.phase2.success,a=[];a.push(l?"# Update (Dry Run)":"# System Update"),a.push("");let s=[{label:"Package Update",result:u.phase1,fatal:!0},{label:"Global Cleanup",result:u.phase2,fatal:!0},{label:"Daemon Restart",result:u.phase3,fatal:!1}];for(let{label:r,result:t,fatal:c}of s){let i=t.success?"OK":c?"FAILED":"WARNING";a.push(`## ${r} (${i})`);for(let o of t.details)a.push(`- ${o}`);for(let o of t.warnings??[])a.push(`- WARNING: ${o}`);for(let o of t.errors)a.push(`- WARNING: ${o}`);a.push("")}return l||a.push(e?"**Status:** All phases completed successfully.":"**Status:** Completed with errors."),console.log(a.join(`
8
+ `)),{success:e,message:l?"Dry run complete":e?"System updated":"Updated with errors"}}b(T,"formatMdOutput");var H=class extends D{static{b(this,"UpdateCommands")}async update(l={},e=process.cwd()){let a=l["dry-run"]===!0,s=l.md===!0,r=l.cleanup===!1?"off":l.cleanup===!0?"force":"auto",t=l.yes===!0||l.y===!0,c={phase1:{success:!0,details:[],errors:[],warnings:[]},phase2:{success:!0,details:[],errors:[],warnings:[]},phase3:{success:!0,details:[],errors:[],warnings:[]}};try{if(!a)try{let{isDaemonRunning:i,stopDaemon:o,forceKillDaemon:f}=await import("./client-D43KKUYH.mjs");await i()&&(await o()||f())}catch{}if(s||m.step(1,3,"Updating package..."),c.phase1=await this.phasePackageUpdate(a),s||m.stop(),!a&&c.phase1.success&&A(),s||m.step(2,3,"Cleaning up all projects..."),c.phase2=await this.phaseGlobalCleanup(a,r,t),s||m.stop(),s||m.step(3,3,"Restarting daemon..."),c.phase3=await this.phaseDaemonRestart(a),s||m.stop(),!a){try{let i=P()[0]?.version;i&&await k.updateVersion(i)}catch{}try{await new O().writeCache({lastCheck:0,latestVersion:""})}catch{}}return s?T(c,a):x(c,a)}catch(i){return s||m.stop(),m.fail(h(i)),v(i)}}async phasePackageUpdate(l){let e={success:!0,details:[],errors:[],warnings:[]},a=P();if(l){if(M()){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push("Would uninstall homebrew formula"),e.details.push(`Would install via ${r}`)}else if(a.length===0){let r=(()=>{try{return $().name}catch(t){return e.errors.push(h(t)),"<none-available>"}})();e.details.push(`Would install via ${r}`)}else for(let{pm:r,version:t}of a)e.details.push(`Would reinstall via ${r.name} (currently v${t})`);return e}try{if(M())try{G("brew",["uninstall","prjct-cli"],{stdio:["pipe","pipe","ignore"]}),e.details.push("Uninstalled homebrew formula")}catch{e.details.push("Homebrew uninstall skipped (not found)")}let r=a.length>0?a.map(n=>n.pm):[$()],t=await new O().getLatestVersion().then(n=>n?.trim()??null).catch(n=>(e.errors.push(`npm registry unreachable \u2014 refuse to install from local tree: ${h(n)}`),null)),c=t&&/^\d+\.\d+\.\d+/.test(t)?`prjct-cli@${t}`:null;if(!c||!t)return e.success=!1,e.errors.push("npm registry did not return a valid prjct-cli version"),e;e.details.push(`registry.npmjs.org latest = ${t}`);let i=E();for(let n of r){if(!S(n.name)){e.errors.push(`${n.name} is not on PATH but has a prjct-cli install. Either install ${n.name} or remove that copy.`);continue}try{let p=I(n,c);G(n.name,p,{stdio:"pipe",cwd:i}),e.details.push(`${n.name} install complete (${c} from npm registry)`)}catch(p){e.errors.push(`${n.name}: ${h(p)}`)}}let o=P(),f=new Map(a.map(n=>[n.pm.name,n.version])),d=[];for(let{pm:n,version:p}of o){let y=f.get(n.name);y&&y!==p?d.push(`${n.name}: ${y} \u2192 ${p}`):y?d.push(`${n.name}: v${p} (matches registry)`):d.push(`${n.name}: installed v${p}`),p!==t&&e.errors.push(`${n.name} install is v${p} but registry latest is ${t} \u2014 global install did not apply npm package (check PATH / npm root -g)`)}for(let n of d)e.details.push(n);o.length===0&&e.errors.push("No global prjct-cli install found after registry install"),e.errors.length>0&&(e.success=!1)}catch(s){e.success=!1,e.errors.push(h(s))}return e}async phaseGlobalCleanup(l,e="auto",a=!1){let s={success:!0,details:[],errors:[],warnings:[]};if(l)s.details.push("Would clean all legacy artifacts"),s.details.push("Would reinstall editor commands"),s.details.push("Would reinstall global config (all providers)");else{try{let t=await new R().cleanupAllLegacy();t.cleaned.length>0&&s.details.push(`Cleaned ${t.cleaned.length} legacy artifact(s)`)}catch(r){s.errors.push(`Legacy cleanup: ${h(r)}`)}try{let t=await new R().installCommands();s.details.push(`Editor commands reinstalled (${t.installed?.length||0} providers)`)}catch(r){s.errors.push(`Commands: ${h(r)}`)}try{await new R().installGlobalConfig(),s.details.push("Global config updated (prjct section replaced)")}catch(r){s.errors.push(`Global config: ${h(r)}`)}try{let{detectAllProviders:r}=await import("./ai-provider-RVXK7D7R.mjs"),t=await r(),c=W.join(L("node:os").homedir());if(t.gemini.installed){let i=W.join(c,".gemini","GEMINI.md");try{let o=await U.readFile(i,"utf-8"),f="<!-- prjct:start - DO NOT REMOVE THIS MARKER -->",d="<!-- prjct:end - DO NOT REMOVE THIS MARKER -->";if(o.includes(f)&&o.includes(d)){let{getTemplateContent:n}=await import("./template-loader-H4FE37HV.mjs"),p=n("global/GEMINI.md");if(p?.includes(f)&&p.includes(d)){let y=p.substring(p.indexOf(f),p.indexOf(d)+d.length),V=o.substring(0,o.indexOf(f)),K=o.substring(o.indexOf(d)+d.length),j="<!-- prjct-project:start - DO NOT REMOVE THIS MARKER -->",C="<!-- prjct-project:end - DO NOT REMOVE THIS MARKER -->",g=V+y+K,F=g.includes(j)&&g.includes(C)?`${(g.substring(0,g.indexOf(j))+g.substring(g.indexOf(C)+C.length)).replace(/\n{3,}/g,`
9
9
 
10
10
  `).trim()}
11
11
  `:g;await U.writeFile(i,F,"utf-8"),s.details.push("Gemini global config updated")}}}catch{}}}catch{}}try{let r=await N(e,l,a);s.details.push(...r.details),s.errors.push(...r.errors)}catch(r){s.errors.push(`install consolidation skipped: ${h(r)}`)}return s.errors.length>0&&(s.success=!1),s}async phaseDaemonRestart(l){let e={success:!0,details:[],errors:[],warnings:[]};if(l)return e.details.push("Would restart daemon"),e;try{let{isDaemonRunning:a,forceRestartDaemon:s}=await import("./client-D43KKUYH.mjs"),r=await a();e.details.push(r?"Daemon stopped":"No running daemon (cleaned stale files)");let t=await s();e.details.push(t?"Daemon restarted":"Daemon will start automatically on next use")}catch(a){e.success=!1,e.errors.push(h(a))}return e}};export{H as UpdateCommands};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c}from"./chunk-3JD6KRNJ.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as default,b as getUpdateNotificationSync,c as triggerBackgroundRefreshIfStale};
7
+ import{a,b,c}from"./chunk-VJCTTFKP.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as default,b as getUpdateNotificationSync,c as triggerBackgroundRefreshIfStale};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c,d,e,g as f}from"./chunk-TTN2CFZC.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";f();export{e as PACKAGE_ROOT,d as VERSION,a as getPackageRoot,b as getVersion,c as resetPackageRoot};
7
+ import{a,b,c,d,e,g as f}from"./chunk-XWLTEAGN.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";f();export{e as PACKAGE_ROOT,d as VERSION,a as getPackageRoot,b as getVersion,c as resetPackageRoot};
@@ -4,6 +4,6 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{f as l}from"./chunk-TGNZI4KF.mjs";import"./chunk-Y7XOKG4O.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-IVGWOY3U.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-P2KU4FFA.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-IFLBZKKK.mjs";import"./chunk-ZKJZDOPT.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-R7LLMJDP.mjs";import"./chunk-CNWEQUB7.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-X4FR5S7E.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as c}from"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-XSZG3CBO.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-DN46DLU3.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-OYXQRBVM.mjs";import{e as a,l as p}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-XYDLXF5A.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-GDLAQV3Q.mjs";import"./chunk-UT425KVX.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as r,g as h}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";import d from"node:path";import t from"chalk";import g from"chokidar";h();p();var u=["package.json","package-lock.json","bun.lockb","pnpm-lock.yaml","yarn.lock","tsconfig.json","tsconfig.*.json",".env",".env.*","Cargo.toml","go.mod","pyproject.toml","requirements.txt","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","lib/**/*.ts","core/**/*.ts","app/**/*.ts","app/**/*.tsx","pages/**/*.ts","pages/**/*.tsx"],m=["**/node_modules/**","**/.git/**","**/dist/**","**/build/**","**/.next/**","**/.nuxt/**","**/coverage/**","**/*.log","**/*.tmp","**/CLAUDE.md","**/.cursorrules","**/.prjct/**","**/.prjct-cli/**"],n=class{static{o(this,"WatchService")}watcher=null;projectPath="";projectId=null;debounceTimer=null;lastSyncTime=0;pendingChanges=new Set;options={debounceMs:2e3,minIntervalMs:3e4,verbose:!1,quiet:!1};isRunning=!1;syncCount=0;sigintHandler=null;sigtermHandler=null;async start(s=process.cwd(),i={}){return this.projectPath=s,this.options={...this.options,...i},this.projectId=await c.getProjectId(s),this.projectId?this.isRunning?{success:!1,error:"Watch mode is already running"}:(this.isRunning=!0,this.options.quiet||this.printStartup(),this.watcher=g.watch(u,{cwd:this.projectPath,ignored:m,persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:500,pollInterval:100}}),this.watcher.on("add",e=>this.handleChange("add",e)).on("change",e=>this.handleChange("change",e)).on("unlink",e=>this.handleChange("unlink",e)).on("error",e=>this.handleError(e)),this.sigintHandler&&process.off("SIGINT",this.sigintHandler),this.sigtermHandler&&process.off("SIGTERM",this.sigtermHandler),this.sigintHandler=()=>this.stop(),this.sigtermHandler=()=>this.stop(),process.on("SIGINT",this.sigintHandler),process.on("SIGTERM",this.sigtermHandler),{success:!0}):{success:!1,error:'No prjct project. Run "prjct init" first.'}}async stop(){this.options.quiet||(console.log(""),console.log(t.dim(`
7
+ import{f as l}from"./chunk-STFUT7R7.mjs";import"./chunk-Y7XOKG4O.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-ANBDOI53.mjs";import"./chunk-JT4RNQ67.mjs";import"./chunk-VCSESVZ4.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-P2KU4FFA.mjs";import"./chunk-MG3YN3AI.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-LTKUTRRL.mjs";import"./chunk-HA7Y76GF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-2VRS5CUH.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-UNNY2IWZ.mjs";import{b as c}from"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-DTMZBK4E.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-2FRLIQKX.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-IJNKHQIS.mjs";import{e as a,l as p}from"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import{e as r,g as h}from"./chunk-225DWS4D.mjs";import{a as o}from"./chunk-3TRXQAU4.mjs";import d from"node:path";import t from"chalk";import g from"chokidar";h();p();var u=["package.json","package-lock.json","bun.lockb","pnpm-lock.yaml","yarn.lock","tsconfig.json","tsconfig.*.json",".env",".env.*","Cargo.toml","go.mod","pyproject.toml","requirements.txt","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","lib/**/*.ts","core/**/*.ts","app/**/*.ts","app/**/*.tsx","pages/**/*.ts","pages/**/*.tsx"],m=["**/node_modules/**","**/.git/**","**/dist/**","**/build/**","**/.next/**","**/.nuxt/**","**/coverage/**","**/*.log","**/*.tmp","**/CLAUDE.md","**/.cursorrules","**/.prjct/**","**/.prjct-cli/**"],n=class{static{o(this,"WatchService")}watcher=null;projectPath="";projectId=null;debounceTimer=null;lastSyncTime=0;pendingChanges=new Set;options={debounceMs:2e3,minIntervalMs:3e4,verbose:!1,quiet:!1};isRunning=!1;syncCount=0;sigintHandler=null;sigtermHandler=null;async start(s=process.cwd(),i={}){return this.projectPath=s,this.options={...this.options,...i},this.projectId=await c.getProjectId(s),this.projectId?this.isRunning?{success:!1,error:"Watch mode is already running"}:(this.isRunning=!0,this.options.quiet||this.printStartup(),this.watcher=g.watch(u,{cwd:this.projectPath,ignored:m,persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:500,pollInterval:100}}),this.watcher.on("add",e=>this.handleChange("add",e)).on("change",e=>this.handleChange("change",e)).on("unlink",e=>this.handleChange("unlink",e)).on("error",e=>this.handleError(e)),this.sigintHandler&&process.off("SIGINT",this.sigintHandler),this.sigtermHandler&&process.off("SIGTERM",this.sigtermHandler),this.sigintHandler=()=>this.stop(),this.sigtermHandler=()=>this.stop(),process.on("SIGINT",this.sigintHandler),process.on("SIGTERM",this.sigtermHandler),{success:!0}):{success:!1,error:'No prjct project. Run "prjct init" first.'}}async stop(){this.options.quiet||(console.log(""),console.log(t.dim(`
8
8
  \u{1F44B} Stopped watching (${this.syncCount} syncs performed)`))),this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.watcher&&(await this.watcher.close(),this.watcher=null),this.sigintHandler&&(process.off("SIGINT",this.sigintHandler),this.sigintHandler=null),this.sigtermHandler&&(process.off("SIGTERM",this.sigtermHandler),this.sigtermHandler=null),this.pendingChanges.clear(),this.isRunning=!1,process.env.PRJCT_IN_DAEMON!=="1"&&process.exit(0)}handleChange(s,i){if(this.pendingChanges.add(i),this.options.verbose&&!this.options.quiet){let e=s==="add"?"\u2795":s==="unlink"?"\u2796":"\u{1F4DD}";console.log(t.dim(` ${e} ${i}`))}this.scheduleSyncIfNeeded()}scheduleSyncIfNeeded(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(async()=>{let i=Date.now()-this.lastSyncTime;if(i<this.options.minIntervalMs&&this.lastSyncTime>0){let e=this.options.minIntervalMs-i;this.options.verbose&&!this.options.quiet&&console.log(t.dim(` \u23F3 Rate limited, waiting ${Math.round(e/1e3)}s...`)),this.debounceTimer=setTimeout(()=>this.performSync(),e);return}await this.performSync()},this.options.debounceMs)}async performSync(){let s=Array.from(this.pendingChanges);if(this.pendingChanges.clear(),s.length===0)return;let i=a().split("T")[1].split(".")[0];if(!this.options.quiet){let e=s.length===1?s[0]:`${s.length} files`;console.log(`
9
9
  ${t.dim(`[${i}]`)} ${t.cyan("\u27F3")} ${e} changed \u2192 syncing...`)}try{let e=await l.sync(this.projectPath,{changedFiles:s});this.lastSyncTime=Date.now(),this.syncCount++,e.success?this.options.quiet||console.log(`${t.dim(`[${i}]`)} ${t.green("\u2713")} Synced`):console.error(`${t.dim(`[${i}]`)} ${t.red("\u2717")} Sync failed: ${e.error}`)}catch(e){console.error(`${t.dim(`[${i}]`)} ${t.red("\u2717")} Error: ${r(e)}`)}}handleError(s){console.error(t.red(`Watch error: ${s.message}`))}printStartup(){console.log(""),console.log(t.cyan("\u{1F441}\uFE0F Watching for changes...")),console.log(t.dim(` Project: ${d.basename(this.projectPath)}`)),console.log(t.dim(` Debounce: ${this.options.debounceMs}ms`)),console.log(t.dim(` Min interval: ${this.options.minIntervalMs/1e3}s`)),console.log(""),console.log(t.dim(" Press Ctrl+C to stop")),console.log("")}},$=new n;export{n as WatchService,$ as watchService};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'module';
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __pathDirname(__filename);
7
+ import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h}from"./chunk-W23JLJJZ.mjs";import"./chunk-MR5XXHRK.mjs";import"./chunk-SRJEX6XF.mjs";import"./chunk-XBR63NJA.mjs";import"./chunk-EFSPBB4S.mjs";import"./chunk-7ZHWJSW5.mjs";import"./chunk-FOUBHU4X.mjs";import"./chunk-YOWW4LHK.mjs";import"./chunk-5OWPZWEU.mjs";import"./chunk-SLYLGDX7.mjs";import"./chunk-JGGQSMZC.mjs";import"./chunk-BTSHD3XJ.mjs";import"./chunk-CXNVDJNN.mjs";import"./chunk-ROOCBUKH.mjs";import"./chunk-UX2ORID4.mjs";import"./chunk-3OWKIRK6.mjs";import"./chunk-C35JQUWD.mjs";import"./chunk-V6L5PLD7.mjs";import"./chunk-U55OPVYR.mjs";import"./chunk-JCWA7NLM.mjs";import"./chunk-CFD6CW7T.mjs";import"./chunk-GTG67Z45.mjs";import"./chunk-4MR5XSLO.mjs";import"./chunk-LGX2GM45.mjs";import"./chunk-ZAUJWUUN.mjs";import"./chunk-V7VA4EQX.mjs";import"./chunk-YJOC2JJK.mjs";import"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-CA2VFWFP.mjs";import"./chunk-ESB4ALH2.mjs";import"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-ZBBNCCGV.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-YPLFWN62.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-HYMJVHAX.mjs";import"./chunk-4T7NGLNQ.mjs";import"./chunk-MXJKULJY.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-UHXV7MDW.mjs";import"./chunk-MPU3VM6Z.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-QWRPJARA.mjs";import"./chunk-ACIOJQSI.mjs";import"./chunk-YOGI4WE6.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-F2FKQUYE.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-YLYAYRSJ.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-JPMUJY42.mjs";import"./chunk-O5VCBMEK.mjs";import"./chunk-DZDEBDAB.mjs";import"./chunk-LFOQ7FCR.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-5TGZSK4C.mjs";import"./chunk-WTDUJB4I.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-HVXWQ2XZ.mjs";import"./chunk-PIA26GWG.mjs";import"./chunk-RP7F67ZT.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-OE27RFLJ.mjs";import"./chunk-FATYLG3L.mjs";import"./chunk-2EEMQV7N.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-5ZBACKED.mjs";import"./chunk-DW4QMD6J.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{a as DELTA_MIN_HARNESS_RATE,b as DELTA_MIN_INTENT_PP,g as buildDemoRows,e as computeHarnessDelta,h as formatDemoMarkdown,f as renderHarnessDeltaMd,c as routeIntent,d as routeIntentBare};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c,d,e}from"./chunk-DCVPNFS4.mjs";import"./chunk-MDONTD7O.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as conflictModeWithWeakModel,a as effectiveWeakModelMode,c as qualityFloorWithWeakModel,d as weakModelBanner,e as weakModelOneLiner};
7
+ import{a,b,c,d,e}from"./chunk-WCTVZQBG.mjs";import"./chunk-CA2VFWFP.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{b as conflictModeWithWeakModel,a as effectiveWeakModelMode,c as qualityFloorWithWeakModel,d as weakModelBanner,e as weakModelOneLiner};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a as b}from"./chunk-ZHTYSYZC.mjs";import{a as R,b as C}from"./chunk-PPERWRFS.mjs";import"./chunk-XC6YAP36.mjs";import"./chunk-J7T5IEFJ.mjs";import"./chunk-VRFYDYQY.mjs";import{d as j}from"./chunk-6XTLPAPZ.mjs";import"./chunk-L5LFLI4R.mjs";import{a as u}from"./chunk-24EN5Y62.mjs";import"./chunk-AS3LWTQ4.mjs";import{b as p}from"./chunk-KIRU4QFX.mjs";import{b as w}from"./chunk-7QMBIMEX.mjs";import"./chunk-VDXTMAMO.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as x}from"./chunk-V5VCXMKO.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-7CI4AMVO.mjs";import"./chunk-ESB4ALH2.mjs";import{c as P}from"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-6AFXUX2M.mjs";import"./chunk-WSVMQYYU.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import{a as k}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as v}from"./chunk-3TRXQAU4.mjs";var E=["blocks","parent","related","discovered-from"],_=class extends x{static{v(this,"WorkGraphCommands")}async ready(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=u.ready(t.value),e=b(t.value,o);if(e.length===0){let n="Nothing ready \u2014 the backlog is empty or fully blocked. `prjct phases --md` shows why.";return s.md?console.log(`> ${n}`):i.info(n),{success:!0,ready:0}}if(s.md){let n=[`# Ready frontier \u2014 ${e.length} unblocked item(s) (impact-ranked)`,"","| Id | Item | Priority | Unblocks | Score | Claimed |","|---|---|---|---:|---:|---|"];for(let r of e)n.push(`| \`${r.id.slice(0,8)}\` | ${r.description.slice(0,80)} | ${r.priority??"-"} | ${r.unblocks} | ${Math.round(r.impactScore)} | ${r.claimedBy??"\u2014"} |`);n.push("",`Top rationale: ${e[0]?.why??"\u2014"}`,"","Claim before working: `prjct claim <id>`. Full id via `prjct sync --md`."),console.log(n.join(`
7
+ import{a as b}from"./chunk-XBR63NJA.mjs";import{a as R,b as C}from"./chunk-UNIBFM6J.mjs";import"./chunk-XC6YAP36.mjs";import"./chunk-6U3MV7KZ.mjs";import"./chunk-VRFYDYQY.mjs";import{d as j}from"./chunk-6XTLPAPZ.mjs";import"./chunk-L5LFLI4R.mjs";import{a as u}from"./chunk-24EN5Y62.mjs";import"./chunk-AS3LWTQ4.mjs";import{b as p}from"./chunk-J6Y7IVFQ.mjs";import{b as w}from"./chunk-UAYTDSYG.mjs";import"./chunk-NNILF7R3.mjs";import"./chunk-NZKUCQZK.mjs";import"./chunk-H2KNJUPN.mjs";import{a as x}from"./chunk-5DZ2LTII.mjs";import"./chunk-FOWTB762.mjs";import"./chunk-6FUCOGOW.mjs";import"./chunk-6U3CYLY5.mjs";import"./chunk-ESB4ALH2.mjs";import{c as P}from"./chunk-Q3LUL6LL.mjs";import"./chunk-C7YBUD4K.mjs";import"./chunk-IOFCSTGM.mjs";import"./chunk-S6FBPXQL.mjs";import"./chunk-NOHSLOLL.mjs";import"./chunk-RCIWCKL7.mjs";import"./chunk-E73HSXCX.mjs";import"./chunk-76YMLNLF.mjs";import"./chunk-O5N6XYPU.mjs";import"./chunk-SROBBOJB.mjs";import"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-SO3ZPNWT.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-UYMZ3NAF.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-2NI4EEK2.mjs";import"./chunk-5YLI5V3Q.mjs";import"./chunk-BUD3R6LF.mjs";import"./chunk-ZQ2XH76U.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import{a as k}from"./chunk-KUQLXY2P.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-EHVU2SMR.mjs";import"./chunk-HPCSSJXH.mjs";import"./chunk-E5QQDYBR.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import{h as i}from"./chunk-ID2C2S33.mjs";import"./chunk-RACISWUV.mjs";import"./chunk-DIEPWXJJ.mjs";import"./chunk-NINFE7GS.mjs";import"./chunk-UNNY2IWZ.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DZVOFEM5.mjs";import"./chunk-5EF5EOCL.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-TIBYHZFA.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import{a as v}from"./chunk-3TRXQAU4.mjs";var E=["blocks","parent","related","discovered-from"],_=class extends x{static{v(this,"WorkGraphCommands")}async ready(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=u.ready(t.value),e=b(t.value,o);if(e.length===0){let n="Nothing ready \u2014 the backlog is empty or fully blocked. `prjct phases --md` shows why.";return s.md?console.log(`> ${n}`):i.info(n),{success:!0,ready:0}}if(s.md){let n=[`# Ready frontier \u2014 ${e.length} unblocked item(s) (impact-ranked)`,"","| Id | Item | Priority | Unblocks | Score | Claimed |","|---|---|---|---:|---:|---|"];for(let r of e)n.push(`| \`${r.id.slice(0,8)}\` | ${r.description.slice(0,80)} | ${r.priority??"-"} | ${r.unblocks} | ${Math.round(r.impactScore)} | ${r.claimedBy??"\u2014"} |`);n.push("",`Top rationale: ${e[0]?.why??"\u2014"}`,"","Claim before working: `prjct claim <id>`. Full id via `prjct sync --md`."),console.log(n.join(`
8
8
  `))}else{i.info(`${e.length} ready item(s) (impact-ranked):`);for(let n of e)i.info(` \u2022 [${n.id.slice(0,8)}] ${n.description.slice(0,80)}`);e[0]?.why&&i.info(` ${e[0].why}`)}return{success:!0,ready:e.length,items:e}}async next(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let e=b(t.value,u.ready(t.value,{unclaimedOnly:!0,limit:20}))[0]??null;if(!e){let l="No unclaimed ready work. `prjct ready --md` for the frontier.";return s.md?console.log(`> ${l}`):i.info(l),{success:!0,next:null}}let n=w(e.description),r=P(n);if(s.md){let l=[`# Next: ${e.description}`,"",`- Id: \`${e.id}\` \xB7 priority: ${e.priority??"-"} \xB7 unblocks ${e.unblocks} item(s) \xB7 impactScore ${Math.round(e.impactScore)}`,`- ${e.why}`,`- Orchestration: ${r.model}/${r.effort} \xB7 spec: ${r.spec} \xB7 tests: ${r.tests} \xB7 fan-out: ${r.fanout} \xB7 ~${r.expectedPoints} pt`,"",`Claim it: \`prjct claim ${e.id}\` \u2014 then \`prjct work "${e.description.slice(0,60)}"\``];console.log(l.join(`
9
9
  `))}else i.info(`next: [${e.id.slice(0,8)}] ${e.description}`),i.info(` ${e.why}`);return{success:!0,next:e,orchestration:r,why:e.why}}async claim(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=await this.resolveId(t.value,(c??"").trim());if(!o)return this.fail("Usage: prjct claim <task-id>",s);let e=s.as??process.env.PRJCT_AGENT??await(async()=>{let{pickCodename:l}=await import("./agent-codenames-7N4DU62I.mjs"),m=u.ready(t.value,{limit:50}).map(d=>d.claimedBy).filter(d=>!!d);return l(`claim:${o}:${Date.now()}`,m)})(),n=u.claim(t.value,o,e),r=n?`claimed ${o.slice(0,8)} as ${e}`:`claim lost \u2014 ${o.slice(0,8)} is already taken`;return s.md?console.log(`${n?"\u2713":"\u2717"} ${r}`):n?i.done(r):i.fail(r),{success:n,id:o,claimant:e}}async depend(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim();if(!o||!s.on)return this.fail("Usage: prjct depend <id> --on <id> [--type blocks|parent|related|discovered-from]",s);let e=s.type??"blocks";if(!E.includes(e))return this.fail(`Unknown dep type '${s.type}'. Use: ${E.join(" | ")}`,s);let n=await this.resolveId(t.value,o),r=await this.resolveId(t.value,s.on.trim());if(!n||!r)return this.fail("Could not resolve one of the ids",s);try{u.addDependency(t.value,n,r,e)}catch(m){return this.fail(m instanceof Error?m.message:"dependency rejected",s)}let l=`${n.slice(0,8)} \u2014${e}\u2192 ${r.slice(0,8)}`;return s.md?console.log(`\u2713 ${l}`):i.done(l),{success:!0,fromId:n,toId:r,depType:e}}async phases(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=u.phases(t.value);if(o.length===0){let e="No open work in the graph.";return s.md?console.log(`> ${e}`):i.info(e),{success:!0,phases:0}}if(s.md){let e=["# Execution phases (topological)","","Items in the SAME phase have no dependency path between them \u2014 safe to fan out in parallel.",""];for(let r of o){e.push(`## Phase ${r.phase} \u2014 ${r.items.length} item(s), parallelizable`);for(let l of r.items.slice(0,12)){let m=w(l.description),d=P(m);e.push(`- \`${l.id.slice(0,8)}\` ${l.description.slice(0,80)} _(${d.model}/${d.effort}, ~${d.expectedPoints} pt)_`)}r.items.length>12&&e.push(`- _\u2026and ${r.items.length-12} more (full list in --json / prjct ready)_`),e.push("")}console.log(e.join(`
10
10
  `))}else for(let e of o)i.info(`phase ${e.phase}: ${e.items.length} item(s)`);return{success:!0,phases:o.length,plan:o}}async expand(c=null,a=process.cwd(),s={}){let t=await p(a,s);if(!t.ok)return t.result;let o=(c??"").trim().split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/).map(d=>d.replace(/^"|"$/g,"")).filter(Boolean),e=o[0];if(!e)return this.fail('Usage: prjct expand <id> ["subtask 1" "subtask 2" ...]',s);let n=await this.resolveId(t.value,e);if(!n)return this.fail(`Unknown item '${e}'`,s);let r=o.slice(1);if(r.length===0){let h=(await k.getTasks(t.value)).find(g=>g.id===n)?.description??n,f=u.getComplexity(t.value,n)??(()=>{let g=w(h),$=P(g),y={score:$.expectedPoints,recommendedSubtasks:$.expectedPoints>=5?Math.min($.expectedPoints,6):0,expansionPrompt:`Decompose "${h}" into ${Math.min($.expectedPoints,6)} independent, testable subtasks; make dependencies explicit; each subtask \u2264 2 points.`,reasoning:`Triage level ${g.level}; ~${$.expectedPoints} points.`};return u.recordComplexity(t.value,n,{score:y.score,recommendedSubtasks:y.recommendedSubtasks,expansionPrompt:y.expansionPrompt??void 0,reasoning:y.reasoning??void 0}),y})();if(s.md){let g=[`# Expand \`${n.slice(0,8)}\` \u2014 ${h.slice(0,90)}`,"",`- Complexity: ${f.score} pt \xB7 recommended subtasks: ${f.recommendedSubtasks}`,...f.reasoning?[`- Reasoning: ${f.reasoning}`]:[],"",f.recommendedSubtasks>0?`${f.expansionPrompt}
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
- import{a,b,c,d,e,f}from"./chunk-56FW4P6U.mjs";import"./chunk-BQKDJ3U6.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-LZC6NGB6.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-XPRLQIVQ.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-3USVY66O.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-TTN2CFZC.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as extractFilePathsFromEntries,d as formatWorkScopeBlock,f as isUsefulScopePath,b as resolveWorkScope,a as resolveWorkScopeSync,e as toLikelyFileHits};
7
+ import{a,b,c,d,e,f}from"./chunk-CB3CNJTL.mjs";import"./chunk-LZILSE5H.mjs";import"./chunk-6OYLZ4NM.mjs";import"./chunk-V7R3L54M.mjs";import"./chunk-YEALP3WX.mjs";import"./chunk-QZ7T2EYR.mjs";import"./chunk-AJXELVNH.mjs";import"./chunk-CWLGRKA7.mjs";import"./chunk-B2HY22OD.mjs";import"./chunk-XLFEWZRA.mjs";import"./chunk-X433BB6F.mjs";import"./chunk-EZRNQXCC.mjs";import"./chunk-HCPQZRR3.mjs";import"./chunk-B7AQHL7B.mjs";import"./chunk-L4TUXFCL.mjs";import"./chunk-XSZOHNL4.mjs";import"./chunk-OIE3AKKO.mjs";import"./chunk-Q6C27OL7.mjs";import"./chunk-NXUIMC22.mjs";import"./chunk-DMO3ZFUG.mjs";import"./chunk-NNOX3UU4.mjs";import"./chunk-INJ5WT2D.mjs";import"./chunk-HU5ERAAV.mjs";import"./chunk-6RT2P22O.mjs";import"./chunk-ZXTJLMVZ.mjs";import"./chunk-VWFVSNQT.mjs";import"./chunk-U24YKPYX.mjs";import"./chunk-D62TAZG6.mjs";import"./chunk-KPR5TWSN.mjs";import"./chunk-623SNKDH.mjs";import"./chunk-XWLTEAGN.mjs";import"./chunk-DOJPSIMG.mjs";import"./chunk-HYIT7MF5.mjs";import"./chunk-225DWS4D.mjs";import"./chunk-3TRXQAU4.mjs";export{c as extractFilePathsFromEntries,d as formatWorkScopeBlock,f as isUsefulScopePath,b as resolveWorkScope,a as resolveWorkScopeSync,e as toLikelyFileHits};