@ipation/specbridge 1.2.1 → 2.0.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/dist/index.d.ts CHANGED
@@ -33,6 +33,22 @@ interface DecisionContent {
33
33
  context?: string;
34
34
  consequences?: string[];
35
35
  }
36
+ /**
37
+ * Exception to a constraint
38
+ */
39
+ interface ConstraintException {
40
+ pattern: string;
41
+ reason: string;
42
+ approvedBy?: string;
43
+ expiresAt?: string;
44
+ }
45
+ /**
46
+ * Structured verifier check specification
47
+ */
48
+ interface ConstraintCheck {
49
+ verifier: string;
50
+ params?: Record<string, unknown>;
51
+ }
36
52
  /**
37
53
  * A single constraint within a decision
38
54
  */
@@ -43,18 +59,10 @@ interface Constraint {
43
59
  severity: Severity;
44
60
  scope: string;
45
61
  verifier?: string;
62
+ check?: ConstraintCheck;
46
63
  autofix?: boolean;
47
64
  exceptions?: ConstraintException[];
48
65
  }
49
- /**
50
- * Exception to a constraint
51
- */
52
- interface ConstraintException {
53
- pattern: string;
54
- reason: string;
55
- approvedBy?: string;
56
- expiresAt?: string;
57
- }
58
66
  /**
59
67
  * Automated verification configuration
60
68
  */
@@ -167,6 +175,27 @@ interface LevelConfig {
167
175
  timeout?: number;
168
176
  severity?: Severity[];
169
177
  }
178
+ /**
179
+ * Warning during verification (non-blocking)
180
+ */
181
+ interface VerificationWarning {
182
+ type: 'missing_verifier' | 'invalid_pattern' | 'other';
183
+ message: string;
184
+ decisionId: string;
185
+ constraintId: string;
186
+ file?: string;
187
+ }
188
+ /**
189
+ * Error during verification (continued after error)
190
+ */
191
+ interface VerificationIssue {
192
+ type: 'verifier_exception' | 'file_read_error' | 'other';
193
+ message: string;
194
+ decisionId?: string;
195
+ constraintId?: string;
196
+ file?: string;
197
+ stack?: string;
198
+ }
170
199
  /**
171
200
  * Result of a verification run
172
201
  */
@@ -178,6 +207,8 @@ interface VerificationResult {
178
207
  failed: number;
179
208
  skipped: number;
180
209
  duration: number;
210
+ warnings?: VerificationWarning[];
211
+ errors?: VerificationIssue[];
181
212
  }
182
213
  /**
183
214
  * Result of an inference run
@@ -219,6 +250,17 @@ interface DecisionCompliance {
219
250
  constraints: number;
220
251
  violations: number;
221
252
  compliance: number;
253
+ /** Breakdown of violations by severity (v2.0+) */
254
+ violationsBySeverity?: {
255
+ critical: number;
256
+ high: number;
257
+ medium: number;
258
+ low: number;
259
+ };
260
+ /** Raw weighted score before coverage penalty (v2.0+) */
261
+ weightedScore?: number;
262
+ /** Ratio of violations to constraints (v2.0+) */
263
+ coverageRate?: number;
222
264
  }
