@decaf-ts/mcp-server 0.4.2 → 0.4.7

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 (536) hide show
  1. package/LICENSE.md +31 -0
  2. package/dist/mcp-server.cjs +2 -2360
  3. package/dist/mcp-server.cjs.map +1 -0
  4. package/dist/mcp-server.js +2 -0
  5. package/dist/mcp-server.js.map +1 -0
  6. package/lib/bin/cli.cjs +7 -35
  7. package/lib/bin/cli.js.map +1 -0
  8. package/lib/builders/builder.cjs +91 -0
  9. package/lib/builders/builder.d.ts +25 -0
  10. package/lib/builders/builder.js.map +1 -0
  11. package/lib/{mcp/resources → builders}/index.cjs +5 -2
  12. package/lib/builders/index.d.ts +4 -0
  13. package/lib/builders/index.js.map +1 -0
  14. package/lib/builders/prompt-builder.cjs +76 -0
  15. package/lib/builders/prompt-builder.d.ts +12 -0
  16. package/lib/builders/prompt-builder.js.map +1 -0
  17. package/lib/builders/resource-builder.cjs +83 -0
  18. package/lib/builders/resource-builder.d.ts +14 -0
  19. package/lib/builders/resource-builder.js.map +1 -0
  20. package/lib/builders/tool-builder.cjs +104 -0
  21. package/lib/builders/tool-builder.d.ts +16 -0
  22. package/lib/builders/tool-builder.js.map +1 -0
  23. package/lib/constants.cjs +28 -30
  24. package/lib/constants.d.ts +19 -24
  25. package/lib/constants.js.map +1 -0
  26. package/lib/environment.cjs +32 -0
  27. package/lib/environment.d.ts +71 -0
  28. package/lib/environment.js.map +1 -0
  29. package/lib/esm/bin/cli.js +7 -35
  30. package/lib/esm/bin/cli.js.map +1 -0
  31. package/lib/esm/builders/builder.d.ts +25 -0
  32. package/lib/esm/builders/builder.js +86 -0
  33. package/lib/esm/builders/builder.js.map +1 -0
  34. package/lib/esm/builders/index.d.ts +4 -0
  35. package/lib/esm/builders/index.js +5 -0
  36. package/lib/esm/builders/index.js.map +1 -0
  37. package/lib/esm/builders/prompt-builder.d.ts +12 -0
  38. package/lib/esm/builders/prompt-builder.js +72 -0
  39. package/lib/esm/builders/prompt-builder.js.map +1 -0
  40. package/lib/esm/builders/resource-builder.d.ts +14 -0
  41. package/lib/esm/builders/resource-builder.js +79 -0
  42. package/lib/esm/builders/resource-builder.js.map +1 -0
  43. package/lib/esm/builders/tool-builder.d.ts +16 -0
  44. package/lib/esm/builders/tool-builder.js +100 -0
  45. package/lib/esm/builders/tool-builder.js.map +1 -0
  46. package/lib/esm/constants.d.ts +19 -24
  47. package/lib/esm/constants.js +27 -29
  48. package/lib/esm/constants.js.map +1 -0
  49. package/lib/esm/environment.d.ts +71 -0
  50. package/lib/esm/environment.js +29 -0
  51. package/lib/esm/environment.js.map +1 -0
  52. package/lib/esm/index.d.ts +3 -10
  53. package/lib/esm/index.js +4 -11
  54. package/lib/esm/index.js.map +1 -0
  55. package/lib/esm/mcp-server.d.ts +10 -0
  56. package/lib/esm/mcp-server.js +189 -0
  57. package/lib/esm/mcp-server.js.map +1 -0
  58. package/lib/esm/modules/template-module/index.d.ts +6 -0
  59. package/lib/esm/modules/template-module/index.js +4 -0
  60. package/lib/esm/modules/template-module/index.js.map +1 -0
  61. package/lib/esm/prompts/code/constants.d.ts +1 -0
  62. package/lib/esm/prompts/code/constants.js +2 -0
  63. package/lib/esm/prompts/code/constants.js.map +1 -0
  64. package/lib/esm/prompts/code/design-patterns/builder.d.ts +2 -0
  65. package/lib/esm/prompts/code/design-patterns/builder.js +118 -0
  66. package/lib/esm/prompts/code/design-patterns/builder.js.map +1 -0
  67. package/lib/esm/prompts/code/design-patterns/constants.d.ts +1 -0
  68. package/lib/esm/prompts/code/design-patterns/constants.js +3 -0
  69. package/lib/esm/prompts/code/design-patterns/constants.js.map +1 -0
  70. package/lib/esm/prompts/example-prompt/index.d.ts +2 -0
  71. package/lib/esm/prompts/example-prompt/index.js +18 -0
  72. package/lib/esm/prompts/example-prompt/index.js.map +1 -0
  73. package/lib/esm/prompts/index.d.ts +2 -0
  74. package/lib/esm/prompts/index.js +26 -0
  75. package/lib/esm/prompts/index.js.map +1 -0
  76. package/lib/esm/prompts/interactive-jsdoc/index.d.ts +2 -0
  77. package/lib/esm/prompts/interactive-jsdoc/index.js +18 -0
  78. package/lib/esm/prompts/interactive-jsdoc/index.js.map +1 -0
  79. package/lib/esm/prompts/jsdocs/class-prompt.d.ts +2 -0
  80. package/lib/esm/prompts/jsdocs/class-prompt.js +52 -0
  81. package/lib/esm/prompts/jsdocs/class-prompt.js.map +1 -0
  82. package/lib/esm/prompts/jsdocs/const-prompt.d.ts +2 -0
  83. package/lib/esm/prompts/jsdocs/const-prompt.js +24 -0
  84. package/lib/esm/prompts/jsdocs/const-prompt.js.map +1 -0
  85. package/lib/esm/prompts/jsdocs/constants.d.ts +4 -0
  86. package/lib/esm/prompts/jsdocs/constants.js +46 -0
  87. package/lib/esm/prompts/jsdocs/constants.js.map +1 -0
  88. package/lib/esm/prompts/jsdocs/decorator-prompt.d.ts +2 -0
  89. package/lib/esm/prompts/jsdocs/decorator-prompt.js +42 -0
  90. package/lib/esm/prompts/jsdocs/decorator-prompt.js.map +1 -0
  91. package/lib/esm/prompts/jsdocs/enum-prompt.d.ts +2 -0
  92. package/lib/esm/prompts/jsdocs/enum-prompt.js +24 -0
  93. package/lib/esm/prompts/jsdocs/enum-prompt.js.map +1 -0
  94. package/lib/esm/prompts/jsdocs/function-prompt.d.ts +2 -0
  95. package/lib/esm/prompts/jsdocs/function-prompt.js +43 -0
  96. package/lib/esm/prompts/jsdocs/function-prompt.js.map +1 -0
  97. package/lib/esm/prompts/jsdocs/interface-prompt.d.ts +2 -0
  98. package/lib/esm/prompts/jsdocs/interface-prompt.js +24 -0
  99. package/lib/esm/prompts/jsdocs/interface-prompt.js.map +1 -0
  100. package/lib/esm/prompts/jsdocs/types-prompt.d.ts +2 -0
  101. package/lib/esm/prompts/jsdocs/types-prompt.js +24 -0
  102. package/lib/esm/prompts/jsdocs/types-prompt.js.map +1 -0
  103. package/lib/esm/resources/example-resource/index.d.ts +2 -0
  104. package/lib/esm/resources/example-resource/index.js +19 -0
  105. package/lib/esm/resources/example-resource/index.js.map +1 -0
  106. package/lib/esm/resources/index.d.ts +2 -0
  107. package/lib/esm/resources/index.js +4 -0
  108. package/lib/esm/resources/index.js.map +1 -0
  109. package/lib/esm/resources/repo-metadata/index.d.ts +2 -0
  110. package/lib/esm/resources/repo-metadata/index.js +25 -0
  111. package/lib/esm/resources/repo-metadata/index.js.map +1 -0
  112. package/lib/esm/tools/ast/ts-ast-tool.d.ts +2 -0
  113. package/lib/esm/tools/ast/ts-ast-tool.js +67 -0
  114. package/lib/esm/tools/ast/ts-ast-tool.js.map +1 -0
  115. package/lib/esm/tools/ast/types.d.ts +105 -0
  116. package/lib/esm/tools/ast/types.js +33 -0
  117. package/lib/esm/tools/ast/types.js.map +1 -0
  118. package/lib/esm/tools/ast/utils.d.ts +5 -0
  119. package/lib/esm/tools/ast/utils.js +58 -0
  120. package/lib/esm/tools/ast/utils.js.map +1 -0
  121. package/lib/esm/tools/ast-jsdoc-tools/apply.d.ts +6 -0
  122. package/lib/esm/tools/ast-jsdoc-tools/apply.js +29 -0
  123. package/lib/esm/tools/ast-jsdoc-tools/apply.js.map +1 -0
  124. package/lib/esm/tools/ast-jsdoc-tools/cli.js +33 -0
  125. package/lib/esm/tools/ast-jsdoc-tools/cli.js.map +1 -0
  126. package/lib/esm/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
  127. package/lib/esm/tools/ast-jsdoc-tools/enumerator.js +25 -0
  128. package/lib/esm/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
  129. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
  130. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js +29 -0
  131. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
  132. package/lib/esm/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
  133. package/lib/esm/tools/ast-jsdoc-tools/formatter.js +18 -0
  134. package/lib/esm/tools/ast-jsdoc-tools/formatter.js.map +1 -0
  135. package/lib/esm/tools/ast-jsdoc-tools/generator.d.ts +12 -0
  136. package/lib/esm/tools/ast-jsdoc-tools/generator.js +55 -0
  137. package/lib/esm/tools/ast-jsdoc-tools/generator.js.map +1 -0
  138. package/lib/esm/tools/ast-jsdoc-tools/index.d.ts +7 -0
  139. package/lib/esm/tools/ast-jsdoc-tools/index.js +29 -0
  140. package/lib/esm/tools/ast-jsdoc-tools/index.js.map +1 -0
  141. package/lib/esm/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
  142. package/lib/esm/tools/ast-jsdoc-tools/interactive.js +7 -0
  143. package/lib/esm/tools/ast-jsdoc-tools/interactive.js.map +1 -0
  144. package/lib/esm/tools/ast-jsdoc-tools/parser.d.ts +13 -0
  145. package/lib/esm/tools/ast-jsdoc-tools/parser.js +71 -0
  146. package/lib/esm/tools/ast-jsdoc-tools/parser.js.map +1 -0
  147. package/lib/esm/tools/ast-jsdoc-tools/patch.d.ts +2 -0
  148. package/lib/esm/tools/ast-jsdoc-tools/patch.js +23 -0
  149. package/lib/esm/tools/ast-jsdoc-tools/patch.js.map +1 -0
  150. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
  151. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js +26 -0
  152. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
  153. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
  154. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js +61 -0
  155. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
  156. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
  157. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js +78 -0
  158. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
  159. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
  160. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js +30 -0
  161. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
  162. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
  163. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js +29 -0
  164. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
  165. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
  166. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js +31 -0
  167. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
  168. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
  169. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js +21 -0
  170. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
  171. package/lib/esm/tools/example-tool/index.d.ts +2 -0
  172. package/lib/esm/tools/example-tool/index.js +29 -0
  173. package/lib/esm/tools/example-tool/index.js.map +1 -0
  174. package/lib/esm/tools/file-summarizer/index.d.ts +2 -0
  175. package/lib/esm/tools/file-summarizer/index.js +29 -0
  176. package/lib/esm/tools/file-summarizer/index.js.map +1 -0
  177. package/lib/esm/tools/index.d.ts +2 -0
  178. package/lib/esm/tools/index.js +6 -0
  179. package/lib/esm/tools/index.js.map +1 -0
  180. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
  181. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js +84 -0
  182. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
  183. package/lib/esm/tools/jsdoc/utils.d.ts +5 -0
  184. package/lib/esm/tools/jsdoc/utils.js +53 -0
  185. package/lib/esm/tools/jsdoc/utils.js.map +1 -0
  186. package/lib/esm/tools/testing/ts-jest-list-tests.d.ts +2 -0
  187. package/lib/esm/tools/testing/ts-jest-list-tests.js +53 -0
  188. package/lib/esm/tools/testing/ts-jest-list-tests.js.map +1 -0
  189. package/lib/esm/types.d.ts +56 -47
  190. package/lib/esm/types.js +1 -1
  191. package/lib/esm/types.js.map +1 -0
  192. package/lib/esm/utils/banner.d.ts +3 -0
  193. package/lib/esm/utils/banner.js +107 -0
  194. package/lib/esm/utils/banner.js.map +1 -0
  195. package/lib/esm/version.d.ts +2 -0
  196. package/lib/esm/version.js +5 -0
  197. package/lib/esm/version.js.map +1 -0
  198. package/lib/index.cjs +4 -11
  199. package/lib/index.d.ts +3 -10
  200. package/lib/index.js.map +1 -0
  201. package/lib/mcp-server.cjs +226 -0
  202. package/lib/mcp-server.d.ts +10 -0
  203. package/lib/mcp-server.js.map +1 -0
  204. package/lib/modules/template-module/index.cjs +7 -0
  205. package/lib/modules/template-module/index.d.ts +6 -0
  206. package/lib/modules/template-module/index.js.map +1 -0
  207. package/lib/prompts/code/constants.cjs +5 -0
  208. package/lib/prompts/code/constants.d.ts +1 -0
  209. package/lib/prompts/code/constants.js.map +1 -0
  210. package/lib/prompts/code/design-patterns/builder.cjs +121 -0
  211. package/lib/prompts/code/design-patterns/builder.d.ts +2 -0
  212. package/lib/prompts/code/design-patterns/builder.js.map +1 -0
  213. package/lib/prompts/code/design-patterns/constants.cjs +6 -0
  214. package/lib/prompts/code/design-patterns/constants.d.ts +1 -0
  215. package/lib/prompts/code/design-patterns/constants.js.map +1 -0
  216. package/lib/prompts/example-prompt/index.cjs +21 -0
  217. package/lib/prompts/example-prompt/index.d.ts +2 -0
  218. package/lib/prompts/example-prompt/index.js.map +1 -0
  219. package/lib/prompts/index.cjs +29 -0
  220. package/lib/prompts/index.d.ts +2 -0
  221. package/lib/prompts/index.js.map +1 -0
  222. package/lib/prompts/interactive-jsdoc/index.cjs +21 -0
  223. package/lib/prompts/interactive-jsdoc/index.d.ts +2 -0
  224. package/lib/prompts/interactive-jsdoc/index.js.map +1 -0
  225. package/lib/prompts/jsdocs/class-prompt.cjs +55 -0
  226. package/lib/prompts/jsdocs/class-prompt.d.ts +2 -0
  227. package/lib/prompts/jsdocs/class-prompt.js.map +1 -0
  228. package/lib/prompts/jsdocs/const-prompt.cjs +27 -0
  229. package/lib/prompts/jsdocs/const-prompt.d.ts +2 -0
  230. package/lib/prompts/jsdocs/const-prompt.js.map +1 -0
  231. package/lib/prompts/jsdocs/constants.cjs +49 -0
  232. package/lib/prompts/jsdocs/constants.d.ts +4 -0
  233. package/lib/prompts/jsdocs/constants.js.map +1 -0
  234. package/lib/prompts/jsdocs/decorator-prompt.cjs +45 -0
  235. package/lib/prompts/jsdocs/decorator-prompt.d.ts +2 -0
  236. package/lib/prompts/jsdocs/decorator-prompt.js.map +1 -0
  237. package/lib/prompts/jsdocs/enum-prompt.cjs +27 -0
  238. package/lib/prompts/jsdocs/enum-prompt.d.ts +2 -0
  239. package/lib/prompts/jsdocs/enum-prompt.js.map +1 -0
  240. package/lib/prompts/jsdocs/function-prompt.cjs +46 -0
  241. package/lib/prompts/jsdocs/function-prompt.d.ts +2 -0
  242. package/lib/prompts/jsdocs/function-prompt.js.map +1 -0
  243. package/lib/prompts/jsdocs/interface-prompt.cjs +27 -0
  244. package/lib/prompts/jsdocs/interface-prompt.d.ts +2 -0
  245. package/lib/prompts/jsdocs/interface-prompt.js.map +1 -0
  246. package/lib/prompts/jsdocs/types-prompt.cjs +27 -0
  247. package/lib/prompts/jsdocs/types-prompt.d.ts +2 -0
  248. package/lib/prompts/jsdocs/types-prompt.js.map +1 -0
  249. package/lib/resources/example-resource/index.cjs +22 -0
  250. package/lib/resources/example-resource/index.d.ts +2 -0
  251. package/lib/resources/example-resource/index.js.map +1 -0
  252. package/lib/resources/index.cjs +7 -0
  253. package/lib/resources/index.d.ts +2 -0
  254. package/lib/resources/index.js.map +1 -0
  255. package/lib/resources/repo-metadata/index.cjs +28 -0
  256. package/lib/resources/repo-metadata/index.d.ts +2 -0
  257. package/lib/resources/repo-metadata/index.js.map +1 -0
  258. package/lib/tools/ast/ts-ast-tool.cjs +70 -0
  259. package/lib/tools/ast/ts-ast-tool.d.ts +2 -0
  260. package/lib/tools/ast/ts-ast-tool.js.map +1 -0
  261. package/lib/tools/ast/types.cjs +36 -0
  262. package/lib/tools/ast/types.d.ts +105 -0
  263. package/lib/tools/ast/types.js.map +1 -0
  264. package/lib/tools/ast/utils.cjs +65 -0
  265. package/lib/tools/ast/utils.d.ts +5 -0
  266. package/lib/tools/ast/utils.js.map +1 -0
  267. package/lib/tools/ast-jsdoc-tools/apply.cjs +36 -0
  268. package/lib/tools/ast-jsdoc-tools/apply.d.ts +6 -0
  269. package/lib/tools/ast-jsdoc-tools/apply.js.map +1 -0
  270. package/lib/tools/ast-jsdoc-tools/cli.cjs +38 -0
  271. package/lib/tools/ast-jsdoc-tools/cli.js.map +1 -0
  272. package/lib/tools/ast-jsdoc-tools/enumerator.cjs +31 -0
  273. package/lib/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
  274. package/lib/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
  275. package/lib/tools/ast-jsdoc-tools/fileRunner.cjs +35 -0
  276. package/lib/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
  277. package/lib/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
  278. package/lib/tools/ast-jsdoc-tools/formatter.cjs +21 -0
  279. package/lib/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
  280. package/lib/tools/ast-jsdoc-tools/formatter.js.map +1 -0
  281. package/lib/tools/ast-jsdoc-tools/generator.cjs +58 -0
  282. package/lib/tools/ast-jsdoc-tools/generator.d.ts +12 -0
  283. package/lib/tools/ast-jsdoc-tools/generator.js.map +1 -0
  284. package/lib/tools/ast-jsdoc-tools/index.cjs +33 -0
  285. package/lib/tools/ast-jsdoc-tools/index.d.ts +7 -0
  286. package/lib/tools/ast-jsdoc-tools/index.js.map +1 -0
  287. package/lib/tools/ast-jsdoc-tools/interactive.cjs +10 -0
  288. package/lib/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
  289. package/lib/tools/ast-jsdoc-tools/interactive.js.map +1 -0
  290. package/lib/tools/ast-jsdoc-tools/parser.cjs +77 -0
  291. package/lib/tools/ast-jsdoc-tools/parser.d.ts +13 -0
  292. package/lib/tools/ast-jsdoc-tools/parser.js.map +1 -0
  293. package/lib/tools/ast-jsdoc-tools/patch.cjs +29 -0
  294. package/lib/tools/ast-jsdoc-tools/patch.d.ts +2 -0
  295. package/lib/tools/ast-jsdoc-tools/patch.js.map +1 -0
  296. package/lib/tools/ast-jsdoc-tools/prompts/loader.cjs +32 -0
  297. package/lib/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
  298. package/lib/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
  299. package/lib/tools/ast-jsdoc-tools/repoRunner.cjs +67 -0
  300. package/lib/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
  301. package/lib/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
  302. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.cjs +81 -0
  303. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
  304. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
  305. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.cjs +33 -0
  306. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
  307. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
  308. package/lib/tools/ast-jsdoc-tools/utils/context-schema.cjs +32 -0
  309. package/lib/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
  310. package/lib/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
  311. package/lib/tools/ast-jsdoc-tools/utils/heuristics.cjs +34 -0
  312. package/lib/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
  313. package/lib/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
  314. package/lib/tools/ast-jsdoc-tools/utils/ts-project.cjs +57 -0
  315. package/lib/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
  316. package/lib/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
  317. package/lib/tools/example-tool/index.cjs +32 -0
  318. package/lib/tools/example-tool/index.d.ts +2 -0
  319. package/lib/tools/example-tool/index.js.map +1 -0
  320. package/lib/tools/file-summarizer/index.cjs +32 -0
  321. package/lib/tools/file-summarizer/index.d.ts +2 -0
  322. package/lib/tools/file-summarizer/index.js.map +1 -0
  323. package/lib/tools/index.cjs +9 -0
  324. package/lib/tools/index.d.ts +2 -0
  325. package/lib/tools/index.js.map +1 -0
  326. package/lib/tools/jsdoc/ts-jsdoc-element-tool.cjs +87 -0
  327. package/lib/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
  328. package/lib/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
  329. package/lib/tools/jsdoc/utils.cjs +60 -0
  330. package/lib/tools/jsdoc/utils.d.ts +5 -0
  331. package/lib/tools/jsdoc/utils.js.map +1 -0
  332. package/lib/tools/testing/ts-jest-list-tests.cjs +56 -0
  333. package/lib/tools/testing/ts-jest-list-tests.d.ts +2 -0
  334. package/lib/tools/testing/ts-jest-list-tests.js.map +1 -0
  335. package/lib/types.cjs +1 -1
  336. package/lib/types.d.ts +56 -47
  337. package/lib/types.js.map +1 -0
  338. package/lib/utils/banner.cjs +114 -0
  339. package/lib/utils/banner.d.ts +3 -0
  340. package/lib/utils/banner.js.map +1 -0
  341. package/lib/version.cjs +8 -0
  342. package/lib/version.d.ts +2 -0
  343. package/lib/version.js.map +1 -0
  344. package/package.json +14 -63
  345. package/dist/mcp-server.esm.cjs +0 -2314
  346. package/lib/McpWrapper.cjs +0 -233
  347. package/lib/McpWrapper.d.ts +0 -89
  348. package/lib/bin/validate-modules.cjs +0 -24
  349. package/lib/esm/McpWrapper.d.ts +0 -89
  350. package/lib/esm/McpWrapper.js +0 -196
  351. package/lib/esm/bin/validate-modules.js +0 -22
  352. package/lib/esm/mcp/aggregateModules.d.ts +0 -26
  353. package/lib/esm/mcp/aggregateModules.js +0 -185
  354. package/lib/esm/mcp/code.d.ts +0 -23
  355. package/lib/esm/mcp/code.js +0 -70
  356. package/lib/esm/mcp/decorator-tools.d.ts +0 -118
  357. package/lib/esm/mcp/decorator-tools.js +0 -237
  358. package/lib/esm/mcp/fastmcp-wiring.d.ts +0 -14
  359. package/lib/esm/mcp/fastmcp-wiring.js +0 -56
  360. package/lib/esm/mcp/index.d.ts +0 -9
  361. package/lib/esm/mcp/index.js +0 -29
  362. package/lib/esm/mcp/mcp-module.d.ts +0 -11
  363. package/lib/esm/mcp/mcp-module.js +0 -31
  364. package/lib/esm/mcp/moduleRegistry.d.ts +0 -14
  365. package/lib/esm/mcp/moduleRegistry.js +0 -47
  366. package/lib/esm/mcp/prompts/index.d.ts +0 -4
  367. package/lib/esm/mcp/prompts/index.js +0 -7
  368. package/lib/esm/mcp/prompts/prompts.d.ts +0 -22
  369. package/lib/esm/mcp/prompts/prompts.js +0 -203
  370. package/lib/esm/mcp/resources/index.d.ts +0 -1
  371. package/lib/esm/mcp/resources/index.js +0 -2
  372. package/lib/esm/mcp/resources/resources.d.ts +0 -2
  373. package/lib/esm/mcp/resources/resources.js +0 -69
  374. package/lib/esm/mcp/schemas.d.ts +0 -53
  375. package/lib/esm/mcp/schemas.js +0 -97
  376. package/lib/esm/mcp/templates/codex-templates.d.ts +0 -3
  377. package/lib/esm/mcp/templates/codex-templates.js +0 -33
  378. package/lib/esm/mcp/templates/index.d.ts +0 -71
  379. package/lib/esm/mcp/templates/index.js +0 -66
  380. package/lib/esm/mcp/templates/resource-templates.d.ts +0 -3
  381. package/lib/esm/mcp/templates/resource-templates.js +0 -60
  382. package/lib/esm/mcp/templates/workspace-templates.d.ts +0 -3
  383. package/lib/esm/mcp/templates/workspace-templates.js +0 -66
  384. package/lib/esm/mcp/tools/codex-tools.d.ts +0 -5
  385. package/lib/esm/mcp/tools/codex-tools.js +0 -244
  386. package/lib/esm/mcp/tools/generateMcpModule.d.ts +0 -9
  387. package/lib/esm/mcp/tools/generateMcpModule.js +0 -133
  388. package/lib/esm/mcp/tools/index.d.ts +0 -219
  389. package/lib/esm/mcp/tools/index.js +0 -27
  390. package/lib/esm/mcp/tools/tools.d.ts +0 -10
  391. package/lib/esm/mcp/tools/tools.js +0 -275
  392. package/lib/esm/mcp/types.d.ts +0 -66
  393. package/lib/esm/mcp/types.js +0 -2
  394. package/lib/esm/mcp/utils.d.ts +0 -3
  395. package/lib/esm/mcp/utils.js +0 -46
  396. package/lib/esm/mcp/validation/index.d.ts +0 -13
  397. package/lib/esm/mcp/validation/index.js +0 -116
  398. package/lib/esm/mcp/validation/scaffoldModule.d.ts +0 -9
  399. package/lib/esm/mcp/validation/scaffoldModule.js +0 -88
  400. package/lib/esm/mcp/workspace.d.ts +0 -9
  401. package/lib/esm/mcp/workspace.js +0 -73
  402. package/lib/esm/metadata.d.ts +0 -9
  403. package/lib/esm/metadata.js +0 -22
  404. package/lib/esm/modules/_template/index.d.ts +0 -32
  405. package/lib/esm/modules/_template/index.js +0 -16
  406. package/lib/esm/modules/_template/prompts/index.d.ts +0 -6
  407. package/lib/esm/modules/_template/prompts/index.js +0 -9
  408. package/lib/esm/modules/_template/resources/index.d.ts +0 -6
  409. package/lib/esm/modules/_template/resources/index.js +0 -9
  410. package/lib/esm/modules/_template/templates/index.d.ts +0 -7
  411. package/lib/esm/modules/_template/templates/index.js +0 -10
  412. package/lib/esm/modules/_template/tools/index.d.ts +0 -6
  413. package/lib/esm/modules/_template/tools/index.js +0 -15
  414. package/lib/esm/modules/decoration/index.d.ts +0 -46
  415. package/lib/esm/modules/decoration/index.js +0 -10
  416. package/lib/esm/modules/decoration/prompts/index.d.ts +0 -1
  417. package/lib/esm/modules/decoration/prompts/index.js +0 -2
  418. package/lib/esm/modules/decoration/resources/index.d.ts +0 -7
  419. package/lib/esm/modules/decoration/resources/index.js +0 -10
  420. package/lib/esm/modules/decoration/templates/index.d.ts +0 -6
  421. package/lib/esm/modules/decoration/templates/index.js +0 -9
  422. package/lib/esm/modules/decoration/tools/index.d.ts +0 -26
  423. package/lib/esm/modules/decoration/tools/index.js +0 -7
  424. package/lib/esm/modules/index.d.ts +0 -2
  425. package/lib/esm/modules/index.js +0 -17
  426. package/lib/esm/modules/mcp/decoration-assist.d.ts +0 -4
  427. package/lib/esm/modules/mcp/decoration-assist.js +0 -6
  428. package/lib/esm/modules/mcp/index.d.ts +0 -6
  429. package/lib/esm/modules/mcp/index.js +0 -16
  430. package/lib/esm/modules/mcp/prompts/index.d.ts +0 -2
  431. package/lib/esm/modules/mcp/prompts/index.js +0 -9
  432. package/lib/esm/modules/mcp/resources/index.d.ts +0 -2
  433. package/lib/esm/modules/mcp/resources/index.js +0 -24
  434. package/lib/esm/modules/mcp/templates/index.d.ts +0 -2
  435. package/lib/esm/modules/mcp/templates/index.js +0 -28
  436. package/lib/esm/modules/mcp/tools/index.d.ts +0 -6
  437. package/lib/esm/modules/mcp/tools/index.js +0 -15
  438. package/lib/esm/utils/modulePaths.d.ts +0 -6
  439. package/lib/esm/utils/modulePaths.js +0 -33
  440. package/lib/esm/utils/moduleValidator.d.ts +0 -14
  441. package/lib/esm/utils/moduleValidator.js +0 -176
  442. package/lib/esm/utils.d.ts +0 -61
  443. package/lib/esm/utils.js +0 -86
  444. package/lib/mcp/aggregateModules.cjs +0 -225
  445. package/lib/mcp/aggregateModules.d.ts +0 -26
  446. package/lib/mcp/code.cjs +0 -81
  447. package/lib/mcp/code.d.ts +0 -23
  448. package/lib/mcp/decorator-tools.cjs +0 -243
  449. package/lib/mcp/decorator-tools.d.ts +0 -118
  450. package/lib/mcp/fastmcp-wiring.cjs +0 -59
  451. package/lib/mcp/fastmcp-wiring.d.ts +0 -14
  452. package/lib/mcp/index.cjs +0 -57
  453. package/lib/mcp/index.d.ts +0 -9
  454. package/lib/mcp/mcp-module.cjs +0 -46
  455. package/lib/mcp/mcp-module.d.ts +0 -11
  456. package/lib/mcp/moduleRegistry.cjs +0 -52
  457. package/lib/mcp/moduleRegistry.d.ts +0 -14
  458. package/lib/mcp/prompts/index.cjs +0 -25
  459. package/lib/mcp/prompts/index.d.ts +0 -4
  460. package/lib/mcp/prompts/prompts.cjs +0 -217
  461. package/lib/mcp/prompts/prompts.d.ts +0 -22
  462. package/lib/mcp/resources/index.d.ts +0 -1
  463. package/lib/mcp/resources/resources.cjs +0 -72
  464. package/lib/mcp/resources/resources.d.ts +0 -2
  465. package/lib/mcp/schemas.cjs +0 -100
  466. package/lib/mcp/schemas.d.ts +0 -53
  467. package/lib/mcp/templates/codex-templates.cjs +0 -40
  468. package/lib/mcp/templates/codex-templates.d.ts +0 -3
  469. package/lib/mcp/templates/index.cjs +0 -76
  470. package/lib/mcp/templates/index.d.ts +0 -71
  471. package/lib/mcp/templates/resource-templates.cjs +0 -67
  472. package/lib/mcp/templates/resource-templates.d.ts +0 -3
  473. package/lib/mcp/templates/workspace-templates.cjs +0 -70
  474. package/lib/mcp/templates/workspace-templates.d.ts +0 -3
  475. package/lib/mcp/tools/codex-tools.cjs +0 -250
  476. package/lib/mcp/tools/codex-tools.d.ts +0 -5
  477. package/lib/mcp/tools/generateMcpModule.cjs +0 -139
  478. package/lib/mcp/tools/generateMcpModule.d.ts +0 -9
  479. package/lib/mcp/tools/index.cjs +0 -30
  480. package/lib/mcp/tools/index.d.ts +0 -219
  481. package/lib/mcp/tools/tools.cjs +0 -317
  482. package/lib/mcp/tools/tools.d.ts +0 -10
  483. package/lib/mcp/types.cjs +0 -3
  484. package/lib/mcp/types.d.ts +0 -66
  485. package/lib/mcp/utils.cjs +0 -54
  486. package/lib/mcp/utils.d.ts +0 -3
  487. package/lib/mcp/validation/index.cjs +0 -123
  488. package/lib/mcp/validation/index.d.ts +0 -13
  489. package/lib/mcp/validation/scaffoldModule.cjs +0 -94
  490. package/lib/mcp/validation/scaffoldModule.d.ts +0 -9
  491. package/lib/mcp/workspace.cjs +0 -119
  492. package/lib/mcp/workspace.d.ts +0 -9
  493. package/lib/metadata.cjs +0 -25
  494. package/lib/metadata.d.ts +0 -9
  495. package/lib/modules/_template/index.cjs +0 -23
  496. package/lib/modules/_template/index.d.ts +0 -32
  497. package/lib/modules/_template/prompts/index.cjs +0 -12
  498. package/lib/modules/_template/prompts/index.d.ts +0 -6
  499. package/lib/modules/_template/resources/index.cjs +0 -12
  500. package/lib/modules/_template/resources/index.d.ts +0 -6
  501. package/lib/modules/_template/templates/index.cjs +0 -13
  502. package/lib/modules/_template/templates/index.d.ts +0 -7
  503. package/lib/modules/_template/tools/index.cjs +0 -18
  504. package/lib/modules/_template/tools/index.d.ts +0 -6
  505. package/lib/modules/decoration/index.cjs +0 -17
  506. package/lib/modules/decoration/index.d.ts +0 -46
  507. package/lib/modules/decoration/prompts/index.cjs +0 -5
  508. package/lib/modules/decoration/prompts/index.d.ts +0 -1
  509. package/lib/modules/decoration/resources/index.cjs +0 -13
  510. package/lib/modules/decoration/resources/index.d.ts +0 -7
  511. package/lib/modules/decoration/templates/index.cjs +0 -12
  512. package/lib/modules/decoration/templates/index.d.ts +0 -6
  513. package/lib/modules/decoration/tools/index.cjs +0 -10
  514. package/lib/modules/decoration/tools/index.d.ts +0 -26
  515. package/lib/modules/index.cjs +0 -20
  516. package/lib/modules/index.d.ts +0 -2
  517. package/lib/modules/mcp/decoration-assist.cjs +0 -13
  518. package/lib/modules/mcp/decoration-assist.d.ts +0 -4
  519. package/lib/modules/mcp/index.cjs +0 -23
  520. package/lib/modules/mcp/index.d.ts +0 -6
  521. package/lib/modules/mcp/prompts/index.cjs +0 -12
  522. package/lib/modules/mcp/prompts/index.d.ts +0 -2
  523. package/lib/modules/mcp/resources/index.cjs +0 -27
  524. package/lib/modules/mcp/resources/index.d.ts +0 -2
  525. package/lib/modules/mcp/templates/index.cjs +0 -31
  526. package/lib/modules/mcp/templates/index.d.ts +0 -2
  527. package/lib/modules/mcp/tools/index.cjs +0 -18
  528. package/lib/modules/mcp/tools/index.d.ts +0 -6
  529. package/lib/utils/modulePaths.cjs +0 -43
  530. package/lib/utils/modulePaths.d.ts +0 -6
  531. package/lib/utils/moduleValidator.cjs +0 -184
  532. package/lib/utils/moduleValidator.d.ts +0 -14
  533. package/lib/utils.cjs +0 -129
  534. package/lib/utils.d.ts +0 -61
  535. /package/lib/{bin/validate-modules.d.ts → esm/tools/ast-jsdoc-tools/cli.d.ts} +0 -0
  536. /package/lib/{esm/bin/validate-modules.d.ts → tools/ast-jsdoc-tools/cli.d.ts} +0 -0
