@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,243 +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.decoratorTools = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- function escapeRegExp(value) {
10
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
11
- }
12
- function formatDecorator(spec) {
13
- const args = (spec.args || []).map((arg) => JSON.stringify(arg)).join(", ");
14
- return `@${spec.name}(${args})`;
15
- }
16
- function ensureDirectory(filePath) {
17
- fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
18
- }
19
- function collectDecoratorNames(classDecorators, properties) {
20
- const names = new Set();
21
- names.add("model");
22
- for (const decorator of classDecorators || []) {
23
- names.add(decorator.name);
24
- }
25
- for (const property of properties || []) {
26
- for (const decorator of property.decorators || []) {
27
- names.add(decorator.name);
28
- }
29
- }
30
- return names;
31
- }
32
- function ensureImport(content, importsFrom, decorators) {
33
- /* istanbul ignore next */
34
- if (!decorators.size)
35
- return content;
36
- const importRegex = new RegExp(`import\\s+\\{([^}]+)\\}\\s+from\\s+["']${escapeRegExp(importsFrom)}["'];`);
37
- const match = content.match(importRegex);
38
- const sorted = Array.from(decorators).sort();
39
- if (match) {
40
- const existing = match[1]
41
- .split(",")
42
- .map((name) => name.trim())
43
- .filter(Boolean);
44
- const merged = Array.from(new Set([...existing, ...sorted])).sort();
45
- return content.replace(importRegex, `import { ${merged.join(", ")} } from "${importsFrom}";`);
46
- }
47
- const importLine = `import { ${sorted.join(", ")} } from "${importsFrom}";`;
48
- return `${importLine}\n\n${content}`;
49
- }
50
- function addPropertyBlock(property) {
51
- const decorators = (property.decorators || [])
52
- .map(formatDecorator)
53
- .join("\n ");
54
- const decoratorBlock = decorators ? ` ${decorators}\n` : "";
55
- return `${decoratorBlock} ${property.name}: ${property.type};`;
56
- }
57
- function removePropertyBlock(content, propertyName) {
58
- const lines = content.split(/\r?\n/);
59
- const result = [];
60
- for (let i = 0; i < lines.length; i++) {
61
- const line = lines[i];
62
- if (line.trim().startsWith(`@`) &&
63
- lines[i + 1]?.includes(`${propertyName}:`)) {
64
- continue;
65
- }
66
- if (line.includes(`${propertyName}:`)) {
67
- // skip this line and any trailing blank line
68
- continue;
69
- }
70
- result.push(line);
71
- }
72
- return result.join("\n");
73
- }
74
- function insertDecorator(content, decorator, target) {
75
- const decoratorLine = formatDecorator(decorator);
76
- if (target.kind === "class") {
77
- const classRegex = /(export\s+class\s+[^\s{]+\s*\{)/;
78
- if (content.includes(decoratorLine))
79
- return content;
80
- return content.replace(classRegex, `${decoratorLine}\n$1`);
81
- }
82
- if (!target.name)
83
- return content;
84
- const propertyRegex = new RegExp(`(^\\s*)(?:@.*\\n\\1)*${escapeRegExp(target.name)}:`, "m");
85
- const match = propertyRegex.exec(content);
86
- if (!match)
87
- return content;
88
- const indent = match[1] || " ";
89
- if (content.includes(`${indent}${decoratorLine}`))
90
- return content;
91
- return (content.slice(0, match.index) +
92
- `${indent}${decoratorLine}\n` +
93
- content.slice(match.index));
94
- }
95
- function removeDecorator(content, decoratorName, target) {
96
- const decoratorRegex = new RegExp(`^\\s*@${escapeRegExp(decoratorName)}\\([^)]*\\)`, "m");
97
- if (target.kind === "class") {
98
- return content.replace(decoratorRegex, "");
99
- }
100
- if (target.name) {
101
- const pattern = new RegExp(`(^\\s*@${escapeRegExp(decoratorName)}\\([^)]*\\)\\s*$\\n)(?=\\s*${escapeRegExp(target.name)}:)`, "m");
102
- return content.replace(pattern, "");
103
- }
104
- return content;
105
- }
106
- function writeIfChanged(filePath, content) {
107
- ensureDirectory(filePath);
108
- fs_1.default.writeFileSync(filePath, content);
109
- }
110
- exports.decoratorTools = {
111
- createOrUpdateModelTool: {
112
- name: "create-or-update-model",
113
- description: "Create or update a validation-ready model class",
114
- execute: async (args) => {
115
- if (!args.overwrite && fs_1.default.existsSync(args.filePath)) {
116
- throw new Error(`File already exists at ${args.filePath}`);
117
- }
118
- const decorators = collectDecoratorNames(args.classDecorators, args.properties);
119
- let content = `@model()`;
120
- for (const decorator of args.classDecorators || []) {
121
- content += `\n${formatDecorator(decorator)}`;
122
- }
123
- const properties = (args.properties || [])
124
- .map(addPropertyBlock)
125
- .join("\n\n");
126
- content += `\nexport class ${args.className} {\n${properties ? `${properties}\n` : ""}}\n`;
127
- content = ensureImport(content, args.importsFrom, decorators);
128
- writeIfChanged(args.filePath, content);
129
- return { filePath: args.filePath };
130
- },
131
- },
132
- addAttributeTool: {
133
- name: "add-attribute",
134
- description: "Add a decorated attribute to an existing model",
135
- execute: async (args) => {
136
- if (!fs_1.default.existsSync(args.filePath)) {
137
- throw new Error(`Model file not found at ${args.filePath}`);
138
- }
139
- let content = fs_1.default.readFileSync(args.filePath, "utf8");
140
- if (content.includes(`${args.attribute.name}:`)) {
141
- return { filePath: args.filePath };
142
- }
143
- const decorators = collectDecoratorNames(undefined, [args.attribute]);
144
- content = ensureImport(content, args.importsFrom, decorators);
145
- const insertionPoint = content.lastIndexOf("}");
146
- const block = addPropertyBlock(args.attribute);
147
- const before = content.slice(0, insertionPoint).replace(/\s*$/, "");
148
- const after = content.slice(insertionPoint);
149
- const updated = `${before}\n${block}\n${after}`;
150
- writeIfChanged(args.filePath, updated);
151
- return { filePath: args.filePath };
152
- },
153
- },
154
- removeAttributeTool: {
155
- name: "remove-attribute",
156
- description: "Remove an attribute from a model class",
157
- execute: async (args) => {
158
- if (!fs_1.default.existsSync(args.filePath))
159
- return { filePath: args.filePath };
160
- const content = fs_1.default.readFileSync(args.filePath, "utf8");
161
- const updated = removePropertyBlock(content, args.attributeName);
162
- writeIfChanged(args.filePath, updated);
163
- return { filePath: args.filePath };
164
- },
165
- },
166
- applyDecoratorTool: {
167
- name: "apply-decorator",
168
- description: "Apply a decorator to a class or property",
169
- execute: async (args) => {
170
- if (!fs_1.default.existsSync(args.filePath)) {
171
- throw new Error(`Model file not found at ${args.filePath}`);
172
- }
173
- let content = fs_1.default.readFileSync(args.filePath, "utf8");
174
- const decorators = new Set([args.decorator.name]);
175
- content = ensureImport(content, args.importsFrom, decorators);
176
- content = insertDecorator(content, args.decorator, args.target);
177
- writeIfChanged(args.filePath, content);
178
- return { filePath: args.filePath };
179
- },
180
- },
181
- removeDecoratorTool: {
182
- name: "remove-decorator",
183
- description: "Remove a decorator from a class or property",
184
- execute: async (args) => {
185
- if (!fs_1.default.existsSync(args.filePath))
186
- return { filePath: args.filePath };
187
- let content = fs_1.default.readFileSync(args.filePath, "utf8");
188
- content = removeDecorator(content, args.decoratorName, args.target);
189
- writeIfChanged(args.filePath, content);
190
- return { filePath: args.filePath };
191
- },
192
- },
193
- scaffoldValidatorTool: {
194
- name: "scaffold-validator",
195
- description: "Scaffold a validator class and optional decorator",
196
- execute: async (args) => {
197
- const classFile = path_1.default.join(args.validatorsDir, `${args.name}.ts`);
198
- ensureDirectory(classFile);
199
- const classContent = `export class ${args.name} {\n validate(value: unknown): boolean {\n return value !== undefined;\n }\n}\n`;
200
- fs_1.default.writeFileSync(classFile, classContent);
201
- let decoratorFile;
202
- if (args.decoratorDir) {
203
- decoratorFile = path_1.default.join(args.decoratorDir, `${args.name}Decorator.ts`);
204
- ensureDirectory(decoratorFile);
205
- fs_1.default.writeFileSync(decoratorFile, `export function ${args.name}Decorator() {\n return () => void 0;\n}\n`);
206
- }
207
- return { classFile, decoratorFile };
208
- },
209
- },
210
- scaffoldSerializerTool: {
211
- name: "scaffold-serializer",
212
- description: "Scaffold a serializer class and optional registry",
213
- execute: async (args) => {
214
- const classFile = path_1.default.join(args.dir, `${args.name}.ts`);
215
- ensureDirectory(classFile);
216
- fs_1.default.writeFileSync(classFile, `export class ${args.name} {\n serialize(value: unknown): string {\n return JSON.stringify(value);\n }\n}\n`);
217
- let registerFile;
218
- if (args.registerDir) {
219
- registerFile = path_1.default.join(args.registerDir, `${args.name}Register.ts`);
220
- ensureDirectory(registerFile);
221
- fs_1.default.writeFileSync(registerFile, `export function register${args.name}() {\n return ${args.setDefault ? "'default'" : "'optional'"};\n}\n`);
222
- }
223
- return { classFile, registerFile };
224
- },
225
- },
226
- scaffoldHashingTool: {
227
- name: "scaffold-hashing",
228
- description: "Scaffold a hashing function and optional registry",
229
- execute: async (args) => {
230
- const functionFile = path_1.default.join(args.dir, `${args.name}.ts`);
231
- ensureDirectory(functionFile);
232
- fs_1.default.writeFileSync(functionFile, `export function ${args.name}(value: string): string {\n return value.split('').reverse().join('');\n}\n`);
233
- let registerFile;
234
- if (args.registerDir) {
235
- registerFile = path_1.default.join(args.registerDir, `${args.name}Register.ts`);
236
- ensureDirectory(registerFile);
237
- fs_1.default.writeFileSync(registerFile, `export function register${args.name}() {\n return ${args.setDefault ? "'default'" : "'optional'"};\n}\n`);
238
- }
239
- return { functionFile, registerFile };
240
- },
241
- },
242
- };
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLXRvb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21jcC9kZWNvcmF0b3ItdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQWF4QixTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBbUI7SUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsUUFBZ0I7SUFDdkMsWUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQzVCLGVBQTRDLEVBQzVDLFVBQXVDO0lBRXZDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixLQUFLLE1BQU0sU0FBUyxJQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUM5QyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFV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LENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxRQUFRLENBQzNHLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0tBQ0Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IHR5cGUgRGVjb3JhdG9yU3BlYyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcmdzPzogdW5rbm93bltdO1xufTtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlU3BlYyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlY29yYXRvcnM/OiBEZWNvcmF0b3JTcGVjW107XG59O1xuXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREZWNvcmF0b3Ioc3BlYzogRGVjb3JhdG9yU3BlYyk6IHN0cmluZyB7XG4gIGNvbnN0IGFyZ3MgPSAoc3BlYy5hcmdzIHx8IFtdKS5tYXAoKGFyZykgPT4gSlNPTi5zdHJpbmdpZnkoYXJnKSkuam9pbihcIiwgXCIpO1xuICByZXR1cm4gYEAke3NwZWMubmFtZX0oJHthcmdzfSlgO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVEaXJlY3RvcnkoZmlsZVBhdGg6IHN0cmluZykge1xuICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3REZWNvcmF0b3JOYW1lcyhcbiAgY2xhc3NEZWNvcmF0b3JzOiBEZWNvcmF0b3JTcGVjW10gfCB1bmRlZmluZWQsXG4gIHByb3BlcnRpZXM6IEF0dHJpYnV0ZVNwZWNbXSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IG5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIG5hbWVzLmFkZChcIm1vZGVsXCIpO1xuICBmb3IgKGNvbnN0IGRlY29yYXRvciBvZiBjbGFzc0RlY29yYXRvcnMgfHwgW10pIHtcbiAgICBuYW1lcy5hZGQoZGVjb3JhdG9yLm5hbWUpO1xuICB9XG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcyB8fCBbXSkge1xuICAgIGZvciAoY29uc3QgZGVjb3JhdG9yIG9mIHByb3BlcnR5LmRlY29yYXRvcnMgfHwgW10pIHtcbiAgICAgIG5hbWVzLmFkZChkZWNvcmF0b3IubmFtZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuYW1lcztcbn1cblxuZnVuY3Rpb24gZW5zdXJlSW1wb3J0KFxuICBjb250ZW50OiBzdHJpbmcsXG4gIGltcG9ydHNGcm9tOiBzdHJpbmcsXG4gIGRlY29yYXRvcnM6IFNldDxzdHJpbmc+XG4pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFkZWNvcmF0b3JzLnNpemUpIHJldHVybiBjb250ZW50O1xuICBjb25zdCBpbXBvcnRSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgYGltcG9ydFxcXFxzK1xcXFx7KFtefV0rKVxcXFx9XFxcXHMrZnJvbVxcXFxzK1tcIiddJHtlc2NhcGVSZWdFeHAoaW1wb3J0c0Zyb20pfVtcIiddO2BcbiAgKTtcbiAgY29uc3QgbWF0Y2ggPSBjb250ZW50Lm1hdGNoKGltcG9ydFJlZ2V4KTtcbiAgY29uc3Qgc29ydGVkID0gQXJyYXkuZnJvbShkZWNvcmF0b3JzKS5zb3J0KCk7XG5cbiAgaWYgKG1hdGNoKSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBtYXRjaFsxXVxuICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgLm1hcCgobmFtZSkgPT4gbmFtZS50cmltKCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IG1lcmdlZCA9IEFycmF5LmZyb20obmV3IFNldChbLi4uZXhpc3RpbmcsIC4uLnNvcnRlZF0pKS5zb3J0KCk7XG4gICAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZShcbiAgICAgIGltcG9ydFJlZ2V4LFxuICAgICAgYGltcG9ydCB7ICR7bWVyZ2VkLmpvaW4oXCIsIFwiKX0gfSBmcm9tIFwiJHtpbXBvcnRzRnJvbX1cIjtgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGltcG9ydExpbmUgPSBgaW1wb3J0IHsgJHtzb3J0ZWQuam9pbihcIiwgXCIpfSB9IGZyb20gXCIke2ltcG9ydHNGcm9tfVwiO2A7XG4gIHJldHVybiBgJHtpbXBvcnRMaW5lfVxcblxcbiR7Y29udGVudH1gO1xufVxuXG5mdW5jdGlvbiBhZGRQcm9wZXJ0eUJsb2NrKHByb3BlcnR5OiBBdHRyaWJ1dGVTcGVjKSB7XG4gIGNvbnN0IGRlY29yYXRvcnMgPSAocHJvcGVydHkuZGVjb3JhdG9ycyB8fCBbXSlcbiAgICAubWFwKGZvcm1hdERlY29yYXRvcilcbiAgICAuam9pbihcIlxcbiAgXCIpO1xuICBjb25zdCBkZWNvcmF0b3JCbG9jayA9IGRlY29yYXRvcnMgPyBgICAke2RlY29yYXRvcnN9XFxuYCA6IFwiXCI7XG4gIHJldHVybiBgJHtkZWNvcmF0b3JCbG9ja30gICR7cHJvcGVydHkubmFtZX06ICR7cHJvcGVydHkudHlwZX07YDtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHlCbG9jayhjb250ZW50OiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgvXFxyP1xcbi8pO1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBsaW5lID0gbGluZXNbaV07XG4gICAgaWYgKFxuICAgICAgbGluZS50cmltKCkuc3RhcnRzV2l0aChgQGApICYmXG4gICAgICBsaW5lc1tpICsgMV0/LmluY2x1ZGVzKGAke3Byb3BlcnR5TmFtZX06YClcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobGluZS5pbmNsdWRlcyhgJHtwcm9wZXJ0eU5hbWV9OmApKSB7XG4gICAgICAvLyBza2lwIHRoaXMgbGluZSBhbmQgYW55IHRyYWlsaW5nIGJsYW5rIGxpbmVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChsaW5lKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGluc2VydERlY29yYXRvcihcbiAgY29udGVudDogc3RyaW5nLFxuICBkZWNvcmF0b3I6IERlY29yYXRvclNwZWMsXG4gIHRhcmdldDoge1xuICAgIGtpbmQ6IFwiY2xhc3NcIiB8IFwicHJvcGVydHlcIjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9XG4pIHtcbiAgY29uc3QgZGVjb3JhdG9yTGluZSA9IGZvcm1hdERlY29yYXRvcihkZWNvcmF0b3IpO1xuICBpZiAodGFyZ2V0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgIGNvbnN0IGNsYXNzUmVnZXggPSAvKGV4cG9ydFxccytjbGFzc1xccytbXlxcc3tdK1xccypcXHspLztcbiAgICBpZiAoY29udGVudC5pbmNsdWRlcyhkZWNvcmF0b3JMaW5lKSkgcmV0dXJuIGNvbnRlbnQ7XG4gICAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZShjbGFzc1JlZ2V4LCBgJHtkZWNvcmF0b3JMaW5lfVxcbiQxYCk7XG4gIH1cbiAgaWYgKCF0YXJnZXQubmFtZSkgcmV0dXJuIGNvbnRlbnQ7XG4gIGNvbnN0IHByb3BlcnR5UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIGAoXlxcXFxzKikoPzpALipcXFxcblxcXFwxKSoke2VzY2FwZVJlZ0V4cCh0YXJnZXQubmFtZSl9OmAsXG4gICAgXCJtXCJcbiAgKTtcbiAgY29uc3QgbWF0Y2ggPSBwcm9wZXJ0eVJlZ2V4LmV4ZWMoY29udGVudCk7XG4gIGlmICghbWF0Y2gpIHJldHVybiBjb250ZW50O1xuICBjb25zdCBpbmRlbnQgPSBtYXRjaFsxXSB8fCBcIiAgXCI7XG4gIGlmIChjb250ZW50LmluY2x1ZGVzKGAke2luZGVudH0ke2RlY29yYXRvckxpbmV9YCkpIHJldHVybiBjb250ZW50O1xuICByZXR1cm4gKFxuICAgIGNvbnRlbnQuc2xpY2UoMCwgbWF0Y2guaW5kZXgpICtcbiAgICBgJHtpbmRlbnR9JHtkZWNvcmF0b3JMaW5lfVxcbmAgK1xuICAgIGNvbnRlbnQuc2xpY2UobWF0Y2guaW5kZXgpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURlY29yYXRvcihcbiAgY29udGVudDogc3RyaW5nLFxuICBkZWNvcmF0b3JOYW1lOiBzdHJpbmcsXG4gIHRhcmdldDoge1xuICAgIGtpbmQ6IFwiY2xhc3NcIiB8IFwicHJvcGVydHlcIjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9XG4pIHtcbiAgY29uc3QgZGVjb3JhdG9yUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIGBeXFxcXHMqQCR7ZXNjYXBlUmVnRXhwKGRlY29yYXRvck5hbWUpfVxcXFwoW14pXSpcXFxcKWAsXG4gICAgXCJtXCJcbiAgKTtcbiAgaWYgKHRhcmdldC5raW5kID09PSBcImNsYXNzXCIpIHtcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKGRlY29yYXRvclJlZ2V4LCBcIlwiKTtcbiAgfVxuICBpZiAodGFyZ2V0Lm5hbWUpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChcbiAgICAgIGAoXlxcXFxzKkAke2VzY2FwZVJlZ0V4cChkZWNvcmF0b3JOYW1lKX1cXFxcKFteKV0qXFxcXClcXFxccyokXFxcXG4pKD89XFxcXHMqJHtlc2NhcGVSZWdFeHAodGFyZ2V0Lm5hbWUpfTopYCxcbiAgICAgIFwibVwiXG4gICAgKTtcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIFwiXCIpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG5mdW5jdGlvbiB3cml0ZUlmQ2hhbmdlZChmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpIHtcbiAgZW5zdXJlRGlyZWN0b3J5KGZpbGVQYXRoKTtcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgY29udGVudCk7XG59XG5cbmV4cG9ydCBjb25zdCBkZWNvcmF0b3JUb29scyA9IHtcbiAgY3JlYXRlT3JVcGRhdGVNb2RlbFRvb2w6IHtcbiAgICBuYW1lOiBcImNyZWF0ZS1vci11cGRhdGUtbW9kZWxcIixcbiAgICBkZXNjcmlwdGlvbjogXCJDcmVhdGUgb3IgdXBkYXRlIGEgdmFsaWRhdGlvbi1yZWFkeSBtb2RlbCBjbGFzc1wiLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChhcmdzOiB7XG4gICAgICBmaWxlUGF0aDogc3RyaW5nO1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICBjbGFzc0RlY29yYXRvcnM/OiBEZWNvcmF0b3JTcGVjW107XG4gICAgICBwcm9wZXJ0aWVzOiBBdHRyaWJ1dGVTcGVjW107XG4gICAgICBpbXBvcnRzRnJvbTogc3RyaW5nO1xuICAgICAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgICB9KSA9PiB7XG4gICAgICBpZiAoIWFyZ3Mub3ZlcndyaXRlICYmIGZzLmV4aXN0c1N5bmMoYXJncy5maWxlUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGFscmVhZHkgZXhpc3RzIGF0ICR7YXJncy5maWxlUGF0aH1gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlY29yYXRvcnMgPSBjb2xsZWN0RGVjb3JhdG9yTmFtZXMoXG4gICAgICAgIGFyZ3MuY2xhc3NEZWNvcmF0b3JzLFxuICAgICAgICBhcmdzLnByb3BlcnRpZXNcbiAgICAgICk7XG4gICAgICBsZXQgY29udGVudCA9IGBAbW9kZWwoKWA7XG4gICAgICBmb3IgKGNvbnN0IGRlY29yYXRvciBvZiBhcmdzLmNsYXNzRGVjb3JhdG9ycyB8fCBbXSkge1xuICAgICAgICBjb250ZW50ICs9IGBcXG4ke2Zvcm1hdERlY29yYXRvcihkZWNvcmF0b3IpfWA7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gKGFyZ3MucHJvcGVydGllcyB8fCBbXSlcbiAgICAgICAgLm1hcChhZGRQcm9wZXJ0eUJsb2NrKVxuICAgICAgICAuam9pbihcIlxcblxcblwiKTtcbiAgICAgIGNvbnRlbnQgKz0gYFxcbmV4cG9ydCBjbGFzcyAke2FyZ3MuY2xhc3NOYW1lfSB7XFxuJHtwcm9wZXJ0aWVzID8gYCR7cHJvcGVydGllc31cXG5gIDogXCJcIn19XFxuYDtcbiAgICAgIGNvbnRlbnQgPSBlbnN1cmVJbXBvcnQoY29udGVudCwgYXJncy5pbXBvcnRzRnJvbSwgZGVjb3JhdG9ycyk7XG4gICAgICB3cml0ZUlmQ2hhbmdlZChhcmdzLmZpbGVQYXRoLCBjb250ZW50KTtcbiAgICAgIHJldHVybiB7IGZpbGVQYXRoOiBhcmdzLmZpbGVQYXRoIH07XG4gICAgfSxcbiAgfSxcbiAgYWRkQXR0cmlidXRlVG9vbDoge1xuICAgIG5hbWU6IFwiYWRkLWF0dHJpYnV0ZVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFkZCBhIGRlY29yYXRlZCBhdHRyaWJ1dGUgdG8gYW4gZXhpc3RpbmcgbW9kZWxcIixcbiAgICBleGVjdXRlOiBhc3luYyAoYXJnczoge1xuICAgICAgZmlsZVBhdGg6IHN0cmluZztcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgYXR0cmlidXRlOiBBdHRyaWJ1dGVTcGVjO1xuICAgICAgaW1wb3J0c0Zyb206IHN0cmluZztcbiAgICB9KSA9PiB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoYXJncy5maWxlUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2RlbCBmaWxlIG5vdCBmb3VuZCBhdCAke2FyZ3MuZmlsZVBhdGh9YCk7XG4gICAgICB9XG4gICAgICBsZXQgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhhcmdzLmZpbGVQYXRoLCBcInV0ZjhcIik7XG4gICAgICBpZiAoY29udGVudC5pbmNsdWRlcyhgJHthcmdzLmF0dHJpYnV0ZS5uYW1lfTpgKSkge1xuICAgICAgICByZXR1cm4geyBmaWxlUGF0aDogYXJncy5maWxlUGF0aCB9O1xuICAgICAgfVxuICAgICAgY29uc3QgZGVjb3JhdG9ycyA9IGNvbGxlY3REZWNvcmF0b3JOYW1lcyh1bmRlZmluZWQsIFthcmdzLmF0dHJpYnV0ZV0pO1xuICAgICAgY29udGVudCA9IGVuc3VyZUltcG9ydChjb250ZW50LCBhcmdzLmltcG9ydHNGcm9tLCBkZWNvcmF0b3JzKTtcbiAgICAgIGNvbnN0IGluc2VydGlvblBvaW50ID0gY29udGVudC5sYXN0SW5kZXhPZihcIn1cIik7XG4gICAgICBjb25zdCBibG9jayA9IGFkZFByb3BlcnR5QmxvY2soYXJncy5hdHRyaWJ1dGUpO1xuICAgICAgY29uc3QgYmVmb3JlID0gY29udGVudC5zbGljZSgwLCBpbnNlcnRpb25Qb2ludCkucmVwbGFjZSgvXFxzKiQvLCBcIlwiKTtcbiAgICAgIGNvbnN0IGFmdGVyID0gY29udGVudC5zbGljZShpbnNlcnRpb25Qb2ludCk7XG4gICAgICBjb25zdCB1cGRhdGVkID0gYCR7YmVmb3JlfVxcbiR7YmxvY2t9XFxuJHthZnRlcn1gO1xuICAgICAgd3JpdGVJZkNoYW5nZWQoYXJncy5maWxlUGF0aCwgdXBkYXRlZCk7XG4gICAgICByZXR1cm4geyBmaWxlUGF0aDogYXJncy5maWxlUGF0aCB9O1xuICAgIH0sXG4gIH0sXG4gIHJlbW92ZUF0dHJpYnV0ZVRvb2w6IHtcbiAgICBuYW1lOiBcInJlbW92ZS1hdHRyaWJ1dGVcIixcbiAgICBkZXNjcmlwdGlvbjogXCJSZW1vdmUgYW4gYXR0cmlidXRlIGZyb20gYSBtb2RlbCBjbGFzc1wiLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChhcmdzOiB7XG4gICAgICBmaWxlUGF0aDogc3RyaW5nO1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGFyZ3MuZmlsZVBhdGgpKSByZXR1cm4geyBmaWxlUGF0aDogYXJncy5maWxlUGF0aCB9O1xuICAgICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhhcmdzLmZpbGVQYXRoLCBcInV0ZjhcIik7XG4gICAgICBjb25zdCB1cGRhdGVkID0gcmVtb3ZlUHJvcGVydHlCbG9jayhjb250ZW50LCBhcmdzLmF0dHJpYnV0ZU5hbWUpO1xuICAgICAgd3JpdGVJZkNoYW5nZWQoYXJncy5maWxlUGF0aCwgdXBkYXRlZCk7XG4gICAgICByZXR1cm4geyBmaWxlUGF0aDogYXJncy5maWxlUGF0aCB9O1xuICAgIH0sXG4gIH0sXG4gIGFwcGx5RGVjb3JhdG9yVG9vbDoge1xuICAgIG5hbWU6IFwiYXBwbHktZGVjb3JhdG9yXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQXBwbHkgYSBkZWNvcmF0b3IgdG8gYSBjbGFzcyBvciBwcm9wZXJ0eVwiLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChhcmdzOiB7XG4gICAgICBmaWxlUGF0aDogc3RyaW5nO1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICB0YXJnZXQ6IHsga2luZDogXCJjbGFzc1wiIHwgXCJwcm9wZXJ0eVwiOyBuYW1lPzogc3RyaW5nIH07XG4gICAgICBkZWNvcmF0b3I6IERlY29yYXRvclNwZWM7XG4gICAgICBpbXBvcnRzRnJvbTogc3RyaW5nO1xuICAgIH0pID0+IHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhhcmdzLmZpbGVQYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIGZpbGUgbm90IGZvdW5kIGF0ICR7YXJncy5maWxlUGF0aH1gKTtcbiAgICAgIH1cbiAgICAgIGxldCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGFyZ3MuZmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgIGNvbnN0IGRlY29yYXRvcnMgPSBuZXcgU2V0PHN0cmluZz4oW2FyZ3MuZGVjb3JhdG9yLm5hbWVdKTtcbiAgICAgIGNvbnRlbnQgPSBlbnN1cmVJbXBvcnQoY29udGVudCwgYXJncy5pbXBvcnRzRnJvbSwgZGVjb3JhdG9ycyk7XG4gICAgICBjb250ZW50ID0gaW5zZXJ0RGVjb3JhdG9yKGNvbnRlbnQsIGFyZ3MuZGVjb3JhdG9yLCBhcmdzLnRhcmdldCk7XG4gICAgICB3cml0ZUlmQ2hhbmdlZChhcmdzLmZpbGVQYXRoLCBjb250ZW50KTtcbiAgICAgIHJldHVybiB7IGZpbGVQYXRoOiBhcmdzLmZpbGVQYXRoIH07XG4gICAgfSxcbiAgfSxcbiAgcmVtb3ZlRGVjb3JhdG9yVG9vbDoge1xuICAgIG5hbWU6IFwicmVtb3ZlLWRlY29yYXRvclwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlbW92ZSBhIGRlY29yYXRvciBmcm9tIGEgY2xhc3Mgb3IgcHJvcGVydHlcIixcbiAgICBleGVjdXRlOiBhc3luYyAoYXJnczoge1xuICAgICAgZmlsZVBhdGg6IHN0cmluZztcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgdGFyZ2V0OiB7IGtpbmQ6IFwiY2xhc3NcIiB8IFwicHJvcGVydHlcIjsgbmFtZT86IHN0cmluZyB9O1xuICAgICAgZGVjb3JhdG9yTmFtZTogc3RyaW5nO1xuICAgIH0pID0+IHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhhcmdzLmZpbGVQYXRoKSkgcmV0dXJuIHsgZmlsZVBhdGg6IGFyZ3MuZmlsZVBhdGggfTtcbiAgICAgIGxldCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGFyZ3MuZmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVEZWNvcmF0b3IoY29udGVudCwgYXJncy5kZWNvcmF0b3JOYW1lLCBhcmdzLnRhcmdldCk7XG4gICAgICB3cml0ZUlmQ2hhbmdlZChhcmdzLmZpbGVQYXRoLCBjb250ZW50KTtcbiAgICAgIHJldHVybiB7IGZpbGVQYXRoOiBhcmdzLmZpbGVQYXRoIH07XG4gICAgfSxcbiAgfSxcbiAgc2NhZmZvbGRWYWxpZGF0b3JUb29sOiB7XG4gICAgbmFtZTogXCJzY2FmZm9sZC12YWxpZGF0b3JcIixcbiAgICBkZXNjcmlwdGlvbjogXCJTY2FmZm9sZCBhIHZhbGlkYXRvciBjbGFzcyBhbmQgb3B0aW9uYWwgZGVjb3JhdG9yXCIsXG4gICAgZXhlY3V0ZTogYXN5bmMgKGFyZ3M6IHtcbiAgICAgIHZhbGlkYXRvcnNEaXI6IHN0cmluZztcbiAgICAgIGRlY29yYXRvckRpcj86IHN0cmluZztcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCBjbGFzc0ZpbGUgPSBwYXRoLmpvaW4oYXJncy52YWxpZGF0b3JzRGlyLCBgJHthcmdzLm5hbWV9LnRzYCk7XG4gICAgICBlbnN1cmVEaXJlY3RvcnkoY2xhc3NGaWxlKTtcbiAgICAgIGNvbnN0IGNsYXNzQ29udGVudCA9IGBleHBvcnQgY2xhc3MgJHthcmdzLm5hbWV9IHtcXG4gIHZhbGlkYXRlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XFxuICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xcbiAgfVxcbn1cXG5gO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhjbGFzc0ZpbGUsIGNsYXNzQ29udGVudCk7XG4gICAgICBsZXQgZGVjb3JhdG9yRmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGFyZ3MuZGVjb3JhdG9yRGlyKSB7XG4gICAgICAgIGRlY29yYXRvckZpbGUgPSBwYXRoLmpvaW4oXG4gICAgICAgICAgYXJncy5kZWNvcmF0b3JEaXIsXG4gICAgICAgICAgYCR7YXJncy5uYW1lfURlY29yYXRvci50c2BcbiAgICAgICAgKTtcbiAgICAgICAgZW5zdXJlRGlyZWN0b3J5KGRlY29yYXRvckZpbGUpO1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgIGRlY29yYXRvckZpbGUsXG4gICAgICAgICAgYGV4cG9ydCBmdW5jdGlvbiAke2FyZ3MubmFtZX1EZWNvcmF0b3IoKSB7XFxuICByZXR1cm4gKCkgPT4gdm9pZCAwO1xcbn1cXG5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBjbGFzc0ZpbGUsIGRlY29yYXRvckZpbGUgfTtcbiAgICB9LFxuICB9LFxuICBzY2FmZm9sZFNlcmlhbGl6ZXJUb29sOiB7XG4gICAgbmFtZTogXCJzY2FmZm9sZC1zZXJpYWxpemVyXCIsXG4gICAgZGVzY3JpcHRpb246IFwiU2NhZmZvbGQgYSBzZXJpYWxpemVyIGNsYXNzIGFuZCBvcHRpb25hbCByZWdpc3RyeVwiLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChhcmdzOiB7XG4gICAgICBkaXI6IHN0cmluZztcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHJlZ2lzdGVyRGlyPzogc3RyaW5nO1xuICAgICAgc2V0RGVmYXVsdD86IGJvb2xlYW47XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NGaWxlID0gcGF0aC5qb2luKGFyZ3MuZGlyLCBgJHthcmdzLm5hbWV9LnRzYCk7XG4gICAgICBlbnN1cmVEaXJlY3RvcnkoY2xhc3NGaWxlKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgIGNsYXNzRmlsZSxcbiAgICAgICAgYGV4cG9ydCBjbGFzcyAke2FyZ3MubmFtZX0ge1xcbiAgc2VyaWFsaXplKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcXG4gIH1cXG59XFxuYFxuICAgICAgKTtcbiAgICAgIGxldCByZWdpc3RlckZpbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChhcmdzLnJlZ2lzdGVyRGlyKSB7XG4gICAgICAgIHJlZ2lzdGVyRmlsZSA9IHBhdGguam9pbihhcmdzLnJlZ2lzdGVyRGlyLCBgJHthcmdzLm5hbWV9UmVnaXN0ZXIudHNgKTtcbiAgICAgICAgZW5zdXJlRGlyZWN0b3J5KHJlZ2lzdGVyRmlsZSk7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgICAgcmVnaXN0ZXJGaWxlLFxuICAgICAgICAgIGBleHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXIke2FyZ3MubmFtZX0oKSB7XFxuICByZXR1cm4gJHthcmdzLnNldERlZmF1bHQgPyBcIidkZWZhdWx0J1wiIDogXCInb3B0aW9uYWwnXCJ9O1xcbn1cXG5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBjbGFzc0ZpbGUsIHJlZ2lzdGVyRmlsZSB9O1xuICAgIH0sXG4gIH0sXG4gIHNjYWZmb2xkSGFzaGluZ1Rvb2w6IHtcbiAgICBuYW1lOiBcInNjYWZmb2xkLWhhc2hpbmdcIixcbiAgICBkZXNjcmlwdGlvbjogXCJTY2FmZm9sZCBhIGhhc2hpbmcgZnVuY3Rpb24gYW5kIG9wdGlvbmFsIHJlZ2lzdHJ5XCIsXG4gICAgZXhlY3V0ZTogYXN5bmMgKGFyZ3M6IHtcbiAgICAgIGRpcjogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgcmVnaXN0ZXJEaXI/OiBzdHJpbmc7XG4gICAgICBzZXREZWZhdWx0PzogYm9vbGVhbjtcbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCBmdW5jdGlvbkZpbGUgPSBwYXRoLmpvaW4oYXJncy5kaXIsIGAke2FyZ3MubmFtZX0udHNgKTtcbiAgICAgIGVuc3VyZURpcmVjdG9yeShmdW5jdGlvbkZpbGUpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgZnVuY3Rpb25GaWxlLFxuICAgICAgICBgZXhwb3J0IGZ1bmN0aW9uICR7YXJncy5uYW1lfSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcXG4gIHJldHVybiB2YWx1ZS5zcGxpdCgnJykucmV2ZXJzZSgpLmpvaW4oJycpO1xcbn1cXG5gXG4gICAgICApO1xuICAgICAgbGV0IHJlZ2lzdGVyRmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGFyZ3MucmVnaXN0ZXJEaXIpIHtcbiAgICAgICAgcmVnaXN0ZXJGaWxlID0gcGF0aC5qb2luKGFyZ3MucmVnaXN0ZXJEaXIsIGAke2FyZ3MubmFtZX1SZWdpc3Rlci50c2ApO1xuICAgICAgICBlbnN1cmVEaXJlY3RvcnkocmVnaXN0ZXJGaWxlKTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICByZWdpc3RlckZpbGUsXG4gICAgICAgICAgYGV4cG9ydCBmdW5jdGlvbiByZWdpc3RlciR7YXJncy5uYW1lfSgpIHtcXG4gIHJldHVybiAke2FyZ3Muc2V0RGVmYXVsdCA/IFwiJ2RlZmF1bHQnXCIgOiBcIidvcHRpb25hbCdcIn07XFxufVxcbmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGZ1bmN0aW9uRmlsZSwgcmVnaXN0ZXJGaWxlIH07XG4gICAgfSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIERlY29yYXRvclRvb2xzID0gdHlwZW9mIGRlY29yYXRvclRvb2xzO1xuIl19
@@ -1,118 +0,0 @@
1
- export type DecoratorSpec = {
2
- name: string;
3
- args?: unknown[];
4
- };
5
- export type AttributeSpec = {
6
- name: string;
7
- type: string;
8
- decorators?: DecoratorSpec[];
9
- };
10
- export declare const decoratorTools: {
11
- readonly createOrUpdateModelTool: {
12
- readonly name: "create-or-update-model";
13
- readonly description: "Create or update a validation-ready model class";
14
- readonly execute: (args: {
15
- filePath: string;
16
- className: string;
17
- classDecorators?: DecoratorSpec[];
18
- properties: AttributeSpec[];
19
- importsFrom: string;
20
- overwrite?: boolean;
21
- }) => Promise<{
22
- filePath: string;
23
- }>;
24
- };
25
- readonly addAttributeTool: {
26
- readonly name: "add-attribute";
27
- readonly description: "Add a decorated attribute to an existing model";
28
- readonly execute: (args: {
29
- filePath: string;
30
- className: string;
31
- attribute: AttributeSpec;
32
- importsFrom: string;
33
- }) => Promise<{
34
- filePath: string;
35
- }>;
36
- };
37
- readonly removeAttributeTool: {
38
- readonly name: "remove-attribute";
39
- readonly description: "Remove an attribute from a model class";
40
- readonly execute: (args: {
41
- filePath: string;
42
- className: string;
43
- attributeName: string;
44
- }) => Promise<{
45
- filePath: string;
46
- }>;
47
- };
48
- readonly applyDecoratorTool: {
49
- readonly name: "apply-decorator";
50
- readonly description: "Apply a decorator to a class or property";
51
- readonly execute: (args: {
52
- filePath: string;
53
- className: string;
54
- target: {
55
- kind: "class" | "property";
56
- name?: string;
57
- };
58
- decorator: DecoratorSpec;
59
- importsFrom: string;
60
- }) => Promise<{
61
- filePath: string;
62
- }>;
63
- };
64
- readonly removeDecoratorTool: {
65
- readonly name: "remove-decorator";
66
- readonly description: "Remove a decorator from a class or property";
67
- readonly execute: (args: {
68
- filePath: string;
69
- className: string;
70
- target: {
71
- kind: "class" | "property";
72
- name?: string;
73
- };
74
- decoratorName: string;
75
- }) => Promise<{
76
- filePath: string;
77
- }>;
78
- };
79
- readonly scaffoldValidatorTool: {
80
- readonly name: "scaffold-validator";
81
- readonly description: "Scaffold a validator class and optional decorator";
82
- readonly execute: (args: {
83
- validatorsDir: string;
84
- decoratorDir?: string;
85
- name: string;
86
- }) => Promise<{
87
- classFile: string;
88
- decoratorFile: string | undefined;
89
- }>;
90
- };
91
- readonly scaffoldSerializerTool: {
92
- readonly name: "scaffold-serializer";
93
- readonly description: "Scaffold a serializer class and optional registry";
94
- readonly execute: (args: {
95
- dir: string;
96
- name: string;
97
- registerDir?: string;
98
- setDefault?: boolean;
99
- }) => Promise<{
100
- classFile: string;
101
- registerFile: string | undefined;
102
- }>;
103
- };
104
- readonly scaffoldHashingTool: {
105
- readonly name: "scaffold-hashing";
106
- readonly description: "Scaffold a hashing function and optional registry";
107
- readonly execute: (args: {
108
- dir: string;
109
- name: string;
110
- registerDir?: string;
111
- setDefault?: boolean;
112
- }) => Promise<{
113
- functionFile: string;
114
- registerFile: string | undefined;
115
- }>;
116
- };
117
- };
118
- export type DecoratorTools = typeof decoratorTools;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnrichCoreWithAggregation = EnrichCoreWithAggregation;
4
- const aggregateModules_1 = require("./aggregateModules.cjs");
5
- const index_1 = require("./prompts/index.cjs");
6
- const index_2 = require("./tools/index.cjs");
7
- const index_3 = require("./resources/index.cjs");
8
- const index_4 = require("./templates/index.cjs");
9
- /**
10
- * Aggregate module assets and register them on the provided FastMCP-like server.
11
- * Falls back to built-in lists if aggregation yields none.
12
- */
13
- async function EnrichCoreWithAggregation(server, repoRoot = process.cwd()) {
14
- // First register built-in prompts/tools/resources/templates (legacy behavior)
15
- try {
16
- (0, index_1.loadPrompts)();
17
- for (const prompt of index_1.promptList)
18
- server.addPrompt(prompt);
19
- }
20
- catch (e) {
21
- // ignore if loadPrompts not available or fails
22
- }
23
- try {
24
- for (const tool of index_2.toolList)
25
- server.addTool(tool);
26
- }
27
- catch (e) { }
28
- try {
29
- for (const resource of index_3.resources)
30
- server.addResource(resource);
31
- }
32
- catch (e) { }
33
- try {
34
- const templates = (0, index_4.buildResourceTemplates)();
35
- for (const template of templates)
36
- server.addResourceTemplate(template);
37
- }
38
- catch (e) { }
39
- // Now aggregate modules and register aggregated assets with provenance
40
- const agg = await (0, aggregateModules_1.aggregateModules)(repoRoot);
41
- for (const p of agg.prompts) {
42
- server.addPrompt(p);
43
- }
44
- for (const t of agg.tools) {
45
- server.addTool(t);
46
- }
47
- for (const r of agg.resources) {
48
- server.addResource(r);
49
- }
50
- for (const tpl of agg.templates) {
51
- server.addResourceTemplate(tpl);
52
- }
53
- // return aggregation summary for calling tests/CI
54
- return {
55
- modulesChecked: agg.prompts.concat(agg.tools).length,
56
- conflicts: agg.conflicts,
57
- };
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdG1jcC13aXJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWNwL2Zhc3RtY3Atd2lyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLDhEQStDQztBQWhFRCw2REFBc0Q7QUFDdEQsK0NBQTBEO0FBQzFELDZDQUF5QztBQUN6QyxpREFBOEM7QUFDOUMsaURBQTJEO0FBUzNEOzs7R0FHRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsTUFBbUIsRUFDbkIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFFeEIsOEVBQThFO0lBQzlFLElBQUksQ0FBQztRQUNILElBQUEsbUJBQVcsR0FBRSxDQUFDO1FBQ2QsS0FBSyxNQUFNLE1BQU0sSUFBSSxrQkFBVTtZQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBYSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCwrQ0FBK0M7SUFDakQsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILEtBQUssTUFBTSxJQUFJLElBQUksZ0JBQVE7WUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLElBQUksQ0FBQztRQUNILEtBQUssTUFBTSxRQUFRLElBQUksaUJBQVM7WUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUEsOEJBQXNCLEdBQUUsQ0FBQztRQUMzQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVM7WUFDOUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLHVFQUF1RTtJQUN2RSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUNBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0MsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsT0FBTztRQUNMLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTtRQUNwRCxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGVNb2R1bGVzIH0gZnJvbSBcIi4vYWdncmVnYXRlTW9kdWxlc1wiO1xuaW1wb3J0IHsgbG9hZFByb21wdHMsIHByb21wdExpc3QgfSBmcm9tIFwiLi9wcm9tcHRzL2luZGV4XCI7XG5pbXBvcnQgeyB0b29sTGlzdCB9IGZyb20gXCIuL3Rvb2xzL2luZGV4XCI7XG5pbXBvcnQgeyByZXNvdXJjZXMgfSBmcm9tIFwiLi9yZXNvdXJjZXMvaW5kZXhcIjtcbmltcG9ydCB7IGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXMvaW5kZXhcIjtcblxuZXhwb3J0IHR5cGUgRmFzdE1DUExpa2UgPSB7XG4gIGFkZFByb21wdDogKHA6IGFueSkgPT4gdm9pZDtcbiAgYWRkVG9vbDogKHQ6IGFueSkgPT4gdm9pZDtcbiAgYWRkUmVzb3VyY2U6IChyOiBhbnkpID0+IHZvaWQ7XG4gIGFkZFJlc291cmNlVGVtcGxhdGU6ICh0OiBhbnkpID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIEFnZ3JlZ2F0ZSBtb2R1bGUgYXNzZXRzIGFuZCByZWdpc3RlciB0aGVtIG9uIHRoZSBwcm92aWRlZCBGYXN0TUNQLWxpa2Ugc2VydmVyLlxuICogRmFsbHMgYmFjayB0byBidWlsdC1pbiBsaXN0cyBpZiBhZ2dyZWdhdGlvbiB5aWVsZHMgbm9uZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIEVucmljaENvcmVXaXRoQWdncmVnYXRpb24oXG4gIHNlcnZlcjogRmFzdE1DUExpa2UsXG4gIHJlcG9Sb290ID0gcHJvY2Vzcy5jd2QoKVxuKSB7XG4gIC8vIEZpcnN0IHJlZ2lzdGVyIGJ1aWx0LWluIHByb21wdHMvdG9vbHMvcmVzb3VyY2VzL3RlbXBsYXRlcyAobGVnYWN5IGJlaGF2aW9yKVxuICB0cnkge1xuICAgIGxvYWRQcm9tcHRzKCk7XG4gICAgZm9yIChjb25zdCBwcm9tcHQgb2YgcHJvbXB0TGlzdCkgc2VydmVyLmFkZFByb21wdChwcm9tcHQgYXMgYW55KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGlnbm9yZSBpZiBsb2FkUHJvbXB0cyBub3QgYXZhaWxhYmxlIG9yIGZhaWxzXG4gIH1cblxuICB0cnkge1xuICAgIGZvciAoY29uc3QgdG9vbCBvZiB0b29sTGlzdCkgc2VydmVyLmFkZFRvb2wodG9vbCBhcyBhbnkpO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHRyeSB7XG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiByZXNvdXJjZXMpIHNlcnZlci5hZGRSZXNvdXJjZShyZXNvdXJjZSBhcyBhbnkpO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHRyeSB7XG4gICAgY29uc3QgdGVtcGxhdGVzID0gYnVpbGRSZXNvdXJjZVRlbXBsYXRlcygpO1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKVxuICAgICAgc2VydmVyLmFkZFJlc291cmNlVGVtcGxhdGUodGVtcGxhdGUgYXMgYW55KTtcbiAgfSBjYXRjaCAoZSkge31cblxuICAvLyBOb3cgYWdncmVnYXRlIG1vZHVsZXMgYW5kIHJlZ2lzdGVyIGFnZ3JlZ2F0ZWQgYXNzZXRzIHdpdGggcHJvdmVuYW5jZVxuICBjb25zdCBhZ2cgPSBhd2FpdCBhZ2dyZWdhdGVNb2R1bGVzKHJlcG9Sb290KTtcblxuICBmb3IgKGNvbnN0IHAgb2YgYWdnLnByb21wdHMpIHtcbiAgICBzZXJ2ZXIuYWRkUHJvbXB0KHApO1xuICB9XG4gIGZvciAoY29uc3QgdCBvZiBhZ2cudG9vbHMpIHtcbiAgICBzZXJ2ZXIuYWRkVG9vbCh0KTtcbiAgfVxuICBmb3IgKGNvbnN0IHIgb2YgYWdnLnJlc291cmNlcykge1xuICAgIHNlcnZlci5hZGRSZXNvdXJjZShyKTtcbiAgfVxuICBmb3IgKGNvbnN0IHRwbCBvZiBhZ2cudGVtcGxhdGVzKSB7XG4gICAgc2VydmVyLmFkZFJlc291cmNlVGVtcGxhdGUodHBsKTtcbiAgfVxuXG4gIC8vIHJldHVybiBhZ2dyZWdhdGlvbiBzdW1tYXJ5IGZvciBjYWxsaW5nIHRlc3RzL0NJXG4gIHJldHVybiB7XG4gICAgbW9kdWxlc0NoZWNrZWQ6IGFnZy5wcm9tcHRzLmNvbmNhdChhZ2cudG9vbHMpLmxlbmd0aCxcbiAgICBjb25mbGljdHM6IGFnZy5jb25mbGljdHMsXG4gIH07XG59XG4iXX0=
@@ -1,14 +0,0 @@
1
- export type FastMCPLike = {
2
- addPrompt: (p: any) => void;
3
- addTool: (t: any) => void;
4
- addResource: (r: any) => void;
5
- addResourceTemplate: (t: any) => void;
6
- };
7
- /**
8
- * Aggregate module assets and register them on the provided FastMCP-like server.
9
- * Falls back to built-in lists if aggregation yields none.
10
- */
11
- export declare function EnrichCoreWithAggregation(server: FastMCPLike, repoRoot?: string): Promise<{
12
- modulesChecked: number;
13
- conflicts: import("./aggregateModules").AggregationConflict[];
14
- }>;
package/lib/mcp/index.cjs DELETED
@@ -1,57 +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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.buildResourceTemplates = exports.buildDocPrompts = exports.EnrichCoreWithAggregation = exports.aggregateModulesSync = exports.aggregateModules = exports.validateModules = exports.default = void 0;
21
- exports.EnrichCore = EnrichCore;
22
- const index_1 = require("./prompts/index.cjs");
23
- const index_2 = require("./tools/index.cjs");
24
- const index_3 = require("./resources/index.cjs");
25
- const index_4 = require("./templates/index.cjs");
26
- __exportStar(require("./mcp-module.cjs"), exports);
27
- var mcp_module_1 = require("./mcp-module.cjs");
28
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(mcp_module_1).default; } });
29
- var validation_1 = require("./validation/index.cjs");
30
- Object.defineProperty(exports, "validateModules", { enumerable: true, get: function () { return validation_1.validateModules; } });
31
- var aggregateModules_1 = require("./aggregateModules.cjs");
32
- Object.defineProperty(exports, "aggregateModules", { enumerable: true, get: function () { return aggregateModules_1.aggregateModules; } });
33
- Object.defineProperty(exports, "aggregateModulesSync", { enumerable: true, get: function () { return aggregateModules_1.aggregateModulesSync; } });
34
- var fastmcp_wiring_1 = require("./fastmcp-wiring.cjs");
35
- Object.defineProperty(exports, "EnrichCoreWithAggregation", { enumerable: true, get: function () { return fastmcp_wiring_1.EnrichCoreWithAggregation; } });
36
- // re-export helpers used by tests and other modules
37
- var index_5 = require("./prompts/index.cjs");
38
- Object.defineProperty(exports, "buildDocPrompts", { enumerable: true, get: function () { return index_5.buildDocPrompts; } });
39
- var index_6 = require("./templates/index.cjs");
40
- Object.defineProperty(exports, "buildResourceTemplates", { enumerable: true, get: function () { return index_6.buildResourceTemplates; } });
41
- function EnrichCore(server) {
42
- (0, index_1.loadPrompts)();
43
- for (const prompt of index_1.promptList) {
44
- server.addPrompt(prompt);
45
- }
46
- for (const tool of index_2.toolList) {
47
- server.addTool(tool);
48
- }
49
- for (const resource of index_3.resources) {
50
- server.addResource(resource);
51
- }
52
- const templates = (0, index_4.buildResourceTemplates)();
53
- for (const template of templates) {
54
- server.addResourceTemplate(template);
55
- }
56
- }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWNwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLGdDQWVDO0FBL0JELCtDQUEwRDtBQUMxRCw2Q0FBeUM7QUFDekMsaURBQThDO0FBQzlDLGlEQUEyRDtBQUUzRCxtREFBNkI7QUFDN0IsK0NBQXVDO0FBQTlCLHNIQUFBLE9BQU8sT0FBQTtBQUVoQixxREFBK0M7QUFBdEMsNkdBQUEsZUFBZSxPQUFBO0FBQ3hCLDJEQUE0RTtBQUFuRSxvSEFBQSxnQkFBZ0IsT0FBQTtBQUFFLHdIQUFBLG9CQUFvQixPQUFBO0FBQy9DLHVEQUE2RDtBQUFwRCwySEFBQSx5QkFBeUIsT0FBQTtBQUVsQyxvREFBb0Q7QUFDcEQsNkNBQWtEO0FBQXpDLHdHQUFBLGVBQWUsT0FBQTtBQUN4QiwrQ0FBMkQ7QUFBbEQsK0dBQUEsc0JBQXNCLE9BQUE7QUFFL0IsU0FBZ0IsVUFBVSxDQUFDLE1BQWU7SUFDeEMsSUFBQSxtQkFBVyxHQUFFLENBQUM7SUFDZCxLQUFLLE1BQU0sTUFBTSxJQUFJLGtCQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLGdCQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLElBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLE1BQU0sUUFBUSxJQUFJLGlCQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDhCQUFzQixHQUFFLENBQUM7SUFDM0MsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBZSxDQUFDLENBQUM7SUFDOUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXN0TUNQIH0gZnJvbSBcImZhc3RtY3BcIjtcbmltcG9ydCB7IGxvYWRQcm9tcHRzLCBwcm9tcHRMaXN0IH0gZnJvbSBcIi4vcHJvbXB0cy9pbmRleFwiO1xuaW1wb3J0IHsgdG9vbExpc3QgfSBmcm9tIFwiLi90b29scy9pbmRleFwiO1xuaW1wb3J0IHsgcmVzb3VyY2VzIH0gZnJvbSBcIi4vcmVzb3VyY2VzL2luZGV4XCI7XG5pbXBvcnQgeyBidWlsZFJlc291cmNlVGVtcGxhdGVzIH0gZnJvbSBcIi4vdGVtcGxhdGVzL2luZGV4XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL21jcC1tb2R1bGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9tY3AtbW9kdWxlXCI7XG5cbmV4cG9ydCB7IHZhbGlkYXRlTW9kdWxlcyB9IGZyb20gXCIuL3ZhbGlkYXRpb25cIjtcbmV4cG9ydCB7IGFnZ3JlZ2F0ZU1vZHVsZXMsIGFnZ3JlZ2F0ZU1vZHVsZXNTeW5jIH0gZnJvbSBcIi4vYWdncmVnYXRlTW9kdWxlc1wiO1xuZXhwb3J0IHsgRW5yaWNoQ29yZVdpdGhBZ2dyZWdhdGlvbiB9IGZyb20gXCIuL2Zhc3RtY3Atd2lyaW5nXCI7XG5cbi8vIHJlLWV4cG9ydCBoZWxwZXJzIHVzZWQgYnkgdGVzdHMgYW5kIG90aGVyIG1vZHVsZXNcbmV4cG9ydCB7IGJ1aWxkRG9jUHJvbXB0cyB9IGZyb20gXCIuL3Byb21wdHMvaW5kZXhcIjtcbmV4cG9ydCB7IGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXMvaW5kZXhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEVucmljaENvcmUoc2VydmVyOiBGYXN0TUNQKSB7XG4gIGxvYWRQcm9tcHRzKCk7XG4gIGZvciAoY29uc3QgcHJvbXB0IG9mIHByb21wdExpc3QpIHtcbiAgICBzZXJ2ZXIuYWRkUHJvbXB0KHByb21wdCBhcyBhbnkpO1xuICB9XG4gIGZvciAoY29uc3QgdG9vbCBvZiB0b29sTGlzdCkge1xuICAgIHNlcnZlci5hZGRUb29sKHRvb2wgYXMgYW55KTtcbiAgfVxuICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIHJlc291cmNlcykge1xuICAgIHNlcnZlci5hZGRSZXNvdXJjZShyZXNvdXJjZSBhcyBhbnkpO1xuICB9XG4gIGNvbnN0IHRlbXBsYXRlcyA9IGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMoKTtcbiAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICBzZXJ2ZXIuYWRkUmVzb3VyY2VUZW1wbGF0ZSh0ZW1wbGF0ZSBhcyBhbnkpO1xuICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- import { FastMCP } from "fastmcp";
2
- export * from "./mcp-module";
3
- export { default } from "./mcp-module";
4
- export { validateModules } from "./validation";
5
- export { aggregateModules, aggregateModulesSync } from "./aggregateModules";
6
- export { EnrichCoreWithAggregation } from "./fastmcp-wiring";
7
- export { buildDocPrompts } from "./prompts/index";
8
- export { buildResourceTemplates } from "./templates/index";
9
- export declare function EnrichCore(server: FastMCP): void;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.__resetWorkspaceRoot = exports.setWorkspaceRoot = exports.getWorkspaceRoot = exports.workspaceResourceTemplates = exports.templateList = exports.resources = exports.promptList = exports.decorationResourceTemplates = exports.buildResourceTemplates = exports.buildDecorationResourceTemplates = exports.toolList = exports.tools = exports.VERSION = exports.PACKAGE_NAME = void 0;
4
- exports.enrich = enrich;
5
- const metadata_1 = require("./../metadata.cjs");
6
- const prompts_1 = require("./prompts/index.cjs");
7
- Object.defineProperty(exports, "promptList", { enumerable: true, get: function () { return prompts_1.promptList; } });
8
- const resources_1 = require("./resources/index.cjs");
9
- Object.defineProperty(exports, "resources", { enumerable: true, get: function () { return resources_1.resources; } });
10
- const templates_1 = require("./templates/index.cjs");
11
- Object.defineProperty(exports, "buildDecorationResourceTemplates", { enumerable: true, get: function () { return templates_1.buildDecorationResourceTemplates; } });
12
- Object.defineProperty(exports, "buildResourceTemplates", { enumerable: true, get: function () { return templates_1.buildResourceTemplates; } });
13
- Object.defineProperty(exports, "decorationResourceTemplates", { enumerable: true, get: function () { return templates_1.decorationResourceTemplates; } });
14
- Object.defineProperty(exports, "templateList", { enumerable: true, get: function () { return templates_1.templateList; } });
15
- Object.defineProperty(exports, "workspaceResourceTemplates", { enumerable: true, get: function () { return templates_1.workspaceResourceTemplates; } });
16
- const tools_1 = require("./tools/index.cjs");
17
- Object.defineProperty(exports, "toolList", { enumerable: true, get: function () { return tools_1.toolList; } });
18
- Object.defineProperty(exports, "tools", { enumerable: true, get: function () { return tools_1.tools; } });
19
- const workspace_1 = require("./workspace.cjs");
20
- Object.defineProperty(exports, "__resetWorkspaceRoot", { enumerable: true, get: function () { return workspace_1.__resetWorkspaceRoot; } });
21
- Object.defineProperty(exports, "getWorkspaceRoot", { enumerable: true, get: function () { return workspace_1.getWorkspaceRoot; } });
22
- Object.defineProperty(exports, "setWorkspaceRoot", { enumerable: true, get: function () { return workspace_1.setWorkspaceRoot; } });
23
- function enrich(mcp) {
24
- const promptEntries = (0, prompts_1.loadPrompts)();
25
- for (const prompt of promptEntries) {
26
- mcp.addPrompt(prompt);
27
- }
28
- for (const tool of tools_1.toolList) {
29
- mcp.addTool(tool);
30
- }
31
- const templates = (0, templates_1.buildResourceTemplates)();
32
- for (const template of templates) {
33
- mcp.addResourceTemplate(template);
34
- }
35
- for (const resource of resources_1.resources) {
36
- const addResource = mcp.addResource;
37
- if (typeof addResource === "function") {
38
- addResource.call(mcp, resource);
39
- }
40
- }
41
- return mcp;
42
- }
43
- exports.default = enrich;
44
- exports.PACKAGE_NAME = metadata_1.PACKAGE_NAME;
45
- exports.VERSION = metadata_1.VERSION;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNwLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tY3AvbWNwLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQkEsd0JBeUJDO0FBMUNELGdEQUFnRTtBQUNoRSxpREFBb0Q7QUFxRGxELDJGQXJEb0Isb0JBQVUsT0FxRHBCO0FBcERaLHFEQUF3QztBQXFEdEMsMEZBckRPLHFCQUFTLE9BcURQO0FBcERYLHFEQU1xQjtBQTBDbkIsaUhBL0NBLDRDQUFnQyxPQStDQTtBQUNoQyx1R0EvQ0Esa0NBQXNCLE9BK0NBO0FBQ3RCLDRHQS9DQSx1Q0FBMkIsT0ErQ0E7QUFHM0IsNkZBakRBLHdCQUFZLE9BaURBO0FBQ1osMkdBakRBLHNDQUEwQixPQWlEQTtBQS9DNUIsNkNBQTBDO0FBd0N4Qyx5RkF4Q08sZ0JBQVEsT0F3Q1A7QUFEUixzRkF2Q2lCLGFBQUssT0F1Q2pCO0FBdENQLCtDQUlxQjtBQTZDbkIscUdBaERBLGdDQUFvQixPQWdEQTtBQUZwQixpR0E3Q0EsNEJBQWdCLE9BNkNBO0FBQ2hCLGlHQTdDQSw0QkFBZ0IsT0E2Q0E7QUExQ2xCLFNBQWdCLE1BQU0sQ0FBQyxHQUFZO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLElBQUEscUJBQVcsR0FBRSxDQUFDO0lBQ3BDLEtBQUssTUFBTSxNQUFNLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbkMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUSxFQUFFLENBQUM7UUFDNUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFXLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxrQ0FBc0IsR0FBRSxDQUFDO0lBQzNDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFFBQWUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLHFCQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFdBQVcsR0FDZixHQUNELENBQUMsV0FBVyxDQUFDO1FBQ2QsSUFBSSxPQUFPLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFlLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELGtCQUFlLE1BQU0sQ0FBQztBQUNULFFBQUEsWUFBWSxHQUFHLHVCQUFHLENBQUM7QUFDbkIsUUFBQSxPQUFPLEdBQUcsa0JBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmFzdE1DUCB9IGZyb20gXCJmYXN0bWNwXCI7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUgYXMgUEtHLCBWRVJTSU9OIGFzIFYgfSBmcm9tIFwiLi4vbWV0YWRhdGFcIjtcbmltcG9ydCB7IGxvYWRQcm9tcHRzLCBwcm9tcHRMaXN0IH0gZnJvbSBcIi4vcHJvbXB0c1wiO1xuaW1wb3J0IHsgcmVzb3VyY2VzIH0gZnJvbSBcIi4vcmVzb3VyY2VzXCI7XG5pbXBvcnQge1xuICBidWlsZERlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlcyxcbiAgYnVpbGRSZXNvdXJjZVRlbXBsYXRlcyxcbiAgZGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVzLFxuICB0ZW1wbGF0ZUxpc3QsXG4gIHdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVzLFxufSBmcm9tIFwiLi90ZW1wbGF0ZXNcIjtcbmltcG9ydCB7IHRvb2xMaXN0LCB0b29scyB9IGZyb20gXCIuL3Rvb2xzXCI7XG5pbXBvcnQge1xuICBfX3Jlc2V0V29ya3NwYWNlUm9vdCxcbiAgZ2V0V29ya3NwYWNlUm9vdCxcbiAgc2V0V29ya3NwYWNlUm9vdCxcbn0gZnJvbSBcIi4vd29ya3NwYWNlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2gobWNwOiBGYXN0TUNQKTogRmFzdE1DUCB7XG4gIGNvbnN0IHByb21wdEVudHJpZXMgPSBsb2FkUHJvbXB0cygpO1xuICBmb3IgKGNvbnN0IHByb21wdCBvZiBwcm9tcHRFbnRyaWVzKSB7XG4gICAgbWNwLmFkZFByb21wdChwcm9tcHQgYXMgYW55KTtcbiAgfVxuXG4gIGZvciAoY29uc3QgdG9vbCBvZiB0b29sTGlzdCkge1xuICAgIG1jcC5hZGRUb29sKHRvb2wgYXMgYW55KTtcbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlcyA9IGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMoKTtcbiAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICBtY3AuYWRkUmVzb3VyY2VUZW1wbGF0ZSh0ZW1wbGF0ZSBhcyBhbnkpO1xuICB9XG5cbiAgZm9yIChjb25zdCByZXNvdXJjZSBvZiByZXNvdXJjZXMpIHtcbiAgICBjb25zdCBhZGRSZXNvdXJjZSA9IChcbiAgICAgIG1jcCBhcyB1bmtub3duIGFzIHsgYWRkUmVzb3VyY2U/OiAocmVzOiB1bmtub3duKSA9PiB2b2lkIH1cbiAgICApLmFkZFJlc291cmNlO1xuICAgIGlmICh0eXBlb2YgYWRkUmVzb3VyY2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYWRkUmVzb3VyY2UuY2FsbChtY3AsIHJlc291cmNlIGFzIGFueSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1jcDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZW5yaWNoO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFBLRztcbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gVjtcblxuZXhwb3J0IHtcbiAgdG9vbHMsXG4gIHRvb2xMaXN0LFxuICBidWlsZERlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlcyxcbiAgYnVpbGRSZXNvdXJjZVRlbXBsYXRlcyxcbiAgZGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVzLFxuICBwcm9tcHRMaXN0LFxuICByZXNvdXJjZXMsXG4gIHRlbXBsYXRlTGlzdCxcbiAgd29ya3NwYWNlUmVzb3VyY2VUZW1wbGF0ZXMsXG4gIGdldFdvcmtzcGFjZVJvb3QsXG4gIHNldFdvcmtzcGFjZVJvb3QsXG4gIF9fcmVzZXRXb3Jrc3BhY2VSb290LFxufTtcbiJdfQ==
@@ -1,11 +0,0 @@
1
- import type { FastMCP } from "fastmcp";
2
- import { promptList } from "./prompts";
3
- import { resources } from "./resources";
4
- import { buildDecorationResourceTemplates, buildResourceTemplates, decorationResourceTemplates, templateList, workspaceResourceTemplates } from "./templates";
5
- import { toolList, tools } from "./tools";
6
- import { __resetWorkspaceRoot, getWorkspaceRoot, setWorkspaceRoot } from "./workspace";
7
- export declare function enrich(mcp: FastMCP): FastMCP;
8
- export default enrich;
9
- export declare const PACKAGE_NAME = "##PACKAGE_NAME##";
10
- export declare const VERSION = "0.4.1";
11
- export { tools, toolList, buildDecorationResourceTemplates, buildResourceTemplates, decorationResourceTemplates, promptList, resources, templateList, workspaceResourceTemplates, getWorkspaceRoot, setWorkspaceRoot, __resetWorkspaceRoot, };