223
265
  /**
224
266
  * Trend data point
@@ -350,6 +392,16 @@ declare const ConstraintExceptionSchema: z.ZodObject<{
350
392
  approvedBy?: string | undefined;
351
393
  expiresAt?: string | undefined;
352
394
  }>;
395
+ declare const ConstraintCheckSchema: z.ZodObject<{
396
+ verifier: z.ZodString;
397
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
398
+ }, "strip", z.ZodTypeAny, {
399
+ verifier: string;
400
+ params?: Record<string, unknown> | undefined;
401
+ }, {
402
+ verifier: string;
403
+ params?: Record<string, unknown> | undefined;
404
+ }>;
353
405
  declare const ConstraintSchema: z.ZodObject<{
354
406
  id: z.ZodString;
355
407
  type: z.ZodEnum<["invariant", "convention", "guideline"]>;
@@ -357,6 +409,16 @@ declare const ConstraintSchema: z.ZodObject<{
357
409
  severity: z.ZodEnum<["critical", "high", "medium", "low"]>;
358
410
  scope: z.ZodString;
359
411
  verifier: z.ZodOptional<z.ZodString>;
412
+ check: z.ZodOptional<z.ZodObject<{
413
+ verifier: z.ZodString;
414
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
415
+ }, "strip", z.ZodTypeAny, {
416
+ verifier: string;
417
+ params?: Record<string, unknown> | undefined;
418
+ }, {
419
+ verifier: string;
420
+ params?: Record<string, unknown> | undefined;
421
+ }>>;
360
422
  autofix: z.ZodOptional<z.ZodBoolean>;
361
423
  exceptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
362
424
  pattern: z.ZodString;
@@ -381,6 +443,10 @@ declare const ConstraintSchema: z.ZodObject<{
381
443
  severity: "critical" | "high" | "medium" | "low";
382
444
  scope: string;
383
445
  verifier?: string | undefined;
446
+ check?: {
447
+ verifier: string;
448
+ params?: Record<string, unknown> | undefined;
449
+ } | undefined;
384
450
  autofix?: boolean | undefined;
385
451
  exceptions?: {
386
452
  pattern: string;
@@ -395,6 +461,10 @@ declare const ConstraintSchema: z.ZodObject<{
395
461
  severity: "critical" | "high" | "medium" | "low";
396
462
  scope: string;
397
463
  verifier?: string | undefined;
464
+ check?: {
465
+ verifier: string;
466
+ params?: Record<string, unknown> | undefined;
467
+ } | undefined;
398
468
  autofix?: boolean | undefined;
399
469
  exceptions?: {
400
470
  pattern: string;
@@ -485,6 +555,16 @@ declare const DecisionSchema: z.ZodObject<{
485
555
  severity: z.ZodEnum<["critical", "high", "medium", "low"]>;
486
556
  scope: z.ZodString;
487
557
  verifier: z.ZodOptional<z.ZodString>;
558
+ check: z.ZodOptional<z.ZodObject<{
559
+ verifier: z.ZodString;
560
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ verifier: string;
563
+ params?: Record<string, unknown> | undefined;
564
+ }, {
565
+ verifier: string;
566
+ params?: Record<string, unknown> | undefined;
567
+ }>>;
488
568
  autofix: z.ZodOptional<z.ZodBoolean>;
489
569
  exceptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
490
570
  pattern: z.ZodString;
@@ -509,6 +589,10 @@ declare const DecisionSchema: z.ZodObject<{
509
589
  severity: "critical" | "high" | "medium" | "low";
510
590
  scope: string;
511
591
  verifier?: string | undefined;
592
+ check?: {
593
+ verifier: string;
594
+ params?: Record<string, unknown> | undefined;
595
+ } | undefined;
512
596
  autofix?: boolean | undefined;
513
597
  exceptions?: {
514
598
  pattern: string;
@@ -523,6 +607,10 @@ declare const DecisionSchema: z.ZodObject<{
523
607
  severity: "critical" | "high" | "medium" | "low";
524
608
  scope: string;
525
609
  verifier?: string | undefined;
610
+ check?: {
611
+ verifier: string;
612
+ params?: Record<string, unknown> | undefined;
613
+ } | undefined;
526
614
  autofix?: boolean | undefined;
527
615
  exceptions?: {
528
616
  pattern: string;
@@ -601,6 +689,10 @@ declare const DecisionSchema: z.ZodObject<{
601
689
  severity: "critical" | "high" | "medium" | "low";
602
690
  scope: string;
603
691
  verifier?: string | undefined;
692
+ check?: {
693
+ verifier: string;
694
+ params?: Record<string, unknown> | undefined;
695
+ } | undefined;
604
696
  autofix?: boolean | undefined;
605
697
  exceptions?: {
606
698
  pattern: string;
@@ -647,6 +739,10 @@ declare const DecisionSchema: z.ZodObject<{
647
739
  severity: "critical" | "high" | "medium" | "low";
648
740
  scope: string;
649
741
  verifier?: string | undefined;
742
+ check?: {
743
+ verifier: string;
744
+ params?: Record<string, unknown> | undefined;
745
+ } | undefined;
650
746
  autofix?: boolean | undefined;
651
747
  exceptions?: {
652
748
  pattern: string;
@@ -676,6 +772,7 @@ type VerificationFrequencySchema_ = z.infer<typeof VerificationFrequencySchema>;
676
772
  type DecisionMetadataSchema_ = z.infer<typeof DecisionMetadataSchema>;
677
773
  type DecisionContentSchema_ = z.infer<typeof DecisionContentSchema>;
678
774
  type ConstraintExceptionSchema_ = z.infer<typeof ConstraintExceptionSchema>;
775
+ type ConstraintCheckSchema_ = z.infer<typeof ConstraintCheckSchema>;
679
776
  type ConstraintSchema_ = z.infer<typeof ConstraintSchema>;
680
777
  type VerificationConfigSchema_ = z.infer<typeof VerificationConfigSchema>;
681
778
  type DecisionTypeSchema = z.infer<typeof DecisionSchema>;
@@ -1378,6 +1475,45 @@ declare function getAnalyzer(id: string): Analyzer | null;
1378
1475
  */
