@omfalos/mokosh 0.3.3 → 0.4.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.
@@ -1,19 +1,6 @@
1
+ import { N as NormalizedToken } from './tokenizer-BaF1eUBQ.mjs';
1
2
  import { F as FileType } from './parse-CAKctgb6.mjs';
2
3
 
3
- /**
4
- * Language-agnostic source tokenizer for duplicate-code detection. Strips per-language
5
- * comment syntax, then splits what remains into a normalized token stream shared by every
6
- * language `DEFAULT_EXTENSIONS` covers — one generic tokenizer rather than a per-language
7
- * lexer, so `findDuplicates` works uniformly across TS/JS, Python, Go, CoffeeScript,
8
- * LiveScript, Lua, Gherkin, style files, and Markdown.
9
- */
10
-
11
- /** One normalized token plus the 1-based source line it came from. */
12
- interface NormalizedToken {
13
- text: string;
14
- line: number;
15
- }
16
-
17
4
  /** Piscina task handler: tokenizes a single file's content in a worker thread, for `findDuplicates`. */
18
5
 
19
6
  declare function tokenizeInWorker(payload: {
@@ -1,19 +1,6 @@
1
+ import { N as NormalizedToken } from './tokenizer-BaF1eUBQ.js';
1
2
  import { F as FileType } from './parse-CAKctgb6.js';
2
3
 
3
- /**
4
- * Language-agnostic source tokenizer for duplicate-code detection. Strips per-language
5
- * comment syntax, then splits what remains into a normalized token stream shared by every
6
- * language `DEFAULT_EXTENSIONS` covers — one generic tokenizer rather than a per-language
7
- * lexer, so `findDuplicates` works uniformly across TS/JS, Python, Go, CoffeeScript,
8
- * LiveScript, Lua, Gherkin, style files, and Markdown.
9
- */
10
-
11
- /** One normalized token plus the 1-based source line it came from. */
12
- interface NormalizedToken {
13
- text: string;
14
- line: number;
15
- }
16
-
17
4
  /** Piscina task handler: tokenizes a single file's content in a worker thread, for `findDuplicates`. */
18
5
 
19
6
  declare function tokenizeInWorker(payload: {
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { F as FileNode, C as CallEdge, I as ImportEdge, P as ParseResult, S as StructuredTag } from './types-BtSqoqbZ.mjs';
2
2
  export { E as ExportedSymbol } from './types-BtSqoqbZ.mjs';
3
+ import { N as NormalizedToken } from './tokenizer-BaF1eUBQ.mjs';
3
4
  import { F as FileType, N as NodeCategory } from './parse-CAKctgb6.mjs';
4
5
  export { I as ImportType, T as TagKind } from './parse-CAKctgb6.mjs';
5
6
 
@@ -499,6 +500,22 @@ type ParallelTokenizingOption = boolean | {
499
500
  maxThreads?: number;
500
501
  };
501
502
 
503
+ /** One file's cached tokenize result, fingerprinted by `mtime`/`size`/`ignoreLiterals` — any
504
+ * mismatch against the current `FileNode` (or against the `ignoreLiterals` this scan is running
505
+ * with) means the entry is stale and must be recomputed, exactly like `GraphBuilder`'s
506
+ * mtime+size node reuse for incremental graph builds. */
507
+ interface CachedFileTokens {
508
+ mtime: number;
509
+ size: number;
510
+ ignoreLiterals: boolean;
511
+ tokens: NormalizedToken[];
512
+ }
513
+ /** Caller-owned cache, keyed by project-relative path, reused across repeated `findDuplicates`
514
+ * calls against the same root (e.g. successive MCP tool calls in one session) so unchanged files
515
+ * never pay tokenizing cost twice. `findDuplicates` itself is stateless — callers that want this
516
+ * benefit own the `Map` and pass it in; the CLI's one-shot process has nothing to gain and omits
517
+ * it. See docs/adr-014-duplicate-detection-scale.md. */
518
+ type DuplicationTokenCache = Map<string, CachedFileTokens>;
502
519
  interface FindDuplicatesOptions {
503
520
  /** Minimum duplicated block size, in source lines, to report (default 6). */
504
521
  minLines?: number | undefined;
@@ -514,11 +531,6 @@ interface FindDuplicatesOptions {
514
531
  * CSS/Less/SCSS structural comparator, which already matches on literal declaration content.
515
532
  * Set to 1 to disable. See docs/adr-013-duplicate-detection-noise-reduction.md. */
516
533
  maxPunctuationRatio?: number | undefined;
517
- /** Skip a hash bucket's O(k²) pairwise comparison once it holds more than this many locations
518
- * (default 400) — bounds worst-case scan time on large repos where a single ubiquitous token
519
- * window (a common import line, a boilerplate header) would otherwise blow past what a single
520
- * scan can finish in. Set `Infinity` to disable. See docs/adr-014-duplicate-detection-scale.md. */
521
- maxBucketSize?: number | undefined;
522
534
  /** Caps the number of duplicate blocks returned, largest-first (default 50). */
523
535
  limit?: number | undefined;
524
536
  /** Directory names to exclude, matched against any path segment (default `DEFAULT_IGNORE_DIRS`
@@ -529,13 +541,15 @@ interface FindDuplicatesOptions {
529
541
  * `false` always tokenizes in-process; an object overrides `minFiles`/`maxThreads`. See
530
542
  * docs/adr-014-duplicate-detection-scale.md. */
531
543
  parallelTokenizing?: ParallelTokenizingOption | undefined;
544
+ /** Optional caller-owned cache reused across calls against the same root — files whose
545
+ * `mtime`/`size` are unchanged since the cached entry (and whose `ignoreLiterals` matches this
546
+ * call's) skip tokenizing entirely. Mutated in place; omit for one-shot callers (e.g. the CLI).
547
+ * See {@link DuplicationTokenCache} and docs/adr-014-duplicate-detection-scale.md. */
548
+ tokenCache?: DuplicationTokenCache | undefined;
532
549
  }
533
550
  interface FindDuplicatesResult {
534
551
  /** Duplicate blocks, largest-first, capped at `limit`. */
535
552
  groups: DuplicateGroup[];
536
- /** How many hash buckets were skipped for exceeding `maxBucketSize` — a non-zero count means
537
- * results may under-report duplication that's unusually widespread (see `maxBucketSize`). */
538
- skippedBuckets: number;
539
553
  }
540
554
  /**
541
555
  * @description Scans every file already present in `graph` for cross-file (and within-file)
@@ -557,15 +571,13 @@ interface FindDuplicatesResult {
557
571
  * token-shingle path only (CSS/Less/SCSS always match on literal declaration content);
558
572
  * `maxPunctuationRatio` gates out token-shingle blocks that are mostly object/array-literal
559
573
  * structural punctuation (e.g. schema/object-literal boilerplate) rather than substantive
560
- * shared logic; `maxBucketSize` bounds worst-case scan time on large repos by skipping
561
- * pathologically common hash buckets; `ignoreDirs` excludes files under matching directory
562
- * names; `limit` caps results; `parallelTokenizing` offloads per-file tokenizing to a worker
563
- * pool once the candidate file count is large enough to be worth it. Lock files are always
564
- * excluded, independent of `ignoreDirs`.
574
+ * shared logic; `ignoreDirs` excludes files under matching directory names; `limit` caps
575
+ * results; `parallelTokenizing` offloads per-file tokenizing to a worker pool once the
576
+ * candidate file count is large enough to be worth it. Lock files are always excluded,
577
+ * independent of `ignoreDirs`.
565
578
  * @returns `groups` — duplicate blocks (each tagged with its `family`), two or more occurrences
566
579
  * per block, every block that pairwise chain-matches another clustered into one group instead
567
- * of one per pair, sorted largest-first across all families — plus `skippedBuckets` (see
568
- * {@link FindDuplicatesResult}).
580
+ * of one per pair, sorted largest-first across all families.
569
581
  */
570
582
  declare function findDuplicates(graph: Graph, rootDir: string, options?: FindDuplicatesOptions): Promise<FindDuplicatesResult>;
571
583
 
@@ -1430,4 +1442,4 @@ declare function createWorkspaceGraph(rootDir: string, options?: {
1430
1442
  */
1431
1443
  declare function getAllProjectFiles(rootDir: string, options?: ScanOptions): string[];
1432
1444
 
1433
- export { type ApiSurface, type ApplyTagsFileResult, type ApplyTagsResult, CALL_EDGE_TYPES, CallEdge, type CalleeEntry, type CallerEntry$1 as CallerEntry, type ChangeImpactCache, type ComplexFunctionEntry, DEFAULT_EXTENSIONS, DEFAULT_IGNORE_DIRS, type DependencyGraph, type DuplicateFamily, type DuplicateGroup, type DuplicateOccurrence, EXPORT_TRACKING_TYPES, type ExportKind, type FeatureDetectionOptions, type FeatureDomain, type FeatureGraph, type FeatureGraphOptions, type FeatureInfo, FileNode, FileType, type FindComplexFunctionsOptions, type FindDuplicatesOptions, type FunctionCallInfo, type GetAffectedOptions, type GetCallersOptions, Graph, type CallerEntry as GraphCallerEntry, type GraphExporter, IMPORT_SYMBOL_TYPES, ImportEdge, type LanguageCoverage, MermaidExporter, type ModuleResponsibility, type ModuleRole, type MokoshConfig, type MonorepoDetector, type MonorepoLayout, NodeCategory, type NodeMeta, type NodeQuery, type ParallelParsingOption, type PathWithSymbols, type ProposeTagsOptions, type PublicExport, type ResponsibilityGraph, type ScanOptions, type SerializedGraph, type SerializedWorkspaceGraph, type SlimNode, type SlimSerializedGraph, StructuredTag, type SymbolCaller, type SymbolImporter, type SymbolMatch, type SymbolPrecision, SymbolTraversalContext, type TestNodeIdentifier, type TraversalOptions, type TraversalVisitor, type TypeEdge, type TypeGraph, type TypeKind, type TypeNode, type TypeQueryResult, WorkspaceGraph, type WorkspacePackage, type WorkspacePackageSummary, type WorkspacePackagesSummary, applyConfig, applyTags, buildApiSurface, buildChangeImpactCache, buildFeatureGraph, buildResponsibilityGraph, buildTypeGraph, computeGraphHash, configToGraphOptions, createImportMap, createWorkspaceGraph, detectAllEntryPoints, detectEntryPoint, detectFeatures, detectMonorepo, filterGraph, findComplexFunctions, findDuplicates, findSymbol, getAffected, getAllProjectFiles, getCallers, getDependencies, getDependents, getLanguageCoverage, getNodeMeta, hasCoverageData, isChangeImpactCacheValid, loadChangeImpactCache, loadCoverageMap, loadMokoshConfig, parseQuery, proposeAffectedTests, proposeTags, queryCallGraph, queryChangeImpact, queryTypeGraph, registerConfigMatcher, registerMonorepoDetector, registerParser, registerTestLibrary, registerTestPattern, saveChangeImpactCache, slimSerialize, summarizeWorkspacePackages, toMermaid };
1445
+ export { type ApiSurface, type ApplyTagsFileResult, type ApplyTagsResult, CALL_EDGE_TYPES, type CachedFileTokens, CallEdge, type CalleeEntry, type CallerEntry$1 as CallerEntry, type ChangeImpactCache, type ComplexFunctionEntry, DEFAULT_EXTENSIONS, DEFAULT_IGNORE_DIRS, type DependencyGraph, type DuplicateFamily, type DuplicateGroup, type DuplicateOccurrence, type DuplicationTokenCache, EXPORT_TRACKING_TYPES, type ExportKind, type FeatureDetectionOptions, type FeatureDomain, type FeatureGraph, type FeatureGraphOptions, type FeatureInfo, FileNode, FileType, type FindComplexFunctionsOptions, type FindDuplicatesOptions, type FindDuplicatesResult, type FunctionCallInfo, type GetAffectedOptions, type GetCallersOptions, Graph, type CallerEntry as GraphCallerEntry, type GraphExporter, IMPORT_SYMBOL_TYPES, ImportEdge, type LanguageCoverage, MermaidExporter, type ModuleResponsibility, type ModuleRole, type MokoshConfig, type MonorepoDetector, type MonorepoLayout, NodeCategory, type NodeMeta, type NodeQuery, type ParallelParsingOption, type PathWithSymbols, type ProposeTagsOptions, type PublicExport, type ResponsibilityGraph, type ScanOptions, type SerializedGraph, type SerializedWorkspaceGraph, type SlimNode, type SlimSerializedGraph, StructuredTag, type SymbolCaller, type SymbolImporter, type SymbolMatch, type SymbolPrecision, SymbolTraversalContext, type TestNodeIdentifier, type TraversalOptions, type TraversalVisitor, type TypeEdge, type TypeGraph, type TypeKind, type TypeNode, type TypeQueryResult, WorkspaceGraph, type WorkspacePackage, type WorkspacePackageSummary, type WorkspacePackagesSummary, applyConfig, applyTags, buildApiSurface, buildChangeImpactCache, buildFeatureGraph, buildResponsibilityGraph, buildTypeGraph, computeGraphHash, configToGraphOptions, createImportMap, createWorkspaceGraph, detectAllEntryPoints, detectEntryPoint, detectFeatures, detectMonorepo, filterGraph, findComplexFunctions, findDuplicates, findSymbol, getAffected, getAllProjectFiles, getCallers, getDependencies, getDependents, getLanguageCoverage, getNodeMeta, hasCoverageData, isChangeImpactCacheValid, loadChangeImpactCache, loadCoverageMap, loadMokoshConfig, parseQuery, proposeAffectedTests, proposeTags, queryCallGraph, queryChangeImpact, queryTypeGraph, registerConfigMatcher, registerMonorepoDetector, registerParser, registerTestLibrary, registerTestPattern, saveChangeImpactCache, slimSerialize, summarizeWorkspacePackages, toMermaid };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { F as FileNode, C as CallEdge, I as ImportEdge, P as ParseResult, S as StructuredTag } from './types-BlN-U5AM.js';
2
2
  export { E as ExportedSymbol } from './types-BlN-U5AM.js';
3
+ import { N as NormalizedToken } from './tokenizer-BaF1eUBQ.js';
3
4
  import { F as FileType, N as NodeCategory } from './parse-CAKctgb6.js';
4
5
  export { I as ImportType, T as TagKind } from './parse-CAKctgb6.js';
5
6
 
@@ -499,6 +500,22 @@ type ParallelTokenizingOption = boolean | {
499
500
  maxThreads?: number;
500
501
  };
501
502
 
503
+ /** One file's cached tokenize result, fingerprinted by `mtime`/`size`/`ignoreLiterals` — any
504
+ * mismatch against the current `FileNode` (or against the `ignoreLiterals` this scan is running
505
+ * with) means the entry is stale and must be recomputed, exactly like `GraphBuilder`'s
506
+ * mtime+size node reuse for incremental graph builds. */
507
+ interface CachedFileTokens {
508
+ mtime: number;
509
+ size: number;
510
+ ignoreLiterals: boolean;
511
+ tokens: NormalizedToken[];
512
+ }
513
+ /** Caller-owned cache, keyed by project-relative path, reused across repeated `findDuplicates`
514
+ * calls against the same root (e.g. successive MCP tool calls in one session) so unchanged files
515
+ * never pay tokenizing cost twice. `findDuplicates` itself is stateless — callers that want this
516
+ * benefit own the `Map` and pass it in; the CLI's one-shot process has nothing to gain and omits
517
+ * it. See docs/adr-014-duplicate-detection-scale.md. */
518
+ type DuplicationTokenCache = Map<string, CachedFileTokens>;
502
519
  interface FindDuplicatesOptions {
503
520
  /** Minimum duplicated block size, in source lines, to report (default 6). */
504
521
  minLines?: number | undefined;
@@ -514,11 +531,6 @@ interface FindDuplicatesOptions {
514
531
  * CSS/Less/SCSS structural comparator, which already matches on literal declaration content.
515
532
  * Set to 1 to disable. See docs/adr-013-duplicate-detection-noise-reduction.md. */
516
533
  maxPunctuationRatio?: number | undefined;
517
- /** Skip a hash bucket's O(k²) pairwise comparison once it holds more than this many locations
518
- * (default 400) — bounds worst-case scan time on large repos where a single ubiquitous token
519
- * window (a common import line, a boilerplate header) would otherwise blow past what a single
520
- * scan can finish in. Set `Infinity` to disable. See docs/adr-014-duplicate-detection-scale.md. */
521
- maxBucketSize?: number | undefined;
522
534
  /** Caps the number of duplicate blocks returned, largest-first (default 50). */
523
535
  limit?: number | undefined;
524
536
  /** Directory names to exclude, matched against any path segment (default `DEFAULT_IGNORE_DIRS`
@@ -529,13 +541,15 @@ interface FindDuplicatesOptions {
529
541
  * `false` always tokenizes in-process; an object overrides `minFiles`/`maxThreads`. See
530
542
  * docs/adr-014-duplicate-detection-scale.md. */
531
543
  parallelTokenizing?: ParallelTokenizingOption | undefined;
544
+ /** Optional caller-owned cache reused across calls against the same root — files whose
545
+ * `mtime`/`size` are unchanged since the cached entry (and whose `ignoreLiterals` matches this
546
+ * call's) skip tokenizing entirely. Mutated in place; omit for one-shot callers (e.g. the CLI).
547
+ * See {@link DuplicationTokenCache} and docs/adr-014-duplicate-detection-scale.md. */
548
+ tokenCache?: DuplicationTokenCache | undefined;
532
549
  }
533
550
  interface FindDuplicatesResult {
534
551
  /** Duplicate blocks, largest-first, capped at `limit`. */
535
552
  groups: DuplicateGroup[];
536
- /** How many hash buckets were skipped for exceeding `maxBucketSize` — a non-zero count means
537
- * results may under-report duplication that's unusually widespread (see `maxBucketSize`). */
538
- skippedBuckets: number;
539
553
  }
540
554
  /**
541
555
  * @description Scans every file already present in `graph` for cross-file (and within-file)
@@ -557,15 +571,13 @@ interface FindDuplicatesResult {
557
571
  * token-shingle path only (CSS/Less/SCSS always match on literal declaration content);
558
572
  * `maxPunctuationRatio` gates out token-shingle blocks that are mostly object/array-literal
559
573
  * structural punctuation (e.g. schema/object-literal boilerplate) rather than substantive
560
- * shared logic; `maxBucketSize` bounds worst-case scan time on large repos by skipping
561
- * pathologically common hash buckets; `ignoreDirs` excludes files under matching directory
562
- * names; `limit` caps results; `parallelTokenizing` offloads per-file tokenizing to a worker
563
- * pool once the candidate file count is large enough to be worth it. Lock files are always
564
- * excluded, independent of `ignoreDirs`.
574
+ * shared logic; `ignoreDirs` excludes files under matching directory names; `limit` caps
575
+ * results; `parallelTokenizing` offloads per-file tokenizing to a worker pool once the
576
+ * candidate file count is large enough to be worth it. Lock files are always excluded,
577
+ * independent of `ignoreDirs`.
565
578
  * @returns `groups` — duplicate blocks (each tagged with its `family`), two or more occurrences
566
579
  * per block, every block that pairwise chain-matches another clustered into one group instead
567
- * of one per pair, sorted largest-first across all families — plus `skippedBuckets` (see
568
- * {@link FindDuplicatesResult}).
580
+ * of one per pair, sorted largest-first across all families.
569
581
  */
570
582
  declare function findDuplicates(graph: Graph, rootDir: string, options?: FindDuplicatesOptions): Promise<FindDuplicatesResult>;
571
583
 
@@ -1430,4 +1442,4 @@ declare function createWorkspaceGraph(rootDir: string, options?: {
1430
1442
  */
1431
1443
  declare function getAllProjectFiles(rootDir: string, options?: ScanOptions): string[];
1432
1444
 
1433
- export { type ApiSurface, type ApplyTagsFileResult, type ApplyTagsResult, CALL_EDGE_TYPES, CallEdge, type CalleeEntry, type CallerEntry$1 as CallerEntry, type ChangeImpactCache, type ComplexFunctionEntry, DEFAULT_EXTENSIONS, DEFAULT_IGNORE_DIRS, type DependencyGraph, type DuplicateFamily, type DuplicateGroup, type DuplicateOccurrence, EXPORT_TRACKING_TYPES, type ExportKind, type FeatureDetectionOptions, type FeatureDomain, type FeatureGraph, type FeatureGraphOptions, type FeatureInfo, FileNode, FileType, type FindComplexFunctionsOptions, type FindDuplicatesOptions, type FunctionCallInfo, type GetAffectedOptions, type GetCallersOptions, Graph, type CallerEntry as GraphCallerEntry, type GraphExporter, IMPORT_SYMBOL_TYPES, ImportEdge, type LanguageCoverage, MermaidExporter, type ModuleResponsibility, type ModuleRole, type MokoshConfig, type MonorepoDetector, type MonorepoLayout, NodeCategory, type NodeMeta, type NodeQuery, type ParallelParsingOption, type PathWithSymbols, type ProposeTagsOptions, type PublicExport, type ResponsibilityGraph, type ScanOptions, type SerializedGraph, type SerializedWorkspaceGraph, type SlimNode, type SlimSerializedGraph, StructuredTag, type SymbolCaller, type SymbolImporter, type SymbolMatch, type SymbolPrecision, SymbolTraversalContext, type TestNodeIdentifier, type TraversalOptions, type TraversalVisitor, type TypeEdge, type TypeGraph, type TypeKind, type TypeNode, type TypeQueryResult, WorkspaceGraph, type WorkspacePackage, type WorkspacePackageSummary, type WorkspacePackagesSummary, applyConfig, applyTags, buildApiSurface, buildChangeImpactCache, buildFeatureGraph, buildResponsibilityGraph, buildTypeGraph, computeGraphHash, configToGraphOptions, createImportMap, createWorkspaceGraph, detectAllEntryPoints, detectEntryPoint, detectFeatures, detectMonorepo, filterGraph, findComplexFunctions, findDuplicates, findSymbol, getAffected, getAllProjectFiles, getCallers, getDependencies, getDependents, getLanguageCoverage, getNodeMeta, hasCoverageData, isChangeImpactCacheValid, loadChangeImpactCache, loadCoverageMap, loadMokoshConfig, parseQuery, proposeAffectedTests, proposeTags, queryCallGraph, queryChangeImpact, queryTypeGraph, registerConfigMatcher, registerMonorepoDetector, registerParser, registerTestLibrary, registerTestPattern, saveChangeImpactCache, slimSerialize, summarizeWorkspacePackages, toMermaid };
1445
+ export { type ApiSurface, type ApplyTagsFileResult, type ApplyTagsResult, CALL_EDGE_TYPES, type CachedFileTokens, CallEdge, type CalleeEntry, type CallerEntry$1 as CallerEntry, type ChangeImpactCache, type ComplexFunctionEntry, DEFAULT_EXTENSIONS, DEFAULT_IGNORE_DIRS, type DependencyGraph, type DuplicateFamily, type DuplicateGroup, type DuplicateOccurrence, type DuplicationTokenCache, EXPORT_TRACKING_TYPES, type ExportKind, type FeatureDetectionOptions, type FeatureDomain, type FeatureGraph, type FeatureGraphOptions, type FeatureInfo, FileNode, FileType, type FindComplexFunctionsOptions, type FindDuplicatesOptions, type FindDuplicatesResult, type FunctionCallInfo, type GetAffectedOptions, type GetCallersOptions, Graph, type CallerEntry as GraphCallerEntry, type GraphExporter, IMPORT_SYMBOL_TYPES, ImportEdge, type LanguageCoverage, MermaidExporter, type ModuleResponsibility, type ModuleRole, type MokoshConfig, type MonorepoDetector, type MonorepoLayout, NodeCategory, type NodeMeta, type NodeQuery, type ParallelParsingOption, type PathWithSymbols, type ProposeTagsOptions, type PublicExport, type ResponsibilityGraph, type ScanOptions, type SerializedGraph, type SerializedWorkspaceGraph, type SlimNode, type SlimSerializedGraph, StructuredTag, type SymbolCaller, type SymbolImporter, type SymbolMatch, type SymbolPrecision, SymbolTraversalContext, type TestNodeIdentifier, type TraversalOptions, type TraversalVisitor, type TypeEdge, type TypeGraph, type TypeKind, type TypeNode, type TypeQueryResult, WorkspaceGraph, type WorkspacePackage, type WorkspacePackageSummary, type WorkspacePackagesSummary, applyConfig, applyTags, buildApiSurface, buildChangeImpactCache, buildFeatureGraph, buildResponsibilityGraph, buildTypeGraph, computeGraphHash, configToGraphOptions, createImportMap, createWorkspaceGraph, detectAllEntryPoints, detectEntryPoint, detectFeatures, detectMonorepo, filterGraph, findComplexFunctions, findDuplicates, findSymbol, getAffected, getAllProjectFiles, getCallers, getDependencies, getDependents, getLanguageCoverage, getNodeMeta, hasCoverageData, isChangeImpactCacheValid, loadChangeImpactCache, loadCoverageMap, loadMokoshConfig, parseQuery, proposeAffectedTests, proposeTags, queryCallGraph, queryChangeImpact, queryTypeGraph, registerConfigMatcher, registerMonorepoDetector, registerParser, registerTestLibrary, registerTestPattern, saveChangeImpactCache, slimSerialize, summarizeWorkspacePackages, toMermaid };