pupt 1.2.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 (240) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +517 -0
  3. package/dist/annotations/annotation-analyzer.d.ts +17 -0
  4. package/dist/annotations/annotation-analyzer.d.ts.map +1 -0
  5. package/dist/annotations/annotation-analyzer.js +145 -0
  6. package/dist/annotations/annotation-analyzer.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +375 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/commands/add.d.ts +2 -0
  12. package/dist/commands/add.d.ts.map +1 -0
  13. package/dist/commands/add.js +149 -0
  14. package/dist/commands/add.js.map +1 -0
  15. package/dist/commands/annotate.d.ts +2 -0
  16. package/dist/commands/annotate.d.ts.map +1 -0
  17. package/dist/commands/annotate.js +223 -0
  18. package/dist/commands/annotate.js.map +1 -0
  19. package/dist/commands/base-command.d.ts +23 -0
  20. package/dist/commands/base-command.d.ts.map +1 -0
  21. package/dist/commands/base-command.js +41 -0
  22. package/dist/commands/base-command.js.map +1 -0
  23. package/dist/commands/edit.d.ts +2 -0
  24. package/dist/commands/edit.d.ts.map +1 -0
  25. package/dist/commands/edit.js +31 -0
  26. package/dist/commands/edit.js.map +1 -0
  27. package/dist/commands/help.d.ts +2 -0
  28. package/dist/commands/help.d.ts.map +1 -0
  29. package/dist/commands/help.js +25 -0
  30. package/dist/commands/help.js.map +1 -0
  31. package/dist/commands/history.d.ts +9 -0
  32. package/dist/commands/history.d.ts.map +1 -0
  33. package/dist/commands/history.js +232 -0
  34. package/dist/commands/history.js.map +1 -0
  35. package/dist/commands/init-refactored.d.ts +19 -0
  36. package/dist/commands/init-refactored.d.ts.map +1 -0
  37. package/dist/commands/init-refactored.js +141 -0
  38. package/dist/commands/init-refactored.js.map +1 -0
  39. package/dist/commands/init.d.ts +2 -0
  40. package/dist/commands/init.d.ts.map +1 -0
  41. package/dist/commands/init.js +124 -0
  42. package/dist/commands/init.js.map +1 -0
  43. package/dist/commands/install.d.ts +10 -0
  44. package/dist/commands/install.d.ts.map +1 -0
  45. package/dist/commands/install.js +224 -0
  46. package/dist/commands/install.js.map +1 -0
  47. package/dist/commands/review.d.ts +3 -0
  48. package/dist/commands/review.d.ts.map +1 -0
  49. package/dist/commands/review.js +158 -0
  50. package/dist/commands/review.js.map +1 -0
  51. package/dist/commands/run.d.ts +28 -0
  52. package/dist/commands/run.d.ts.map +1 -0
  53. package/dist/commands/run.js +340 -0
  54. package/dist/commands/run.js.map +1 -0
  55. package/dist/config/config-manager.d.ts +19 -0
  56. package/dist/config/config-manager.d.ts.map +1 -0
  57. package/dist/config/config-manager.js +386 -0
  58. package/dist/config/config-manager.js.map +1 -0
  59. package/dist/config/migration.d.ts +11 -0
  60. package/dist/config/migration.d.ts.map +1 -0
  61. package/dist/config/migration.js +153 -0
  62. package/dist/config/migration.js.map +1 -0
  63. package/dist/history/enhanced-history-manager.d.ts +25 -0
  64. package/dist/history/enhanced-history-manager.d.ts.map +1 -0
  65. package/dist/history/enhanced-history-manager.js +88 -0
  66. package/dist/history/enhanced-history-manager.js.map +1 -0
  67. package/dist/history/history-manager.d.ts +33 -0
  68. package/dist/history/history-manager.d.ts.map +1 -0
  69. package/dist/history/history-manager.js +176 -0
  70. package/dist/history/history-manager.js.map +1 -0
  71. package/dist/index.d.ts +6 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +6 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/prompts/input-types/file-prompt.d.ts +12 -0
  76. package/dist/prompts/input-types/file-prompt.d.ts.map +1 -0
  77. package/dist/prompts/input-types/file-prompt.js +166 -0
  78. package/dist/prompts/input-types/file-prompt.js.map +1 -0
  79. package/dist/prompts/input-types/file-search-prompt.d.ts +12 -0
  80. package/dist/prompts/input-types/file-search-prompt.d.ts.map +1 -0
  81. package/dist/prompts/input-types/file-search-prompt.js +54 -0
  82. package/dist/prompts/input-types/file-search-prompt.js.map +1 -0
  83. package/dist/prompts/input-types/review-file-prompt.d.ts +4 -0
  84. package/dist/prompts/input-types/review-file-prompt.d.ts.map +1 -0
  85. package/dist/prompts/input-types/review-file-prompt.js +10 -0
  86. package/dist/prompts/input-types/review-file-prompt.js.map +1 -0
  87. package/dist/prompts/prompt-manager.d.ts +12 -0
  88. package/dist/prompts/prompt-manager.d.ts.map +1 -0
  89. package/dist/prompts/prompt-manager.js +102 -0
  90. package/dist/prompts/prompt-manager.js.map +1 -0
  91. package/dist/pupt-1.2.0.tgz +0 -0
  92. package/dist/schemas/config-schema.d.ts +1268 -0
  93. package/dist/schemas/config-schema.d.ts.map +1 -0
  94. package/dist/schemas/config-schema.js +100 -0
  95. package/dist/schemas/config-schema.js.map +1 -0
  96. package/dist/schemas/prompt-schema.d.ts +927 -0
  97. package/dist/schemas/prompt-schema.d.ts.map +1 -0
  98. package/dist/schemas/prompt-schema.js +110 -0
  99. package/dist/schemas/prompt-schema.js.map +1 -0
  100. package/dist/search/file-search-engine.d.ts +36 -0
  101. package/dist/search/file-search-engine.d.ts.map +1 -0
  102. package/dist/search/file-search-engine.js +184 -0
  103. package/dist/search/file-search-engine.js.map +1 -0
  104. package/dist/search/search-engine.d.ts +8 -0
  105. package/dist/search/search-engine.d.ts.map +1 -0
  106. package/dist/search/search-engine.js +52 -0
  107. package/dist/search/search-engine.js.map +1 -0
  108. package/dist/services/auto-annotation-service.d.ts +39 -0
  109. package/dist/services/auto-annotation-service.d.ts.map +1 -0
  110. package/dist/services/auto-annotation-service.js +203 -0
  111. package/dist/services/auto-annotation-service.js.map +1 -0
  112. package/dist/services/file-system-service.d.ts +42 -0
  113. package/dist/services/file-system-service.d.ts.map +1 -0
  114. package/dist/services/file-system-service.js +269 -0
  115. package/dist/services/file-system-service.js.map +1 -0
  116. package/dist/services/git-service.d.ts +27 -0
  117. package/dist/services/git-service.d.ts.map +1 -0
  118. package/dist/services/git-service.js +157 -0
  119. package/dist/services/git-service.js.map +1 -0
  120. package/dist/services/logging-service.d.ts +50 -0
  121. package/dist/services/logging-service.d.ts.map +1 -0
  122. package/dist/services/logging-service.js +203 -0
  123. package/dist/services/logging-service.js.map +1 -0
  124. package/dist/services/output-capture-service.d.ts +25 -0
  125. package/dist/services/output-capture-service.d.ts.map +1 -0
  126. package/dist/services/output-capture-service.js +277 -0
  127. package/dist/services/output-capture-service.js.map +1 -0
  128. package/dist/services/pattern-detector.d.ts +15 -0
  129. package/dist/services/pattern-detector.d.ts.map +1 -0
  130. package/dist/services/pattern-detector.js +219 -0
  131. package/dist/services/pattern-detector.js.map +1 -0
  132. package/dist/services/prompt-service.d.ts +30 -0
  133. package/dist/services/prompt-service.d.ts.map +1 -0
  134. package/dist/services/prompt-service.js +278 -0
  135. package/dist/services/prompt-service.js.map +1 -0
  136. package/dist/services/review-data-builder.d.ts +22 -0
  137. package/dist/services/review-data-builder.d.ts.map +1 -0
  138. package/dist/services/review-data-builder.js +263 -0
  139. package/dist/services/review-data-builder.js.map +1 -0
  140. package/dist/services/suggestion-generator.d.ts +11 -0
  141. package/dist/services/suggestion-generator.d.ts.map +1 -0
  142. package/dist/services/suggestion-generator.js +146 -0
  143. package/dist/services/suggestion-generator.js.map +1 -0
  144. package/dist/services/ui-service.d.ts +49 -0
  145. package/dist/services/ui-service.d.ts.map +1 -0
  146. package/dist/services/ui-service.js +183 -0
  147. package/dist/services/ui-service.js.map +1 -0
  148. package/dist/template/helpers/index.d.ts +4 -0
  149. package/dist/template/helpers/index.d.ts.map +1 -0
  150. package/dist/template/helpers/index.js +132 -0
  151. package/dist/template/helpers/index.js.map +1 -0
  152. package/dist/template/template-context.d.ts +26 -0
  153. package/dist/template/template-context.d.ts.map +1 -0
  154. package/dist/template/template-context.js +65 -0
  155. package/dist/template/template-context.js.map +1 -0
  156. package/dist/template/template-engine.d.ts +13 -0
  157. package/dist/template/template-engine.d.ts.map +1 -0
  158. package/dist/template/template-engine.js +83 -0
  159. package/dist/template/template-engine.js.map +1 -0
  160. package/dist/types/annotations.d.ts +49 -0
  161. package/dist/types/annotations.d.ts.map +1 -0
  162. package/dist/types/annotations.js +2 -0
  163. package/dist/types/annotations.js.map +1 -0
  164. package/dist/types/config.d.ts +49 -0
  165. package/dist/types/config.d.ts.map +1 -0
  166. package/dist/types/config.js +8 -0
  167. package/dist/types/config.js.map +1 -0
  168. package/dist/types/history.d.ts +32 -0
  169. package/dist/types/history.d.ts.map +1 -0
  170. package/dist/types/history.js +2 -0
  171. package/dist/types/history.js.map +1 -0
  172. package/dist/types/patterns.d.ts +24 -0
  173. package/dist/types/patterns.d.ts.map +1 -0
  174. package/dist/types/patterns.js +2 -0
  175. package/dist/types/patterns.js.map +1 -0
  176. package/dist/types/prompt.d.ts +23 -0
  177. package/dist/types/prompt.d.ts.map +1 -0
  178. package/dist/types/prompt.js +2 -0
  179. package/dist/types/prompt.js.map +1 -0
  180. package/dist/types/review.d.ts +76 -0
  181. package/dist/types/review.d.ts.map +1 -0
  182. package/dist/types/review.js +2 -0
  183. package/dist/types/review.js.map +1 -0
  184. package/dist/ui/console-ui.d.ts +35 -0
  185. package/dist/ui/console-ui.d.ts.map +1 -0
  186. package/dist/ui/console-ui.js +83 -0
  187. package/dist/ui/console-ui.js.map +1 -0
  188. package/dist/ui/interactive-search.d.ts +8 -0
  189. package/dist/ui/interactive-search.d.ts.map +1 -0
  190. package/dist/ui/interactive-search.js +29 -0
  191. package/dist/ui/interactive-search.js.map +1 -0
  192. package/dist/utils/date-formatter.d.ts +10 -0
  193. package/dist/utils/date-formatter.d.ts.map +1 -0
  194. package/dist/utils/date-formatter.js +43 -0
  195. package/dist/utils/date-formatter.js.map +1 -0
  196. package/dist/utils/editor.d.ts +13 -0
  197. package/dist/utils/editor.d.ts.map +1 -0
  198. package/dist/utils/editor.js +62 -0
  199. package/dist/utils/editor.js.map +1 -0
  200. package/dist/utils/errors.d.ts +55 -0
  201. package/dist/utils/errors.d.ts.map +1 -0
  202. package/dist/utils/errors.js +248 -0
  203. package/dist/utils/errors.js.map +1 -0
  204. package/dist/utils/file-utils.d.ts +18 -0
  205. package/dist/utils/file-utils.d.ts.map +1 -0
  206. package/dist/utils/file-utils.js +88 -0
  207. package/dist/utils/file-utils.js.map +1 -0
  208. package/dist/utils/git-info.d.ts +8 -0
  209. package/dist/utils/git-info.d.ts.map +1 -0
  210. package/dist/utils/git-info.js +41 -0
  211. package/dist/utils/git-info.js.map +1 -0
  212. package/dist/utils/gitignore.d.ts +10 -0
  213. package/dist/utils/gitignore.d.ts.map +1 -0
  214. package/dist/utils/gitignore.js +72 -0
  215. package/dist/utils/gitignore.js.map +1 -0
  216. package/dist/utils/handlebars-extensions.d.ts +4 -0
  217. package/dist/utils/handlebars-extensions.d.ts.map +1 -0
  218. package/dist/utils/handlebars-extensions.js +87 -0
  219. package/dist/utils/handlebars-extensions.js.map +1 -0
  220. package/dist/utils/logger.d.ts +39 -0
  221. package/dist/utils/logger.d.ts.map +1 -0
  222. package/dist/utils/logger.js +143 -0
  223. package/dist/utils/logger.js.map +1 -0
  224. package/dist/utils/platform.d.ts +9 -0
  225. package/dist/utils/platform.d.ts.map +1 -0
  226. package/dist/utils/platform.js +44 -0
  227. package/dist/utils/platform.js.map +1 -0
  228. package/dist/utils/security.d.ts +5 -0
  229. package/dist/utils/security.d.ts.map +1 -0
  230. package/dist/utils/security.js +57 -0
  231. package/dist/utils/security.js.map +1 -0
  232. package/dist/utils/tool-detection.d.ts +11 -0
  233. package/dist/utils/tool-detection.d.ts.map +1 -0
  234. package/dist/utils/tool-detection.js +32 -0
  235. package/dist/utils/tool-detection.js.map +1 -0
  236. package/dist/utils/trie.d.ts +18 -0
  237. package/dist/utils/trie.d.ts.map +1 -0
  238. package/dist/utils/trie.js +84 -0
  239. package/dist/utils/trie.js.map +1 -0
  240. package/package.json +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAS1B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB;IAC1D,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAE1C,8BAA8B;IAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YACjD,wBAAwB;YACxB,yBAAyB;YACzB,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAEnF,uDAAuD;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;YACxD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,6CAA6C;QAC7C,IAAI,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAqB,CAAC,CAAC;YAEvF,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC7D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;YACxD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAyB,CAAC;IAC9B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAC9B,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;IAExD,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAExD,uBAAuB;IACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvC,mEAAmE;IACnE,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjD,kBAAkB;IAClB,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC;QACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,uDAAuD;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE3D,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,SAAkC;IACjF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAkC;IACzD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,uCAAuC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAC9D,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CACzE,CAAC;IAEF,yCAAyC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,8FAA8F;YAC9F,iEAAiE;YACjE,MAAM,UAAU,GAAG,KAAK;iBACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,+BAA+B;iBACrD,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAE,4CAA4C;iBACrE,IAAI,EAAE,CAAC;YAEV,mEAAmE;YACnE,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEvD,IAAI,cAAc,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9E,6CAA6C;gBAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;gBAC/D,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,QAAQ,GAAG,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChD,6EAA6E;gBAC7E,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,OAAO,GAAG,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAmB;IAC5C,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAE7C,IAAI,OAAe,CAAC;IAEpB,qCAAqC;IACrC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { BaseCommand, CommandContext, CommandOptions } from './base-command.js';
