ts-knowledge-graph 0.1.2 → 0.1.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 (335) hide show
  1. package/README.md +99 -41
  2. package/contribs/webview/README.md +83 -0
  3. package/contribs/webview/web/css/style.css +310 -0
  4. package/contribs/webview/web/index.html +109 -0
  5. package/contribs/webview/web/js/app.js +1249 -0
  6. package/contribs/webview/web/js_autogenerated/.gitignore +3 -0
  7. package/contribs/webview/web/js_autogenerated/kind_descriptions.js +39 -0
  8. package/contribs/webview/web/types/app_globals.d.ts +154 -0
  9. package/dist/benchmark/benchmark_stats.d.ts +41 -0
  10. package/dist/benchmark/benchmark_stats.d.ts.map +1 -0
  11. package/dist/benchmark/benchmark_stats.js +61 -0
  12. package/dist/benchmark/benchmark_stats.js.map +1 -0
  13. package/dist/benchmark/node_benchmark.d.ts +78 -0
  14. package/dist/benchmark/node_benchmark.d.ts.map +1 -0
  15. package/dist/benchmark/node_benchmark.js +112 -0
  16. package/dist/benchmark/node_benchmark.js.map +1 -0
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +16 -4
  19. package/dist/cli.js.map +1 -1
  20. package/dist/cluster/cluster_weights.d.ts +20 -0
  21. package/dist/cluster/cluster_weights.d.ts.map +1 -0
  22. package/dist/cluster/cluster_weights.js +32 -0
  23. package/dist/cluster/cluster_weights.js.map +1 -0
  24. package/dist/cluster/community_detector.d.ts +61 -0
  25. package/dist/cluster/community_detector.d.ts.map +1 -0
  26. package/dist/cluster/community_detector.js +120 -0
  27. package/dist/cluster/community_detector.js.map +1 -0
  28. package/dist/cluster/community_labeler.d.ts +84 -0
  29. package/dist/cluster/community_labeler.d.ts.map +1 -0
  30. package/dist/cluster/community_labeler.js +194 -0
  31. package/dist/cluster/community_labeler.js.map +1 -0
  32. package/dist/cluster/graph_clusterer.d.ts +47 -0
  33. package/dist/cluster/graph_clusterer.d.ts.map +1 -0
  34. package/dist/cluster/graph_clusterer.js +126 -0
  35. package/dist/cluster/graph_clusterer.js.map +1 -0
  36. package/dist/commands/benchmark_command.d.ts +11 -0
  37. package/dist/commands/benchmark_command.d.ts.map +1 -0
  38. package/dist/commands/benchmark_command.js +94 -0
  39. package/dist/commands/benchmark_command.js.map +1 -0
  40. package/dist/commands/blast_radius_command.d.ts.map +1 -1
  41. package/dist/commands/blast_radius_command.js +7 -6
  42. package/dist/commands/blast_radius_command.js.map +1 -1
  43. package/dist/commands/cluster_command.d.ts +7 -0
  44. package/dist/commands/cluster_command.d.ts.map +1 -0
  45. package/dist/commands/cluster_command.js +55 -0
  46. package/dist/commands/cluster_command.js.map +1 -0
  47. package/dist/commands/command_helpers.d.ts +9 -4
  48. package/dist/commands/command_helpers.d.ts.map +1 -1
  49. package/dist/commands/command_helpers.js +13 -8
  50. package/dist/commands/command_helpers.js.map +1 -1
  51. package/dist/commands/cost_command.d.ts +13 -0
  52. package/dist/commands/cost_command.d.ts.map +1 -0
  53. package/dist/commands/cost_command.js +139 -0
  54. package/dist/commands/cost_command.js.map +1 -0
  55. package/dist/commands/{load.d.ts → enrich_command.d.ts} +3 -2
  56. package/dist/commands/enrich_command.d.ts.map +1 -0
  57. package/dist/commands/enrich_command.js +64 -0
  58. package/dist/commands/enrich_command.js.map +1 -0
  59. package/dist/commands/extract_command.d.ts.map +1 -1
  60. package/dist/commands/extract_command.js +12 -6
  61. package/dist/commands/extract_command.js.map +1 -1
  62. package/dist/commands/hotspots_command.d.ts +7 -0
  63. package/dist/commands/hotspots_command.d.ts.map +1 -0
  64. package/dist/commands/hotspots_command.js +68 -0
  65. package/dist/commands/hotspots_command.js.map +1 -0
  66. package/dist/commands/install_command.d.ts +15 -6
  67. package/dist/commands/install_command.d.ts.map +1 -1
  68. package/dist/commands/install_command.js +62 -25
  69. package/dist/commands/install_command.js.map +1 -1
  70. package/dist/commands/load_command.d.ts.map +1 -1
  71. package/dist/commands/load_command.js +20 -13
  72. package/dist/commands/load_command.js.map +1 -1
  73. package/dist/commands/neighbors_command.d.ts.map +1 -1
  74. package/dist/commands/neighbors_command.js +6 -5
  75. package/dist/commands/neighbors_command.js.map +1 -1
  76. package/dist/commands/references_command.d.ts.map +1 -1
  77. package/dist/commands/references_command.js +6 -5
  78. package/dist/commands/references_command.js.map +1 -1
  79. package/dist/commands/report_command.d.ts +16 -0
  80. package/dist/commands/report_command.d.ts.map +1 -0
  81. package/dist/commands/report_command.js +115 -0
  82. package/dist/commands/report_command.js.map +1 -0
  83. package/dist/commands/verify_command.d.ts +8 -0
  84. package/dist/commands/verify_command.d.ts.map +1 -0
  85. package/dist/commands/verify_command.js +57 -0
  86. package/dist/commands/verify_command.js.map +1 -0
  87. package/dist/commands/web_command.d.ts +27 -0
  88. package/dist/commands/web_command.d.ts.map +1 -1
  89. package/dist/commands/web_command.js +109 -3
  90. package/dist/commands/web_command.js.map +1 -1
  91. package/dist/commands/webview_command.d.ts +36 -0
  92. package/dist/commands/webview_command.d.ts.map +1 -0
  93. package/dist/commands/webview_command.js +186 -0
  94. package/dist/commands/webview_command.js.map +1 -0
  95. package/dist/enrich/cpu_profile.d.ts +160 -0
  96. package/dist/enrich/cpu_profile.d.ts.map +1 -0
  97. package/dist/enrich/cpu_profile.js +185 -0
  98. package/dist/enrich/cpu_profile.js.map +1 -0
  99. package/dist/enrich/runtime_enricher.d.ts +64 -0
  100. package/dist/enrich/runtime_enricher.d.ts.map +1 -0
  101. package/dist/enrich/runtime_enricher.js +98 -0
  102. package/dist/enrich/runtime_enricher.js.map +1 -0
  103. package/dist/enrich/runtime_join.d.ts +124 -0
  104. package/dist/enrich/runtime_join.d.ts.map +1 -0
  105. package/dist/enrich/runtime_join.js +270 -0
  106. package/dist/enrich/runtime_join.js.map +1 -0
  107. package/dist/extract/api_extractor.d.ts +24 -0
  108. package/dist/extract/api_extractor.d.ts.map +1 -0
  109. package/dist/extract/api_extractor.js +71 -0
  110. package/dist/extract/api_extractor.js.map +1 -0
  111. package/dist/extract/config_extractor.d.ts +22 -0
  112. package/dist/extract/config_extractor.d.ts.map +1 -0
  113. package/dist/extract/config_extractor.js +61 -0
  114. package/dist/extract/config_extractor.js.map +1 -0
  115. package/dist/extract/endpoint_extractor.d.ts +36 -0
  116. package/dist/extract/endpoint_extractor.d.ts.map +1 -0
  117. package/dist/extract/endpoint_extractor.js +117 -0
  118. package/dist/extract/endpoint_extractor.js.map +1 -0
  119. package/dist/extract/git_source.d.ts +23 -0
  120. package/dist/extract/git_source.d.ts.map +1 -0
  121. package/dist/extract/git_source.js +75 -0
  122. package/dist/extract/git_source.js.map +1 -0
  123. package/dist/extract/graph_builder.d.ts +8 -0
  124. package/dist/extract/graph_builder.d.ts.map +1 -1
  125. package/dist/extract/graph_builder.js +23 -1
  126. package/dist/extract/graph_builder.js.map +1 -1
  127. package/dist/extract/node_id.d.ts +16 -0
  128. package/dist/extract/node_id.d.ts.map +1 -1
  129. package/dist/extract/node_id.js +22 -0
  130. package/dist/extract/node_id.js.map +1 -1
  131. package/dist/extract/scope_resolver.d.ts +22 -0
  132. package/dist/extract/scope_resolver.d.ts.map +1 -0
  133. package/dist/extract/scope_resolver.js +53 -0
  134. package/dist/extract/scope_resolver.js.map +1 -0
  135. package/dist/extract/semantic_extractor.d.ts +25 -0
  136. package/dist/extract/semantic_extractor.d.ts.map +1 -1
  137. package/dist/extract/semantic_extractor.js +96 -2
  138. package/dist/extract/semantic_extractor.js.map +1 -1
  139. package/dist/extract/structural_extractor.d.ts +6 -0
  140. package/dist/extract/structural_extractor.d.ts.map +1 -1
  141. package/dist/extract/structural_extractor.js +22 -12
  142. package/dist/extract/structural_extractor.js.map +1 -1
  143. package/dist/project_root.d.ts +7 -0
  144. package/dist/project_root.d.ts.map +1 -0
  145. package/dist/project_root.js +9 -0
  146. package/dist/project_root.js.map +1 -0
  147. package/dist/query/graph_query.d.ts +269 -0
  148. package/dist/query/graph_query.d.ts.map +1 -1
  149. package/dist/query/graph_query.js +585 -11
  150. package/dist/query/graph_query.js.map +1 -1
  151. package/dist/report/graph_report.d.ts +51 -0
  152. package/dist/report/graph_report.d.ts.map +1 -0
  153. package/dist/report/graph_report.js +312 -0
  154. package/dist/report/graph_report.js.map +1 -0
  155. package/dist/report/pdf_renderer.d.ts +22 -0
  156. package/dist/report/pdf_renderer.d.ts.map +1 -0
  157. package/dist/report/pdf_renderer.js +54 -0
  158. package/dist/report/pdf_renderer.js.map +1 -0
  159. package/dist/report/report_data.d.ts +128 -0
  160. package/dist/report/report_data.d.ts.map +1 -0
  161. package/dist/report/report_data.js +191 -0
  162. package/dist/report/report_data.js.map +1 -0
  163. package/dist/schema/edge.d.ts +40 -5
  164. package/dist/schema/edge.d.ts.map +1 -1
  165. package/dist/schema/edge.js +73 -0
  166. package/dist/schema/edge.js.map +1 -1
  167. package/dist/schema/node.d.ts +20 -5
  168. package/dist/schema/node.d.ts.map +1 -1
  169. package/dist/schema/node.js +36 -0
  170. package/dist/schema/node.js.map +1 -1
  171. package/dist/schema/runtime_manifest.d.ts +36 -0
  172. package/dist/schema/runtime_manifest.d.ts.map +1 -0
  173. package/dist/schema/runtime_manifest.js +23 -0
  174. package/dist/schema/runtime_manifest.js.map +1 -0
  175. package/dist/schema/source_manifest.d.ts +30 -0
  176. package/dist/schema/source_manifest.d.ts.map +1 -0
  177. package/dist/schema/source_manifest.js +21 -0
  178. package/dist/schema/source_manifest.js.map +1 -0
  179. package/dist/store/jsonl_reader.d.ts +4 -0
  180. package/dist/store/jsonl_reader.d.ts.map +1 -1
  181. package/dist/store/jsonl_reader.js +13 -1
  182. package/dist/store/jsonl_reader.js.map +1 -1
  183. package/dist/store/jsonl_store.d.ts +2 -1
  184. package/dist/store/jsonl_store.d.ts.map +1 -1
  185. package/dist/store/jsonl_store.js +4 -1
  186. package/dist/store/jsonl_store.js.map +1 -1
  187. package/dist/store/kuzu_store.d.ts +59 -0
  188. package/dist/store/kuzu_store.d.ts.map +1 -1
  189. package/dist/store/kuzu_store.js +124 -5
  190. package/dist/store/kuzu_store.js.map +1 -1
  191. package/dist/store/output_folder.d.ts +43 -0
  192. package/dist/store/output_folder.d.ts.map +1 -0
  193. package/dist/store/output_folder.js +61 -0
  194. package/dist/store/output_folder.js.map +1 -0
  195. package/dist/verify/project_verifier.d.ts +85 -0
  196. package/dist/verify/project_verifier.d.ts.map +1 -0
  197. package/dist/verify/project_verifier.js +138 -0
  198. package/dist/verify/project_verifier.js.map +1 -0
  199. package/dotclaude_folder/commands/code-graph-interview.md +123 -0
  200. package/dotclaude_folder/commands/code-graph-optimize.md +65 -0
  201. package/{skills/ts-knowledge-graph → dotclaude_folder/skills/code-graph-query}/SKILL.md +6 -6
  202. package/package.json +99 -10
  203. package/.env-sample +0 -34
  204. package/contribs/web_visualisation/README.md +0 -55
  205. package/contribs/web_visualisation/web/css/style.css +0 -115
  206. package/contribs/web_visualisation/web/data/.gitignore +0 -2
  207. package/contribs/web_visualisation/web/index.html +0 -58
  208. package/contribs/web_visualisation/web/js/app.js +0 -364
  209. package/dist/agent/agent-tools.d.ts +0 -13
  210. package/dist/agent/agent-tools.d.ts.map +0 -1
  211. package/dist/agent/agent-tools.js +0 -153
  212. package/dist/agent/agent-tools.js.map +0 -1
  213. package/dist/agent/agent_tools.d.ts +0 -13
  214. package/dist/agent/agent_tools.d.ts.map +0 -1
  215. package/dist/agent/agent_tools.js +0 -153
  216. package/dist/agent/agent_tools.js.map +0 -1
  217. package/dist/agent/code-editor.d.ts +0 -18
  218. package/dist/agent/code-editor.d.ts.map +0 -1
  219. package/dist/agent/code-editor.js +0 -43
  220. package/dist/agent/code-editor.js.map +0 -1
  221. package/dist/agent/code_editor.d.ts +0 -18
  222. package/dist/agent/code_editor.d.ts.map +0 -1
  223. package/dist/agent/code_editor.js +0 -43
  224. package/dist/agent/code_editor.js.map +0 -1
  225. package/dist/agent/optimizer-agent.d.ts +0 -30
  226. package/dist/agent/optimizer-agent.d.ts.map +0 -1
  227. package/dist/agent/optimizer-agent.js +0 -97
  228. package/dist/agent/optimizer-agent.js.map +0 -1
  229. package/dist/agent/optimizer_agent.d.ts +0 -30
  230. package/dist/agent/optimizer_agent.d.ts.map +0 -1
  231. package/dist/agent/optimizer_agent.js +0 -97
  232. package/dist/agent/optimizer_agent.js.map +0 -1
  233. package/dist/agent/verifier.d.ts +0 -9
  234. package/dist/agent/verifier.d.ts.map +0 -1
  235. package/dist/agent/verifier.js +0 -19
  236. package/dist/agent/verifier.js.map +0 -1
  237. package/dist/commands/blast-radius.d.ts +0 -5
  238. package/dist/commands/blast-radius.d.ts.map +0 -1
  239. package/dist/commands/blast-radius.js +0 -18
  240. package/dist/commands/blast-radius.js.map +0 -1
  241. package/dist/commands/blast_radius.d.ts +0 -5
  242. package/dist/commands/blast_radius.d.ts.map +0 -1
  243. package/dist/commands/blast_radius.js +0 -18
  244. package/dist/commands/blast_radius.js.map +0 -1
  245. package/dist/commands/calls.d.ts +0 -5
  246. package/dist/commands/calls.d.ts.map +0 -1
  247. package/dist/commands/calls.js +0 -7
  248. package/dist/commands/calls.js.map +0 -1
  249. package/dist/commands/command-helpers.d.ts +0 -15
  250. package/dist/commands/command-helpers.d.ts.map +0 -1
  251. package/dist/commands/command-helpers.js +0 -61
  252. package/dist/commands/command-helpers.js.map +0 -1
  253. package/dist/commands/dead-exports.d.ts +0 -5
  254. package/dist/commands/dead-exports.d.ts.map +0 -1
  255. package/dist/commands/dead-exports.js +0 -7
  256. package/dist/commands/dead-exports.js.map +0 -1
  257. package/dist/commands/dead_exports.d.ts +0 -5
  258. package/dist/commands/dead_exports.d.ts.map +0 -1
  259. package/dist/commands/dead_exports.js +0 -7
  260. package/dist/commands/dead_exports.js.map +0 -1
  261. package/dist/commands/extract.d.ts +0 -8
  262. package/dist/commands/extract.d.ts.map +0 -1
  263. package/dist/commands/extract.js +0 -49
  264. package/dist/commands/extract.js.map +0 -1
  265. package/dist/commands/find.d.ts +0 -5
  266. package/dist/commands/find.d.ts.map +0 -1
  267. package/dist/commands/find.js +0 -7
  268. package/dist/commands/find.js.map +0 -1
  269. package/dist/commands/load.d.ts.map +0 -1
  270. package/dist/commands/load.js +0 -28
  271. package/dist/commands/load.js.map +0 -1
  272. package/dist/commands/neighbors.d.ts +0 -5
  273. package/dist/commands/neighbors.d.ts.map +0 -1
  274. package/dist/commands/neighbors.js +0 -17
  275. package/dist/commands/neighbors.js.map +0 -1
  276. package/dist/commands/optimize.d.ts +0 -6
  277. package/dist/commands/optimize.d.ts.map +0 -1
  278. package/dist/commands/optimize.js +0 -59
  279. package/dist/commands/optimize.js.map +0 -1
  280. package/dist/commands/optimize_command.d.ts +0 -6
  281. package/dist/commands/optimize_command.d.ts.map +0 -1
  282. package/dist/commands/optimize_command.js +0 -59
  283. package/dist/commands/optimize_command.js.map +0 -1
  284. package/dist/commands/references.d.ts +0 -5
  285. package/dist/commands/references.d.ts.map +0 -1
  286. package/dist/commands/references.js +0 -17
  287. package/dist/commands/references.js.map +0 -1
  288. package/dist/commands/web.d.ts +0 -19
  289. package/dist/commands/web.d.ts.map +0 -1
  290. package/dist/commands/web.js +0 -120
  291. package/dist/commands/web.js.map +0 -1
  292. package/dist/commands/who-calls.d.ts +0 -5
  293. package/dist/commands/who-calls.d.ts.map +0 -1
  294. package/dist/commands/who-calls.js +0 -7
  295. package/dist/commands/who-calls.js.map +0 -1
  296. package/dist/commands/who_calls.d.ts +0 -5
  297. package/dist/commands/who_calls.d.ts.map +0 -1
  298. package/dist/commands/who_calls.js +0 -7
  299. package/dist/commands/who_calls.js.map +0 -1
  300. package/dist/extract/graph-builder.d.ts +0 -16
  301. package/dist/extract/graph-builder.d.ts.map +0 -1
  302. package/dist/extract/graph-builder.js +0 -39
  303. package/dist/extract/graph-builder.js.map +0 -1
  304. package/dist/extract/node-id.d.ts +0 -8
  305. package/dist/extract/node-id.d.ts.map +0 -1
  306. package/dist/extract/node-id.js +0 -22
  307. package/dist/extract/node-id.js.map +0 -1
  308. package/dist/extract/project-loader.d.ts +0 -5
  309. package/dist/extract/project-loader.d.ts.map +0 -1
  310. package/dist/extract/project-loader.js +0 -19
  311. package/dist/extract/project-loader.js.map +0 -1
  312. package/dist/extract/semantic-extractor.d.ts +0 -22
  313. package/dist/extract/semantic-extractor.d.ts.map +0 -1
  314. package/dist/extract/semantic-extractor.js +0 -254
  315. package/dist/extract/semantic-extractor.js.map +0 -1
  316. package/dist/extract/structural-extractor.d.ts +0 -18
  317. package/dist/extract/structural-extractor.d.ts.map +0 -1
  318. package/dist/extract/structural-extractor.js +0 -97
  319. package/dist/extract/structural-extractor.js.map +0 -1
  320. package/dist/query/graph-query.d.ts +0 -28
  321. package/dist/query/graph-query.d.ts.map +0 -1
  322. package/dist/query/graph-query.js +0 -93
  323. package/dist/query/graph-query.js.map +0 -1
  324. package/dist/store/jsonl-reader.d.ts +0 -11
  325. package/dist/store/jsonl-reader.d.ts.map +0 -1
  326. package/dist/store/jsonl-reader.js +0 -19
  327. package/dist/store/jsonl-reader.js.map +0 -1
  328. package/dist/store/jsonl-store.d.ts +0 -7
  329. package/dist/store/jsonl-store.d.ts.map +0 -1
  330. package/dist/store/jsonl-store.js +0 -13
  331. package/dist/store/jsonl-store.js.map +0 -1
  332. package/dist/store/kuzu-store.d.ts +0 -14
  333. package/dist/store/kuzu-store.d.ts.map +0 -1
  334. package/dist/store/kuzu-store.js +0 -52
  335. package/dist/store/kuzu-store.js.map +0 -1
