@decaf-ts/mcp-server 0.4.2 → 0.4.6

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
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ import { BaseJSDocPrompt, Footer } from "./constants.js";
3
+ import { PromptBuilder } from "./../../builders/prompt-builder.js";
4
+ const promptName = "ts.jsdoc.decorator";
5
+ const argsSchema = z.object({});
6
+ export const TsDocDecoratorPrompt = PromptBuilder.builder
7
+ .setName(promptName)
8
+ .setTitle("Decorator JSDocs Prompt")
9
+ .setDescription("Generate JSDoc comments for a TypeScript Decorator according to a curated template and prompt.")
10
+ .setArgsSchema(argsSchema)
11
+ .setCb((
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ args,
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ extra) => {
16
+ const prompt = `${BaseJSDocPrompt}
17
+ document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.
18
+ Include @function an @template tags when appropriate.
19
+ Include detailed @description for all properties.
20
+ For methods, include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.
21
+ create mermaid sequence diagrams under the @mermaid tag;
22
+
23
+ The order of tags (when applicable) should be as follows:
24
+ 1 - @description;
25
+ 2 - @summary;
26
+ 3 - @template;
27
+ 4 - @param including type definitions;
28
+ 5 - @return;
29
+ 6 - @function followed by the interface or type name;
30
+ 7 - @mermaid with the sequence diagram for the function if it has over 10 lines
31
+ 8 - @category one of: "Decorators", "Class Decorators", "Method Decorators", "Property Decorators", "Parameter Decorators"
32
+ Output only the full JSDoc comment block for the function.
33
+ DO NOT refer to the module it belongs with @memberOf
34
+ never omit or change any code
35
+ if the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information
36
+ ${Footer}`;
37
+ const result = {
38
+ messages: [{ role: "user", content: { type: "text", text: prompt } }],
39
+ };
40
+ return result;
41
+ });
42
+ //# sourceMappingURL=decorator-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/decorator-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAoB;AAOtD,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,oBAAoB,GAAkB,aAAa,CAAC,OAAO;KACrE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,yBAAyB,CAAC;KACnC,cAAc,CACb,gGAAgG,CACjG;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;;;;;;;;;;;;;;;;;;;;EAoBrC,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PromptBuilder } from "../../builders/prompt-builder";
2
+ export declare const TsDocEnumPrompt: PromptBuilder;
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { BaseJSDocPrompt, ConstantsPrompt, Footer } from "./constants.js";
3
+ import { PromptBuilder } from "./../../builders/prompt-builder.js";
4
+ const promptName = "ts.jsdoc.enum";
5
+ const argsSchema = z.object({});
6
+ export const TsDocEnumPrompt = PromptBuilder.builder
7
+ .setName(promptName)
8
+ .setTitle("Enum JSDocs Prompt")
9
+ .setDescription("Generate JSDoc comments for a TypeScript enum according to a curated template and prompt.")
10
+ .setArgsSchema(argsSchema)
11
+ .setCb((
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ args,
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ extra) => {
16
+ const prompt = `${BaseJSDocPrompt}
17
+ ${ConstantsPrompt}
18
+ ${Footer}`;
19
+ const result = {
20
+ messages: [{ role: "user", content: { type: "text", text: prompt } }],
21
+ };
22
+ return result;
23
+ });
24
+ //# sourceMappingURL=enum-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/enum-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAoB;AAOvE,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,eAAe,GAAkB,aAAa,CAAC,OAAO;KAChE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,oBAAoB,CAAC;KAC9B,cAAc,CACb,2FAA2F,CAC5F;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;EACrC,eAAe;EACf,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PromptBuilder } from "../../builders/prompt-builder";
2
+ export declare const TsDocFunctionPrompt: PromptBuilder;
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { BaseJSDocPrompt, Footer } from "./constants.js";
3
+ import { PromptBuilder } from "./../../builders/prompt-builder.js";
4
+ const promptName = "ts.jsdoc.function";
5
+ const argsSchema = z.object({});
6
+ export const TsDocFunctionPrompt = PromptBuilder.builder
7
+ .setName(promptName)
8
+ .setTitle("Function JSDocs Prompt")
9
+ .setDescription("Generate JSDoc comments for a TypeScript function according to a curated template and prompt.")
10
+ .setArgsSchema(argsSchema)
11
+ .setCb((
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ args,
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ extra) => {
16
+ const prompt = `${BaseJSDocPrompt}
17
+ document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.
18
+ Include @function an @template tags when appropriate.
19
+ Include detailed @description for all properties.
20
+ For methods, include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.
21
+ create mermaid sequence diagrams under the @mermaid tag;
22
+
23
+ The order of tags (when applicable) should be as follows:
24
+ 1 - @description;
25
+ 2 - @summary;
26
+ 3 - @template;
27
+ 4 - @param including type definitions;
28
+ 5 - @return;
29
+ 6 - @function followed by the interface or type name;
30
+ 7 - @mermaid with the sequence diagram for the function if ithas over 10 lines
31
+ 8 - @memberOf referencing the appropriate module using the appropriate syntax
32
+
33
+ Output only the full JSDoc comment block for the function.
34
+ refer to the module it belongs with @memberOf this the \`@memberOf module:<module_name>\` syntax
35
+ never omit or change any code
36
+ if the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information
37
+ ${Footer}`;
38
+ const result = {
39
+ messages: [{ role: "user", content: { type: "text", text: prompt } }],
40
+ };
41
+ return result;
42
+ });
43
+ //# sourceMappingURL=function-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/function-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAoB;AAOtD,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,mBAAmB,GAAkB,aAAa,CAAC,OAAO;KACpE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,wBAAwB,CAAC;KAClC,cAAc,CACb,+FAA+F,CAChG;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;;;;;;;;;;;;;;;;;;;;;EAqBrC,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PromptBuilder } from "../../builders/prompt-builder";
2
+ export declare const TsDocInterfacePrompt: PromptBuilder;
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { BaseJSDocPrompt, Footer, TypesPrompt } from "./constants.js";
3
+ import { PromptBuilder } from "./../../builders/prompt-builder.js";
4
+ const promptName = "ts.jsdoc.interface";
5
+ const argsSchema = z.object({});
6
+ export const TsDocInterfacePrompt = PromptBuilder.builder
7
+ .setName(promptName)
8
+ .setTitle("Interface JSDocs Prompt")
9
+ .setDescription("Generate JSDoc comments for a TypeScript interface according to a curated template and prompt.")
10
+ .setArgsSchema(argsSchema)
11
+ .setCb((
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ args,
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ extra) => {
16
+ const prompt = `${BaseJSDocPrompt}
17
+ ${TypesPrompt}
18
+ ${Footer}`;
19
+ const result = {
20
+ messages: [{ role: "user", content: { type: "text", text: prompt } }],
21
+ };
22
+ return result;
23
+ });
24
+ //# sourceMappingURL=interface-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/interface-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAoB;AAOnE,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,oBAAoB,GAAkB,aAAa,CAAC,OAAO;KACrE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,yBAAyB,CAAC;KACnC,cAAc,CACb,gGAAgG,CACjG;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;EACrC,WAAW;EACX,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PromptBuilder } from "../../builders/prompt-builder";
2
+ export declare const TsDocTypeePrompt: PromptBuilder;
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { BaseJSDocPrompt, Footer, TypesPrompt } from "./constants.js";
3
+ import { PromptBuilder } from "./../../builders/prompt-builder.js";
4
+ const promptName = "ts.jsdoc.type";
5
+ const argsSchema = z.object({});
6
+ export const TsDocTypeePrompt = PromptBuilder.builder
7
+ .setName(promptName)
8
+ .setTitle("Type JSDocs Prompt")
9
+ .setDescription("Generate JSDoc comments for a TypeScript type according to a curated template and prompt.")
10
+ .setArgsSchema(argsSchema)
11
+ .setCb((
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ args,
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ extra) => {
16
+ const prompt = `${BaseJSDocPrompt}
17
+ ${TypesPrompt}
18
+ ${Footer}`;
19
+ const result = {
20
+ messages: [{ role: "user", content: { type: "text", text: prompt } }],
21
+ };
22
+ return result;
23
+ });
24
+ //# sourceMappingURL=types-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/types-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAoB;AAOnE,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,gBAAgB,GAAkB,aAAa,CAAC,OAAO;KACjE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,oBAAoB,CAAC;KAC9B,cAAc,CACb,2FAA2F,CAC5F;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;EACrC,WAAW;EACX,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ResourceBuilder } from "../../builders/resource-builder";
2
+ export declare const ExampleResource: ResourceBuilder;
@@ -0,0 +1,19 @@
1
+ import { ResourceBuilder } from "./../../builders/resource-builder.js";
2
+ import { ReasoningLevel, EffortLevel, Cost } from "./../../constants.js";
3
+ export const ExampleResource = ResourceBuilder.builder
4
+ .setName("example.resource.hello")
5
+ .setTitle("Example: Hello Resource")
6
+ .setDescription("A tiny example resource that returns a simple payload for any URI.")
7
+ .setUriOtTemplate("example://hello/{name}")
8
+ .setConfig({ description: "Example resource", _meta: { usage: { reasoning: ReasoningLevel.NONE, effort: EffortLevel.NONE, cost: Cost.FREE } } })
9
+ .setCb(async (_uri, _extra) => {
10
+ const payload = {
11
+ content: {
12
+ type: "text",
13
+ text: "hello from example resource",
14
+ },
15
+ _meta: {},
16
+ };
17
+ return payload;
18
+ });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resources/example-resource/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,6CAAwC;AAOlE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,6BAAwB;AAEpE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO;KACnD,OAAO,CAAC,wBAAwB,CAAC;KACjC,QAAQ,CAAC,yBAAyB,CAAC;KACnC,cAAc,CAAC,oEAAoE,CAAC;KACpF,gBAAgB,CAAC,wBAAwB,CAAC;KAC1C,SAAS,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;KAC/I,KAAK,CAAC,KAAK,EAAE,IAAS,EAAE,MAA8D,EAAE,EAAE;IACzF,MAAM,OAAO,GAAuB;QAClC,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,6BAA6B;SACpC;QACD,KAAK,EAAE,EAAE;KACH,CAAC;IACT,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,CACD"}
@@ -0,0 +1,2 @@
1
+ import { ResourceBuilder } from "../builders/resource-builder";
2
+ export declare const Resources: ResourceBuilder[];
@@ -0,0 +1,4 @@
1
+ import { ExampleResource } from "./example-resource/index.js";
2
+ import { RepoMetadataResource } from "./repo-metadata/index.js";
3
+ export const Resources = [ExampleResource, RepoMetadataResource];
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oCAA2B;AACrD,OAAO,EAAE,oBAAoB,EAAE,iCAAwB;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAsB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ResourceBuilder } from "../../builders/resource-builder";
2
+ export declare const RepoMetadataResource: ResourceBuilder;
@@ -0,0 +1,25 @@
1
+ import { ResourceBuilder } from "./../../builders/resource-builder.js";
2
+ import { ReasoningLevel, EffortLevel, Cost } from "./../../constants.js";
3
+ import { readFile } from "fs/promises";
4
+ import { resolve } from "path";
5
+ export const RepoMetadataResource = ResourceBuilder.builder
6
+ .setName("repo.metadata")
7
+ .setTitle("Repository Metadata Resource")
8
+ .setDescription("Expose basic repository metadata such as package.json and lint rules.")
9
+ .setUriOtTemplate("repo://metadata/{file}")
10
+ .setConfig({ description: "Repository metadata resource", _meta: { usage: { reasoning: ReasoningLevel.NONE, effort: EffortLevel.NONE, cost: Cost.FREE } } })
11
+ .setCb(async (uri, _extra) => {
12
+ const file = uri.pathname.replace(/^\//, "") || "package.json";
13
+ try {
14
+ const p = resolve(process.cwd(), file);
15
+ const raw = await readFile(p, { encoding: "utf8" });
16
+ const parsed = JSON.parse(raw);
17
+ const payload = { content: { type: "json", data: JSON.stringify(parsed) }, _meta: {} };
18
+ return payload;
19
+ }
20
+ catch (e) {
21
+ const payload = { content: { type: "text", text: "" }, _meta: {} };
22
+ return payload;
23
+ }
24
+ });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resources/repo-metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,6CAAwC;AAOlE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,6BAAwB;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC,OAAO;KACxD,OAAO,CAAC,eAAe,CAAC;KACxB,QAAQ,CAAC,8BAA8B,CAAC;KACxC,cAAc,CAAC,uEAAuE,CAAC;KACvF,gBAAgB,CAAC,wBAAwB,CAAC;KAC1C,SAAS,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;KAC3J,KAAK,CAAC,KAAK,EAAE,GAAQ,EAAE,MAA8D,EAAE,EAAE;IACxF,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAuB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAS,CAAC;QAClH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAuB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAS,CAAC;QAC9F,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ToolBuilder } from "../../builders/tool-builder";
2
+ export declare const TsAstTool: ToolBuilder;
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ import { analyzeFile } from "./utils.js";
3
+ import { ToolBuilder } from "./../../builders/tool-builder.js";
4
+ const toolName = "ts.ast.extract";
5
+ const toolTitle = "AST Extraction Tool for TypeScript";
6
+ const inputSchema = z
7
+ .object({
8
+ filePath: z
9
+ .string()
10
+ .describe("The path to the TypeScript file to analyze."),
11
+ })
12
+ .describe(`the input schema for the ${toolName} tool`);
13
+ const outputSchema = z
14
+ .object({})
15
+ .describe(`the output schema for the ${toolName} tool`);
16
+ export const TsAstTool = ToolBuilder.builder
17
+ .setName(toolName)
18
+ .setTitle(toolTitle)
19
+ .setDescription("Extracts and analyzes the Abstract Syntax Tree (AST) of TypeScript code to provide insights into its structure and components.")
20
+ .setInputSchema(inputSchema)
21
+ // This tool returns a list of content blocks (in `content`) rather than a
22
+ // structured object; do not set an outputSchema to avoid requiring
23
+ // `structuredContent` in the CallToolResult.
24
+ .setAnnotations({
25
+ title: toolTitle,
26
+ readOnlyHint: true,
27
+ destructiveHint: false,
28
+ idempotentHint: true,
29
+ openWorldHint: false,
30
+ })
31
+ .setCb(async (args,
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ extra) => {
34
+ const { filePath } = args;
35
+ // Guard analyzeFile with a short overall timeout so a slow ts-morph
36
+ // resolution won't block the integration test indefinitely.
37
+ const res = await Promise.race([
38
+ analyzeFile(filePath),
39
+ new Promise((res) => setTimeout(() => res(null), 1500)),
40
+ ]);
41
+ if (!res || !res.astObjects) {
42
+ // return an empty content array (CallToolResult expects an object; we
43
+ // provide readable content and a lightweight structuredContent)
44
+ return {
45
+ content: [{ type: "text", text: "No AST objects or analysis timed out" }],
46
+ structuredContent: { astObjects: [] },
47
+ };
48
+ }
49
+ // Normalize shape to AstObject as much as possible
50
+ const objects = res.astObjects.map((o) => ({
51
+ id: o.id,
52
+ name: o.name,
53
+ kind: o.kind || "unknown",
54
+ location: o.location,
55
+ isExported: !!o.isExported,
56
+ signature: o.signature,
57
+ parentId: o.parentId,
58
+ children: o.children,
59
+ decorators: o.decorators,
60
+ contextHints: o.contextHints || [],
61
+ }));
62
+ return {
63
+ content: [{ type: "text", text: `Found ${objects.length} AST objects` }],
64
+ structuredContent: { astObjects: objects },
65
+ };
66
+ });
67
+ //# sourceMappingURL=ts-ast-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-ast-tool.js","sourceRoot":"","sources":["../../../../src/tools/ast/ts-ast-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,mBAAgB;AAMtC,OAAO,EAAE,WAAW,EAAE,yCAAoC;AAE1D,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAElC,MAAM,SAAS,GAAG,oCAAoC,CAAC;AAEvD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC;KACD,QAAQ,CAAC,4BAA4B,QAAQ,OAAO,CAAC,CAAC;AAEzD,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC,EAAE,CAAC;KACV,QAAQ,CAAC,6BAA6B,QAAQ,OAAO,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAgB,WAAW,CAAC,OAAO;KACtD,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,SAAS,CAAC;KACnB,cAAc,CACb,gIAAgI,CACjI;KACA,cAAc,CAAC,WAAW,CAAC;IAC5B,0EAA0E;IAC1E,mEAAmE;IACnE,6CAA6C;KAC5C,cAAc,CAAC;IACd,KAAK,EAAE,SAAS;IAChB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACrB,CAAC;KACD,KAAK,CACJ,KAAK,EACH,IAAS;AACT,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,oEAAoE;IACpE,4DAA4D;IAC5D,MAAM,GAAG,GAAQ,MAAM,OAAO,CAAC,IAAI,CAAC;QAClC,WAAW,CAAC,QAAQ,CAAC;QACrB,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;KACxD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC5B,sEAAsE;QACtE,gEAAgE;QAChE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC;YACzE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;SAC/B,CAAC;IACX,CAAC;IACD,mDAAmD;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAG,CAAC,CAAC,IAAY,IAAI,SAAS;QAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;QAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE;KACnC,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,MAAM,cAAc,EAAE,CAAC;QACxE,iBAAiB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;KACpC,CAAC;AACX,CAAC,CACF,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ export type AstObjectKind = "class" | "function" | "interface" | "type" | "enum" | "constant" | "module" | "namespace" | "decorator" | "cli-module";
3
+ export declare const zAstObjectKind: z.ZodEnum<["class", "function", "interface", "type", "enum", "constant", "module", "namespace", "decorator", "cli-module"]>;
4
+ export interface SourceLocation {
5
+ filePath: string;
6
+ startLine: number;
7
+ startColumn: number;
8
+ endLine: number;
9
+ endColumn: number;
10
+ }
11
+ export declare const zSourceLocation: z.ZodObject<{
12
+ filePath: z.ZodString;
13
+ startLine: z.ZodNumber;
14
+ startColumn: z.ZodNumber;
15
+ endLine: z.ZodNumber;
16
+ endColumn: z.ZodNumber;
17
+ }, "strip", z.ZodTypeAny, {
18
+ filePath: string;
19
+ startLine: number;
20
+ startColumn: number;
21
+ endLine: number;
22
+ endColumn: number;
23
+ }, {
24
+ filePath: string;
25
+ startLine: number;
26
+ startColumn: number;
27
+ endLine: number;
28
+ endColumn: number;
29
+ }>;
30
+ export interface AstObject {
31
+ id: string;
32
+ name: string;
33
+ kind: AstObjectKind;
34
+ location: SourceLocation;
35
+ isExported: boolean;
36
+ signature?: string;
37
+ parentId?: string;
38
+ children?: string[];
39
+ decorators?: string[];
40
+ contextHints?: string[];
41
+ }
42
+ export declare const zAstObject: z.ZodObject<{
43
+ id: z.ZodString;
44
+ name: z.ZodString;
45
+ kind: z.ZodEnum<["class", "function", "interface", "type", "enum", "constant", "module", "namespace", "decorator", "cli-module"]>;
46
+ location: z.ZodObject<{
47
+ filePath: z.ZodString;
48
+ startLine: z.ZodNumber;
49
+ startColumn: z.ZodNumber;
50
+ endLine: z.ZodNumber;
51
+ endColumn: z.ZodNumber;
52
+ }, "strip", z.ZodTypeAny, {
53
+ filePath: string;
54
+ startLine: number;
55
+ startColumn: number;
56
+ endLine: number;
57
+ endColumn: number;
58
+ }, {
59
+ filePath: string;
60
+ startLine: number;
61
+ startColumn: number;
62
+ endLine: number;
63
+ endColumn: number;
64
+ }>;
65
+ isExported: z.ZodBoolean;
66
+ signature: z.ZodOptional<z.ZodString>;
67
+ parentId: z.ZodOptional<z.ZodString>;
68
+ children: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
69
+ decorators: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
70
+ contextHints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ name: string;
73
+ kind: "function" | "type" | "class" | "interface" | "enum" | "constant" | "module" | "namespace" | "decorator" | "cli-module";
74
+ id: string;
75
+ location: {
76
+ filePath: string;
77
+ startLine: number;
78
+ startColumn: number;
79
+ endLine: number;
80
+ endColumn: number;
81
+ };
82
+ isExported: boolean;
83
+ signature?: string | undefined;
84
+ parentId?: string | undefined;
85
+ children?: string[] | undefined;
86
+ decorators?: string[] | undefined;
87
+ contextHints?: string[] | undefined;
88
+ }, {
89
+ name: string;
90
+ kind: "function" | "type" | "class" | "interface" | "enum" | "constant" | "module" | "namespace" | "decorator" | "cli-module";
91
+ id: string;
92
+ location: {
93
+ filePath: string;
94
+ startLine: number;
95
+ startColumn: number;
96
+ endLine: number;
97
+ endColumn: number;
98
+ };
99
+ isExported: boolean;
100
+ signature?: string | undefined;
101
+ parentId?: string | undefined;
102
+ children?: string[] | undefined;
103
+ decorators?: string[] | undefined;
104
+ contextHints?: string[] | undefined;
105
+ }>;
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ export const zAstObjectKind = z.enum([
3
+ "class",
4
+ "function",
5
+ "interface",
6
+ "type",
7
+ "enum",
8
+ "constant",
9
+ "module",
10
+ "namespace",
11
+ "decorator",
12
+ "cli-module",
13
+ ]);
14
+ export const zSourceLocation = z.object({
15
+ filePath: z.string(),
16
+ startLine: z.number().int().nonnegative(),
17
+ startColumn: z.number().int().nonnegative(),
18
+ endLine: z.number().int().nonnegative(),
19
+ endColumn: z.number().int().nonnegative(),
20
+ });
21
+ export const zAstObject = z.object({
22
+ id: z.string(),
23
+ name: z.string(),
24
+ kind: zAstObjectKind,
25
+ location: zSourceLocation,
26
+ isExported: z.boolean(),
27
+ signature: z.string().optional(),
28
+ parentId: z.string().optional(),
29
+ children: z.array(z.string()).optional(),
30
+ decorators: z.array(z.string()).optional(),
31
+ contextHints: z.array(z.string()).optional(),
32
+ });
33
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/tools/ast/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO;IACP,UAAU;IACV,WAAW;IACX,MAAM;IACN,MAAM;IACN,UAAU;IACV,QAAQ;IACR,WAAW;IACX,WAAW;IACX,YAAY;CACb,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC1C,CAAC,CAAC;AAeH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Project } from "ts-morph";
2
+ export declare function getProject(rootDir?: string): Project;
3
+ export declare function analyzeFile(filePath: string): Promise<{
4
+ astObjects: any[];
5
+ }>;
@@ -0,0 +1,58 @@
1
+ import { Project } from "ts-morph";
2
+ import path from "path";
3
+ let _project = null;
4
+ export function getProject(rootDir) {
5
+ if (_project)
6
+ return _project;
7
+ _project = new Project({
8
+ tsConfigFilePath: rootDir ? path.join(rootDir, "tsconfig.json") : undefined,
9
+ skipAddingFilesFromTsConfig: true,
10
+ });
11
+ return _project;
12
+ }
13
+ export async function analyzeFile(filePath) {
14
+ const project = getProject();
15
+ const source = project.addSourceFileAtPathIfExists(filePath) ||
16
+ project.createSourceFile(filePath, undefined, { overwrite: false });
17
+ // Resolve dependencies but don't allow this to block the server for too long
18
+ // (some environments may have large tsconfigs or slow IO). Use a short
19
+ // timeout so analyzeFile remains responsive in tests and integrations.
20
+ try {
21
+ await Promise.race([
22
+ project.resolveSourceFileDependencies(),
23
+ new Promise((res) => setTimeout(res, 2000)),
24
+ ]);
25
+ }
26
+ catch (err) {
27
+ // ignore resolution errors — we can still extract basic info from the file
28
+ }
29
+ // Very small example extractor: list exported declarations
30
+ const exported = source.getExportedDeclarations();
31
+ const entries = Array.from(exported.entries());
32
+ const astObjects = entries.flatMap(([name, decls]) => decls.map((d) => {
33
+ // defensive accessors
34
+ const start = typeof d.getStartLineNumber === "function" ? d.getStartLineNumber() : 0;
35
+ const end = typeof d.getEndLineNumber === "function" ? d.getEndLineNumber() : 0;
36
+ const kind = typeof d.getKindName === "function"
37
+ ? String(d.getKindName()).toLowerCase()
38
+ : "unknown";
39
+ const startColumn = typeof d.getStartLinePos === "function"
40
+ ? d.getStartLinePos()
41
+ : 0;
42
+ return {
43
+ id: `${filePath}::${name}`,
44
+ name,
45
+ kind,
46
+ location: {
47
+ filePath,
48
+ startLine: start,
49
+ startColumn,
50
+ endLine: end,
51
+ endColumn: 0,
52
+ },
53
+ isExported: true,
54
+ };
55
+ }));
56
+ return { astObjects };
57
+ }
58
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/tools/ast/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,IAAI,QAAQ,GAAmB,IAAI,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,QAAQ,GAAG,IAAI,OAAO,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,2BAA2B,EAAE,IAAI;KAClC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GACV,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC;QAC7C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtE,6EAA6E;IAC7E,uEAAuE;IACvE,uEAAuE;IACvE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,OAAO,CAAC,6BAA6B,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2EAA2E;IAC7E,CAAC;IAED,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAClD,KAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,sBAAsB;QACtB,MAAM,KAAK,GACT,OAAO,CAAC,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GACP,OAAO,CAAC,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GACR,OAAO,CAAC,CAAC,WAAW,KAAK,UAAU;YACjC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;YACvC,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,WAAW,GACf,OAAQ,CAAS,CAAC,eAAe,KAAK,UAAU;YAC9C,CAAC,CAAE,CAAS,CAAC,eAAe,EAAE;YAC9B,CAAC,CAAC,CAAC,CAAC;QACR,OAAO;YACL,EAAE,EAAE,GAAG,QAAQ,KAAK,IAAI,EAAE;YAC1B,IAAI;YACJ,IAAI;YACJ,QAAQ,EAAE;gBACR,QAAQ;gBACR,SAAS,EAAE,KAAK;gBAChB,WAAW;gBACX,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,CAAC;aACb;YACD,UAAU,EAAE,IAAI;SACV,CAAC;IACX,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { JSDocSuggestion } from './generator';
2
+ export declare function backupFile(filePath: string): string;
3
+ export declare function applySuggestionsToFile(filePath: string, suggestions: JSDocSuggestion[]): {
4
+ backup?: string;
5
+ written: boolean;
6
+ };
@@ -0,0 +1,29 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { applyJSDocToContent } from "./formatter.js";
4
+ export function backupFile(filePath) {
5
+ const abs = path.resolve(filePath);
6
+ const dir = path.dirname(abs);
7
+ const base = path.basename(abs);
8
+ const ts = Date.now();
9
+ const outName = path.join(dir, `.backup.${base}.${ts}`);
10
+ fs.copyFileSync(abs, outName);
11
+ return outName;
12
+ }
13
+ export function applySuggestionsToFile(filePath, suggestions) {
14
+ const abs = path.resolve(filePath);
15
+ if (!fs.existsSync(abs))
16
+ throw new Error(`file not found: ${abs}`);
17
+ const original = fs.readFileSync(abs, 'utf8');
18
+ let content = original;
19
+ for (const s of suggestions) {
20
+ // Attempt to guess symbol name from suggestion id (file::name)
21
+ const parts = s.id.split('::');
22
+ const symbol = parts[1] || '';
23
+ content = applyJSDocToContent(content, s, symbol);
24
+ }
25
+ const backup = backupFile(abs);
26
+ fs.writeFileSync(abs, content, 'utf8');
27
+ return { backup, written: true };
28
+ }
29
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/tools/ast-jsdoc-tools/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,uBAAoB;AAElD,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,WAA8B;IACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,+DAA+D;QAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC"}