@@ -1,66 +0,0 @@
1
- import { z } from "zod";
2
- import { analyzeRepoSchema, enumerateCapabilitiesSchema, planFeatureSchema, documentCodeSchema, codeChangeSchema, documentObjectSchema, coverageTaskSchema, readmeImprovementSchema } from "./schemas";
3
- export type AnalyzeRepoArgs = z.infer<typeof analyzeRepoSchema>;
4
- export type EnumerateCapabilitiesArgs = z.infer<typeof enumerateCapabilitiesSchema>;
5
- export type PlanFeatureArgs = z.infer<typeof planFeatureSchema>;
6
- export type DecorationResourceTemplate = {
7
- name: string;
8
- description: string;
9
- uriTemplate: string;
10
- mimeType: string;
11
- arguments: ReadonlyArray<{
12
- name: string;
13
- description: string;
14
- required: boolean;
15
- }>;
16
- load: (args: {
17
- path: string;
18
- }) => Promise<{
19
- text: string;
20
- }>;
21
- };
22
- export type DocumentCodeArgs = z.infer<typeof documentCodeSchema>;
23
- export type ApplyCodeChangeArgs = z.infer<typeof codeChangeSchema>;
24
- export type DocumentObjectArgs = z.infer<typeof documentObjectSchema>;
25
- export type CoverageTaskArgs = z.infer<typeof coverageTaskSchema>;
26
- export type ReadmeImprovementArgs = z.infer<typeof readmeImprovementSchema>;
27
- export type DocPrompt = {
28
- name: string;
29
- title: string;
30
- description: string;
31
- content: string;
32
- absolutePath: string;
33
- };
34
- export type WorkspaceResourceTemplate = {
35
- name: string;
36
- description: string;
37
- uriTemplate: string;
38
- mimeType: string;
39
- arguments: ReadonlyArray<{
40
- name: string;
41
- description: string;
42
- required: boolean;
43
- }>;
44
- load: (args: {
45
- path: string;
46
- }) => Promise<{
47
- text: string;
48
- }>;
49
- };
50
- export type PromptResourceTemplate = {
51
- name: string;
52
- description: string;
53
- uriTemplate: string;
54
- mimeType: string;
55
- arguments: ReadonlyArray<{
56
- name: string;
57
- description: string;
58
- required: boolean;
59
- }>;
60
- load: (args: {
61
- name: string;
62
- }) => Promise<{
63
- text: string;
64
- uri?: string;
65
- }>;
66
- };
package/lib/mcp/utils.cjs DELETED
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.readFileSafe = readFileSafe;
7
- exports.listFilesRecursive = listFilesRecursive;
8
- exports.deriveCapabilities = deriveCapabilities;
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- function readFileSafe(filePath, encoding = "utf8") {
12
- try {
13
- return fs_1.default.readFileSync(filePath, { encoding });
14
- }
15
- catch {
16
- return undefined;
17
- }
18
- }
19
- function listFilesRecursive(root, matcher) {
20
- const out = [];
21
- const stack = [root];
22
- while (stack.length) {
23
- const cur = stack.pop();
24
- const stat = fs_1.default.statSync(cur);
25
- if (stat.isDirectory()) {
26
- for (const f of fs_1.default.readdirSync(cur))
27
- stack.push(path_1.default.join(cur, f));
28
- }
29
- else if (!matcher || matcher(cur)) {
30
- out.push(cur);
31
- }
32
- }
33
- return out.sort();
34
- }
35
- function deriveCapabilities(analysis) {
36
- const cap = new Set();
37
- // heuristics: if decorators like Decoration, flavouredAs, extend, override appear, add capabilities
38
- const allDecs = new Set();
39
- for (const k of Object.keys(analysis.api)) {
40
- for (const d of analysis.api[k].decorators)
41
- allDecs.add(d);
42
- for (const e of analysis.api[k].exports)
43
- if (/Decoration|decorate|Builder|Flavour/i.test(e))
44
- cap.add("use-decoration-api");
45
- }
46
- if ([...allDecs].some((d) => /override|extend/i.test(d)))
47
- cap.add("override-and-extend-decorations");
48
- if (Object.keys(analysis.tests).length > 0)
49
- cap.add("validate-with-tests");
50
- if (analysis.readme)
51
- cap.add("follow-readme-guides");
52
- return [...cap].sort();
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWNwL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esb0NBU0M7QUFFRCxnREFnQkM7QUFFRCxnREFlQztBQS9DRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBRXhCLFNBQWdCLFlBQVksQ0FDMUIsUUFBZ0IsRUFDaEIsV0FBMkIsTUFBTTtJQUVqQyxJQUFJLENBQUM7UUFDSCxPQUFPLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsSUFBWSxFQUNaLE9BQWdDO0lBRWhDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUcsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxZQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLENBQUMsSUFBSSxZQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFhO0lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDOUIsb0dBQW9HO0lBQ3BHLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDbEMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1lBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUNyQyxJQUFJLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELEdBQUcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzdDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsSUFBSSxRQUFRLENBQUMsTUFBTTtRQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlU2FmZShcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nID0gXCJ1dGY4XCJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZyB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdEZpbGVzUmVjdXJzaXZlKFxuICByb290OiBzdHJpbmcsXG4gIG1hdGNoZXI/OiAocDogc3RyaW5nKSA9PiBib29sZWFuXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW3Jvb3RdO1xuICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgY29uc3QgY3VyID0gc3RhY2sucG9wKCkhO1xuICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhjdXIpO1xuICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmcy5yZWFkZGlyU3luYyhjdXIpKSBzdGFjay5wdXNoKHBhdGguam9pbihjdXIsIGYpKTtcbiAgICB9IGVsc2UgaWYgKCFtYXRjaGVyIHx8IG1hdGNoZXIoY3VyKSkge1xuICAgICAgb3V0LnB1c2goY3VyKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dC5zb3J0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVDYXBhYmlsaXRpZXMoYW5hbHlzaXM6IGFueSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgY2FwID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIC8vIGhldXJpc3RpY3M6IGlmIGRlY29yYXRvcnMgbGlrZSBEZWNvcmF0aW9uLCBmbGF2b3VyZWRBcywgZXh0ZW5kLCBvdmVycmlkZSBhcHBlYXIsIGFkZCBjYXBhYmlsaXRpZXNcbiAgY29uc3QgYWxsRGVjcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYW5hbHlzaXMuYXBpKSkge1xuICAgIGZvciAoY29uc3QgZCBvZiBhbmFseXNpcy5hcGlba10uZGVjb3JhdG9ycykgYWxsRGVjcy5hZGQoZCk7XG4gICAgZm9yIChjb25zdCBlIG9mIGFuYWx5c2lzLmFwaVtrXS5leHBvcnRzKVxuICAgICAgaWYgKC9EZWNvcmF0aW9ufGRlY29yYXRlfEJ1aWxkZXJ8Rmxhdm91ci9pLnRlc3QoZSkpXG4gICAgICAgIGNhcC5hZGQoXCJ1c2UtZGVjb3JhdGlvbi1hcGlcIik7XG4gIH1cbiAgaWYgKFsuLi5hbGxEZWNzXS5zb21lKChkKSA9PiAvb3ZlcnJpZGV8ZXh0ZW5kL2kudGVzdChkKSkpXG4gICAgY2FwLmFkZChcIm92ZXJyaWRlLWFuZC1leHRlbmQtZGVjb3JhdGlvbnNcIik7XG4gIGlmIChPYmplY3Qua2V5cyhhbmFseXNpcy50ZXN0cykubGVuZ3RoID4gMCkgY2FwLmFkZChcInZhbGlkYXRlLXdpdGgtdGVzdHNcIik7XG4gIGlmIChhbmFseXNpcy5yZWFkbWUpIGNhcC5hZGQoXCJmb2xsb3ctcmVhZG1lLWd1aWRlc1wiKTtcbiAgcmV0dXJuIFsuLi5jYXBdLnNvcnQoKTtcbn1cblxuIl19
@@ -1,3 +0,0 @@
1
- export declare function readFileSafe(filePath: string, encoding?: BufferEncoding): string | undefined;
2
- export declare function listFilesRecursive(root: string, matcher?: (p: string) => boolean): string[];
3
- export declare function deriveCapabilities(analysis: any): string[];
@@ -1,123 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.findModuleDirs = findModuleDirs;
7
- exports.validateModules = validateModules;
8
- // New: validation entrypoint for module structure
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- const REQUIRED_SUBFOLDERS = ["prompts", "resources", "templates", "tools"];
12
- function findModuleDirs(repoRoot) {
13
- const modulesPath = path_1.default.resolve(repoRoot, "src", "modules");
14
- if (!fs_1.default.existsSync(modulesPath) || !fs_1.default.statSync(modulesPath).isDirectory()) {
15
- return [];
16
- }
17
- return fs_1.default
18
- .readdirSync(modulesPath, { withFileTypes: true })
19
- .filter((d) => d.isDirectory())
20
- .map((d) => path_1.default.join(modulesPath, d.name));
21
- }
22
- function hasIndexExport(folderPath) {
23
- const candidates = [
24
- "index.ts",
25
- "index.tsx",
26
- "index.js",
27
- "index.cjs",
28
- "index.mjs",
29
- ];
30
- for (const c of candidates) {
31
- if (fs_1.default.existsSync(path_1.default.join(folderPath, c)))
32
- return true;
33
- }
34
- return false;
35
- }
36
- function validateModules(repoRoot) {
37
- const dirs = findModuleDirs(repoRoot);
38
- const issues = [];
39
- for (const moduleDir of dirs) {
40
- const moduleName = path_1.default.basename(moduleDir);
41
- for (const sub of REQUIRED_SUBFOLDERS) {
42
- const subPath = path_1.default.join(moduleDir, sub);
43
- if (!fs_1.default.existsSync(subPath) || !fs_1.default.statSync(subPath).isDirectory()) {
44
- issues.push({
45
- module: moduleName,
46
- path: subPath,
47
- type: "missing-folder",
48
- detail: `Required folder '${sub}' is missing in module '${moduleName}'`,
49
- });
50
- continue;
51
- }
52
- // If folder exists, check for index export
53
- if (!hasIndexExport(subPath)) {
54
- issues.push({
55
- module: moduleName,
56
- path: subPath,
57
- type: "missing-export",
58
- detail: `No index export found in '${subPath}'. Expected one of index.ts, index.js, etc.`,
59
- });
60
- continue;
61
- }
62
- // Optionally inspect the index file to see if it exports a list (lightweight check)
63
- try {
64
- const indexFile = candidatesFindingIndex(subPath);
65
- if (indexFile) {
66
- const content = fs_1.default.readFileSync(indexFile, "utf8");
67
- // crude heuristics: look for `export const name = [` or `export const name: Type[] = [`,
68
- // or any named export like `export { something }` which implies exports exist.
69
- const exportListPattern = /export\s+(const|let|var)\s+[\w$]+(?:\s*:\s*[^=]+)?\s*=\s*\[/;
70
- if (!exportListPattern.test(content) &&
71
- !/export\s+\{/.test(content)) {
72
- issues.push({
73
- module: moduleName,
74
- path: indexFile,
75
- type: "empty-list",
76
- detail: `Index file does not appear to export a list of assets: ${path_1.default.basename(indexFile)}`,
77
- });
78
- }
79
- }
80
- }
81
- catch (err) {
82
- issues.push({
83
- module: moduleName,
84
- path: subPath,
85
- type: "other",
86
- detail: `Error reading index file: ${err.message}`,
87
- });
88
- }
89
- }
90
- }
91
- return {
92
- ok: issues.length === 0,
93
- modulesChecked: dirs.length,
94
- issues,
95
- };
96
- }
97
- function candidatesFindingIndex(folderPath) {
98
- const candidates = [
99
- "index.ts",
100
- "index.tsx",
101
- "index.js",
102
- "index.cjs",
103
- "index.mjs",
104
- ];
105
- for (const c of candidates) {
106
- const full = path_1.default.join(folderPath, c);
107
- if (fs_1.default.existsSync(full))
108
- return full;
109
- }
110
- return undefined;
111
- }
112
- // CLI helper
113
- if (require.main === module) {
114
- const repoRoot = process.cwd();
115
- const report = validateModules(repoRoot);
116
- if (!report.ok) {
117
- console.error("Module validation failed:\n", JSON.stringify(report, null, 2));
118
- process.exit(2);
119
- }
120
- console.log("Module validation passed");
121
- process.exit(0);
122
- }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWNwL3ZhbGlkYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF3QkEsd0NBU0M7QUFnQkQsMENBZ0VDO0FBakhELGtEQUFrRDtBQUNsRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBb0J4QixNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFM0UsU0FBZ0IsY0FBYyxDQUFDLFFBQWdCO0lBQzdDLE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLFlBQUU7U0FDTixXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLFVBQWtCO0lBQ3hDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLFVBQVU7UUFDVixXQUFXO1FBQ1gsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO0tBQ1osQ0FBQztJQUNGLEtBQUssTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDM0IsSUFBSSxZQUFFLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUVyQyxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUNuRSxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLE1BQU0sRUFBRSxVQUFVO29CQUNsQixJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixNQUFNLEVBQUUsb0JBQW9CLEdBQUcsMkJBQTJCLFVBQVUsR0FBRztpQkFDeEUsQ0FBQyxDQUFDO2dCQUNILFNBQVM7WUFDWCxDQUFDO1lBQ0QsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsTUFBTSxFQUFFLDZCQUE2QixPQUFPLDZDQUE2QztpQkFDMUYsQ0FBQyxDQUFDO2dCQUNILFNBQVM7WUFDWCxDQUFDO1lBQ0Qsb0ZBQW9GO1lBQ3BGLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxNQUFNLE9BQU8sR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDbkQseUZBQXlGO29CQUN6RiwrRUFBK0U7b0JBQy9FLE1BQU0saUJBQWlCLEdBQ3JCLDZEQUE2RCxDQUFDO29CQUNoRSxJQUNFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDaEMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUM1QixDQUFDO3dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1YsTUFBTSxFQUFFLFVBQVU7NEJBQ2xCLElBQUksRUFBRSxTQUFTOzRCQUNmLElBQUksRUFBRSxZQUFZOzRCQUNsQixNQUFNLEVBQUUsMERBQTBELGNBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7eUJBQzdGLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLE9BQU87b0JBQ2IsTUFBTSxFQUFFLDZCQUE2QixHQUFHLENBQUMsT0FBTyxFQUFFO2lCQUNuRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDM0IsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxVQUFrQjtJQUNoRCxNQUFNLFVBQVUsR0FBRztRQUNqQixVQUFVO1FBQ1YsV0FBVztRQUNYLFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztLQUNaLENBQUM7SUFDRixLQUFLLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksWUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGFBQWE7QUFDYixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDNUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FDWCw2QkFBNkIsRUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5ldzogdmFsaWRhdGlvbiBlbnRyeXBvaW50IGZvciBtb2R1bGUgc3RydWN0dXJlXG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uSXNzdWUgPSB7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU6XG4gICAgfCBcIm1pc3NpbmctZm9sZGVyXCJcbiAgICB8IFwibWlzc2luZy1leHBvcnRcIlxuICAgIHwgXCJlbXB0eS1saXN0XCJcbiAgICB8IFwiZGlzYWJsZWRcIlxuICAgIHwgXCJvdGhlclwiO1xuICBkZXRhaWw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVwb3J0ID0ge1xuICBvazogYm9vbGVhbjtcbiAgbW9kdWxlc0NoZWNrZWQ6IG51bWJlcjtcbiAgaXNzdWVzOiBWYWxpZGF0aW9uSXNzdWVbXTtcbn07XG5cbmNvbnN0IFJFUVVJUkVEX1NVQkZPTERFUlMgPSBbXCJwcm9tcHRzXCIsIFwicmVzb3VyY2VzXCIsIFwidGVtcGxhdGVzXCIsIFwidG9vbHNcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTW9kdWxlRGlycyhyZXBvUm9vdDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBtb2R1bGVzUGF0aCA9IHBhdGgucmVzb2x2ZShyZXBvUm9vdCwgXCJzcmNcIiwgXCJtb2R1bGVzXCIpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMobW9kdWxlc1BhdGgpIHx8ICFmcy5zdGF0U3luYyhtb2R1bGVzUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gZnNcbiAgICAucmVhZGRpclN5bmMobW9kdWxlc1BhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KVxuICAgIC5maWx0ZXIoKGQpID0+IGQuaXNEaXJlY3RvcnkoKSlcbiAgICAubWFwKChkKSA9PiBwYXRoLmpvaW4obW9kdWxlc1BhdGgsIGQubmFtZSkpO1xufVxuXG5mdW5jdGlvbiBoYXNJbmRleEV4cG9ydChmb2xkZXJQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IFtcbiAgICBcImluZGV4LnRzXCIsXG4gICAgXCJpbmRleC50c3hcIixcbiAgICBcImluZGV4LmpzXCIsXG4gICAgXCJpbmRleC5janNcIixcbiAgICBcImluZGV4Lm1qc1wiLFxuICBdO1xuICBmb3IgKGNvbnN0IGMgb2YgY2FuZGlkYXRlcykge1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihmb2xkZXJQYXRoLCBjKSkpIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTW9kdWxlcyhyZXBvUm9vdDogc3RyaW5nKTogVmFsaWRhdGlvblJlcG9ydCB7XG4gIGNvbnN0IGRpcnMgPSBmaW5kTW9kdWxlRGlycyhyZXBvUm9vdCk7XG4gIGNvbnN0IGlzc3VlczogVmFsaWRhdGlvbklzc3VlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IG1vZHVsZURpciBvZiBkaXJzKSB7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHBhdGguYmFzZW5hbWUobW9kdWxlRGlyKTtcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiBSRVFVSVJFRF9TVUJGT0xERVJTKSB7XG4gICAgICBjb25zdCBzdWJQYXRoID0gcGF0aC5qb2luKG1vZHVsZURpciwgc3ViKTtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhzdWJQYXRoKSB8fCAhZnMuc3RhdFN5bmMoc3ViUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBpc3N1ZXMucHVzaCh7XG4gICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgIHBhdGg6IHN1YlBhdGgsXG4gICAgICAgICAgdHlwZTogXCJtaXNzaW5nLWZvbGRlclwiLFxuICAgICAgICAgIGRldGFpbDogYFJlcXVpcmVkIGZvbGRlciAnJHtzdWJ9JyBpcyBtaXNzaW5nIGluIG1vZHVsZSAnJHttb2R1bGVOYW1lfSdgLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBJZiBmb2xkZXIgZXhpc3RzLCBjaGVjayBmb3IgaW5kZXggZXhwb3J0XG4gICAgICBpZiAoIWhhc0luZGV4RXhwb3J0KHN1YlBhdGgpKSB7XG4gICAgICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgcGF0aDogc3ViUGF0aCxcbiAgICAgICAgICB0eXBlOiBcIm1pc3NpbmctZXhwb3J0XCIsXG4gICAgICAgICAgZGV0YWlsOiBgTm8gaW5kZXggZXhwb3J0IGZvdW5kIGluICcke3N1YlBhdGh9Jy4gRXhwZWN0ZWQgb25lIG9mIGluZGV4LnRzLCBpbmRleC5qcywgZXRjLmAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIE9wdGlvbmFsbHkgaW5zcGVjdCB0aGUgaW5kZXggZmlsZSB0byBzZWUgaWYgaXQgZXhwb3J0cyBhIGxpc3QgKGxpZ2h0d2VpZ2h0IGNoZWNrKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW5kZXhGaWxlID0gY2FuZGlkYXRlc0ZpbmRpbmdJbmRleChzdWJQYXRoKTtcbiAgICAgICAgaWYgKGluZGV4RmlsZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoaW5kZXhGaWxlLCBcInV0ZjhcIik7XG4gICAgICAgICAgLy8gY3J1ZGUgaGV1cmlzdGljczogbG9vayBmb3IgYGV4cG9ydCBjb25zdCBuYW1lID0gW2Agb3IgYGV4cG9ydCBjb25zdCBuYW1lOiBUeXBlW10gPSBbYCxcbiAgICAgICAgICAvLyBvciBhbnkgbmFtZWQgZXhwb3J0IGxpa2UgYGV4cG9ydCB7IHNvbWV0aGluZyB9YCB3aGljaCBpbXBsaWVzIGV4cG9ydHMgZXhpc3QuXG4gICAgICAgICAgY29uc3QgZXhwb3J0TGlzdFBhdHRlcm4gPVxuICAgICAgICAgICAgL2V4cG9ydFxccysoY29uc3R8bGV0fHZhcilcXHMrW1xcdyRdKyg/Olxccyo6XFxzKltePV0rKT9cXHMqPVxccypcXFsvO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFleHBvcnRMaXN0UGF0dGVybi50ZXN0KGNvbnRlbnQpICYmXG4gICAgICAgICAgICAhL2V4cG9ydFxccytcXHsvLnRlc3QoY29udGVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgICBwYXRoOiBpbmRleEZpbGUsXG4gICAgICAgICAgICAgIHR5cGU6IFwiZW1wdHktbGlzdFwiLFxuICAgICAgICAgICAgICBkZXRhaWw6IGBJbmRleCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBleHBvcnQgYSBsaXN0IG9mIGFzc2V0czogJHtwYXRoLmJhc2VuYW1lKGluZGV4RmlsZSl9YCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgaXNzdWVzLnB1c2goe1xuICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICBwYXRoOiBzdWJQYXRoLFxuICAgICAgICAgIHR5cGU6IFwib3RoZXJcIixcbiAgICAgICAgICBkZXRhaWw6IGBFcnJvciByZWFkaW5nIGluZGV4IGZpbGU6ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvazogaXNzdWVzLmxlbmd0aCA9PT0gMCxcbiAgICBtb2R1bGVzQ2hlY2tlZDogZGlycy5sZW5ndGgsXG4gICAgaXNzdWVzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBjYW5kaWRhdGVzRmluZGluZ0luZGV4KGZvbGRlclBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgXCJpbmRleC50c1wiLFxuICAgIFwiaW5kZXgudHN4XCIsXG4gICAgXCJpbmRleC5qc1wiLFxuICAgIFwiaW5kZXguY2pzXCIsXG4gICAgXCJpbmRleC5tanNcIixcbiAgXTtcbiAgZm9yIChjb25zdCBjIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCBmdWxsID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIGMpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGZ1bGwpKSByZXR1cm4gZnVsbDtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyBDTEkgaGVscGVyXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgcmVwb1Jvb3QgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCByZXBvcnQgPSB2YWxpZGF0ZU1vZHVsZXMocmVwb1Jvb3QpO1xuICBpZiAoIXJlcG9ydC5vaykge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBcIk1vZHVsZSB2YWxpZGF0aW9uIGZhaWxlZDpcXG5cIixcbiAgICAgIEpTT04uc3RyaW5naWZ5KHJlcG9ydCwgbnVsbCwgMilcbiAgICApO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIk1vZHVsZSB2YWxpZGF0aW9uIHBhc3NlZFwiKTtcbiAgcHJvY2Vzcy5leGl0KDApO1xufVxuIl19
@@ -1,13 +0,0 @@
1
- export type ValidationIssue = {
2
- module: string;
3
- path: string;
4
- type: "missing-folder" | "missing-export" | "empty-list" | "disabled" | "other";
5
- detail?: string;
6
- };
7
- export type ValidationReport = {
8
- ok: boolean;
9
- modulesChecked: number;
10
- issues: ValidationIssue[];
11
- };
12
- export declare function findModuleDirs(repoRoot: string): string[];
13
- export declare function validateModules(repoRoot: string): ValidationReport;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.scaffoldModule = scaffoldModule;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const DEFAULT_PLACEHOLDERS = {
10
- prompts: `export const promptList = [
11
- {
12
- id: "example-prompt",
13
- title: "Example prompt",
14
- description: "A placeholder prompt created by scaffoldModule",
15
- content: "Describe the task for the assistant...",
16
- absolutePath: __filename,
17
- },
18
- ] as const;
19
- `,
20
- resources: `export const resources = [
21
- {
22
- id: "example-resource",
23
- name: "Example Resource",
24
- description: "A placeholder resource created by scaffoldModule",
25
- uri: "file://placeholder",
26
- absolutePath: __filename,
27
- },
28
- ] as const;
29
- `,
30
- templates: `export const templates = [
31
- {
32
- name: "example-template",
33
- description: "A placeholder template created by scaffoldModule",
34
- uriTemplate: "file://template/{path}",
35
- mimeType: "text/plain",
36
- },
37
- ] as const;
38
- `,
39
- tools: `export const toolList = [
40
- {
41
- id: "example-tool",
42
- name: "example-tool",
43
- description: "A placeholder tool created by scaffoldModule",
44
- run: async () => ({ result: "placeholder" }),
45
- },
46
- ] as const;
47
- `,
48
- };
49
- /**
50
- * Create a module scaffold under repoRoot/src/modules/<moduleName>
51
- * Returns created files list.
52
- */
53
- function scaffoldModule(repoRoot, moduleName) {
54
- if (!repoRoot)
55
- throw new Error("repoRoot is required");
56
- if (!moduleName)
57
- throw new Error("moduleName is required");
58
- const modulePath = path_1.default.join(repoRoot, "src", "modules", moduleName);
59
- const createdFiles = [];
60
- const subfolders = ["prompts", "resources", "templates", "tools"];
61
- for (const folder of subfolders) {
62
- const folderPath = path_1.default.join(modulePath, folder);
63
- fs_1.default.mkdirSync(folderPath, { recursive: true });
64
- const indexPath = path_1.default.join(folderPath, "index.ts");
65
- // if file exists, skip writing
66
- if (!fs_1.default.existsSync(indexPath)) {
67
- // insert __filename for absolutePath in placeholders
68
- const content = DEFAULT_PLACEHOLDERS[folder].replace(/__filename/g, JSON.stringify(indexPath));
69
- fs_1.default.writeFileSync(indexPath, content, { encoding: "utf8" });
70
- createdFiles.push(indexPath);
71
- }
72
- }
73
- return { modulePath, createdFiles };
74
- }
75
- // CLI support when required directly via ts-node registration
76
- if (require.main === module) {
77
- const [, , moduleName] = process.argv;
78
- if (!moduleName) {
79
- console.error("Usage: scaffold-module <module-name>");
80
- process.exit(1);
81
- }
82
- try {
83
- const res = scaffoldModule(process.cwd(), moduleName);
84
- console.log("Scaffolded module:", res.modulePath);
85
- for (const f of res.createdFiles)
86
- console.log(" created:", f);
87
- process.exit(0);
88
- }
89
- catch (err) {
90
- console.error(err && err.message ? err.message : err);
91
- process.exit(2);
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhZmZvbGRNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWNwL3ZhbGlkYXRpb24vc2NhZmZvbGRNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxREEsd0NBNEJDO0FBakZELDRDQUFvQjtBQUNwQixnREFBd0I7QUFPeEIsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixPQUFPLEVBQUU7Ozs7Ozs7OztDQVNWO0lBQ0MsU0FBUyxFQUFFOzs7Ozs7Ozs7Q0FTWjtJQUNDLFNBQVMsRUFBRTs7Ozs7Ozs7Q0FRWjtJQUNDLEtBQUssRUFBRTs7Ozs7Ozs7Q0FRUjtDQUNBLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQzVCLFFBQWdCLEVBQ2hCLFVBQWtCO0lBRWxCLElBQUksQ0FBQyxRQUFRO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxVQUFVO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTNELE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBRWxDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxZQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELCtCQUErQjtRQUMvQixJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLHFEQUFxRDtZQUNyRCxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FDbEMsTUFBMkMsQ0FDNUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxZQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsOERBQThEO0FBQzlELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixNQUFNLENBQUMsRUFBRSxBQUFELEVBQUcsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCB0eXBlIFNjYWZmb2xkUmVzdWx0ID0ge1xuICBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGNyZWF0ZWRGaWxlczogc3RyaW5nW107XG59O1xuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSUyA9IHtcbiAgcHJvbXB0czogYGV4cG9ydCBjb25zdCBwcm9tcHRMaXN0ID0gW1xuICB7XG4gICAgaWQ6IFwiZXhhbXBsZS1wcm9tcHRcIixcbiAgICB0aXRsZTogXCJFeGFtcGxlIHByb21wdFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgcGxhY2Vob2xkZXIgcHJvbXB0IGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBjb250ZW50OiBcIkRlc2NyaWJlIHRoZSB0YXNrIGZvciB0aGUgYXNzaXN0YW50Li4uXCIsXG4gICAgYWJzb2x1dGVQYXRoOiBfX2ZpbGVuYW1lLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG4gIHJlc291cmNlczogYGV4cG9ydCBjb25zdCByZXNvdXJjZXMgPSBbXG4gIHtcbiAgICBpZDogXCJleGFtcGxlLXJlc291cmNlXCIsXG4gICAgbmFtZTogXCJFeGFtcGxlIFJlc291cmNlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciByZXNvdXJjZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpOiBcImZpbGU6Ly9wbGFjZWhvbGRlclwiLFxuICAgIGFic29sdXRlUGF0aDogX19maWxlbmFtZSxcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0ZW1wbGF0ZXM6IGBleHBvcnQgY29uc3QgdGVtcGxhdGVzID0gW1xuICB7XG4gICAgbmFtZTogXCJleGFtcGxlLXRlbXBsYXRlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0ZW1wbGF0ZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpVGVtcGxhdGU6IFwiZmlsZTovL3RlbXBsYXRlL3twYXRofVwiLFxuICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0b29sczogYGV4cG9ydCBjb25zdCB0b29sTGlzdCA9IFtcbiAge1xuICAgIGlkOiBcImV4YW1wbGUtdG9vbFwiLFxuICAgIG5hbWU6IFwiZXhhbXBsZS10b29sXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0b29sIGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBydW46IGFzeW5jICgpID0+ICh7IHJlc3VsdDogXCJwbGFjZWhvbGRlclwiIH0pLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIG1vZHVsZSBzY2FmZm9sZCB1bmRlciByZXBvUm9vdC9zcmMvbW9kdWxlcy88bW9kdWxlTmFtZT5cbiAqIFJldHVybnMgY3JlYXRlZCBmaWxlcyBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhZmZvbGRNb2R1bGUoXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIG1vZHVsZU5hbWU6IHN0cmluZ1xuKTogU2NhZmZvbGRSZXN1bHQge1xuICBpZiAoIXJlcG9Sb290KSB0aHJvdyBuZXcgRXJyb3IoXCJyZXBvUm9vdCBpcyByZXF1aXJlZFwiKTtcbiAgaWYgKCFtb2R1bGVOYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJtb2R1bGVOYW1lIGlzIHJlcXVpcmVkXCIpO1xuXG4gIGNvbnN0IG1vZHVsZVBhdGggPSBwYXRoLmpvaW4ocmVwb1Jvb3QsIFwic3JjXCIsIFwibW9kdWxlc1wiLCBtb2R1bGVOYW1lKTtcbiAgY29uc3QgY3JlYXRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHN1YmZvbGRlcnMgPSBbXCJwcm9tcHRzXCIsIFwicmVzb3VyY2VzXCIsIFwidGVtcGxhdGVzXCIsIFwidG9vbHNcIl07XG5cbiAgZm9yIChjb25zdCBmb2xkZXIgb2Ygc3ViZm9sZGVycykge1xuICAgIGNvbnN0IGZvbGRlclBhdGggPSBwYXRoLmpvaW4obW9kdWxlUGF0aCwgZm9sZGVyKTtcbiAgICBmcy5ta2RpclN5bmMoZm9sZGVyUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIFwiaW5kZXgudHNcIik7XG4gICAgLy8gaWYgZmlsZSBleGlzdHMsIHNraXAgd3JpdGluZ1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhpbmRleFBhdGgpKSB7XG4gICAgICAvLyBpbnNlcnQgX19maWxlbmFtZSBmb3IgYWJzb2x1dGVQYXRoIGluIHBsYWNlaG9sZGVyc1xuICAgICAgY29uc3QgY29udGVudCA9IERFRkFVTFRfUExBQ0VIT0xERVJTW1xuICAgICAgICBmb2xkZXIgYXMga2V5b2YgdHlwZW9mIERFRkFVTFRfUExBQ0VIT0xERVJTXG4gICAgICBdLnJlcGxhY2UoL19fZmlsZW5hbWUvZywgSlNPTi5zdHJpbmdpZnkoaW5kZXhQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGluZGV4UGF0aCwgY29udGVudCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSk7XG4gICAgICBjcmVhdGVkRmlsZXMucHVzaChpbmRleFBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG1vZHVsZVBhdGgsIGNyZWF0ZWRGaWxlcyB9O1xufVxuXG4vLyBDTEkgc3VwcG9ydCB3aGVuIHJlcXVpcmVkIGRpcmVjdGx5IHZpYSB0cy1ub2RlIHJlZ2lzdHJhdGlvblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IFssICwgbW9kdWxlTmFtZV0gPSBwcm9jZXNzLmFyZ3Y7XG4gIGlmICghbW9kdWxlTmFtZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJVc2FnZTogc2NhZmZvbGQtbW9kdWxlIDxtb2R1bGUtbmFtZT5cIik7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzID0gc2NhZmZvbGRNb2R1bGUocHJvY2Vzcy5jd2QoKSwgbW9kdWxlTmFtZSk7XG4gICAgY29uc29sZS5sb2coXCJTY2FmZm9sZGVkIG1vZHVsZTpcIiwgcmVzLm1vZHVsZVBhdGgpO1xuICAgIGZvciAoY29uc3QgZiBvZiByZXMuY3JlYXRlZEZpbGVzKSBjb25zb2xlLmxvZyhcIiAgY3JlYXRlZDpcIiwgZik7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlID8gZXJyLm1lc3NhZ2UgOiBlcnIpO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- export type ScaffoldResult = {
2
- modulePath: string;
3
- createdFiles: string[];
4
- };
5
- /**
6
- * Create a module scaffold under repoRoot/src/modules/<moduleName>
7
- * Returns created files list.
8
- */
9
- export declare function scaffoldModule(repoRoot: string, moduleName: string): ScaffoldResult;
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.WorkspaceError = void 0;
40
- exports.throwUserError = throwUserError;
41
- exports.setWorkspaceRoot = setWorkspaceRoot;
42
- exports.getWorkspaceRoot = getWorkspaceRoot;
43
- exports.resolveInWorkspace = resolveInWorkspace;
44
- exports.readWorkspaceFile = readWorkspaceFile;
45
- exports.__resetWorkspaceRoot = __resetWorkspaceRoot;
46
- const fs_1 = __importDefault(require("fs"));
47
- const path_1 = __importDefault(require("path"));
48
- const constants_1 = require("./../constants.cjs");
49
- let workspaceRoot = initializeWorkspaceRoot();
50
- let userErrorCtor;
51
- class WorkspaceError extends Error {
52
- constructor(message) {
53
- super(message);
54
- this.name = "WorkspaceError";
55
- }
56
- }
57
- exports.WorkspaceError = WorkspaceError;
58
- function initializeWorkspaceRoot() {
59
- const configured = process.env[constants_1.WORKSPACE_ROOT_ENV];
60
- if (configured && configured.trim().length > 0) {
61
- return path_1.default.resolve(configured.trim());
62
- }
63
- return process.cwd();
64
- }
65
- async function getUserErrorCtor() {
66
- if (!userErrorCtor) {
67
- try {
68
- const mod = await Promise.resolve().then(() => __importStar(require("fastmcp")));
69
- userErrorCtor = mod
70
- .UserError;
71
- }
72
- catch {
73
- userErrorCtor = class MCPUserError extends Error {
74
- constructor(message) {
75
- super(message);
76
- this.name = "MCPUserError";
77
- }
78
- };
79
- }
80
- }
81
- return userErrorCtor;
82
- }
83
- async function throwUserError(message) {
84
- const Ctor = await getUserErrorCtor();
85
- throw new Ctor(message);
86
- }
87
- function setWorkspaceRoot(root) {
88
- workspaceRoot = path_1.default.resolve(root);
89
- }
90
- function getWorkspaceRoot() {
91
- return workspaceRoot;
92
- }
93
- function resolveInWorkspace(root, targetPath) {
94
- const resolved = path_1.default.isAbsolute(targetPath)
95
- ? path_1.default.normalize(targetPath)
96
- : path_1.default.resolve(root, targetPath);
97
- const relative = path_1.default.relative(root, resolved);
98
- if (relative.startsWith("..") || path_1.default.isAbsolute(relative)) {
99
- throw new WorkspaceError(`Path ${targetPath} escapes the workspace root at ${root}`);
100
- }
101
- return resolved;
102
- }
103
- async function readWorkspaceFile(root, target) {
104
- try {
105
- const absolute = resolveInWorkspace(root, target);
106
- return fs_1.default.readFileSync(absolute, "utf8");
107
- }
108
- catch (error) {
109
- if (error instanceof WorkspaceError) {
110
- await throwUserError(error.message);
111
- }
112
- /* istanbul ignore next */
113
- throw error;
114
- }
115
- }
116
- function __resetWorkspaceRoot(root) {
117
- setWorkspaceRoot(root);
118
- }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21jcC93b3Jrc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLHdDQUdDO0FBRUQsNENBRUM7QUFFRCw0Q0FFQztBQUVELGdEQWFDO0FBRUQsOENBY0M7QUFFRCxvREFFQztBQXRGRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGtEQUFrRDtBQUVsRCxJQUFJLGFBQWEsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0FBQzlDLElBQUksYUFBMkQsQ0FBQztBQUVoRSxNQUFhLGNBQWUsU0FBUSxLQUFLO0lBQ3ZDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQsU0FBUyx1QkFBdUI7SUFDOUIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBa0IsQ0FBQyxDQUFDO0lBQ25ELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQjtJQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsd0RBQWEsU0FBUyxHQUFDLENBQUM7WUFDcEMsYUFBYSxHQUFJLEdBQXFEO2lCQUNuRSxTQUFTLENBQUM7UUFDZixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsYUFBYSxHQUFHLE1BQU0sWUFBYSxTQUFRLEtBQUs7Z0JBQzlDLFlBQVksT0FBZTtvQkFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO2dCQUM3QixDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBZTtJQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxhQUFhLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7SUFDakUsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDMUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVuQyxNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksY0FBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxjQUFjLENBQ3RCLFFBQVEsVUFBVSxrQ0FBa0MsSUFBSSxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVNLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsSUFBWSxFQUNaLE1BQWM7SUFFZCxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEQsT0FBTyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUF3QixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELDBCQUEwQjtRQUMxQixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsSUFBWTtJQUMvQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFdPUktTUEFDRV9ST09UX0VOViB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxubGV0IHdvcmtzcGFjZVJvb3QgPSBpbml0aWFsaXplV29ya3NwYWNlUm9vdCgpO1xubGV0IHVzZXJFcnJvckN0b3I6IChuZXcgKG1lc3NhZ2U6IHN0cmluZykgPT4gRXJyb3IpIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiV29ya3NwYWNlRXJyb3JcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0aWFsaXplV29ya3NwYWNlUm9vdCgpOiBzdHJpbmcge1xuICBjb25zdCBjb25maWd1cmVkID0gcHJvY2Vzcy5lbnZbV09SS1NQQUNFX1JPT1RfRU5WXTtcbiAgaWYgKGNvbmZpZ3VyZWQgJiYgY29uZmlndXJlZC50cmltKCkubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUoY29uZmlndXJlZC50cmltKCkpO1xuICB9XG4gIHJldHVybiBwcm9jZXNzLmN3ZCgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRVc2VyRXJyb3JDdG9yKCk6IFByb21pc2U8bmV3IChtZXNzYWdlOiBzdHJpbmcpID0+IEVycm9yPiB7XG4gIGlmICghdXNlckVycm9yQ3Rvcikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2QgPSBhd2FpdCBpbXBvcnQoXCJmYXN0bWNwXCIpO1xuICAgICAgdXNlckVycm9yQ3RvciA9IChtb2QgYXMgeyBVc2VyRXJyb3I6IG5ldyAobWVzc2FnZTogc3RyaW5nKSA9PiBFcnJvciB9KVxuICAgICAgICAuVXNlckVycm9yO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdXNlckVycm9yQ3RvciA9IGNsYXNzIE1DUFVzZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAgICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgICAgdGhpcy5uYW1lID0gXCJNQ1BVc2VyRXJyb3JcIjtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVzZXJFcnJvckN0b3I7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0aHJvd1VzZXJFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPG5ldmVyPiB7XG4gIGNvbnN0IEN0b3IgPSBhd2FpdCBnZXRVc2VyRXJyb3JDdG9yKCk7XG4gIHRocm93IG5ldyBDdG9yKG1lc3NhZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0V29ya3NwYWNlUm9vdChyb290OiBzdHJpbmcpIHtcbiAgd29ya3NwYWNlUm9vdCA9IHBhdGgucmVzb2x2ZShyb290KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmtzcGFjZVJvb3QoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHdvcmtzcGFjZVJvb3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSW5Xb3Jrc3BhY2Uocm9vdDogc3RyaW5nLCB0YXJnZXRQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByZXNvbHZlZCA9IHBhdGguaXNBYnNvbHV0ZSh0YXJnZXRQYXRoKVxuICAgID8gcGF0aC5ub3JtYWxpemUodGFyZ2V0UGF0aClcbiAgICA6IHBhdGgucmVzb2x2ZShyb290LCB0YXJnZXRQYXRoKTtcblxuICBjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUocm9vdCwgcmVzb2x2ZWQpO1xuICBpZiAocmVsYXRpdmUuc3RhcnRzV2l0aChcIi4uXCIpIHx8IHBhdGguaXNBYnNvbHV0ZShyZWxhdGl2ZSkpIHtcbiAgICB0aHJvdyBuZXcgV29ya3NwYWNlRXJyb3IoXG4gICAgICBgUGF0aCAke3RhcmdldFBhdGh9IGVzY2FwZXMgdGhlIHdvcmtzcGFjZSByb290IGF0ICR7cm9vdH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2VGaWxlKFxuICByb290OiBzdHJpbmcsXG4gIHRhcmdldDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFic29sdXRlID0gcmVzb2x2ZUluV29ya3NwYWNlKHJvb3QsIHRhcmdldCk7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhhYnNvbHV0ZSwgXCJ1dGY4XCIgYXMgQnVmZmVyRW5jb2RpbmcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFdvcmtzcGFjZUVycm9yKSB7XG4gICAgICBhd2FpdCB0aHJvd1VzZXJFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXNldFdvcmtzcGFjZVJvb3Qocm9vdDogc3RyaW5nKSB7XG4gIHNldFdvcmtzcGFjZVJvb3Qocm9vdCk7XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- export declare class WorkspaceError extends Error {
2
- constructor(message: string);
3
- }
4
- export declare function throwUserError(message: string): Promise<never>;
5
- export declare function setWorkspaceRoot(root: string): void;
6
- export declare function getWorkspaceRoot(): string;
7
- export declare function resolveInWorkspace(root: string, targetPath: string): string;
8
- export declare function readWorkspaceFile(root: string, target: string): Promise<string>;
9
- export declare function __resetWorkspaceRoot(root: string): void;
package/lib/metadata.cjs DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PACKAGE_NAME = exports.VERSION = void 0;
4
- const decoration_1 = require("@decaf-ts/decoration");
5
- /**
6
- * @const VERSION
7
- * @name VERSION
8
- * @description Represents the current version of the ts-workspace module.
9
- * @summary The actual version number is replaced during the build process.
10
- * @type {string}
11
- */
12
- exports.VERSION = "0.4.1";
13
- exports.PACKAGE_NAME = "##PACKAGE_NAME##";
14
- try {
15
- decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
16
- }
17
- catch (error) {
18
- if (error instanceof Error && error.message.includes("already")) {
19
- // Ignore duplicate registration during tests/bundling checks.
20
- }
21
- else {
22
- throw error;
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdEO0FBRWhEOzs7Ozs7R0FNRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUN4QixRQUFBLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxJQUFJLENBQUM7SUFDSCxxQkFBUSxDQUFDLGVBQWUsQ0FBQyxvQkFBWSxFQUFFLGVBQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDaEUsOERBQThEO0lBQ2hFLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBuYW1lIFZFUlNJT05cbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIHRzLXdvcmtzcGFjZSBtb2R1bGUuXG4gKiBAc3VtbWFyeSBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVyIGlzIHJlcGxhY2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFwiIyNQQUNLQUdFX05BTUUjI1wiO1xuXG50cnkge1xuICBNZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoUEFDS0FHRV9OQU1FLCBWRVJTSU9OKTtcbn0gY2F0Y2ggKGVycm9yKSB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5XCIpKSB7XG4gICAgLy8gSWdub3JlIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gZHVyaW5nIHRlc3RzL2J1bmRsaW5nIGNoZWNrcy5cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl19
package/lib/metadata.d.ts DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @const VERSION
3
- * @name VERSION
4
- * @description Represents the current version of the ts-workspace module.
5
- * @summary The actual version number is replaced during the build process.
6
- * @type {string}
7
- */
8
- export declare const VERSION = "0.4.1";
9
- export declare const PACKAGE_NAME = "##PACKAGE_NAME##";
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modulePackage = exports.tools = exports.templates = exports.resources = exports.prompts = void 0;
4
- const index_1 = require("./prompts/index.cjs");
5
- const index_2 = require("./resources/index.cjs");
6
- const index_3 = require("./templates/index.cjs");
7
- const index_4 = require("./tools/index.cjs");
8
- var index_5 = require("./prompts/index.cjs");
9
- Object.defineProperty(exports, "prompts", { enumerable: true, get: function () { return index_5.prompts; } });
10
- var index_6 = require("./resources/index.cjs");
11
- Object.defineProperty(exports, "resources", { enumerable: true, get: function () { return index_6.resources; } });
12
- var index_7 = require("./templates/index.cjs");
13
- Object.defineProperty(exports, "templates", { enumerable: true, get: function () { return index_7.templates; } });
14
- var index_8 = require("./tools/index.cjs");
15
- Object.defineProperty(exports, "tools", { enumerable: true, get: function () { return index_8.tools; } });
16
- exports.modulePackage = {
17
- name: "_template",
18
- prompts: index_1.prompts,
19
- resources: index_2.resources,
20
- templates: index_3.templates,
21
- tools: index_4.tools,
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTBDO0FBQzFDLGlEQUE4QztBQUM5QyxpREFBOEM7QUFDOUMsNkNBQXNDO0FBQ3RDLDZDQUEwQztBQUFqQyxnR0FBQSxPQUFPLE9BQUE7QUFDaEIsK0NBQThDO0FBQXJDLGtHQUFBLFNBQVMsT0FBQTtBQUNsQiwrQ0FBOEM7QUFBckMsa0dBQUEsU0FBUyxPQUFBO0FBQ2xCLDJDQUFzQztBQUE3Qiw4RkFBQSxLQUFLLE9BQUE7QUFDRCxRQUFBLGFBQWEsR0FBRztJQUMzQixJQUFJLEVBQUUsV0FBVztJQUNqQixPQUFPLEVBQVAsZUFBTztJQUNQLFNBQVMsRUFBVCxpQkFBUztJQUNULFNBQVMsRUFBVCxpQkFBUztJQUNULEtBQUssRUFBTCxhQUFLO0NBQ0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21wdHMgfSBmcm9tIFwiLi9wcm9tcHRzL2luZGV4XCI7XG5pbXBvcnQgeyByZXNvdXJjZXMgfSBmcm9tIFwiLi9yZXNvdXJjZXMvaW5kZXhcIjtcbmltcG9ydCB7IHRlbXBsYXRlcyB9IGZyb20gXCIuL3RlbXBsYXRlcy9pbmRleFwiO1xuaW1wb3J0IHsgdG9vbHMgfSBmcm9tIFwiLi90b29scy9pbmRleFwiO1xuZXhwb3J0IHsgcHJvbXB0cyB9IGZyb20gXCIuL3Byb21wdHMvaW5kZXhcIjtcbmV4cG9ydCB7IHJlc291cmNlcyB9IGZyb20gXCIuL3Jlc291cmNlcy9pbmRleFwiO1xuZXhwb3J0IHsgdGVtcGxhdGVzIH0gZnJvbSBcIi4vdGVtcGxhdGVzL2luZGV4XCI7XG5leHBvcnQgeyB0b29scyB9IGZyb20gXCIuL3Rvb2xzL2luZGV4XCI7XG5leHBvcnQgY29uc3QgbW9kdWxlUGFja2FnZSA9IHtcbiAgbmFtZTogXCJfdGVtcGxhdGVcIixcbiAgcHJvbXB0cyxcbiAgcmVzb3VyY2VzLFxuICB0ZW1wbGF0ZXMsXG4gIHRvb2xzLFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -1,32 +0,0 @@
1
- export { prompts } from "./prompts/index";
2
- export { resources } from "./resources/index";
3
- export { templates } from "./templates/index";
4
- export { tools } from "./tools/index";
5
- export declare const modulePackage: {
6
- readonly name: "_template";
7
- readonly prompts: readonly [{
8
- readonly id: "_template.readme";
9
- readonly title: "Template README";
10
- readonly description: "A README prompt for module template";
11
- readonly load: () => string;
12
- }];
13
- readonly resources: readonly [{
14
- readonly id: "_template.repo";
15
- readonly name: "template repo";
16
- readonly description: "Template resource";
17
- readonly uri: "file:///tmp/template";
18
- }];
19
- readonly templates: readonly [{
20
- readonly id: "_template.readme";
21
- readonly name: "template-readme";
22
- readonly description: "README guidance";
23
- readonly uriTemplate: "file:///tmp/template/README.md";
24
- readonly mimeType: "text/markdown";
25
- }];
26
- readonly tools: readonly [{
27
- readonly id: "_template.tool";
28
- readonly title: "template tool";
29
- readonly description: "A placeholder tool";
30
- readonly tool: any;
31
- }];
32
- };