cotx-engine 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +94 -0
- package/README.md +103 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.js +93 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/context.d.ts +1 -0
- package/dist/commands/context.js +98 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/diff.d.ts +19 -0
- package/dist/commands/diff.js +127 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/impact.d.ts +3 -0
- package/dist/commands/impact.js +91 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +13 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +13 -0
- package/dist/commands/lint.js +290 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/map.d.ts +6 -0
- package/dist/commands/map.js +409 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/migrate.d.ts +16 -0
- package/dist/commands/migrate.js +150 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/query.d.ts +3 -0
- package/dist/commands/query.js +47 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/rename.d.ts +5 -0
- package/dist/commands/rename.js +163 -0
- package/dist/commands/rename.js.map +1 -0
- package/dist/commands/snapshot.d.ts +6 -0
- package/dist/commands/snapshot.js +48 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +72 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +8 -0
- package/dist/commands/update.js +163 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/write.d.ts +6 -0
- package/dist/commands/write.js +221 -0
- package/dist/commands/write.js.map +1 -0
- package/dist/compiler/auto-describe.d.ts +13 -0
- package/dist/compiler/auto-describe.js +91 -0
- package/dist/compiler/auto-describe.js.map +1 -0
- package/dist/compiler/concept-compiler.d.ts +21 -0
- package/dist/compiler/concept-compiler.js +125 -0
- package/dist/compiler/concept-compiler.js.map +1 -0
- package/dist/compiler/contract-compiler.d.ts +16 -0
- package/dist/compiler/contract-compiler.js +90 -0
- package/dist/compiler/contract-compiler.js.map +1 -0
- package/dist/compiler/delta-detector.d.ts +8 -0
- package/dist/compiler/delta-detector.js +34 -0
- package/dist/compiler/delta-detector.js.map +1 -0
- package/dist/compiler/flow-compiler.d.ts +18 -0
- package/dist/compiler/flow-compiler.js +69 -0
- package/dist/compiler/flow-compiler.js.map +1 -0
- package/dist/compiler/module-compiler.d.ts +18 -0
- package/dist/compiler/module-compiler.js +420 -0
- package/dist/compiler/module-compiler.js.map +1 -0
- package/dist/compiler/stale-detector.d.ts +22 -0
- package/dist/compiler/stale-detector.js +79 -0
- package/dist/compiler/stale-detector.js.map +1 -0
- package/dist/config/ignore-service.d.ts +26 -0
- package/dist/config/ignore-service.js +366 -0
- package/dist/config/ignore-service.js.map +1 -0
- package/dist/core/analysis/cluster-enricher.d.ts +38 -0
- package/dist/core/analysis/cluster-enricher.js +169 -0
- package/dist/core/analysis/cluster-enricher.js.map +1 -0
- package/dist/core/analysis/community-processor.d.ts +39 -0
- package/dist/core/analysis/community-processor.js +319 -0
- package/dist/core/analysis/community-processor.js.map +1 -0
- package/dist/core/analysis/process-processor.d.ts +51 -0
- package/dist/core/analysis/process-processor.js +318 -0
- package/dist/core/analysis/process-processor.js.map +1 -0
- package/dist/core/bridge.d.ts +15 -0
- package/dist/core/bridge.js +63 -0
- package/dist/core/bridge.js.map +1 -0
- package/dist/core/export/json-exporter.d.ts +43 -0
- package/dist/core/export/json-exporter.js +13 -0
- package/dist/core/export/json-exporter.js.map +1 -0
- package/dist/core/graph/graph.d.ts +2 -0
- package/dist/core/graph/graph.js +79 -0
- package/dist/core/graph/graph.js.map +1 -0
- package/dist/core/graph/types.d.ts +25 -0
- package/dist/core/graph/types.js +2 -0
- package/dist/core/graph/types.js.map +1 -0
- package/dist/core/parser/ast-cache.d.ts +11 -0
- package/dist/core/parser/ast-cache.js +36 -0
- package/dist/core/parser/ast-cache.js.map +1 -0
- package/dist/core/parser/call-processor.d.ts +105 -0
- package/dist/core/parser/call-processor.js +1807 -0
- package/dist/core/parser/call-processor.js.map +1 -0
- package/dist/core/parser/call-routing.d.ts +55 -0
- package/dist/core/parser/call-routing.js +113 -0
- package/dist/core/parser/call-routing.js.map +1 -0
- package/dist/core/parser/call-sites/extract-language-call-site.d.ts +10 -0
- package/dist/core/parser/call-sites/extract-language-call-site.js +23 -0
- package/dist/core/parser/call-sites/extract-language-call-site.js.map +1 -0
- package/dist/core/parser/call-sites/java.d.ts +9 -0
- package/dist/core/parser/call-sites/java.js +31 -0
- package/dist/core/parser/call-sites/java.js.map +1 -0
- package/dist/core/parser/cluster-enricher.d.ts +38 -0
- package/dist/core/parser/cluster-enricher.js +169 -0
- package/dist/core/parser/cluster-enricher.js.map +1 -0
- package/dist/core/parser/community-processor.d.ts +39 -0
- package/dist/core/parser/community-processor.js +321 -0
- package/dist/core/parser/community-processor.js.map +1 -0
- package/dist/core/parser/constants.d.ts +16 -0
- package/dist/core/parser/constants.js +17 -0
- package/dist/core/parser/constants.js.map +1 -0
- package/dist/core/parser/entry-point-scoring.d.ts +57 -0
- package/dist/core/parser/entry-point-scoring.js +377 -0
- package/dist/core/parser/entry-point-scoring.js.map +1 -0
- package/dist/core/parser/export-detection.d.ts +57 -0
- package/dist/core/parser/export-detection.js +234 -0
- package/dist/core/parser/export-detection.js.map +1 -0
- package/dist/core/parser/field-extractor.d.ts +34 -0
- package/dist/core/parser/field-extractor.js +33 -0
- package/dist/core/parser/field-extractor.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.d.ts +16 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.js +129 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/csharp.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/csharp.js +129 -0
- package/dist/core/parser/field-extractors/configs/csharp.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/dart.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/dart.js +93 -0
- package/dist/core/parser/field-extractors/configs/dart.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/go.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/go.js +66 -0
- package/dist/core/parser/field-extractors/configs/go.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/helpers.d.ts +40 -0
- package/dist/core/parser/field-extractors/configs/helpers.js +118 -0
- package/dist/core/parser/field-extractors/configs/helpers.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/jvm.d.ts +17 -0
- package/dist/core/parser/field-extractors/configs/jvm.js +139 -0
- package/dist/core/parser/field-extractors/configs/jvm.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/php.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/php.js +69 -0
- package/dist/core/parser/field-extractors/configs/php.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/python.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/python.js +92 -0
- package/dist/core/parser/field-extractors/configs/python.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/ruby.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/ruby.js +68 -0
- package/dist/core/parser/field-extractors/configs/ruby.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/rust.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/rust.js +58 -0
- package/dist/core/parser/field-extractors/configs/rust.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/swift.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/swift.js +75 -0
- package/dist/core/parser/field-extractors/configs/swift.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.d.ts +14 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.js +72 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.js.map +1 -0
- package/dist/core/parser/field-extractors/generic.d.ts +61 -0
- package/dist/core/parser/field-extractors/generic.js +170 -0
- package/dist/core/parser/field-extractors/generic.js.map +1 -0
- package/dist/core/parser/field-extractors/typescript.d.ts +16 -0
- package/dist/core/parser/field-extractors/typescript.js +167 -0
- package/dist/core/parser/field-extractors/typescript.js.map +1 -0
- package/dist/core/parser/field-types.d.ts +46 -0
- package/dist/core/parser/field-types.js +2 -0
- package/dist/core/parser/field-types.js.map +1 -0
- package/dist/core/parser/filesystem-walker.d.ts +28 -0
- package/dist/core/parser/filesystem-walker.js +82 -0
- package/dist/core/parser/filesystem-walker.js.map +1 -0
- package/dist/core/parser/framework-detection.d.ts +149 -0
- package/dist/core/parser/framework-detection.js +782 -0
- package/dist/core/parser/framework-detection.js.map +1 -0
- package/dist/core/parser/heritage-processor.d.ts +52 -0
- package/dist/core/parser/heritage-processor.js +339 -0
- package/dist/core/parser/heritage-processor.js.map +1 -0
- package/dist/core/parser/import-processor.d.ts +33 -0
- package/dist/core/parser/import-processor.js +382 -0
- package/dist/core/parser/import-processor.js.map +1 -0
- package/dist/core/parser/import-resolvers/csharp.d.ts +19 -0
- package/dist/core/parser/import-resolvers/csharp.js +132 -0
- package/dist/core/parser/import-resolvers/csharp.js.map +1 -0
- package/dist/core/parser/import-resolvers/dart.d.ts +7 -0
- package/dist/core/parser/import-resolvers/dart.js +45 -0
- package/dist/core/parser/import-resolvers/dart.js.map +1 -0
- package/dist/core/parser/import-resolvers/go.d.ts +18 -0
- package/dist/core/parser/import-resolvers/go.js +62 -0
- package/dist/core/parser/import-resolvers/go.js.map +1 -0
- package/dist/core/parser/import-resolvers/jvm.d.ts +32 -0
- package/dist/core/parser/import-resolvers/jvm.js +160 -0
- package/dist/core/parser/import-resolvers/jvm.js.map +1 -0
- package/dist/core/parser/import-resolvers/php.d.ts +25 -0
- package/dist/core/parser/import-resolvers/php.js +81 -0
- package/dist/core/parser/import-resolvers/php.js.map +1 -0
- package/dist/core/parser/import-resolvers/python.d.ts +25 -0
- package/dist/core/parser/import-resolvers/python.js +85 -0
- package/dist/core/parser/import-resolvers/python.js.map +1 -0
- package/dist/core/parser/import-resolvers/ruby.d.ts +15 -0
- package/dist/core/parser/import-resolvers/ruby.js +21 -0
- package/dist/core/parser/import-resolvers/ruby.js.map +1 -0
- package/dist/core/parser/import-resolvers/rust.d.ts +18 -0
- package/dist/core/parser/import-resolvers/rust.js +119 -0
- package/dist/core/parser/import-resolvers/rust.js.map +1 -0
- package/dist/core/parser/import-resolvers/standard.d.ts +36 -0
- package/dist/core/parser/import-resolvers/standard.js +144 -0
- package/dist/core/parser/import-resolvers/standard.js.map +1 -0
- package/dist/core/parser/import-resolvers/swift.d.ts +7 -0
- package/dist/core/parser/import-resolvers/swift.js +25 -0
- package/dist/core/parser/import-resolvers/swift.js.map +1 -0
- package/dist/core/parser/import-resolvers/types.d.ts +44 -0
- package/dist/core/parser/import-resolvers/types.js +7 -0
- package/dist/core/parser/import-resolvers/types.js.map +1 -0
- package/dist/core/parser/import-resolvers/utils.d.ts +35 -0
- package/dist/core/parser/import-resolvers/utils.js +150 -0
- package/dist/core/parser/import-resolvers/utils.js.map +1 -0
- package/dist/core/parser/import-resolvers/vue.d.ts +8 -0
- package/dist/core/parser/import-resolvers/vue.js +10 -0
- package/dist/core/parser/import-resolvers/vue.js.map +1 -0
- package/dist/core/parser/language-config.d.ts +52 -0
- package/dist/core/parser/language-config.js +182 -0
- package/dist/core/parser/language-config.js.map +1 -0
- package/dist/core/parser/language-provider.d.ts +126 -0
- package/dist/core/parser/language-provider.js +25 -0
- package/dist/core/parser/language-provider.js.map +1 -0
- package/dist/core/parser/languages/c-cpp.d.ts +12 -0
- package/dist/core/parser/languages/c-cpp.js +312 -0
- package/dist/core/parser/languages/c-cpp.js.map +1 -0
- package/dist/core/parser/languages/csharp.d.ts +8 -0
- package/dist/core/parser/languages/csharp.js +127 -0
- package/dist/core/parser/languages/csharp.js.map +1 -0
- package/dist/core/parser/languages/dart.d.ts +12 -0
- package/dist/core/parser/languages/dart.js +91 -0
- package/dist/core/parser/languages/dart.js.map +1 -0
- package/dist/core/parser/languages/go.d.ts +11 -0
- package/dist/core/parser/languages/go.js +32 -0
- package/dist/core/parser/languages/go.js.map +1 -0
- package/dist/core/parser/languages/index.d.ts +38 -0
- package/dist/core/parser/languages/index.js +63 -0
- package/dist/core/parser/languages/index.js.map +1 -0
- package/dist/core/parser/languages/java.d.ts +9 -0
- package/dist/core/parser/languages/java.js +33 -0
- package/dist/core/parser/languages/java.js.map +1 -0
- package/dist/core/parser/languages/kotlin.d.ts +9 -0
- package/dist/core/parser/languages/kotlin.js +112 -0
- package/dist/core/parser/languages/kotlin.js.map +1 -0
- package/dist/core/parser/languages/php.d.ts +8 -0
- package/dist/core/parser/languages/php.js +226 -0
- package/dist/core/parser/languages/php.js.map +1 -0
- package/dist/core/parser/languages/python.d.ts +12 -0
- package/dist/core/parser/languages/python.js +66 -0
- package/dist/core/parser/languages/python.js.map +1 -0
- package/dist/core/parser/languages/ruby.d.ts +9 -0
- package/dist/core/parser/languages/ruby.js +109 -0
- package/dist/core/parser/languages/ruby.js.map +1 -0
- package/dist/core/parser/languages/rust.d.ts +12 -0
- package/dist/core/parser/languages/rust.js +121 -0
- package/dist/core/parser/languages/rust.js.map +1 -0
- package/dist/core/parser/languages/swift.d.ts +12 -0
- package/dist/core/parser/languages/swift.js +233 -0
- package/dist/core/parser/languages/swift.js.map +1 -0
- package/dist/core/parser/languages/typescript.d.ts +11 -0
- package/dist/core/parser/languages/typescript.js +169 -0
- package/dist/core/parser/languages/typescript.js.map +1 -0
- package/dist/core/parser/languages/vue.d.ts +13 -0
- package/dist/core/parser/languages/vue.js +65 -0
- package/dist/core/parser/languages/vue.js.map +1 -0
- package/dist/core/parser/markdown-processor.d.ts +17 -0
- package/dist/core/parser/markdown-processor.js +125 -0
- package/dist/core/parser/markdown-processor.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.js +276 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/csharp.js +243 -0
- package/dist/core/parser/method-extractors/configs/csharp.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/dart.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/dart.js +263 -0
- package/dist/core/parser/method-extractors/configs/dart.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/go.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/go.js +120 -0
- package/dist/core/parser/method-extractors/configs/go.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/jvm.js +309 -0
- package/dist/core/parser/method-extractors/configs/jvm.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/php.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/php.js +243 -0
- package/dist/core/parser/method-extractors/configs/php.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/python.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/python.js +219 -0
- package/dist/core/parser/method-extractors/configs/python.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/ruby.js +201 -0
- package/dist/core/parser/method-extractors/configs/ruby.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/rust.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/rust.js +120 -0
- package/dist/core/parser/method-extractors/configs/rust.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/swift.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/swift.js +191 -0
- package/dist/core/parser/method-extractors/configs/swift.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.js +231 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.js.map +1 -0
- package/dist/core/parser/method-extractors/generic.d.ts +11 -0
- package/dist/core/parser/method-extractors/generic.js +162 -0
- package/dist/core/parser/method-extractors/generic.js.map +1 -0
- package/dist/core/parser/method-types.d.ts +110 -0
- package/dist/core/parser/method-types.js +2 -0
- package/dist/core/parser/method-types.js.map +1 -0
- package/dist/core/parser/mro-processor.d.ts +46 -0
- package/dist/core/parser/mro-processor.js +677 -0
- package/dist/core/parser/mro-processor.js.map +1 -0
- package/dist/core/parser/named-binding-processor.d.ts +18 -0
- package/dist/core/parser/named-binding-processor.js +43 -0
- package/dist/core/parser/named-binding-processor.js.map +1 -0
- package/dist/core/parser/named-bindings/csharp.d.ts +3 -0
- package/dist/core/parser/named-bindings/csharp.js +38 -0
- package/dist/core/parser/named-bindings/csharp.js.map +1 -0
- package/dist/core/parser/named-bindings/java.d.ts +3 -0
- package/dist/core/parser/named-bindings/java.js +30 -0
- package/dist/core/parser/named-bindings/java.js.map +1 -0
- package/dist/core/parser/named-bindings/kotlin.d.ts +3 -0
- package/dist/core/parser/named-bindings/kotlin.js +37 -0
- package/dist/core/parser/named-bindings/kotlin.js.map +1 -0
- package/dist/core/parser/named-bindings/php.d.ts +3 -0
- package/dist/core/parser/named-bindings/php.js +62 -0
- package/dist/core/parser/named-bindings/php.js.map +1 -0
- package/dist/core/parser/named-bindings/python.d.ts +3 -0
- package/dist/core/parser/named-bindings/python.js +50 -0
- package/dist/core/parser/named-bindings/python.js.map +1 -0
- package/dist/core/parser/named-bindings/rust.d.ts +3 -0
- package/dist/core/parser/named-bindings/rust.js +67 -0
- package/dist/core/parser/named-bindings/rust.js.map +1 -0
- package/dist/core/parser/named-bindings/types.d.ts +16 -0
- package/dist/core/parser/named-bindings/types.js +7 -0
- package/dist/core/parser/named-bindings/types.js.map +1 -0
- package/dist/core/parser/named-bindings/typescript.d.ts +3 -0
- package/dist/core/parser/named-bindings/typescript.js +59 -0
- package/dist/core/parser/named-bindings/typescript.js.map +1 -0
- package/dist/core/parser/parsing-processor.d.ts +23 -0
- package/dist/core/parser/parsing-processor.js +464 -0
- package/dist/core/parser/parsing-processor.js.map +1 -0
- package/dist/core/parser/pipeline.d.ts +17 -0
- package/dist/core/parser/pipeline.js +1405 -0
- package/dist/core/parser/pipeline.js.map +1 -0
- package/dist/core/parser/process-processor.d.ts +51 -0
- package/dist/core/parser/process-processor.js +318 -0
- package/dist/core/parser/process-processor.js.map +1 -0
- package/dist/core/parser/resolution-context.d.ts +58 -0
- package/dist/core/parser/resolution-context.js +136 -0
- package/dist/core/parser/resolution-context.js.map +1 -0
- package/dist/core/parser/route-extractors/expo.d.ts +1 -0
- package/dist/core/parser/route-extractors/expo.js +37 -0
- package/dist/core/parser/route-extractors/expo.js.map +1 -0
- package/dist/core/parser/route-extractors/middleware.d.ts +47 -0
- package/dist/core/parser/route-extractors/middleware.js +168 -0
- package/dist/core/parser/route-extractors/middleware.js.map +1 -0
- package/dist/core/parser/route-extractors/nextjs.d.ts +3 -0
- package/dist/core/parser/route-extractors/nextjs.js +77 -0
- package/dist/core/parser/route-extractors/nextjs.js.map +1 -0
- package/dist/core/parser/route-extractors/php.d.ts +7 -0
- package/dist/core/parser/route-extractors/php.js +23 -0
- package/dist/core/parser/route-extractors/php.js.map +1 -0
- package/dist/core/parser/route-extractors/response-shapes.d.ts +20 -0
- package/dist/core/parser/route-extractors/response-shapes.js +295 -0
- package/dist/core/parser/route-extractors/response-shapes.js.map +1 -0
- package/dist/core/parser/structure-processor.d.ts +2 -0
- package/dist/core/parser/structure-processor.js +37 -0
- package/dist/core/parser/structure-processor.js.map +1 -0
- package/dist/core/parser/symbol-table.d.ts +79 -0
- package/dist/core/parser/symbol-table.js +116 -0
- package/dist/core/parser/symbol-table.js.map +1 -0
- package/dist/core/parser/tree-sitter-queries.d.ts +16 -0
- package/dist/core/parser/tree-sitter-queries.js +1180 -0
- package/dist/core/parser/tree-sitter-queries.js.map +1 -0
- package/dist/core/parser/type-env.d.ts +81 -0
- package/dist/core/parser/type-env.js +1048 -0
- package/dist/core/parser/type-env.js.map +1 -0
- package/dist/core/parser/type-extractors/c-cpp.d.ts +7 -0
- package/dist/core/parser/type-extractors/c-cpp.js +533 -0
- package/dist/core/parser/type-extractors/c-cpp.js.map +1 -0
- package/dist/core/parser/type-extractors/csharp.d.ts +2 -0
- package/dist/core/parser/type-extractors/csharp.js +584 -0
- package/dist/core/parser/type-extractors/csharp.js.map +1 -0
- package/dist/core/parser/type-extractors/dart.d.ts +15 -0
- package/dist/core/parser/type-extractors/dart.js +370 -0
- package/dist/core/parser/type-extractors/dart.js.map +1 -0
- package/dist/core/parser/type-extractors/go.d.ts +2 -0
- package/dist/core/parser/type-extractors/go.js +514 -0
- package/dist/core/parser/type-extractors/go.js.map +1 -0
- package/dist/core/parser/type-extractors/jvm.d.ts +3 -0
- package/dist/core/parser/type-extractors/jvm.js +857 -0
- package/dist/core/parser/type-extractors/jvm.js.map +1 -0
- package/dist/core/parser/type-extractors/php.d.ts +2 -0
- package/dist/core/parser/type-extractors/php.js +535 -0
- package/dist/core/parser/type-extractors/php.js.map +1 -0
- package/dist/core/parser/type-extractors/python.d.ts +2 -0
- package/dist/core/parser/type-extractors/python.js +475 -0
- package/dist/core/parser/type-extractors/python.js.map +1 -0
- package/dist/core/parser/type-extractors/ruby.d.ts +2 -0
- package/dist/core/parser/type-extractors/ruby.js +378 -0
- package/dist/core/parser/type-extractors/ruby.js.map +1 -0
- package/dist/core/parser/type-extractors/rust.d.ts +2 -0
- package/dist/core/parser/type-extractors/rust.js +516 -0
- package/dist/core/parser/type-extractors/rust.js.map +1 -0
- package/dist/core/parser/type-extractors/shared.d.ts +131 -0
- package/dist/core/parser/type-extractors/shared.js +797 -0
- package/dist/core/parser/type-extractors/shared.js.map +1 -0
- package/dist/core/parser/type-extractors/swift.d.ts +2 -0
- package/dist/core/parser/type-extractors/swift.js +485 -0
- package/dist/core/parser/type-extractors/swift.js.map +1 -0
- package/dist/core/parser/type-extractors/types.d.ts +172 -0
- package/dist/core/parser/type-extractors/types.js +2 -0
- package/dist/core/parser/type-extractors/types.js.map +1 -0
- package/dist/core/parser/type-extractors/typescript.d.ts +2 -0
- package/dist/core/parser/type-extractors/typescript.js +662 -0
- package/dist/core/parser/type-extractors/typescript.js.map +1 -0
- package/dist/core/parser/utils/ast-helpers.d.ts +73 -0
- package/dist/core/parser/utils/ast-helpers.js +415 -0
- package/dist/core/parser/utils/ast-helpers.js.map +1 -0
- package/dist/core/parser/utils/call-analysis.d.ts +75 -0
- package/dist/core/parser/utils/call-analysis.js +575 -0
- package/dist/core/parser/utils/call-analysis.js.map +1 -0
- package/dist/core/parser/utils/event-loop.d.ts +5 -0
- package/dist/core/parser/utils/event-loop.js +6 -0
- package/dist/core/parser/utils/event-loop.js.map +1 -0
- package/dist/core/parser/utils/method-props.d.ts +8 -0
- package/dist/core/parser/utils/method-props.js +39 -0
- package/dist/core/parser/utils/method-props.js.map +1 -0
- package/dist/core/parser/utils/verbose.d.ts +1 -0
- package/dist/core/parser/utils/verbose.js +8 -0
- package/dist/core/parser/utils/verbose.js.map +1 -0
- package/dist/core/parser/vue-sfc-extractor.d.ts +44 -0
- package/dist/core/parser/vue-sfc-extractor.js +95 -0
- package/dist/core/parser/vue-sfc-extractor.js.map +1 -0
- package/dist/core/parser/workers/parse-worker.d.ts +171 -0
- package/dist/core/parser/workers/parse-worker.js +1724 -0
- package/dist/core/parser/workers/parse-worker.js.map +1 -0
- package/dist/core/parser/workers/worker-pool.d.ts +16 -0
- package/dist/core/parser/workers/worker-pool.js +124 -0
- package/dist/core/parser/workers/worker-pool.js.map +1 -0
- package/dist/core/shared/graph-types.d.ts +61 -0
- package/dist/core/shared/graph-types.js +5 -0
- package/dist/core/shared/graph-types.js.map +1 -0
- package/dist/core/shared/index.d.ts +4 -0
- package/dist/core/shared/index.js +4 -0
- package/dist/core/shared/index.js.map +1 -0
- package/dist/core/shared/language-detection.d.ts +22 -0
- package/dist/core/shared/language-detection.js +137 -0
- package/dist/core/shared/language-detection.js.map +1 -0
- package/dist/core/shared/languages.d.ts +23 -0
- package/dist/core/shared/languages.js +25 -0
- package/dist/core/shared/languages.js.map +1 -0
- package/dist/core/shared/pipeline.d.ts +15 -0
- package/dist/core/shared/pipeline.js +5 -0
- package/dist/core/shared/pipeline.js.map +1 -0
- package/dist/core/tree-sitter/parser-loader.d.ts +5 -0
- package/dist/core/tree-sitter/parser-loader.js +71 -0
- package/dist/core/tree-sitter/parser-loader.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +132 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/hash.d.ts +1 -0
- package/dist/lib/hash.js +6 -0
- package/dist/lib/hash.js.map +1 -0
- package/dist/lib/naming.d.ts +12 -0
- package/dist/lib/naming.js +28 -0
- package/dist/lib/naming.js.map +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +4 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.js +282 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +37 -0
- package/dist/mcp/tools.js +650 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/query/bm25.d.ts +19 -0
- package/dist/query/bm25.js +60 -0
- package/dist/query/bm25.js.map +1 -0
- package/dist/query/graph-index.d.ts +40 -0
- package/dist/query/graph-index.js +178 -0
- package/dist/query/graph-index.js.map +1 -0
- package/dist/store/derived-index.d.ts +4 -0
- package/dist/store/derived-index.js +68 -0
- package/dist/store/derived-index.js.map +1 -0
- package/dist/store/meta.d.ts +1 -0
- package/dist/store/meta.js +3 -0
- package/dist/store/meta.js.map +1 -0
- package/dist/store/schema.d.ts +135 -0
- package/dist/store/schema.js +2 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/store.d.ts +49 -0
- package/dist/store/store.js +254 -0
- package/dist/store/store.js.map +1 -0
- package/dist/types/pipeline.d.ts +12 -0
- package/dist/types/pipeline.js +2 -0
- package/dist/types/pipeline.js.map +1 -0
- package/package.json +69 -0
- package/skills/cotx-enrich/SKILL.md +59 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function detectDelta(store, changedFiles) {
|
|
2
|
+
const changedSet = new Set(changedFiles);
|
|
3
|
+
const affectedModules = new Set();
|
|
4
|
+
const affectedContracts = new Set();
|
|
5
|
+
const affectedFlows = new Set();
|
|
6
|
+
// 1. Find affected modules: any module whose files[] overlaps with changedFiles
|
|
7
|
+
for (const id of store.listModules()) {
|
|
8
|
+
const mod = store.readModule(id);
|
|
9
|
+
if (mod.files.some(f => changedSet.has(f))) {
|
|
10
|
+
affectedModules.add(id);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
// 2. Find affected contracts: provider or consumer is an affected module
|
|
14
|
+
for (const id of store.listContracts()) {
|
|
15
|
+
const contract = store.readContract(id);
|
|
16
|
+
if (affectedModules.has(contract.provider) || affectedModules.has(contract.consumer)) {
|
|
17
|
+
affectedContracts.add(id);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// 3. Find affected flows: any step's module is an affected module
|
|
21
|
+
for (const id of store.listFlows()) {
|
|
22
|
+
const flow = store.readFlow(id);
|
|
23
|
+
if (flow.steps?.some(s => affectedModules.has(s.module))) {
|
|
24
|
+
affectedFlows.add(id);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
changedFiles,
|
|
29
|
+
affectedModules: [...affectedModules].sort(),
|
|
30
|
+
affectedContracts: [...affectedContracts].sort(),
|
|
31
|
+
affectedFlows: [...affectedFlows].sort(),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=delta-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-detector.js","sourceRoot":"","sources":["../../src/compiler/delta-detector.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,YAAsB;IAClE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,gFAAgF;IAChF,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrF,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACzD,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO;QACL,YAAY;QACZ,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE;QAC5C,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,EAAE;QAChD,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GraphNode, ProcessData } from '../core/export/json-exporter.js';
|
|
2
|
+
import type { ModuleNode, FlowNode } from '../store/schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Compile ProcessData[] (from BFS detection) into FlowNode[] records.
|
|
5
|
+
*
|
|
6
|
+
* Algorithm:
|
|
7
|
+
* 1. Build nodeId→moduleId map: for each ModuleNode, expand its files set;
|
|
8
|
+
* for each GraphNode, find which module owns its filePath.
|
|
9
|
+
* 2. Build nodeId→name map from GraphNode properties.
|
|
10
|
+
* 3. Map each ProcessData → FlowNode:
|
|
11
|
+
* - id: process ID as-is
|
|
12
|
+
* - type: 'flow'
|
|
13
|
+
* - trigger: entryPointId resolved to function name (or "unknown")
|
|
14
|
+
* - steps: sorted by step number, each resolved to { module, function }
|
|
15
|
+
* - struct_hash: over { id, trigger, steps: [{module, function}] }
|
|
16
|
+
* 4. Return FlowNode[] sorted alphabetically by id.
|
|
17
|
+
*/
|
|
18
|
+
export declare function compileFlows(processes: ProcessData[], nodes: GraphNode[], modules: ModuleNode[]): FlowNode[];
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { structHash } from '../lib/hash.js';
|
|
2
|
+
/**
|
|
3
|
+
* Compile ProcessData[] (from BFS detection) into FlowNode[] records.
|
|
4
|
+
*
|
|
5
|
+
* Algorithm:
|
|
6
|
+
* 1. Build nodeId→moduleId map: for each ModuleNode, expand its files set;
|
|
7
|
+
* for each GraphNode, find which module owns its filePath.
|
|
8
|
+
* 2. Build nodeId→name map from GraphNode properties.
|
|
9
|
+
* 3. Map each ProcessData → FlowNode:
|
|
10
|
+
* - id: process ID as-is
|
|
11
|
+
* - type: 'flow'
|
|
12
|
+
* - trigger: entryPointId resolved to function name (or "unknown")
|
|
13
|
+
* - steps: sorted by step number, each resolved to { module, function }
|
|
14
|
+
* - struct_hash: over { id, trigger, steps: [{module, function}] }
|
|
15
|
+
* 4. Return FlowNode[] sorted alphabetically by id.
|
|
16
|
+
*/
|
|
17
|
+
export function compileFlows(processes, nodes, modules) {
|
|
18
|
+
// Step 1: build nodeId → moduleId map via ModuleNode file sets
|
|
19
|
+
const fileToModule = new Map();
|
|
20
|
+
for (const mod of modules) {
|
|
21
|
+
for (const file of mod.files) {
|
|
22
|
+
fileToModule.set(file, mod.id);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const nodeToModule = new Map();
|
|
26
|
+
for (const node of nodes) {
|
|
27
|
+
const filePath = node.properties.filePath;
|
|
28
|
+
if (filePath) {
|
|
29
|
+
const modId = fileToModule.get(filePath);
|
|
30
|
+
if (modId !== undefined) {
|
|
31
|
+
nodeToModule.set(node.id, modId);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Step 2: build nodeId → function name map
|
|
36
|
+
const nodeToName = new Map();
|
|
37
|
+
for (const node of nodes) {
|
|
38
|
+
const name = node.properties.name;
|
|
39
|
+
if (name !== undefined) {
|
|
40
|
+
nodeToName.set(node.id, name);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Step 3: map each ProcessData → FlowNode
|
|
44
|
+
const flows = processes.map((proc) => {
|
|
45
|
+
const trigger = nodeToName.get(proc.entryPointId) ?? 'unknown';
|
|
46
|
+
const steps = [...proc.steps]
|
|
47
|
+
.sort((a, b) => a.step - b.step)
|
|
48
|
+
.map((s) => ({
|
|
49
|
+
module: nodeToModule.get(s.nodeId) ?? 'unknown',
|
|
50
|
+
function: nodeToName.get(s.nodeId) ?? 'unknown',
|
|
51
|
+
}));
|
|
52
|
+
const hash = structHash({
|
|
53
|
+
id: proc.id,
|
|
54
|
+
trigger,
|
|
55
|
+
steps: steps.map((s) => ({ module: s.module, function: s.function })),
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
id: proc.id,
|
|
59
|
+
type: 'flow',
|
|
60
|
+
trigger,
|
|
61
|
+
steps,
|
|
62
|
+
struct_hash: hash,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
// Step 4: sort alphabetically by id
|
|
66
|
+
flows.sort((a, b) => a.id.localeCompare(b.id));
|
|
67
|
+
return flows;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=flow-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-compiler.js","sourceRoot":"","sources":["../../src/compiler/flow-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAwB,EACxB,KAAkB,EAClB,OAAqB;IAErB,+DAA+D;IAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAA8B,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAA0B,CAAC;QACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAe,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QAE/D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS;YAC/C,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS;SAChD,CAAC,CAAC,CAAC;QAEN,MAAM,IAAI,GAAG,UAAU,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtE,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,MAAe;YACrB,OAAO;YACP,KAAK;YACL,WAAW,EAAE,IAAI;SACC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ModuleNode } from '../store/schema.js';
|
|
2
|
+
import type { GraphNode, GraphEdge, CommunityData } from '../core/export/json-exporter.js';
|
|
3
|
+
/**
|
|
4
|
+
* Compile GraphNode + GraphEdge data into ModuleNode records.
|
|
5
|
+
*
|
|
6
|
+
* Algorithm:
|
|
7
|
+
* 1. Group nodes by top-level directory of their filePath.
|
|
8
|
+
* 2. For large modules (> COMMUNITY_SPLIT_THRESHOLD files), use community
|
|
9
|
+
* data to split into sub-modules with labels derived from member names.
|
|
10
|
+
* 3. Build deduplicated file sets per module.
|
|
11
|
+
* 4. Map each node ID → module ID.
|
|
12
|
+
* 5. Count external in-calls per node (caller module ≠ callee module).
|
|
13
|
+
* 6. Canonical entry = most externally called exported function in module.
|
|
14
|
+
* 7. Build depends_on / depended_by from cross-module CALLS edges.
|
|
15
|
+
* 8. Compute struct_hash from { id, canonical_entry, files }.
|
|
16
|
+
* 9. Sort modules alphabetically.
|
|
17
|
+
*/
|
|
18
|
+
export declare function compileModules(nodes: GraphNode[], edges: GraphEdge[], communities: CommunityData[]): ModuleNode[];
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import { structHash } from '../lib/hash.js';
|
|
2
|
+
import { splitCompoundName, moduleIdForFile } from '../lib/naming.js';
|
|
3
|
+
/** Minimum files in a directory module before community splitting kicks in. */
|
|
4
|
+
const COMMUNITY_SPLIT_THRESHOLD = 50;
|
|
5
|
+
/** Sub-modules below this file count get merged into their closest neighbor. */
|
|
6
|
+
const MIN_SUBMODULE_FILES = 5;
|
|
7
|
+
/** Sub-modules above this count get directory-aware refinement. */
|
|
8
|
+
const DIRECTORY_REFINE_THRESHOLD = 100;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a sub-module label from member function/symbol names.
|
|
11
|
+
* Finds the most common non-noise word root across member names.
|
|
12
|
+
*/
|
|
13
|
+
function generateSubModuleLabel(memberNodeIds, nodeById) {
|
|
14
|
+
const NOISE = new Set([
|
|
15
|
+
'get', 'set', 'new', 'create', 'handle', 'error', 'config', 'init',
|
|
16
|
+
'type', 'data', 'info', 'item', 'list', 'map', 'test', 'mock', 'base',
|
|
17
|
+
'default', 'internal', 'util', 'helper', 'manager', 'service', 'handler',
|
|
18
|
+
'processor', 'builder', 'factory', 'impl', 'abstract', 'interface',
|
|
19
|
+
'command', 'func', 'run', 'load', 'write', 'read', 'parse', 'string',
|
|
20
|
+
'options', 'args', 'result', 'value', 'node', 'file', 'path', 'name',
|
|
21
|
+
]);
|
|
22
|
+
const wordCounts = new Map();
|
|
23
|
+
for (const nodeId of memberNodeIds) {
|
|
24
|
+
const node = nodeById.get(nodeId);
|
|
25
|
+
if (!node)
|
|
26
|
+
continue;
|
|
27
|
+
const name = node.properties.name;
|
|
28
|
+
if (!name)
|
|
29
|
+
continue;
|
|
30
|
+
const words = splitCompoundName(name);
|
|
31
|
+
// Count each word once per symbol (not per occurrence)
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
for (const w of words) {
|
|
34
|
+
if (NOISE.has(w) || seen.has(w))
|
|
35
|
+
continue;
|
|
36
|
+
seen.add(w);
|
|
37
|
+
wordCounts.set(w, (wordCounts.get(w) ?? 0) + 1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Pick word with highest count; tie-break by length desc (longer = more meaningful)
|
|
41
|
+
let best = '';
|
|
42
|
+
let bestCount = 0;
|
|
43
|
+
for (const [word, count] of wordCounts) {
|
|
44
|
+
if (count > bestCount ||
|
|
45
|
+
(count === bestCount && word.length > best.length) ||
|
|
46
|
+
(count === bestCount && word.length === best.length && word < best)) {
|
|
47
|
+
bestCount = count;
|
|
48
|
+
best = word;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return best || 'misc';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compile GraphNode + GraphEdge data into ModuleNode records.
|
|
55
|
+
*
|
|
56
|
+
* Algorithm:
|
|
57
|
+
* 1. Group nodes by top-level directory of their filePath.
|
|
58
|
+
* 2. For large modules (> COMMUNITY_SPLIT_THRESHOLD files), use community
|
|
59
|
+
* data to split into sub-modules with labels derived from member names.
|
|
60
|
+
* 3. Build deduplicated file sets per module.
|
|
61
|
+
* 4. Map each node ID → module ID.
|
|
62
|
+
* 5. Count external in-calls per node (caller module ≠ callee module).
|
|
63
|
+
* 6. Canonical entry = most externally called exported function in module.
|
|
64
|
+
* 7. Build depends_on / depended_by from cross-module CALLS edges.
|
|
65
|
+
* 8. Compute struct_hash from { id, canonical_entry, files }.
|
|
66
|
+
* 9. Sort modules alphabetically.
|
|
67
|
+
*/
|
|
68
|
+
export function compileModules(nodes, edges, communities) {
|
|
69
|
+
// Build a lookup of node properties for quick access
|
|
70
|
+
const nodeById = new Map();
|
|
71
|
+
for (const node of nodes) {
|
|
72
|
+
nodeById.set(node.id, node);
|
|
73
|
+
}
|
|
74
|
+
// Step 1: group nodes by top-level directory
|
|
75
|
+
const dirFiles = new Map();
|
|
76
|
+
const dirNodeIds = new Map();
|
|
77
|
+
for (const node of nodes) {
|
|
78
|
+
const filePath = node.properties.filePath;
|
|
79
|
+
if (!filePath)
|
|
80
|
+
continue;
|
|
81
|
+
const dirId = moduleIdForFile(filePath);
|
|
82
|
+
if (!dirFiles.has(dirId)) {
|
|
83
|
+
dirFiles.set(dirId, new Set());
|
|
84
|
+
dirNodeIds.set(dirId, new Set());
|
|
85
|
+
}
|
|
86
|
+
dirFiles.get(dirId).add(filePath);
|
|
87
|
+
dirNodeIds.get(dirId).add(node.id);
|
|
88
|
+
}
|
|
89
|
+
// Step 2: community-based splitting for large modules
|
|
90
|
+
// Build community membership lookup: nodeId → communityId
|
|
91
|
+
const nodeToCommunity = new Map();
|
|
92
|
+
for (const comm of communities) {
|
|
93
|
+
for (const memberId of comm.members) {
|
|
94
|
+
nodeToCommunity.set(memberId, comm.id);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Final module maps (after potential splitting)
|
|
98
|
+
const moduleFiles = new Map();
|
|
99
|
+
const moduleNodeIds = new Map();
|
|
100
|
+
for (const [dirId, fileSet] of dirFiles) {
|
|
101
|
+
const nodeIds = dirNodeIds.get(dirId);
|
|
102
|
+
if (fileSet.size > COMMUNITY_SPLIT_THRESHOLD && communities.length > 0) {
|
|
103
|
+
// Phase A: label each community, then MERGE same-label communities
|
|
104
|
+
const communityGroups = new Map(); // commId → nodeIds
|
|
105
|
+
for (const nodeId of nodeIds) {
|
|
106
|
+
const commId = nodeToCommunity.get(nodeId);
|
|
107
|
+
if (commId) {
|
|
108
|
+
if (!communityGroups.has(commId))
|
|
109
|
+
communityGroups.set(commId, new Set());
|
|
110
|
+
communityGroups.get(commId).add(nodeId);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Compute label for each community, then merge by label
|
|
114
|
+
const labelToNodes = new Map();
|
|
115
|
+
for (const [, members] of communityGroups) {
|
|
116
|
+
if (members.size === 0)
|
|
117
|
+
continue;
|
|
118
|
+
const label = generateSubModuleLabel([...members], nodeById);
|
|
119
|
+
if (!labelToNodes.has(label))
|
|
120
|
+
labelToNodes.set(label, new Set());
|
|
121
|
+
const merged = labelToNodes.get(label);
|
|
122
|
+
for (const n of members)
|
|
123
|
+
merged.add(n);
|
|
124
|
+
}
|
|
125
|
+
// Phase B: FILE-LEVEL assignment — assign each file to the label
|
|
126
|
+
// that has the most community-member nodes in that file
|
|
127
|
+
const fileToNodeIds = new Map();
|
|
128
|
+
for (const nodeId of nodeIds) {
|
|
129
|
+
const fp = nodeById.get(nodeId)?.properties.filePath;
|
|
130
|
+
if (!fp)
|
|
131
|
+
continue;
|
|
132
|
+
if (!fileToNodeIds.has(fp))
|
|
133
|
+
fileToNodeIds.set(fp, []);
|
|
134
|
+
fileToNodeIds.get(fp).push(nodeId);
|
|
135
|
+
}
|
|
136
|
+
// Build node→label lookup for community-assigned nodes
|
|
137
|
+
const nodeToLabel = new Map();
|
|
138
|
+
for (const [label, nodes2] of labelToNodes) {
|
|
139
|
+
for (const nid of nodes2)
|
|
140
|
+
nodeToLabel.set(nid, label);
|
|
141
|
+
}
|
|
142
|
+
// For each file, count which label has the most members in it
|
|
143
|
+
const fileToLabel = new Map();
|
|
144
|
+
for (const [fp, fNodes] of fileToNodeIds) {
|
|
145
|
+
const labelCounts = new Map();
|
|
146
|
+
for (const nid of fNodes) {
|
|
147
|
+
const label = nodeToLabel.get(nid);
|
|
148
|
+
if (label)
|
|
149
|
+
labelCounts.set(label, (labelCounts.get(label) ?? 0) + 1);
|
|
150
|
+
}
|
|
151
|
+
if (labelCounts.size > 0) {
|
|
152
|
+
let best = '';
|
|
153
|
+
let bestCount = 0;
|
|
154
|
+
for (const [label, count] of labelCounts) {
|
|
155
|
+
if (count > bestCount || (count === bestCount && label < best)) {
|
|
156
|
+
bestCount = count;
|
|
157
|
+
best = label;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
fileToLabel.set(fp, best);
|
|
161
|
+
}
|
|
162
|
+
// else: file has no community members, will be assigned in Phase C
|
|
163
|
+
}
|
|
164
|
+
// Phase C: assign remaining files by co-location — if a file has the
|
|
165
|
+
// same basename prefix (e.g. control_state.go ↔ control_ops.go) as
|
|
166
|
+
// assigned files, group them together. Otherwise use edge proximity.
|
|
167
|
+
const unassignedFiles = [...fileToNodeIds.keys()].filter((fp) => !fileToLabel.has(fp));
|
|
168
|
+
// Build file basename → label mapping from assigned files
|
|
169
|
+
const prefixToLabel = new Map();
|
|
170
|
+
for (const [fp, label] of fileToLabel) {
|
|
171
|
+
const base = fp.split('/').pop().replace(/\.[^.]+$/, '');
|
|
172
|
+
const prefix = base.replace(/_test$/, '').split('_')[0];
|
|
173
|
+
if (!prefixToLabel.has(prefix))
|
|
174
|
+
prefixToLabel.set(prefix, new Map());
|
|
175
|
+
const counts = prefixToLabel.get(prefix);
|
|
176
|
+
counts.set(label, (counts.get(label) ?? 0) + 1);
|
|
177
|
+
}
|
|
178
|
+
for (const fp of unassignedFiles) {
|
|
179
|
+
const base = fp.split('/').pop().replace(/\.[^.]+$/, '');
|
|
180
|
+
const prefix = base.replace(/_test$/, '').split('_')[0];
|
|
181
|
+
// Try prefix match
|
|
182
|
+
const counts = prefixToLabel.get(prefix);
|
|
183
|
+
if (counts && counts.size > 0) {
|
|
184
|
+
let best = '';
|
|
185
|
+
let bestCount = 0;
|
|
186
|
+
for (const [label, count] of counts) {
|
|
187
|
+
if (count > bestCount) {
|
|
188
|
+
bestCount = count;
|
|
189
|
+
best = label;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
fileToLabel.set(fp, best);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
// Last resort: use the file's own nodes' word roots as a label
|
|
196
|
+
const fNodes = fileToNodeIds.get(fp) ?? [];
|
|
197
|
+
const selfLabel = generateSubModuleLabel(fNodes, nodeById);
|
|
198
|
+
fileToLabel.set(fp, selfLabel);
|
|
199
|
+
}
|
|
200
|
+
// Phase D: assemble sub-modules from file assignments
|
|
201
|
+
const labelModFiles = new Map();
|
|
202
|
+
const labelModNodes = new Map();
|
|
203
|
+
for (const [fp, label] of fileToLabel) {
|
|
204
|
+
if (!labelModFiles.has(label)) {
|
|
205
|
+
labelModFiles.set(label, new Set());
|
|
206
|
+
labelModNodes.set(label, new Set());
|
|
207
|
+
}
|
|
208
|
+
labelModFiles.get(label).add(fp);
|
|
209
|
+
for (const nid of (fileToNodeIds.get(fp) ?? [])) {
|
|
210
|
+
labelModNodes.get(label).add(nid);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Phase E: merge small sub-modules into their closest large neighbor
|
|
214
|
+
// Find which labels are "small" (below threshold)
|
|
215
|
+
const smallLabels = new Set();
|
|
216
|
+
const largeLabels = new Set();
|
|
217
|
+
for (const [label, files] of labelModFiles) {
|
|
218
|
+
if (files.size < MIN_SUBMODULE_FILES)
|
|
219
|
+
smallLabels.add(label);
|
|
220
|
+
else
|
|
221
|
+
largeLabels.add(label);
|
|
222
|
+
}
|
|
223
|
+
if (smallLabels.size > 0 && largeLabels.size > 0) {
|
|
224
|
+
// Single-pass edge bucketing: build nodeId → label map, then one
|
|
225
|
+
// pass over edges to accumulate mergeScores[smallLabel][largeLabel].
|
|
226
|
+
const allNodeToLabel = new Map();
|
|
227
|
+
for (const [label, nids] of labelModNodes) {
|
|
228
|
+
for (const nid of nids)
|
|
229
|
+
allNodeToLabel.set(nid, label);
|
|
230
|
+
}
|
|
231
|
+
const mergeScores = new Map();
|
|
232
|
+
for (const sl of smallLabels)
|
|
233
|
+
mergeScores.set(sl, new Map());
|
|
234
|
+
for (const edge of edges) {
|
|
235
|
+
if (edge.type !== 'CALLS')
|
|
236
|
+
continue;
|
|
237
|
+
const srcLabel = allNodeToLabel.get(edge.sourceId);
|
|
238
|
+
const tgtLabel = allNodeToLabel.get(edge.targetId);
|
|
239
|
+
if (!srcLabel || !tgtLabel || srcLabel === tgtLabel)
|
|
240
|
+
continue;
|
|
241
|
+
// One must be small, the other large
|
|
242
|
+
if (smallLabels.has(srcLabel) && largeLabels.has(tgtLabel)) {
|
|
243
|
+
const counts = mergeScores.get(srcLabel);
|
|
244
|
+
counts.set(tgtLabel, (counts.get(tgtLabel) ?? 0) + 1);
|
|
245
|
+
}
|
|
246
|
+
else if (smallLabels.has(tgtLabel) && largeLabels.has(srcLabel)) {
|
|
247
|
+
const counts = mergeScores.get(tgtLabel);
|
|
248
|
+
counts.set(srcLabel, (counts.get(srcLabel) ?? 0) + 1);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
for (const smallLabel of smallLabels) {
|
|
252
|
+
const edgeCounts = mergeScores.get(smallLabel);
|
|
253
|
+
// Pick the most connected large label, or the largest by file count
|
|
254
|
+
let bestTarget = '';
|
|
255
|
+
let bestScore = 0;
|
|
256
|
+
for (const [label, count] of edgeCounts) {
|
|
257
|
+
if (count > bestScore) {
|
|
258
|
+
bestScore = count;
|
|
259
|
+
bestTarget = label;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (!bestTarget) {
|
|
263
|
+
// Fallback: merge into the largest sub-module
|
|
264
|
+
let maxFiles = 0;
|
|
265
|
+
for (const ll of largeLabels) {
|
|
266
|
+
const size = labelModFiles.get(ll).size;
|
|
267
|
+
if (size > maxFiles) {
|
|
268
|
+
maxFiles = size;
|
|
269
|
+
bestTarget = ll;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (bestTarget) {
|
|
274
|
+
// Merge small into large
|
|
275
|
+
const smallNodes = labelModNodes.get(smallLabel);
|
|
276
|
+
const targetFiles = labelModFiles.get(bestTarget);
|
|
277
|
+
const targetNodes = labelModNodes.get(bestTarget);
|
|
278
|
+
for (const f of labelModFiles.get(smallLabel))
|
|
279
|
+
targetFiles.add(f);
|
|
280
|
+
for (const n of smallNodes)
|
|
281
|
+
targetNodes.add(n);
|
|
282
|
+
labelModFiles.delete(smallLabel);
|
|
283
|
+
labelModNodes.delete(smallLabel);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Phase F: directory-aware refinement for still-large sub-modules
|
|
288
|
+
for (const [label, files] of [...labelModFiles.entries()]) {
|
|
289
|
+
if (files.size <= DIRECTORY_REFINE_THRESHOLD)
|
|
290
|
+
continue;
|
|
291
|
+
// Check if files span multiple subdirectories
|
|
292
|
+
const subdirCounts = new Map();
|
|
293
|
+
for (const fp of files) {
|
|
294
|
+
const parts = fp.split('/');
|
|
295
|
+
const subdir = parts.length >= 3 ? parts[1] : '_flat';
|
|
296
|
+
if (!subdirCounts.has(subdir))
|
|
297
|
+
subdirCounts.set(subdir, new Set());
|
|
298
|
+
subdirCounts.get(subdir).add(fp);
|
|
299
|
+
}
|
|
300
|
+
// Only refine if there are multiple meaningful subdirs
|
|
301
|
+
if (subdirCounts.size < 2)
|
|
302
|
+
continue;
|
|
303
|
+
// Split: each subdir becomes its own sub-module
|
|
304
|
+
const nodes2 = labelModNodes.get(label);
|
|
305
|
+
labelModFiles.delete(label);
|
|
306
|
+
labelModNodes.delete(label);
|
|
307
|
+
for (const [subdir, subdirFiles] of subdirCounts) {
|
|
308
|
+
const refinedLabel = subdir === '_flat' ? label : subdir;
|
|
309
|
+
const refinedNodes = new Set();
|
|
310
|
+
for (const nid of nodes2) {
|
|
311
|
+
const fp = nodeById.get(nid)?.properties.filePath;
|
|
312
|
+
if (fp && subdirFiles.has(fp))
|
|
313
|
+
refinedNodes.add(nid);
|
|
314
|
+
}
|
|
315
|
+
if (!labelModFiles.has(refinedLabel)) {
|
|
316
|
+
labelModFiles.set(refinedLabel, new Set());
|
|
317
|
+
labelModNodes.set(refinedLabel, new Set());
|
|
318
|
+
}
|
|
319
|
+
const existing = labelModFiles.get(refinedLabel);
|
|
320
|
+
const existingNodes = labelModNodes.get(refinedLabel);
|
|
321
|
+
for (const f of subdirFiles)
|
|
322
|
+
existing.add(f);
|
|
323
|
+
for (const n of refinedNodes)
|
|
324
|
+
existingNodes.add(n);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
for (const [label, files] of labelModFiles) {
|
|
328
|
+
if (files.size === 0)
|
|
329
|
+
continue;
|
|
330
|
+
const subModId = `${dirId}/${label}`;
|
|
331
|
+
moduleFiles.set(subModId, files);
|
|
332
|
+
moduleNodeIds.set(subModId, labelModNodes.get(label));
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Small module — keep as-is
|
|
337
|
+
moduleFiles.set(dirId, fileSet);
|
|
338
|
+
moduleNodeIds.set(dirId, nodeIds);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// Step 3: map node ID → module ID for fast lookup
|
|
342
|
+
const nodeToModule = new Map();
|
|
343
|
+
for (const [modId, nodeIds] of moduleNodeIds) {
|
|
344
|
+
for (const nodeId of nodeIds) {
|
|
345
|
+
nodeToModule.set(nodeId, modId);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Step 4: count external in-calls per node (CALLS edges only)
|
|
349
|
+
const externalInCallCount = new Map();
|
|
350
|
+
const dependsOnSet = new Map();
|
|
351
|
+
const dependedBySet = new Map();
|
|
352
|
+
for (const modId of moduleFiles.keys()) {
|
|
353
|
+
dependsOnSet.set(modId, new Set());
|
|
354
|
+
dependedBySet.set(modId, new Set());
|
|
355
|
+
}
|
|
356
|
+
for (const edge of edges) {
|
|
357
|
+
if (edge.type !== 'CALLS')
|
|
358
|
+
continue;
|
|
359
|
+
const srcMod = nodeToModule.get(edge.sourceId);
|
|
360
|
+
const tgtMod = nodeToModule.get(edge.targetId);
|
|
361
|
+
if (!srcMod || !tgtMod)
|
|
362
|
+
continue;
|
|
363
|
+
if (srcMod !== tgtMod) {
|
|
364
|
+
externalInCallCount.set(edge.targetId, (externalInCallCount.get(edge.targetId) ?? 0) + 1);
|
|
365
|
+
dependsOnSet.get(srcMod).add(tgtMod);
|
|
366
|
+
dependedBySet.get(tgtMod).add(srcMod);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
// Step 5: find canonical_entry per module
|
|
370
|
+
const moduleCanonicalEntry = new Map();
|
|
371
|
+
for (const [modId, nodeIds] of moduleNodeIds) {
|
|
372
|
+
let bestNodeId;
|
|
373
|
+
let bestCount = -1;
|
|
374
|
+
for (const nodeId of nodeIds) {
|
|
375
|
+
const node = nodeById.get(nodeId);
|
|
376
|
+
const isExported = node.properties.isExported;
|
|
377
|
+
if (!isExported)
|
|
378
|
+
continue;
|
|
379
|
+
const count = externalInCallCount.get(nodeId) ?? 0;
|
|
380
|
+
if (count > bestCount) {
|
|
381
|
+
bestCount = count;
|
|
382
|
+
bestNodeId = nodeId;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
if (bestNodeId) {
|
|
386
|
+
const node = nodeById.get(bestNodeId);
|
|
387
|
+
moduleCanonicalEntry.set(modId, node.properties.name);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
const exportedNodes = [...nodeIds]
|
|
391
|
+
.map((id) => nodeById.get(id))
|
|
392
|
+
.filter((n) => n.properties.isExported)
|
|
393
|
+
.sort((a, b) => String(a.properties.name).localeCompare(String(b.properties.name)));
|
|
394
|
+
if (exportedNodes.length > 0) {
|
|
395
|
+
moduleCanonicalEntry.set(modId, exportedNodes[0].properties.name);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
moduleCanonicalEntry.set(modId, '');
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
// Step 6: assemble ModuleNode records and sort alphabetically
|
|
403
|
+
const moduleIds = [...moduleFiles.keys()].sort();
|
|
404
|
+
return moduleIds.map((modId) => {
|
|
405
|
+
const files = [...moduleFiles.get(modId)].sort();
|
|
406
|
+
const canonical_entry = moduleCanonicalEntry.get(modId) ?? '';
|
|
407
|
+
const depends_on = [...(dependsOnSet.get(modId) ?? [])].sort();
|
|
408
|
+
const depended_by = [...(dependedBySet.get(modId) ?? [])].sort();
|
|
409
|
+
const hash = structHash({ id: modId, canonical_entry, files });
|
|
410
|
+
return {
|
|
411
|
+
id: modId,
|
|
412
|
+
canonical_entry,
|
|
413
|
+
files,
|
|
414
|
+
depends_on,
|
|
415
|
+
depended_by,
|
|
416
|
+
struct_hash: hash,
|
|
417
|
+
};
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=module-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-compiler.js","sourceRoot":"","sources":["../../src/compiler/module-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CotxStore } from '../store/store.js';
|
|
2
|
+
export interface StaleResult {
|
|
3
|
+
staleEnrichments: Array<{
|
|
4
|
+
nodeId: string;
|
|
5
|
+
layer: string;
|
|
6
|
+
source_hash: string;
|
|
7
|
+
struct_hash: string;
|
|
8
|
+
}>;
|
|
9
|
+
staleAnnotations: Array<{
|
|
10
|
+
nodeId: string;
|
|
11
|
+
layer: string;
|
|
12
|
+
annotationIndex: number;
|
|
13
|
+
reason: string;
|
|
14
|
+
}>;
|
|
15
|
+
summary: {
|
|
16
|
+
totalStale: number;
|
|
17
|
+
enrichments: number;
|
|
18
|
+
annotations: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function detectStale(store: CotxStore): StaleResult;
|
|
22
|
+
export declare function markStaleAnnotations(store: CotxStore, changedNodeIds: Set<string>, reason: string): number;
|