1379
1476
  declare function getAnalyzerIds(): string[];
1380
1477
 
1478
+ /**
1479
+ * Entry in the explanation trace
1480
+ */
1481
+ interface ExplanationEntry {
1482
+ file: string;
1483
+ decision: Decision;
1484
+ constraint: Constraint;
1485
+ applied: boolean;
1486
+ reason: string;
1487
+ selectedVerifier?: string;
1488
+ verifierOutput?: {
1489
+ violations: number;
1490
+ duration: number;
1491
+ error?: string;
1492
+ };
1493
+ }
1494
+ /**
1495
+ * Reporter for --explain mode
1496
+ */
1497
+ declare class ExplainReporter {
1498
+ private entries;
1499
+ /**
1500
+ * Add an entry to the explanation trace
1501
+ */
1502
+ add(entry: ExplanationEntry): void;
1503
+ /**
1504
+ * Print the explanation trace
1505
+ */
1506
+ print(): void;
1507
+ /**
1508
+ * Get all entries
1509
+ */
1510
+ getEntries(): ExplanationEntry[];
1511
+ /**
1512
+ * Clear all entries
1513
+ */
1514
+ clear(): void;
1515
+ }
1516
+
1381
1517
  interface VerificationOptions {
1382
1518
  level?: VerificationLevel;
1383
1519
  files?: string[];
@@ -1385,6 +1521,7 @@ interface VerificationOptions {
1385
1521
  severity?: Severity[];
1386
1522
  timeout?: number;
1387
1523
  cwd?: string;
1524
+ reporter?: ExplainReporter;
1388
1525
  }
1389
1526
  /**
1390
1527
  * Verification Engine class
@@ -1393,6 +1530,8 @@ declare class VerificationEngine {
1393
1530
  private registry;
1394
1531
  private project;
1395
1532
  private astCache;
1533
+ private resultsCache;
1534
+ private pluginsLoaded;
1396
1535
  constructor(registry?: Registry);
1397
1536
  /**
1398
1537
  * Run verification
@@ -1401,7 +1540,11 @@ declare class VerificationEngine {
1401
1540
  /**
1402
1541
  * Verify a single file
1403
1542
  */
1404
- verifyFile(filePath: string, decisions: Decision[], severityFilter?: Severity[], cwd?: string): Promise<Violation[]>;
1543
+ verifyFile(filePath: string, decisions: Decision[], severityFilter?: Severity[], cwd?: string, reporter?: ExplainReporter): Promise<{
1544
+ violations: Violation[];
1545
+ warnings: VerificationWarning[];
1546
+ errors: VerificationIssue[];
1547
+ }>;
1405
1548
  /**
1406
1549
  * Verify multiple files
1407
1550
  */
@@ -1420,6 +1563,10 @@ declare class AstCache {
1420
1563
  private cache;
1421
1564
  get(filePath: string, project: Project): Promise<SourceFile | null>;
1422
1565
  clear(): void;
1566
+ getStats(): {
1567
+ entries: number;
1568
+ memoryEstimate: number;
1569
+ };
1423
1570
  }
1424
1571
 
1425
1572
  declare function getChangedFiles(cwd: string): Promise<string[]>;
@@ -1470,6 +1617,60 @@ interface Verifier {
1470
1617
  */
1471
1618
  verify(ctx: VerificationContext): Promise<Violation[]>;
1472
1619
  }
1620
+ /**
1621
+ * Plugin metadata
1622
+ */
1623
+ interface VerifierPluginMetadata {
1624
+ /** Unique identifier matching /^[a-z][a-z0-9-]*$/ */
1625
+ id: string;
1626
+ /** Semver version string */
1627
+ version: string;
1628
+ /** Plugin author */
1629
+ author?: string;
1630
+ /** Brief description of what this verifier checks */
1631
+ description?: string;
1632
+ }
1633
+ /**
1634
+ * Verifier plugin interface
1635
+ * Custom verifiers must export a default object implementing this interface
1636
+ */
1637
+ interface VerifierPlugin {
1638
+ /** Plugin metadata */
1639
+ metadata: VerifierPluginMetadata;
1640
+ /** Factory function that creates a new verifier instance */
1641
+ createVerifier: () => Verifier;
1642
+ /** Optional Zod schema for validating constraint.check.params */
1643
+ paramsSchema?: unknown;
1644
+ }
1645
+ /**
1646
+ * Helper to define a verifier plugin with type safety
1647
+ *
1648
+ * @example
1649
+ * ```typescript
1650
+ * import { defineVerifierPlugin, type Verifier } from '@ipation/specbridge';
1651
+ *
1652
+ * class MyVerifier implements Verifier {
1653
+ * readonly id = 'my-custom';
1654
+ * readonly name = 'My Custom Verifier';
1655
+ * readonly description = 'Checks custom patterns';
1656
+ *
1657
+ * async verify(ctx) {
1658
+ * // Implementation
1659
+ * return [];
1660
+ * }
1661
+ * }
1662
+ *
1663
+ * export default defineVerifierPlugin({
1664
+ * metadata: {
1665
+ * id: 'my-custom',
1666
+ * version: '1.0.0',
1667
+ * author: 'Your Name'
1668
+ * },
1669
+ * createVerifier: () => new MyVerifier()
1670
+ * });
1671
+ * ```
1672
+ */
1673
+ declare function defineVerifierPlugin(plugin: VerifierPlugin): VerifierPlugin;
1473
1674
  /**
1474
1675
  * Helper to create a violation
1475
1676
  */
@@ -1566,16 +1767,25 @@ declare class ApiVerifier implements Verifier {
1566
1767
  declare const builtinVerifiers: Record<string, () => Verifier>;
1567
1768
  /**
1568
1769
  * Get verifier by ID
1770
+ * Checks custom plugins first, then built-in verifiers
1771
+ * Instances are pooled for performance
1569
1772
  */
1570
1773
  declare function getVerifier(id: string): Verifier | null;
1571
1774
  /**
1572
- * Get all verifier IDs
1775
+ * Get all verifier IDs (built-in + plugins)
1573
1776
  */
1574
1777
  declare function getVerifierIds(): string[];
1575
1778
  /**
1576
- * Select appropriate verifier based on constraint rule
1779
+ * Clear the verifier instance pool (for testing)
1780
+ */
1781
+ declare function clearVerifierPool(): void;
1782
+ /**
1783
+ * Select appropriate verifier based on constraint
1577
1784
  */
1578
- declare function selectVerifierForConstraint(rule: string, specifiedVerifier?: string): Verifier | null;
1785
+ declare function selectVerifierForConstraint(rule: string, specifiedVerifier?: string, check?: {
1786
+ verifier: string;
1787
+ params?: Record<string, unknown>;
1788
+ }): Verifier | null;
1579
1789
 
1580
1790
  interface AutofixPatch {
1581
1791
  filePath: string;
@@ -1670,6 +1880,8 @@ declare function createPropagationEngine(registry?: Registry): PropagationEngine
1670
1880
  interface ReportOptions {
1671
1881
  includeAll?: boolean;
1672
1882
  cwd?: string;
1883
+ /** Use v1.3 compliance formula instead of v2.0 severity-weighted formula */
1884
+ legacyCompliance?: boolean;
1673
1885
  }
1674
1886
  /**
1675
1887
  * Generate a compliance report
@@ -1738,6 +1950,7 @@ declare class ReportStorage {
1738
1950
  loadLatest(): Promise<StoredReport | null>;
1739
1951
  /**
1740
1952
  * Load historical reports for the specified number of days
1953
+ * Uses parallel I/O for better performance
1741
1954
  */
1742
1955
  loadHistory(days?: number): Promise<StoredReport[]>;
1743
1956
  /**
@@ -2020,4 +2233,4 @@ declare function matchesAnyPattern(filePath: string, patterns: string[], options
2020
2233
  cwd?: string;
2021
2234
  }): boolean;
2022
2235
 
2023
- export { type AffectedFile, type AgentContext, AgentContextGenerator, AlreadyInitializedError, type Analyzer, AnalyzerNotFoundError, ApiVerifier, type ApplicableConstraint, type ApplicableDecision, AstCache, AutofixEngine, type AutofixPatch, type AutofixResult, CodeScanner, ComplexityVerifier, type ComplianceReport, ConfigError, type Constraint, type ConstraintException, ConstraintExceptionSchema, type ConstraintExceptionSchema_, ConstraintSchema, type ConstraintSchema_, type ConstraintType, ConstraintTypeSchema, type ConstraintTypeSchema_, type ContextOptions, type Decision, type DecisionCompliance, type DecisionContent, DecisionContentSchema, type DecisionContentSchema_, type DecisionFilter, type DecisionMetadata, DecisionMetadataSchema, type DecisionMetadataSchema_, DecisionNotFoundError, DecisionSchema, type DecisionStatus, DecisionStatusSchema, type DecisionStatusSchema_, type DecisionTypeSchema, DecisionValidationError, type DependencyGraph, DependencyVerifier, type DriftAnalysis, ErrorsAnalyzer, ErrorsVerifier, FileSystemError, type GlobOptions, type GraphNode, HookError, type ImpactAnalysis, ImportsAnalyzer, ImportsVerifier, InferenceEngine, InferenceError, type InferenceOptions, type InferenceResult, type LevelConfig, LinksSchema, type LoadError, type LoadResult, type LoadedDecision, type McpServerOptions, type MigrationStep, NamingAnalyzer, NamingVerifier, NotInitializedError, type OverallDrift, type Pattern, type PatternExample, type PromptTemplate, PropagationEngine, type PropagationOptions, RegexVerifier, Registry, type RegistryConstraintMatch, RegistryError, type RegistryOptions, type ReportOptions, ReportStorage, Reporter, type ScanOptions, type ScanResult, type ScannedFile, SecurityVerifier, type Severity, SeveritySchema, type SeveritySchema_, type SpecBridgeConfig, SpecBridgeConfigSchema, type SpecBridgeConfigType, SpecBridgeError, SpecBridgeMcpServer, type StoredReport, StructureAnalyzer, type TextEdit, type TrendAnalysis, type TrendData, type TrendDirection, type VerificationConfig, VerificationConfigSchema, type VerificationConfigSchema_, type VerificationContext, VerificationEngine, VerificationError, type VerificationFrequency, VerificationFrequencySchema, type VerificationFrequencySchema_, type VerificationLevel, type VerificationOptions, type VerificationResult, type Verifier, VerifierNotFoundError, type Violation, type ViolationFix, analyzeTrend, buildDependencyGraph, builtinAnalyzers, builtinVerifiers, calculateConfidence, checkDegradation, createInferenceEngine, createPattern, createPropagationEngine, createRegistry, createScannerFromConfig, createVerificationEngine, createViolation, defaultConfig, detectDrift, ensureDir, extractSnippet, formatConsoleReport, formatContextAsJson, formatContextAsMarkdown, formatContextAsMcp, formatError, formatMarkdownReport, formatValidationErrors, generateContext, generateFormattedContext, generateReport, getAffectedFiles, getAffectingDecisions, getAnalyzer, getAnalyzerIds, getChangedFiles, getConfigPath, getDecisionsDir, getInferredDir, getReportsDir, getSpecBridgeDir, getTransitiveDependencies, getVerifier, getVerifierIds, getVerifiersDir, glob, isConstraintExcepted, isDirectory, loadConfig, loadDecisionFile, loadDecisionsFromDir, matchesAnyPattern, matchesPattern, mergeWithDefaults, normalizePath, parseYaml, parseYamlDocument, pathExists, readFilesInDir, readTextFile, runInference, selectVerifierForConstraint, shouldApplyConstraintToFile, stringifyYaml, templates, updateYamlDocument, validateConfig, validateDecision, validateDecisionFile, writeTextFile };
2236
+ export { type AffectedFile, type AgentContext, AgentContextGenerator, AlreadyInitializedError, type Analyzer, AnalyzerNotFoundError, ApiVerifier, type ApplicableConstraint, type ApplicableDecision, AstCache, AutofixEngine, type AutofixPatch, type AutofixResult, CodeScanner, ComplexityVerifier, type ComplianceReport, ConfigError, type Constraint, type ConstraintCheck, ConstraintCheckSchema, type ConstraintCheckSchema_, type ConstraintException, ConstraintExceptionSchema, type ConstraintExceptionSchema_, ConstraintSchema, type ConstraintSchema_, type ConstraintType, ConstraintTypeSchema, type ConstraintTypeSchema_, type ContextOptions, type Decision, type DecisionCompliance, type DecisionContent, DecisionContentSchema, type DecisionContentSchema_, type DecisionFilter, type DecisionMetadata, DecisionMetadataSchema, type DecisionMetadataSchema_, DecisionNotFoundError, DecisionSchema, type DecisionStatus, DecisionStatusSchema, type DecisionStatusSchema_, type DecisionTypeSchema, DecisionValidationError, type DependencyGraph, DependencyVerifier, type DriftAnalysis, ErrorsAnalyzer, ErrorsVerifier, FileSystemError, type GlobOptions, type GraphNode, HookError, type ImpactAnalysis, ImportsAnalyzer, ImportsVerifier, InferenceEngine, InferenceError, type InferenceOptions, type InferenceResult, type LevelConfig, LinksSchema, type LoadError, type LoadResult, type LoadedDecision, type McpServerOptions, type MigrationStep, NamingAnalyzer, NamingVerifier, NotInitializedError, type OverallDrift, type Pattern, type PatternExample, type PromptTemplate, PropagationEngine, type PropagationOptions, RegexVerifier, Registry, type RegistryConstraintMatch, RegistryError, type RegistryOptions, type ReportOptions, ReportStorage, Reporter, type ScanOptions, type ScanResult, type ScannedFile, SecurityVerifier, type Severity, SeveritySchema, type SeveritySchema_, type SpecBridgeConfig, SpecBridgeConfigSchema, type SpecBridgeConfigType, SpecBridgeError, SpecBridgeMcpServer, type StoredReport, StructureAnalyzer, type TextEdit, type TrendAnalysis, type TrendData, type TrendDirection, type VerificationConfig, VerificationConfigSchema, type VerificationConfigSchema_, type VerificationContext, VerificationEngine, VerificationError, type VerificationFrequency, VerificationFrequencySchema, type VerificationFrequencySchema_, type VerificationIssue, type VerificationLevel, type VerificationOptions, type VerificationResult, type VerificationWarning, type Verifier, VerifierNotFoundError, type VerifierPlugin, type VerifierPluginMetadata, type Violation, type ViolationFix, analyzeTrend, buildDependencyGraph, builtinAnalyzers, builtinVerifiers, calculateConfidence, checkDegradation, clearVerifierPool, createInferenceEngine, createPattern, createPropagationEngine, createRegistry, createScannerFromConfig, createVerificationEngine, createViolation, defaultConfig, defineVerifierPlugin, detectDrift, ensureDir, extractSnippet, formatConsoleReport, formatContextAsJson, formatContextAsMarkdown, formatContextAsMcp, formatError, formatMarkdownReport, formatValidationErrors, generateContext, generateFormattedContext, generateReport, getAffectedFiles, getAffectingDecisions, getAnalyzer, getAnalyzerIds, getChangedFiles, getConfigPath, getDecisionsDir, getInferredDir, getReportsDir, getSpecBridgeDir, getTransitiveDependencies, getVerifier, getVerifierIds, getVerifiersDir, glob, isConstraintExcepted, isDirectory, loadConfig, loadDecisionFile, loadDecisionsFromDir, matchesAnyPattern, matchesPattern, mergeWithDefaults, normalizePath, parseYaml, parseYamlDocument, pathExists, readFilesInDir, readTextFile, runInference, selectVerifierForConstraint, shouldApplyConstraintToFile, stringifyYaml, templates, updateYamlDocument, validateConfig, validateDecision, validateDecisionFile, writeTextFile };