@saluzi/codegraph 0.1.0 → 0.2.0

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 (246) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +885 -0
  3. package/package.json +42 -10
  4. package/scripts/add-lang/bench.sh +60 -0
  5. package/scripts/add-lang/check-grammar.mjs +75 -0
  6. package/scripts/add-lang/dump-ast.mjs +103 -0
  7. package/scripts/add-lang/verify-extraction.mjs +70 -0
  8. package/scripts/agent-eval/ab-adoption.sh +91 -0
  9. package/scripts/agent-eval/ab-hook.sh +86 -0
  10. package/scripts/agent-eval/ab-impl.sh +78 -0
  11. package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -0
  12. package/scripts/agent-eval/ab-sufficiency.sh +78 -0
  13. package/scripts/agent-eval/arms-F.sh +21 -0
  14. package/scripts/agent-eval/arms-matrix.sh +37 -0
  15. package/scripts/agent-eval/audit.sh +68 -0
  16. package/scripts/agent-eval/bench-readme.sh +28 -0
  17. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  18. package/scripts/agent-eval/block-read-hook.sh +19 -0
  19. package/scripts/agent-eval/hook-settings.json +15 -0
  20. package/scripts/agent-eval/itrun.sh +120 -0
  21. package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
  22. package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
  23. package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
  24. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
  25. package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
  26. package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
  27. package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
  28. package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
  29. package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
  30. package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
  31. package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
  32. package/scripts/agent-eval/offload-eval-setup.sh +24 -0
  33. package/scripts/agent-eval/offload-eval-styles.sh +72 -0
  34. package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
  35. package/scripts/agent-eval/offload-eval.md +76 -0
  36. package/scripts/agent-eval/parse-arms.mjs +116 -0
  37. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  38. package/scripts/agent-eval/parse-run.mjs +45 -0
  39. package/scripts/agent-eval/parse-session.mjs +93 -0
  40. package/scripts/agent-eval/probe-context.mjs +21 -0
  41. package/scripts/agent-eval/probe-explore.mjs +40 -0
  42. package/scripts/agent-eval/probe-node.mjs +20 -0
  43. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  44. package/scripts/agent-eval/probe-trace.mjs +20 -0
  45. package/scripts/agent-eval/redirect-read-hook.sh +38 -0
  46. package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
  47. package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
  48. package/scripts/agent-eval/run-agent.sh +34 -0
  49. package/scripts/agent-eval/run-all.sh +75 -0
  50. package/scripts/agent-eval/run-arms.sh +56 -0
  51. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  52. package/scripts/build-bundle.sh +123 -0
  53. package/scripts/extract-release-notes.mjs +130 -0
  54. package/scripts/local-install.sh +41 -0
  55. package/scripts/npm-sdk.js +75 -0
  56. package/scripts/npm-shim.js +275 -0
  57. package/scripts/pack-npm.sh +119 -0
  58. package/scripts/prepare-release.mjs +270 -0
  59. package/dist/bin/codegraph.d.ts +0 -25
  60. package/dist/bin/node-version-check.d.ts +0 -37
  61. package/dist/bin/uninstall.d.ts +0 -14
  62. package/dist/context/formatter.d.ts +0 -33
  63. package/dist/context/formatter.js +0 -244
  64. package/dist/context/index.d.ts +0 -117
  65. package/dist/context/index.js +0 -1050
  66. package/dist/db/index.d.ts +0 -101
  67. package/dist/db/index.js +0 -250
  68. package/dist/db/migrations.d.ts +0 -47
  69. package/dist/db/migrations.js +0 -131
  70. package/dist/db/queries.d.ts +0 -291
  71. package/dist/db/queries.js +0 -1349
  72. package/dist/db/schema.sql +0 -151
  73. package/dist/db/sqlite-adapter.d.ts +0 -49
  74. package/dist/db/sqlite-adapter.js +0 -141
  75. package/dist/directory.d.ts +0 -62
  76. package/dist/directory.js +0 -264
  77. package/dist/errors.d.ts +0 -149
  78. package/dist/errors.js +0 -219
  79. package/dist/extraction/dfm-extractor.d.ts +0 -31
  80. package/dist/extraction/dfm-extractor.js +0 -151
  81. package/dist/extraction/grammars.d.ts +0 -94
  82. package/dist/extraction/grammars.js +0 -357
  83. package/dist/extraction/index.d.ts +0 -148
  84. package/dist/extraction/index.js +0 -1286
  85. package/dist/extraction/languages/c-cpp.d.ts +0 -4
  86. package/dist/extraction/languages/c-cpp.js +0 -126
  87. package/dist/extraction/languages/csharp.d.ts +0 -3
  88. package/dist/extraction/languages/csharp.js +0 -72
  89. package/dist/extraction/languages/dart.d.ts +0 -3
  90. package/dist/extraction/languages/dart.js +0 -192
  91. package/dist/extraction/languages/go.d.ts +0 -3
  92. package/dist/extraction/languages/go.js +0 -58
  93. package/dist/extraction/languages/index.d.ts +0 -10
  94. package/dist/extraction/languages/index.js +0 -49
  95. package/dist/extraction/languages/java.d.ts +0 -3
  96. package/dist/extraction/languages/java.js +0 -64
  97. package/dist/extraction/languages/javascript.d.ts +0 -3
  98. package/dist/extraction/languages/javascript.js +0 -90
  99. package/dist/extraction/languages/kotlin.d.ts +0 -3
  100. package/dist/extraction/languages/kotlin.js +0 -253
  101. package/dist/extraction/languages/lua.d.ts +0 -3
  102. package/dist/extraction/languages/lua.js +0 -150
  103. package/dist/extraction/languages/luau.d.ts +0 -3
  104. package/dist/extraction/languages/luau.js +0 -37
  105. package/dist/extraction/languages/pascal.d.ts +0 -3
  106. package/dist/extraction/languages/pascal.js +0 -66
  107. package/dist/extraction/languages/php.d.ts +0 -3
  108. package/dist/extraction/languages/php.js +0 -107
  109. package/dist/extraction/languages/python.d.ts +0 -3
  110. package/dist/extraction/languages/python.js +0 -56
  111. package/dist/extraction/languages/ruby.d.ts +0 -3
  112. package/dist/extraction/languages/ruby.js +0 -114
  113. package/dist/extraction/languages/rust.d.ts +0 -3
  114. package/dist/extraction/languages/rust.js +0 -109
  115. package/dist/extraction/languages/scala.d.ts +0 -3
  116. package/dist/extraction/languages/scala.js +0 -139
  117. package/dist/extraction/languages/swift.d.ts +0 -3
  118. package/dist/extraction/languages/swift.js +0 -91
  119. package/dist/extraction/languages/typescript.d.ts +0 -3
  120. package/dist/extraction/languages/typescript.js +0 -129
  121. package/dist/extraction/liquid-extractor.d.ts +0 -52
  122. package/dist/extraction/liquid-extractor.js +0 -313
  123. package/dist/extraction/parse-worker.d.ts +0 -8
  124. package/dist/extraction/parse-worker.js +0 -94
  125. package/dist/extraction/svelte-extractor.d.ts +0 -56
  126. package/dist/extraction/svelte-extractor.js +0 -272
  127. package/dist/extraction/tree-sitter-helpers.d.ts +0 -39
  128. package/dist/extraction/tree-sitter-helpers.js +0 -103
  129. package/dist/extraction/tree-sitter-types.d.ts +0 -191
  130. package/dist/extraction/tree-sitter-types.js +0 -10
  131. package/dist/extraction/tree-sitter.d.ts +0 -238
  132. package/dist/extraction/tree-sitter.js +0 -2430
  133. package/dist/extraction/vue-extractor.d.ts +0 -36
  134. package/dist/extraction/vue-extractor.js +0 -163
  135. package/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
  136. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  137. package/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
  138. package/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
  139. package/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
  140. package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  141. package/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
  142. package/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
  143. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  144. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  145. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  146. package/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
  147. package/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
  148. package/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
  149. package/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
  150. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  151. package/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
  152. package/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
  153. package/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
  154. package/dist/extraction/wasm-runtime-flags.d.ts +0 -46
  155. package/dist/extraction/wasm-runtime-flags.js +0 -105
  156. package/dist/graph/index.d.ts +0 -8
  157. package/dist/graph/index.js +0 -13
  158. package/dist/graph/queries.d.ts +0 -109
  159. package/dist/graph/queries.js +0 -366
  160. package/dist/graph/traversal.d.ts +0 -137
  161. package/dist/graph/traversal.js +0 -528
  162. package/dist/index.d.ts +0 -509
  163. package/dist/index.js +0 -800
  164. package/dist/installer/claude-md-template.d.ts +0 -19
  165. package/dist/installer/config-writer.d.ts +0 -29
  166. package/dist/installer/index.d.ts +0 -140
  167. package/dist/installer/instructions-template.d.ts +0 -30
  168. package/dist/installer/targets/claude.d.ts +0 -55
  169. package/dist/installer/targets/codex.d.ts +0 -18
  170. package/dist/installer/targets/cursor.d.ts +0 -35
  171. package/dist/installer/targets/hermes.d.ts +0 -18
  172. package/dist/installer/targets/opencode.d.ts +0 -30
  173. package/dist/installer/targets/registry.d.ts +0 -38
  174. package/dist/installer/targets/shared.d.ts +0 -92
  175. package/dist/installer/targets/toml.d.ts +0 -64
  176. package/dist/installer/targets/types.d.ts +0 -122
  177. package/dist/mcp/index.d.ts +0 -98
  178. package/dist/mcp/server-instructions.d.ts +0 -20
  179. package/dist/mcp/tools.d.ts +0 -269
  180. package/dist/mcp/transport.d.ts +0 -117
  181. package/dist/resolution/frameworks/cargo-workspace.d.ts +0 -20
  182. package/dist/resolution/frameworks/cargo-workspace.js +0 -225
  183. package/dist/resolution/frameworks/csharp.d.ts +0 -8
  184. package/dist/resolution/frameworks/csharp.js +0 -213
  185. package/dist/resolution/frameworks/drupal.d.ts +0 -51
  186. package/dist/resolution/frameworks/drupal.js +0 -335
  187. package/dist/resolution/frameworks/express.d.ts +0 -8
  188. package/dist/resolution/frameworks/express.js +0 -225
  189. package/dist/resolution/frameworks/go.d.ts +0 -8
  190. package/dist/resolution/frameworks/go.js +0 -158
  191. package/dist/resolution/frameworks/index.d.ts +0 -52
  192. package/dist/resolution/frameworks/index.js +0 -137
  193. package/dist/resolution/frameworks/java.d.ts +0 -8
  194. package/dist/resolution/frameworks/java.js +0 -177
  195. package/dist/resolution/frameworks/laravel.d.ts +0 -13
  196. package/dist/resolution/frameworks/laravel.js +0 -248
  197. package/dist/resolution/frameworks/nestjs.d.ts +0 -26
  198. package/dist/resolution/frameworks/nestjs.js +0 -374
  199. package/dist/resolution/frameworks/python.d.ts +0 -10
  200. package/dist/resolution/frameworks/python.js +0 -278
  201. package/dist/resolution/frameworks/react.d.ts +0 -8
  202. package/dist/resolution/frameworks/react.js +0 -272
  203. package/dist/resolution/frameworks/ruby.d.ts +0 -8
  204. package/dist/resolution/frameworks/ruby.js +0 -198
  205. package/dist/resolution/frameworks/rust.d.ts +0 -8
  206. package/dist/resolution/frameworks/rust.js +0 -207
  207. package/dist/resolution/frameworks/svelte.d.ts +0 -9
  208. package/dist/resolution/frameworks/svelte.js +0 -249
  209. package/dist/resolution/frameworks/swift.d.ts +0 -10
  210. package/dist/resolution/frameworks/swift.js +0 -376
  211. package/dist/resolution/frameworks/vue.d.ts +0 -9
  212. package/dist/resolution/frameworks/vue.js +0 -306
  213. package/dist/resolution/import-resolver.d.ts +0 -61
  214. package/dist/resolution/import-resolver.js +0 -663
  215. package/dist/resolution/index.d.ts +0 -118
  216. package/dist/resolution/index.js +0 -744
  217. package/dist/resolution/lru-cache.d.ts +0 -24
  218. package/dist/resolution/lru-cache.js +0 -62
  219. package/dist/resolution/name-matcher.d.ts +0 -50
  220. package/dist/resolution/name-matcher.js +0 -384
  221. package/dist/resolution/path-aliases.d.ts +0 -72
  222. package/dist/resolution/path-aliases.js +0 -238
  223. package/dist/resolution/strip-comments.d.ts +0 -40
  224. package/dist/resolution/strip-comments.js +0 -441
  225. package/dist/resolution/types.d.ts +0 -181
  226. package/dist/resolution/types.js +0 -8
  227. package/dist/search/query-parser.d.ts +0 -61
  228. package/dist/search/query-parser.js +0 -177
  229. package/dist/search/query-utils.d.ts +0 -59
  230. package/dist/search/query-utils.js +0 -383
  231. package/dist/sync/git-hooks.d.ts +0 -54
  232. package/dist/sync/git-hooks.js +0 -223
  233. package/dist/sync/index.d.ts +0 -25
  234. package/dist/sync/index.js +0 -28
  235. package/dist/sync/watch-policy.d.ts +0 -51
  236. package/dist/sync/watch-policy.js +0 -124
  237. package/dist/sync/watcher.d.ts +0 -83
  238. package/dist/sync/watcher.js +0 -192
  239. package/dist/types.d.ts +0 -433
  240. package/dist/types.js +0 -75
  241. package/dist/ui/glyphs.d.ts +0 -42
  242. package/dist/ui/shimmer-progress.d.ts +0 -11
  243. package/dist/ui/shimmer-worker.d.ts +0 -2
  244. package/dist/ui/types.d.ts +0 -20
  245. package/dist/utils.d.ts +0 -231
  246. package/dist/utils.js +0 -549
