@titan-design/code-graph 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,7 +18,7 @@ const { snapshotId, files, nodes, edges, reused } = await indexPaths(store, {
18
18
  ref: "head",
19
19
  });
20
20
  listNodes(store, snapshotId); // file / module / external nodes, symbols on request
21
- listEdges(store, snapshotId); // imports / re-exports, references on request
21
+ listEdges(store, snapshotId); // imports / re-exports, references and calls on request
22
22
  ```
23
23
 
24
24
  ## What was extracted, and what was not
@@ -148,7 +148,7 @@ always recomputed over the whole assembled graph, so a heavily-reused run and a
148
148
 
149
149
  ## Store layout
150
150
 
151
- `openCodeGraph` opens the database with the kit's pragmas and runs three migrations.
151
+ `openCodeGraph` opens the database with the kit's pragmas and runs four migrations.
152
152
 
153
153
  It refuses a database stamped past `SCHEMA_VERSION` with `SchemaTooNewError`: a code graph
154
154
  database belongs to one build, so a higher version means a newer build already moved the
@@ -163,10 +163,11 @@ every consumer reads directly: `node.language`, `node.role`, `snapshot.commit_ha
163
163
  Domain tables in `schema.ts`: `edge` (snapshot-scoped, keyed
164
164
  `(snapshot_id, src_id, dst_id, kind)` — the kit's own edge table is bi-temporal, which is the
165
165
  wrong time model for a population re-indexed all at once), `metric`, `id_alias`, and
166
- `file_fingerprint`.
166
+ `file_fingerprint`. Migration 4 adds `finding` and `verdict`, both keyed
167
+ `(snapshot_id, key)` on a `findingKey` and pruned with their snapshot.
167
168
 
168
169
  The symbol layer is hidden by default. `listNodes` drops `symbol` nodes and `listEdges` drops
169
- `references` edges unless you ask for them, so a caller reasoning about module structure sees
170
+ `references` and `calls` edges unless you ask for them (`includeReferences` covers both), so a caller reasoning about module structure sees
170
171
  the graph it expects and does not have one import of thirty names read as thirty
171
172
  dependencies.
172
173
 
@@ -342,6 +343,23 @@ Python, and are written on every function or file, zeros included:
342
343
  `...`, `continue`, a bare or `None`/`null`/`undefined` return, or one call to a logger,
343
344
  `print`, `warn` or `console`).
344
345
 
346
+ Call-graph metrics (TP-323) come from `calls` edges, one per caller and callee symbol, each
347
+ carrying the literal arguments of every call site in `attrs.sites`. TypeScript resolves a
348
+ call or `new` through the type checker to one in-repo declaration. Python resolves only a
349
+ bare name declared at module level in the same file, a bare name bound by `from <in-repo
350
+ module> import`, and `self.<name>()` to a method of the enclosing class or a base class
351
+ declared in the same file. Anything else is dropped, never guessed, and an edge whose target
352
+ has no symbol node is pruned. The caller is the enclosing function, method or class, or the
353
+ file for a module-level call. Each function, method and class gets `symbol_caller_count`
354
+ (distinct callers, recursion excluded) and `symbol_single_caller_helper` (1 when a
355
+ non-exported, non-dunder symbol has exactly one caller and it is a symbol). A callable with 2
356
+ or more resolved call sites also gets `symbol_constant_params`: parameters every site passes
357
+ the same literal, or none passes. Callers found only through unresolved calls are missing, so
358
+ a private method that tests call on an instance can read as a single-caller helper. These
359
+ metrics need edges from every file, so they are recomputed on each index. Under reuse, an
360
+ unchanged caller's edge to a callee that moved behind a re-export stays pruned until the
361
+ caller changes, as `references` edges do.
362
+
345
363
  PageRank, relevance, and symbol coupling run at query time over one snapshot:
346
364
 
