@vpxa/kb 0.1.13 → 0.1.16
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 +65 -12
- package/package.json +14 -7
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +17 -21
- package/packages/analyzers/dist/blast-radius-analyzer.js +5 -12
- package/packages/analyzers/dist/dependency-analyzer.d.ts +31 -28
- package/packages/analyzers/dist/dependency-analyzer.js +6 -9
- package/packages/analyzers/dist/diagram-generator.d.ts +12 -9
- package/packages/analyzers/dist/diagram-generator.js +2 -4
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +39 -36
- package/packages/analyzers/dist/entry-point-analyzer.js +4 -6
- package/packages/analyzers/dist/index.d.ts +12 -14
- package/packages/analyzers/dist/index.js +1 -1
- package/packages/analyzers/dist/knowledge-producer.d.ts +34 -26
- package/packages/analyzers/dist/knowledge-producer.js +17 -15
- package/packages/analyzers/dist/pattern-analyzer.d.ts +14 -11
- package/packages/analyzers/dist/pattern-analyzer.js +2 -5
- package/packages/analyzers/dist/regex-call-graph.d.ts +6 -13
- package/packages/analyzers/dist/regex-call-graph.js +1 -1
- package/packages/analyzers/dist/structure-analyzer.d.ts +13 -10
- package/packages/analyzers/dist/structure-analyzer.js +2 -4
- package/packages/analyzers/dist/symbol-analyzer.d.ts +13 -9
- package/packages/analyzers/dist/symbol-analyzer.js +9 -13
- package/packages/analyzers/dist/ts-call-graph.d.ts +16 -14
- package/packages/analyzers/dist/ts-call-graph.js +1 -1
- package/packages/analyzers/dist/types.d.ts +82 -80
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +15 -12
- package/packages/chunker/dist/call-graph-extractor.js +1 -1
- package/packages/chunker/dist/chunker-factory.d.ts +16 -4
- package/packages/chunker/dist/chunker-factory.js +1 -1
- package/packages/chunker/dist/chunker.interface.d.ts +8 -5
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +16 -13
- package/packages/chunker/dist/code-chunker.js +11 -14
- package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
- package/packages/chunker/dist/extractors/call-extractor.js +1 -0
- package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
- package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/import-extractor.js +1 -0
- package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
- package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
- package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
- package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/symbol-extractor.js +1 -0
- package/packages/chunker/dist/extractors/types.d.ts +36 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +14 -11
- package/packages/chunker/dist/generic-chunker.js +5 -5
- package/packages/chunker/dist/index.d.ts +19 -8
- package/packages/chunker/dist/index.js +1 -1
- package/packages/chunker/dist/markdown-chunker.d.ts +16 -13
- package/packages/chunker/dist/markdown-chunker.js +3 -10
- package/packages/chunker/dist/wasm/languages.d.ts +18 -0
- package/packages/chunker/dist/wasm/languages.js +1 -0
- package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
- package/packages/chunker/dist/wasm/query-executor.js +1 -0
- package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
- package/packages/chunker/dist/wasm/runtime.js +1 -0
- package/packages/chunker/dist/wasm/types.d.ts +84 -0
- package/packages/chunker/dist/wasm/types.js +1 -0
- package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
- package/packages/chunker/dist/wasm-chunker.js +6 -0
- package/packages/chunker/src/queries/go/calls.scm +11 -0
- package/packages/chunker/src/queries/go/entry-points.scm +20 -0
- package/packages/chunker/src/queries/go/imports.scm +6 -0
- package/packages/chunker/src/queries/go/patterns.scm +25 -0
- package/packages/chunker/src/queries/go/symbols.scm +26 -0
- package/packages/chunker/src/queries/java/calls.scm +10 -0
- package/packages/chunker/src/queries/java/entry-points.scm +27 -0
- package/packages/chunker/src/queries/java/imports.scm +11 -0
- package/packages/chunker/src/queries/java/patterns.scm +27 -0
- package/packages/chunker/src/queries/java/symbols.scm +28 -0
- package/packages/chunker/src/queries/javascript/calls.scm +21 -0
- package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
- package/packages/chunker/src/queries/javascript/imports.scm +32 -0
- package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
- package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
- package/packages/chunker/src/queries/python/calls.scm +11 -0
- package/packages/chunker/src/queries/python/entry-points.scm +21 -0
- package/packages/chunker/src/queries/python/imports.scm +14 -0
- package/packages/chunker/src/queries/python/patterns.scm +25 -0
- package/packages/chunker/src/queries/python/symbols.scm +17 -0
- package/packages/chunker/src/queries/rust/calls.scm +20 -0
- package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
- package/packages/chunker/src/queries/rust/imports.scm +26 -0
- package/packages/chunker/src/queries/rust/patterns.scm +18 -0
- package/packages/chunker/src/queries/rust/symbols.scm +73 -0
- package/packages/chunker/src/queries/typescript/calls.scm +21 -0
- package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
- package/packages/chunker/src/queries/typescript/imports.scm +35 -0
- package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
- package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
- package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter.wasm +0 -0
- package/packages/cli/dist/commands/analyze.d.ts +6 -3
- package/packages/cli/dist/commands/analyze.js +2 -3
- package/packages/cli/dist/commands/context-cmds.d.ts +6 -3
- package/packages/cli/dist/commands/context-cmds.js +1 -1
- package/packages/cli/dist/commands/environment.d.ts +6 -3
- package/packages/cli/dist/commands/environment.js +1 -2
- package/packages/cli/dist/commands/execution.d.ts +6 -3
- package/packages/cli/dist/commands/execution.js +1 -1
- package/packages/cli/dist/commands/graph.d.ts +6 -3
- package/packages/cli/dist/commands/graph.js +5 -6
- package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
- package/packages/cli/dist/commands/init/adapters.js +1 -0
- package/packages/cli/dist/commands/init/config.d.ts +10 -0
- package/packages/cli/dist/commands/init/config.js +3 -0
- package/packages/cli/dist/commands/init/constants.d.ts +18 -0
- package/packages/cli/dist/commands/init/constants.js +1 -0
- package/packages/cli/dist/commands/init/curated.d.ts +7 -0
- package/packages/cli/dist/commands/init/curated.js +1 -0
- package/packages/cli/dist/commands/init/global.d.ts +34 -0
- package/packages/cli/dist/commands/init/global.js +5 -0
- package/packages/cli/dist/commands/init/index.d.ts +28 -0
- package/packages/cli/dist/commands/init/index.js +5 -0
- package/packages/cli/dist/commands/init/scaffold.d.ts +23 -0
- package/packages/cli/dist/commands/init/scaffold.js +1 -0
- package/packages/cli/dist/commands/init/templates.d.ts +9 -0
- package/packages/cli/dist/commands/init/templates.js +165 -0
- package/packages/cli/dist/commands/knowledge.d.ts +6 -3
- package/packages/cli/dist/commands/knowledge.js +1 -1
- package/packages/cli/dist/commands/search.d.ts +6 -3
- package/packages/cli/dist/commands/search.js +1 -8
- package/packages/cli/dist/commands/system.d.ts +6 -3
- package/packages/cli/dist/commands/system.js +4 -7
- package/packages/cli/dist/commands/workspace.d.ts +6 -3
- package/packages/cli/dist/commands/workspace.js +1 -2
- package/packages/cli/dist/context.d.ts +7 -5
- package/packages/cli/dist/context.js +1 -1
- package/packages/cli/dist/helpers.d.ts +51 -48
- package/packages/cli/dist/helpers.js +5 -5
- package/packages/cli/dist/index.d.ts +4 -2
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/dist/kb-init.d.ts +48 -51
- package/packages/cli/dist/kb-init.js +1 -1
- package/packages/cli/dist/types.d.ts +8 -6
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +58 -34
- package/packages/core/dist/constants.js +1 -1
- package/packages/core/dist/content-detector.d.ts +8 -8
- package/packages/core/dist/content-detector.js +1 -1
- package/packages/core/dist/errors.d.ts +15 -13
- package/packages/core/dist/errors.js +1 -1
- package/packages/core/dist/global-registry.d.ts +62 -0
- package/packages/core/dist/global-registry.js +1 -0
- package/packages/core/dist/index.d.ts +7 -6
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/logger.d.ts +19 -8
- package/packages/core/dist/logger.js +1 -1
- package/packages/core/dist/types.d.ts +107 -92
- package/packages/core/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +22 -20
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -3
- package/packages/embeddings/dist/index.js +1 -1
- package/packages/embeddings/dist/onnx-embedder.d.ts +21 -23
- package/packages/embeddings/dist/onnx-embedder.js +1 -1
- package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
- package/packages/enterprise-bridge/dist/cache.js +1 -0
- package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
- package/packages/enterprise-bridge/dist/er-client.js +1 -0
- package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
- package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
- package/packages/enterprise-bridge/dist/index.d.ts +8 -0
- package/packages/enterprise-bridge/dist/index.js +1 -0
- package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
- package/packages/enterprise-bridge/dist/policy-store.js +1 -0
- package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
- package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
- package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
- package/packages/enterprise-bridge/dist/result-merger.js +1 -0
- package/packages/enterprise-bridge/dist/types.d.ts +81 -0
- package/packages/enterprise-bridge/dist/types.js +1 -0
- package/packages/indexer/dist/file-hasher.d.ts +5 -3
- package/packages/indexer/dist/file-hasher.js +1 -1
- package/packages/indexer/dist/filesystem-crawler.d.ts +23 -21
- package/packages/indexer/dist/filesystem-crawler.js +1 -1
- package/packages/indexer/dist/graph-extractor.d.ts +9 -13
- package/packages/indexer/dist/graph-extractor.js +1 -1
- package/packages/indexer/dist/incremental-indexer.d.ts +49 -44
- package/packages/indexer/dist/incremental-indexer.js +1 -1
- package/packages/indexer/dist/index.d.ts +5 -5
- package/packages/indexer/dist/index.js +1 -1
- package/packages/server/dist/api.d.ts +3 -8
- package/packages/server/dist/api.js +1 -1
- package/packages/server/dist/config.d.ts +6 -3
- package/packages/server/dist/config.js +1 -1
- package/packages/server/dist/cross-workspace.d.ts +43 -0
- package/packages/server/dist/cross-workspace.js +1 -0
- package/packages/server/dist/curated-manager.d.ts +80 -78
- package/packages/server/dist/curated-manager.js +5 -10
- package/packages/server/dist/index.d.ts +1 -2
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/replay-interceptor.d.ts +6 -7
- package/packages/server/dist/replay-interceptor.js +1 -1
- package/packages/server/dist/resources/resources.d.ts +7 -4
- package/packages/server/dist/resources/resources.js +2 -2
- package/packages/server/dist/server.d.ts +37 -25
- package/packages/server/dist/server.js +1 -1
- package/packages/server/dist/tools/analyze.tools.d.ts +14 -11
- package/packages/server/dist/tools/analyze.tools.js +1 -3
- package/packages/server/dist/tools/audit.tool.d.ts +8 -5
- package/packages/server/dist/tools/audit.tool.js +1 -4
- package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
- package/packages/server/dist/tools/bridge.tools.js +15 -0
- package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
- package/packages/server/dist/tools/evolution.tools.js +5 -0
- package/packages/server/dist/tools/forge.tools.d.ts +13 -12
- package/packages/server/dist/tools/forge.tools.js +10 -13
- package/packages/server/dist/tools/forget.tool.d.ts +7 -4
- package/packages/server/dist/tools/forget.tool.js +1 -7
- package/packages/server/dist/tools/graph.tool.d.ts +7 -4
- package/packages/server/dist/tools/graph.tool.js +4 -5
- package/packages/server/dist/tools/list.tool.d.ts +7 -4
- package/packages/server/dist/tools/list.tool.js +2 -8
- package/packages/server/dist/tools/lookup.tool.d.ts +7 -4
- package/packages/server/dist/tools/lookup.tool.js +2 -9
- package/packages/server/dist/tools/onboard.tool.d.ts +8 -5
- package/packages/server/dist/tools/onboard.tool.js +2 -2
- package/packages/server/dist/tools/policy.tools.d.ts +7 -0
- package/packages/server/dist/tools/policy.tools.js +2 -0
- package/packages/server/dist/tools/produce.tool.d.ts +6 -3
- package/packages/server/dist/tools/produce.tool.js +2 -2
- package/packages/server/dist/tools/read.tool.d.ts +7 -4
- package/packages/server/dist/tools/read.tool.js +2 -6
- package/packages/server/dist/tools/reindex.tool.d.ts +10 -7
- package/packages/server/dist/tools/reindex.tool.js +3 -2
- package/packages/server/dist/tools/remember.tool.d.ts +8 -4
- package/packages/server/dist/tools/remember.tool.js +3 -5
- package/packages/server/dist/tools/replay.tool.d.ts +6 -3
- package/packages/server/dist/tools/replay.tool.js +2 -6
- package/packages/server/dist/tools/search.tool.d.ts +10 -5
- package/packages/server/dist/tools/search.tool.js +6 -22
- package/packages/server/dist/tools/status.tool.d.ts +12 -4
- package/packages/server/dist/tools/status.tool.js +2 -3
- package/packages/server/dist/tools/toolkit.tools.d.ts +36 -35
- package/packages/server/dist/tools/toolkit.tools.js +20 -24
- package/packages/server/dist/tools/update.tool.d.ts +7 -4
- package/packages/server/dist/tools/update.tool.js +1 -6
- package/packages/server/dist/tools/utility.tools.d.ts +15 -15
- package/packages/server/dist/tools/utility.tools.js +10 -23
- package/packages/server/dist/version-check.d.ts +5 -2
- package/packages/server/dist/version-check.js +1 -1
- package/packages/store/dist/graph-store.interface.d.ts +89 -87
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -6
- package/packages/store/dist/index.js +1 -1
- package/packages/store/dist/lance-store.d.ts +37 -31
- package/packages/store/dist/lance-store.js +1 -1
- package/packages/store/dist/sqlite-graph-store.d.ts +43 -47
- package/packages/store/dist/sqlite-graph-store.js +13 -13
- package/packages/store/dist/store-factory.d.ts +11 -8
- package/packages/store/dist/store-factory.js +1 -1
- package/packages/store/dist/store.interface.d.ts +47 -47
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/audit.d.ts +61 -62
- package/packages/tools/dist/audit.js +4 -5
- package/packages/tools/dist/batch.d.ts +20 -18
- package/packages/tools/dist/batch.js +1 -1
- package/packages/tools/dist/changelog.d.ts +29 -27
- package/packages/tools/dist/changelog.js +2 -2
- package/packages/tools/dist/check.d.ts +42 -39
- package/packages/tools/dist/check.js +2 -2
- package/packages/tools/dist/checkpoint.d.ts +17 -15
- package/packages/tools/dist/checkpoint.js +1 -2
- package/packages/tools/dist/codemod.d.ts +35 -33
- package/packages/tools/dist/codemod.js +2 -2
- package/packages/tools/dist/compact.d.ts +34 -38
- package/packages/tools/dist/compact.js +2 -2
- package/packages/tools/dist/data-transform.d.ts +10 -8
- package/packages/tools/dist/data-transform.js +1 -1
- package/packages/tools/dist/dead-symbols.d.ts +29 -26
- package/packages/tools/dist/dead-symbols.js +2 -2
- package/packages/tools/dist/delegate.d.ts +26 -24
- package/packages/tools/dist/delegate.js +1 -5
- package/packages/tools/dist/diff-parse.d.ts +24 -22
- package/packages/tools/dist/diff-parse.js +3 -3
- package/packages/tools/dist/digest.d.ts +43 -46
- package/packages/tools/dist/digest.js +4 -5
- package/packages/tools/dist/dogfood-log.d.ts +49 -0
- package/packages/tools/dist/dogfood-log.js +2 -0
- package/packages/tools/dist/encode.d.ts +11 -9
- package/packages/tools/dist/encode.js +1 -1
- package/packages/tools/dist/env-info.d.ts +25 -23
- package/packages/tools/dist/env-info.js +1 -1
- package/packages/tools/dist/eval.d.ts +13 -11
- package/packages/tools/dist/eval.js +2 -3
- package/packages/tools/dist/evidence-map.d.ts +64 -62
- package/packages/tools/dist/evidence-map.js +2 -3
- package/packages/tools/dist/file-cache.d.ts +41 -0
- package/packages/tools/dist/file-cache.js +3 -0
- package/packages/tools/dist/file-summary.d.ts +50 -30
- package/packages/tools/dist/file-summary.js +2 -2
- package/packages/tools/dist/file-walk.d.ts +6 -4
- package/packages/tools/dist/file-walk.js +1 -1
- package/packages/tools/dist/find-examples.d.ts +26 -22
- package/packages/tools/dist/find-examples.js +3 -3
- package/packages/tools/dist/find.d.ts +39 -41
- package/packages/tools/dist/find.js +1 -1
- package/packages/tools/dist/forge-classify.d.ts +35 -39
- package/packages/tools/dist/forge-classify.js +2 -2
- package/packages/tools/dist/forge-ground.d.ts +58 -61
- package/packages/tools/dist/forge-ground.js +1 -1
- package/packages/tools/dist/git-context.d.ts +22 -20
- package/packages/tools/dist/git-context.js +3 -3
- package/packages/tools/dist/graph-query.d.ts +75 -79
- package/packages/tools/dist/graph-query.js +1 -1
- package/packages/tools/dist/guide.d.ts +14 -12
- package/packages/tools/dist/guide.js +1 -1
- package/packages/tools/dist/health.d.ts +13 -11
- package/packages/tools/dist/health.js +2 -2
- package/packages/tools/dist/http-request.d.ts +20 -18
- package/packages/tools/dist/http-request.js +1 -1
- package/packages/tools/dist/index.d.ts +55 -53
- package/packages/tools/dist/index.js +1 -1
- package/packages/tools/dist/lane.d.ts +28 -26
- package/packages/tools/dist/lane.js +6 -7
- package/packages/tools/dist/measure.d.ts +34 -30
- package/packages/tools/dist/measure.js +2 -2
- package/packages/tools/dist/onboard.d.ts +29 -27
- package/packages/tools/dist/onboard.js +17 -41
- package/packages/tools/dist/parse-output.d.ts +48 -46
- package/packages/tools/dist/parse-output.js +2 -2
- package/packages/tools/dist/path-resolver.d.ts +4 -2
- package/packages/tools/dist/path-resolver.js +1 -1
- package/packages/tools/dist/process-manager.d.ts +18 -16
- package/packages/tools/dist/process-manager.js +1 -1
- package/packages/tools/dist/queue.d.ts +28 -26
- package/packages/tools/dist/queue.js +1 -2
- package/packages/tools/dist/regex-test.d.ts +26 -24
- package/packages/tools/dist/regex-test.js +1 -1
- package/packages/tools/dist/rename.d.ts +28 -26
- package/packages/tools/dist/rename.js +2 -2
- package/packages/tools/dist/replay.d.ts +33 -31
- package/packages/tools/dist/replay.js +4 -6
- package/packages/tools/dist/response-envelope.d.ts +32 -30
- package/packages/tools/dist/response-envelope.js +1 -1
- package/packages/tools/dist/schema-validate.d.ts +15 -13
- package/packages/tools/dist/schema-validate.js +1 -1
- package/packages/tools/dist/scope-map.d.ts +45 -48
- package/packages/tools/dist/scope-map.js +1 -1
- package/packages/tools/dist/snippet.d.ts +26 -25
- package/packages/tools/dist/snippet.js +1 -1
- package/packages/tools/dist/stash.d.ts +13 -11
- package/packages/tools/dist/stash.js +1 -2
- package/packages/tools/dist/stratum-card.d.ts +27 -28
- package/packages/tools/dist/stratum-card.js +3 -5
- package/packages/tools/dist/symbol.d.ts +31 -26
- package/packages/tools/dist/symbol.js +3 -3
- package/packages/tools/dist/test-run.d.ts +19 -16
- package/packages/tools/dist/test-run.js +2 -2
- package/packages/tools/dist/text-utils.d.ts +6 -4
- package/packages/tools/dist/text-utils.js +2 -2
- package/packages/tools/dist/time-utils.d.ts +15 -13
- package/packages/tools/dist/time-utils.js +1 -1
- package/packages/tools/dist/trace.d.ts +26 -21
- package/packages/tools/dist/trace.js +2 -2
- package/packages/tools/dist/truncation.d.ts +6 -4
- package/packages/tools/dist/truncation.js +6 -13
- package/packages/tools/dist/watch.d.ts +28 -26
- package/packages/tools/dist/watch.js +1 -1
- package/packages/tools/dist/web-fetch.d.ts +35 -33
- package/packages/tools/dist/web-fetch.js +6 -12
- package/packages/tools/dist/web-search.d.ts +16 -14
- package/packages/tools/dist/web-search.js +1 -1
- package/packages/tools/dist/workset.d.ts +19 -17
- package/packages/tools/dist/workset.js +1 -2
- package/packages/tui/dist/App-CYLNJLr6.js +2 -0
- package/packages/tui/dist/App.d.ts +11 -6
- package/packages/tui/dist/App.js +1 -450
- package/packages/tui/dist/CuratedPanel-sYdZAICX.js +2 -0
- package/packages/tui/dist/LogPanel-DtMnoyXT.js +3 -0
- package/packages/tui/dist/SearchPanel-DREo6zgt.js +2 -0
- package/packages/tui/dist/StatusPanel-2ex8fLOO.js +2 -0
- package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
- package/packages/tui/dist/devtools-DUyj952l.js +7 -0
- package/packages/tui/dist/embedder.interface-D4ew0HPW.d.ts +28 -0
- package/packages/tui/dist/index-B9VpfVPP.d.ts +13 -0
- package/packages/tui/dist/index.d.ts +3 -19
- package/packages/tui/dist/index.js +1 -476
- package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +316 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +11 -6
- package/packages/tui/dist/panels/CuratedPanel.js +1 -371
- package/packages/tui/dist/panels/LogPanel.d.ts +7 -3
- package/packages/tui/dist/panels/LogPanel.js +1 -449
- package/packages/tui/dist/panels/SearchPanel.d.ts +14 -8
- package/packages/tui/dist/panels/SearchPanel.js +1 -372
- package/packages/tui/dist/panels/StatusPanel.d.ts +11 -6
- package/packages/tui/dist/panels/StatusPanel.js +1 -371
- package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +150 -0
- package/scaffold/adapters/claude-code.mjs +20 -0
- package/scaffold/adapters/copilot.mjs +320 -0
- package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/copilot/agents/Documenter.agent.md +42 -0
- package/scaffold/copilot/agents/Orchestrator.agent.md +104 -0
- package/scaffold/copilot/agents/Planner.agent.md +54 -0
- package/scaffold/copilot/agents/Refactor.agent.md +36 -0
- package/scaffold/copilot/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/definitions/agents.mjs +165 -0
- package/scaffold/definitions/bodies.mjs +292 -0
- package/scaffold/definitions/hooks.mjs +43 -0
- package/scaffold/definitions/models.mjs +56 -0
- package/scaffold/definitions/plugins.mjs +24 -0
- package/scaffold/definitions/prompts.mjs +145 -0
- package/scaffold/definitions/protocols.mjs +322 -0
- package/scaffold/definitions/tools.mjs +176 -0
- package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
- package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
- package/scaffold/general/agents/Debugger.agent.md +31 -0
- package/scaffold/general/agents/Documenter.agent.md +42 -0
- package/scaffold/general/agents/Explorer.agent.md +50 -0
- package/scaffold/general/agents/Frontend.agent.md +29 -0
- package/scaffold/general/agents/Implementer.agent.md +31 -0
- package/scaffold/general/agents/Orchestrator.agent.md +104 -0
- package/scaffold/general/agents/Planner.agent.md +55 -0
- package/scaffold/general/agents/README.md +57 -0
- package/scaffold/general/agents/Refactor.agent.md +36 -0
- package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/general/agents/Security.agent.md +42 -0
- package/scaffold/general/agents/_shared/adr-protocol.md +91 -0
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +50 -0
- package/scaffold/general/agents/_shared/code-agent-base.md +88 -0
- package/scaffold/general/agents/_shared/code-reviewer-base.md +54 -0
- package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
- package/scaffold/general/agents/_shared/forge-protocol.md +46 -0
- package/scaffold/general/agents/_shared/researcher-base.md +61 -0
- package/scaffold/general/agents/templates/adr-template.md +27 -0
- package/scaffold/general/agents/templates/execution-state.md +25 -0
- package/scaffold/general/prompts/ask.prompt.md +20 -0
- package/scaffold/general/prompts/debug.prompt.md +25 -0
- package/scaffold/general/prompts/design.prompt.md +22 -0
- package/scaffold/general/prompts/implement.prompt.md +26 -0
- package/scaffold/general/prompts/plan.prompt.md +24 -0
- package/scaffold/general/prompts/review.prompt.md +31 -0
- package/scaffold/generate.mjs +74 -0
- package/skills/adr-skill/SKILL.md +329 -0
- package/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/skills/adr-skill/references/adr-conventions.md +95 -0
- package/skills/adr-skill/references/examples.md +193 -0
- package/skills/adr-skill/references/review-checklist.md +77 -0
- package/skills/adr-skill/references/template-variants.md +52 -0
- package/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/skills/adr-skill/scripts/new_adr.js +391 -0
- package/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/skills/brainstorming/SKILL.md +259 -0
- package/skills/brainstorming/scripts/frame-template.html +365 -0
- package/skills/brainstorming/scripts/helper.js +216 -0
- package/skills/brainstorming/scripts/server.cjs +9 -0
- package/skills/brainstorming/scripts/server.src.cjs +249 -0
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/brainstorming/visual-companion.md +430 -0
- package/skills/c4-architecture/SKILL.md +295 -0
- package/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/skills/knowledge-base/SKILL.md +100 -10
- package/skills/lesson-learned/SKILL.md +105 -0
- package/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/skills/lesson-learned/references/se-principles.md +109 -0
- package/skills/requirements-clarity/SKILL.md +324 -0
- package/skills/session-handoff/SKILL.md +189 -0
- package/skills/session-handoff/references/handoff-template.md +139 -0
- package/skills/session-handoff/references/resume-checklist.md +80 -0
- package/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/packages/chunker/dist/treesitter-chunker.d.ts +0 -47
- package/packages/chunker/dist/treesitter-chunker.js +0 -8
- package/packages/cli/dist/commands/init.d.ts +0 -10
- package/packages/cli/dist/commands/init.js +0 -308
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region packages/chunker/src/extractors/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared type definitions for AST extractors.
|
|
4
|
+
*
|
|
5
|
+
* These types match the interfaces in `@kb/analyzers/types.ts` so that
|
|
6
|
+
* downstream consumers can seamlessly switch from regex-based to AST-based extraction.
|
|
7
|
+
*/
|
|
8
|
+
interface SymbolInfo {
|
|
9
|
+
name: string;
|
|
10
|
+
kind: 'function' | 'class' | 'interface' | 'type' | 'const' | 'enum' | 'variable' | 'method';
|
|
11
|
+
exported: boolean;
|
|
12
|
+
filePath: string;
|
|
13
|
+
line: number;
|
|
14
|
+
signature?: string;
|
|
15
|
+
}
|
|
16
|
+
interface ImportInfo {
|
|
17
|
+
source: string;
|
|
18
|
+
specifiers: string[];
|
|
19
|
+
filePath: string;
|
|
20
|
+
isExternal: boolean;
|
|
21
|
+
confidence: 'high' | 'medium' | 'low';
|
|
22
|
+
}
|
|
23
|
+
interface PatternMatch {
|
|
24
|
+
pattern: string;
|
|
25
|
+
description: string;
|
|
26
|
+
locations: string[];
|
|
27
|
+
confidence: 'high' | 'medium' | 'low';
|
|
28
|
+
}
|
|
29
|
+
interface EntryPoint {
|
|
30
|
+
name: string;
|
|
31
|
+
type: 'lambda-handler' | 'main' | 'bin' | 'server' | 'cli' | 'test' | 'cdk-construct';
|
|
32
|
+
filePath: string;
|
|
33
|
+
trigger?: string;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { EntryPoint, ImportInfo, PatternMatch, SymbolInfo };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { IChunker } from "./chunker.interface.js";
|
|
2
|
+
import { ChunkMetadata, RawChunk } from "@kb/core";
|
|
3
|
+
|
|
4
|
+
//#region packages/chunker/src/generic-chunker.d.ts
|
|
5
|
+
declare class GenericChunker implements IChunker {
|
|
6
|
+
private readonly maxChunkSize;
|
|
7
|
+
private readonly overlap;
|
|
8
|
+
constructor(options?: {
|
|
9
|
+
maxChunkSize?: number;
|
|
10
|
+
overlap?: number;
|
|
11
|
+
});
|
|
12
|
+
chunk(content: string, metadata: ChunkMetadata): RawChunk[];
|
|
11
13
|
}
|
|
12
|
-
//#
|
|
14
|
+
//#endregion
|
|
15
|
+
export { GenericChunker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{CHUNK_SIZES as
|
|
2
|
-
`).length}];
|
|
3
|
-
`),r=[]
|
|
4
|
-
`),sourcePath:
|
|
5
|
-
`),sourcePath:
|
|
1
|
+
import{CHUNK_SIZES as e}from"../../core/dist/index.js";var t=class{maxChunkSize;overlap;constructor(t){this.maxChunkSize=t?.maxChunkSize??e.default.max,this.overlap=t?.overlap??e.default.overlap}chunk(e,t){if(e.length<=this.maxChunkSize)return[{text:e,sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:0,totalChunks:1,startLine:1,endLine:e.split(`
|
|
2
|
+
`).length}];let n=e.split(`
|
|
3
|
+
`),r=[],i=[],a=0,o=1;for(let e=0;e<n.length;e++){let s=n[e];if(a+s.length+1>this.maxChunkSize&&i.length>0){r.push({text:i.join(`
|
|
4
|
+
`),sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:r.length,totalChunks:0,startLine:o,endLine:o+i.length-1});let e=[],n=0;for(let t=i.length-1;t>=0&&!(n+i[t].length+1>this.overlap);t--)e.unshift(i[t]),n+=i[t].length+1;o=o+i.length-e.length,i=[...e,s],a=n+s.length+1}else i.push(s),a+=s.length+1}return i.length>0&&r.push({text:i.join(`
|
|
5
|
+
`),sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:r.length,totalChunks:0,startLine:o,endLine:o+i.length-1}),r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}};export{t as GenericChunker};
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { CallEdge as CallEdge$1, extractCallEdges } from "./call-graph-extractor.js";
|
|
2
|
+
import { IChunker } from "./chunker.interface.js";
|
|
3
|
+
import { createChunker, createChunkerSync } from "./chunker-factory.js";
|
|
4
|
+
import { CodeChunker } from "./code-chunker.js";
|
|
5
|
+
import { CallEdge, extractCalls } from "./extractors/call-extractor.js";
|
|
6
|
+
import { EntryPoint, ImportInfo, PatternMatch, SymbolInfo } from "./extractors/types.js";
|
|
7
|
+
import { detectEntryPoints } from "./extractors/entry-point-detector.js";
|
|
8
|
+
import { extractImports } from "./extractors/import-extractor.js";
|
|
9
|
+
import { detectPatterns } from "./extractors/pattern-detector.js";
|
|
10
|
+
import { ScopeInfo, resolveScopes } from "./extractors/scope-resolver.js";
|
|
11
|
+
import { extractSymbols } from "./extractors/symbol-extractor.js";
|
|
12
|
+
import { GenericChunker } from "./generic-chunker.js";
|
|
13
|
+
import { MarkdownChunker } from "./markdown-chunker.js";
|
|
14
|
+
import { SUPPORTED_EXTENSIONS, resolveGrammarPath, resolveParserWasmPath } from "./wasm/languages.js";
|
|
15
|
+
import { WasmLanguage, WasmParser, WasmParserModule, WasmPoint, WasmQuery, WasmQueryCapture, WasmQueryMatch, WasmSyntaxNode, WasmTree } from "./wasm/types.js";
|
|
16
|
+
import { CaptureInfo, QueryExecutor, QueryResult, QueryType } from "./wasm/query-executor.js";
|
|
17
|
+
import { WasmRuntime, initializeWasm } from "./wasm/runtime.js";
|
|
18
|
+
import { WasmChunker } from "./wasm-chunker.js";
|
|
19
|
+
export { type CallEdge as AstCallEdge, type CallEdge$1 as CallEdge, type CaptureInfo, CodeChunker, type EntryPoint, GenericChunker, type IChunker, type ImportInfo, MarkdownChunker, type PatternMatch, QueryExecutor, type QueryResult, type QueryType, SUPPORTED_EXTENSIONS, type ScopeInfo, type SymbolInfo, WasmChunker, type WasmLanguage, type WasmParser, type WasmParserModule, type WasmPoint, type WasmQuery, type WasmQueryCapture, type WasmQueryMatch, WasmRuntime, type WasmSyntaxNode, type WasmTree, createChunker, createChunkerSync, detectEntryPoints, detectPatterns, extractCallEdges, extractCalls, extractImports, extractSymbols, initializeWasm, resolveGrammarPath, resolveParserWasmPath, resolveScopes };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{SUPPORTED_EXTENSIONS as e,resolveGrammarPath as t,resolveParserWasmPath as n}from"./wasm/languages.js";import{WasmRuntime as r,initializeWasm as i}from"./wasm/runtime.js";import{extractCallEdges as a}from"./call-graph-extractor.js";import{CodeChunker as o}from"./code-chunker.js";import{GenericChunker as s}from"./generic-chunker.js";import{MarkdownChunker as c}from"./markdown-chunker.js";import{WasmChunker as l}from"./wasm-chunker.js";import{createChunker as u,createChunkerSync as d}from"./chunker-factory.js";import{QueryExecutor as f}from"./wasm/query-executor.js";import{extractCalls as p}from"./extractors/call-extractor.js";import{detectEntryPoints as m}from"./extractors/entry-point-detector.js";import{extractImports as h}from"./extractors/import-extractor.js";import{detectPatterns as g}from"./extractors/pattern-detector.js";import{resolveScopes as _}from"./extractors/scope-resolver.js";import{extractSymbols as v}from"./extractors/symbol-extractor.js";export{o as CodeChunker,s as GenericChunker,c as MarkdownChunker,f as QueryExecutor,e as SUPPORTED_EXTENSIONS,l as WasmChunker,r as WasmRuntime,u as createChunker,d as createChunkerSync,m as detectEntryPoints,g as detectPatterns,a as extractCallEdges,p as extractCalls,h as extractImports,v as extractSymbols,i as initializeWasm,t as resolveGrammarPath,n as resolveParserWasmPath,_ as resolveScopes};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { IChunker } from "./chunker.interface.js";
|
|
2
|
+
import { ChunkMetadata, RawChunk } from "@kb/core";
|
|
3
|
+
|
|
4
|
+
//#region packages/chunker/src/markdown-chunker.d.ts
|
|
5
|
+
declare class MarkdownChunker implements IChunker {
|
|
6
|
+
private readonly maxChunkSize;
|
|
7
|
+
private readonly minChunkSize;
|
|
8
|
+
constructor(options?: {
|
|
9
|
+
maxChunkSize?: number;
|
|
10
|
+
minChunkSize?: number;
|
|
11
|
+
});
|
|
12
|
+
chunk(content: string, metadata: ChunkMetadata): RawChunk[];
|
|
13
|
+
private splitByHeadings;
|
|
14
|
+
private splitByParagraphs;
|
|
13
15
|
}
|
|
14
|
-
//#
|
|
16
|
+
//#endregion
|
|
17
|
+
export { MarkdownChunker };
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
import{CHUNK_SIZES as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
`).length;t.push({text:a,sourcePath:s.sourcePath,contentType:s.contentType,headingPath:n.headingPath,chunkIndex:t.length,totalChunks:0,startLine:e,endLine:e+o-1}),e+=o}}else t.push({text:n.text,sourcePath:s.sourcePath,contentType:s.contentType,headingPath:n.headingPath,chunkIndex:t.length,totalChunks:0,startLine:n.startLine,endLine:n.endLine})}return t.map((n,i)=>({...n,chunkIndex:i,totalChunks:t.length}))}splitByHeadings(r){const s=r.split(`
|
|
5
|
-
`),h=[];let t=null;const n=[];let i=!1;for(let e=0;e<s.length;e++){/^```/.test(s[e])&&(i=!i);const a=i?null:s[e].match(/^(#{1,6})\s+(.+)/);if(a){t&&h.push(t);const o=a[1].length,c=a[2].trim();for(;n.length>=o;)n.pop();n.push(`${"#".repeat(o)} ${c}`),t={text:s[e],headingPath:n.join(" > "),startLine:e+1,endLine:e+1}}else t?(t.text+=`
|
|
6
|
-
${s[e]}`,t.endLine=e+1):t={text:s[e],headingPath:"(intro)",startLine:e+1,endLine:e+1}}return t&&h.push(t),h}splitByParagraphs(r,s){const h=r.split(/\n\n+/),t=[];let n="";for(const i of h)`${n}
|
|
7
|
-
|
|
8
|
-
${i}`.length>s&&n.length>0?(t.push(n.trim()),n=i):n=n?`${n}
|
|
9
|
-
|
|
10
|
-
${i}`:i;return n.trim()&&t.push(n.trim()),t}}export{k as MarkdownChunker};
|
|
1
|
+
import{CHUNK_SIZES as e}from"../../core/dist/index.js";var t=class{maxChunkSize;minChunkSize;constructor(t){this.maxChunkSize=t?.maxChunkSize??e.markdown.max,this.minChunkSize=t?.minChunkSize??e.markdown.min}chunk(e,t){let n=this.splitByHeadings(e),r=[];for(let e of n){if(e.text.trim().length<this.minChunkSize&&r.length>0){let t=r[r.length-1];t.text+=`\n\n${e.text}`,t.endLine=e.endLine;continue}if(e.text.length>this.maxChunkSize){let n=this.splitByParagraphs(e.text,this.maxChunkSize),i=e.startLine;for(let a of n){let n=a.split(`
|
|
2
|
+
`).length;r.push({text:a,sourcePath:t.sourcePath,contentType:t.contentType,headingPath:e.headingPath,chunkIndex:r.length,totalChunks:0,startLine:i,endLine:i+n-1}),i+=n}}else r.push({text:e.text,sourcePath:t.sourcePath,contentType:t.contentType,headingPath:e.headingPath,chunkIndex:r.length,totalChunks:0,startLine:e.startLine,endLine:e.endLine})}return r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}splitByHeadings(e){let t=e.split(`
|
|
3
|
+
`),n=[],r=null,i=[],a=!1;for(let e=0;e<t.length;e++){/^```/.test(t[e])&&(a=!a);let o=a?null:t[e].match(/^(#{1,6})\s+(.+)/);if(o){r&&n.push(r);let a=o[1].length,s=o[2].trim();for(;i.length>=a;)i.pop();i.push(`${`#`.repeat(a)} ${s}`),r={text:t[e],headingPath:i.join(` > `),startLine:e+1,endLine:e+1}}else r?(r.text+=`\n${t[e]}`,r.endLine=e+1):r={text:t[e],headingPath:`(intro)`,startLine:e+1,endLine:e+1}}return r&&n.push(r),n}splitByParagraphs(e,t){let n=e.split(/\n\n+/),r=[],i=``;for(let e of n)`${i}\n\n${e}`.length>t&&i.length>0?(r.push(i.trim()),i=e):i=i?`${i}\n\n${e}`:e;return i.trim()&&r.push(i.trim()),r}};export{t as MarkdownChunker};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region packages/chunker/src/wasm/languages.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Language registry for web-tree-sitter WASM grammars.
|
|
4
|
+
*
|
|
5
|
+
* Maps file extensions to vendored .wasm grammar file names
|
|
6
|
+
* and resolves their absolute paths on disk.
|
|
7
|
+
*/
|
|
8
|
+
/** All supported extensions. */
|
|
9
|
+
declare const SUPPORTED_EXTENSIONS: Set<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the absolute path to a vendored .wasm grammar file for a given extension.
|
|
12
|
+
* Returns null if the extension is not supported or the file doesn't exist.
|
|
13
|
+
*/
|
|
14
|
+
declare function resolveGrammarPath(ext: string): string | null;
|
|
15
|
+
/** Resolve the parser runtime WASM path. */
|
|
16
|
+
declare function resolveParserWasmPath(): string | null;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { SUPPORTED_EXTENSIONS, resolveGrammarPath, resolveParserWasmPath };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dirname as e,join as t}from"node:path";import{existsSync as n}from"node:fs";import{fileURLToPath as r}from"node:url";const i=t(e(r(import.meta.url)),`..`,`..`,`wasm`),a={".ts":`tree-sitter-typescript.wasm`,".tsx":`tree-sitter-typescript.wasm`,".mts":`tree-sitter-typescript.wasm`,".cts":`tree-sitter-typescript.wasm`,".js":`tree-sitter-javascript.wasm`,".jsx":`tree-sitter-javascript.wasm`,".mjs":`tree-sitter-javascript.wasm`,".cjs":`tree-sitter-javascript.wasm`,".py":`tree-sitter-python.wasm`,".go":`tree-sitter-go.wasm`,".rs":`tree-sitter-rust.wasm`,".java":`tree-sitter-java.wasm`},o=new Set(Object.keys(a));function s(e){let r=a[e];if(!r)return null;let o=t(i,r);return n(o)?o:null}function c(){let e=t(i,`tree-sitter.wasm`);return n(e)?e:null}export{o as SUPPORTED_EXTENSIONS,s as resolveGrammarPath,c as resolveParserWasmPath};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { WasmLanguage, WasmSyntaxNode } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region packages/chunker/src/wasm/query-executor.d.ts
|
|
4
|
+
/** Known query types that can be loaded. */
|
|
5
|
+
type QueryType = 'symbols' | 'imports' | 'calls' | 'patterns' | 'entry-points';
|
|
6
|
+
/** Structured result from a single query match. */
|
|
7
|
+
interface QueryResult {
|
|
8
|
+
/** The pattern index within the .scm file that matched. */
|
|
9
|
+
pattern: number;
|
|
10
|
+
/** All captures in this match, keyed by capture name → node info. */
|
|
11
|
+
captures: Map<string, CaptureInfo>;
|
|
12
|
+
}
|
|
13
|
+
/** Information about a single captured node. */
|
|
14
|
+
interface CaptureInfo {
|
|
15
|
+
/** The capture name (e.g., 'name', 'node', 'kind'). */
|
|
16
|
+
name: string;
|
|
17
|
+
/** The captured node's text content. */
|
|
18
|
+
text: string;
|
|
19
|
+
/** AST node type (e.g., 'function_declaration', 'identifier'). */
|
|
20
|
+
nodeType: string;
|
|
21
|
+
/** 0-based start line. */
|
|
22
|
+
startLine: number;
|
|
23
|
+
/** 0-based end line. */
|
|
24
|
+
endLine: number;
|
|
25
|
+
/** 0-based start column. */
|
|
26
|
+
startColumn: number;
|
|
27
|
+
/** 0-based end column. */
|
|
28
|
+
endColumn: number;
|
|
29
|
+
/** The raw AST node (for advanced traversal). */
|
|
30
|
+
node: WasmSyntaxNode;
|
|
31
|
+
}
|
|
32
|
+
declare class QueryExecutor {
|
|
33
|
+
/** Cache: `"typescript:symbols"` → compiled WasmQuery */
|
|
34
|
+
private queryCache;
|
|
35
|
+
/** Cache: loaded .scm source text to avoid re-reading disk. */
|
|
36
|
+
private scmCache;
|
|
37
|
+
/**
|
|
38
|
+
* Execute a query type against a parsed AST tree.
|
|
39
|
+
*
|
|
40
|
+
* @param rootNode - The root node of a parsed AST tree.
|
|
41
|
+
* @param language - The Language object for the parsed file.
|
|
42
|
+
* @param ext - The file extension (e.g., `.ts`).
|
|
43
|
+
* @param queryType - Which query to execute (e.g., `'symbols'`).
|
|
44
|
+
* @returns Array of structured results, or empty array if query not found.
|
|
45
|
+
*/
|
|
46
|
+
execute(rootNode: WasmSyntaxNode, language: WasmLanguage, ext: string, queryType: QueryType): QueryResult[];
|
|
47
|
+
/**
|
|
48
|
+
* Execute a query and return flat captures instead of grouped matches.
|
|
49
|
+
* Useful when you care about individual nodes, not match grouping.
|
|
50
|
+
*/
|
|
51
|
+
executeCaptures(rootNode: WasmSyntaxNode, language: WasmLanguage, ext: string, queryType: QueryType): CaptureInfo[];
|
|
52
|
+
/**
|
|
53
|
+
* Execute a raw .scm query string (not from file) against a tree.
|
|
54
|
+
* Useful for ad-hoc queries and testing.
|
|
55
|
+
*/
|
|
56
|
+
executeRaw(rootNode: WasmSyntaxNode, language: WasmLanguage, scmSource: string): QueryResult[];
|
|
57
|
+
/**
|
|
58
|
+
* Get (or compile and cache) a query for the given language + type.
|
|
59
|
+
* Returns null if the .scm file doesn't exist.
|
|
60
|
+
*/
|
|
61
|
+
private getOrCompile;
|
|
62
|
+
/** Load .scm file content, cached. Returns null if file not found. */
|
|
63
|
+
private loadScm;
|
|
64
|
+
/** Clear all caches. */
|
|
65
|
+
dispose(): void;
|
|
66
|
+
/** Resolve the directory path for a language's queries. */
|
|
67
|
+
static resolveQueryDir(langDir: string): string;
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { CaptureInfo, QueryExecutor, QueryResult, QueryType };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dirname as e,join as t}from"node:path";import{createLogger as n}from"../../../core/dist/index.js";import{existsSync as r,readFileSync as i}from"node:fs";import{fileURLToPath as a}from"node:url";const o=n(`query-executor`),s=e(a(import.meta.url));function c(){let e=t(s,`..`,`queries`);if(r(e))return e;let n=t(s,`..`,`..`,`src`,`queries`);return r(n)?n:e}const l=c(),u={".ts":`typescript`,".tsx":`typescript`,".mts":`typescript`,".cts":`typescript`,".js":`javascript`,".jsx":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".py":`python`,".go":`go`,".rs":`rust`,".java":`java`};var d=class{queryCache=new Map;scmCache=new Map;execute(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.matches(e).map(e=>f(e)):[]}executeCaptures(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.captures(e).map(e=>p(e)):[]}executeRaw(e,t,n){return t.query(n).matches(e).map(e=>f(e))}getOrCompile(e,t,n){let r=u[t];if(!r)return null;let i=`${r}:${n}`,a=this.queryCache.get(i);if(a)return a;let s=this.loadScm(r,n);if(!s)return null;try{let t=e.query(s);return this.queryCache.set(i,t),t}catch(e){throw o.warn(`Failed to compile query`,{langDir:r,queryType:n,error:String(e)}),Error(`Failed to compile ${r}/${n}.scm: ${String(e)}`)}}loadScm(e,n){let r=`${e}:${n}`,a=this.scmCache.get(r);if(a!==void 0)return a;let s=t(l,e,`${n}.scm`);try{let e=i(s,`utf-8`);return this.scmCache.set(r,e),e}catch{return o.info(`Query file not found (graceful skip)`,{langDir:e,queryType:n}),null}}dispose(){this.queryCache.clear(),this.scmCache.clear()}static resolveQueryDir(e){return t(l,e)}};function f(e){let t=new Map;for(let n of e.captures)t.set(n.name,p(n));return{pattern:e.pattern,captures:t}}function p(e){let{node:t}=e;return{name:e.name,text:t.text,nodeType:t.type,startLine:t.startPosition.row,endLine:t.endPosition.row,startColumn:t.startPosition.column,endColumn:t.endPosition.column,node:t}}export{d as QueryExecutor};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { WasmLanguage, WasmParser, WasmTree } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region packages/chunker/src/wasm/runtime.d.ts
|
|
4
|
+
declare class WasmRuntime {
|
|
5
|
+
private static instance;
|
|
6
|
+
private parser;
|
|
7
|
+
private languages;
|
|
8
|
+
/** Track which grammar files have been loaded (by path) to avoid re-loading. */
|
|
9
|
+
private loadedGrammars;
|
|
10
|
+
/** Initialize the singleton runtime. Returns the instance or null on failure. */
|
|
11
|
+
static initialize(): Promise<WasmRuntime | null>;
|
|
12
|
+
/** Get the current runtime (null if not initialized). */
|
|
13
|
+
static get(): WasmRuntime | null;
|
|
14
|
+
/** Ensure the runtime is initialized, initializing if needed. */
|
|
15
|
+
static ensure(): Promise<WasmRuntime>;
|
|
16
|
+
/** Reset the singleton (for testing). */
|
|
17
|
+
static dispose(): void;
|
|
18
|
+
private init;
|
|
19
|
+
/**
|
|
20
|
+
* Load a language grammar for a file extension (lazy, cached).
|
|
21
|
+
* Returns the Language object or null if unsupported/unavailable.
|
|
22
|
+
*/
|
|
23
|
+
loadLanguage(ext: string): Promise<WasmLanguage | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Parse source code and return the AST tree.
|
|
26
|
+
* Lazily loads the grammar on first use for the given extension.
|
|
27
|
+
*/
|
|
28
|
+
parse(content: string, ext: string): Promise<WasmTree | null>;
|
|
29
|
+
/** Check if a grammar is available (loaded or loadable) for the given extension. */
|
|
30
|
+
hasLanguage(ext: string): boolean;
|
|
31
|
+
/** Check if a grammar is already loaded for the given extension. */
|
|
32
|
+
isLanguageLoaded(ext: string): boolean;
|
|
33
|
+
/** Get the underlying parser instance (for advanced query usage). */
|
|
34
|
+
getParser(): WasmParser | null;
|
|
35
|
+
/** Get a loaded language by extension (null if not loaded yet). */
|
|
36
|
+
getLanguage(ext: string): WasmLanguage | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Initialize the WASM runtime. Call once at startup.
|
|
40
|
+
* Returns true if the runtime is available, false otherwise.
|
|
41
|
+
*/
|
|
42
|
+
declare function initializeWasm(): Promise<boolean>;
|
|
43
|
+
//#endregion
|
|
44
|
+
export { WasmRuntime, initializeWasm };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SUPPORTED_EXTENSIONS as e,resolveGrammarPath as t,resolveParserWasmPath as n}from"./languages.js";import{createLogger as r}from"../../../core/dist/index.js";const i=r(`wasm-runtime`);async function a(){return(await import(`web-tree-sitter`)).default}var o=class r{static instance=null;parser=null;languages=new Map;loadedGrammars=new Map;static async initialize(){if(r.instance)return r.instance;let e=new r;return await e.init()?(r.instance=e,e):null}static get(){return r.instance}static async ensure(){let e=r.get();if(e)return e;let t=await r.initialize();if(!t)throw Error(`Failed to initialize WASM tree-sitter runtime`);return t}static dispose(){r.instance&&=(r.instance.parser?.delete(),r.instance.parser=null,r.instance.languages.clear(),r.instance.loadedGrammars.clear(),null)}async init(){try{let e=n();if(!e)return i.warn(`Parser WASM file not found`),!1;let t=await a();return await t.init({locateFile:()=>e}),this.parser=new t,i.info(`WASM tree-sitter parser initialized`),!0}catch(e){return i.warn(`Failed to initialize WASM tree-sitter`,{error:String(e)}),!1}}async loadLanguage(e){let n=this.languages.get(e);if(n)return n;let r=t(e);if(!r)return null;let o=this.loadedGrammars.get(r);if(o)return this.languages.set(e,o),o;try{let t=await(await a()).Language.load(r);return this.loadedGrammars.set(r,t),this.languages.set(e,t),i.info(`Loaded grammar`,{ext:e}),t}catch(t){return i.warn(`Failed to load grammar`,{ext:e,error:String(t)}),null}}async parse(e,t){if(!this.parser)return null;let n=await this.loadLanguage(t);return n?(this.parser.setLanguage(n),this.parser.parse(e)):null}hasLanguage(t){return e.has(t)}isLanguageLoaded(e){return this.languages.has(e)}getParser(){return this.parser}getLanguage(e){return this.languages.get(e)??null}};async function s(){return await o.initialize()!==null}export{o as WasmRuntime,s as initializeWasm};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
//#region packages/chunker/src/wasm/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Minimal type definitions for web-tree-sitter 0.24.x.
|
|
4
|
+
*
|
|
5
|
+
* web-tree-sitter uses `export = Parser` (CJS-style) which doesn't interop
|
|
6
|
+
* cleanly with ESM `import type` under `moduleResolution: NodeNext` without
|
|
7
|
+
* `esModuleInterop`. We define our own interfaces for the subset we use.
|
|
8
|
+
*/
|
|
9
|
+
interface WasmPoint {
|
|
10
|
+
row: number;
|
|
11
|
+
column: number;
|
|
12
|
+
}
|
|
13
|
+
interface WasmSyntaxNode {
|
|
14
|
+
type: string;
|
|
15
|
+
text: string;
|
|
16
|
+
startPosition: WasmPoint;
|
|
17
|
+
endPosition: WasmPoint;
|
|
18
|
+
startIndex: number;
|
|
19
|
+
endIndex: number;
|
|
20
|
+
children: WasmSyntaxNode[];
|
|
21
|
+
namedChildren: WasmSyntaxNode[];
|
|
22
|
+
childCount: number;
|
|
23
|
+
namedChildCount: number;
|
|
24
|
+
parent: WasmSyntaxNode | null;
|
|
25
|
+
nextSibling: WasmSyntaxNode | null;
|
|
26
|
+
previousSibling: WasmSyntaxNode | null;
|
|
27
|
+
nextNamedSibling: WasmSyntaxNode | null;
|
|
28
|
+
previousNamedSibling: WasmSyntaxNode | null;
|
|
29
|
+
isNamed: boolean;
|
|
30
|
+
firstChild: WasmSyntaxNode | null;
|
|
31
|
+
lastChild: WasmSyntaxNode | null;
|
|
32
|
+
firstNamedChild: WasmSyntaxNode | null;
|
|
33
|
+
lastNamedChild: WasmSyntaxNode | null;
|
|
34
|
+
childForFieldName(fieldName: string): WasmSyntaxNode | null;
|
|
35
|
+
descendantsOfType(types: string | string[], startPosition?: WasmPoint, endPosition?: WasmPoint): WasmSyntaxNode[];
|
|
36
|
+
}
|
|
37
|
+
interface WasmTree {
|
|
38
|
+
rootNode: WasmSyntaxNode;
|
|
39
|
+
delete(): void;
|
|
40
|
+
}
|
|
41
|
+
interface WasmLanguage {
|
|
42
|
+
query(source: string): WasmQuery;
|
|
43
|
+
readonly version: number;
|
|
44
|
+
readonly fieldCount: number;
|
|
45
|
+
}
|
|
46
|
+
interface WasmQuery {
|
|
47
|
+
matches(rootNode: WasmSyntaxNode, options?: {
|
|
48
|
+
startPosition?: WasmPoint;
|
|
49
|
+
endPosition?: WasmPoint;
|
|
50
|
+
matchLimit?: number;
|
|
51
|
+
}): WasmQueryMatch[];
|
|
52
|
+
captures(rootNode: WasmSyntaxNode, options?: {
|
|
53
|
+
startPosition?: WasmPoint;
|
|
54
|
+
endPosition?: WasmPoint;
|
|
55
|
+
matchLimit?: number;
|
|
56
|
+
}): WasmQueryCapture[];
|
|
57
|
+
captureNames: string[];
|
|
58
|
+
delete(): void;
|
|
59
|
+
}
|
|
60
|
+
interface WasmQueryMatch {
|
|
61
|
+
pattern: number;
|
|
62
|
+
captures: WasmQueryCapture[];
|
|
63
|
+
}
|
|
64
|
+
interface WasmQueryCapture {
|
|
65
|
+
name: string;
|
|
66
|
+
node: WasmSyntaxNode;
|
|
67
|
+
}
|
|
68
|
+
interface WasmParser {
|
|
69
|
+
parse(input: string): WasmTree;
|
|
70
|
+
setLanguage(language: WasmLanguage | null): void;
|
|
71
|
+
delete(): void;
|
|
72
|
+
}
|
|
73
|
+
/** The Parser constructor + statics as returned by web-tree-sitter. */
|
|
74
|
+
interface WasmParserModule {
|
|
75
|
+
new (): WasmParser;
|
|
76
|
+
init(moduleOptions?: {
|
|
77
|
+
locateFile?: (scriptName: string, scriptDirectory: string) => string;
|
|
78
|
+
}): Promise<void>;
|
|
79
|
+
Language: {
|
|
80
|
+
load(input: string | Uint8Array): Promise<WasmLanguage>;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { WasmLanguage, WasmParser, WasmParserModule, WasmPoint, WasmQuery, WasmQueryCapture, WasmQueryMatch, WasmSyntaxNode, WasmTree };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IChunker } from "./chunker.interface.js";
|
|
2
|
+
import { ChunkMetadata, RawChunk } from "@kb/core";
|
|
3
|
+
|
|
4
|
+
//#region packages/chunker/src/wasm-chunker.d.ts
|
|
5
|
+
declare class WasmChunker implements IChunker {
|
|
6
|
+
private readonly maxChunkSize;
|
|
7
|
+
constructor(options?: {
|
|
8
|
+
maxChunkSize?: number;
|
|
9
|
+
});
|
|
10
|
+
chunk(content: string, metadata: ChunkMetadata): RawChunk[];
|
|
11
|
+
/** Find declaration boundaries from AST top-level children. */
|
|
12
|
+
private findAstBoundaries;
|
|
13
|
+
/** Build RawChunk[] from AST boundaries, grouping consecutive preamble items. */
|
|
14
|
+
private buildChunks;
|
|
15
|
+
/** Split text by lines respecting max chunk size. */
|
|
16
|
+
private splitByLines;
|
|
17
|
+
/** Extract file extension from path. */
|
|
18
|
+
private extractExt;
|
|
19
|
+
/** Fallback: return the whole content as a single chunk. */
|
|
20
|
+
private singleChunk;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { WasmChunker };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{WasmRuntime as e}from"./wasm/runtime.js";import{CHUNK_SIZES as t}from"../../core/dist/index.js";const n=new Set([`function_declaration`,`class_declaration`,`interface_declaration`,`type_alias_declaration`,`enum_declaration`,`lexical_declaration`,`variable_declaration`,`export_statement`,`function_definition`,`class_definition`,`decorated_definition`,`class_declaration`,`interface_declaration`,`enum_declaration`,`function_declaration`,`method_declaration`,`type_declaration`,`function_item`,`struct_item`,`enum_item`,`trait_item`,`impl_item`,`const_item`,`static_item`,`type_item`]),r=new Set([`import_statement`,`import_from_statement`,`import_declaration`,`package_declaration`,`use_declaration`,`extern_crate_declaration`,`import_spec`,`package_clause`]);var i=class{maxChunkSize;constructor(e){this.maxChunkSize=e?.maxChunkSize??t.code.max}chunk(t,n){let r=e.get();if(!r)return this.singleChunk(t,n);let i=this.extractExt(n.sourcePath),a=r.getLanguage(i);if(!a)return this.singleChunk(t,n);let o=r.getParser();if(!o)return this.singleChunk(t,n);o.setLanguage(a);let s=o.parse(t);if(!s)return this.singleChunk(t,n);let c=this.findAstBoundaries(s.rootNode,t);return c.length===0?this.singleChunk(t,n):this.buildChunks(c,t,n)}findAstBoundaries(e,t){let i=[];for(let t of e.children){if(!t.isNamed)continue;let e=n.has(t.type),a=r.has(t.type);(e||a)&&i.push({startOffset:t.startIndex,endOffset:t.endIndex,startLine:t.startPosition.row+1,endLine:t.endPosition.row+1,isPreamble:a})}return i}buildChunks(e,t,n){let r=[],i=null,a=0,o=0;for(let s of e){if(s.isPreamble){i===null&&(i=s.startLine),a=s.endOffset,o=s.endLine;continue}if(i!==null){let e=t.slice(0,a).trim();e.length>0&&r.push({text:`// File: ${n.sourcePath}\n${e}`,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:o}),i=null}let e=t.slice(s.startOffset,s.endOffset).trim();if(e=`// File: ${n.sourcePath}\n`+e,e.length>this.maxChunkSize){let t=this.splitByLines(e,this.maxChunkSize),i=s.startLine;for(let e of t){let t=e.split(`
|
|
2
|
+
`).length;r.push({text:e,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:i+t-1}),i+=t}}else r.push({text:e,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:s.startLine,endLine:s.endLine})}if(i!==null){let e=t.slice(0,a).trim();e.length>0&&r.push({text:`// File: ${n.sourcePath}\n${e}`,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:o})}return r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}splitByLines(e,t){let n=e.split(`
|
|
3
|
+
`),r=[],i=[],a=0;for(let e of n)a+e.length+1>t&&i.length>0&&(r.push(i.join(`
|
|
4
|
+
`)),i=[],a=0),i.push(e),a+=e.length+1;return i.length>0&&r.push(i.join(`
|
|
5
|
+
`)),r}extractExt(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t).toLowerCase():``}singleChunk(e,t){return[{text:`// File: ${t.sourcePath}\n${e}`,sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:0,totalChunks:1,startLine:1,endLine:e.split(`
|
|
6
|
+
`).length}]}};export{i as WasmChunker};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
; Go call extraction queries
|
|
2
|
+
; Captures: @node (call), @callee (function name)
|
|
3
|
+
|
|
4
|
+
; foo(args) — direct function call
|
|
5
|
+
(call_expression
|
|
6
|
+
function: (identifier) @callee) @node
|
|
7
|
+
|
|
8
|
+
; pkg.Foo(args) — qualified/selector call
|
|
9
|
+
(call_expression
|
|
10
|
+
function: (selector_expression
|
|
11
|
+
field: (field_identifier) @callee)) @node
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
; Go entry-point detection queries
|
|
2
|
+
; Captures: @node (declaration), @name (function name)
|
|
3
|
+
|
|
4
|
+
; func main()
|
|
5
|
+
(function_declaration
|
|
6
|
+
name: (identifier) @name
|
|
7
|
+
(#eq? @name "main")) @node
|
|
8
|
+
|
|
9
|
+
; func init()
|
|
10
|
+
(function_declaration
|
|
11
|
+
name: (identifier) @name
|
|
12
|
+
(#eq? @name "init")) @node
|
|
13
|
+
|
|
14
|
+
; http.HandleFunc / http.Handle
|
|
15
|
+
(call_expression
|
|
16
|
+
function: (selector_expression
|
|
17
|
+
operand: (identifier) @_pkg
|
|
18
|
+
field: (field_identifier) @name
|
|
19
|
+
(#eq? @_pkg "http")
|
|
20
|
+
(#match? @name "^Handle"))) @node
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
; Go pattern detection queries
|
|
2
|
+
; Captures: @node (pattern site), @name (identifier)
|
|
3
|
+
|
|
4
|
+
; Interface type definition
|
|
5
|
+
(type_declaration
|
|
6
|
+
(type_spec
|
|
7
|
+
name: (type_identifier) @name
|
|
8
|
+
type: (interface_type))) @node
|
|
9
|
+
|
|
10
|
+
; Goroutine launch
|
|
11
|
+
(go_statement
|
|
12
|
+
(call_expression
|
|
13
|
+
function: (identifier) @name)) @node
|
|
14
|
+
|
|
15
|
+
; Channel creation: make(chan T)
|
|
16
|
+
(call_expression
|
|
17
|
+
function: (identifier) @name
|
|
18
|
+
(#eq? @name "make")) @node
|
|
19
|
+
|
|
20
|
+
; sync primitives (field of type sync.Mutex, sync.WaitGroup, etc.)
|
|
21
|
+
(field_declaration
|
|
22
|
+
type: (qualified_type
|
|
23
|
+
package: (package_identifier) @_pkg
|
|
24
|
+
name: (type_identifier) @name
|
|
25
|
+
(#eq? @_pkg "sync"))) @node
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
; Go symbol extraction queries
|
|
2
|
+
; Captures: @node (declaration), @name (identifier)
|
|
3
|
+
; Export convention: uppercase first letter = exported (checked by extractor)
|
|
4
|
+
|
|
5
|
+
; Function declaration
|
|
6
|
+
(function_declaration
|
|
7
|
+
name: (identifier) @name) @node
|
|
8
|
+
|
|
9
|
+
; Method declaration (receiver function)
|
|
10
|
+
(method_declaration
|
|
11
|
+
name: (field_identifier) @name) @node
|
|
12
|
+
|
|
13
|
+
; Type declaration (struct, interface, type alias)
|
|
14
|
+
(type_declaration
|
|
15
|
+
(type_spec
|
|
16
|
+
name: (type_identifier) @name)) @node
|
|
17
|
+
|
|
18
|
+
; Const declaration
|
|
19
|
+
(const_declaration
|
|
20
|
+
(const_spec
|
|
21
|
+
name: (identifier) @name)) @node
|
|
22
|
+
|
|
23
|
+
; Var declaration
|
|
24
|
+
(var_declaration
|
|
25
|
+
(var_spec
|
|
26
|
+
name: (identifier) @name)) @node
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
; Java call extraction queries
|
|
2
|
+
; Captures: @node (call), @callee (method/constructor name)
|
|
3
|
+
|
|
4
|
+
; foo(args) / this.foo(args) / obj.method(args)
|
|
5
|
+
(method_invocation
|
|
6
|
+
name: (identifier) @callee) @node
|
|
7
|
+
|
|
8
|
+
; new Foo(args)
|
|
9
|
+
(object_creation_expression
|
|
10
|
+
type: (type_identifier) @callee) @node
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
; Java entry-point detection queries
|
|
2
|
+
; Captures: @node (declaration), @name (class/method name)
|
|
3
|
+
|
|
4
|
+
; public static void main(String[] args)
|
|
5
|
+
(method_declaration
|
|
6
|
+
(modifiers) @_mods
|
|
7
|
+
type: (void_type)
|
|
8
|
+
name: (identifier) @name
|
|
9
|
+
(#eq? @name "main")
|
|
10
|
+
(#match? @_mods "public")
|
|
11
|
+
(#match? @_mods "static")) @node
|
|
12
|
+
|
|
13
|
+
; @SpringBootApplication class
|
|
14
|
+
(class_declaration
|
|
15
|
+
(modifiers
|
|
16
|
+
(marker_annotation
|
|
17
|
+
name: (identifier) @_ann
|
|
18
|
+
(#eq? @_ann "SpringBootApplication")))
|
|
19
|
+
name: (identifier) @name) @node
|
|
20
|
+
|
|
21
|
+
; @RestController / @Controller class
|
|
22
|
+
(class_declaration
|
|
23
|
+
(modifiers
|
|
24
|
+
(marker_annotation
|
|
25
|
+
name: (identifier) @_ann
|
|
26
|
+
(#match? @_ann "^(RestController|Controller)$")))
|
|
27
|
+
name: (identifier) @name) @node
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
; Java import extraction queries
|
|
2
|
+
; Captures: @node (import), @source (fully qualified path)
|
|
3
|
+
|
|
4
|
+
; import com.example.Foo;
|
|
5
|
+
; import static com.example.Foo.bar;
|
|
6
|
+
(import_declaration
|
|
7
|
+
(scoped_identifier) @source) @node
|
|
8
|
+
|
|
9
|
+
; import Foo; (single identifier, rare)
|
|
10
|
+
(import_declaration
|
|
11
|
+
(identifier) @source) @node
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
; Java pattern detection queries
|
|
2
|
+
; Captures: @node (pattern site), @name (identifier)
|
|
3
|
+
|
|
4
|
+
; Singleton: private constructor
|
|
5
|
+
(class_declaration
|
|
6
|
+
name: (identifier) @name
|
|
7
|
+
body: (class_body
|
|
8
|
+
(constructor_declaration
|
|
9
|
+
(modifiers) @_mods
|
|
10
|
+
(#match? @_mods "private")))) @node
|
|
11
|
+
|
|
12
|
+
; Factory: static method named create/build/of/from
|
|
13
|
+
(method_declaration
|
|
14
|
+
(modifiers) @_mods
|
|
15
|
+
name: (identifier) @name
|
|
16
|
+
(#match? @_mods "static")
|
|
17
|
+
(#match? @name "^(create|build|of|from|new)")) @node
|
|
18
|
+
|
|
19
|
+
; Builder class
|
|
20
|
+
(class_declaration
|
|
21
|
+
name: (identifier) @name
|
|
22
|
+
(#match? @name "Builder")) @node
|
|
23
|
+
|
|
24
|
+
; DI/framework annotations
|
|
25
|
+
(marker_annotation
|
|
26
|
+
name: (identifier) @name
|
|
27
|
+
(#match? @name "^(Singleton|Component|Service|Repository|Controller|Bean)$")) @node
|