@@ -1,59 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import chalk from 'chalk';
3
- import { AgentTools } from '../agent/agent_tools.js';
4
- import { CodeEditor } from '../agent/code_editor.js';
5
- import { OptimizerAgent } from '../agent/optimizer_agent.js';
6
- import { CommandHelpers, DEFAULT_DB_PATH } from './command_helpers.js';
7
- const DEFAULT_TASK = 'Find one genuinely dead exported symbol using dead_exports, confirm with references that it has zero inbound references, then remove it safely.';
8
- export class Optimize {
9
- static register(program) {
10
- program
11
- .command('optimize')
12
- .description('run the autonomous optimization agent against the loaded graph')
13
- .argument('[task]', 'what the agent should try to optimize', DEFAULT_TASK)
14
- .option('-d, --db <path>', 'Kùzu database path', DEFAULT_DB_PATH)
15
- .option('-m, --model <name>', 'model name (defaults to OPENAI_MODEL)')
16
- .option('--max-steps <n>', 'maximum agent steps', '12')
17
- .action(async (task, options) => {
18
- await Optimize.run(task, options);
19
- });
20
- }
21
- static async run(task, options) {
22
- if (existsSync('.env') === true) {
23
- process.loadEnvFile('.env');
24
- }
25
- if (process.env.OPENAI_API_KEY === undefined) {
26
- console.log(chalk.red('Set OPENAI_API_KEY before running the optimizer — copy .env-sample to .env and pick a provider.'));
27
- return;
28
- }
29
- const model = options.model ?? process.env.OPENAI_MODEL;
30
- if (model === undefined) {
31
- console.log(chalk.red('Set OPENAI_MODEL in .env (or pass --model) — see .env-sample for per-provider examples.'));
32
- return;
33
- }
34
- const rootPath = process.cwd();
35
- await CommandHelpers.withQuery(options.db, async (query) => {
36
- const agent = new OptimizerAgent({
37
- tools: new AgentTools(query, rootPath),
38
- editor: new CodeEditor(rootPath),
39
- rootPath,
40
- model,
41
- maxSteps: Number(options.maxSteps),
42
- });
43
- console.log(chalk.gray(`Model: ${model}${process.env.OPENAI_BASE_URL === undefined ? '' : ` @ ${process.env.OPENAI_BASE_URL}`}`));
44
- console.log(chalk.cyan(`Task: ${task}\n`));
45
- const outcome = await agent.run(task);
46
- for (const line of outcome.transcript) {
47
- console.log(chalk.gray(line));
48
- }
49
- console.log(chalk.bold(`\nApplied ${outcome.applied.length} verified edit(s):`));
50
- for (const edit of outcome.applied) {
51
- console.log(` ${chalk.green('✓')} ${edit.filePath} — ${edit.rationale}`);
52
- }
53
- if (outcome.applied.length === 0) {
54
- console.log(chalk.yellow(' (none — the agent found no safe change, or reverted what it tried)'));
55
- }
56
- });
57
- }
58
- }
59
- //# sourceMappingURL=optimize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare class OptimizeCommand {
3
- static register(program: Command): void;
4
- private static run;
5
- }
6
- //# sourceMappingURL=optimize_command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimize_command.d.ts","sourceRoot":"","sources":["../../src/commands/optimize_command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,qBAAa,eAAe;IAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAalB,GAAG;CAsCxB"}
@@ -1,59 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import chalk from 'chalk';
3
- import { AgentTools } from '../agent/agent_tools.js';
4
- import { CodeEditor } from '../agent/code_editor.js';
5
- import { OptimizerAgent } from '../agent/optimizer_agent.js';
6
- import { CommandHelpers, DEFAULT_DB_PATH } from './command_helpers.js';
7
- const DEFAULT_TASK = 'Find one genuinely dead exported symbol using dead_exports, confirm with references that it has zero inbound references, then remove it safely.';
8
- export class OptimizeCommand {
9
- static register(program) {
10
- program
11
- .command('optimize')
12
- .description('run the autonomous optimization agent against the loaded graph')
13
- .argument('[task]', 'what the agent should try to optimize', DEFAULT_TASK)
14
- .option('-d, --db <path>', 'Kùzu database path', DEFAULT_DB_PATH)
15
- .option('-m, --model <name>', 'model name (defaults to OPENAI_MODEL)')
16
- .option('--max-steps <n>', 'maximum agent steps', '12')
17
- .action(async (task, options) => {
18
- await OptimizeCommand.run(task, options);
19
- });
20
- }
21
- static async run(task, options) {
22
- if (existsSync('.env') === true) {
23
- process.loadEnvFile('.env');
24
- }
25
- if (process.env.OPENAI_API_KEY === undefined) {
26
- console.log(chalk.red('Set OPENAI_API_KEY before running the optimizer — copy .env-sample to .env and pick a provider.'));
27
- return;
28
- }
29
- const model = options.model ?? process.env.OPENAI_MODEL;
30
- if (model === undefined) {
31
- console.log(chalk.red('Set OPENAI_MODEL in .env (or pass --model) — see .env-sample for per-provider examples.'));
32
- return;
33
- }
34
- const rootPath = process.cwd();
35
- await CommandHelpers.withQuery(options.db, async (query) => {
36
- const agent = new OptimizerAgent({
37
- tools: new AgentTools(query, rootPath),
38
- editor: new CodeEditor(rootPath),
39
- rootPath,
40
- model,
41
- maxSteps: Number(options.maxSteps),
42
- });
43
- console.log(chalk.gray(`Model: ${model}${process.env.OPENAI_BASE_URL === undefined ? '' : ` @ ${process.env.OPENAI_BASE_URL}`}`));
44
- console.log(chalk.cyan(`Task: ${task}\n`));
45
- const outcome = await agent.run(task);
46
- for (const line of outcome.transcript) {
47
- console.log(chalk.gray(line));
48
- }
49
- console.log(chalk.bold(`\nApplied ${outcome.applied.length} verified edit(s):`));
50
- for (const edit of outcome.applied) {
51
- console.log(` ${chalk.green('✓')} ${edit.filePath} — ${edit.rationale}`);
52
- }
53
- if (outcome.applied.length === 0) {
54
- console.log(chalk.yellow(' (none — the agent found no safe change, or reverted what it tried)'));
55
- }
56
- });
57
- }
58
- }
59
- //# sourceMappingURL=optimize_command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimize_command.js","sourceRoot":"","sources":["../../src/commands/optimize_command.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare class References {
3
- static register(program: Command): void;
4
- }
5
- //# sourceMappingURL=references.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/commands/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,UAAU;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAavC"}
@@ -1,17 +0,0 @@
1
- import { CommandHelpers, DEFAULT_DB_PATH } from './command_helpers.js';
2
- export class References {
3
- static register(program) {
4
- program
5
- .command('references')
6
- .description('list everything that references <id> (calls, type usage, heritage, new)')
7
- .argument('<id>', 'node id to inspect')
8
- .option('-d, --db <path>', 'Kùzu database path', DEFAULT_DB_PATH)
9
- .option('--json', 'emit raw JSON', false)
10
- .action(async (id, options) => {
11
- await CommandHelpers.withQuery(options.db, async (query) => {
12
- CommandHelpers.printNeighbors(await query.references(id), options.json === true);
13
- });
14
- });
15
- }
16
- }
17
- //# sourceMappingURL=references.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/commands/references.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAgB,MAAM,sBAAsB,CAAC;AAErF,MAAM,OAAO,UAAU;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAgB;QAC/B,OAAO;aACL,OAAO,CAAC,YAAY,CAAC;aACrB,WAAW,CAAC,yEAAyE,CAAC;aACtF,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;aACtC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC;aAChE,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC;aACxC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAAqB,EAAE,EAAE;YACnD,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,cAAc,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACD"}
@@ -1,19 +0,0 @@
1
- import { Command } from 'commander';
2
- /**
3
- * `web` command — serves the knowledge graph database in an interactive web
4
- * visualisation. The graph is read from Kùzu once at startup and injected into
5
- * the page as `/data/graph_data.js`; all other assets are served statically
6
- * from the contribs/web_visualisation/web directory.
7
- */
8
- export declare class Web {
9
- static register(program: Command): void;
10
- private static run;
11
- /**
12
- * Reads every node and edge from the database and renders them as the
13
- * `window.GRAPH_DATA` script the visualisation page loads on boot.
14
- */
15
- private static buildDataScript;
16
- private static handle;
17
- private static notFound;
18
- }
19
- //# sourceMappingURL=web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC;;;;;GAKG;AACH,qBAAa,GAAG;IACf,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAWlB,GAAG;IAmBxB;;;OAGG;mBACkB,eAAe;mBAoCf,MAAM;IAwB3B,OAAO,CAAC,MAAM,CAAC,QAAQ;CAIvB"}
@@ -1,120 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { readFile } from 'node:fs/promises';
3
- import { createServer } from 'node:http';
4
- import { extname, join, normalize, resolve, sep } from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import chalk from 'chalk';
7
- import { KuzuStore } from '../store/kuzu_store.js';
8
- import { DEFAULT_DB_PATH } from './command_helpers.js';
9
- /**
10
- * Static assets of the web visualisation, resolved relative to this module so
11
- * the same path works from `src/` (tsx) and from `dist/` (published package).
12
- */
13
- const WEB_ROOT = fileURLToPath(new URL('../../contribs/web_visualisation/web', import.meta.url));
14
- const DATA_SCRIPT_PATH = '/data/graph_data.js';
15
- const DEFAULT_PORT = '4173';
16
- const MIME_TYPES = {
17
- '.css': 'text/css; charset=utf-8',
18
- '.html': 'text/html; charset=utf-8',
19
- '.js': 'text/javascript; charset=utf-8',
20
- '.json': 'application/json; charset=utf-8',
21
- '.png': 'image/png',
22
- '.svg': 'image/svg+xml',
23
- };
24
- /**
25
- * `web` command — serves the knowledge graph database in an interactive web
26
- * visualisation. The graph is read from Kùzu once at startup and injected into
27
- * the page as `/data/graph_data.js`; all other assets are served statically
28
- * from the contribs/web_visualisation/web directory.
29
- */
30
- export class Web {
31
- static register(program) {
32
- program
33
- .command('web')
34
- .description('serve the knowledge graph database in a web visualisation')
35
- .option('-d, --db <path>', 'Kùzu database path', DEFAULT_DB_PATH)
36
- .option('-p, --port <port>', 'HTTP port to listen on', DEFAULT_PORT)
37
- .action(async (options) => {
38
- await Web.run(options);
39
- });
40
- }
41
- static async run(options) {
42
- const dbPath = resolve(options.db);
43
- if (existsSync(dbPath) === false) {
44
- console.error(chalk.red(`database not found at ${dbPath} — run \`extract\` then \`load\` first`));
45
- process.exitCode = 1;
46
- return;
47
- }
48
- const dataScript = await Web.buildDataScript(dbPath);
49
- const server = createServer((request, response) => {
50
- void Web.handle(request, response, dataScript);
51
- });
52
- server.listen(Number(options.port), () => {
53
- console.log(chalk.green(`✓ serving the knowledge graph at http://localhost:${options.port}/`));
54
- console.log(chalk.gray(' press Ctrl+C to stop'));
55
- });
56
- }
57
- /**
58
- * Reads every node and edge from the database and renders them as the
59
- * `window.GRAPH_DATA` script the visualisation page loads on boot.
60
- */
61
- static async buildDataScript(dbPath) {
62
- const store = new KuzuStore(dbPath);
63
- await store.initSchema();
64
- try {
65
- const nodeRows = await store.run('MATCH (n:GraphNode) RETURN n.id AS id, n.kind AS kind, n.name AS name, n.filePath AS filePath, n.exported AS exported, n.startLine AS startLine, n.endLine AS endLine');
66
- const edgeRows = await store.run('MATCH (f:GraphNode)-[e:Edge]->(t:GraphNode) RETURN f.id AS from, e.kind AS kind, t.id AS to');
67
- const nodes = nodeRows.map((row) => ({
68
- id: String(row.id),
69
- kind: String(row.kind),
70
- name: String(row.name),
71
- filePath: String(row.filePath),
72
- exported: row.exported === true,
73
- range: {
74
- startLine: Number(row.startLine),
75
- startColumn: 0,
76
- endLine: Number(row.endLine),
77
- endColumn: 0,
78
- },
79
- }));
80
- const edges = edgeRows.map((row, index) => ({
81
- id: `e${index}`,
82
- kind: String(row.kind),
83
- from: String(row.from),
84
- to: String(row.to),
85
- }));
86
- console.log(chalk.cyan(`loaded ${nodes.length} nodes, ${edges.length} edges from ${dbPath}`));
87
- return `window.GRAPH_DATA = ${JSON.stringify({ nodes, edges })};\n`;
88
- }
89
- finally {
90
- await store.close();
91
- }
92
- }
93
- static async handle(request, response, dataScript) {
94
- const url = new URL(request.url ?? '/', 'http://localhost');
95
- const pathname = url.pathname === '/' ? '/index.html' : url.pathname;
96
- if (pathname === DATA_SCRIPT_PATH) {
97
- response.writeHead(200, { 'content-type': MIME_TYPES['.js'] });
98
- response.end(dataScript);
99
- return;
100
- }
101
- const filePath = normalize(join(WEB_ROOT, pathname));
102
- if (filePath.startsWith(WEB_ROOT + sep) === false) {
103
- Web.notFound(response);
104
- return;
105
- }
106
- try {
107
- const content = await readFile(filePath);
108
- response.writeHead(200, { 'content-type': MIME_TYPES[extname(filePath)] ?? 'application/octet-stream' });
109
- response.end(content);
110
- }
111
- catch {
112
- Web.notFound(response);
113
- }
114
- }
115
- static notFound(response) {
116
- response.writeHead(404, { 'content-type': 'text/plain; charset=utf-8' });
117
- response.end('not found');
118
- }
119
- }
120
- //# sourceMappingURL=web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare class WhoCalls {
3
- static register(program: Command): void;
4
- }
5
- //# sourceMappingURL=who-calls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"who-calls.d.ts","sourceRoot":"","sources":["../../src/commands/who-calls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,QAAQ;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAIvC"}
@@ -1,7 +0,0 @@
1
- import { CommandHelpers } from './command-helpers.js';
2
- export class WhoCalls {
3
- static register(program) {
4
- CommandHelpers.registerSymbolQuery(program, 'who-calls', '<id>', 'list symbols that call <id>', (query, arg) => query.whoCalls(arg));
5
- }
6
- }
7
- //# sourceMappingURL=who-calls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"who-calls.js","sourceRoot":"","sources":["../../src/commands/who-calls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,QAAQ;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAgB;QAC/B,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAC9G,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC;CACD"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare class WhoCalls {
3
- static register(program: Command): void;
4
- }
5
- //# sourceMappingURL=who_calls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"who_calls.d.ts","sourceRoot":"","sources":["../../src/commands/who_calls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,QAAQ;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAIvC"}
@@ -1,7 +0,0 @@
1
- import { CommandHelpers } from './command_helpers.js';
2
- export class WhoCalls {
3
- static register(program) {
4
- CommandHelpers.registerSymbolQuery(program, 'who-calls', '<id>', 'list symbols that call <id>', (query, arg) => query.whoCalls(arg));
5
- }
6
- }
7
- //# sourceMappingURL=who_calls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"who_calls.js","sourceRoot":"","sources":["../../src/commands/who_calls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,QAAQ;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAgB;QAC/B,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAC9G,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC;CACD"}
@@ -1,16 +0,0 @@
1
- import { Project } from 'ts-morph';
2
- import { GraphEdge } from '../schema/edge.js';
3
- import { GraphNode } from '../schema/node.js';
4
- export type BuildOptions = {
5
- semantic: boolean;
6
- };
7
- export declare class GraphBuilder {
8
- private readonly nodes;
9
- private readonly edges;
10
- build(project: Project, rootPath: string, options: BuildOptions): void;
11
- getNodes(): GraphNode[];
12
- getEdges(): GraphEdge[];
13
- private merge;
14
- private static isProjectFile;
15
- }
16
- //# sourceMappingURL=graph-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../src/extract/graph-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IAEtD,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAetE,QAAQ,IAAI,SAAS,EAAE;IAIvB,QAAQ,IAAI,SAAS,EAAE;IAIvB,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,MAAM,CAAC,aAAa;CAG5B"}
@@ -1,39 +0,0 @@
1
- import { SemanticExtractor } from './semantic-extractor.js';
2
- import { StructuralExtractor } from './structural-extractor.js';
3
- export class GraphBuilder {
4
- constructor() {
5
- this.nodes = new Map();
6
- this.edges = new Map();
7
- }
8
- build(project, rootPath, options) {
9
- const sourceFiles = project
10
- .getSourceFiles()
11
- .filter((file) => GraphBuilder.isProjectFile(file.getFilePath()));
12
- for (const sourceFile of sourceFiles) {
13
- this.merge(StructuralExtractor.extract(sourceFile, rootPath));
14
- }
15
- if (options.semantic === true) {
16
- for (const sourceFile of sourceFiles) {
17
- this.merge(SemanticExtractor.extract(sourceFile, rootPath));
18
- }
19
- }
20
- }
21
- getNodes() {
22
- return [...this.nodes.values()];
23
- }
24
- getEdges() {
25
- return [...this.edges.values()];
26
- }
27
- merge(extraction) {
28
- for (const node of extraction.nodes) {
29
- this.nodes.set(node.id, node);
30
- }
31
- for (const edge of extraction.edges) {
32
- this.edges.set(edge.id, edge);
33
- }
34
- }
35
- static isProjectFile(filePath) {
36
- return filePath.includes('/node_modules/') === false && filePath.endsWith('.d.ts') === false;
37
- }
38
- }
39
- //# sourceMappingURL=graph-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-builder.js","sourceRoot":"","sources":["../../src/extract/graph-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAc,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAM5E,MAAM,OAAO,YAAY;IAAzB;QACkB,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QACrC,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAqCvD,CAAC;IAnCA,KAAK,CAAC,OAAgB,EAAE,QAAgB,EAAE,OAAqB;QAC9D,MAAM,WAAW,GAAG,OAAO;aACzB,cAAc,EAAE;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEnE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;IAED,QAAQ;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,UAAsB;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,QAAgB;QAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;IAC9F,CAAC;CACD"}
@@ -1,8 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export declare class NodeId {
3
- static forModule(filePath: string, rootPath: string): string;
4
- static forDeclaration(node: Node, rootPath: string): string;
5
- static forExternalModule(specifier: string): string;
6
- static nameOf(node: Node): string;
7
- }
8
- //# sourceMappingURL=node-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-id.d.ts","sourceRoot":"","sources":["../../src/extract/node-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,qBAAa,MAAM;IAClB,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI5D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK3D,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAInD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;CAQjC"}
@@ -1,22 +0,0 @@
1
- import { relative } from 'node:path';
2
- export class NodeId {
3
- static forModule(filePath, rootPath) {
4
- return `Module:${relative(rootPath, filePath)}`;
5
- }
6
- static forDeclaration(node, rootPath) {
7
- const filePath = relative(rootPath, node.getSourceFile().getFilePath());
8
- return `${node.getKindName()}:${filePath}#${NodeId.nameOf(node)}@${node.getStartLineNumber()}`;
9
- }
10
- static forExternalModule(specifier) {
11
- return `External:${specifier}`;
12
- }
13
- static nameOf(node) {
14
- const probe = node;
15
- if (typeof probe.getName !== 'function') {
16
- return 'anonymous';
17
- }
18
- const name = probe.getName();
19
- return name === undefined || name === '' ? 'anonymous' : name;
20
- }
21
- }
22
- //# sourceMappingURL=node-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-id.js","sourceRoot":"","sources":["../../src/extract/node-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,MAAM;IAClB,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,QAAgB;QAClD,OAAO,UAAU,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAU,EAAE,QAAgB;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QACzC,OAAO,YAAY,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAU;QACvB,MAAM,KAAK,GAAG,IAA8C,CAAC;QAC7D,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;CACD"}
@@ -1,5 +0,0 @@
1
- import { Project } from 'ts-morph';
2
- export declare class ProjectLoader {
3
- static load(rootPath: string): Project;
4
- }
5
- //# sourceMappingURL=project-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-loader.d.ts","sourceRoot":"","sources":["../../src/extract/project-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,qBAAa,aAAa;IACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAatC"}
@@ -1,19 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { Project } from 'ts-morph';
4
- export class ProjectLoader {
5
- static load(rootPath) {
6
- const tsConfigFilePath = join(rootPath, 'tsconfig.json');
7
- if (existsSync(tsConfigFilePath) === true) {
8
- return new Project({ tsConfigFilePath });
9
- }
10
- const project = new Project();
11
- project.addSourceFilesAtPaths([
12
- join(rootPath, '**/*.ts'),
13
- join(rootPath, '**/*.tsx'),
14
- `!${join(rootPath, '**/node_modules/**')}`,
15
- ]);
16
- return project;
17
- }
18
- }
19
- //# sourceMappingURL=project-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-loader.js","sourceRoot":"","sources":["../../src/extract/project-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,OAAO,aAAa;IACzB,MAAM,CAAC,IAAI,CAAC,QAAgB;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3C,OAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,qBAAqB,CAAC;YAC7B,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;YACzB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE;SAC1C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IAChB,CAAC;CACD"}
@@ -1,22 +0,0 @@
1
- import { SourceFile } from 'ts-morph';
2
- import { Extraction } from './structural-extractor.js';
3
- export declare class SemanticExtractor {
4
- static extract(sourceFile: SourceFile, rootPath: string): Extraction;
5
- private static extractClass;
6
- private static extractInterface;
7
- private static extractSignature;
8
- private static addTypeEdges;
9
- private static referencedTypes;
10
- private static extractCalls;
11
- private static extractInstantiations;
12
- private static extractReads;
13
- private static isValueRead;
14
- private static isDeclarationName;
15
- private static isEmittedTarget;
16
- private static readerScope;
17
- private static enclosingDeclaration;
18
- private static resolve;
19
- private static inProject;
20
- private static edge;
21
- }
22
- //# sourceMappingURL=semantic-extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic-extractor.d.ts","sourceRoot":"","sources":["../../src/extract/semantic-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAON,UAAU,EAGV,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAqCvD,qBAAa,iBAAiB;IAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAuBpE,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAe/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAkB3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B,OAAO,CAAC,MAAM,CAAC,YAAY;IAqB3B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAqBpC,OAAO,CAAC,MAAM,CAAC,YAAY;IA2B3B,OAAO,CAAC,MAAM,CAAC,WAAW;IA6B1B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAKhC,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAOnC,OAAO,CAAC,MAAM,CAAC,OAAO;IAUtB,OAAO,CAAC,MAAM,CAAC,SAAS;IAMxB,OAAO,CAAC,MAAM,CAAC,IAAI;CAGnB"}