homegraph 1.2.0 → 1.5.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.
- package/README.md +48 -11
- package/dist/bin/homegraph.js +298 -72
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +117 -11
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts +207 -6
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +461 -20
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +19 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +157 -3
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +426 -9
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +32 -1
- package/dist/db/sqlite-adapter.d.ts +24 -17
- package/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/dist/db/sqlite-adapter.js +292 -36
- package/dist/db/sqlite-adapter.js.map +1 -1
- package/dist/db/wal-valve.d.ts +119 -0
- package/dist/db/wal-valve.d.ts.map +1 -0
- package/dist/db/wal-valve.js +290 -0
- package/dist/db/wal-valve.js.map +1 -0
- package/dist/directory.d.ts +9 -5
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +210 -19
- package/dist/directory.js.map +1 -1
- package/dist/extraction/arkts-batch-worker.js +3 -2
- package/dist/extraction/arkts-batch-worker.js.map +1 -1
- package/dist/extraction/cfml-extractor.d.ts +107 -0
- package/dist/extraction/cfml-extractor.d.ts.map +1 -0
- package/dist/extraction/cfml-extractor.js +494 -0
- package/dist/extraction/cfml-extractor.js.map +1 -0
- package/dist/extraction/default-ignore.d.ts +39 -0
- package/dist/extraction/default-ignore.d.ts.map +1 -0
- package/dist/extraction/default-ignore.js +221 -0
- package/dist/extraction/default-ignore.js.map +1 -0
- package/dist/extraction/grammars.d.ts +25 -1
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +177 -24
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +52 -14
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +521 -314
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/arkts.d.ts +90 -6
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +1579 -128
- package/dist/extraction/languages/arkts.js.map +1 -1
- package/dist/extraction/languages/c-cpp.d.ts +42 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/dist/extraction/languages/c-cpp.js +369 -4
- package/dist/extraction/languages/c-cpp.js.map +1 -1
- package/dist/extraction/languages/cfquery.d.ts +12 -0
- package/dist/extraction/languages/cfquery.d.ts.map +1 -0
- package/dist/extraction/languages/cfquery.js +28 -0
- package/dist/extraction/languages/cfquery.js.map +1 -0
- package/dist/extraction/languages/cfscript.d.ts +3 -0
- package/dist/extraction/languages/cfscript.d.ts.map +1 -0
- package/dist/extraction/languages/cfscript.js +73 -0
- package/dist/extraction/languages/cfscript.js.map +1 -0
- package/dist/extraction/languages/cobol.d.ts +33 -0
- package/dist/extraction/languages/cobol.d.ts.map +1 -0
- package/dist/extraction/languages/cobol.js +499 -0
- package/dist/extraction/languages/cobol.js.map +1 -0
- package/dist/extraction/languages/erlang.d.ts +3 -0
- package/dist/extraction/languages/erlang.d.ts.map +1 -0
- package/dist/extraction/languages/erlang.js +350 -0
- package/dist/extraction/languages/erlang.js.map +1 -0
- package/dist/extraction/languages/index.d.ts.map +1 -1
- package/dist/extraction/languages/index.js +16 -0
- package/dist/extraction/languages/index.js.map +1 -1
- package/dist/extraction/languages/nix.d.ts +3 -0
- package/dist/extraction/languages/nix.d.ts.map +1 -0
- package/dist/extraction/languages/nix.js +294 -0
- package/dist/extraction/languages/nix.js.map +1 -0
- package/dist/extraction/languages/solidity.d.ts +3 -0
- package/dist/extraction/languages/solidity.d.ts.map +1 -0
- package/dist/extraction/languages/solidity.js +293 -0
- package/dist/extraction/languages/solidity.js.map +1 -0
- package/dist/extraction/languages/terraform.d.ts +3 -0
- package/dist/extraction/languages/terraform.d.ts.map +1 -0
- package/dist/extraction/languages/terraform.js +641 -0
- package/dist/extraction/languages/terraform.js.map +1 -0
- package/dist/extraction/languages/vbnet.d.ts +11 -0
- package/dist/extraction/languages/vbnet.d.ts.map +1 -0
- package/dist/extraction/languages/vbnet.js +141 -0
- package/dist/extraction/languages/vbnet.js.map +1 -0
- package/dist/extraction/mybatis-extractor.d.ts +30 -10
- package/dist/extraction/mybatis-extractor.d.ts.map +1 -1
- package/dist/extraction/mybatis-extractor.js +140 -38
- package/dist/extraction/mybatis-extractor.js.map +1 -1
- package/dist/extraction/parse-pool.d.ts +27 -1
- package/dist/extraction/parse-pool.d.ts.map +1 -1
- package/dist/extraction/parse-pool.js +75 -7
- package/dist/extraction/parse-pool.js.map +1 -1
- package/dist/extraction/parse-worker.js +9 -2
- package/dist/extraction/parse-worker.js.map +1 -1
- package/dist/extraction/store-worker.d.ts +20 -0
- package/dist/extraction/store-worker.d.ts.map +1 -0
- package/dist/extraction/store-worker.js +102 -0
- package/dist/extraction/store-worker.js.map +1 -0
- package/dist/extraction/store-writer.d.ts +48 -0
- package/dist/extraction/store-writer.d.ts.map +1 -0
- package/dist/extraction/store-writer.js +167 -0
- package/dist/extraction/store-writer.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/dist/extraction/tree-sitter-helpers.js +1 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/dist/extraction/tree-sitter-types.d.ts +3 -1
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +38 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +801 -10
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +14 -4
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -1
- package/dist/extraction/wasm-runtime-flags.js +55 -7
- package/dist/extraction/wasm-runtime-flags.js.map +1 -1
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +1 -1
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +74 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +436 -55
- package/dist/index.js.map +1 -1
- package/dist/installer/index.d.ts +42 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +97 -2
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/daemon.d.ts +25 -3
- package/dist/mcp/daemon.d.ts.map +1 -1
- package/dist/mcp/daemon.js +62 -8
- package/dist/mcp/daemon.js.map +1 -1
- package/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
- package/dist/mcp/dynamic-boundaries.js +2 -1
- package/dist/mcp/dynamic-boundaries.js.map +1 -1
- package/dist/mcp/early-ppid.d.ts +26 -0
- package/dist/mcp/early-ppid.d.ts.map +1 -0
- package/dist/mcp/early-ppid.js +29 -0
- package/dist/mcp/early-ppid.js.map +1 -0
- package/dist/mcp/engine.d.ts +4 -5
- package/dist/mcp/engine.d.ts.map +1 -1
- package/dist/mcp/engine.js +27 -1
- package/dist/mcp/engine.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +41 -6
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/liveness-watchdog.d.ts +18 -1
- package/dist/mcp/liveness-watchdog.d.ts.map +1 -1
- package/dist/mcp/liveness-watchdog.js +73 -13
- package/dist/mcp/liveness-watchdog.js.map +1 -1
- package/dist/mcp/memory-budget.d.ts +30 -0
- package/dist/mcp/memory-budget.d.ts.map +1 -0
- package/dist/mcp/memory-budget.js +123 -0
- package/dist/mcp/memory-budget.js.map +1 -0
- package/dist/mcp/proxy.d.ts.map +1 -1
- package/dist/mcp/proxy.js +88 -4
- package/dist/mcp/proxy.js.map +1 -1
- package/dist/mcp/query-cache.d.ts +35 -4
- package/dist/mcp/query-cache.d.ts.map +1 -1
- package/dist/mcp/query-cache.js +89 -19
- package/dist/mcp/query-cache.js.map +1 -1
- package/dist/mcp/query-pool.d.ts +46 -12
- package/dist/mcp/query-pool.d.ts.map +1 -1
- package/dist/mcp/query-pool.js +100 -23
- package/dist/mcp/query-pool.js.map +1 -1
- package/dist/mcp/query-worker.d.ts +2 -2
- package/dist/mcp/query-worker.js +2 -2
- package/dist/mcp/server-instructions.d.ts +4 -27
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +39 -84
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/session.d.ts +14 -0
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +28 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/startup-handshake.d.ts +44 -0
- package/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/dist/mcp/startup-handshake.js +73 -0
- package/dist/mcp/startup-handshake.js.map +1 -0
- package/dist/mcp/tools.d.ts +104 -4
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2432 -217
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +18 -0
- package/dist/mcp/transport.js.map +1 -1
- package/dist/project-config.d.ts +38 -0
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +101 -2
- package/dist/project-config.js.map +1 -1
- package/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/dist/resolution/c-fnptr-synthesizer.js +178 -146
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/dist/resolution/callback-synthesizer.d.ts +54 -10
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/dist/resolution/callback-synthesizer.js +1299 -257
- package/dist/resolution/callback-synthesizer.js.map +1 -1
- package/dist/resolution/cooperative-yield.d.ts +10 -2
- package/dist/resolution/cooperative-yield.d.ts.map +1 -1
- package/dist/resolution/cooperative-yield.js +6 -4
- package/dist/resolution/cooperative-yield.js.map +1 -1
- package/dist/resolution/frameworks/cics.d.ts +20 -0
- package/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/dist/resolution/frameworks/cics.js +90 -0
- package/dist/resolution/frameworks/cics.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -1
- package/dist/resolution/frameworks/go.js +29 -6
- package/dist/resolution/frameworks/go.js.map +1 -1
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +3 -0
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/dist/resolution/frameworks/java.js +14 -6
- package/dist/resolution/frameworks/java.js.map +1 -1
- package/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/dist/resolution/frameworks/terraform.js +277 -0
- package/dist/resolution/frameworks/terraform.js.map +1 -0
- package/dist/resolution/goframe-synthesizer.d.ts +2 -1
- package/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
- package/dist/resolution/goframe-synthesizer.js +8 -3
- package/dist/resolution/goframe-synthesizer.js.map +1 -1
- package/dist/resolution/import-resolver.d.ts +9 -3
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +295 -11
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +146 -8
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +1089 -131
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/memory-budget.d.ts +48 -0
- package/dist/resolution/memory-budget.d.ts.map +1 -0
- package/dist/resolution/memory-budget.js +162 -0
- package/dist/resolution/memory-budget.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +12 -4
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +793 -130
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/resolver-pool.d.ts +106 -0
- package/dist/resolution/resolver-pool.d.ts.map +1 -0
- package/dist/resolution/resolver-pool.js +344 -0
- package/dist/resolution/resolver-pool.js.map +1 -0
- package/dist/resolution/resolver-worker.d.ts +17 -0
- package/dist/resolution/resolver-worker.d.ts.map +1 -0
- package/dist/resolution/resolver-worker.js +141 -0
- package/dist/resolution/resolver-worker.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +1 -1
- package/dist/resolution/strip-comments.d.ts.map +1 -1
- package/dist/resolution/strip-comments.js +49 -0
- package/dist/resolution/strip-comments.js.map +1 -1
- package/dist/resolution/types.d.ts +32 -0
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/resolution/workspace-packages.d.ts +10 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -1
- package/dist/resolution/workspace-packages.js +142 -4
- package/dist/resolution/workspace-packages.js.map +1 -1
- package/dist/search/identifier-segments.d.ts +60 -0
- package/dist/search/identifier-segments.d.ts.map +1 -0
- package/dist/search/identifier-segments.js +176 -0
- package/dist/search/identifier-segments.js.map +1 -0
- package/dist/search/query-utils.d.ts +201 -0
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +919 -2
- package/dist/search/query-utils.js.map +1 -1
- package/dist/spec/build/diff-parser.d.ts +55 -0
- package/dist/spec/build/diff-parser.d.ts.map +1 -0
- package/dist/spec/build/diff-parser.js +205 -0
- package/dist/spec/build/diff-parser.js.map +1 -0
- package/dist/spec/build/git-scanner.d.ts +93 -0
- package/dist/spec/build/git-scanner.d.ts.map +1 -0
- package/dist/spec/build/git-scanner.js +254 -0
- package/dist/spec/build/git-scanner.js.map +1 -0
- package/dist/spec/build/pipeline.d.ts +54 -0
- package/dist/spec/build/pipeline.d.ts.map +1 -0
- package/dist/spec/build/pipeline.js +170 -0
- package/dist/spec/build/pipeline.js.map +1 -0
- package/dist/spec/build/scan.d.ts +48 -0
- package/dist/spec/build/scan.d.ts.map +1 -0
- package/dist/spec/build/scan.js +89 -0
- package/dist/spec/build/scan.js.map +1 -0
- package/dist/spec/build/scope-resolver.d.ts +50 -0
- package/dist/spec/build/scope-resolver.d.ts.map +1 -0
- package/dist/spec/build/scope-resolver.js +105 -0
- package/dist/spec/build/scope-resolver.js.map +1 -0
- package/dist/spec/build/spec-extractor.d.ts +74 -0
- package/dist/spec/build/spec-extractor.d.ts.map +1 -0
- package/dist/spec/build/spec-extractor.js +344 -0
- package/dist/spec/build/spec-extractor.js.map +1 -0
- package/dist/spec/config.d.ts +35 -1
- package/dist/spec/config.d.ts.map +1 -1
- package/dist/spec/config.js +30 -5
- package/dist/spec/config.js.map +1 -1
- package/dist/spec/db/fts.d.ts.map +1 -1
- package/dist/spec/db/fts.js +19 -50
- package/dist/spec/db/fts.js.map +1 -1
- package/dist/spec/db/index.d.ts +5 -3
- package/dist/spec/db/index.d.ts.map +1 -1
- package/dist/spec/db/index.js +16 -1
- package/dist/spec/db/index.js.map +1 -1
- package/dist/spec/db/persist.d.ts +45 -0
- package/dist/spec/db/persist.d.ts.map +1 -0
- package/dist/spec/db/persist.js +66 -0
- package/dist/spec/db/persist.js.map +1 -0
- package/dist/spec/db/relations.d.ts +80 -1
- package/dist/spec/db/relations.d.ts.map +1 -1
- package/dist/spec/db/relations.js +175 -4
- package/dist/spec/db/relations.js.map +1 -1
- package/dist/spec/db/schema.d.ts +4 -0
- package/dist/spec/db/schema.d.ts.map +1 -1
- package/dist/spec/db/schema.js +4 -0
- package/dist/spec/db/schema.js.map +1 -1
- package/dist/spec/db/schema.sql +5 -1
- package/dist/spec/db/spec-node.d.ts +5 -0
- package/dist/spec/db/spec-node.d.ts.map +1 -1
- package/dist/spec/db/spec-node.js +11 -5
- package/dist/spec/db/spec-node.js.map +1 -1
- package/dist/spec/db/sql-utils.d.ts +11 -0
- package/dist/spec/db/sql-utils.d.ts.map +1 -0
- package/dist/spec/db/sql-utils.js +19 -0
- package/dist/spec/db/sql-utils.js.map +1 -0
- package/dist/spec/evolve/cluster-context.d.ts +30 -0
- package/dist/spec/evolve/cluster-context.d.ts.map +1 -0
- package/dist/spec/evolve/cluster-context.js +78 -0
- package/dist/spec/evolve/cluster-context.js.map +1 -0
- package/dist/spec/evolve/commit-spec-analyzer.d.ts +51 -0
- package/dist/spec/evolve/commit-spec-analyzer.d.ts.map +1 -0
- package/dist/spec/evolve/commit-spec-analyzer.js +88 -0
- package/dist/spec/evolve/commit-spec-analyzer.js.map +1 -0
- package/dist/spec/evolve/commit-spec-persister.d.ts +53 -0
- package/dist/spec/evolve/commit-spec-persister.d.ts.map +1 -0
- package/dist/spec/evolve/commit-spec-persister.js +93 -0
- package/dist/spec/evolve/commit-spec-persister.js.map +1 -0
- package/dist/spec/evolve/impact-locator.d.ts +23 -7
- package/dist/spec/evolve/impact-locator.d.ts.map +1 -1
- package/dist/spec/evolve/impact-locator.js +58 -14
- package/dist/spec/evolve/impact-locator.js.map +1 -1
- package/dist/spec/evolve/pipeline.d.ts +62 -25
- package/dist/spec/evolve/pipeline.d.ts.map +1 -1
- package/dist/spec/evolve/pipeline.js +436 -457
- package/dist/spec/evolve/pipeline.js.map +1 -1
- package/dist/spec/evolve/spec-rewriter.d.ts +13 -13
- package/dist/spec/evolve/spec-rewriter.d.ts.map +1 -1
- package/dist/spec/evolve/spec-rewriter.js +45 -45
- package/dist/spec/evolve/spec-rewriter.js.map +1 -1
- package/dist/spec/git/commits.d.ts +85 -0
- package/dist/spec/git/commits.d.ts.map +1 -0
- package/dist/spec/git/commits.js +218 -0
- package/dist/spec/git/commits.js.map +1 -0
- package/dist/spec/git/exec.d.ts +13 -0
- package/dist/spec/git/exec.d.ts.map +1 -0
- package/dist/spec/git/exec.js +19 -0
- package/dist/spec/git/exec.js.map +1 -0
- package/dist/spec/git/index.d.ts +9 -0
- package/dist/spec/git/index.d.ts.map +1 -0
- package/dist/spec/git/index.js +22 -0
- package/dist/spec/git/index.js.map +1 -0
- package/dist/spec/git-utils.d.ts +8 -0
- package/dist/spec/git-utils.d.ts.map +1 -0
- package/dist/spec/git-utils.js +14 -0
- package/dist/spec/git-utils.js.map +1 -0
- package/dist/spec/graph/index.d.ts +8 -0
- package/dist/spec/graph/index.d.ts.map +1 -0
- package/dist/spec/graph/index.js +17 -0
- package/dist/spec/graph/index.js.map +1 -0
- package/dist/spec/graph/queries.d.ts +6 -35
- package/dist/spec/graph/queries.d.ts.map +1 -1
- package/dist/spec/graph/queries.js +71 -248
- package/dist/spec/graph/queries.js.map +1 -1
- package/dist/spec/llm/agent-client.d.ts +59 -0
- package/dist/spec/llm/agent-client.d.ts.map +1 -0
- package/dist/spec/llm/agent-client.js +213 -0
- package/dist/spec/llm/agent-client.js.map +1 -0
- package/dist/spec/llm/agents/claude-code.d.ts +32 -0
- package/dist/spec/llm/agents/claude-code.d.ts.map +1 -0
- package/dist/spec/llm/agents/claude-code.js +125 -0
- package/dist/spec/llm/agents/claude-code.js.map +1 -0
- package/dist/spec/llm/agents/codex.d.ts +32 -0
- package/dist/spec/llm/agents/codex.d.ts.map +1 -0
- package/dist/spec/llm/agents/codex.js +145 -0
- package/dist/spec/llm/agents/codex.js.map +1 -0
- package/dist/spec/llm/agents/detect-utils.d.ts +28 -0
- package/dist/spec/llm/agents/detect-utils.d.ts.map +1 -0
- package/dist/spec/llm/agents/detect-utils.js +91 -0
- package/dist/spec/llm/agents/detect-utils.js.map +1 -0
- package/dist/spec/llm/agents/deveco-code.d.ts +33 -0
- package/dist/spec/llm/agents/deveco-code.d.ts.map +1 -0
- package/dist/spec/llm/agents/deveco-code.js +165 -0
- package/dist/spec/llm/agents/deveco-code.js.map +1 -0
- package/dist/spec/llm/agents/index.d.ts +31 -0
- package/dist/spec/llm/agents/index.d.ts.map +1 -0
- package/dist/spec/llm/agents/index.js +65 -0
- package/dist/spec/llm/agents/index.js.map +1 -0
- package/dist/spec/llm/agents/types.d.ts +76 -0
- package/dist/spec/llm/agents/types.d.ts.map +1 -0
- package/dist/spec/llm/agents/types.js +15 -0
- package/dist/spec/llm/agents/types.js.map +1 -0
- package/dist/spec/llm/client.d.ts +31 -11
- package/dist/spec/llm/client.d.ts.map +1 -1
- package/dist/spec/llm/client.js +143 -81
- package/dist/spec/llm/client.js.map +1 -1
- package/dist/spec/llm/factory.d.ts +41 -0
- package/dist/spec/llm/factory.d.ts.map +1 -0
- package/dist/spec/llm/factory.js +80 -0
- package/dist/spec/llm/factory.js.map +1 -0
- package/dist/spec/llm/prompts.d.ts +24 -8
- package/dist/spec/llm/prompts.d.ts.map +1 -1
- package/dist/spec/llm/prompts.js +100 -50
- package/dist/spec/llm/prompts.js.map +1 -1
- package/dist/spec/llm/retry.d.ts +53 -0
- package/dist/spec/llm/retry.d.ts.map +1 -0
- package/dist/spec/llm/retry.js +153 -0
- package/dist/spec/llm/retry.js.map +1 -0
- package/dist/spec/mine/clusterer.d.ts +63 -0
- package/dist/spec/mine/clusterer.d.ts.map +1 -0
- package/dist/spec/mine/clusterer.js +904 -0
- package/dist/spec/mine/clusterer.js.map +1 -0
- package/dist/spec/mine/clustering/features.d.ts +38 -0
- package/dist/spec/mine/clustering/features.d.ts.map +1 -0
- package/dist/spec/mine/clustering/features.js +108 -0
- package/dist/spec/mine/clustering/features.js.map +1 -0
- package/dist/spec/mine/clustering/index.d.ts +62 -0
- package/dist/spec/mine/clustering/index.d.ts.map +1 -0
- package/dist/spec/mine/clustering/index.js +259 -0
- package/dist/spec/mine/clustering/index.js.map +1 -0
- package/dist/spec/mine/clustering/leiden.d.ts +61 -0
- package/dist/spec/mine/clustering/leiden.d.ts.map +1 -0
- package/dist/spec/mine/clustering/leiden.js +489 -0
- package/dist/spec/mine/clustering/leiden.js.map +1 -0
- package/dist/spec/mine/clustering/text-similarity.d.ts +22 -0
- package/dist/spec/mine/clustering/text-similarity.d.ts.map +1 -0
- package/dist/spec/mine/clustering/text-similarity.js +98 -0
- package/dist/spec/mine/clustering/text-similarity.js.map +1 -0
- package/dist/spec/mine/generator.d.ts +54 -0
- package/dist/spec/mine/generator.d.ts.map +1 -0
- package/dist/spec/mine/generator.js +267 -0
- package/dist/spec/mine/generator.js.map +1 -0
- package/dist/spec/mine/persist.d.ts +37 -0
- package/dist/spec/mine/persist.d.ts.map +1 -0
- package/dist/spec/mine/persist.js +170 -0
- package/dist/spec/mine/persist.js.map +1 -0
- package/dist/spec/mine/pipeline.d.ts +41 -0
- package/dist/spec/mine/pipeline.d.ts.map +1 -0
- package/dist/spec/mine/pipeline.js +236 -0
- package/dist/spec/mine/pipeline.js.map +1 -0
- package/dist/spec/mine/progress-handler.d.ts +22 -0
- package/dist/spec/mine/progress-handler.d.ts.map +1 -0
- package/dist/spec/mine/progress-handler.js +108 -0
- package/dist/spec/mine/progress-handler.js.map +1 -0
- package/dist/spec/mine/progress.d.ts +23 -0
- package/dist/spec/mine/progress.d.ts.map +1 -0
- package/dist/spec/mine/progress.js +12 -0
- package/dist/spec/mine/progress.js.map +1 -0
- package/dist/spec/mine/scanner.d.ts +59 -0
- package/dist/spec/mine/scanner.d.ts.map +1 -0
- package/dist/spec/mine/scanner.js +383 -0
- package/dist/spec/mine/scanner.js.map +1 -0
- package/dist/spec/types.d.ts +32 -0
- package/dist/spec/types.d.ts.map +1 -1
- package/dist/spec/ui/index.d.ts +9 -0
- package/dist/spec/ui/index.d.ts.map +1 -0
- package/dist/spec/ui/index.js +16 -0
- package/dist/spec/ui/index.js.map +1 -0
- package/dist/spec/ui/progress-handler.d.ts +33 -0
- package/dist/spec/ui/progress-handler.d.ts.map +1 -0
- package/dist/spec/ui/progress-handler.js +132 -0
- package/dist/spec/ui/progress-handler.js.map +1 -0
- package/dist/spec/ui/progress.d.ts +24 -0
- package/dist/spec/ui/progress.d.ts.map +1 -0
- package/dist/spec/ui/progress.js +13 -0
- package/dist/spec/ui/progress.js.map +1 -0
- package/dist/spec/utils/fs.d.ts +45 -0
- package/dist/spec/utils/fs.d.ts.map +1 -0
- package/dist/spec/utils/fs.js +163 -0
- package/dist/spec/utils/fs.js.map +1 -0
- package/dist/spec/utils/index.d.ts +12 -0
- package/dist/spec/utils/index.d.ts.map +1 -0
- package/dist/spec/utils/index.js +26 -0
- package/dist/spec/utils/index.js.map +1 -0
- package/dist/spec/utils/meta.d.ts +32 -0
- package/dist/spec/utils/meta.d.ts.map +1 -0
- package/dist/spec/utils/meta.js +122 -0
- package/dist/spec/utils/meta.js.map +1 -0
- package/dist/spec/utils/truncate.d.ts +86 -0
- package/dist/spec/utils/truncate.d.ts.map +1 -0
- package/dist/spec/utils/truncate.js +172 -0
- package/dist/spec/utils/truncate.js.map +1 -0
- package/dist/spec/utils.d.ts +4 -16
- package/dist/spec/utils.d.ts.map +1 -1
- package/dist/spec/utils.js +6 -58
- package/dist/spec/utils.js.map +1 -1
- package/dist/sync/git-hooks.d.ts.map +1 -1
- package/dist/sync/git-hooks.js +2 -0
- package/dist/sync/git-hooks.js.map +1 -1
- package/dist/sync/watcher.d.ts +35 -6
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +127 -17
- package/dist/sync/watcher.js.map +1 -1
- package/dist/sync/worktree.d.ts.map +1 -1
- package/dist/sync/worktree.js +5 -0
- package/dist/sync/worktree.js.map +1 -1
- package/dist/telemetry/index.js +3 -3
- package/dist/telemetry/index.js.map +1 -1
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/upgrade/index.d.ts +32 -0
- package/dist/upgrade/index.d.ts.map +1 -1
- package/dist/upgrade/index.js +162 -14
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/remove-binary.d.ts +87 -0
- package/dist/upgrade/remove-binary.d.ts.map +1 -0
- package/dist/upgrade/remove-binary.js +289 -0
- package/dist/upgrade/remove-binary.js.map +1 -0
- package/dist/upgrade/update-check.d.ts +92 -0
- package/dist/upgrade/update-check.d.ts.map +1 -0
- package/dist/upgrade/update-check.js +258 -0
- package/dist/upgrade/update-check.js.map +1 -0
- package/package.json +6 -2
- package/scripts/agent-eval/run-all.sh +6 -0
- package/scripts/build-bundle.sh +5 -0
- package/scripts/npm-shim.js +8 -1
- package/scripts/exp_boundary_eval/__pycache__/_utils.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/analyze.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/deveco_arm.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_one.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_session.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/setup.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/data/agents.json +0 -109
- package/scripts/exp_boundary_eval/data/experiments.json +0 -140
- package/scripts/qa_eval/README.md +0 -407
- package/scripts/qa_eval/_test_deveco_probe.py +0 -41
- package/scripts/qa_eval/agent_runner.py +0 -526
- package/scripts/qa_eval/data/.gitignore +0 -4
- package/scripts/qa_eval/data/test-set.jsonl +0 -2
- package/scripts/qa_eval/eval_metrics.py +0 -274
- package/scripts/qa_eval/external_agent.py +0 -976
- package/scripts/qa_eval/llm_config.py +0 -92
- package/scripts/qa_eval/memory_monitor.py +0 -132
- package/scripts/qa_eval/my_answer_accuracy.py +0 -187
- package/scripts/qa_eval/requirements.txt +0 -2
- package/scripts/qa_eval/run_pipeline.py +0 -804
- package/scripts/qa_eval/stats_efficiency.py +0 -279
- package/scripts/qa_eval/stats_scores.py +0 -207
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nixExtractor = void 0;
|
|
4
|
+
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
function unwrapVariableExpression(node) {
|
|
6
|
+
if (node.type !== 'variable_expression')
|
|
7
|
+
return node;
|
|
8
|
+
return node.namedChild(0) ?? node;
|
|
9
|
+
}
|
|
10
|
+
function getCalleeName(node, source) {
|
|
11
|
+
let current = node;
|
|
12
|
+
while (current.type === 'apply_expression') {
|
|
13
|
+
const funcNode = current.childForFieldName('function') || current.namedChild(0);
|
|
14
|
+
if (!funcNode)
|
|
15
|
+
break;
|
|
16
|
+
current = funcNode;
|
|
17
|
+
}
|
|
18
|
+
current = unwrapVariableExpression(current);
|
|
19
|
+
if (current.type === 'identifier' || current.type === 'select_expression') {
|
|
20
|
+
return (0, tree_sitter_helpers_1.getNodeText)(current, source).trim();
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function getDirectCalleeName(node, source) {
|
|
25
|
+
let funcNode = node.childForFieldName('function') || node.namedChild(0);
|
|
26
|
+
if (!funcNode)
|
|
27
|
+
return null;
|
|
28
|
+
funcNode = unwrapVariableExpression(funcNode);
|
|
29
|
+
return (0, tree_sitter_helpers_1.getNodeText)(funcNode, source).trim();
|
|
30
|
+
}
|
|
31
|
+
function isStaticProjectPath(value) {
|
|
32
|
+
return ((value.startsWith('./') || value.startsWith('../')) &&
|
|
33
|
+
!/[\s{}()[\];"'<>$]/.test(value));
|
|
34
|
+
}
|
|
35
|
+
function getStaticImportPath(argNode, source) {
|
|
36
|
+
let current = argNode;
|
|
37
|
+
while (current.type === 'parenthesized_expression') {
|
|
38
|
+
const inner = current.namedChild(0);
|
|
39
|
+
if (!inner)
|
|
40
|
+
break;
|
|
41
|
+
current = inner;
|
|
42
|
+
}
|
|
43
|
+
let text = (0, tree_sitter_helpers_1.getNodeText)(current, source).trim();
|
|
44
|
+
if (((text.startsWith('"') && text.endsWith('"')) ||
|
|
45
|
+
(text.startsWith("'") && text.endsWith("'"))) &&
|
|
46
|
+
text.length >= 2) {
|
|
47
|
+
text = text.slice(1, -1);
|
|
48
|
+
}
|
|
49
|
+
return isStaticProjectPath(text) ? text : null;
|
|
50
|
+
}
|
|
51
|
+
function isReturnedAttrsetMember(node) {
|
|
52
|
+
let current = node;
|
|
53
|
+
let seenReturnedAttrset = false;
|
|
54
|
+
while (current) {
|
|
55
|
+
const parent = current.parent;
|
|
56
|
+
if (!parent)
|
|
57
|
+
break;
|
|
58
|
+
if (parent.type === 'let_expression') {
|
|
59
|
+
const bodyNode = parent.childForFieldName('body') || parent.childForFieldName('expression');
|
|
60
|
+
if (!bodyNode || !bodyNode.equals(current))
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (parent.type === 'binding' && !current.equals(node))
|
|
64
|
+
return false;
|
|
65
|
+
if (parent.type === 'formal_parameters' || parent.type === 'formals')
|
|
66
|
+
return false;
|
|
67
|
+
if (parent.type === 'attrset' ||
|
|
68
|
+
parent.type === 'rec_attrset' ||
|
|
69
|
+
parent.type === 'attrset_expression' ||
|
|
70
|
+
parent.type === 'rec_attrset_expression') {
|
|
71
|
+
seenReturnedAttrset = true;
|
|
72
|
+
}
|
|
73
|
+
current = parent;
|
|
74
|
+
}
|
|
75
|
+
return seenReturnedAttrset;
|
|
76
|
+
}
|
|
77
|
+
function getCurriedParamsAndBody(node, source) {
|
|
78
|
+
const params = [];
|
|
79
|
+
let current = node;
|
|
80
|
+
while (current.type === 'function_expression' && current.namedChildCount > 0) {
|
|
81
|
+
const bodyNode = current.namedChild(current.namedChildCount - 1);
|
|
82
|
+
if (!bodyNode)
|
|
83
|
+
break;
|
|
84
|
+
const paramPart = source.substring(current.startIndex, bodyNode.startIndex).trim();
|
|
85
|
+
const paramText = paramPart.endsWith(':') ? paramPart.slice(0, -1).trim() : paramPart;
|
|
86
|
+
if (paramText)
|
|
87
|
+
params.push(paramText);
|
|
88
|
+
if (bodyNode.type === 'function_expression') {
|
|
89
|
+
current = bodyNode;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return { params, bodyNode };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
params,
|
|
97
|
+
bodyNode: current.namedChildCount > 0 ? current.namedChild(current.namedChildCount - 1) : null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function formatFunctionSignature(params) {
|
|
101
|
+
if (params.length === 0)
|
|
102
|
+
return '()';
|
|
103
|
+
if (params.length > 1)
|
|
104
|
+
return params.join(' : ');
|
|
105
|
+
const [param] = params;
|
|
106
|
+
if (!param)
|
|
107
|
+
return '()';
|
|
108
|
+
return param.startsWith('(') || param.includes('{') || param.includes('@') ? param : `(${param})`;
|
|
109
|
+
}
|
|
110
|
+
function inheritedAttrs(node) {
|
|
111
|
+
return node.namedChildren.find((child) => child.type === 'inherited_attrs') ?? null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* `callPackage ./pkg.nix { }` and `pkgs.callPackage ../tools/foo { }` — the
|
|
115
|
+
* nixpkgs auto-wiring idiom — reference a file the same way `import` does.
|
|
116
|
+
*/
|
|
117
|
+
function isCallPackageName(name) {
|
|
118
|
+
return (name === 'callPackage' ||
|
|
119
|
+
name === 'callPackages' ||
|
|
120
|
+
name.endsWith('.callPackage') ||
|
|
121
|
+
name.endsWith('.callPackages'));
|
|
122
|
+
}
|
|
123
|
+
/** Innermost argument of a curried apply chain: `f a b` → `a`. */
|
|
124
|
+
function getFirstApplyArgument(node) {
|
|
125
|
+
let inner = node;
|
|
126
|
+
for (;;) {
|
|
127
|
+
const fn = inner.childForFieldName('function') || inner.namedChild(0);
|
|
128
|
+
if (fn && fn.type === 'apply_expression') {
|
|
129
|
+
inner = fn;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
return inner.childForFieldName('argument') || inner.namedChild(1);
|
|
135
|
+
}
|
|
136
|
+
/** Import node + unresolved `imports` ref for a static project path. */
|
|
137
|
+
function emitFileImport(ctx, importPath, anchorNode, source) {
|
|
138
|
+
const impNode = ctx.createNode('import', importPath, anchorNode, {
|
|
139
|
+
signature: (0, tree_sitter_helpers_1.getNodeText)(anchorNode, source).trim().slice(0, 100),
|
|
140
|
+
});
|
|
141
|
+
if (impNode && ctx.nodeStack.length > 0) {
|
|
142
|
+
const fromNodeId = ctx.nodeStack[ctx.nodeStack.length - 1];
|
|
143
|
+
if (fromNodeId) {
|
|
144
|
+
ctx.addUnresolvedReference({
|
|
145
|
+
fromNodeId,
|
|
146
|
+
referenceName: importPath,
|
|
147
|
+
referenceKind: 'imports',
|
|
148
|
+
line: anchorNode.startPosition.row + 1,
|
|
149
|
+
column: anchorNode.startPosition.column,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.nixExtractor = {
|
|
155
|
+
functionTypes: [],
|
|
156
|
+
classTypes: [],
|
|
157
|
+
methodTypes: [],
|
|
158
|
+
interfaceTypes: [],
|
|
159
|
+
structTypes: [],
|
|
160
|
+
enumTypes: [],
|
|
161
|
+
typeAliasTypes: [],
|
|
162
|
+
importTypes: [],
|
|
163
|
+
callTypes: [],
|
|
164
|
+
variableTypes: [],
|
|
165
|
+
nameField: '',
|
|
166
|
+
bodyField: '',
|
|
167
|
+
paramsField: '',
|
|
168
|
+
visitNode: (node, ctx) => {
|
|
169
|
+
const { source } = ctx;
|
|
170
|
+
if (node.type === 'binding') {
|
|
171
|
+
const attrpath = node.childForFieldName('attrpath') || node.namedChild(0);
|
|
172
|
+
if (!attrpath)
|
|
173
|
+
return false;
|
|
174
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(attrpath, source).trim();
|
|
175
|
+
if (!name)
|
|
176
|
+
return false;
|
|
177
|
+
const valueNode = node.childForFieldName('expression') || node.childForFieldName('value') || node.namedChild(1);
|
|
178
|
+
if (!valueNode)
|
|
179
|
+
return false;
|
|
180
|
+
if (valueNode.type === 'function_expression') {
|
|
181
|
+
const { params, bodyNode } = getCurriedParamsAndBody(valueNode, source);
|
|
182
|
+
const funcNode = ctx.createNode('function', name, node, {
|
|
183
|
+
signature: formatFunctionSignature(params),
|
|
184
|
+
isExported: isReturnedAttrsetMember(node),
|
|
185
|
+
});
|
|
186
|
+
if (funcNode) {
|
|
187
|
+
ctx.pushScope(funcNode.id);
|
|
188
|
+
if (bodyNode)
|
|
189
|
+
ctx.visitNode(bodyNode);
|
|
190
|
+
ctx.popScope();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const initValue = (0, tree_sitter_helpers_1.getNodeText)(valueNode, source).slice(0, 100);
|
|
195
|
+
ctx.createNode('variable', name, node, {
|
|
196
|
+
signature: initValue ? `= ${initValue}${initValue.length >= 100 ? '...' : ''}` : undefined,
|
|
197
|
+
isExported: isReturnedAttrsetMember(node),
|
|
198
|
+
});
|
|
199
|
+
// NixOS/home-manager module lists: `imports = [ ./hardware.nix ../common ]`
|
|
200
|
+
// (and the flake-era `modules = [ ./configuration.nix ]`) reference files
|
|
201
|
+
// without an `import` call. Only literal `path_expression` entries count —
|
|
202
|
+
// variables and interpolations stay dynamic (silent beats wrong).
|
|
203
|
+
const finalSegment = name.split('.').pop();
|
|
204
|
+
if ((finalSegment === 'imports' || finalSegment === 'modules') && valueNode.type === 'list_expression') {
|
|
205
|
+
for (const child of valueNode.namedChildren) {
|
|
206
|
+
if (child.type === 'path_expression') {
|
|
207
|
+
const entryPath = (0, tree_sitter_helpers_1.getNodeText)(child, source).trim();
|
|
208
|
+
if (isStaticProjectPath(entryPath)) {
|
|
209
|
+
emitFileImport(ctx, entryPath, child, source);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
ctx.visitNode(valueNode);
|
|
215
|
+
}
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
if (node.type === 'function_expression') {
|
|
219
|
+
const bodyNode = node.namedChild(node.namedChildCount - 1);
|
|
220
|
+
if (bodyNode)
|
|
221
|
+
ctx.visitNode(bodyNode);
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
if (node.type === 'inherit' || node.type === 'inherit_from') {
|
|
225
|
+
const attrs = inheritedAttrs(node);
|
|
226
|
+
if (attrs) {
|
|
227
|
+
for (const child of attrs.namedChildren) {
|
|
228
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(child, source).trim();
|
|
229
|
+
if (name) {
|
|
230
|
+
ctx.createNode('variable', name, child, {
|
|
231
|
+
isExported: isReturnedAttrsetMember(child),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
for (const child of node.namedChildren) {
|
|
237
|
+
if (child.type !== 'inherited_attrs')
|
|
238
|
+
ctx.visitNode(child);
|
|
239
|
+
}
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
if (node.type === 'apply_expression') {
|
|
243
|
+
const directCallee = getDirectCalleeName(node, source);
|
|
244
|
+
const isDirectImport = directCallee === 'import' || directCallee === 'builtins.import';
|
|
245
|
+
// Wrapper objects are re-created per access, so compare with .equals(),
|
|
246
|
+
// never === — otherwise every level of a curried chain (`f a b`)
|
|
247
|
+
// re-emits the same refs.
|
|
248
|
+
const parentFn = node.parent?.type === 'apply_expression'
|
|
249
|
+
? (node.parent.childForFieldName('function') ?? node.parent.namedChild(0))
|
|
250
|
+
: null;
|
|
251
|
+
const isCalleeOfParent = parentFn ? parentFn.equals(node) : false;
|
|
252
|
+
if (!(isCalleeOfParent && !isDirectImport)) {
|
|
253
|
+
if (isDirectImport) {
|
|
254
|
+
const argNode = node.childForFieldName('argument') || node.namedChild(1);
|
|
255
|
+
const importPath = argNode ? getStaticImportPath(argNode, source) : null;
|
|
256
|
+
if (importPath) {
|
|
257
|
+
emitFileImport(ctx, importPath, node, source);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
const calleeName = getCalleeName(node, source);
|
|
262
|
+
if (calleeName && calleeName !== 'import' && calleeName !== 'builtins.import' && ctx.nodeStack.length > 0) {
|
|
263
|
+
const fromNodeId = ctx.nodeStack[ctx.nodeStack.length - 1];
|
|
264
|
+
if (fromNodeId) {
|
|
265
|
+
ctx.addUnresolvedReference({
|
|
266
|
+
fromNodeId,
|
|
267
|
+
referenceName: calleeName,
|
|
268
|
+
referenceKind: 'calls',
|
|
269
|
+
line: node.startPosition.row + 1,
|
|
270
|
+
column: node.startPosition.column,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// `callPackage ./pkg.nix { }` loads the file like `import` does; the
|
|
275
|
+
// first argument of the apply chain is the package file. Only a
|
|
276
|
+
// literal static path counts (`callPackage pkgPath { }` stays dynamic).
|
|
277
|
+
if (calleeName && isCallPackageName(calleeName)) {
|
|
278
|
+
const firstArg = getFirstApplyArgument(node);
|
|
279
|
+
const importPath = firstArg ? getStaticImportPath(firstArg, source) : null;
|
|
280
|
+
if (importPath) {
|
|
281
|
+
emitFileImport(ctx, importPath, node, source);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
for (const child of node.namedChildren) {
|
|
287
|
+
ctx.visitNode(child);
|
|
288
|
+
}
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
return false;
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
//# sourceMappingURL=nix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nix.js","sourceRoot":"","sources":["../../../src/extraction/languages/nix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/solidity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsD9D,eAAO,MAAM,iBAAiB,EAAE,iBAiO/B,CAAC"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.solidityExtractor = void 0;
|
|
4
|
+
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Solidity extractor — tree-sitter-solidity (ABI 14).
|
|
7
|
+
*
|
|
8
|
+
* Solidity has multiple top-level "contract-like" containers (contract /
|
|
9
|
+
* interface / library) and several callable forms that don't have a `name:`
|
|
10
|
+
* field (constructor, fallback, receive). We map:
|
|
11
|
+
* - contract_declaration → class (also library_declaration)
|
|
12
|
+
* - interface_declaration → interface
|
|
13
|
+
* - struct_declaration → struct
|
|
14
|
+
* - enum_declaration → enum (enum_value is the bare ident — no
|
|
15
|
+
* name field, so handled in visitNode)
|
|
16
|
+
* - function_definition / modifier_definition → function|method
|
|
17
|
+
* - constructor_definition / fallback_receive_definition → method (synthetic
|
|
18
|
+
* name: "constructor" / "fallback" / "receive" — these are nameless in AST)
|
|
19
|
+
* - state_variable_declaration / struct_member → field (inside contract/struct)
|
|
20
|
+
* - event_definition / error_declaration → field-shaped node carrying
|
|
21
|
+
* the event/error name so callers/refs can resolve emit X / revert X
|
|
22
|
+
* - import_directive → import
|
|
23
|
+
* - call_expression / emit_statement / revert_statement / modifier_invocation
|
|
24
|
+
* → calls (the latter three are call-shaped but use distinct AST nodes)
|
|
25
|
+
*/
|
|
26
|
+
function getInheritanceAncestors(node, source) {
|
|
27
|
+
const ancestors = [];
|
|
28
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
29
|
+
const child = node.namedChild(i);
|
|
30
|
+
if (!child || child.type !== 'inheritance_specifier')
|
|
31
|
+
continue;
|
|
32
|
+
const ancestor = (0, tree_sitter_helpers_1.getChildByField)(child, 'ancestor');
|
|
33
|
+
if (!ancestor)
|
|
34
|
+
continue;
|
|
35
|
+
// ancestor is user_defined_type → contains identifier (or scoped path)
|
|
36
|
+
const id = ancestor.descendantsOfType('identifier');
|
|
37
|
+
if (id.length > 0) {
|
|
38
|
+
const last = id[id.length - 1];
|
|
39
|
+
ancestors.push((0, tree_sitter_helpers_1.getNodeText)(last, source));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return ancestors;
|
|
43
|
+
}
|
|
44
|
+
function fallbackReceiveName(node) {
|
|
45
|
+
// tree-sitter-solidity reuses one node type for both `fallback() ...` and
|
|
46
|
+
// `receive() ...` — the keyword is an unnamed/anonymous child. Walk all
|
|
47
|
+
// children (named + unnamed) and pick the first whose text is one of these.
|
|
48
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
49
|
+
const child = node.child(i);
|
|
50
|
+
if (!child)
|
|
51
|
+
continue;
|
|
52
|
+
const t = child.text;
|
|
53
|
+
if (t === 'fallback' || t === 'receive')
|
|
54
|
+
return t;
|
|
55
|
+
}
|
|
56
|
+
return 'fallback';
|
|
57
|
+
}
|
|
58
|
+
exports.solidityExtractor = {
|
|
59
|
+
// Free functions (file-level) AND methods inside contracts use the same
|
|
60
|
+
// function_definition node — the dispatcher routes by isInsideClassLikeNode.
|
|
61
|
+
functionTypes: ['function_definition', 'modifier_definition'],
|
|
62
|
+
classTypes: ['contract_declaration', 'library_declaration'],
|
|
63
|
+
methodTypes: [
|
|
64
|
+
'function_definition',
|
|
65
|
+
'modifier_definition',
|
|
66
|
+
'constructor_definition',
|
|
67
|
+
'fallback_receive_definition',
|
|
68
|
+
],
|
|
69
|
+
interfaceTypes: ['interface_declaration'],
|
|
70
|
+
structTypes: ['struct_declaration'],
|
|
71
|
+
enumTypes: ['enum_declaration'],
|
|
72
|
+
enumMemberTypes: [], // enum_value has no name field; handled in visitNode
|
|
73
|
+
typeAliasTypes: ['user_defined_type_definition'],
|
|
74
|
+
importTypes: ['import_directive'],
|
|
75
|
+
// emit / revert / modifier_invocation are call-shaped but distinct AST nodes
|
|
76
|
+
callTypes: ['call_expression', 'emit_statement', 'revert_statement', 'modifier_invocation'],
|
|
77
|
+
// top-level state vars are file-scope constants/variables; struct_member
|
|
78
|
+
// and state_variable_declaration inside a contract are fields (handled via
|
|
79
|
+
// fieldTypes + isInsideClassLikeNode).
|
|
80
|
+
variableTypes: ['state_variable_declaration', 'constant_variable_declaration'],
|
|
81
|
+
fieldTypes: ['state_variable_declaration', 'struct_member'],
|
|
82
|
+
nameField: 'name',
|
|
83
|
+
bodyField: 'body',
|
|
84
|
+
paramsField: 'parameters',
|
|
85
|
+
returnField: 'return_type',
|
|
86
|
+
// constructor / fallback / receive have no `name:` field — synthesize one.
|
|
87
|
+
resolveName: (node, _source) => {
|
|
88
|
+
if (node.type === 'constructor_definition')
|
|
89
|
+
return 'constructor';
|
|
90
|
+
if (node.type === 'fallback_receive_definition')
|
|
91
|
+
return fallbackReceiveName(node);
|
|
92
|
+
return undefined;
|
|
93
|
+
},
|
|
94
|
+
getSignature: (node, source) => {
|
|
95
|
+
// tree-sitter-solidity does NOT wrap params in a `parameters:` field — each
|
|
96
|
+
// `parameter` node is a direct child of function/modifier/constructor. We
|
|
97
|
+
// reconstruct `(t1 a, t2 b)` by walking those siblings; getChildByField
|
|
98
|
+
// would return null and lose the entire param list.
|
|
99
|
+
const params = [];
|
|
100
|
+
let returnType;
|
|
101
|
+
let visibility;
|
|
102
|
+
let mutability;
|
|
103
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
104
|
+
const child = node.namedChild(i);
|
|
105
|
+
if (!child)
|
|
106
|
+
continue;
|
|
107
|
+
const fieldName = node.fieldNameForNamedChild(i);
|
|
108
|
+
if (child.type === 'parameter' && fieldName !== 'return_type') {
|
|
109
|
+
params.push((0, tree_sitter_helpers_1.getNodeText)(child, source));
|
|
110
|
+
}
|
|
111
|
+
else if (child.type === 'return_type_definition' || fieldName === 'return_type') {
|
|
112
|
+
returnType = child;
|
|
113
|
+
}
|
|
114
|
+
else if (child.type === 'visibility') {
|
|
115
|
+
visibility = child;
|
|
116
|
+
}
|
|
117
|
+
else if (child.type === 'state_mutability') {
|
|
118
|
+
mutability = child;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const parts = [];
|
|
122
|
+
parts.push(`(${params.join(', ')})`);
|
|
123
|
+
if (visibility)
|
|
124
|
+
parts.push((0, tree_sitter_helpers_1.getNodeText)(visibility, source));
|
|
125
|
+
if (mutability)
|
|
126
|
+
parts.push((0, tree_sitter_helpers_1.getNodeText)(mutability, source));
|
|
127
|
+
if (returnType)
|
|
128
|
+
parts.push((0, tree_sitter_helpers_1.getNodeText)(returnType, source));
|
|
129
|
+
return parts.join(' ');
|
|
130
|
+
},
|
|
131
|
+
getVisibility: (node) => {
|
|
132
|
+
// Solidity functions: public/private/internal/external — `external` maps
|
|
133
|
+
// to 'public' for our purposes (callable from outside the contract).
|
|
134
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
135
|
+
const child = node.namedChild(i);
|
|
136
|
+
if (child?.type !== 'visibility')
|
|
137
|
+
continue;
|
|
138
|
+
const t = child.text.trim();
|
|
139
|
+
if (t === 'public' || t === 'external')
|
|
140
|
+
return 'public';
|
|
141
|
+
if (t === 'private')
|
|
142
|
+
return 'private';
|
|
143
|
+
if (t === 'internal')
|
|
144
|
+
return 'internal';
|
|
145
|
+
}
|
|
146
|
+
return undefined;
|
|
147
|
+
},
|
|
148
|
+
// `constant_variable_declaration` is by definition a constant; the generic
|
|
149
|
+
// variable extractor defaults to kind:'variable' otherwise.
|
|
150
|
+
isConst: (node) => node.type === 'constant_variable_declaration',
|
|
151
|
+
visitNode: (node, ctx) => {
|
|
152
|
+
const t = node.type;
|
|
153
|
+
// Solidity inheritance: `contract MyToken is Token, IERC20 { ... }`. The
|
|
154
|
+
// core's extractInheritance walks for `extends_clause`/`base_class_clause`
|
|
155
|
+
// shaped children, which Solidity doesn't have — its `inheritance_specifier`
|
|
156
|
+
// children are direct siblings of the `body:` field. We piggyback on the
|
|
157
|
+
// standard contract/library/interface dispatch (which fires AFTER this
|
|
158
|
+
// hook returns false) by emitting the extends references here, then
|
|
159
|
+
// returning false so the generic class extractor still creates the node.
|
|
160
|
+
// Each ancestor → one `extends` reference; the resolver then upgrades it
|
|
161
|
+
// to a real edge. Without these refs, "what inherits from Ownable" /
|
|
162
|
+
// "trace inherited onlyOwner" can't traverse the contract graph and the
|
|
163
|
+
// agent has to Read each file to reconstruct the hierarchy.
|
|
164
|
+
if (t === 'contract_declaration' ||
|
|
165
|
+
t === 'library_declaration' ||
|
|
166
|
+
t === 'interface_declaration') {
|
|
167
|
+
// Mirror the generic class path — create the node (the extends refs
|
|
168
|
+
// need its id), emit the refs, walk the body — then return true to
|
|
169
|
+
// short-circuit the generic dispatch so nothing is doubled.
|
|
170
|
+
const ancestors = getInheritanceAncestors(node, ctx.source);
|
|
171
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'name');
|
|
172
|
+
const body = (0, tree_sitter_helpers_1.getChildByField)(node, 'body');
|
|
173
|
+
if (!nameNode)
|
|
174
|
+
return false;
|
|
175
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, ctx.source);
|
|
176
|
+
const kind = t === 'interface_declaration' ? 'interface' : 'class';
|
|
177
|
+
const created = ctx.createNode(kind, name, node);
|
|
178
|
+
if (!created)
|
|
179
|
+
return true;
|
|
180
|
+
// Solidity uses one keyword (`is`) for both class-extends-class and
|
|
181
|
+
// class-implements-interface, indistinguishable at parse time. Emit
|
|
182
|
+
// `extends` for every ancestor — the resolver's interface-impl synthesizer
|
|
183
|
+
// (Phase 5.5) reclassifies a class→interface edge as `implements` based
|
|
184
|
+
// on the target node kind, matching how Java/C# extractors do it.
|
|
185
|
+
for (const ancestor of ancestors) {
|
|
186
|
+
ctx.addUnresolvedReference({
|
|
187
|
+
fromNodeId: created.id,
|
|
188
|
+
referenceName: ancestor,
|
|
189
|
+
referenceKind: 'extends',
|
|
190
|
+
line: node.startPosition.row + 1,
|
|
191
|
+
column: node.startPosition.column,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
ctx.pushScope(created.id);
|
|
195
|
+
if (body) {
|
|
196
|
+
for (let i = 0; i < body.namedChildCount; i++) {
|
|
197
|
+
const child = body.namedChild(i);
|
|
198
|
+
if (child)
|
|
199
|
+
ctx.visitNode(child);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
ctx.popScope();
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
// tree-sitter-solidity puts struct_member / enum_value as DIRECT children
|
|
206
|
+
// of struct_declaration / enum_declaration — there is no `body:` field, so
|
|
207
|
+
// the core's extractStruct/extractEnum (which require a body field) bails.
|
|
208
|
+
// We extract these here, push the parent on the scope stack, walk the
|
|
209
|
+
// direct children, and emit one struct/enum node + its members.
|
|
210
|
+
if (t === 'struct_declaration' || t === 'enum_declaration') {
|
|
211
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'name');
|
|
212
|
+
if (!nameNode)
|
|
213
|
+
return true;
|
|
214
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, ctx.source);
|
|
215
|
+
const kind = t === 'struct_declaration' ? 'struct' : 'enum';
|
|
216
|
+
const created = ctx.createNode(kind, name, node);
|
|
217
|
+
if (!created)
|
|
218
|
+
return true;
|
|
219
|
+
ctx.pushScope(created.id);
|
|
220
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
221
|
+
const child = node.namedChild(i);
|
|
222
|
+
if (!child)
|
|
223
|
+
continue;
|
|
224
|
+
if (child === nameNode)
|
|
225
|
+
continue;
|
|
226
|
+
ctx.visitNode(child);
|
|
227
|
+
}
|
|
228
|
+
ctx.popScope();
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
// enum_value is the bare identifier of an enum case — no `name:` field, so
|
|
232
|
+
// the generic enum-member dispatch can't find it. Use the node's own text.
|
|
233
|
+
if (t === 'enum_value') {
|
|
234
|
+
ctx.createNode('enum_member', (0, tree_sitter_helpers_1.getNodeText)(node, ctx.source), node);
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
// event SomeEvent(...) — preserve event name as a field-shaped node so
|
|
238
|
+
// `emit SomeEvent(...)` (an emit_statement) can resolve to it. We use
|
|
239
|
+
// `field` kind because Solidity events are member declarations of a
|
|
240
|
+
// contract, similar in spirit to fields, and `field` reuses the FTS index
|
|
241
|
+
// without adding a new NodeKind.
|
|
242
|
+
if (t === 'event_definition') {
|
|
243
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'name');
|
|
244
|
+
if (!nameNode)
|
|
245
|
+
return true;
|
|
246
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, ctx.source);
|
|
247
|
+
ctx.createNode('field', name, node, {
|
|
248
|
+
signature: (0, tree_sitter_helpers_1.getNodeText)(node, ctx.source).trim().slice(0, 200),
|
|
249
|
+
});
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
// error MyError(...) — same reasoning as event_definition. revert MyError()
|
|
253
|
+
// (a revert_statement) is captured via callTypes and resolves by name.
|
|
254
|
+
if (t === 'error_declaration') {
|
|
255
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'name');
|
|
256
|
+
if (!nameNode)
|
|
257
|
+
return true;
|
|
258
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, ctx.source);
|
|
259
|
+
ctx.createNode('field', name, node, {
|
|
260
|
+
signature: (0, tree_sitter_helpers_1.getNodeText)(node, ctx.source).trim().slice(0, 200),
|
|
261
|
+
});
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
// struct_member: named field inside a struct. It has `name:` + `type:` —
|
|
265
|
+
// the generic field dispatch handles it via fieldTypes, so no custom code.
|
|
266
|
+
return false;
|
|
267
|
+
},
|
|
268
|
+
// import "X"; / import {A, B} from "X"; / import * as X from "Y";
|
|
269
|
+
// We surface the SOURCE path as the moduleName — that's what
|
|
270
|
+
// import-resolver matches against on disk. The `import_name:` field (if
|
|
271
|
+
// present, for the symbolic-import form) is intentionally ignored here; the
|
|
272
|
+
// SOURCE is the file being imported from.
|
|
273
|
+
extractImport: (node, source) => {
|
|
274
|
+
const importText = source.substring(node.startIndex, node.endIndex).trim();
|
|
275
|
+
const sourceField = (0, tree_sitter_helpers_1.getChildByField)(node, 'source');
|
|
276
|
+
if (!sourceField)
|
|
277
|
+
return null;
|
|
278
|
+
// source is a `string` node — strip quotes via descendantsOfType lookup.
|
|
279
|
+
const stringContent = sourceField.descendantsOfType('string_literal');
|
|
280
|
+
let moduleName;
|
|
281
|
+
if (stringContent.length > 0) {
|
|
282
|
+
moduleName = (0, tree_sitter_helpers_1.getNodeText)(stringContent[0], source);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
moduleName = (0, tree_sitter_helpers_1.getNodeText)(sourceField, source);
|
|
286
|
+
}
|
|
287
|
+
moduleName = moduleName.replace(/^["']|["']$/g, '').trim();
|
|
288
|
+
if (!moduleName)
|
|
289
|
+
return null;
|
|
290
|
+
return { moduleName, signature: importText };
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
//# sourceMappingURL=solidity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../src/extraction/languages/solidity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/terraform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsL9D,eAAO,MAAM,kBAAkB,EAAE,iBAiJhC,CAAC"}
|