@codragraph/cli 1.6.2
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 +341 -0
- package/dist/_shared/graph/types.d.ts +81 -0
- package/dist/_shared/graph/types.d.ts.map +1 -0
- package/dist/_shared/graph/types.js +8 -0
- package/dist/_shared/graph/types.js.map +1 -0
- package/dist/_shared/index.d.ts +55 -0
- package/dist/_shared/index.d.ts.map +1 -0
- package/dist/_shared/index.js +39 -0
- package/dist/_shared/index.js.map +1 -0
- package/dist/_shared/language-detection.d.ts +23 -0
- package/dist/_shared/language-detection.d.ts.map +1 -0
- package/dist/_shared/language-detection.js +139 -0
- package/dist/_shared/language-detection.js.map +1 -0
- package/dist/_shared/languages.d.ts +26 -0
- package/dist/_shared/languages.d.ts.map +1 -0
- package/dist/_shared/languages.js +27 -0
- package/dist/_shared/languages.js.map +1 -0
- package/dist/_shared/lbug/schema-constants.d.ts +16 -0
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -0
- package/dist/_shared/lbug/schema-constants.js +67 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -0
- package/dist/_shared/mro-strategy.d.ts +41 -0
- package/dist/_shared/mro-strategy.d.ts.map +1 -0
- package/dist/_shared/mro-strategy.js +2 -0
- package/dist/_shared/mro-strategy.js.map +1 -0
- package/dist/_shared/pipeline.d.ts +16 -0
- package/dist/_shared/pipeline.d.ts.map +1 -0
- package/dist/_shared/pipeline.js +5 -0
- package/dist/_shared/pipeline.js.map +1 -0
- package/dist/_shared/scope-resolution/def-index.d.ts +36 -0
- package/dist/_shared/scope-resolution/def-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/def-index.js +51 -0
- package/dist/_shared/scope-resolution/def-index.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts +69 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.js +84 -0
- package/dist/_shared/scope-resolution/evidence-weights.js.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +139 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js +479 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts +26 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.js +44 -0
- package/dist/_shared/scope-resolution/language-classification.js.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts +80 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js +79 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts +46 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.js +58 -0
- package/dist/_shared/scope-resolution/module-scope-index.js.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts +14 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.js +21 -0
- package/dist/_shared/scope-resolution/origin-priority.js.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts +76 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.js +54 -0
- package/dist/_shared/scope-resolution/parsed-file.js.map +1 -0
- package/dist/_shared/scope-resolution/position-index.d.ts +62 -0
- package/dist/_shared/scope-resolution/position-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/position-index.js +134 -0
- package/dist/_shared/scope-resolution/position-index.js.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts +44 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js +75 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts +75 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.js +24 -0
- package/dist/_shared/scope-resolution/reference-site.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts +27 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js +30 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts +69 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.js +44 -0
- package/dist/_shared/scope-resolution/registries/context.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts +56 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.js +150 -0
- package/dist/_shared/scope-resolution/registries/evidence.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts +26 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js +31 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts +81 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js +332 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts +33 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js +56 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts +36 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js +32 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts +43 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js +60 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts +53 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js +126 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts +43 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.js +46 -0
- package/dist/_shared/scope-resolution/scope-id.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts +61 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.js +186 -0
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts +63 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js +122 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts +59 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.js +79 -0
- package/dist/_shared/scope-resolution/shadow/diff.js.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +34 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/_shared/scope-resolution/symbol-definition.js.map +1 -0
- package/dist/_shared/scope-resolution/types.d.ts +356 -0
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/types.js +17 -0
- package/dist/_shared/scope-resolution/types.js.map +1 -0
- package/dist/cli/ai-context.d.ts +27 -0
- package/dist/cli/ai-context.js +270 -0
- package/dist/cli/analyze.d.ts +43 -0
- package/dist/cli/analyze.js +312 -0
- package/dist/cli/augment.d.ts +13 -0
- package/dist/cli/augment.js +33 -0
- package/dist/cli/clean.d.ts +10 -0
- package/dist/cli/clean.js +78 -0
- package/dist/cli/config.d.ts +27 -0
- package/dist/cli/config.js +106 -0
- package/dist/cli/eval-server.d.ts +37 -0
- package/dist/cli/eval-server.js +398 -0
- package/dist/cli/graphstore.d.ts +40 -0
- package/dist/cli/graphstore.js +639 -0
- package/dist/cli/group.d.ts +2 -0
- package/dist/cli/group.js +306 -0
- package/dist/cli/index-repo.d.ts +15 -0
- package/dist/cli/index-repo.js +120 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +236 -0
- package/dist/cli/lazy-action.d.ts +6 -0
- package/dist/cli/lazy-action.js +18 -0
- package/dist/cli/list.d.ts +6 -0
- package/dist/cli/list.js +40 -0
- package/dist/cli/mcp.d.ts +8 -0
- package/dist/cli/mcp.js +36 -0
- package/dist/cli/remove.d.ts +30 -0
- package/dist/cli/remove.js +99 -0
- package/dist/cli/serve.d.ts +4 -0
- package/dist/cli/serve.js +37 -0
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +543 -0
- package/dist/cli/skill-gen.d.ts +26 -0
- package/dist/cli/skill-gen.js +555 -0
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.js +36 -0
- package/dist/cli/tool.d.ts +43 -0
- package/dist/cli/tool.js +168 -0
- package/dist/cli/wiki.d.ts +21 -0
- package/dist/cli/wiki.js +579 -0
- package/dist/config/ignore-service.d.ts +35 -0
- package/dist/config/ignore-service.js +436 -0
- package/dist/config/supported-languages.d.ts +13 -0
- package/dist/config/supported-languages.js +13 -0
- package/dist/core/augmentation/engine.d.ts +26 -0
- package/dist/core/augmentation/engine.js +252 -0
- package/dist/core/embeddings/ast-utils.d.ts +22 -0
- package/dist/core/embeddings/ast-utils.js +105 -0
- package/dist/core/embeddings/character-chunk.d.ts +12 -0
- package/dist/core/embeddings/character-chunk.js +43 -0
- package/dist/core/embeddings/chunker.d.ts +14 -0
- package/dist/core/embeddings/chunker.js +239 -0
- package/dist/core/embeddings/embedder.d.ts +65 -0
- package/dist/core/embeddings/embedder.js +320 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +62 -0
- package/dist/core/embeddings/embedding-pipeline.js +486 -0
- package/dist/core/embeddings/http-client.d.ts +31 -0
- package/dist/core/embeddings/http-client.js +179 -0
- package/dist/core/embeddings/index.d.ts +10 -0
- package/dist/core/embeddings/index.js +10 -0
- package/dist/core/embeddings/line-index.d.ts +7 -0
- package/dist/core/embeddings/line-index.js +42 -0
- package/dist/core/embeddings/server-mapping.d.ts +15 -0
- package/dist/core/embeddings/server-mapping.js +33 -0
- package/dist/core/embeddings/structural-extractor.d.ts +15 -0
- package/dist/core/embeddings/structural-extractor.js +58 -0
- package/dist/core/embeddings/text-generator.d.ts +31 -0
- package/dist/core/embeddings/text-generator.js +208 -0
- package/dist/core/embeddings/types.d.ts +207 -0
- package/dist/core/embeddings/types.js +200 -0
- package/dist/core/git-staleness.d.ts +31 -0
- package/dist/core/git-staleness.js +137 -0
- package/dist/core/graph/graph.d.ts +2 -0
- package/dist/core/graph/graph.js +173 -0
- package/dist/core/graph/types.d.ts +36 -0
- package/dist/core/graph/types.js +1 -0
- package/dist/core/graphstore/index.d.ts +46 -0
- package/dist/core/graphstore/index.js +80 -0
- package/dist/core/graphstore/lbug-row-source.d.ts +19 -0
- package/dist/core/graphstore/lbug-row-source.js +141 -0
- package/dist/core/group/bridge-db.d.ts +82 -0
- package/dist/core/group/bridge-db.js +460 -0
- package/dist/core/group/bridge-schema.d.ts +27 -0
- package/dist/core/group/bridge-schema.js +55 -0
- package/dist/core/group/config-parser.d.ts +7 -0
- package/dist/core/group/config-parser.js +100 -0
- package/dist/core/group/contract-extractor.d.ts +7 -0
- package/dist/core/group/contract-extractor.js +1 -0
- package/dist/core/group/cross-impact.d.ts +41 -0
- package/dist/core/group/cross-impact.js +441 -0
- package/dist/core/group/extractors/fs-utils.d.ts +10 -0
- package/dist/core/group/extractors/fs-utils.js +24 -0
- package/dist/core/group/extractors/grpc-extractor.d.ts +25 -0
- package/dist/core/group/extractors/grpc-extractor.js +401 -0
- package/dist/core/group/extractors/grpc-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/go.js +97 -0
- package/dist/core/group/extractors/grpc-patterns/index.d.ts +19 -0
- package/dist/core/group/extractors/grpc-patterns/index.js +46 -0
- package/dist/core/group/extractors/grpc-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/java.js +173 -0
- package/dist/core/group/extractors/grpc-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/grpc-patterns/node.js +290 -0
- package/dist/core/group/extractors/grpc-patterns/proto.d.ts +9 -0
- package/dist/core/group/extractors/grpc-patterns/proto.js +134 -0
- package/dist/core/group/extractors/grpc-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/python.js +67 -0
- package/dist/core/group/extractors/grpc-patterns/types.d.ts +50 -0
- package/dist/core/group/extractors/grpc-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/go.js +215 -0
- package/dist/core/group/extractors/http-patterns/index.d.ts +17 -0
- package/dist/core/group/extractors/http-patterns/index.js +44 -0
- package/dist/core/group/extractors/http-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/java.js +253 -0
- package/dist/core/group/extractors/http-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/http-patterns/node.js +484 -0
- package/dist/core/group/extractors/http-patterns/php.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/php.js +178 -0
- package/dist/core/group/extractors/http-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/python.js +133 -0
- package/dist/core/group/extractors/http-patterns/types.d.ts +61 -0
- package/dist/core/group/extractors/http-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +21 -0
- package/dist/core/group/extractors/http-route-extractor.js +421 -0
- package/dist/core/group/extractors/manifest-extractor.d.ts +54 -0
- package/dist/core/group/extractors/manifest-extractor.js +292 -0
- package/dist/core/group/extractors/topic-extractor.d.ts +8 -0
- package/dist/core/group/extractors/topic-extractor.js +97 -0
- package/dist/core/group/extractors/topic-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/go.js +120 -0
- package/dist/core/group/extractors/topic-patterns/index.d.ts +14 -0
- package/dist/core/group/extractors/topic-patterns/index.js +38 -0
- package/dist/core/group/extractors/topic-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/java.js +80 -0
- package/dist/core/group/extractors/topic-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/topic-patterns/node.js +155 -0
- package/dist/core/group/extractors/topic-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/python.js +116 -0
- package/dist/core/group/extractors/topic-patterns/types.d.ts +25 -0
- package/dist/core/group/extractors/topic-patterns/types.js +10 -0
- package/dist/core/group/extractors/tree-sitter-scanner.d.ts +113 -0
- package/dist/core/group/extractors/tree-sitter-scanner.js +94 -0
- package/dist/core/group/group-path-utils.d.ts +17 -0
- package/dist/core/group/group-path-utils.js +40 -0
- package/dist/core/group/matching.d.ts +13 -0
- package/dist/core/group/matching.js +198 -0
- package/dist/core/group/normalization.d.ts +3 -0
- package/dist/core/group/normalization.js +115 -0
- package/dist/core/group/resolve-at-member.d.ts +10 -0
- package/dist/core/group/resolve-at-member.js +31 -0
- package/dist/core/group/service-boundary-detector.d.ts +8 -0
- package/dist/core/group/service-boundary-detector.js +155 -0
- package/dist/core/group/service.d.ts +55 -0
- package/dist/core/group/service.js +394 -0
- package/dist/core/group/storage.d.ts +9 -0
- package/dist/core/group/storage.js +91 -0
- package/dist/core/group/sync.d.ts +21 -0
- package/dist/core/group/sync.js +196 -0
- package/dist/core/group/types.d.ts +160 -0
- package/dist/core/group/types.js +1 -0
- package/dist/core/ingestion/ast-cache.d.ts +26 -0
- package/dist/core/ingestion/ast-cache.js +47 -0
- package/dist/core/ingestion/binding-accumulator.d.ts +212 -0
- package/dist/core/ingestion/binding-accumulator.js +336 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.js +8 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.js +6 -0
- package/dist/core/ingestion/call-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/dart.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/go.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.js +51 -0
- package/dist/core/ingestion/call-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/php.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/python.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/rust.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/swift.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.js +8 -0
- package/dist/core/ingestion/call-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/call-extractors/generic.js +59 -0
- package/dist/core/ingestion/call-processor.d.ts +235 -0
- package/dist/core/ingestion/call-processor.js +2639 -0
- package/dist/core/ingestion/call-routing.d.ts +55 -0
- package/dist/core/ingestion/call-routing.js +95 -0
- package/dist/core/ingestion/call-types.d.ts +135 -0
- package/dist/core/ingestion/call-types.js +2 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +11 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.js +21 -0
- package/dist/core/ingestion/class-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/dart.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.js +35 -0
- package/dist/core/ingestion/class-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/php.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/python.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/rust.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/swift.js +18 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.d.ts +4 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.js +28 -0
- package/dist/core/ingestion/class-extractors/generic.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/generic.js +135 -0
- package/dist/core/ingestion/class-types.d.ts +34 -0
- package/dist/core/ingestion/class-types.js +1 -0
- package/dist/core/ingestion/cluster-enricher.d.ts +38 -0
- package/dist/core/ingestion/cluster-enricher.js +168 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.d.ts +57 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.js +392 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +210 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1715 -0
- package/dist/core/ingestion/cobol/jcl-parser.d.ts +68 -0
- package/dist/core/ingestion/cobol/jcl-parser.js +217 -0
- package/dist/core/ingestion/cobol/jcl-processor.d.ts +33 -0
- package/dist/core/ingestion/cobol/jcl-processor.js +229 -0
- package/dist/core/ingestion/cobol-processor.d.ts +54 -0
- package/dist/core/ingestion/cobol-processor.js +1232 -0
- package/dist/core/ingestion/community-processor.d.ts +39 -0
- package/dist/core/ingestion/community-processor.js +318 -0
- package/dist/core/ingestion/constants.d.ts +16 -0
- package/dist/core/ingestion/constants.js +16 -0
- package/dist/core/ingestion/emit-references.d.ts +88 -0
- package/dist/core/ingestion/emit-references.js +229 -0
- package/dist/core/ingestion/entry-point-scoring.d.ts +58 -0
- package/dist/core/ingestion/entry-point-scoring.js +380 -0
- package/dist/core/ingestion/export-detection.d.ts +57 -0
- package/dist/core/ingestion/export-detection.js +233 -0
- package/dist/core/ingestion/field-extractor.d.ts +29 -0
- package/dist/core/ingestion/field-extractor.js +25 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.js +104 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.js +116 -0
- package/dist/core/ingestion/field-extractors/configs/dart.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/dart.js +78 -0
- package/dist/core/ingestion/field-extractors/configs/go.d.ts +11 -0
- package/dist/core/ingestion/field-extractors/configs/go.js +60 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.d.ts +53 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.js +158 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.js +118 -0
- package/dist/core/ingestion/field-extractors/configs/php.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/php.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/python.d.ts +12 -0
- package/dist/core/ingestion/field-extractors/configs/python.js +91 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.d.ts +16 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.js +76 -0
- package/dist/core/ingestion/field-extractors/configs/rust.d.ts +9 -0
- package/dist/core/ingestion/field-extractors/configs/rust.js +52 -0
- package/dist/core/ingestion/field-extractors/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/swift.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.js +56 -0
- package/dist/core/ingestion/field-extractors/generic.d.ts +49 -0
- package/dist/core/ingestion/field-extractors/generic.js +117 -0
- package/dist/core/ingestion/field-extractors/typescript.d.ts +77 -0
- package/dist/core/ingestion/field-extractors/typescript.js +291 -0
- package/dist/core/ingestion/field-types.d.ts +61 -0
- package/dist/core/ingestion/field-types.js +2 -0
- package/dist/core/ingestion/filesystem-walker.d.ts +28 -0
- package/dist/core/ingestion/filesystem-walker.js +91 -0
- package/dist/core/ingestion/finalize-orchestrator.d.ts +63 -0
- package/dist/core/ingestion/finalize-orchestrator.js +139 -0
- package/dist/core/ingestion/framework-detection.d.ts +150 -0
- package/dist/core/ingestion/framework-detection.js +786 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +13 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +18 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +65 -0
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +23 -0
- package/dist/core/ingestion/heritage-extractors/generic.js +47 -0
- package/dist/core/ingestion/heritage-processor.d.ts +54 -0
- package/dist/core/ingestion/heritage-processor.js +360 -0
- package/dist/core/ingestion/heritage-types.d.ts +73 -0
- package/dist/core/ingestion/heritage-types.js +2 -0
- package/dist/core/ingestion/import-processor.d.ts +23 -0
- package/dist/core/ingestion/import-processor.js +373 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.js +14 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +27 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/go.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/go.js +26 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.d.ts +13 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.js +68 -0
- package/dist/core/ingestion/import-resolvers/configs/php.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/php.js +15 -0
- package/dist/core/ingestion/import-resolvers/configs/python.d.ts +12 -0
- package/dist/core/ingestion/import-resolvers/configs/python.js +41 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.js +16 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.js +29 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.d.ts +9 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.js +23 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +18 -0
- package/dist/core/ingestion/import-resolvers/csharp.js +115 -0
- package/dist/core/ingestion/import-resolvers/go.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/go.js +46 -0
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +27 -0
- package/dist/core/ingestion/import-resolvers/jvm.js +106 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/php.js +77 -0
- package/dist/core/ingestion/import-resolvers/python.d.ts +22 -0
- package/dist/core/ingestion/import-resolvers/python.js +72 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.js +33 -0
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +14 -0
- package/dist/core/ingestion/import-resolvers/ruby.js +17 -0
- package/dist/core/ingestion/import-resolvers/rust.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/rust.js +75 -0
- package/dist/core/ingestion/import-resolvers/standard.d.ts +30 -0
- package/dist/core/ingestion/import-resolvers/standard.js +142 -0
- package/dist/core/ingestion/import-resolvers/types.d.ts +68 -0
- package/dist/core/ingestion/import-resolvers/types.js +6 -0
- package/dist/core/ingestion/import-resolvers/utils.d.ts +35 -0
- package/dist/core/ingestion/import-resolvers/utils.js +149 -0
- package/dist/core/ingestion/import-target-adapter.d.ts +73 -0
- package/dist/core/ingestion/import-target-adapter.js +95 -0
- package/dist/core/ingestion/language-config.d.ts +52 -0
- package/dist/core/ingestion/language-config.js +181 -0
- package/dist/core/ingestion/language-provider.d.ts +410 -0
- package/dist/core/ingestion/language-provider.js +24 -0
- package/dist/core/ingestion/languages/c-cpp.d.ts +12 -0
- package/dist/core/ingestion/languages/c-cpp.js +329 -0
- package/dist/core/ingestion/languages/cobol.d.ts +1 -0
- package/dist/core/ingestion/languages/cobol.js +26 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +21 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +56 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.d.ts +26 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.js +46 -0
- package/dist/core/ingestion/languages/csharp/arity.d.ts +23 -0
- package/dist/core/ingestion/languages/csharp/arity.js +37 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/csharp/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/captures.js +249 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.js +93 -0
- package/dist/core/ingestion/languages/csharp/import-target.d.ts +25 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +123 -0
- package/dist/core/ingestion/languages/csharp/index.d.ts +82 -0
- package/dist/core/ingestion/languages/csharp/index.js +82 -0
- package/dist/core/ingestion/languages/csharp/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/interpret.js +132 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.d.ts +27 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.js +55 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +50 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +374 -0
- package/dist/core/ingestion/languages/csharp/query.d.ts +35 -0
- package/dist/core/ingestion/languages/csharp/query.js +515 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.d.ts +31 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.js +135 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.d.ts +10 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +63 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.d.ts +53 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.js +76 -0
- package/dist/core/ingestion/languages/csharp.d.ts +8 -0
- package/dist/core/ingestion/languages/csharp.js +152 -0
- package/dist/core/ingestion/languages/dart.d.ts +12 -0
- package/dist/core/ingestion/languages/dart.js +102 -0
- package/dist/core/ingestion/languages/go.d.ts +11 -0
- package/dist/core/ingestion/languages/go.js +44 -0
- package/dist/core/ingestion/languages/index.d.ts +39 -0
- package/dist/core/ingestion/languages/index.js +64 -0
- package/dist/core/ingestion/languages/java.d.ts +9 -0
- package/dist/core/ingestion/languages/java.js +44 -0
- package/dist/core/ingestion/languages/kotlin.d.ts +9 -0
- package/dist/core/ingestion/languages/kotlin.js +123 -0
- package/dist/core/ingestion/languages/php.d.ts +8 -0
- package/dist/core/ingestion/languages/php.js +240 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +24 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +45 -0
- package/dist/core/ingestion/languages/python/arity.d.ts +22 -0
- package/dist/core/ingestion/languages/python/arity.js +38 -0
- package/dist/core/ingestion/languages/python/cache-stats.d.ts +17 -0
- package/dist/core/ingestion/languages/python/cache-stats.js +28 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/python/captures.js +106 -0
- package/dist/core/ingestion/languages/python/import-decomposer.d.ts +15 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +112 -0
- package/dist/core/ingestion/languages/python/import-target.d.ts +21 -0
- package/dist/core/ingestion/languages/python/import-target.js +99 -0
- package/dist/core/ingestion/languages/python/index.d.ts +80 -0
- package/dist/core/ingestion/languages/python/index.js +80 -0
- package/dist/core/ingestion/languages/python/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/python/interpret.js +191 -0
- package/dist/core/ingestion/languages/python/merge-bindings.d.ts +16 -0
- package/dist/core/ingestion/languages/python/merge-bindings.js +44 -0
- package/dist/core/ingestion/languages/python/query.d.ts +9 -0
- package/dist/core/ingestion/languages/python/query.js +267 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +21 -0
- package/dist/core/ingestion/languages/python/receiver-binding.js +116 -0
- package/dist/core/ingestion/languages/python/scope-resolver.d.ts +16 -0
- package/dist/core/ingestion/languages/python/scope-resolver.js +53 -0
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +23 -0
- package/dist/core/ingestion/languages/python/simple-hooks.js +35 -0
- package/dist/core/ingestion/languages/python.d.ts +12 -0
- package/dist/core/ingestion/languages/python.js +91 -0
- package/dist/core/ingestion/languages/ruby.d.ts +9 -0
- package/dist/core/ingestion/languages/ruby.js +210 -0
- package/dist/core/ingestion/languages/rust.d.ts +12 -0
- package/dist/core/ingestion/languages/rust.js +132 -0
- package/dist/core/ingestion/languages/swift.d.ts +12 -0
- package/dist/core/ingestion/languages/swift.js +244 -0
- package/dist/core/ingestion/languages/typescript.d.ts +11 -0
- package/dist/core/ingestion/languages/typescript.js +184 -0
- package/dist/core/ingestion/languages/vue.d.ts +13 -0
- package/dist/core/ingestion/languages/vue.js +77 -0
- package/dist/core/ingestion/markdown-processor.d.ts +17 -0
- package/dist/core/ingestion/markdown-processor.js +124 -0
- package/dist/core/ingestion/method-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.js +287 -0
- package/dist/core/ingestion/method-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/dart.js +376 -0
- package/dist/core/ingestion/method-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/go.js +176 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.js +336 -0
- package/dist/core/ingestion/method-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/php.js +304 -0
- package/dist/core/ingestion/method-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/python.js +309 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.js +286 -0
- package/dist/core/ingestion/method-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/rust.js +195 -0
- package/dist/core/ingestion/method-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/swift.js +277 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.js +338 -0
- package/dist/core/ingestion/method-extractors/generic.d.ts +11 -0
- package/dist/core/ingestion/method-extractors/generic.js +204 -0
- package/dist/core/ingestion/method-types.d.ts +90 -0
- package/dist/core/ingestion/method-types.js +2 -0
- package/dist/core/ingestion/model/field-registry.d.ts +18 -0
- package/dist/core/ingestion/model/field-registry.js +22 -0
- package/dist/core/ingestion/model/heritage-map.d.ts +105 -0
- package/dist/core/ingestion/model/heritage-map.js +260 -0
- package/dist/core/ingestion/model/index.d.ts +20 -0
- package/dist/core/ingestion/model/index.js +43 -0
- package/dist/core/ingestion/model/method-registry.d.ts +71 -0
- package/dist/core/ingestion/model/method-registry.js +134 -0
- package/dist/core/ingestion/model/registration-table.d.ts +138 -0
- package/dist/core/ingestion/model/registration-table.js +224 -0
- package/dist/core/ingestion/model/resolution-context.d.ts +93 -0
- package/dist/core/ingestion/model/resolution-context.js +337 -0
- package/dist/core/ingestion/model/resolve.d.ts +61 -0
- package/dist/core/ingestion/model/resolve.js +381 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +59 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.js +42 -0
- package/dist/core/ingestion/model/semantic-model.d.ts +150 -0
- package/dist/core/ingestion/model/semantic-model.js +175 -0
- package/dist/core/ingestion/model/symbol-table.d.ts +200 -0
- package/dist/core/ingestion/model/symbol-table.js +206 -0
- package/dist/core/ingestion/model/type-registry.d.ts +39 -0
- package/dist/core/ingestion/model/type-registry.js +62 -0
- package/dist/core/ingestion/mro-processor.d.ts +46 -0
- package/dist/core/ingestion/mro-processor.js +597 -0
- package/dist/core/ingestion/named-bindings/csharp.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/csharp.js +37 -0
- package/dist/core/ingestion/named-bindings/java.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/java.js +29 -0
- package/dist/core/ingestion/named-bindings/kotlin.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/kotlin.js +36 -0
- package/dist/core/ingestion/named-bindings/php.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/php.js +61 -0
- package/dist/core/ingestion/named-bindings/python.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/python.js +49 -0
- package/dist/core/ingestion/named-bindings/rust.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/rust.js +66 -0
- package/dist/core/ingestion/named-bindings/types.d.ts +16 -0
- package/dist/core/ingestion/named-bindings/types.js +6 -0
- package/dist/core/ingestion/named-bindings/typescript.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/typescript.js +58 -0
- package/dist/core/ingestion/parsing-processor.d.ts +40 -0
- package/dist/core/ingestion/parsing-processor.js +576 -0
- package/dist/core/ingestion/pipeline-phases/cobol.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/cobol.js +45 -0
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/communities.js +62 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +156 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.js +63 -0
- package/dist/core/ingestion/pipeline-phases/index.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/index.js +23 -0
- package/dist/core/ingestion/pipeline-phases/markdown.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/markdown.js +33 -0
- package/dist/core/ingestion/pipeline-phases/mro.d.ts +18 -0
- package/dist/core/ingestion/pipeline-phases/mro.js +36 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.js +92 -0
- package/dist/core/ingestion/pipeline-phases/orm.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/orm.js +74 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +58 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +458 -0
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +74 -0
- package/dist/core/ingestion/pipeline-phases/parse.js +33 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/processes.js +143 -0
- package/dist/core/ingestion/pipeline-phases/routes.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/routes.js +243 -0
- package/dist/core/ingestion/pipeline-phases/runner.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/runner.js +203 -0
- package/dist/core/ingestion/pipeline-phases/scan.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/scan.js +46 -0
- package/dist/core/ingestion/pipeline-phases/structure.d.ts +27 -0
- package/dist/core/ingestion/pipeline-phases/structure.js +35 -0
- package/dist/core/ingestion/pipeline-phases/tools.d.ts +20 -0
- package/dist/core/ingestion/pipeline-phases/tools.js +79 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +79 -0
- package/dist/core/ingestion/pipeline-phases/types.js +37 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.d.ts +70 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +312 -0
- package/dist/core/ingestion/pipeline.d.ts +36 -0
- package/dist/core/ingestion/pipeline.js +89 -0
- package/dist/core/ingestion/process-processor.d.ts +51 -0
- package/dist/core/ingestion/process-processor.js +317 -0
- package/dist/core/ingestion/registry-primary-flag.d.ts +86 -0
- package/dist/core/ingestion/registry-primary-flag.js +111 -0
- package/dist/core/ingestion/resolve-references.d.ts +63 -0
- package/dist/core/ingestion/resolve-references.js +175 -0
- package/dist/core/ingestion/route-extractors/expo.d.ts +1 -0
- package/dist/core/ingestion/route-extractors/expo.js +36 -0
- package/dist/core/ingestion/route-extractors/middleware.d.ts +47 -0
- package/dist/core/ingestion/route-extractors/middleware.js +167 -0
- package/dist/core/ingestion/route-extractors/nextjs.d.ts +3 -0
- package/dist/core/ingestion/route-extractors/nextjs.js +76 -0
- package/dist/core/ingestion/route-extractors/php.d.ts +7 -0
- package/dist/core/ingestion/route-extractors/php.js +22 -0
- package/dist/core/ingestion/route-extractors/response-shapes.d.ts +20 -0
- package/dist/core/ingestion/route-extractors/response-shapes.js +294 -0
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +32 -0
- package/dist/core/ingestion/scope-extractor-bridge.js +44 -0
- package/dist/core/ingestion/scope-extractor.d.ts +86 -0
- package/dist/core/ingestion/scope-extractor.js +758 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +372 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +212 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +43 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +79 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +57 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +112 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +46 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.d.ts +19 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +30 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +37 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +113 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +38 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +73 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +198 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +27 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +131 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +48 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +130 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.js +99 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +26 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +61 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +46 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +327 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +130 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.d.ts +68 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +125 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +21 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +66 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +157 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +36 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +52 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +127 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +349 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +52 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.js +61 -0
- package/dist/core/ingestion/shadow-harness.d.ts +113 -0
- package/dist/core/ingestion/shadow-harness.js +148 -0
- package/dist/core/ingestion/structure-processor.d.ts +2 -0
- package/dist/core/ingestion/structure-processor.js +36 -0
- package/dist/core/ingestion/tree-sitter-queries.d.ts +16 -0
- package/dist/core/ingestion/tree-sitter-queries.js +1338 -0
- package/dist/core/ingestion/type-env.d.ts +86 -0
- package/dist/core/ingestion/type-env.js +1128 -0
- package/dist/core/ingestion/type-extractors/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/type-extractors/c-cpp.js +532 -0
- package/dist/core/ingestion/type-extractors/csharp.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/csharp.js +583 -0
- package/dist/core/ingestion/type-extractors/dart.d.ts +15 -0
- package/dist/core/ingestion/type-extractors/dart.js +369 -0
- package/dist/core/ingestion/type-extractors/go.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/go.js +513 -0
- package/dist/core/ingestion/type-extractors/jvm.d.ts +3 -0
- package/dist/core/ingestion/type-extractors/jvm.js +856 -0
- package/dist/core/ingestion/type-extractors/php.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/php.js +534 -0
- package/dist/core/ingestion/type-extractors/python.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/python.js +474 -0
- package/dist/core/ingestion/type-extractors/ruby.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/ruby.js +377 -0
- package/dist/core/ingestion/type-extractors/rust.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/rust.js +515 -0
- package/dist/core/ingestion/type-extractors/shared.d.ts +131 -0
- package/dist/core/ingestion/type-extractors/shared.js +796 -0
- package/dist/core/ingestion/type-extractors/swift.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/swift.js +484 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +172 -0
- package/dist/core/ingestion/type-extractors/types.js +1 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/typescript.js +661 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +89 -0
- package/dist/core/ingestion/utils/ast-helpers.js +535 -0
- package/dist/core/ingestion/utils/call-analysis.d.ts +75 -0
- package/dist/core/ingestion/utils/call-analysis.js +574 -0
- package/dist/core/ingestion/utils/env.d.ts +10 -0
- package/dist/core/ingestion/utils/env.js +10 -0
- package/dist/core/ingestion/utils/event-loop.d.ts +5 -0
- package/dist/core/ingestion/utils/event-loop.js +5 -0
- package/dist/core/ingestion/utils/graph-sort.d.ts +58 -0
- package/dist/core/ingestion/utils/graph-sort.js +100 -0
- package/dist/core/ingestion/utils/max-file-size.d.ts +20 -0
- package/dist/core/ingestion/utils/max-file-size.js +52 -0
- package/dist/core/ingestion/utils/method-props.d.ts +32 -0
- package/dist/core/ingestion/utils/method-props.js +147 -0
- package/dist/core/ingestion/utils/ruby-self-call.d.ts +52 -0
- package/dist/core/ingestion/utils/ruby-self-call.js +59 -0
- package/dist/core/ingestion/utils/verbose.d.ts +1 -0
- package/dist/core/ingestion/utils/verbose.js +7 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +81 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.d.ts +9 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.js +63 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +94 -0
- package/dist/core/ingestion/variable-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/go.js +83 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.d.ts +18 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +115 -0
- package/dist/core/ingestion/variable-extractors/configs/php.d.ts +14 -0
- package/dist/core/ingestion/variable-extractors/configs/php.js +58 -0
- package/dist/core/ingestion/variable-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/python.js +101 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.d.ts +11 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.js +52 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.js +76 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.js +88 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.js +83 -0
- package/dist/core/ingestion/variable-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/variable-extractors/generic.js +80 -0
- package/dist/core/ingestion/variable-types.d.ts +82 -0
- package/dist/core/ingestion/variable-types.js +2 -0
- package/dist/core/ingestion/vue-sfc-extractor.d.ts +44 -0
- package/dist/core/ingestion/vue-sfc-extractor.js +94 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +198 -0
- package/dist/core/ingestion/workers/parse-worker.js +1928 -0
- package/dist/core/ingestion/workers/worker-pool.d.ts +16 -0
- package/dist/core/ingestion/workers/worker-pool.js +126 -0
- package/dist/core/lbug/csv-generator.d.ts +33 -0
- package/dist/core/lbug/csv-generator.js +459 -0
- package/dist/core/lbug/lbug-adapter.d.ts +173 -0
- package/dist/core/lbug/lbug-adapter.js +1188 -0
- package/dist/core/lbug/pool-adapter.d.ts +93 -0
- package/dist/core/lbug/pool-adapter.js +543 -0
- package/dist/core/lbug/schema.d.ts +62 -0
- package/dist/core/lbug/schema.js +484 -0
- package/dist/core/run-analyze.d.ts +72 -0
- package/dist/core/run-analyze.js +315 -0
- package/dist/core/search/bm25-index.d.ts +41 -0
- package/dist/core/search/bm25-index.js +209 -0
- package/dist/core/search/hybrid-search.d.ts +49 -0
- package/dist/core/search/hybrid-search.js +118 -0
- package/dist/core/search/phase-timer.d.ts +72 -0
- package/dist/core/search/phase-timer.js +106 -0
- package/dist/core/tree-sitter/parser-loader.d.ts +8 -0
- package/dist/core/tree-sitter/parser-loader.js +84 -0
- package/dist/core/wiki/cursor-client.d.ts +31 -0
- package/dist/core/wiki/cursor-client.js +122 -0
- package/dist/core/wiki/generator.d.ts +129 -0
- package/dist/core/wiki/generator.js +898 -0
- package/dist/core/wiki/graph-queries.d.ts +84 -0
- package/dist/core/wiki/graph-queries.js +244 -0
- package/dist/core/wiki/html-viewer.d.ts +10 -0
- package/dist/core/wiki/html-viewer.js +303 -0
- package/dist/core/wiki/llm-client.d.ts +63 -0
- package/dist/core/wiki/llm-client.js +234 -0
- package/dist/core/wiki/prompts.d.ts +53 -0
- package/dist/core/wiki/prompts.js +181 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/mcp/compatible-stdio-transport.d.ts +25 -0
- package/dist/mcp/compatible-stdio-transport.js +200 -0
- package/dist/mcp/core/embedder.d.ts +27 -0
- package/dist/mcp/core/embedder.js +122 -0
- package/dist/mcp/core/lbug-adapter.d.ts +5 -0
- package/dist/mcp/core/lbug-adapter.js +5 -0
- package/dist/mcp/local/graphstore-handler.d.ts +214 -0
- package/dist/mcp/local/graphstore-handler.js +272 -0
- package/dist/mcp/local/local-backend.d.ts +347 -0
- package/dist/mcp/local/local-backend.js +3218 -0
- package/dist/mcp/resources.d.ts +62 -0
- package/dist/mcp/resources.js +696 -0
- package/dist/mcp/server.d.ts +23 -0
- package/dist/mcp/server.js +533 -0
- package/dist/mcp/staleness.d.ts +5 -0
- package/dist/mcp/staleness.js +4 -0
- package/dist/mcp/tools.d.ts +27 -0
- package/dist/mcp/tools.js +823 -0
- package/dist/server/analyze-job.d.ts +55 -0
- package/dist/server/analyze-job.js +150 -0
- package/dist/server/analyze-worker.d.ts +13 -0
- package/dist/server/analyze-worker.js +59 -0
- package/dist/server/api.d.ts +47 -0
- package/dist/server/api.js +1727 -0
- package/dist/server/git-clone.d.ts +26 -0
- package/dist/server/git-clone.js +184 -0
- package/dist/server/mcp-http.d.ts +13 -0
- package/dist/server/mcp-http.js +100 -0
- package/dist/storage/git.d.ts +80 -0
- package/dist/storage/git.js +190 -0
- package/dist/storage/repo-manager.d.ts +458 -0
- package/dist/storage/repo-manager.js +766 -0
- package/dist/types/pipeline.d.ts +18 -0
- package/dist/types/pipeline.js +1 -0
- package/hooks/claude/codragraph-hook.cjs +268 -0
- package/hooks/claude/pre-tool-use.sh +79 -0
- package/hooks/claude/session-start.sh +42 -0
- package/package.json +127 -0
- package/scripts/bench-scope-resolution.ts +134 -0
- package/scripts/build-tree-sitter-proto.cjs +82 -0
- package/scripts/build.js +90 -0
- package/scripts/ci-list-migrated-languages.ts +24 -0
- package/scripts/patch-tree-sitter-swift.cjs +78 -0
- package/skills/codragraph-cli.md +82 -0
- package/skills/codragraph-debugging.md +89 -0
- package/skills/codragraph-exploring.md +78 -0
- package/skills/codragraph-guide.md +64 -0
- package/skills/codragraph-impact-analysis.md +97 -0
- package/skills/codragraph-pr-review.md +163 -0
- package/skills/codragraph-refactoring.md +121 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -0
- package/vendor/tree-sitter-proto/binding.gyp +30 -0
- package/vendor/tree-sitter-proto/bindings/node/binding.cc +20 -0
- package/vendor/tree-sitter-proto/bindings/node/index.d.ts +28 -0
- package/vendor/tree-sitter-proto/bindings/node/index.js +7 -0
- package/vendor/tree-sitter-proto/package.json +12 -0
- package/vendor/tree-sitter-proto/src/node-types.json +1145 -0
- package/vendor/tree-sitter-proto/src/parser.c +10149 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/alloc.h +54 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/array.h +291 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/parser.h +266 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Embedding Client
|
|
3
|
+
*
|
|
4
|
+
* Shared fetch+retry logic for OpenAI-compatible /v1/embeddings endpoints.
|
|
5
|
+
* Imported by both the core embedder (batch) and MCP embedder (query).
|
|
6
|
+
*/
|
|
7
|
+
const HTTP_TIMEOUT_MS = 30_000;
|
|
8
|
+
const HTTP_MAX_RETRIES = 2;
|
|
9
|
+
const HTTP_RETRY_BACKOFF_MS = 1_000;
|
|
10
|
+
const HTTP_BATCH_SIZE = 64;
|
|
11
|
+
const DEFAULT_DIMS = 384;
|
|
12
|
+
/**
|
|
13
|
+
* Build config from the current process.env snapshot.
|
|
14
|
+
* Returns null when CODRAGRAPH_EMBEDDING_URL + CODRAGRAPH_EMBEDDING_MODEL are unset.
|
|
15
|
+
* Not cached — env vars are read fresh so late configuration takes effect.
|
|
16
|
+
*/
|
|
17
|
+
const readConfig = () => {
|
|
18
|
+
const baseUrl = process.env.CODRAGRAPH_EMBEDDING_URL;
|
|
19
|
+
const model = process.env.CODRAGRAPH_EMBEDDING_MODEL;
|
|
20
|
+
if (!baseUrl || !model)
|
|
21
|
+
return null;
|
|
22
|
+
const rawDims = process.env.CODRAGRAPH_EMBEDDING_DIMS;
|
|
23
|
+
let dimensions;
|
|
24
|
+
if (rawDims !== undefined) {
|
|
25
|
+
const parsed = parseInt(rawDims, 10);
|
|
26
|
+
if (Number.isNaN(parsed) || parsed <= 0) {
|
|
27
|
+
throw new Error(`CODRAGRAPH_EMBEDDING_DIMS must be a positive integer, got "${rawDims}"`);
|
|
28
|
+
}
|
|
29
|
+
dimensions = parsed;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
baseUrl: baseUrl.replace(/\/+$/, ''),
|
|
33
|
+
model,
|
|
34
|
+
apiKey: process.env.CODRAGRAPH_EMBEDDING_API_KEY ?? 'unused',
|
|
35
|
+
dimensions,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Check whether HTTP embedding mode is active (env vars are set).
|
|
40
|
+
*/
|
|
41
|
+
export const isHttpMode = () => readConfig() !== null;
|
|
42
|
+
/**
|
|
43
|
+
* Return the configured embedding dimensions for HTTP mode, or undefined
|
|
44
|
+
* if HTTP mode is not active or no explicit dimensions are set.
|
|
45
|
+
*/
|
|
46
|
+
export const getHttpDimensions = () => readConfig()?.dimensions;
|
|
47
|
+
/**
|
|
48
|
+
* Return a safe representation of a URL for error messages.
|
|
49
|
+
* Strips query string (may contain tokens) and userinfo.
|
|
50
|
+
*/
|
|
51
|
+
const safeUrl = (url) => {
|
|
52
|
+
try {
|
|
53
|
+
const u = new URL(url);
|
|
54
|
+
return `${u.protocol}//${u.host}${u.pathname}`;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return '<invalid-url>';
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Send a single batch of texts to the embedding endpoint with retry.
|
|
62
|
+
*
|
|
63
|
+
* @param url - Full endpoint URL (e.g. https://host/v1/embeddings)
|
|
64
|
+
* @param batch - Texts to embed
|
|
65
|
+
* @param model - Model name for the request body
|
|
66
|
+
* @param apiKey - Bearer token (only used in Authorization header)
|
|
67
|
+
* @param batchIndex - Logical batch number (for error context)
|
|
68
|
+
* @param attempt - Current retry attempt (internal)
|
|
69
|
+
*/
|
|
70
|
+
const httpEmbedBatch = async (url, batch, model, apiKey, batchIndex = 0, attempt = 0) => {
|
|
71
|
+
let resp;
|
|
72
|
+
try {
|
|
73
|
+
resp = await fetch(url, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
signal: AbortSignal.timeout(HTTP_TIMEOUT_MS),
|
|
76
|
+
headers: {
|
|
77
|
+
'Content-Type': 'application/json',
|
|
78
|
+
Authorization: `Bearer ${apiKey}`,
|
|
79
|
+
},
|
|
80
|
+
body: JSON.stringify({ input: batch, model }),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
// Timeouts should not be retried — the server is unresponsive.
|
|
85
|
+
// AbortSignal.timeout() throws DOMException with name 'TimeoutError'.
|
|
86
|
+
const isTimeout = err instanceof DOMException && err.name === 'TimeoutError';
|
|
87
|
+
if (isTimeout) {
|
|
88
|
+
throw new Error(`Embedding request timed out after ${HTTP_TIMEOUT_MS}ms (${safeUrl(url)}, batch ${batchIndex})`);
|
|
89
|
+
}
|
|
90
|
+
// DNS, connection errors — retry with backoff
|
|
91
|
+
if (attempt < HTTP_MAX_RETRIES) {
|
|
92
|
+
const delay = HTTP_RETRY_BACKOFF_MS * (attempt + 1);
|
|
93
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
94
|
+
return httpEmbedBatch(url, batch, model, apiKey, batchIndex, attempt + 1);
|
|
95
|
+
}
|
|
96
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
97
|
+
throw new Error(`Embedding request failed (${safeUrl(url)}, batch ${batchIndex}): ${reason}`);
|
|
98
|
+
}
|
|
99
|
+
if (!resp.ok) {
|
|
100
|
+
const status = resp.status;
|
|
101
|
+
if ((status === 429 || status >= 500) && attempt < HTTP_MAX_RETRIES) {
|
|
102
|
+
const delay = HTTP_RETRY_BACKOFF_MS * (attempt + 1);
|
|
103
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
104
|
+
return httpEmbedBatch(url, batch, model, apiKey, batchIndex, attempt + 1);
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`Embedding endpoint returned ${status} (${safeUrl(url)}, batch ${batchIndex})`);
|
|
107
|
+
}
|
|
108
|
+
const data = (await resp.json());
|
|
109
|
+
return data.data;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Embed texts via the HTTP backend, splitting into batches.
|
|
113
|
+
* Reads config from env vars on every call.
|
|
114
|
+
*
|
|
115
|
+
* @param texts - Array of texts to embed
|
|
116
|
+
* @returns Array of Float32Array embedding vectors
|
|
117
|
+
*/
|
|
118
|
+
export const httpEmbed = async (texts) => {
|
|
119
|
+
if (texts.length === 0)
|
|
120
|
+
return [];
|
|
121
|
+
const config = readConfig();
|
|
122
|
+
if (!config)
|
|
123
|
+
throw new Error('HTTP embedding not configured');
|
|
124
|
+
const url = `${config.baseUrl}/embeddings`;
|
|
125
|
+
const allVectors = [];
|
|
126
|
+
for (let i = 0; i < texts.length; i += HTTP_BATCH_SIZE) {
|
|
127
|
+
const batch = texts.slice(i, i + HTTP_BATCH_SIZE);
|
|
128
|
+
const batchIndex = Math.floor(i / HTTP_BATCH_SIZE);
|
|
129
|
+
const items = await httpEmbedBatch(url, batch, config.model, config.apiKey, batchIndex);
|
|
130
|
+
if (items.length !== batch.length) {
|
|
131
|
+
throw new Error(`Embedding endpoint returned ${items.length} vectors for ${batch.length} texts ` +
|
|
132
|
+
`(${safeUrl(url)}, batch ${batchIndex})`);
|
|
133
|
+
}
|
|
134
|
+
for (const item of items) {
|
|
135
|
+
const vec = new Float32Array(item.embedding);
|
|
136
|
+
// Fail fast on dimension mismatch rather than inserting bad vectors
|
|
137
|
+
// into the FLOAT[N] column which would cause a cryptic Kuzu error.
|
|
138
|
+
const expected = config.dimensions ?? DEFAULT_DIMS;
|
|
139
|
+
if (vec.length !== expected) {
|
|
140
|
+
const hint = config.dimensions
|
|
141
|
+
? 'Update CODRAGRAPH_EMBEDDING_DIMS to match your model output.'
|
|
142
|
+
: `Set CODRAGRAPH_EMBEDDING_DIMS=${vec.length} to match your model output.`;
|
|
143
|
+
throw new Error(`Embedding dimension mismatch: endpoint returned ${vec.length}d vector, ` +
|
|
144
|
+
`but expected ${expected}d. ${hint}`);
|
|
145
|
+
}
|
|
146
|
+
allVectors.push(vec);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return allVectors;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Embed a single query text via the HTTP backend.
|
|
153
|
+
* Convenience for MCP search where only one vector is needed.
|
|
154
|
+
*
|
|
155
|
+
* @param text - Query text to embed
|
|
156
|
+
* @returns Embedding vector as number array
|
|
157
|
+
*/
|
|
158
|
+
export const httpEmbedQuery = async (text) => {
|
|
159
|
+
const config = readConfig();
|
|
160
|
+
if (!config)
|
|
161
|
+
throw new Error('HTTP embedding not configured');
|
|
162
|
+
const url = `${config.baseUrl}/embeddings`;
|
|
163
|
+
const items = await httpEmbedBatch(url, [text], config.model, config.apiKey);
|
|
164
|
+
if (!items.length) {
|
|
165
|
+
throw new Error(`Embedding endpoint returned empty response (${safeUrl(url)})`);
|
|
166
|
+
}
|
|
167
|
+
const embedding = items[0].embedding;
|
|
168
|
+
// Same dimension checks as httpEmbed — catch mismatches before they
|
|
169
|
+
// reach the Kuzu FLOAT[N] cast in search queries.
|
|
170
|
+
const expected = config.dimensions ?? DEFAULT_DIMS;
|
|
171
|
+
if (embedding.length !== expected) {
|
|
172
|
+
const hint = config.dimensions
|
|
173
|
+
? 'Update CODRAGRAPH_EMBEDDING_DIMS to match your model output.'
|
|
174
|
+
: `Set CODRAGRAPH_EMBEDDING_DIMS=${embedding.length} to match your model output.`;
|
|
175
|
+
throw new Error(`Embedding dimension mismatch: endpoint returned ${embedding.length}d vector, ` +
|
|
176
|
+
`but expected ${expected}d. ${hint}`);
|
|
177
|
+
}
|
|
178
|
+
return embedding;
|
|
179
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embeddings Module
|
|
3
|
+
*
|
|
4
|
+
* Re-exports for the embedding pipeline system.
|
|
5
|
+
*/
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export * from './http-client.js';
|
|
8
|
+
export * from './embedder.js';
|
|
9
|
+
export * from './text-generator.js';
|
|
10
|
+
export * from './embedding-pipeline.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embeddings Module
|
|
3
|
+
*
|
|
4
|
+
* Re-exports for the embedding pipeline system.
|
|
5
|
+
*/
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export * from './http-client.js';
|
|
8
|
+
export * from './embedder.js';
|
|
9
|
+
export * from './text-generator.js';
|
|
10
|
+
export * from './embedding-pipeline.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ResolvedLineRange {
|
|
2
|
+
startLine: number;
|
|
3
|
+
endLine: number;
|
|
4
|
+
}
|
|
5
|
+
export declare const buildLineIndex: (content: string) => Int32Array;
|
|
6
|
+
export declare const lineFromOffset: (lineOffsets: Int32Array, charOffset: number) => number;
|
|
7
|
+
export declare const resolveChunkLines: (lineOffsets: Int32Array, startOffset: number, endOffset: number, baseStartLine: number) => ResolvedLineRange;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const buildLineIndex = (content) => {
|
|
2
|
+
const offsets = [0];
|
|
3
|
+
for (let i = 0; i < content.length; i++) {
|
|
4
|
+
if (content.charCodeAt(i) === 10)
|
|
5
|
+
offsets.push(i + 1);
|
|
6
|
+
}
|
|
7
|
+
return new Int32Array(offsets);
|
|
8
|
+
};
|
|
9
|
+
const clampOffset = (lineOffsets, charOffset) => {
|
|
10
|
+
if (lineOffsets.length === 0)
|
|
11
|
+
return 0;
|
|
12
|
+
const maxOffset = lineOffsets[lineOffsets.length - 1];
|
|
13
|
+
if (charOffset < 0)
|
|
14
|
+
return 0;
|
|
15
|
+
if (charOffset > maxOffset)
|
|
16
|
+
return maxOffset;
|
|
17
|
+
return charOffset;
|
|
18
|
+
};
|
|
19
|
+
export const lineFromOffset = (lineOffsets, charOffset) => {
|
|
20
|
+
if (lineOffsets.length === 0)
|
|
21
|
+
return 0;
|
|
22
|
+
const clamped = clampOffset(lineOffsets, charOffset);
|
|
23
|
+
let lo = 0;
|
|
24
|
+
let hi = lineOffsets.length - 1;
|
|
25
|
+
while (lo < hi) {
|
|
26
|
+
const mid = (lo + hi + 1) >> 1;
|
|
27
|
+
if (lineOffsets[mid] <= clamped)
|
|
28
|
+
lo = mid;
|
|
29
|
+
else
|
|
30
|
+
hi = mid - 1;
|
|
31
|
+
}
|
|
32
|
+
return lo;
|
|
33
|
+
};
|
|
34
|
+
export const resolveChunkLines = (lineOffsets, startOffset, endOffset, baseStartLine) => {
|
|
35
|
+
const relativeStartLine = lineFromOffset(lineOffsets, startOffset);
|
|
36
|
+
const effectiveEndOffset = endOffset > startOffset ? endOffset - 1 : startOffset;
|
|
37
|
+
const relativeEndLine = lineFromOffset(lineOffsets, effectiveEndOffset);
|
|
38
|
+
return {
|
|
39
|
+
startLine: baseStartLine + relativeStartLine,
|
|
40
|
+
endLine: baseStartLine + relativeEndLine,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Mapping Configuration
|
|
3
|
+
*
|
|
4
|
+
* Reads ~/.codragraph/server-mapping.json to map repo names to service names.
|
|
5
|
+
* Used in embedding text to enrich metadata with microservice context.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Read the server mapping file and return the serverName for a given repoName.
|
|
9
|
+
* Returns undefined if no mapping exists.
|
|
10
|
+
*/
|
|
11
|
+
export declare const readServerMapping: (repoName: string) => Promise<string | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Clear the cached mapping (useful for testing or after file changes)
|
|
14
|
+
*/
|
|
15
|
+
export declare const clearServerMappingCache: () => void;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Mapping Configuration
|
|
3
|
+
*
|
|
4
|
+
* Reads ~/.codragraph/server-mapping.json to map repo names to service names.
|
|
5
|
+
* Used in embedding text to enrich metadata with microservice context.
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'fs/promises';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import os from 'os';
|
|
10
|
+
const MAPPING_FILE = path.join(os.homedir(), '.codragraph', 'server-mapping.json');
|
|
11
|
+
let cachedMapping = null;
|
|
12
|
+
/**
|
|
13
|
+
* Read the server mapping file and return the serverName for a given repoName.
|
|
14
|
+
* Returns undefined if no mapping exists.
|
|
15
|
+
*/
|
|
16
|
+
export const readServerMapping = async (repoName) => {
|
|
17
|
+
try {
|
|
18
|
+
if (!cachedMapping) {
|
|
19
|
+
const raw = await fs.readFile(MAPPING_FILE, 'utf-8');
|
|
20
|
+
cachedMapping = JSON.parse(raw);
|
|
21
|
+
}
|
|
22
|
+
return cachedMapping[repoName];
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Clear the cached mapping (useful for testing or after file changes)
|
|
30
|
+
*/
|
|
31
|
+
export const clearServerMappingCache = () => {
|
|
32
|
+
cachedMapping = null;
|
|
33
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural Extractor Module
|
|
3
|
+
*
|
|
4
|
+
* Reuses ingestion pipeline's AST-based MethodExtractor / FieldExtractor
|
|
5
|
+
* to extract method and field names for embedding text generation.
|
|
6
|
+
*/
|
|
7
|
+
export interface StructuralNames {
|
|
8
|
+
methodNames: string[];
|
|
9
|
+
fieldNames: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Extract method and field names from a class/struct/interface node
|
|
13
|
+
* using the ingestion pipeline's AST extractors.
|
|
14
|
+
*/
|
|
15
|
+
export declare const extractStructuralNames: (content: string, filePath: string) => Promise<StructuralNames>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural Extractor Module
|
|
3
|
+
*
|
|
4
|
+
* Reuses ingestion pipeline's AST-based MethodExtractor / FieldExtractor
|
|
5
|
+
* to extract method and field names for embedding text generation.
|
|
6
|
+
*/
|
|
7
|
+
import { getProviderForFile } from '../ingestion/languages/index.js';
|
|
8
|
+
import { buildTypeEnv } from '../ingestion/type-env.js';
|
|
9
|
+
import { ensureAndParse, findDeclarationNode } from './ast-utils.js';
|
|
10
|
+
const NOOP_SYMBOL_TABLE = {
|
|
11
|
+
lookupExactAll: () => [],
|
|
12
|
+
lookupExact: () => undefined,
|
|
13
|
+
lookupExactFull: () => undefined,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Extract method and field names from a class/struct/interface node
|
|
17
|
+
* using the ingestion pipeline's AST extractors.
|
|
18
|
+
*/
|
|
19
|
+
export const extractStructuralNames = async (content, filePath) => {
|
|
20
|
+
const provider = getProviderForFile(filePath);
|
|
21
|
+
if (!provider)
|
|
22
|
+
return { methodNames: [], fieldNames: [] };
|
|
23
|
+
const tree = await ensureAndParse(content, filePath);
|
|
24
|
+
if (!tree)
|
|
25
|
+
return { methodNames: [], fieldNames: [] };
|
|
26
|
+
// Parse node.content (a snippet) — find declaration directly, not by range
|
|
27
|
+
const classNode = findDeclarationNode(tree.rootNode);
|
|
28
|
+
if (!classNode)
|
|
29
|
+
return { methodNames: [], fieldNames: [] };
|
|
30
|
+
const language = provider.id;
|
|
31
|
+
const methodNames = extractMethodNames(classNode, provider, filePath, language);
|
|
32
|
+
const fieldNames = extractFieldNames(classNode, provider, tree, filePath, language);
|
|
33
|
+
return { methodNames, fieldNames };
|
|
34
|
+
};
|
|
35
|
+
function extractMethodNames(classNode, provider, filePath, language) {
|
|
36
|
+
if (!provider.methodExtractor)
|
|
37
|
+
return [];
|
|
38
|
+
const context = { filePath, language };
|
|
39
|
+
const result = provider.methodExtractor.extract(classNode, context);
|
|
40
|
+
if (!result?.methods?.length)
|
|
41
|
+
return [];
|
|
42
|
+
return result.methods.map((m) => m.name);
|
|
43
|
+
}
|
|
44
|
+
function extractFieldNames(classNode, provider, tree, filePath, language) {
|
|
45
|
+
if (!provider.fieldExtractor)
|
|
46
|
+
return [];
|
|
47
|
+
const typeEnv = buildTypeEnv(tree, language);
|
|
48
|
+
const context = {
|
|
49
|
+
typeEnv,
|
|
50
|
+
symbolTable: NOOP_SYMBOL_TABLE,
|
|
51
|
+
filePath,
|
|
52
|
+
language,
|
|
53
|
+
};
|
|
54
|
+
const result = provider.fieldExtractor.extract(classNode, context);
|
|
55
|
+
if (!result?.fields?.length)
|
|
56
|
+
return [];
|
|
57
|
+
return result.fields.map((f) => f.name);
|
|
58
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text Generator Module
|
|
3
|
+
*
|
|
4
|
+
* Generates enriched embedding text from code nodes with metadata.
|
|
5
|
+
* Supports chunkable labels (Function/Method with AST chunking),
|
|
6
|
+
* Class-specific structural text, and short-node direct embed.
|
|
7
|
+
*
|
|
8
|
+
* Method/field names for Class nodes are extracted by the ingestion
|
|
9
|
+
* pipeline's AST extractors and passed via node.methodNames/node.fieldNames.
|
|
10
|
+
*/
|
|
11
|
+
import type { EmbeddableNode, EmbeddingConfig } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Truncate description to max length at sentence/word boundary
|
|
14
|
+
*/
|
|
15
|
+
declare const truncateDescription: (text: string, maxLength: number) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Extract class/interface/struct declaration lines, skipping method bodies.
|
|
18
|
+
* - Brace-based languages: detects method signatures (lines with `(` and `{`)
|
|
19
|
+
* and skips until depth returns to class body level.
|
|
20
|
+
* - Non-brace languages (Python/Ruby): returns empty string (patterns handle extraction).
|
|
21
|
+
*/
|
|
22
|
+
export declare const extractDeclarationOnly: (content: string) => string;
|
|
23
|
+
/**
|
|
24
|
+
* Generate embedding text for any embeddable node
|
|
25
|
+
* Dispatches to the appropriate generator based on node label
|
|
26
|
+
*/
|
|
27
|
+
export declare const generateEmbeddingText: (node: EmbeddableNode, codeBody: string, config?: Partial<EmbeddingConfig>, chunkIndex?: number, prevTail?: string) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Export truncation helper for testing
|
|
30
|
+
*/
|
|
31
|
+
export { truncateDescription };
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text Generator Module
|
|
3
|
+
*
|
|
4
|
+
* Generates enriched embedding text from code nodes with metadata.
|
|
5
|
+
* Supports chunkable labels (Function/Method with AST chunking),
|
|
6
|
+
* Class-specific structural text, and short-node direct embed.
|
|
7
|
+
*
|
|
8
|
+
* Method/field names for Class nodes are extracted by the ingestion
|
|
9
|
+
* pipeline's AST extractors and passed via node.methodNames/node.fieldNames.
|
|
10
|
+
*/
|
|
11
|
+
import { CHUNKING_RULES, DEFAULT_EMBEDDING_CONFIG, STRUCTURAL_TEXT_MODE_DECLARATION, isShortLabel, } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Truncate description to max length at sentence/word boundary
|
|
14
|
+
*/
|
|
15
|
+
const truncateDescription = (text, maxLength) => {
|
|
16
|
+
if (text.length <= maxLength)
|
|
17
|
+
return text;
|
|
18
|
+
const truncated = text.slice(0, maxLength);
|
|
19
|
+
// Try sentence boundary (. ! ?)
|
|
20
|
+
const sentenceEnd = Math.max(truncated.lastIndexOf('. '), truncated.lastIndexOf('! '), truncated.lastIndexOf('? '));
|
|
21
|
+
if (sentenceEnd > maxLength * 0.5) {
|
|
22
|
+
return truncated.slice(0, sentenceEnd + 1);
|
|
23
|
+
}
|
|
24
|
+
// Try word boundary
|
|
25
|
+
const lastSpace = truncated.lastIndexOf(' ');
|
|
26
|
+
if (lastSpace > maxLength * 0.5) {
|
|
27
|
+
return truncated.slice(0, lastSpace);
|
|
28
|
+
}
|
|
29
|
+
return truncated;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Clean code content for embedding
|
|
33
|
+
*/
|
|
34
|
+
const cleanContent = (content) => {
|
|
35
|
+
return content
|
|
36
|
+
.replace(/\r\n/g, '\n')
|
|
37
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
38
|
+
.split('\n')
|
|
39
|
+
.map((line) => line.trimEnd())
|
|
40
|
+
.join('\n')
|
|
41
|
+
.trim();
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Build metadata header for a node
|
|
45
|
+
*/
|
|
46
|
+
const buildMetadataHeader = (node, config) => {
|
|
47
|
+
const parts = [];
|
|
48
|
+
// Label + name
|
|
49
|
+
parts.push(`${node.label}: ${node.name}`);
|
|
50
|
+
// Repo name
|
|
51
|
+
if (node.repoName) {
|
|
52
|
+
parts.push(`Repo: ${node.repoName}`);
|
|
53
|
+
}
|
|
54
|
+
// Server name (optional)
|
|
55
|
+
if (node.serverName) {
|
|
56
|
+
parts.push(`Server: ${node.serverName}`);
|
|
57
|
+
}
|
|
58
|
+
// Full file path
|
|
59
|
+
parts.push(`Path: ${node.filePath}`);
|
|
60
|
+
// Export status
|
|
61
|
+
if (node.isExported !== undefined) {
|
|
62
|
+
parts.push(`Export: ${node.isExported}`);
|
|
63
|
+
}
|
|
64
|
+
// Description (truncated)
|
|
65
|
+
if (node.description) {
|
|
66
|
+
const maxLen = config.maxDescriptionLength ?? DEFAULT_EMBEDDING_CONFIG.maxDescriptionLength;
|
|
67
|
+
const truncated = truncateDescription(node.description, maxLen);
|
|
68
|
+
if (truncated) {
|
|
69
|
+
parts.push(truncated);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return parts.join('\n');
|
|
73
|
+
};
|
|
74
|
+
const generateCodeBodyText = (node, codeBody, config, prevTail) => {
|
|
75
|
+
const header = buildMetadataHeader(node, config);
|
|
76
|
+
const parts = [header];
|
|
77
|
+
if (prevTail) {
|
|
78
|
+
parts.push(`[preceding context]: ...${cleanContent(prevTail)}`);
|
|
79
|
+
}
|
|
80
|
+
parts.push('', cleanContent(codeBody));
|
|
81
|
+
return parts.join('\n');
|
|
82
|
+
};
|
|
83
|
+
const getCompactContainerContext = (cleanedContent, declarationOnly) => {
|
|
84
|
+
const source = declarationOnly || cleanedContent;
|
|
85
|
+
const nlIdx = source.indexOf('\n');
|
|
86
|
+
const firstLine = (nlIdx === -1 ? source : source.substring(0, nlIdx)).trim();
|
|
87
|
+
return firstLine ? `Container: ${firstLine}` : undefined;
|
|
88
|
+
};
|
|
89
|
+
const generateStructuralTypeText = (node, codeBody, config, chunkIndex, prevTail) => {
|
|
90
|
+
const header = buildMetadataHeader(node, config);
|
|
91
|
+
const parts = [header];
|
|
92
|
+
const isFirstChunk = chunkIndex === undefined || chunkIndex === 0;
|
|
93
|
+
const cleanedContent = cleanContent(node.content);
|
|
94
|
+
const declarationOnly = extractDeclarationOnly(cleanedContent);
|
|
95
|
+
const compactContainerContext = getCompactContainerContext(cleanedContent, declarationOnly);
|
|
96
|
+
if (compactContainerContext) {
|
|
97
|
+
parts.push(compactContainerContext);
|
|
98
|
+
}
|
|
99
|
+
if (prevTail) {
|
|
100
|
+
parts.push(`[preceding context]: ...${cleanContent(prevTail)}`);
|
|
101
|
+
}
|
|
102
|
+
if (isFirstChunk && node.methodNames?.length) {
|
|
103
|
+
parts.push(`Methods: ${node.methodNames.join(', ')}`);
|
|
104
|
+
}
|
|
105
|
+
if (isFirstChunk && node.fieldNames?.length) {
|
|
106
|
+
parts.push(`Properties: ${node.fieldNames.join(', ')}`);
|
|
107
|
+
}
|
|
108
|
+
if (isFirstChunk && declarationOnly) {
|
|
109
|
+
parts.push('', declarationOnly);
|
|
110
|
+
}
|
|
111
|
+
const cleanedChunk = cleanContent(codeBody);
|
|
112
|
+
if (cleanedChunk && cleanedChunk !== cleanedContent) {
|
|
113
|
+
parts.push('', cleanedChunk);
|
|
114
|
+
}
|
|
115
|
+
return parts.join('\n');
|
|
116
|
+
};
|
|
117
|
+
const DECL_START_RE = /^(?:(?:export|pub|data|abstract)\s+)*(?:type\s+\w+\s+struct|(?:class|struct|enum|interface)\s)/;
|
|
118
|
+
/**
|
|
119
|
+
* Extract class/interface/struct declaration lines, skipping method bodies.
|
|
120
|
+
* - Brace-based languages: detects method signatures (lines with `(` and `{`)
|
|
121
|
+
* and skips until depth returns to class body level.
|
|
122
|
+
* - Non-brace languages (Python/Ruby): returns empty string (patterns handle extraction).
|
|
123
|
+
*/
|
|
124
|
+
export const extractDeclarationOnly = (content) => {
|
|
125
|
+
const lines = content.split('\n');
|
|
126
|
+
const declLines = [];
|
|
127
|
+
let depth = 0;
|
|
128
|
+
let started = false;
|
|
129
|
+
let classDepth = 0;
|
|
130
|
+
let skipDepth = 0;
|
|
131
|
+
for (const [idx, line] of lines.entries()) {
|
|
132
|
+
const trimmed = line.trim();
|
|
133
|
+
if (!started) {
|
|
134
|
+
if (DECL_START_RE.test(trimmed)) {
|
|
135
|
+
// Non-brace language check: current line or next 3 lines must have `{`
|
|
136
|
+
const nextLines = lines.slice(idx + 1, idx + 4);
|
|
137
|
+
if (!trimmed.includes('{') && !nextLines.some((l) => l.includes('{'))) {
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
140
|
+
started = true;
|
|
141
|
+
declLines.push(trimmed);
|
|
142
|
+
for (const ch of trimmed) {
|
|
143
|
+
if (ch === '{')
|
|
144
|
+
depth++;
|
|
145
|
+
else if (ch === '}')
|
|
146
|
+
depth--;
|
|
147
|
+
}
|
|
148
|
+
if (depth > 0)
|
|
149
|
+
classDepth = depth;
|
|
150
|
+
}
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
// Always update depth (even when skipping)
|
|
154
|
+
const opens = (trimmed.match(/{/g) || []).length;
|
|
155
|
+
const closes = (trimmed.match(/}/g) || []).length;
|
|
156
|
+
const prevDepth = depth;
|
|
157
|
+
depth += opens - closes;
|
|
158
|
+
if (skipDepth > 0) {
|
|
159
|
+
if (depth <= classDepth) {
|
|
160
|
+
skipDepth = 0;
|
|
161
|
+
// Closing brace of class
|
|
162
|
+
if (depth <= 0) {
|
|
163
|
+
declLines.push(trimmed);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
// Detect method signature: line has both `(` and `{` and goes deeper than class body
|
|
170
|
+
const hasParens = trimmed.includes('(');
|
|
171
|
+
const hasOpenBrace = opens > 0;
|
|
172
|
+
if (hasParens && hasOpenBrace && prevDepth + opens > classDepth) {
|
|
173
|
+
if (opens === closes && trimmed.endsWith(';')) {
|
|
174
|
+
// Property with function/object initializer like `config = { timeout: 5000 };` — keep
|
|
175
|
+
declLines.push(trimmed);
|
|
176
|
+
}
|
|
177
|
+
// else: single-line or multi-line method — skip entirely
|
|
178
|
+
if (opens !== closes) {
|
|
179
|
+
skipDepth = classDepth;
|
|
180
|
+
}
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
declLines.push(trimmed);
|
|
184
|
+
if (depth <= 0 && declLines.length > 1)
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
return declLines.join('\n').trim();
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Generate embedding text for any embeddable node
|
|
191
|
+
* Dispatches to the appropriate generator based on node label
|
|
192
|
+
*/
|
|
193
|
+
export const generateEmbeddingText = (node, codeBody, config = {}, chunkIndex, prevTail) => {
|
|
194
|
+
if (isShortLabel(node.label)) {
|
|
195
|
+
const header = buildMetadataHeader(node, config);
|
|
196
|
+
const cleaned = cleanContent(node.content);
|
|
197
|
+
return `${header}\n\n${cleaned}`;
|
|
198
|
+
}
|
|
199
|
+
const chunkingRule = CHUNKING_RULES[node.label];
|
|
200
|
+
if (chunkingRule?.structuralTextMode === STRUCTURAL_TEXT_MODE_DECLARATION) {
|
|
201
|
+
return generateStructuralTypeText(node, codeBody, config, chunkIndex, prevTail);
|
|
202
|
+
}
|
|
203
|
+
return generateCodeBodyText(node, codeBody, config, prevTail);
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Export truncation helper for testing
|
|
207
|
+
*/
|
|
208
|
+
export { truncateDescription };
|