@decaf-ts/mcp-server 0.4.1 → 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 (538) hide show
  1. package/LICENSE.md +31 -0
  2. package/dist/mcp-server.cjs +2 -2328
  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.d.ts +0 -24
  8. package/lib/bin/cli.js.map +1 -0
  9. package/lib/builders/builder.cjs +91 -0
  10. package/lib/builders/builder.d.ts +25 -0
  11. package/lib/builders/builder.js.map +1 -0
  12. package/lib/{mcp/resources → builders}/index.cjs +5 -2
  13. package/lib/builders/index.d.ts +4 -0
  14. package/lib/builders/index.js.map +1 -0
  15. package/lib/builders/prompt-builder.cjs +76 -0
  16. package/lib/builders/prompt-builder.d.ts +12 -0
  17. package/lib/builders/prompt-builder.js.map +1 -0
  18. package/lib/builders/resource-builder.cjs +83 -0
  19. package/lib/builders/resource-builder.d.ts +14 -0
  20. package/lib/builders/resource-builder.js.map +1 -0
  21. package/lib/builders/tool-builder.cjs +104 -0
  22. package/lib/builders/tool-builder.d.ts +16 -0
  23. package/lib/builders/tool-builder.js.map +1 -0
  24. package/lib/constants.cjs +28 -30
  25. package/lib/constants.d.ts +19 -24
  26. package/lib/constants.js.map +1 -0
  27. package/lib/environment.cjs +32 -0
  28. package/lib/environment.d.ts +71 -0
  29. package/lib/environment.js.map +1 -0
  30. package/lib/esm/bin/cli.d.ts +0 -24
  31. package/lib/esm/bin/cli.js +7 -35
  32. package/lib/esm/bin/cli.js.map +1 -0
  33. package/lib/esm/builders/builder.d.ts +25 -0
  34. package/lib/esm/builders/builder.js +86 -0
  35. package/lib/esm/builders/builder.js.map +1 -0
  36. package/lib/esm/builders/index.d.ts +4 -0
  37. package/lib/esm/builders/index.js +5 -0
  38. package/lib/esm/builders/index.js.map +1 -0
  39. package/lib/esm/builders/prompt-builder.d.ts +12 -0
  40. package/lib/esm/builders/prompt-builder.js +72 -0
  41. package/lib/esm/builders/prompt-builder.js.map +1 -0
  42. package/lib/esm/builders/resource-builder.d.ts +14 -0
  43. package/lib/esm/builders/resource-builder.js +79 -0
  44. package/lib/esm/builders/resource-builder.js.map +1 -0
  45. package/lib/esm/builders/tool-builder.d.ts +16 -0
  46. package/lib/esm/builders/tool-builder.js +100 -0
  47. package/lib/esm/builders/tool-builder.js.map +1 -0
  48. package/lib/esm/constants.d.ts +19 -24
  49. package/lib/esm/constants.js +27 -29
  50. package/lib/esm/constants.js.map +1 -0
  51. package/lib/esm/environment.d.ts +71 -0
  52. package/lib/esm/environment.js +29 -0
  53. package/lib/esm/environment.js.map +1 -0
  54. package/lib/esm/index.d.ts +3 -10
  55. package/lib/esm/index.js +4 -11
  56. package/lib/esm/index.js.map +1 -0
  57. package/lib/esm/mcp-server.d.ts +10 -0
  58. package/lib/esm/mcp-server.js +189 -0
  59. package/lib/esm/mcp-server.js.map +1 -0
  60. package/lib/esm/modules/template-module/index.d.ts +6 -0
  61. package/lib/esm/modules/template-module/index.js +4 -0
  62. package/lib/esm/modules/template-module/index.js.map +1 -0
  63. package/lib/esm/prompts/code/constants.d.ts +1 -0
  64. package/lib/esm/prompts/code/constants.js +2 -0
  65. package/lib/esm/prompts/code/constants.js.map +1 -0
  66. package/lib/esm/prompts/code/design-patterns/builder.d.ts +2 -0
  67. package/lib/esm/prompts/code/design-patterns/builder.js +118 -0
  68. package/lib/esm/prompts/code/design-patterns/builder.js.map +1 -0
  69. package/lib/esm/prompts/code/design-patterns/constants.d.ts +1 -0
  70. package/lib/esm/prompts/code/design-patterns/constants.js +3 -0
  71. package/lib/esm/prompts/code/design-patterns/constants.js.map +1 -0
  72. package/lib/esm/prompts/example-prompt/index.d.ts +2 -0
  73. package/lib/esm/prompts/example-prompt/index.js +18 -0
  74. package/lib/esm/prompts/example-prompt/index.js.map +1 -0
  75. package/lib/esm/prompts/index.d.ts +2 -0
  76. package/lib/esm/prompts/index.js +26 -0
  77. package/lib/esm/prompts/index.js.map +1 -0
  78. package/lib/esm/prompts/interactive-jsdoc/index.d.ts +2 -0
  79. package/lib/esm/prompts/interactive-jsdoc/index.js +18 -0
  80. package/lib/esm/prompts/interactive-jsdoc/index.js.map +1 -0
  81. package/lib/esm/prompts/jsdocs/class-prompt.d.ts +2 -0
  82. package/lib/esm/prompts/jsdocs/class-prompt.js +52 -0
  83. package/lib/esm/prompts/jsdocs/class-prompt.js.map +1 -0
  84. package/lib/esm/prompts/jsdocs/const-prompt.d.ts +2 -0
  85. package/lib/esm/prompts/jsdocs/const-prompt.js +24 -0
  86. package/lib/esm/prompts/jsdocs/const-prompt.js.map +1 -0
  87. package/lib/esm/prompts/jsdocs/constants.d.ts +4 -0
  88. package/lib/esm/prompts/jsdocs/constants.js +46 -0
  89. package/lib/esm/prompts/jsdocs/constants.js.map +1 -0
  90. package/lib/esm/prompts/jsdocs/decorator-prompt.d.ts +2 -0
  91. package/lib/esm/prompts/jsdocs/decorator-prompt.js +42 -0
  92. package/lib/esm/prompts/jsdocs/decorator-prompt.js.map +1 -0
  93. package/lib/esm/prompts/jsdocs/enum-prompt.d.ts +2 -0
  94. package/lib/esm/prompts/jsdocs/enum-prompt.js +24 -0
  95. package/lib/esm/prompts/jsdocs/enum-prompt.js.map +1 -0
  96. package/lib/esm/prompts/jsdocs/function-prompt.d.ts +2 -0
  97. package/lib/esm/prompts/jsdocs/function-prompt.js +43 -0
  98. package/lib/esm/prompts/jsdocs/function-prompt.js.map +1 -0
  99. package/lib/esm/prompts/jsdocs/interface-prompt.d.ts +2 -0
  100. package/lib/esm/prompts/jsdocs/interface-prompt.js +24 -0
  101. package/lib/esm/prompts/jsdocs/interface-prompt.js.map +1 -0
  102. package/lib/esm/prompts/jsdocs/types-prompt.d.ts +2 -0
  103. package/lib/esm/prompts/jsdocs/types-prompt.js +24 -0
  104. package/lib/esm/prompts/jsdocs/types-prompt.js.map +1 -0
  105. package/lib/esm/resources/example-resource/index.d.ts +2 -0
  106. package/lib/esm/resources/example-resource/index.js +19 -0
  107. package/lib/esm/resources/example-resource/index.js.map +1 -0
  108. package/lib/esm/resources/index.d.ts +2 -0
  109. package/lib/esm/resources/index.js +4 -0
  110. package/lib/esm/resources/index.js.map +1 -0
  111. package/lib/esm/resources/repo-metadata/index.d.ts +2 -0
  112. package/lib/esm/resources/repo-metadata/index.js +25 -0
  113. package/lib/esm/resources/repo-metadata/index.js.map +1 -0
  114. package/lib/esm/tools/ast/ts-ast-tool.d.ts +2 -0
  115. package/lib/esm/tools/ast/ts-ast-tool.js +67 -0
  116. package/lib/esm/tools/ast/ts-ast-tool.js.map +1 -0
  117. package/lib/esm/tools/ast/types.d.ts +105 -0
  118. package/lib/esm/tools/ast/types.js +33 -0
  119. package/lib/esm/tools/ast/types.js.map +1 -0
  120. package/lib/esm/tools/ast/utils.d.ts +5 -0
  121. package/lib/esm/tools/ast/utils.js +58 -0
  122. package/lib/esm/tools/ast/utils.js.map +1 -0
  123. package/lib/esm/tools/ast-jsdoc-tools/apply.d.ts +6 -0
  124. package/lib/esm/tools/ast-jsdoc-tools/apply.js +29 -0
  125. package/lib/esm/tools/ast-jsdoc-tools/apply.js.map +1 -0
  126. package/lib/esm/tools/ast-jsdoc-tools/cli.js +33 -0
  127. package/lib/esm/tools/ast-jsdoc-tools/cli.js.map +1 -0
  128. package/lib/esm/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
  129. package/lib/esm/tools/ast-jsdoc-tools/enumerator.js +25 -0
  130. package/lib/esm/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
  131. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
  132. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js +29 -0
  133. package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
  134. package/lib/esm/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
  135. package/lib/esm/tools/ast-jsdoc-tools/formatter.js +18 -0
  136. package/lib/esm/tools/ast-jsdoc-tools/formatter.js.map +1 -0
  137. package/lib/esm/tools/ast-jsdoc-tools/generator.d.ts +12 -0
  138. package/lib/esm/tools/ast-jsdoc-tools/generator.js +55 -0
  139. package/lib/esm/tools/ast-jsdoc-tools/generator.js.map +1 -0
  140. package/lib/esm/tools/ast-jsdoc-tools/index.d.ts +7 -0
  141. package/lib/esm/tools/ast-jsdoc-tools/index.js +29 -0
  142. package/lib/esm/tools/ast-jsdoc-tools/index.js.map +1 -0
  143. package/lib/esm/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
  144. package/lib/esm/tools/ast-jsdoc-tools/interactive.js +7 -0
  145. package/lib/esm/tools/ast-jsdoc-tools/interactive.js.map +1 -0
  146. package/lib/esm/tools/ast-jsdoc-tools/parser.d.ts +13 -0
  147. package/lib/esm/tools/ast-jsdoc-tools/parser.js +71 -0
  148. package/lib/esm/tools/ast-jsdoc-tools/parser.js.map +1 -0
  149. package/lib/esm/tools/ast-jsdoc-tools/patch.d.ts +2 -0
  150. package/lib/esm/tools/ast-jsdoc-tools/patch.js +23 -0
  151. package/lib/esm/tools/ast-jsdoc-tools/patch.js.map +1 -0
  152. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
  153. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js +26 -0
  154. package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
  155. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
  156. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js +61 -0
  157. package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
  158. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
  159. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js +78 -0
  160. package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
  161. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
  162. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js +30 -0
  163. package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
  164. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
  165. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js +29 -0
  166. package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
  167. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
  168. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js +31 -0
  169. package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
  170. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
  171. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js +21 -0
  172. package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
  173. package/lib/esm/tools/example-tool/index.d.ts +2 -0
  174. package/lib/esm/tools/example-tool/index.js +29 -0
  175. package/lib/esm/tools/example-tool/index.js.map +1 -0
  176. package/lib/esm/tools/file-summarizer/index.d.ts +2 -0
  177. package/lib/esm/tools/file-summarizer/index.js +29 -0
  178. package/lib/esm/tools/file-summarizer/index.js.map +1 -0
  179. package/lib/esm/tools/index.d.ts +2 -0
  180. package/lib/esm/tools/index.js +6 -0
  181. package/lib/esm/tools/index.js.map +1 -0
  182. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
  183. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js +84 -0
  184. package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
  185. package/lib/esm/tools/jsdoc/utils.d.ts +5 -0
  186. package/lib/esm/tools/jsdoc/utils.js +53 -0
  187. package/lib/esm/tools/jsdoc/utils.js.map +1 -0
  188. package/lib/esm/tools/testing/ts-jest-list-tests.d.ts +2 -0
  189. package/lib/esm/tools/testing/ts-jest-list-tests.js +53 -0
  190. package/lib/esm/tools/testing/ts-jest-list-tests.js.map +1 -0
  191. package/lib/esm/types.d.ts +56 -47
  192. package/lib/esm/types.js +1 -1
  193. package/lib/esm/types.js.map +1 -0
  194. package/lib/esm/utils/banner.d.ts +3 -0
  195. package/lib/esm/utils/banner.js +107 -0
  196. package/lib/esm/utils/banner.js.map +1 -0
  197. package/lib/esm/version.d.ts +2 -0
  198. package/lib/esm/version.js +5 -0
  199. package/lib/esm/version.js.map +1 -0
  200. package/lib/index.cjs +4 -11
  201. package/lib/index.d.ts +3 -10
  202. package/lib/index.js.map +1 -0
  203. package/lib/mcp-server.cjs +226 -0
  204. package/lib/mcp-server.d.ts +10 -0
  205. package/lib/mcp-server.js.map +1 -0
  206. package/lib/modules/template-module/index.cjs +7 -0
  207. package/lib/modules/template-module/index.d.ts +6 -0
  208. package/lib/modules/template-module/index.js.map +1 -0
  209. package/lib/prompts/code/constants.cjs +5 -0
  210. package/lib/prompts/code/constants.d.ts +1 -0
  211. package/lib/prompts/code/constants.js.map +1 -0
  212. package/lib/prompts/code/design-patterns/builder.cjs +121 -0
  213. package/lib/prompts/code/design-patterns/builder.d.ts +2 -0
  214. package/lib/prompts/code/design-patterns/builder.js.map +1 -0
  215. package/lib/prompts/code/design-patterns/constants.cjs +6 -0
  216. package/lib/prompts/code/design-patterns/constants.d.ts +1 -0
  217. package/lib/prompts/code/design-patterns/constants.js.map +1 -0
  218. package/lib/prompts/example-prompt/index.cjs +21 -0
  219. package/lib/prompts/example-prompt/index.d.ts +2 -0
  220. package/lib/prompts/example-prompt/index.js.map +1 -0
  221. package/lib/prompts/index.cjs +29 -0
  222. package/lib/prompts/index.d.ts +2 -0
  223. package/lib/prompts/index.js.map +1 -0
  224. package/lib/prompts/interactive-jsdoc/index.cjs +21 -0
  225. package/lib/prompts/interactive-jsdoc/index.d.ts +2 -0
  226. package/lib/prompts/interactive-jsdoc/index.js.map +1 -0
  227. package/lib/prompts/jsdocs/class-prompt.cjs +55 -0
  228. package/lib/prompts/jsdocs/class-prompt.d.ts +2 -0
  229. package/lib/prompts/jsdocs/class-prompt.js.map +1 -0
  230. package/lib/prompts/jsdocs/const-prompt.cjs +27 -0
  231. package/lib/prompts/jsdocs/const-prompt.d.ts +2 -0
  232. package/lib/prompts/jsdocs/const-prompt.js.map +1 -0
  233. package/lib/prompts/jsdocs/constants.cjs +49 -0
  234. package/lib/prompts/jsdocs/constants.d.ts +4 -0
  235. package/lib/prompts/jsdocs/constants.js.map +1 -0
  236. package/lib/prompts/jsdocs/decorator-prompt.cjs +45 -0
  237. package/lib/prompts/jsdocs/decorator-prompt.d.ts +2 -0
  238. package/lib/prompts/jsdocs/decorator-prompt.js.map +1 -0
  239. package/lib/prompts/jsdocs/enum-prompt.cjs +27 -0
  240. package/lib/prompts/jsdocs/enum-prompt.d.ts +2 -0
  241. package/lib/prompts/jsdocs/enum-prompt.js.map +1 -0
  242. package/lib/prompts/jsdocs/function-prompt.cjs +46 -0
  243. package/lib/prompts/jsdocs/function-prompt.d.ts +2 -0
  244. package/lib/prompts/jsdocs/function-prompt.js.map +1 -0
  245. package/lib/prompts/jsdocs/interface-prompt.cjs +27 -0
  246. package/lib/prompts/jsdocs/interface-prompt.d.ts +2 -0
  247. package/lib/prompts/jsdocs/interface-prompt.js.map +1 -0
  248. package/lib/prompts/jsdocs/types-prompt.cjs +27 -0
  249. package/lib/prompts/jsdocs/types-prompt.d.ts +2 -0
  250. package/lib/prompts/jsdocs/types-prompt.js.map +1 -0
  251. package/lib/resources/example-resource/index.cjs +22 -0
  252. package/lib/resources/example-resource/index.d.ts +2 -0
  253. package/lib/resources/example-resource/index.js.map +1 -0
  254. package/lib/resources/index.cjs +7 -0
  255. package/lib/resources/index.d.ts +2 -0
  256. package/lib/resources/index.js.map +1 -0
  257. package/lib/resources/repo-metadata/index.cjs +28 -0
  258. package/lib/resources/repo-metadata/index.d.ts +2 -0
  259. package/lib/resources/repo-metadata/index.js.map +1 -0
  260. package/lib/tools/ast/ts-ast-tool.cjs +70 -0
  261. package/lib/tools/ast/ts-ast-tool.d.ts +2 -0
  262. package/lib/tools/ast/ts-ast-tool.js.map +1 -0
  263. package/lib/tools/ast/types.cjs +36 -0
  264. package/lib/tools/ast/types.d.ts +105 -0
  265. package/lib/tools/ast/types.js.map +1 -0
  266. package/lib/tools/ast/utils.cjs +65 -0
  267. package/lib/tools/ast/utils.d.ts +5 -0
  268. package/lib/tools/ast/utils.js.map +1 -0
  269. package/lib/tools/ast-jsdoc-tools/apply.cjs +36 -0
  270. package/lib/tools/ast-jsdoc-tools/apply.d.ts +6 -0
  271. package/lib/tools/ast-jsdoc-tools/apply.js.map +1 -0
  272. package/lib/tools/ast-jsdoc-tools/cli.cjs +38 -0
  273. package/lib/tools/ast-jsdoc-tools/cli.js.map +1 -0
  274. package/lib/tools/ast-jsdoc-tools/enumerator.cjs +31 -0
  275. package/lib/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
  276. package/lib/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
  277. package/lib/tools/ast-jsdoc-tools/fileRunner.cjs +35 -0
  278. package/lib/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
  279. package/lib/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
  280. package/lib/tools/ast-jsdoc-tools/formatter.cjs +21 -0
  281. package/lib/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
  282. package/lib/tools/ast-jsdoc-tools/formatter.js.map +1 -0
  283. package/lib/tools/ast-jsdoc-tools/generator.cjs +58 -0
  284. package/lib/tools/ast-jsdoc-tools/generator.d.ts +12 -0
  285. package/lib/tools/ast-jsdoc-tools/generator.js.map +1 -0
  286. package/lib/tools/ast-jsdoc-tools/index.cjs +33 -0
  287. package/lib/tools/ast-jsdoc-tools/index.d.ts +7 -0
  288. package/lib/tools/ast-jsdoc-tools/index.js.map +1 -0
  289. package/lib/tools/ast-jsdoc-tools/interactive.cjs +10 -0
  290. package/lib/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
  291. package/lib/tools/ast-jsdoc-tools/interactive.js.map +1 -0
  292. package/lib/tools/ast-jsdoc-tools/parser.cjs +77 -0
  293. package/lib/tools/ast-jsdoc-tools/parser.d.ts +13 -0
  294. package/lib/tools/ast-jsdoc-tools/parser.js.map +1 -0
  295. package/lib/tools/ast-jsdoc-tools/patch.cjs +29 -0
  296. package/lib/tools/ast-jsdoc-tools/patch.d.ts +2 -0
  297. package/lib/tools/ast-jsdoc-tools/patch.js.map +1 -0
  298. package/lib/tools/ast-jsdoc-tools/prompts/loader.cjs +32 -0
  299. package/lib/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
  300. package/lib/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
  301. package/lib/tools/ast-jsdoc-tools/repoRunner.cjs +67 -0
  302. package/lib/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
  303. package/lib/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
  304. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.cjs +81 -0
  305. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
  306. package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
  307. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.cjs +33 -0
  308. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
  309. package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
  310. package/lib/tools/ast-jsdoc-tools/utils/context-schema.cjs +32 -0
  311. package/lib/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
  312. package/lib/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
  313. package/lib/tools/ast-jsdoc-tools/utils/heuristics.cjs +34 -0
  314. package/lib/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
  315. package/lib/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
  316. package/lib/tools/ast-jsdoc-tools/utils/ts-project.cjs +57 -0
  317. package/lib/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
  318. package/lib/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
  319. package/lib/tools/example-tool/index.cjs +32 -0
  320. package/lib/tools/example-tool/index.d.ts +2 -0
  321. package/lib/tools/example-tool/index.js.map +1 -0
  322. package/lib/tools/file-summarizer/index.cjs +32 -0
  323. package/lib/tools/file-summarizer/index.d.ts +2 -0
  324. package/lib/tools/file-summarizer/index.js.map +1 -0
  325. package/lib/tools/index.cjs +9 -0
  326. package/lib/tools/index.d.ts +2 -0
  327. package/lib/tools/index.js.map +1 -0
  328. package/lib/tools/jsdoc/ts-jsdoc-element-tool.cjs +87 -0
  329. package/lib/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
  330. package/lib/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
  331. package/lib/tools/jsdoc/utils.cjs +60 -0
  332. package/lib/tools/jsdoc/utils.d.ts +5 -0
  333. package/lib/tools/jsdoc/utils.js.map +1 -0
  334. package/lib/tools/testing/ts-jest-list-tests.cjs +56 -0
  335. package/lib/tools/testing/ts-jest-list-tests.d.ts +2 -0
  336. package/lib/tools/testing/ts-jest-list-tests.js.map +1 -0
  337. package/lib/types.cjs +1 -1
  338. package/lib/types.d.ts +56 -47
  339. package/lib/types.js.map +1 -0
  340. package/lib/utils/banner.cjs +114 -0
  341. package/lib/utils/banner.d.ts +3 -0
  342. package/lib/utils/banner.js.map +1 -0
  343. package/lib/version.cjs +8 -0
  344. package/lib/version.d.ts +2 -0
  345. package/lib/version.js.map +1 -0
  346. package/package.json +14 -63
  347. package/dist/mcp-server.esm.cjs +0 -2300
  348. package/lib/McpWrapper.cjs +0 -189
  349. package/lib/McpWrapper.d.ts +0 -101
  350. package/lib/bin/validate-modules.cjs +0 -24
  351. package/lib/esm/McpWrapper.d.ts +0 -101
  352. package/lib/esm/McpWrapper.js +0 -182
  353. package/lib/esm/bin/validate-modules.js +0 -22
  354. package/lib/esm/mcp/aggregateModules.d.ts +0 -26
  355. package/lib/esm/mcp/aggregateModules.js +0 -185
  356. package/lib/esm/mcp/code.d.ts +0 -23
  357. package/lib/esm/mcp/code.js +0 -70
  358. package/lib/esm/mcp/decorator-tools.d.ts +0 -118
  359. package/lib/esm/mcp/decorator-tools.js +0 -237
  360. package/lib/esm/mcp/fastmcp-wiring.d.ts +0 -14
  361. package/lib/esm/mcp/fastmcp-wiring.js +0 -56
  362. package/lib/esm/mcp/index.d.ts +0 -9
  363. package/lib/esm/mcp/index.js +0 -29
  364. package/lib/esm/mcp/mcp-module.d.ts +0 -11
  365. package/lib/esm/mcp/mcp-module.js +0 -31
  366. package/lib/esm/mcp/moduleRegistry.d.ts +0 -14
  367. package/lib/esm/mcp/moduleRegistry.js +0 -47
  368. package/lib/esm/mcp/prompts/index.d.ts +0 -4
  369. package/lib/esm/mcp/prompts/index.js +0 -7
  370. package/lib/esm/mcp/prompts/prompts.d.ts +0 -22
  371. package/lib/esm/mcp/prompts/prompts.js +0 -203
  372. package/lib/esm/mcp/resources/index.d.ts +0 -1
  373. package/lib/esm/mcp/resources/index.js +0 -2
  374. package/lib/esm/mcp/resources/resources.d.ts +0 -2
  375. package/lib/esm/mcp/resources/resources.js +0 -69
  376. package/lib/esm/mcp/schemas.d.ts +0 -53
  377. package/lib/esm/mcp/schemas.js +0 -97
  378. package/lib/esm/mcp/templates/codex-templates.d.ts +0 -3
  379. package/lib/esm/mcp/templates/codex-templates.js +0 -33
  380. package/lib/esm/mcp/templates/index.d.ts +0 -71
  381. package/lib/esm/mcp/templates/index.js +0 -66
  382. package/lib/esm/mcp/templates/resource-templates.d.ts +0 -3
  383. package/lib/esm/mcp/templates/resource-templates.js +0 -60
  384. package/lib/esm/mcp/templates/workspace-templates.d.ts +0 -3
  385. package/lib/esm/mcp/templates/workspace-templates.js +0 -66
  386. package/lib/esm/mcp/tools/codex-tools.d.ts +0 -5
  387. package/lib/esm/mcp/tools/codex-tools.js +0 -244
  388. package/lib/esm/mcp/tools/generateMcpModule.d.ts +0 -9
  389. package/lib/esm/mcp/tools/generateMcpModule.js +0 -133
  390. package/lib/esm/mcp/tools/index.d.ts +0 -219
  391. package/lib/esm/mcp/tools/index.js +0 -27
  392. package/lib/esm/mcp/tools/tools.d.ts +0 -10
  393. package/lib/esm/mcp/tools/tools.js +0 -275
  394. package/lib/esm/mcp/types.d.ts +0 -66
  395. package/lib/esm/mcp/types.js +0 -2
  396. package/lib/esm/mcp/utils.d.ts +0 -3
  397. package/lib/esm/mcp/utils.js +0 -46
  398. package/lib/esm/mcp/validation/index.d.ts +0 -13
  399. package/lib/esm/mcp/validation/index.js +0 -116
  400. package/lib/esm/mcp/validation/scaffoldModule.d.ts +0 -9
  401. package/lib/esm/mcp/validation/scaffoldModule.js +0 -88
  402. package/lib/esm/mcp/workspace.d.ts +0 -9
  403. package/lib/esm/mcp/workspace.js +0 -73
  404. package/lib/esm/metadata.d.ts +0 -9
  405. package/lib/esm/metadata.js +0 -22
  406. package/lib/esm/modules/_template/index.d.ts +0 -32
  407. package/lib/esm/modules/_template/index.js +0 -16
  408. package/lib/esm/modules/_template/prompts/index.d.ts +0 -6
  409. package/lib/esm/modules/_template/prompts/index.js +0 -9
  410. package/lib/esm/modules/_template/resources/index.d.ts +0 -6
  411. package/lib/esm/modules/_template/resources/index.js +0 -9
  412. package/lib/esm/modules/_template/templates/index.d.ts +0 -7
  413. package/lib/esm/modules/_template/templates/index.js +0 -10
  414. package/lib/esm/modules/_template/tools/index.d.ts +0 -6
  415. package/lib/esm/modules/_template/tools/index.js +0 -15
  416. package/lib/esm/modules/decoration/index.d.ts +0 -46
  417. package/lib/esm/modules/decoration/index.js +0 -10
  418. package/lib/esm/modules/decoration/prompts/index.d.ts +0 -1
  419. package/lib/esm/modules/decoration/prompts/index.js +0 -2
  420. package/lib/esm/modules/decoration/resources/index.d.ts +0 -7
  421. package/lib/esm/modules/decoration/resources/index.js +0 -10
  422. package/lib/esm/modules/decoration/templates/index.d.ts +0 -6
  423. package/lib/esm/modules/decoration/templates/index.js +0 -9
  424. package/lib/esm/modules/decoration/tools/index.d.ts +0 -26
  425. package/lib/esm/modules/decoration/tools/index.js +0 -7
  426. package/lib/esm/modules/index.d.ts +0 -2
  427. package/lib/esm/modules/index.js +0 -17
  428. package/lib/esm/modules/mcp/decoration-assist.d.ts +0 -4
  429. package/lib/esm/modules/mcp/decoration-assist.js +0 -6
  430. package/lib/esm/modules/mcp/index.d.ts +0 -6
  431. package/lib/esm/modules/mcp/index.js +0 -16
  432. package/lib/esm/modules/mcp/prompts/index.d.ts +0 -2
  433. package/lib/esm/modules/mcp/prompts/index.js +0 -9
  434. package/lib/esm/modules/mcp/resources/index.d.ts +0 -2
  435. package/lib/esm/modules/mcp/resources/index.js +0 -24
  436. package/lib/esm/modules/mcp/templates/index.d.ts +0 -2
  437. package/lib/esm/modules/mcp/templates/index.js +0 -28
  438. package/lib/esm/modules/mcp/tools/index.d.ts +0 -6
  439. package/lib/esm/modules/mcp/tools/index.js +0 -15
  440. package/lib/esm/utils/modulePaths.d.ts +0 -6
  441. package/lib/esm/utils/modulePaths.js +0 -33
  442. package/lib/esm/utils/moduleValidator.d.ts +0 -14
  443. package/lib/esm/utils/moduleValidator.js +0 -176
  444. package/lib/esm/utils.d.ts +0 -61
  445. package/lib/esm/utils.js +0 -86
  446. package/lib/mcp/aggregateModules.cjs +0 -225
  447. package/lib/mcp/aggregateModules.d.ts +0 -26
  448. package/lib/mcp/code.cjs +0 -81
  449. package/lib/mcp/code.d.ts +0 -23
  450. package/lib/mcp/decorator-tools.cjs +0 -243
  451. package/lib/mcp/decorator-tools.d.ts +0 -118
  452. package/lib/mcp/fastmcp-wiring.cjs +0 -59
  453. package/lib/mcp/fastmcp-wiring.d.ts +0 -14
  454. package/lib/mcp/index.cjs +0 -57
  455. package/lib/mcp/index.d.ts +0 -9
  456. package/lib/mcp/mcp-module.cjs +0 -46
  457. package/lib/mcp/mcp-module.d.ts +0 -11
  458. package/lib/mcp/moduleRegistry.cjs +0 -52
  459. package/lib/mcp/moduleRegistry.d.ts +0 -14
  460. package/lib/mcp/prompts/index.cjs +0 -25
  461. package/lib/mcp/prompts/index.d.ts +0 -4
  462. package/lib/mcp/prompts/prompts.cjs +0 -217
  463. package/lib/mcp/prompts/prompts.d.ts +0 -22
  464. package/lib/mcp/resources/index.d.ts +0 -1
  465. package/lib/mcp/resources/resources.cjs +0 -72
  466. package/lib/mcp/resources/resources.d.ts +0 -2
  467. package/lib/mcp/schemas.cjs +0 -100
  468. package/lib/mcp/schemas.d.ts +0 -53
  469. package/lib/mcp/templates/codex-templates.cjs +0 -40
  470. package/lib/mcp/templates/codex-templates.d.ts +0 -3
  471. package/lib/mcp/templates/index.cjs +0 -76
  472. package/lib/mcp/templates/index.d.ts +0 -71
  473. package/lib/mcp/templates/resource-templates.cjs +0 -67
  474. package/lib/mcp/templates/resource-templates.d.ts +0 -3
  475. package/lib/mcp/templates/workspace-templates.cjs +0 -70
  476. package/lib/mcp/templates/workspace-templates.d.ts +0 -3
  477. package/lib/mcp/tools/codex-tools.cjs +0 -250
  478. package/lib/mcp/tools/codex-tools.d.ts +0 -5
  479. package/lib/mcp/tools/generateMcpModule.cjs +0 -139
  480. package/lib/mcp/tools/generateMcpModule.d.ts +0 -9
  481. package/lib/mcp/tools/index.cjs +0 -30
  482. package/lib/mcp/tools/index.d.ts +0 -219
  483. package/lib/mcp/tools/tools.cjs +0 -317
  484. package/lib/mcp/tools/tools.d.ts +0 -10
  485. package/lib/mcp/types.cjs +0 -3
  486. package/lib/mcp/types.d.ts +0 -66
  487. package/lib/mcp/utils.cjs +0 -54
  488. package/lib/mcp/utils.d.ts +0 -3
  489. package/lib/mcp/validation/index.cjs +0 -123
  490. package/lib/mcp/validation/index.d.ts +0 -13
  491. package/lib/mcp/validation/scaffoldModule.cjs +0 -94
  492. package/lib/mcp/validation/scaffoldModule.d.ts +0 -9
  493. package/lib/mcp/workspace.cjs +0 -119
  494. package/lib/mcp/workspace.d.ts +0 -9
  495. package/lib/metadata.cjs +0 -25
  496. package/lib/metadata.d.ts +0 -9
  497. package/lib/modules/_template/index.cjs +0 -23
  498. package/lib/modules/_template/index.d.ts +0 -32
  499. package/lib/modules/_template/prompts/index.cjs +0 -12
  500. package/lib/modules/_template/prompts/index.d.ts +0 -6
  501. package/lib/modules/_template/resources/index.cjs +0 -12
  502. package/lib/modules/_template/resources/index.d.ts +0 -6
  503. package/lib/modules/_template/templates/index.cjs +0 -13
  504. package/lib/modules/_template/templates/index.d.ts +0 -7
  505. package/lib/modules/_template/tools/index.cjs +0 -18
  506. package/lib/modules/_template/tools/index.d.ts +0 -6
  507. package/lib/modules/decoration/index.cjs +0 -17
  508. package/lib/modules/decoration/index.d.ts +0 -46
  509. package/lib/modules/decoration/prompts/index.cjs +0 -5
  510. package/lib/modules/decoration/prompts/index.d.ts +0 -1
  511. package/lib/modules/decoration/resources/index.cjs +0 -13
  512. package/lib/modules/decoration/resources/index.d.ts +0 -7
  513. package/lib/modules/decoration/templates/index.cjs +0 -12
  514. package/lib/modules/decoration/templates/index.d.ts +0 -6
  515. package/lib/modules/decoration/tools/index.cjs +0 -10
  516. package/lib/modules/decoration/tools/index.d.ts +0 -26
  517. package/lib/modules/index.cjs +0 -20
  518. package/lib/modules/index.d.ts +0 -2
  519. package/lib/modules/mcp/decoration-assist.cjs +0 -13
  520. package/lib/modules/mcp/decoration-assist.d.ts +0 -4
  521. package/lib/modules/mcp/index.cjs +0 -23
  522. package/lib/modules/mcp/index.d.ts +0 -6
  523. package/lib/modules/mcp/prompts/index.cjs +0 -12
  524. package/lib/modules/mcp/prompts/index.d.ts +0 -2
  525. package/lib/modules/mcp/resources/index.cjs +0 -27
  526. package/lib/modules/mcp/resources/index.d.ts +0 -2
  527. package/lib/modules/mcp/templates/index.cjs +0 -31
  528. package/lib/modules/mcp/templates/index.d.ts +0 -2
  529. package/lib/modules/mcp/tools/index.cjs +0 -18
  530. package/lib/modules/mcp/tools/index.d.ts +0 -6
  531. package/lib/utils/modulePaths.cjs +0 -43
  532. package/lib/utils/modulePaths.d.ts +0 -6
  533. package/lib/utils/moduleValidator.cjs +0 -184
  534. package/lib/utils/moduleValidator.d.ts +0 -14
  535. package/lib/utils.cjs +0 -129
  536. package/lib/utils.d.ts +0 -61
  537. /package/lib/{bin/validate-modules.d.ts → esm/tools/ast-jsdoc-tools/cli.d.ts} +0 -0
  538. /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"}