347
365
  ```ts
package/dist/index.d.ts CHANGED
@@ -121,7 +121,7 @@ declare class CodeGraphStore {
121
121
  listNodes(snapshotId: number, opts?: {
122
122
  includeSymbols?: boolean;
123
123
  }): GraphNode[];
124
- /** See {@link listNodes}: `references` edges are the symbol layer, excluded by default. */
124
+ /** See {@link listNodes}: `references` and `calls` edges are the symbol layer, excluded by default. */
125
125
  listEdges(snapshotId: number, opts?: {
126
126
  includeReferences?: boolean;
127
127
  }): GraphEdge[];
@@ -137,7 +137,7 @@ declare class CodeGraphStore {
137
137
  limit?: number;
138
138
  kind?: string;
139
139
  }): TopMetricRow[];
140
- /** Edges into or out of one node; `references` edges are excluded unless asked, as in {@link listEdges}. */
140
+ /** Edges into or out of one node; symbol-layer edges are excluded unless asked, as in {@link listEdges}. */
141
141
  listEdgesTouching(snapshotId: number, nodeId: string, opts?: {
142
142
  includeReferences?: boolean;
143
143
  }): GraphEdge[];
@@ -175,8 +175,14 @@ declare const KIT: {
175
175
  * `file_fingerprint` is the reuse basis the incremental indexer diffs against.
176
176
  */
177
177
  declare const DOMAIN_DDL = "\n CREATE TABLE IF NOT EXISTS edge (\n snapshot_id INTEGER NOT NULL,\n src_id TEXT NOT NULL,\n dst_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n attrs TEXT,\n PRIMARY KEY (snapshot_id, src_id, dst_id, kind)\n );\n CREATE INDEX IF NOT EXISTS idx_edge_dst ON edge(snapshot_id, dst_id);\n CREATE INDEX IF NOT EXISTS idx_edge_kind ON edge(snapshot_id, kind);\n\n CREATE TABLE IF NOT EXISTS metric (\n snapshot_id INTEGER NOT NULL,\n node_id TEXT NOT NULL,\n name TEXT NOT NULL,\n value REAL,\n unit TEXT,\n PRIMARY KEY (snapshot_id, node_id, name)\n );\n CREATE INDEX IF NOT EXISTS idx_metric_name ON metric(snapshot_id, name);\n\n CREATE TABLE IF NOT EXISTS id_alias (\n snapshot_id INTEGER NOT NULL,\n old_id TEXT NOT NULL,\n new_id TEXT NOT NULL,\n reason TEXT NOT NULL,\n PRIMARY KEY (snapshot_id, old_id, new_id)\n );\n\n CREATE TABLE IF NOT EXISTS file_fingerprint (\n snapshot_id INTEGER NOT NULL,\n file_id TEXT NOT NULL,\n content_hash TEXT NOT NULL,\n structural_hash TEXT,\n PRIMARY KEY (snapshot_id, file_id)\n );\n";
178
+ /**
179
+ * Stored audit findings and model verdicts. `key` is a `findingKey`, not `Finding.id`,
180
+ * because an external tool's id embeds its line number and can repeat within one audit.
181
+ * The whole `Finding` and a verdict's citations live in `attrs`.
182
+ */
183
+ declare const FINDING_DDL = "\n CREATE TABLE IF NOT EXISTS finding (\n snapshot_id INTEGER NOT NULL,\n key TEXT NOT NULL,\n finding_id TEXT NOT NULL,\n tool TEXT NOT NULL,\n signal TEXT NOT NULL,\n path TEXT NOT NULL,\n line_start INTEGER,\n line_end INTEGER,\n severity TEXT NOT NULL,\n excerpt_hash TEXT,\n attrs TEXT NOT NULL,\n PRIMARY KEY (snapshot_id, key)\n );\n CREATE INDEX IF NOT EXISTS idx_finding_path ON finding(snapshot_id, path);\n\n CREATE TABLE IF NOT EXISTS verdict (\n snapshot_id INTEGER NOT NULL,\n key TEXT NOT NULL,\n verdict TEXT NOT NULL CHECK (verdict IN ('confirmed', 'justified', 'unclear')),\n rationale TEXT NOT NULL,\n excerpt_hash TEXT NOT NULL,\n model TEXT,\n run_id TEXT,\n cost_usd REAL,\n provenance TEXT,\n control_run TEXT,\n carried_from INTEGER,\n attrs TEXT NOT NULL,\n PRIMARY KEY (snapshot_id, key)\n );\n";
178
184
  /** Every table keyed by `snapshot_id`. No DDL above declares a foreign key, so dropping a snapshot walks this list. */
179
- declare const SNAPSHOT_SCOPED_TABLES: readonly ["node", "edge", "metric", "id_alias", "file_fingerprint"];
185
+ declare const SNAPSHOT_SCOPED_TABLES: readonly ["node", "edge", "metric", "id_alias", "file_fingerprint", "finding", "verdict"];
180
186
  declare const MIGRATIONS: Migration[];
181
187
  /** The top of this package's schema. A code graph database is never shared, so this is the top of one. */
182
188
  declare const SCHEMA_VERSION: number;
@@ -205,7 +211,7 @@ declare function runPrune(store: CodeGraphStore, options?: PruneOptions & {
205
211
  * index version is never reused, so a change to node/edge shape or to a metric's
206
212
  * value for the same bytes can never be carried forward from an incompatible graph.
207
213
  */
208
- declare const INDEX_VERSION = "0.17.0";
214
+ declare const INDEX_VERSION = "0.18.0";
209
215
  interface IndexOptions {
210
216
  /** Roots to walk. Node ids are still rooted at the git toplevel, so importers across roots share an id space. */
211
217
  paths: string[];
@@ -448,7 +454,7 @@ declare function readSourceFiles(filePaths: readonly string[]): Promise<ReadFile
448
454
  * Everything from a prior snapshot needed to rebuild an unchanged file's
449
455
  * contribution to the graph without re-parsing it: its content fingerprint,
450
456
  * the node table (to look up external-node names), outbound edges grouped by
451
- * source, and the source-content metrics (loc, complexity, lcom4, ...).
457
+ * source file (a symbol's `calls` edges under the file declaring it), and the source-content metrics (loc, complexity, lcom4, ...).
452
458
  */
453
459
  interface ReuseBasis {
454
460
  snapshotId: number;
@@ -494,10 +500,11 @@ declare function edgeWeight(e: GraphEdge): number;
494
500
  /**
495
501
  * Drop `references` edges (C-53) whose target `symbol` node doesn't exist — an
496
502
  * aliased re-export chain, or a barrel that changed under a reused file, can
497
- * resolve a name to an origin that doesn't declare it. Only `references` can
498
- * dangle (imports/re-exports resolve to always-emitted file/external nodes);
499
- * metrics already guard unknown ids, so this just keeps the persisted edge set
500
- * clean. Mutates `edges` in place.
503
+ * resolve a name to an origin that doesn't declare it. `calls` edges (TP-323)
504
+ * are dropped the same way, which is how a callee name that maps to no symbol
505
+ * node is discarded rather than guessed. Only these two can dangle
506
+ * (imports/re-exports resolve to always-emitted file/external nodes). Mutates
507
+ * `edges` in place.
501
508
  */
502
509
  declare function pruneDanglingReferences(nodes: ReadonlyMap<string, GraphNode>, edges: Map<string, GraphEdge>): void;
503
510
  /**
@@ -1120,7 +1127,7 @@ type MetricDirection = "higher-worse" | "lower-worse" | "neutral";
1120
1127
  /** A missing row reads as zero (a sparse writer's floor) or is left out of means, percentiles, and ranks. */
1121
1128
  type MetricAbsence = "zero" | "exclude";
1122
1129
  /** The code-graph module that writes the metric, for provenance. */
1123
- type MetricSource = "degree" | "source-metrics" | "lcom" | "exception-handling" | "dead-code" | "growth-risk" | "history" | "test-linker" | "coverage";
1130
+ type MetricSource = "degree" | "source-metrics" | "lcom" | "call-graph" | "exception-handling" | "dead-code" | "growth-risk" | "history" | "test-linker" | "coverage";
1124
1131
  interface MetricDescriptor {
1125
1132
  /** The stored name, or a template such as `churn_{w}` when {@link windowed} is set. */
1126
1133
  name: string;
@@ -1190,6 +1197,10 @@ interface MetricOutlierRule {
1190
1197
  percentile: number;
1191
1198
  /** Fewest nodes that must carry the metric before any is judged; defaults to 20. */
1192
1199
  minSample?: number;
1200
+ /** A node is flagged only if its value also exceeds this absolute floor, guarding sparse metrics whose percentile sits at or near zero. */
1201
+ floor?: number;
1202
+ /** When true, rank and gate on the pool of carriers with a non-zero value only; zero-valued nodes are never flagged. */
1203
+ rankNonZero?: boolean;
1193
1204
  severity?: Severity;
1194
1205
  }
1195
1206
  interface ForbidImportRule {
@@ -1294,6 +1305,67 @@ interface ExternalDiagnostic {
1294
1305
  declare function toFindings(result: CheckResult): Finding[];
1295
1306
  declare function externalToFinding(input: ExternalDiagnostic): Finding;
1296
1307
 
1308
+ type VerdictLabel = "confirmed" | "justified" | "unclear";
1309
+ interface VerdictCitation {
1310
+ path: string;
1311
+ lineStart: number;
1312
+ lineEnd: number;
1313
+ quote: string;
1314
+ }
1315
+ /** A finding as stored against a snapshot, addressed by its `findingKey`. */
1316
+ interface StoredFinding {
1317
+ key: string;
1318
+ finding: Finding;
1319
+ /** Hash of the excerpt a reader would be shown for this finding; carry-forward compares it. */
1320
+ excerptHash?: string;
1321
+ }
1322
+ /** A model's judgement of one stored finding, after its citations were verified. */
1323
+ interface StoredVerdict {
1324
+ key: string;
1325
+ verdict: VerdictLabel;
1326
+ rationale: string;
1327
+ citations: VerdictCitation[];
1328
+ /** Hash of the excerpt the verdict judged. */
1329
+ excerptHash: string;
1330
+ model?: string;
1331
+ costUsd?: number;
1332
+ runId?: string;
1333
+ provenance?: string;
1334
+ controlRun?: "ok" | "provisional";
1335
+ dropped?: string[];
1336
+ /** The snapshot this verdict was carried from, when carry-forward copied it. */
1337
+ carriedFrom?: number;
1338
+ }
1339
+ interface FindingKeyInput {
1340
+ finding: Finding;
1341
+ /** The innermost symbol node id containing the finding; the finding's path when absent. */
1342
+ anchor?: string;
1343
+ /** The source text of the flagged lines. */
1344
+ flaggedText: string;
1345
+ excerptHash?: string;
1346
+ }
1347
+ /** Whitespace-insensitive, so reindenting or reflowing the flagged lines keeps the key. */
1348
+ declare function normalizeFlaggedText(text: string): string;
1349
+ declare function hashText(text: string): string;
1350
+ /**
1351
+ * A finding's identity across snapshots: no line number, so an inserted line above it
1352
+ * keeps the key, and a collision ordinal separates same-rule findings on the same text.
1353
+ */
1354
+ declare function findingKey(input: FindingKeyInput, ordinal?: number): string;
1355
+ /** Key a whole audit's findings, numbering collisions in source order so the result ignores input order. */
1356
+ declare function keyFindings(inputs: readonly FindingKeyInput[]): StoredFinding[];
1357
+ /** Insert or replace findings by key within one snapshot. */
1358
+ declare function saveFindings(store: CodeGraphStore, snapshotId: number, findings: readonly StoredFinding[]): void;
1359
+ declare function listFindings(store: CodeGraphStore, snapshotId: number): StoredFinding[];
1360
+ /** Insert or replace verdicts by key within one snapshot. */
1361
+ declare function saveVerdicts(store: CodeGraphStore, snapshotId: number, verdicts: readonly StoredVerdict[]): void;
1362
+ declare function listVerdicts(store: CodeGraphStore, snapshotId: number): StoredVerdict[];
1363
+ /**
1364
+ * Copy each verdict of `from` onto the finding in `to` with the same key whose excerpt hash
1365
+ * equals the one the verdict judged. A verdict `to` already holds is kept. Returns the count copied.
1366
+ */
1367
+ declare function carryForwardVerdicts(store: CodeGraphStore, from: number, to: number): number;
1368
+
1297
1369
  /** Glob when the pattern has a `*` (`**` crosses directories, `*` stays in a segment); otherwise a case-sensitive substring. */
1298
1370
  declare function patternToRegex(pattern: string): RegExp;
1299
1371
  declare function compilePatterns(patterns: readonly string[] | undefined): RegExp[];
@@ -1614,4 +1686,4 @@ declare function getConventionMap(store: CodeGraphStore, snapshotId: number, mod
1614
1686
  */
1615
1687
  declare function findConventions(store: CodeGraphStore, snapshotId: number, query: string, embedder: Embedder, model: string, opts?: FindConventionsOptions): Promise<ConventionQueryResult>;
1616
1688
 
1617
- export { ALIAS_BASE_ATTR, ALL_ROLES, type AliasChain, type AliasChainInput, type AliasChainOptions, type AliasLoader, type AliasResolution, COMMUNITY_SUMMARY_NAMESPACE, COVERAGE_METRIC_NAME, type CachedEmbedResult, type CheckDiff, type CheckResult, type CheckRule, type CheckRulesFile, type CheckSnapshotOptions, type CheckSnapshotResult, type CheckViolation, CodeGraphStore, type ConventionArea, type ConventionCorpus, type ConventionCoverage, type ConventionMap, type ConventionMatch, type ConventionOptions, type ConventionQueryResult, type ConventionSymbol, DEAD_CODE_METRIC_NAMES, DEFAULT_CHURN_WINDOWS, DEFAULT_OUTLIER_MIN_SAMPLE, DOMAIN_DDL, type DeepAst, type DeepAstInput, type DiffCheckResultsOptions, type DiffSnapshotsOptions, EXCEPTION_METRIC_NAMES, type EdgeKind, type EmbedAttempt, type EmbedCoverage, type EmbedSnapshotResult, type EmbeddableSymbol, type ExternalDiagnostic, type FileFingerprint, type FindConventionsOptions, type FindSimilarOptions, type Finding, type ForbidImportRule, GROWTH_RISK_METRIC_NAMES, type GraphDiff, type GraphDiffSummary, type GraphEdge, type GraphFragment, type GraphMetric, type GraphNode, type HistoryMetricsOptions, INDEX_VERSION, type IdAlias, type IdAliasReason, type IndexOptions, type IndexResult, type IstanbulCoverage, KIT, LanguageExtractor, type LanguageExtractorOptions, type LayeredDepsRule, type LineSpan, type Lineage, type LineageSnapshot, type LineageStep, type LinkMethod, type LinkTestsOptions, type LoadedHistory, METRIC_CATALOGUE, MIGRATIONS, type MemberInfo, type MetricAbsence, type MetricAggregate, type MetricDelta, type MetricDescriptor, type MetricDirection, type MetricMaxRule, type MetricMinRule, type MetricOutlierRule, type MetricProductMaxRule, type MetricRollup, type MetricSource, type MetricUnit, type NoInternalOnlyBarrelsRule, type NodeKind, type NodeRename, type NodeRole, type PackageFlag, type PackageLayer, type PackageStats, type PageRankOptions, type PageRankResult, type PageRankRow, type PairCoupling, type PairFlag, type ParamInfo, type PartitionQualityInput, type PartitionQualityResult, type PriorSnapshotOptions, type PruneOptions, type PrunePlan, type PruneResult, PythonGraphExtractor, type ReadFile, type ReferenceEdgeLite, type RelevanceOptions, type ResolveAliasOptions, type ReuseBasis, type RuleStore, type RunChecksOptions, SCHEMA_VERSION, SNAPSHOT_SCOPED_TABLES, SOURCE_METRIC_NAMES, SYMBOL_EMBEDDING_NAMESPACE, SYMBOL_ID_SEP, SYMBOL_METRIC_NAMES, type Severity, type SimilarCandidate, type SimilarResult, type SnapshotInsert, type SnapshotRow, type SnapshotSpec, type SourceLanguage, type SummarizeConventionsResult, type Summarizer, type SymbolConsumers, type SymbolCouplingOptions, type SymbolCouplingPair, type SymbolSpan, type TestCoverageOwnershipOptions, type TestSourceLink, type TopMetricRow, TsMorphGraphExtractor, type TsMorphGraphExtractorOptions, type UnchangedViolation, type ValidateRulesOptions, aggregateMetrics, aliasChain, annotateRoles, attributeCoverage, buildAliases, buildConventionAreas, buildEmbedText, buildFileModuleNodes, buildIndexerMetrics, buildLineage, canonicalEdgeKind, canonicalMetricName, canonicalRole, checkSnapshot, classifyRole, collectDeclaredNames, collectDeclaredSpans, compilePatterns, computeDeadCodeMetrics, computeDeepAst, computeGrowthRiskMetrics, computeMetrics, computePageRank, computePartitionQuality, computeRecencyWindows, computeRelevance, computeRoleHints, computeSourceMetrics, computeSymbolConsumers, computeSymbolCoupling, computeTestCoverageOwnership, createAliasChain, defaultTargetCount, describeMetric, describeMetrics, detectCommunities, detectGitHead, detectGitToplevel, detectRenames, diffCheckResults, diffSnapshots, edgeWeight, embedSnapshot, embedTextsCached, externalId, externalToFinding, fileId, findConventions, findSimilarCapability, getConventionMap, getEdgeWeight, groupTestsBySource, hashContent, hashEmbedText, indexPaths, invertBuckets, isGeneratedByHeuristic, isGeneratedFile, isInsideGitRepo, lineagePath, linkTestsToSources, listEdges, listEdgesTouching, listEmbeddableSymbols, listMetrics, listMetricsForNode, listNodes, loadCheckRules, loadGeneratedPatterns, loadHistoryMetrics, loadLineage, matchesAny, moduleId, openCodeGraph, packageId, parentModuleId, parseSymbolId, patternToRegex, percentileOf, planPrune, priorSnapshotForRef, pruneDanglingReferences, readSourceFiles, rebasedViolationKey, resolveAlias, resolveBarrelEdges, resolveChurnWindows, resolveGitRef, resolveSnapshot, runChecks, runPrune, snapshotPageRank, snapshotReferenceEdges, snapshotRelevance, snapshotSymbolConsumers, snapshotSymbolCoupling, snapshotViolations, structuralSignature, summarizeConventions, symbolId, testCoverageCountMetrics, toFindings, tryEmbedSnapshot, validateRules, violationKey, walkSourceFiles, windowSuffix };
1689
+ export { ALIAS_BASE_ATTR, ALL_ROLES, type AliasChain, type AliasChainInput, type AliasChainOptions, type AliasLoader, type AliasResolution, COMMUNITY_SUMMARY_NAMESPACE, COVERAGE_METRIC_NAME, type CachedEmbedResult, type CheckDiff, type CheckResult, type CheckRule, type CheckRulesFile, type CheckSnapshotOptions, type CheckSnapshotResult, type CheckViolation, CodeGraphStore, type ConventionArea, type ConventionCorpus, type ConventionCoverage, type ConventionMap, type ConventionMatch, type ConventionOptions, type ConventionQueryResult, type ConventionSymbol, DEAD_CODE_METRIC_NAMES, DEFAULT_CHURN_WINDOWS, DEFAULT_OUTLIER_MIN_SAMPLE, DOMAIN_DDL, type DeepAst, type DeepAstInput, type DiffCheckResultsOptions, type DiffSnapshotsOptions, EXCEPTION_METRIC_NAMES, type EdgeKind, type EmbedAttempt, type EmbedCoverage, type EmbedSnapshotResult, type EmbeddableSymbol, type ExternalDiagnostic, FINDING_DDL, type FileFingerprint, type FindConventionsOptions, type FindSimilarOptions, type Finding, type FindingKeyInput, type ForbidImportRule, GROWTH_RISK_METRIC_NAMES, type GraphDiff, type GraphDiffSummary, type GraphEdge, type GraphFragment, type GraphMetric, type GraphNode, type HistoryMetricsOptions, INDEX_VERSION, type IdAlias, type IdAliasReason, type IndexOptions, type IndexResult, type IstanbulCoverage, KIT, LanguageExtractor, type LanguageExtractorOptions, type LayeredDepsRule, type LineSpan, type Lineage, type LineageSnapshot, type LineageStep, type LinkMethod, type LinkTestsOptions, type LoadedHistory, METRIC_CATALOGUE, MIGRATIONS, type MemberInfo, type MetricAbsence, type MetricAggregate, type MetricDelta, type MetricDescriptor, type MetricDirection, type MetricMaxRule, type MetricMinRule, type MetricOutlierRule, type MetricProductMaxRule, type MetricRollup, type MetricSource, type MetricUnit, type NoInternalOnlyBarrelsRule, type NodeKind, type NodeRename, type NodeRole, type PackageFlag, type PackageLayer, type PackageStats, type PageRankOptions, type PageRankResult, type PageRankRow, type PairCoupling, type PairFlag, type ParamInfo, type PartitionQualityInput, type PartitionQualityResult, type PriorSnapshotOptions, type PruneOptions, type PrunePlan, type PruneResult, PythonGraphExtractor, type ReadFile, type ReferenceEdgeLite, type RelevanceOptions, type ResolveAliasOptions, type ReuseBasis, type RuleStore, type RunChecksOptions, SCHEMA_VERSION, SNAPSHOT_SCOPED_TABLES, SOURCE_METRIC_NAMES, SYMBOL_EMBEDDING_NAMESPACE, SYMBOL_ID_SEP, SYMBOL_METRIC_NAMES, type Severity, type SimilarCandidate, type SimilarResult, type SnapshotInsert, type SnapshotRow, type SnapshotSpec, type SourceLanguage, type StoredFinding, type StoredVerdict, type SummarizeConventionsResult, type Summarizer, type SymbolConsumers, type SymbolCouplingOptions, type SymbolCouplingPair, type SymbolSpan, type TestCoverageOwnershipOptions, type TestSourceLink, type TopMetricRow, TsMorphGraphExtractor, type TsMorphGraphExtractorOptions, type UnchangedViolation, type ValidateRulesOptions, type VerdictCitation, type VerdictLabel, aggregateMetrics, aliasChain, annotateRoles, attributeCoverage, buildAliases, buildConventionAreas, buildEmbedText, buildFileModuleNodes, buildIndexerMetrics, buildLineage, canonicalEdgeKind, canonicalMetricName, canonicalRole, carryForwardVerdicts, checkSnapshot, classifyRole, collectDeclaredNames, collectDeclaredSpans, compilePatterns, computeDeadCodeMetrics, computeDeepAst, computeGrowthRiskMetrics, computeMetrics, computePageRank, computePartitionQuality, computeRecencyWindows, computeRelevance, computeRoleHints, computeSourceMetrics, computeSymbolConsumers, computeSymbolCoupling, computeTestCoverageOwnership, createAliasChain, defaultTargetCount, describeMetric, describeMetrics, detectCommunities, detectGitHead, detectGitToplevel, detectRenames, diffCheckResults, diffSnapshots, edgeWeight, embedSnapshot, embedTextsCached, externalId, externalToFinding, fileId, findConventions, findSimilarCapability, findingKey, getConventionMap, getEdgeWeight, groupTestsBySource, hashContent, hashEmbedText, hashText, indexPaths, invertBuckets, isGeneratedByHeuristic, isGeneratedFile, isInsideGitRepo, keyFindings, lineagePath, linkTestsToSources, listEdges, listEdgesTouching, listEmbeddableSymbols, listFindings, listMetrics, listMetricsForNode, listNodes, listVerdicts, loadCheckRules, loadGeneratedPatterns, loadHistoryMetrics, loadLineage, matchesAny, moduleId, normalizeFlaggedText, openCodeGraph, packageId, parentModuleId, parseSymbolId, patternToRegex, percentileOf, planPrune, priorSnapshotForRef, pruneDanglingReferences, readSourceFiles, rebasedViolationKey, resolveAlias, resolveBarrelEdges, resolveChurnWindows, resolveGitRef, resolveSnapshot, runChecks, runPrune, saveFindings, saveVerdicts, snapshotPageRank, snapshotReferenceEdges, snapshotRelevance, snapshotSymbolConsumers, snapshotSymbolCoupling, snapshotViolations, structuralSignature, summarizeConventions, symbolId, testCoverageCountMetrics, toFindings, tryEmbedSnapshot, validateRules, violationKey, walkSourceFiles, windowSuffix };