2
+ interface InitInput {
3
+ overwrite: boolean;
4
+ promptDir: string;
5
+ enableHistory: boolean;
6
+ historyDir?: string;
7
+ annotationDir?: string;
8
+ }
9
+ export declare class InitCommand extends BaseCommand<InitInput, void> {
10
+ private configPath;
11
+ constructor(context: CommandContext, options?: CommandOptions);
12
+ protected get name(): string;
13
+ protected validatePreconditions(): Promise<void>;
14
+ protected collectInput(): Promise<InitInput>;
15
+ protected performAction(input: InitInput): Promise<void>;
16
+ }
17
+ export declare function initCommand(context?: CommandContext, options?: CommandOptions): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=init-refactored.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-refactored.d.ts","sourceRoot":"","sources":["../../src/commands/init-refactored.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhF,UAAU,SAAS;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;IAC3D,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,cAAmB;IAKjE,SAAS,KAAK,IAAI,IAAI,MAAM,CAE3B;cAEe,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;cAStC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;cA2DlC,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAwD/D;AAGD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAenG"}
@@ -0,0 +1,141 @@
1
+ import { input, confirm } from '@inquirer/prompts';
2
+ import fs from 'fs-extra';
3
+ import path from 'node:path';
4
+ import { BaseCommand } from './base-command.js';
5
+ import { DEFAULT_CONFIG } from '../types/config.js';
6
+ import { isGitRepository, addToGitignore } from '../utils/gitignore.js';
7
+ import { errors } from '../utils/errors.js';
8
+ export class InitCommand extends BaseCommand {
9
+ configPath;
10
+ constructor(context, options = {}) {
11
+ super(context, options);
12
+ this.configPath = path.join(process.cwd(), '.pt-config.json');
13
+ }
14
+ get name() {
15
+ return 'init';
16
+ }
17
+ async validatePreconditions() {
18
+ // Check write permissions in current directory
19
+ try {
20
+ await fs.access(process.cwd(), fs.constants.W_OK);
21
+ }
22
+ catch {
23
+ throw errors.permissionDenied(process.cwd());
24
+ }
25
+ }
26
+ async collectInput() {
27
+ // Check for existing config
28
+ let overwrite = true;
29
+ if (await fs.pathExists(this.configPath)) {
30
+ overwrite = await confirm({
31
+ message: 'Config file already exists. Overwrite?',
32
+ default: false
33
+ });
34
+ if (!overwrite) {
35
+ return {
36
+ overwrite: false,
37
+ promptDir: '',
38
+ enableHistory: false
39
+ };
40
+ }
41
+ }
42
+ // Prompt for configuration
43
+ const promptDir = await input({
44
+ message: 'Where should prompts be stored?',
45
+ default: './.prompts'
46
+ });
47
+ const enableHistory = await confirm({
48
+ message: 'Enable prompt history?',
49
+ default: true
50
+ });
51
+ let historyDir;
52
+ let annotationDir;
53
+ if (enableHistory) {
54
+ historyDir = await input({
55
+ message: 'Where should history be stored?',
56
+ default: './.pthistory'
57
+ });
58
+ const enableAnnotations = await confirm({
59
+ message: 'Enable history annotations?',
60
+ default: true
61
+ });
62
+ if (enableAnnotations) {
63
+ annotationDir = await input({
64
+ message: 'Where should annotations be stored?',
65
+ default: './.pthistory'
66
+ });
67
+ }
68
+ }
69
+ return {
70
+ overwrite,
71
+ promptDir,
72
+ enableHistory,
73
+ historyDir,
74
+ annotationDir
75
+ };
76
+ }
77
+ async performAction(input) {
78
+ if (!input.overwrite) {
79
+ this.context.ui.info('Configuration cancelled.');
80
+ return;
81
+ }
82
+ // Create directories
83
+ const dirsToCreate = [input.promptDir];
84
+ if (input.historyDir)
85
+ dirsToCreate.push(input.historyDir);
86
+ if (input.annotationDir && input.annotationDir !== input.historyDir) {
87
+ dirsToCreate.push(input.annotationDir);
88
+ }
89
+ for (const dir of dirsToCreate) {
90
+ if (!dir)
91
+ continue;
92
+ const resolvedDir = dir.startsWith('~')
93
+ ? path.join(process.env.HOME || '', dir.slice(2))
94
+ : path.resolve(dir);
95
+ await fs.ensureDir(resolvedDir);
96
+ }
97
+ // Generate config
98
+ const config = {
99
+ promptDirs: [input.promptDir],
100
+ ...(input.historyDir && { historyDir: input.historyDir }),
101
+ ...(input.annotationDir && { annotationDir: input.annotationDir }),
102
+ ...DEFAULT_CONFIG
103
+ };
104
+ // Save config
105
+ await fs.writeJson(this.configPath, config, { spaces: 2 });
106
+ // Add to .gitignore if in git repository
107
+ if (await isGitRepository()) {
108
+ const entriesToIgnore = [];
109
+ // Add config backup file
110
+ entriesToIgnore.push('.pt-config.json.backup');
111
+ // Add history directory if it's a local directory
112
+ if (input.historyDir && !path.isAbsolute(input.historyDir) && !input.historyDir.startsWith('~')) {
113
+ entriesToIgnore.push(input.historyDir);
114
+ }
115
+ // Add git prompts directory
116
+ const gitPromptDir = config.gitPromptDir || DEFAULT_CONFIG.gitPromptDir || '.git-prompts';
117
+ entriesToIgnore.push(gitPromptDir);
118
+ // Add all entries to .gitignore
119
+ for (const entry of entriesToIgnore) {
120
+ await addToGitignore(entry);
121
+ }
122
+ }
123
+ this.context.ui.success('Configuration created successfully!');
124
+ }
125
+ }
126
+ // Export factory function for backward compatibility
127
+ export async function initCommand(context, options) {
128
+ // If no context provided, create a minimal one
129
+ const defaultConfig = {
130
+ promptDirs: ['./.prompts'],
131
+ ...DEFAULT_CONFIG
132
+ };
133
+ const defaultContext = context || {
134
+ config: defaultConfig,
135
+ ui: (await import('../ui/console-ui.js')).ui,
136
+ logger: (await import('../services/logging-service.js')).createLogger(defaultConfig)
137
+ };
138
+ const command = new InitCommand(defaultContext, options);
139
+ return command.execute();
140
+ }
141
+ //# sourceMappingURL=init-refactored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-refactored.js","sourceRoot":"","sources":["../../src/commands/init-refactored.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAkC,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAU,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAU5C,MAAM,OAAO,WAAY,SAAQ,WAA4B;IACnD,UAAU,CAAS;IAE3B,YAAY,OAAuB,EAAE,UAA0B,EAAE;QAC/D,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAChE,CAAC;IAED,IAAc,IAAI;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,qBAAqB;QACnC,+CAA+C;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY;QAC1B,4BAA4B;QAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,SAAS,GAAG,MAAM,OAAO,CAAC;gBACxB,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,EAAE;oBACb,aAAa,EAAE,KAAK;iBACrB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;YAC5B,OAAO,EAAE,iCAAiC;YAC1C,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;YAClC,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,UAA8B,CAAC;QACnC,IAAI,aAAiC,CAAC;QAEtC,IAAI,aAAa,EAAE,CAAC;YAClB,UAAU,GAAG,MAAM,KAAK,CAAC;gBACvB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;gBACtC,OAAO,EAAE,6BAA6B;gBACtC,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,iBAAiB,EAAE,CAAC;gBACtB,aAAa,GAAG,MAAM,KAAK,CAAC;oBAC1B,OAAO,EAAE,qCAAqC;oBAC9C,OAAO,EAAE,cAAc;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS;YACT,SAAS;YACT,aAAa;YACb,UAAU;YACV,aAAa;SACd,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,KAAgB;QAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YACpE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YAClE,GAAG,cAAc;SAClB,CAAC;QAEF,cAAc;QACd,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3D,yCAAyC;QACzC,IAAI,MAAM,eAAe,EAAE,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAa,EAAE,CAAC;YAErC,yBAAyB;YACzB,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAE/C,kDAAkD;YAClD,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;YAED,4BAA4B;YAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC;YAC1F,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnC,gCAAgC;YAChC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACjE,CAAC;CACF;AAED,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE,OAAwB;IAClF,+CAA+C;IAC/C,MAAM,aAAa,GAAW;QAC5B,UAAU,EAAE,CAAC,YAAY,CAAC;QAC1B,GAAG,cAAc;KAClB,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,IAAI;QAChC,MAAM,EAAE,aAAa;QACrB,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;QAC5C,MAAM,EAAE,CAAC,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC;KACrF,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function initCommand(): Promise<void>;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAmIjD"}
@@ -0,0 +1,124 @@
1
+ import { input, confirm, select } from '@inquirer/prompts';
2
+ import fs from 'fs-extra';
3
+ import path from 'node:path';
4
+ import chalk from 'chalk';
5
+ import { DEFAULT_CONFIG } from '../types/config.js';
6
+ import { isGitRepository, addToGitignore } from '../utils/gitignore.js';
7
+ import { detectInstalledTools, getToolByName } from '../utils/tool-detection.js';
8
+ import { logger } from '../utils/logger.js';
9
+ export async function initCommand() {
10
+ // Check for existing config
11
+ const configPath = path.join(process.cwd(), '.pt-config.json');
12
+ if (await fs.pathExists(configPath)) {
13
+ const overwrite = await confirm({
14
+ message: 'Config file already exists. Overwrite?',
15
+ default: false
16
+ });
17
+ if (!overwrite)
18
+ return;
19
+ }
20
+ // Prompt for configuration
21
+ const promptDir = await input({
22
+ message: 'Where should prompts be stored?',
23
+ default: './.prompts'
24
+ });
25
+ const enableHistory = await confirm({
26
+ message: 'Enable prompt history?',
27
+ default: true
28
+ });
29
+ let historyDir;
30
+ let annotationDir;
31
+ if (enableHistory) {
32
+ historyDir = await input({
33
+ message: 'Where should history be stored?',
34
+ default: './.pthistory'
35
+ });
36
+ const enableAnnotations = await confirm({
37
+ message: 'Enable history annotations?',
38
+ default: true
39
+ });
40
+ if (enableAnnotations) {
41
+ annotationDir = await input({
42
+ message: 'Where should annotations be stored?',
43
+ default: './.pthistory'
44
+ });
45
+ }
46
+ }
47
+ // Create directories
48
+ const dirsToCreate = [promptDir];
49
+ if (historyDir)
50
+ dirsToCreate.push(historyDir);
51
+ if (annotationDir && annotationDir !== historyDir)
52
+ dirsToCreate.push(annotationDir);
53
+ for (const dir of dirsToCreate) {
54
+ if (!dir)
55
+ continue; // Skip undefined or empty directories
56
+ const resolvedDir = dir.startsWith('~')
57
+ ? path.join(process.env.HOME || '', dir.slice(2))
58
+ : path.resolve(dir);
59
+ await fs.ensureDir(resolvedDir);
60
+ }
61
+ // Detect installed tools and prompt for default command
62
+ const installedTools = detectInstalledTools();
63
+ let selectedTool;
64
+ let defaultCmd;
65
+ let defaultCmdArgs;
66
+ let defaultCmdOptions;
67
+ let autoRun = false; // Default to false
68
+ if (installedTools.length > 0) {
69
+ const toolChoices = [
70
+ ...installedTools.map(tool => ({
71
+ name: tool.displayName,
72
+ value: tool.name
73
+ })),
74
+ { name: 'None', value: 'none' }
75
+ ];
76
+ selectedTool = await select({
77
+ message: 'Select a default AI tool to use with prompts:',
78
+ choices: toolChoices
79
+ });
80
+ if (selectedTool !== 'none') {
81
+ const toolConfig = getToolByName(selectedTool);
82
+ if (toolConfig) {
83
+ defaultCmd = toolConfig.command;
84
+ defaultCmdArgs = toolConfig.defaultArgs;
85
+ defaultCmdOptions = toolConfig.defaultOptions;
86
+ autoRun = true; // Set autoRun to true when a tool is selected
87
+ }
88
+ }
89
+ }
90
+ // Generate config
91
+ // Create base config from DEFAULT_CONFIG, excluding tool-specific settings
92
+ const { defaultCmd: _, defaultCmdArgs: __, defaultCmdOptions: ___, autoRun: ____, ...baseDefaults } = DEFAULT_CONFIG;
93
+ const config = {
94
+ ...baseDefaults,
95
+ promptDirs: [promptDir],
96
+ ...(historyDir && { historyDir }),
97
+ ...(annotationDir && { annotationDir }),
98
+ ...(defaultCmd && { defaultCmd }),
99
+ ...(defaultCmdArgs && defaultCmdArgs.length > 0 && { defaultCmdArgs }),
100
+ ...(defaultCmdOptions && Object.keys(defaultCmdOptions).length > 0 && { defaultCmdOptions }),
101
+ autoRun // Always set autoRun based on tool selection
102
+ };
103
+ // Save config
104
+ await fs.writeJson(configPath, config, { spaces: 2 });
105
+ // Add to .gitignore if in git repository
106
+ if (await isGitRepository()) {
107
+ const entriesToIgnore = [];
108
+ // Add config backup file
109
+ entriesToIgnore.push('.pt-config.json.backup');
110
+ // Add history directory if it's a local directory
111
+ if (historyDir && !path.isAbsolute(historyDir) && !historyDir.startsWith('~')) {
112
+ entriesToIgnore.push(historyDir);
113
+ }
114
+ // Add git prompts directory
115
+ const gitPromptDir = config.gitPromptDir || DEFAULT_CONFIG.gitPromptDir || '.git-prompts';
116
+ entriesToIgnore.push(gitPromptDir);
117
+ // Add all entries to .gitignore
118
+ for (const entry of entriesToIgnore) {
119
+ await addToGitignore(entry);
120
+ }
121
+ }
122
+ logger.log(chalk.green('✓ Configuration created successfully!'));
123
+ }
124
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SimpleGit } from 'simple-git';
2
+ export declare function validateGitUrl(url: string): void;
3
+ export declare function extractRepoName(url: string): string;
4
+ export declare function installFromGit(url: string, git?: SimpleGit): Promise<void>;
5
+ export declare function isNpmPackage(source: string): boolean;
6
+ export declare function validateNpmPackage(packageName: string): void;
7
+ export declare function isNpmProject(): Promise<boolean>;
8
+ export declare function installFromNpm(packageName: string): Promise<void>;
9
+ export declare function installCommand(source: string): Promise<void>;
10
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAKA,OAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUlD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAwBhD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6BnD;AAcD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,SAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC7F;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA8BpD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ5D;AAGD,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD;AAGD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDvE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BlE"}
@@ -0,0 +1,224 @@
1
+ import * as path from 'node:path';
2
+ import * as fs from 'node:fs/promises';
3
+ import { ConfigManager } from '../config/config-manager.js';
4
+ import fs2 from 'fs-extra';
5
+ import simpleGit from 'simple-git';
6
+ import { execa } from 'execa';
7
+ import { isGitRepository, addToGitignore } from '../utils/gitignore.js';
8
+ import { logger } from '../utils/logger.js';
9
+ async function saveConfig(config) {
10
+ const configPath = path.join(process.cwd(), '.pt-config.json');
11
+ await fs2.writeJson(configPath, config, { spaces: 2 });
12
+ }
13
+ export function validateGitUrl(url) {
14
+ if (!url || typeof url !== 'string' || url.trim() === '') {
15
+ throw new Error('Invalid URL: URL cannot be empty');
16
+ }
17
+ // Support common git URL formats
18
+ const gitUrlPatterns = [
19
+ // HTTPS URLs
20
+ /^https:\/\/[a-zA-Z0-9.-]+\/[a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+(?:\.git)?$/,
21
+ // SSH URLs (git@)
22
+ /^git@[a-zA-Z0-9.-]+:[a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+(?:\.git)?$/,
23
+ // SSH URLs (ssh://)
24
+ /^ssh:\/\/git@[a-zA-Z0-9.-]+\/[a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+(?:\.git)?$/,
25
+ // Git protocol
26
+ /^git:\/\/[a-zA-Z0-9.-]+\/[a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+(?:\.git)?$/,
27
+ // File protocol (for testing and local repos)
28
+ /^file:\/\/\/.+$/
29
+ ];
30
+ const isValidGitUrl = gitUrlPatterns.some(pattern => pattern.test(url));
31
+ if (!isValidGitUrl) {
32
+ throw new Error(`Invalid git URL format: ${url}`);
33
+ }
34
+ }
35
+ export function extractRepoName(url) {
36
+ // Remove .git suffix if present
37
+ const cleanUrl = url.replace(/\.git$/, '');
38
+ // Extract repo name from different URL formats
39
+ let repoName;
40
+ if (url.includes('://')) {
41
+ // HTTPS, git://, or file:// URLs
42
+ const parts = cleanUrl.split('/');
43
+ repoName = parts[parts.length - 1];
44
+ // For file:// URLs that might end with a slash
45
+ if (!repoName && parts.length > 1) {
46
+ repoName = parts[parts.length - 2];
47
+ }
48
+ }
49
+ else if (url.startsWith('git@')) {
50
+ // SSH URLs (git@host:user/repo)
51
+ const parts = cleanUrl.split(':')[1].split('/');
52
+ repoName = parts[parts.length - 1];
53
+ }
54
+ else {
55
+ throw new Error(`Cannot extract repository name from URL: ${url}`);
56
+ }
57
+ if (!repoName) {
58
+ throw new Error(`Cannot extract repository name from URL: ${url}`);
59
+ }
60
+ return repoName;
61
+ }
62
+ async function getGitInstallPath(repoName) {
63
+ const config = await ConfigManager.load();
64
+ const gitPromptDir = config.gitPromptDir || '.git-prompts';
65
+ const installPath = path.join(gitPromptDir, repoName);
66
+ // Ensure parent directory exists
67
+ await fs.mkdir(gitPromptDir, { recursive: true });
68
+ return installPath;
69
+ }
70
+ export async function installFromGit(url, git = simpleGit()) {
71
+ // Validate URL
72
+ validateGitUrl(url);
73
+ // Extract repository name
74
+ const repoName = extractRepoName(url);
75
+ // Get installation path
76
+ const installPath = await getGitInstallPath(repoName);
77
+ logger.log(`Installing prompts from ${url}...`);
78
+ // Clone repository with depth 1
79
+ try {
80
+ await git.clone(url, installPath, ['--depth', '1']);
81
+ }
82
+ catch (error) {
83
+ const errorMessage = error instanceof Error ? error.message : String(error);
84
+ throw new Error(`Failed to clone repository: ${errorMessage}`);
85
+ }
86
+ // Update .gitignore if in git repository
87
+ if (await isGitRepository()) {
88
+ const config = await ConfigManager.load();
89
+ await addToGitignore(config.gitPromptDir || '.git-prompts');
90
+ }
91
+ // Update config with new prompt directory
92
+ const config = await ConfigManager.load();
93
+ const promptPath = path.join(installPath, 'prompts');
94
+ if (!config.promptDirs.includes(promptPath)) {
95
+ config.promptDirs.push(promptPath);
96
+ await saveConfig(config);
97
+ logger.log(`Successfully installed prompts to ${promptPath}`);
98
+ }
99
+ else {
100
+ logger.log(`Prompts already installed at ${promptPath}`);
101
+ }
102
+ }
103
+ // NPM Package Detection
104
+ export function isNpmPackage(source) {
105
+ if (!source || typeof source !== 'string' || source.trim() === '') {
106
+ return false;
107
+ }
108
+ // Reject obvious non-package patterns
109
+ if (source.includes('://') || // URLs
110
+ source.includes(':') && source.includes('@') || // SSH URLs
111
+ source.startsWith('./') || source.startsWith('../') || // Relative paths
112
+ source.startsWith('/') || // Absolute paths
113
+ source.includes('\\') || // Windows paths
114
+ source.includes(' ') || // Spaces
115
+ source.startsWith('-') || source.startsWith('.') || source.startsWith('_')) { // Invalid starts
116
+ return false;
117
+ }
118
+ // Check for valid npm package name patterns
119
+ // Regular packages: alphanumeric, dash, underscore, dot
120
+ // Scoped packages: @scope/package
121
+ const npmPackagePattern = /^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/i;
122
+ // Additional validation for scoped packages
123
+ if (source.startsWith('@')) {
124
+ const parts = source.split('/');
125
+ if (parts.length !== 2 || parts[0] === '@' || parts[1] === '') {
126
+ return false;
127
+ }
128
+ }
129
+ return npmPackagePattern.test(source);
130
+ }
131
+ export function validateNpmPackage(packageName) {
132
+ if (!packageName || packageName.trim() === '') {
133
+ throw new Error('Package name cannot be empty');
134
+ }
135
+ if (!isNpmPackage(packageName)) {
136
+ throw new Error(`Invalid npm package name: ${packageName}`);
137
+ }
138
+ }
139
+ // Check if current directory is an npm project
140
+ export async function isNpmProject() {
141
+ try {
142
+ await fs.access('package.json');
143
+ return true;
144
+ }
145
+ catch {
146
+ return false;
147
+ }
148
+ }
149
+ // Install from NPM
150
+ export async function installFromNpm(packageName) {
151
+ // Validate package name
152
+ validateNpmPackage(packageName);
153
+ // Check if we're in an npm project
154
+ if (!await isNpmProject()) {
155
+ throw new Error('NPM package installation requires a package.json file. Run "npm init" first.');
156
+ }
157
+ logger.log(`Installing npm package ${packageName}...`);
158
+ try {
159
+ // Install the package using execa
160
+ await execa('npm', ['install', packageName], {
161
+ stdio: 'inherit' // Show npm output to user
162
+ });
163
+ }
164
+ catch (error) {
165
+ const errorMessage = error instanceof Error ? error.message : String(error);
166
+ throw new Error(`Failed to install npm package: ${errorMessage}`);
167
+ }
168
+ // Get installed package path and metadata
169
+ const packagePath = path.join('node_modules', packageName);
170
+ let promptDir = 'prompts'; // Default prompt directory
171
+ try {
172
+ // Read package.json to check for promptDir field
173
+ const packageJsonPath = path.join(packagePath, 'package.json');
174
+ const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');
175
+ const packageJson = JSON.parse(packageJsonContent);
176
+ if (packageJson.promptDir) {
177
+ promptDir = packageJson.promptDir;
178
+ }
179
+ }
180
+ catch {
181
+ // If we can't read package.json, use default
182
+ }
183
+ // Update config with new prompt directory
184
+ const config = await ConfigManager.load();
185
+ const fullPromptPath = path.join(packagePath, promptDir);
186
+ if (!config.promptDirs.includes(fullPromptPath)) {
187
+ config.promptDirs.push(fullPromptPath);
188
+ await saveConfig(config);
189
+ logger.log(`Successfully installed prompts from ${packageName}`);
190
+ logger.log(`Added prompt directory: ${fullPromptPath}`);
191
+ }
192
+ else {
193
+ logger.log(`Prompts from ${packageName} already configured at ${fullPromptPath}`);
194
+ }
195
+ }
196
+ export async function installCommand(source) {
197
+ if (!source) {
198
+ throw new Error('Please provide a git URL or npm package name to install from');
199
+ }
200
+ // Try npm first (since it's simpler to detect)
201
+ if (isNpmPackage(source)) {
202
+ await installFromNpm(source);
203
+ return;
204
+ }
205
+ // Try git URL
206
+ try {
207
+ validateGitUrl(source);
208
+ await installFromGit(source);
209
+ }
210
+ catch (error) {
211
+ const errorMessage = error instanceof Error ? error.message : String(error);
212
+ if (errorMessage.includes('Invalid git URL')) {
213
+ logger.error(`Error: "${source}" is neither a valid git URL nor an npm package name`);
214
+ logger.error('\nExamples of valid sources:');
215
+ logger.error(' Git: https://github.com/user/repo');
216
+ logger.error(' NPM: @org/package or package-name');
217
+ throw new Error(`Invalid installation source: ${source}`);
218
+ }
219
+ else {
220
+ throw error;
221
+ }
222
+ }
223
+ }
224
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ReviewOptions } from '../types/review.js';
2
+ export declare function reviewCommand(promptName?: string, options?: ReviewOptions): Promise<void>;
3
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,oBAAoB,CAAC;AAKpE,wBAAsB,aAAa,CACjC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Cf"}