@@ -1,238 +0,0 @@
1
- /**
2
- * Tree-sitter Parser Wrapper
3
- *
4
- * Handles parsing source code and extracting structural information.
5
- */
6
- import { Language, ExtractionResult } from '../types'
7
- export { generateNodeId } from './tree-sitter-helpers'
8
- /**
9
- * TreeSitterExtractor - Main extraction class
10
- */
11
- export declare class TreeSitterExtractor {
12
- private filePath
13
- private language
14
- private source
15
- private tree
16
- private nodes
17
- private edges
18
- private unresolvedReferences
19
- private errors
20
- private extractor
21
- private nodeStack
22
- private methodIndex
23
- constructor(filePath: string, source: string, language?: Language)
24
- /**
25
- * Parse and extract from the source code
26
- */
27
- extract(): ExtractionResult
28
- /**
29
- * Visit a node and extract information
30
- */
31
- private visitNode
32
- /**
33
- * Create a Node object
34
- */
35
- private createNode
36
- /**
37
- * Find first named child whose type is in the given list.
38
- * Used to locate inner type nodes (e.g. enum_specifier inside a typedef).
39
- */
40
- private findChildByTypes
41
- /**
42
- * Build qualified name from node stack
43
- */
44
- private buildQualifiedName
45
- /**
46
- * Build an ExtractorContext for passing to language-specific visitNode hooks.
47
- */
48
- private makeExtractorContext
49
- /**
50
- * Check if the current node stack indicates we are inside a class-like node
51
- * (class, struct, interface, trait). File nodes do not count as class-like.
52
- */
53
- private isInsideClassLikeNode
54
- /**
55
- * Extract a function
56
- */
57
- private extractFunction
58
- /**
59
- * Extract a class
60
- */
61
- private extractClass
62
- /**
63
- * Extract a method
64
- */
65
- private extractMethod
66
- /**
67
- * Extract an interface/protocol/trait
68
- */
69
- private extractInterface
70
- /**
71
- * Extract a struct
72
- */
73
- private extractStruct
74
- /**
75
- * Extract an enum
76
- */
77
- private extractEnum
78
- /**
79
- * Extract enum member names from an enum member node.
80
- * Handles multi-case declarations (Swift: `case put, delete`) and single-case patterns.
81
- */
82
- private extractEnumMembers
83
- /**
84
- * Extract a class property declaration (e.g. C# `public string Name { get; set; }`).
85
- * Extracts as 'property' kind node inside the owning class.
86
- */
87
- private extractProperty
88
- /**
89
- * Extract a class field declaration (e.g. Java field_declaration, C# field_declaration).
90
- * Extracts each declarator as a 'field' kind node inside the owning class.
91
- */
92
- private extractField
93
- /**
94
- * Extract a variable declaration (const, let, var, etc.)
95
- *
96
- * Extracts top-level and module-level variable declarations.
97
- * Captures the variable name and first 100 chars of initializer in signature for searchability.
98
- */
99
- private extractVariable
100
- /**
101
- * Extract a type alias (e.g. `export type X = ...` in TypeScript).
102
- * For languages like Go, resolveTypeAliasKind detects when the type_spec
103
- * wraps a struct or interface definition and creates the correct node kind.
104
- * Returns true if children should be skipped (struct/interface handled body visiting).
105
- */
106
- private extractTypeAlias
107
- /**
108
- * Extract an import
109
- *
110
- * Creates an import node with the full import statement stored in signature for searchability.
111
- * Also creates unresolved references for resolution purposes.
112
- */
113
- private extractImport
114
- /**
115
- * Extract a function call
116
- */
117
- private extractCall
118
- /**
119
- * `new Foo(...)` / `Foo::new(...)` / object_creation_expression —
120
- * emit an `instantiates` reference to the class name. The resolver
121
- * then links it to the class node, producing the `instantiates`
122
- * edge that powers "what creates instances of X" queries.
123
- *
124
- * Children are still walked so nested calls inside the constructor
125
- * arguments (`new Foo(bar())`) get their own `calls` references.
126
- */
127
- private extractInstantiation
128
- /**
129
- * Scan `declNode` and its preceding siblings (within the parent's
130
- * named children) for decorator nodes, emitting a `decorates`
131
- * reference from `decoratedId` to each decorator's function name.
132
- *
133
- * Why preceding siblings: in TypeScript, `@Foo class Bar {}` parses
134
- * as an `export_statement` (or top-level wrapper) with the
135
- * `decorator` as a child *before* the `class_declaration` — so the
136
- * decorator isn't a child of the class itself. For methods/
137
- * properties, the decorator IS a direct child of the declaration,
138
- * so we also scan declNode.namedChildren.
139
- *
140
- * Idempotent across grammars: if neither location yields decorators
141
- * (most non-decorator-using languages), the function is a no-op.
142
- */
143
- private extractDecoratorsFor
144
- /**
145
- * Visit function body and extract calls (and structural nodes).
146
- *
147
- * In addition to call expressions, this also detects class/struct/enum
148
- * definitions inside function bodies. This handles two cases:
149
- * 1. Local class/struct/enum definitions (valid in C++, Java, etc.)
150
- * 2. C++ macro misparsing — macros like NLOHMANN_JSON_NAMESPACE_BEGIN cause
151
- * tree-sitter to interpret the namespace block as a function_definition,
152
- * hiding real class/struct/enum nodes inside the "function body".
153
- */
154
- private visitFunctionBody
155
- /**
156
- * Extract inheritance relationships
157
- */
158
- private extractInheritance
159
- /**
160
- * Rust `impl Trait for Type` — creates an implements edge from Type to Trait.
161
- * For plain `impl Type { ... }` (no trait), no inheritance edge is needed.
162
- */
163
- private extractRustImplItem
164
- /**
165
- * Find a previously-extracted node by name (used for back-references like impl blocks)
166
- */
167
- private findNodeByName
168
- /**
169
- * Languages that support type annotations (TypeScript, etc.)
170
- */
171
- private readonly TYPE_ANNOTATION_LANGUAGES
172
- /**
173
- * Built-in/primitive type names that shouldn't create references
174
- */
175
- private readonly BUILTIN_TYPES
176
- /**
177
- * Extract type references from type annotations on a function/method/field node.
178
- * Creates 'references' edges for parameter types, return types, and field types.
179
- */
180
- private extractTypeAnnotations
181
- /**
182
- * Extract type references from a variable's type annotation.
183
- */
184
- private extractVariableTypeAnnotation
185
- /**
186
- * Recursively walk a subtree and extract all type_identifier references.
187
- * Handles unions, intersections, generics, arrays, etc.
188
- */
189
- private extractTypeRefsFromSubtree
190
- /**
191
- * Handle Pascal-specific AST structures.
192
- * Returns true if the node was fully handled and children should be skipped.
193
- */
194
- private visitPascalNode
195
- /**
196
- * Extract a Pascal declType node (class, interface, enum, or type alias)
197
- */
198
- private extractPascalDeclType
199
- /**
200
- * Extract Pascal uses clause into individual import nodes
201
- */
202
- private extractPascalUses
203
- /**
204
- * Extract a Pascal constant declaration
205
- */
206
- private extractPascalConst
207
- /**
208
- * Extract Pascal inheritance (extends/implements) from declClass typeref children
209
- */
210
- private extractPascalInheritance
211
- /**
212
- * Extract calls and resolve method context from a Pascal defProc (implementation body).
213
- * Does not create a new node — the declaration was already captured from the interface section.
214
- */
215
- private extractPascalDefProc
216
- /**
217
- * Extract function calls from a Pascal expression
218
- */
219
- private extractPascalCall
220
- /**
221
- * Recursively visit a Pascal block/statement tree for call expressions
222
- */
223
- private visitPascalBlock
224
- }
225
- /**
226
- * Extract nodes and edges from source code.
227
- *
228
- * If `frameworkNames` is provided, framework-specific extractors matching
229
- * those names and the file's language are run after the tree-sitter pass.
230
- * Their nodes/references/errors are merged into the returned result.
231
- */
232
- export declare function extractFromSource(
233
- filePath: string,
234
- source: string,
235
- language?: Language,
236
- frameworkNames?: string[],
237
- ): ExtractionResult
238
- //# sourceMappingURL=tree-sitter.d.ts.map